diff --git a/Makefile b/Makefile
index 0e47af8ea73928fd78961db0e758b78e08a1de07..914f6a4051dacc3a5c8c7cac448322e8da3b8b1c 100644
--- a/Makefile
+++ b/Makefile
@@ -35,14 +35,20 @@ update-sources:
 
 define MAKE_TARGET
 
+$(1)_$(2):
+	@echo $lang; cd $(2) && $(MAKE) -f ../makefile.locale $(1) lang=$(2)
 
-$(1): po4a-stamp
-	$(foreach lang,$(ALL_LANGUAGES),@echo $lang; cd $(lang) && $(MAKE) -f ../makefile.locale $(1) lang=$(lang))
+$(1): $(1)_$(2)
+
+.PHONY: $(1)_$(2)
 
 endef
 
+.PHONY: $(TARGETS)
+
+man all html : po4a-stamp
 
-$(foreach target, $(TARGETS), $(eval $(call MAKE_TARGET,$(target))))
+$(foreach lang,$(ALL_LANGUAGES),$(foreach target, $(TARGETS), $(eval $(call MAKE_TARGET,$(target),$(lang)))))
 
 mrproper: mrproper-local