diff --git a/Makefile b/Makefile
index e56535eac4e62aed6e01cf231714fe992b446a1b..970b0896ca80b3ae3548b15cbcdf31da1600e0e6 100644
--- a/Makefile
+++ b/Makefile
@@ -45,10 +45,10 @@ $(BUILD_DIR)/.prepared: Makefile
 clean: FORCE
 	rm -rf $(BUILD_DIR) $(BIN_DIR)
 	$(MAKE) target/linux/clean
-	rm -rf $(TMP_DIR)
 
 dirclean: clean
 	rm -rf $(STAGING_DIR) $(STAGING_DIR_HOST) $(STAGING_DIR_TOOLCHAIN) $(TOOLCHAIN_DIR) $(BUILD_DIR_HOST)
+	rm -rf $(TMP_DIR)
 
 # check prerequisites before starting to build
 prereq: $(package/stamp-prereq) $(target/stamp-prereq) ;
diff --git a/include/toplevel.mk b/include/toplevel.mk
index 7930223650c7e7cd372bb03b14fb727473c42269..040ff51249d5e057de22ece99ebc7380b906615e 100644
--- a/include/toplevel.mk
+++ b/include/toplevel.mk
@@ -98,7 +98,7 @@ download: .config FORCE
 	$(MAKE) -j1 package/download
 	$(MAKE) -j1 target/download
 
-clean dirclean:
+clean dirclean: .config
 	@$(MAKE) $@ 
 
 prereq:: .config