diff --git a/Makefile b/Makefile
index 2d3758df38229df5b76c91c600e1edb6a5ee3a86..dbb4a0cce17b56226b42b25a23a4fd0a387182c5 100644
--- a/Makefile
+++ b/Makefile
@@ -92,10 +92,12 @@ menuconfig: scripts/config/mconf tmp/.config-target.in tmp/.config-package.in FO
 	fi
 	$< Config.in
 
+kernel_oldconfig: .config FORCE
+	$(NO_TRACE_MAKE) -C target/linux oldconfig
+
 kernel_menuconfig: .config FORCE
 	$(NO_TRACE_MAKE) -C target/linux menuconfig
 
-
 package/% target/%: tmp/.packageinfo
 toolchain/% package/% target/%: tmp/.targetinfo
 package/% target/% tools/% toolchain/%: FORCE
diff --git a/include/kernel-build.mk b/include/kernel-build.mk
index 1df80d16f6f85cd4a58ddd9e3e4442efd099c25e..1e63279c08173cdaf54715fa06d2f7cc1cea8298 100644
--- a/include/kernel-build.mk
+++ b/include/kernel-build.mk
@@ -171,10 +171,10 @@ $(eval $(call shexport,Target/Description))
 download: $(DL_DIR)/$(LINUX_SOURCE)
 prepare: $(STAMP_CONFIGURED)
 compile: $(LINUX_DIR)/.modules
-menuconfig: $(STAMP_PREPARED) FORCE
+oldconfig menuconfig: $(STAMP_PREPARED) FORCE
 	$(SCRIPT_DIR)/config.pl '+' $(GENERIC_LINUX_CONFIG) $(LINUX_CONFIG) > $(LINUX_DIR)/.config
 	$(call Kernel/Configure)
-	$(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKEOPTS) menuconfig
+	$(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKEOPTS) $@
 	$(SCRIPT_DIR)/config.pl '>' $(GENERIC_LINUX_CONFIG) $(LINUX_DIR)/.config > $(LINUX_CONFIG)
 
 install: $(LINUX_DIR)/.image
diff --git a/target/linux/Makefile b/target/linux/Makefile
index e1248691501fe0df3431c2e1096de435e543f00b..5a1ca723a6305338304e4b7227eb41297b09c237 100644
--- a/target/linux/Makefile
+++ b/target/linux/Makefile
@@ -7,6 +7,6 @@
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/target.mk
 
-clean download prepare compile install menuconfig update refresh: FORCE
+clean download prepare compile install menuconfig oldconfig update refresh: FORCE
 	$(MAKE) -C $(BOARD)-$(KERNEL) $@