diff --git a/include/toplevel.mk b/include/toplevel.mk
index f44dc81557f5d7246d3c2267db5fd07979980e4a..19ed8cb1d9daa55c90e544c01543753ee5d25e13 100644
--- a/include/toplevel.mk
+++ b/include/toplevel.mk
@@ -51,6 +51,8 @@ export SCAN_COOKIE
 
 SUBMAKE:=umask 022; $(SUBMAKE)
 
+ULIMIT_FIX=_limit=`ulimit -n`; [ "$$_limit" = "unlimited" -o "$$_limit" -ge 1024 ] || ulimit -n 1024;
+
 prepare-mk: FORCE ;
 
 prepare-tmpinfo: FORCE
@@ -149,7 +151,7 @@ prereq:: prepare-tmpinfo .config
 			echo "WARNING: your configuration is out of sync. Please run make menuconfig, oldconfig or defconfig!"; \
 		fi \
 	)
-	@+$(SUBMAKE) -r $@
+	@+$(ULIMIT_FIX) $(SUBMAKE) -r $@
 
 help:
 	cat README