Index: uspace/srv/hid/display/seat.c
===================================================================
--- uspace/srv/hid/display/seat.c	(revision acd7ac27615c878223fa2b8f1f6c1bdbd38cd3e3)
+++ uspace/srv/hid/display/seat.c	(revision 6a0b2cc0082e02f5fddd7bb03523eba5cfce193c)
@@ -88,4 +88,5 @@
 	seat->client_cursor = display->cursor[dcurs_arrow];
 	seat->wm_cursor = NULL;
+	seat->focus = ds_display_first_window(display);
 
 	*rseat = seat;
@@ -223,6 +224,11 @@
 	ds_window_t *nwnd;
 
-	/* Find alternate window that is not a system window */
-	nwnd = ds_window_find_next(seat->focus, ~wndf_system);
+	if (seat->focus != NULL) {
+		/* Find alternate window that is not a system window */
+		nwnd = ds_window_find_next(seat->focus, ~wndf_system);
+	} else {
+		/* Currently no focus. Focus topmost window. */
+		nwnd = ds_display_first_window(seat->display);
+	}
 
 	/* Only switch focus if there is another window */
