x11: Handle BadWindow errors
diff --git a/compositor/xserver-launcher.c b/compositor/xserver-launcher.c
index 1812472..3a4cc34 100644
--- a/compositor/xserver-launcher.c
+++ b/compositor/xserver-launcher.c
@@ -201,6 +201,9 @@
 
 	list_cookie = xcb_list_properties(wm->conn, window);
 	list_reply = xcb_list_properties_reply(wm->conn, list_cookie, NULL);
+	if (!list_reply)
+		/* Bad window, typically */
+		return;
 
 	length = xcb_list_properties_atoms_length(list_reply);
 	atoms = xcb_list_properties_atoms(list_reply);
@@ -608,6 +611,10 @@
 
 	for (i = 0; i < ARRAY_LENGTH(props); i++)  {
 		reply = xcb_get_property_reply(wm->conn, cookie[i], NULL);
+		if (!reply)
+			/* Bad window, typically */
+			continue;
+
 		p = ((char *) window + props[i].offset);
 
 		switch (props[i].type) {