diff -up kbd-1.15.3/src/loadkeys.c.orig kbd-1.15.3/src/loadkeys.c --- kbd-1.15.3/src/loadkeys.c.orig 2011-05-07 22:33:42.000000000 +0200 +++ kbd-1.15.3/src/loadkeys.c 2011-10-09 14:34:52.533549215 +0200 @@ -2958,7 +2958,7 @@ int main(int argc, char *argv[]) close(fd); } - for (i = optind; argv[i]; i++) { + for (i = optind; argv[i] || optd; i++) { FILE *f; char *ev; @@ -2974,6 +2974,7 @@ int main(int argc, char *argv[]) if (optd) { /* first read default map - search starts in . */ optd = 0; + i--; if ((f = findfile(DEFMAP, dirpath, suffixes)) == NULL) { fprintf(stderr, _("Cannot find %s\n"), DEFMAP); exit(EXIT_FAILURE);