diff --git a/Makefile.in b/Makefile.in
index 7b3f8e08fe3b6d66b9db0355f5ba5da1a7b0fb8e..923a33edbc2ccd47debc9a801c9dc5fc7ffd1bd7 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -132,10 +132,12 @@ $(TESTSUBDIRS:%=%/__crosstest__): tools include
 # Misc rules
 
 TAGS etags:
-	(test -d .git && git-ls-files '*.[chly]' '*.idl' || find -L $(TOPSRCDIR) -name '*.[ch]' -print) | etags -
+	$(RM) TAGS
+	(test -d .git && git-ls-files '*.[chly]' '*.idl' || find -L $(TOPSRCDIR) -name '*.[ch]' -print) | xargs etags -a
 
 tags ctags:
-	(test -d .git && git-ls-files '*.[chly]' '*.idl' || find -L $(TOPSRCDIR) -name '*.[ch]' -print) | ctags -
+	$(RM) tags
+	(test -d .git && git-ls-files '*.[chly]' '*.idl' || find -L $(TOPSRCDIR) -name '*.[ch]' -print) | xargs ctags -a
 
 manpages htmlpages sgmlpages: dummy
 	@cd documentation && $(MAKE) $@