diff --git a/.gitignore b/.gitignore
index 2ad0583b40886985fa39bad8193ced2677f0c17c..4885010f20a88ec3452b26cfbc596a061f6cd848 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,8 +30,11 @@ pd.pc
 .svn
 packages/linux_make/build/
 pd/src/makefile
+pd/src/config.h
+
 l2ork_addons/cwiid/defs.mak
 CVS
 .DS_Store
 .vscode/
-pd/nw/nw/
\ No newline at end of file
+pd/nw/nw/
+*.dmg
\ No newline at end of file
diff --git a/packages/darwin_app/Makefile b/packages/darwin_app/Makefile
index 35a8dab7804d449a17cc407653dc66ee788a32bb..f6b68f0e2fef53b25ef88c2e9df108404a2ddd84 100644
--- a/packages/darwin_app/Makefile
+++ b/packages/darwin_app/Makefile
@@ -253,11 +253,14 @@ dmg:
 distclean: package_clean
 	$(MAKE) -C $(packages_src) $(DEST_PATHS) distclean
 
+# We need to do the externals clean after individual cleans in all dists
+# because otherwise the individual cleans will produce more garbage...
+clean: oldclean externals_clean
 
-clean: package_clean
+# This is the original 'clean' target.
+oldclean: package_clean
 	$(MAKE) -C $(packages_src) $(DEST_PATHS) clean
 
-
 package_clean: darwin_app_clean spotlight_importer_clean
 	-chmod -R u+w -- $(BUILD_BASE)
 	-rm -rf -- $(BUILD_BASE)
@@ -287,6 +290,25 @@ darwin_app_clean:
 	-rm -rf -- Pd-l2ork-K12.app
 	-rm -f -- k12-launcher/Info.plist
 
+# This is a temp solution for certain build files that didn't get properly cleaned up
+# long ago and got stuck in the git repo.
+externals_clean:
+	-rm -f -- $(cvs_root_dir)/externals/OSCx/*/Makefile
+	-rm -rf -- $(cvs_root_dir)/externals/moocow/*/common/*
+	-rm -rf -- $(cvs_root_dir)/externals/moocow/*/a.out.dSYM/*
+	-rm -f -- $(cvs_root_dir)/externals/zexy/Makefile
+	-rm -f -- $(cvs_root_dir)/externals/zexy/Makefile.in
+	-rm -f -- $(cvs_root_dir)/externals/zexy/*/Makefile
+	-rm -f -- $(cvs_root_dir)/externals/zexy/*/Makefile.in
+	-rm -f -- $(cvs_root_dir)/externals/zexy/compile
+	-rm -f -- $(cvs_root_dir)/externals/zexy/config.*
+	-rm -f -- $(cvs_root_dir)/externals/zexy/depcomp
+	-rm -f -- $(cvs_root_dir)/externals/zexy/install-sh
+	-rm -f -- $(cvs_root_dir)/externals/zexy/missing
+	-rm -f -- $(cvs_root_dir)/externals/zexy/stamp-h1
+	-rm -f -- $(cvs_root_dir)/externals/zexy/test-driver
+	-rm -f -- $(cvs_root_dir)/externals/zexy/*.pd
+	-rm -f -- $(cvs_root_dir)/externals/pdp/pdp_config.h
 
 #==============================================================================#
 #
diff --git a/packages/darwin_app/k12-launcher/app-k12.icns b/packages/darwin_app/k12-launcher/app-k12.icns
index e1d4e7b713a8e2dc9b893748f9f679fc016ae570..0c4c5465e364a836402972982dc54f2d972e11a1 100644
Binary files a/packages/darwin_app/k12-launcher/app-k12.icns and b/packages/darwin_app/k12-launcher/app-k12.icns differ
diff --git a/pd/src/makefile.in b/pd/src/makefile.in
index 59e0bc88d06f1c0cc486af582451f269eac96bc9..75931bfaea57ab32d8c729357f8832a30821a95f 100644
--- a/pd/src/makefile.in
+++ b/pd/src/makefile.in
@@ -219,6 +219,8 @@ local-clean:
 	-rm -f ../obj/* $(PDEXEC) $(BIN_DIR)/pdsend \
 	    $(BIN_DIR)/pdreceive $(BIN_DIR)/pd-watchdog m_stamp.c
 	-rm -f -- *~
+	-rm -f config.h
+	-rm -f s_version.h
 	-(cd ../doc/6.externs; rm -f *.pd_linux)
 	-rm -f makefile.dependencies
 	touch makefile.dependencies