diff --git a/CHANGELOG b/CHANGELOG
index a7ac9fb..93c79cf 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -36,6 +36,7 @@
 - fix map entry expansion when undefined macro is present.
 - remove unused export validation code.
 - add dynamic logging (adapted from v4 patch from Jeff Moyer).
+- fix recursive loopback mounts (Matthias Koenig).
 
 18/06/2007 autofs-5.0.2
 -----------------------
diff --git a/daemon/spawn.c b/daemon/spawn.c
index 3d5ea56..ab3274c 100644
--- a/daemon/spawn.c
+++ b/daemon/spawn.c
@@ -290,7 +290,16 @@ int spawn_mount(unsigned logopt, ...)
 
 	va_start(arg, logopt);
 	p = argv + 1;
-	while ((*p++ = va_arg(arg, char *)));
+	while ((*p = va_arg(arg, char *))) {
+		if (options == SPAWN_OPT_NONE && !strcmp(*p, "-o")) {
+			*(++p) = va_arg(arg, char *);
+			if (!*p)
+				break;
+			if (strstr(*p, "loop"))
+				options = SPAWN_OPT_ACCESS;
+		}
+		p++;
+	}
 	va_end(arg);
 
 	while (retries--) {