diff -up tigervnc-1.0.0/unix/xserver/dix/main.c.rh516274 tigervnc-1.0.0/unix/xserver/dix/main.c --- tigervnc-1.0.0/unix/xserver/dix/main.c.rh516274 2009-10-14 13:10:14.894393124 +0200 +++ tigervnc-1.0.0/unix/xserver/dix/main.c 2009-10-14 13:10:14.904391193 +0200 @@ -125,6 +125,8 @@ extern FontPtr defaultFont; extern void InitProcVectors(void); extern Bool CreateGCperDepthArray(void); +extern void workaroundRHBZ516274(void); + #ifndef PANORAMIX static #endif @@ -368,6 +370,7 @@ int main(int argc, char *argv[], char *e InitCoreDevices(); InitInput(argc, argv); InitAndStartDevices(); + workaroundRHBZ516274(); dixSaveScreens(serverClient, SCREEN_SAVER_FORCER, ScreenSaverReset); diff -up tigervnc-1.0.0/unix/xserver/hw/vnc/XserverDesktop.cc.rh516274 tigervnc-1.0.0/unix/xserver/hw/vnc/XserverDesktop.cc --- tigervnc-1.0.0/unix/xserver/hw/vnc/XserverDesktop.cc.rh516274 2009-08-20 11:46:42.000000000 +0200 +++ tigervnc-1.0.0/unix/xserver/hw/vnc/XserverDesktop.cc 2009-10-14 13:10:30.936890666 +0200 @@ -1511,3 +1511,12 @@ static int vfbMouseProc(DeviceIntPtr pDe } return Success; } + +extern "C" { + +void workaroundRHBZ516274(void) +{ + CopyKeyClass(vncKeyboardDevice, vncKeyboardDevice->u.master); +} + +};