diff --git a/Makefile b/Makefile
index 13f58aebc61847a476583ea030a62d4e9b89fa56..7ec5bdbc8ce9d9617017b61b955f9e9655f89ac6 100644
--- a/Makefile
+++ b/Makefile
@@ -4,10 +4,10 @@ DIRS = $(RIOTCPU)/$(CPU) core drivers sys
 
 all:
 	mkdir -p $(BINDIR)
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 clean:
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
 	-@if [ -d $(BINDIR) ] ; \
 	then rm -rf $(BINDIR) ; \
 	fi
diff --git a/Makefile.include b/Makefile.include
index 0946733ab1bae5384d073dbea9273bf5a19b725a..cc09992626d9a75051c43c97bf3c6c43afc153a0 100644
--- a/Makefile.include
+++ b/Makefile.include
@@ -128,7 +128,7 @@ $(USEPKG:%=${BINDIR}%.a)::
 	"$(MAKE)" -C $(RIOTBASE)/pkg/$(patsubst ${BINDIR}%.a,%,$@)
 
 clean:
-	@for i in $(USEPKG) ; do "$(MAKE)" -C $(RIOTBASE)/pkg/$$i clean ; done ;
+	@for i in $(USEPKG) ; do "$(MAKE)" -C $(RIOTBASE)/pkg/$$i clean || exit 1; done ;
 	"$(MAKE)" -C $(RIOTBOARD)/$(BOARD) clean
 	"$(MAKE)" -C $(RIOTBASE) clean
 	rm -rf $(BINDIR)
diff --git a/boards/avsextrem/Makefile b/boards/avsextrem/Makefile
index 9a90303614ff1603521ea22e477807c9a1a07fa8..721109f21493a5ed04ab5b37b9c5b922c37ae38d 100644
--- a/boards/avsextrem/Makefile
+++ b/boards/avsextrem/Makefile
@@ -3,9 +3,9 @@ MODULE =$(BOARD)_base
 DIRS = drivers $(RIOTBOARD)/msba2-common
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/boards/chronos/Makefile b/boards/chronos/Makefile
index 30a260e0efc90978e66e37e09e151e2a6640d1d2..9c583c8552a7df7fcf2b0d0a34b30454887f29cd 100644
--- a/boards/chronos/Makefile
+++ b/boards/chronos/Makefile
@@ -4,9 +4,9 @@ INCLUDES += -I$(RIOTBOARD)/$(BOARD)/drivers/include
 DIRS = drivers
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/boards/msb-430-common/Makefile b/boards/msb-430-common/Makefile
index 08503227da87bf13e8d5b73415be6753bf007748..ad11fe9974d6928f114d1e64d08aa907020def81 100644
--- a/boards/msb-430-common/Makefile
+++ b/boards/msb-430-common/Makefile
@@ -3,9 +3,9 @@ MODULE =$(BOARD)_base
 DIRS = drivers
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/boards/msb-430/Makefile b/boards/msb-430/Makefile
index ecf719f25851671eef024d749cb860700710c159..e847666a50bf672d65dd1127ffff3b8469fc84ad 100644
--- a/boards/msb-430/Makefile
+++ b/boards/msb-430/Makefile
@@ -3,9 +3,9 @@ MODULE =$(BOARD)_base
 DIRS = $(RIOTBOARD)/msb-430-common
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/boards/msb-430h/Makefile b/boards/msb-430h/Makefile
index ecf719f25851671eef024d749cb860700710c159..e847666a50bf672d65dd1127ffff3b8469fc84ad 100644
--- a/boards/msb-430h/Makefile
+++ b/boards/msb-430h/Makefile
@@ -3,9 +3,9 @@ MODULE =$(BOARD)_base
 DIRS = $(RIOTBOARD)/msb-430-common
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/boards/msba2-common/Makefile b/boards/msba2-common/Makefile
index 08503227da87bf13e8d5b73415be6753bf007748..ad11fe9974d6928f114d1e64d08aa907020def81 100644
--- a/boards/msba2-common/Makefile
+++ b/boards/msba2-common/Makefile
@@ -3,9 +3,9 @@ MODULE =$(BOARD)_base
 DIRS = drivers
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/boards/msba2/Makefile b/boards/msba2/Makefile
index c7a205595a9a79130134be1da72dc8e8ebee1521..1b0a2c2590c04f11dbbcf3b0cf7f468ce009619a 100644
--- a/boards/msba2/Makefile
+++ b/boards/msba2/Makefile
@@ -4,9 +4,9 @@ INCLUDES += -I$(RIOTBASE)/drivers/cc110x
 DIRS = $(RIOTBOARD)/msba2-common
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/boards/native/Makefile b/boards/native/Makefile
index 6f167afc4b5ffb4e7a8fa2c8a01bbc3bf13c37ec..2953d080a8a5cf0267e994f3bc035235e5c85c4f 100644
--- a/boards/native/Makefile
+++ b/boards/native/Makefile
@@ -3,7 +3,7 @@ MODULE =$(BOARD)_base
 DIRS = drivers
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
@@ -14,4 +14,4 @@ $(BINDIR)%.o: %.c
 
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/boards/native/drivers/Makefile b/boards/native/drivers/Makefile
index bde1eecb40e55f050cb6e444602c8f2110f3cbd1..ce65f4ca8c5a29b3676ee0d8d3008146e08ddcee 100644
--- a/boards/native/drivers/Makefile
+++ b/boards/native/drivers/Makefile
@@ -1,7 +1,7 @@
 MODULE =$(BOARD)_base
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
diff --git a/boards/pttu/Makefile b/boards/pttu/Makefile
index c7a205595a9a79130134be1da72dc8e8ebee1521..1b0a2c2590c04f11dbbcf3b0cf7f468ce009619a 100644
--- a/boards/pttu/Makefile
+++ b/boards/pttu/Makefile
@@ -4,9 +4,9 @@ INCLUDES += -I$(RIOTBASE)/drivers/cc110x
 DIRS = $(RIOTBOARD)/msba2-common
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/boards/redbee-econotag/Makefile b/boards/redbee-econotag/Makefile
index 08503227da87bf13e8d5b73415be6753bf007748..ad11fe9974d6928f114d1e64d08aa907020def81 100644
--- a/boards/redbee-econotag/Makefile
+++ b/boards/redbee-econotag/Makefile
@@ -3,9 +3,9 @@ MODULE =$(BOARD)_base
 DIRS = drivers
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/boards/wsn430-common/Makefile b/boards/wsn430-common/Makefile
index 08503227da87bf13e8d5b73415be6753bf007748..ad11fe9974d6928f114d1e64d08aa907020def81 100644
--- a/boards/wsn430-common/Makefile
+++ b/boards/wsn430-common/Makefile
@@ -3,9 +3,9 @@ MODULE =$(BOARD)_base
 DIRS = drivers
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/boards/wsn430-v1_3b/Makefile b/boards/wsn430-v1_3b/Makefile
index 7f7fba05eafe74122353c887d150e61a6d9f8475..1c90d58cf56a7fcda5e056afefdae749d8393cbf 100644
--- a/boards/wsn430-v1_3b/Makefile
+++ b/boards/wsn430-v1_3b/Makefile
@@ -3,9 +3,9 @@ MODULE =$(BOARD)_base
 DIRS = $(RIOTBOARD)/wsn430-common
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/boards/wsn430-v1_4/Makefile b/boards/wsn430-v1_4/Makefile
index 6d7ece3cbe9cc0a42e4135ca2b065595d5e54411..b91f1a85ded51201fafec8fe7105f4f1501e035f 100644
--- a/boards/wsn430-v1_4/Makefile
+++ b/boards/wsn430-v1_4/Makefile
@@ -3,9 +3,9 @@ MODULE = $(BOARD)_base
 DIRS = $(RIOTBOARD)/wsn430-common
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/cpu/cc430/Makefile b/cpu/cc430/Makefile
index 3e10d1237ad615784e47c543a11a2f2644368628..d1d12a013e21b894bb862cf46c0d1fae3404d0b6 100644
--- a/cpu/cc430/Makefile
+++ b/cpu/cc430/Makefile
@@ -3,9 +3,9 @@ MODULE = cpu
 DIRS = $(RIOTCPU)/msp430-common
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/cpu/lpc1768/Makefile b/cpu/lpc1768/Makefile
index 0a08aff84a0e70386d419c572c8a01a1f86521b4..35034ca1c7dfdd77446b2b73a73a256164bcd2fd 100644
--- a/cpu/lpc1768/Makefile
+++ b/cpu/lpc1768/Makefile
@@ -12,7 +12,7 @@ all: $(BINDIR)$(MODULE).a
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
 
 # This is needed for NXP Cortex M devices
 nxpsum:
diff --git a/cpu/lpc2387/Makefile b/cpu/lpc2387/Makefile
index aea6240925294cd6062b170047e0fecc8ed8d0b2..6674af3b2787697cb77688fee9660d1e05b71af9 100644
--- a/cpu/lpc2387/Makefile
+++ b/cpu/lpc2387/Makefile
@@ -17,9 +17,9 @@ ifneq (,$(filter i2c,$(USEMODULE)))
 endif
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/cpu/mc1322x/Makefile b/cpu/mc1322x/Makefile
index 2b1f4cbbd489fb908836bdc48c21f8e3277b5f11..7b4d6686247072353590d8db4507da1d8a76c359 100644
--- a/cpu/mc1322x/Makefile
+++ b/cpu/mc1322x/Makefile
@@ -9,9 +9,9 @@ ifneq (,$(filter mc1322x_asm,$(USEMODULE)))
 endif
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/cpu/msp430-common/Makefile b/cpu/msp430-common/Makefile
index 4a029b5c36fdcb0b79d688641f25b0e69e258dfd..7ddcd45ed8f14829935f50942b679421dab8cd7c 100644
--- a/cpu/msp430-common/Makefile
+++ b/cpu/msp430-common/Makefile
@@ -3,9 +3,9 @@ MODULE =msp430_common
 DIRS =
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/cpu/msp430x16x/Makefile b/cpu/msp430x16x/Makefile
index 3e58e838070eb11fda42c8ec52f45f3cb4cb9fa3..ea6d8956afd0e3bcaad295a4661232cc5b178373 100644
--- a/cpu/msp430x16x/Makefile
+++ b/cpu/msp430x16x/Makefile
@@ -5,9 +5,9 @@ include $(RIOTCPU)/$(CPU)/Makefile.include
 DIRS = $(RIOTCPU)/msp430-common/
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/cpu/native/Makefile b/cpu/native/Makefile
index 21500211a1b3799c9de3c6f3b9b106dc329f7426..48c3808100e8ebfb2c33da663a2225bf5c352b9a 100644
--- a/cpu/native/Makefile
+++ b/cpu/native/Makefile
@@ -9,7 +9,7 @@ ifneq (,$(filter nativenet,$(USEMODULE)))
 endif
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
@@ -20,4 +20,4 @@ $(BINDIR)%.o: %.c
 
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/drivers/Makefile b/drivers/Makefile
index e5fe1f7e9ffe803e0798fa725a1755293fd88892..f61b434aced5a131cc3feeb09d2c5b7db614e58f 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -36,10 +36,10 @@ ifneq (,$(filter lm75a,$(USEMODULE)))
 endif
 
 all:
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 # remove compilation products
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/drivers/at86rf231/Makefile b/drivers/at86rf231/Makefile
index 393d4fd4ec65bfe0a1d88c2b3aae8ca6742f2ac9..ded5b0edcfc9c5a1578cc3b305f2ff5bdfb79070 100644
--- a/drivers/at86rf231/Makefile
+++ b/drivers/at86rf231/Makefile
@@ -3,9 +3,9 @@ MODULE =at86rf231
 DIRS =
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/drivers/cc110x_ng/Makefile b/drivers/cc110x_ng/Makefile
index 92b346a8604bc3dc489166074dd83321e1bf2390..fbb9508c7b9cf459f06f62713a4033a46ba92dd1 100644
--- a/drivers/cc110x_ng/Makefile
+++ b/drivers/cc110x_ng/Makefile
@@ -12,9 +12,9 @@ ifneq (,$(filter wsn430-v1_3b,$(BOARD)))
 endif
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/drivers/cc2420/Makefile b/drivers/cc2420/Makefile
index a9e952177f22b66927add5d85b6a948742a03535..05d164a17cce09eb9cd9b9243a99fc5cfd895e12 100644
--- a/drivers/cc2420/Makefile
+++ b/drivers/cc2420/Makefile
@@ -3,9 +3,9 @@ MODULE =cc2420
 DIRS =
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/pkg/openwsn/Makefile.in b/pkg/openwsn/Makefile.in
index 2422b2c7c1d55f2cf67dc332cb36e8a969acae07..3d7a2fc6f2d92f33e6b21f7a3d890a8bc7c5d309 100644
--- a/pkg/openwsn/Makefile.in
+++ b/pkg/openwsn/Makefile.in
@@ -2,8 +2,8 @@ DIRS =
 DIRS += openwsn
 
 all::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 # remove compilation products
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
diff --git a/pkg/openwsn/patch.txt b/pkg/openwsn/patch.txt
index f8130ea73a17dd3763e7b4f7631311c0d681dbd8..f5e5733cbb5e1e42e654d5917ce398429c2f1774 100644
--- a/pkg/openwsn/patch.txt
+++ b/pkg/openwsn/patch.txt
@@ -18663,7 +18663,7 @@ diff -crB openwsn/07-App/Makefile ../../../sys/net/openwsn/07-App/Makefile
 + DIRS += udpstorm
 + 
 + all: $(BINDIR)$(SUBMOD)
-+ 	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
++ 	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 + 
 + $(BINDIR)$(SUBMOD): $(OBJ)
 + 	$(AD)$(AR) rcs $(BINDIR)$(MODULE) $(OBJ)
@@ -18679,7 +18679,7 @@ diff -crB openwsn/07-App/Makefile ../../../sys/net/openwsn/07-App/Makefile
 + 	@printf "$(BINDIR)"|cat - $(BINDIR)$*.d > /tmp/riot_out && mv /tmp/riot_out $(BINDIR)$*.d
 + 
 + clean::
-+ 	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
++ 	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
 diff -crB openwsn/07-App/heli/heli.c ../../../sys/net/openwsn/07-App/heli/heli.c
 *** openwsn/07-App/heli/heli.c	Thu Mar 21 21:36:59 2013
 --- ../../../sys/net/openwsn/07-App/heli/heli.c	Wed Jan 15 13:48:27 2014
@@ -27111,7 +27111,7 @@ diff -crB openwsn/Makefile ../../../sys/net/openwsn/Makefile
 + DIRS += 07-App
 + 
 + all: $(BINDIR)$(MODULE)
-+ 	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
++ 	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 + 
 + $(BINDIR)$(MODULE): $(OBJ)
 + 	$(AD)$(AR) rcs $(BINDIR)$(MODULE) $(OBJ)
@@ -27129,7 +27129,7 @@ diff -crB openwsn/Makefile ../../../sys/net/openwsn/Makefile
 + 
 + # remove compilation products
 + clean::
-+ 	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
++ 	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;
 diff -crB openwsn/board_info.h ../../../sys/net/openwsn/board_info.h
 *** openwsn/board_info.h	Thu Mar 21 21:36:59 2013
 --- ../../../sys/net/openwsn/board_info.h	Wed Jan 15 13:48:27 2014
diff --git a/sys/Makefile b/sys/Makefile
index 69bc1a233a031d2b2815cc5bbf1a9ca74c06a53a..f6e62b502d429689175b4ec6677d30bde260ecb4 100644
--- a/sys/Makefile
+++ b/sys/Makefile
@@ -107,10 +107,10 @@ ifneq (,$(findstring quad_math,$(USEMODULE)))
 endif
 
 all: $(BINDIR)$(MODULE).a
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i || exit 1; done ;
 
 include $(RIOTBASE)/Makefile.base
 
 # remove compilation products
 clean::
-	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean ; done ;
+	@for i in $(DIRS) ; do "$(MAKE)" -C $$i clean || exit 1; done ;