Index: uspace/srv/hid/input/input.c
===================================================================
--- uspace/srv/hid/input/input.c	(revision c072a292c19db94ad89515ef948e5fabe05dc9f1)
+++ uspace/srv/hid/input/input.c	(revision 58f26cbc0c1d3b1eee97b21bf0c30c8d9de4acd5)
@@ -90,4 +90,7 @@
 static client_t *active_client = NULL;
 
+/** Kernel override */
+static bool active = true;
+
 /** List of keyboard devices */
 static list_t kbd_devs;
@@ -295,9 +298,9 @@
 
 /** Arbitrate client actiovation */
-static void client_arbitration(client_t *req)
+static void client_arbitration(void)
 {
 	/* Mutual exclusion of active clients */
 	list_foreach(clients, link, client_t, client)
-		client->active = (client == req);
+		client->active = ((active) && (client == active_client));
 	
 	/* Notify clients about the arbitration */
@@ -347,5 +350,5 @@
 			case INPUT_ACTIVATE:
 				active_client = client;
-				client_arbitration(client);
+				client_arbitration();
 				async_answer_0(callid, EOK);
 				break;
@@ -362,9 +365,11 @@
 	if (IPC_GET_ARG1(*call)) {
 		/* Kernel console activated */
-		client_arbitration(NULL);
+		active = false;
 	} else {
 		/* Kernel console deactivated */
-		client_arbitration(active_client);
-	}
+		active = true;
+	}
+	
+	client_arbitration();
 }
 
