8bfb372
diff --git a/unix/xserver/hw/vnc/InputXKB.c b/unix/xserver/hw/vnc/InputXKB.c
0838880
index f84a6e4..4eac939 100644
8bfb372
--- a/unix/xserver/hw/vnc/InputXKB.c
8bfb372
+++ b/unix/xserver/hw/vnc/InputXKB.c
0838880
@@ -226,10 +226,7 @@ void vncPrepareInputDevices(void)
0838880
 
590f96d
 unsigned vncGetKeyboardState(void)
cde0eb1
 {
cde0eb1
-	DeviceIntPtr master;
cde0eb1
-
590f96d
-	master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT);
cde0eb1
-	return XkbStateFieldFromRec(&master->key->xkbInfo->state);
590f96d
+	return XkbStateFieldFromRec(&vncKeyboardDev->master->key->xkbInfo->state);
cde0eb1
 }
0838880
 
590f96d
 unsigned vncGetLevelThreeMask(void)
0838880
@@ -250,7 +247,7 @@ unsigned vncGetLevelThreeMask(void)
cde0eb1
 			return 0;
cde0eb1
 	}
0838880
 
590f96d
-	xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
590f96d
+	xkb = vncKeyboardDev->master->key->xkbInfo->desc;
0838880
 
cde0eb1
 	act = XkbKeyActionPtr(xkb, keycode, state);
cde0eb1
 	if (act == NULL)
0838880
@@ -275,7 +272,7 @@ KeyCode vncPressShift(void)
cde0eb1
 	if (state & ShiftMask)
cde0eb1
 		return 0;
0838880
 
590f96d
-	xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
590f96d
+	xkb = vncKeyboardDev->master->key->xkbInfo->desc;
cde0eb1
 	for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
cde0eb1
 		XkbAction *act;
cde0eb1
 		unsigned char mask;
0838880
@@ -315,7 +312,7 @@ size_t vncReleaseShift(KeyCode *keys, size_t maxKeys)
0838880
 
590f96d
 	count = 0;
0838880
 
590f96d
-	master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT);
590f96d
+	master = vncKeyboardDev->master;
cde0eb1
 	xkb = master->key->xkbInfo->desc;
cde0eb1
 	for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
cde0eb1
 		XkbAction *act;
0838880
@@ -371,7 +368,7 @@ KeyCode vncPressLevelThree(void)
cde0eb1
 			return 0;
cde0eb1
 	}
0838880
 
590f96d
-	xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
590f96d
+	xkb = vncKeyboardDev->master->key->xkbInfo->desc;
0838880
 
cde0eb1
 	act = XkbKeyActionPtr(xkb, keycode, state);
cde0eb1
 	if (act == NULL)
0838880
@@ -402,7 +399,7 @@ size_t vncReleaseLevelThree(KeyCode *keys, size_t maxKeys)
0838880
 
590f96d
 	count = 0;
0838880
 
590f96d
-	master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT);
590f96d
+	master = vncKeyboardDev->master;
cde0eb1
 	xkb = master->key->xkbInfo->desc;
cde0eb1
 	for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
cde0eb1
 		XkbAction *act;
0838880
@@ -447,7 +444,7 @@ KeyCode vncKeysymToKeycode(KeySym keysym, unsigned state, unsigned *new_state)
cde0eb1
 		*new_state = state;
0838880
 
0838880
 	fallback = 0;
590f96d
-	xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
590f96d
+	xkb = vncKeyboardDev->master->key->xkbInfo->desc;
cde0eb1
 	for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
cde0eb1
 		unsigned int state_out;
cde0eb1
 		KeySym dummy;
0838880
@@ -551,7 +548,7 @@ int vncIsAffectedByNumLock(KeyCode keycode)
cde0eb1
 	if (numlock_keycode == 0)
590f96d
 		return 0;
0838880
 
590f96d
-	xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
590f96d
+	xkb = vncKeyboardDev->master->key->xkbInfo->desc;
0838880
 
cde0eb1
 	act = XkbKeyActionPtr(xkb, numlock_keycode, state);
cde0eb1
 	if (act == NULL)
0838880
@@ -585,7 +582,7 @@ KeyCode vncAddKeysym(KeySym keysym, unsigned state)
cde0eb1
 	KeySym *syms;
cde0eb1
 	KeySym upper, lower;
0838880
 
590f96d
-	master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT);
590f96d
+	master = vncKeyboardDev->master;
cde0eb1
 	xkb = master->key->xkbInfo->desc;
cde0eb1
 	for (key = xkb->max_key_code; key >= xkb->min_key_code; key--) {
cde0eb1
 		if (XkbKeyNumGroups(xkb, key) == 0)