1 diff --git a/unix/xserver/hw/vnc/InputXKB.c b/unix/xserver/hw/vnc/InputXKB.c
2 index f84a6e4..4eac939 100644
3 --- a/unix/xserver/hw/vnc/InputXKB.c
4 +++ b/unix/xserver/hw/vnc/InputXKB.c
5 @@ -226,10 +226,7 @@ void vncPrepareInputDevices(void)
7 unsigned vncGetKeyboardState(void)
11 - master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT);
12 - return XkbStateFieldFromRec(&master->key->xkbInfo->state);
13 + return XkbStateFieldFromRec(&vncKeyboardDev->master->key->xkbInfo->state);
16 unsigned vncGetLevelThreeMask(void)
17 @@ -250,7 +247,7 @@ unsigned vncGetLevelThreeMask(void)
21 - xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
22 + xkb = vncKeyboardDev->master->key->xkbInfo->desc;
24 act = XkbKeyActionPtr(xkb, keycode, state);
26 @@ -275,7 +272,7 @@ KeyCode vncPressShift(void)
27 if (state & ShiftMask)
30 - xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
31 + xkb = vncKeyboardDev->master->key->xkbInfo->desc;
32 for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
35 @@ -315,7 +312,7 @@ size_t vncReleaseShift(KeyCode *keys, size_t maxKeys)
39 - master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT);
40 + master = vncKeyboardDev->master;
41 xkb = master->key->xkbInfo->desc;
42 for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
44 @@ -371,7 +368,7 @@ KeyCode vncPressLevelThree(void)
48 - xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
49 + xkb = vncKeyboardDev->master->key->xkbInfo->desc;
51 act = XkbKeyActionPtr(xkb, keycode, state);
53 @@ -402,7 +399,7 @@ size_t vncReleaseLevelThree(KeyCode *keys, size_t maxKeys)
57 - master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT);
58 + master = vncKeyboardDev->master;
59 xkb = master->key->xkbInfo->desc;
60 for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
62 @@ -447,7 +444,7 @@ KeyCode vncKeysymToKeycode(KeySym keysym, unsigned state, unsigned *new_state)
66 - xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
67 + xkb = vncKeyboardDev->master->key->xkbInfo->desc;
68 for (key = xkb->min_key_code; key <= xkb->max_key_code; key++) {
69 unsigned int state_out;
71 @@ -551,7 +548,7 @@ int vncIsAffectedByNumLock(KeyCode keycode)
72 if (numlock_keycode == 0)
75 - xkb = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT)->key->xkbInfo->desc;
76 + xkb = vncKeyboardDev->master->key->xkbInfo->desc;
78 act = XkbKeyActionPtr(xkb, numlock_keycode, state);
80 @@ -585,7 +582,7 @@ KeyCode vncAddKeysym(KeySym keysym, unsigned state)
84 - master = GetMaster(vncKeyboardDev, KEYBOARD_OR_FLOAT);
85 + master = vncKeyboardDev->master;
86 xkb = master->key->xkbInfo->desc;
87 for (key = xkb->max_key_code; key >= xkb->min_key_code; key--) {
88 if (XkbKeyNumGroups(xkb, key) == 0)