diff --git a/lib/init.scm b/lib/init.scm
index d5191caf..62d044ec 100644
--- a/lib/init.scm
+++ b/lib/init.scm
@@ -73,11 +73,11 @@
         (map1 proc (cdr ls) (cons (proc (car ls)) res))
         (reverse res)))
   (define (mapn proc lol res)
-    (if (null? (car lol))
-        (reverse res)
+    (if (pair? (car lol))
         (mapn proc
               (map1 cdr lol '())
-              (cons (apply1 proc (map1 car lol '())) res))))
+              (cons (apply1 proc (map1 car lol '())) res))
+        (reverse res)))
   (if (null? lol)
       (map1 proc ls '())
       (mapn proc (cons ls lol) '())))