diff --git a/openwrt/package/rules.mk b/openwrt/package/rules.mk
index 1ca03b7593b3ad2fe4f3ab349831e38df6c5b946..53b868d1aca14cb391f4a15c40cb43c77079133d 100644
--- a/openwrt/package/rules.mk
+++ b/openwrt/package/rules.mk
@@ -27,7 +27,12 @@ $$(INFO_$(1)): $$(IPKG_$(1))
 $(2)-clean:
 	rm -f $$(IPKG_$(1))
 clean: $(2)-clean
-
+mostlyclean:
+rebuild: mostlyclean
+	if [ -f $(PKG_BUILD_DIR)/.built ]; then \
+		$(MAKE) clean; \
+	fi
+	$(MAKE) compile
 endef
 
 ifneq ($(strip $(PKG_SOURCE)),)