ikent 0e30ea
diff --git a/CHANGELOG b/CHANGELOG
ikent 0e30ea
index b379431..2fc3c9e 100644
ikent 0e30ea
--- a/CHANGELOG
ikent 0e30ea
+++ b/CHANGELOG
ikent 0e30ea
@@ -4,6 +4,7 @@
ikent 0e30ea
 - give up trying to update exports list while host is mounted.
ikent 0e30ea
 - fix to "@network" matching.
ikent 0e30ea
 - check for fstab update and retry if not updated.
ikent 0e30ea
+- change file map lexer to allow white-space only blank lines.
ikent 0e30ea
 
ikent 0e30ea
 20/2/2007 autofs-5.0.1
ikent 0e30ea
 ----------------------
ikent 0e30ea
diff --git a/modules/lookup_file.c b/modules/lookup_file.c
ikent 0e30ea
index 0f4d8f1..4a5674e 100644
ikent 0e30ea
--- a/modules/lookup_file.c
ikent 0e30ea
+++ b/modules/lookup_file.c
ikent 0e30ea
@@ -236,11 +236,21 @@ static int read_one(FILE *f, char *key, unsigned int *k_len, char *mapent, unsig
ikent 0e30ea
 
ikent 0e30ea
 		case st_badent:
ikent 0e30ea
 			if (ch == '\n') {
ikent 0e30ea
+				nch = getc(f);
ikent 0e30ea
+				if (nch != EOF && isblank(nch)) {
ikent 0e30ea
+					ungetc(nch, f);
ikent 0e30ea
+					break;
ikent 0e30ea
+				}
ikent 0e30ea
+				ungetc(nch, f);
ikent 0e30ea
 				state = st_begin;
ikent 0e30ea
 				if (gotten == got_real || gotten == getting)
ikent 0e30ea
 					goto got_it;
ikent 0e30ea
+				warn(LOGOPT_ANY, MODPREFIX 
ikent 0e30ea
+				      "bad map entry \"%s...\" for key "
ikent 0e30ea
+				      "\"%s\"", mapent, key);
ikent 0e30ea
 				goto next;
ikent 0e30ea
-			}
ikent 0e30ea
+			} else if (!isblank(ch))
ikent 0e30ea
+				gotten = got_nothing;
ikent 0e30ea
 			break;
ikent 0e30ea
 
ikent 0e30ea
 		case st_entspc:
ikent 0e30ea
@@ -274,24 +284,21 @@ static int read_one(FILE *f, char *key, unsigned int *k_len, char *mapent, unsig
ikent 0e30ea
 
ikent 0e30ea
 		case st_getent:
ikent 0e30ea
 			if (ch == '\n') {
ikent 0e30ea
+				if (escape == esc_all) {
ikent 0e30ea
+					state = st_begin;
ikent 0e30ea
+					warn(LOGOPT_ANY, MODPREFIX
ikent 0e30ea
+					     "unmatched \" in %s for key %s",
ikent 0e30ea
+					     mapent, key);
ikent 0e30ea
+					goto next;
ikent 0e30ea
+				}
ikent 0e30ea
 				nch = getc(f);
ikent 0e30ea
 				if (nch != EOF && isblank(nch)) {
ikent 0e30ea
 					ungetc(nch, f);
ikent 0e30ea
 					state = st_badent;
ikent 0e30ea
-					gotten = got_nothing;
ikent 0e30ea
-					warn(LOGOPT_ANY, MODPREFIX 
ikent 0e30ea
-					      "bad map entry \"%s...\" for key "
ikent 0e30ea
-					      "\"%s\"", mapent, key);
ikent 0e30ea
 					break;
ikent 0e30ea
 				}
ikent 0e30ea
 				ungetc(nch, f);
ikent 0e30ea
 				state = st_begin;
ikent 0e30ea
-				if (escape == esc_all) {
ikent 0e30ea
-					warn(LOGOPT_ANY, MODPREFIX
ikent 0e30ea
-					     "unmatched \" in %s for key %s",
ikent 0e30ea
-					     mapent, key);
ikent 0e30ea
-					goto next;
ikent 0e30ea
-				}
ikent 0e30ea
 				if (gotten == got_real || gotten == getting)
ikent 0e30ea
 					goto got_it;
ikent 0e30ea
 			} else if (mapent_len < MAPENT_MAX_LEN) {