diff -up kbd-2.0.4/src/loadkeys.c.orig kbd-2.0.4/src/loadkeys.c
--- kbd-2.0.4/src/loadkeys.c.orig	2017-01-11 11:14:48.308093019 +0100
+++ kbd-2.0.4/src/loadkeys.c	2017-01-11 11:15:18.018106020 +0100
@@ -27,7 +27,7 @@
 #include "keymap.h"
 
 static const char *progname         = NULL;
-static const char *const dirpath1[] = { "", DATADIR "/" KEYMAPDIR "/**", KERNDIR "/", 0 };
+static const char *const dirpath1[] = { "", DATADIR "/" KEYMAPDIR "/**", DATADIR "/" XKBKEYMAPDIR "/", DATADIR "/" LEGACYKEYMAPDIR "/**", KERNDIR "/", 0 };
 static const char *const suffixes[] = { "", ".kmap", ".map", 0 };
 
 static void __attribute__((noreturn))
diff -up kbd-2.0.4/src/paths.h.orig kbd-2.0.4/src/paths.h
--- kbd-2.0.4/src/paths.h.orig	2017-01-11 11:15:40.404115812 +0100
+++ kbd-2.0.4/src/paths.h	2017-01-11 11:15:59.730124274 +0100
@@ -5,6 +5,8 @@
  * The following five subdirectories are defined:
  */
 #define KEYMAPDIR "keymaps"
+#define XKBKEYMAPDIR "keymaps/xkb"
+#define LEGACYKEYMAPDIR "keymaps/legacy"
 #define UNIMAPDIR "unimaps"
 #define TRANSDIR "consoletrans"
 #define VIDEOMODEDIR "videomodes"
