diff --git a/build/dir.mk b/build/dir.mk
index 855435e58a95bb683e0cf3d29b746513a22e8663..efda69262e90552b7dffd2a1c4525bcebcf4ed24 100644
--- a/build/dir.mk
+++ b/build/dir.mk
@@ -13,6 +13,7 @@ all-common: FORCE
 	@for i in $(SUBDIRS) $(ALLDIRS); do 		\
 		echo "  Entering subdirectory $$i";		\
 		( cd $$i; $(MAKE) $(MFLAGS) all );		\
+		if test $$? != 0 ; then exit 1; fi ;	\
 		echo " ";								\
 	done
 
@@ -21,6 +22,7 @@ install-common: FORCE
 	@for i in $(SUBDIRS) $(INSTALLDIRS); do 	\
 		echo "  Entering subdirectory $$i";		\
 		( cd $$i; $(MAKE) $(MFLAGS) install );	\
+		if test $$? != 0 ; then exit 1; fi ;	\
 		echo " ";								\
 	done
 
@@ -29,6 +31,7 @@ clean-common: FORCE
 	@for i in $(SUBDIRS) $(CLEANDIRS); do		\
 		echo "  Entering subdirectory $$i";		\
 		( cd $$i; $(MAKE) $(MFLAGS) clean );	\
+		if test $$? != 0 ; then exit 1; fi ;	\
 		echo " ";								\
 	done
 
@@ -37,6 +40,7 @@ veryclean-common: FORCE
 	@for i in $(SUBDIRS) $(CLEANDIRS); do		\
 		echo "  Entering subdirectory $$i";		\
 		( cd $$i; $(MAKE) $(MFLAGS) veryclean );	\
+		if test $$? != 0 ; then exit 1; fi ;	\
 		echo " ";								\
 	done
 
@@ -45,6 +49,7 @@ depend-common: FORCE
 	@for i in $(SUBDIRS) $(DEPENDDIRS); do		\
 		echo "  Entering subdirectory $$i";		\
 		( cd $$i; $(MAKE) $(MFLAGS) depend );	\
+		if test $$? != 0 ; then exit 1; fi ;	\
 		echo " ";								\
 	done
 
diff --git a/servers/slapd/Makefile.in b/servers/slapd/Makefile.in
index e8060b37b6b18d820737b1c2c49ab9e01db374a8..4fd313999c86166dc6226c9fbe06539bd026bc10 100644
--- a/servers/slapd/Makefile.in
+++ b/servers/slapd/Makefile.in
@@ -163,6 +163,7 @@ sslapd: version.o
 		if [ -d $$i ]; then \
 			echo " "; echo "  cd $$i; $(MAKE) $(MFLAGS) all"; \
 			( cd $$i; $(MAKE) $(MFLAGS) all ); \
+			if test $$? != 0 ; then exit 1; fi ; \
 		fi; \
 	done; \
 	echo " "
@@ -199,6 +200,7 @@ depend-local-srv: FORCE
 		if [ -d $$i ]; then \
 			echo; echo "  cd $$i; $(MAKE) $(MFLAGS) depend"; \
 			( cd $$i; $(MAKE) $(MFLAGS) depend ); \
+			if test $$? != 0 ; then exit 1; fi ; \
 		fi; \
 	done
 	@echo ""
@@ -211,6 +213,7 @@ clean-local-srv: FORCE
 		if [ -d $$i ]; then \
 			echo; echo "  cd $$i; $(MAKE) $(MFLAGS) clean"; \
 			( cd $$i; $(MAKE) $(MFLAGS) clean ); \
+			if test $$? != 0 ; then exit 1; fi ; \
 		fi; \
 	done
 	rm -f *.tmp all-cffiles
@@ -235,6 +238,7 @@ install-slapd: FORCE
 		if [ -d $$i ]; then \
 			echo; echo "  cd $$i; $(MAKE) $(MFLAGS) install"; \
 			( cd $$i; $(MAKE) $(MFLAGS) install ); \
+			if test $$? != 0 ; then exit 1; fi ; \
 		fi; \
 	    done; \
 	fi