diff --git a/src/builtin_functions.c b/src/builtin_functions.c
index d46a012a03d97211334e9efff70ca4a31e0746d1..a34912ab9f316fe9cf6ecf1bac3ef2e76017c82b 100644
--- a/src/builtin_functions.c
+++ b/src/builtin_functions.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: builtin_functions.c,v 1.181 1999/08/12 20:05:27 mast Exp $");
+RCSID("$Id: builtin_functions.c,v 1.182 1999/08/19 23:49:46 hubbe Exp $");
 #include "interpret.h"
 #include "svalue.h"
 #include "pike_macros.h"
@@ -4259,6 +4259,11 @@ void f_map(INT32 args)
 	    push_svalue(a->item+i);
 	    push_svalue(mysp-2);
 	    f_arrow(2);
+	    if(IS_ZERO(sp-1))
+	    {
+	      pop_stack();
+	      continue;
+	    }
 	    add_ref_svalue(mysp-1);
 	    push_array_items(mysp[-1].u.array);
 	    f_call_function(splice+1);