diff --git a/src/compositor-rdp.c b/src/compositor-rdp.c
index 437954f..b749129 100644
--- a/src/compositor-rdp.c
+++ b/src/compositor-rdp.c
@@ -822,6 +822,8 @@
 		if (rdp_keyboards[i].rdpLayoutCode == settings->KeyboardLayout) {
 			xkbRuleNames.layout = rdp_keyboards[i].xkbLayout;
 			xkbRuleNames.variant = rdp_keyboards[i].xkbVariant;
+			weston_log("%s: matching layout=%s variant=%s\n", __FUNCTION__,
+					xkbRuleNames.layout, xkbRuleNames.variant);
 			break;
 		}
 	}
@@ -952,17 +954,6 @@
 	pixman_region32_fini(&damage);
 }
 
-extern DWORD KEYCODE_TO_VKCODE_EVDEV[];
-static uint32_t vk_to_keycode[256];
-static void
-init_vk_translator(void)
-{
-	int i;
-
-	memset(vk_to_keycode, 0, sizeof(vk_to_keycode));
-	for(i = 0; i < 256; i++)
-		vk_to_keycode[KEYCODE_TO_VKCODE_EVDEV[i] & 0xff] = i-8;
-}
 
 static void
 xf_input_keyboard_event(rdpInput *input, UINT16 flags, UINT16 code)
@@ -986,17 +977,15 @@
 			full_code |= KBD_FLAGS_EXTENDED;
 
 		vk_code = GetVirtualKeyCodeFromVirtualScanCode(full_code, 4);
-		if (vk_code > 0xff) {
-			weston_log("invalid vk_code %x", vk_code);
-			return;
-		}
-		scan_code = vk_to_keycode[vk_code];
+		if(flags & KBD_FLAGS_EXTENDED)
+			vk_code |= KBDEXT;
 
+		scan_code = GetKeycodeFromVirtualKeyCode(vk_code, KEYCODE_TYPE_EVDEV);
 
 		/*weston_log("code=%x ext=%d vk_code=%x scan_code=%x\n", code, (flags & KBD_FLAGS_EXTENDED) ? 1 : 0,
 				vk_code, scan_code);*/
 		notify_key(&peerContext->item.seat, weston_compositor_get_time(),
-					scan_code, keyState, STATE_UPDATE_AUTOMATIC);
+					scan_code - 8, keyState, STATE_UPDATE_AUTOMATIC);
 	}
 }
 
@@ -1188,7 +1177,6 @@
 
 	freerdp_get_version(&major, &minor, &revision);
 	weston_log("using FreeRDP version %d.%d.%d\n", major, minor, revision);
-	init_vk_translator();
 
 	const struct weston_option rdp_options[] = {
 		{ WESTON_OPTION_BOOLEAN, "env-socket", 0, &config.env_socket },
