diff --git a/Makefile b/Makefile
index 9c3c3dc14a65b3923811d3edca394f45b98d4c06_TWFrZWZpbGU=..198e2da3ee207fedff9c762ee19b780713a37f6d_TWFrZWZpbGU= 100644
--- a/Makefile
+++ b/Makefile
@@ -137,5 +137,6 @@
 osx:
 	@which bdist_mpkg >/dev/null || \
 	   (echo "Missing bdist_mpkg (easy_install bdist_mpkg)"; false)
+	rm -rf dist/mercurial-*.mpkg
 	bdist_mpkg setup.py
 	mkdir -p packages/osx
@@ -140,3 +141,4 @@
 	bdist_mpkg setup.py
 	mkdir -p packages/osx
+	N=`cd dist && echo mercurial-*.mpkg | sed 's,\.mpkg$$,,'` && hdiutil create -srcfolder dist/$$N.mpkg/ -scrub -volname "$$N" -ov packages/osx/$$N.dmg
 	rm -rf dist/mercurial-*.mpkg
@@ -142,5 +144,4 @@
 	rm -rf dist/mercurial-*.mpkg
-	mv dist/mercurial*macosx*.zip packages/osx
 
 fedora:
 	mkdir -p packages/fedora
diff --git a/setup.py b/setup.py
index 9c3c3dc14a65b3923811d3edca394f45b98d4c06_c2V0dXAucHk=..198e2da3ee207fedff9c762ee19b780713a37f6d_c2V0dXAucHk= 100644
--- a/setup.py
+++ b/setup.py
@@ -583,7 +583,7 @@
       cmdclass=cmdclass,
       distclass=hgdist,
       options={'py2exe': {'packages': ['hgext', 'email']},
-               'bdist_mpkg': {'zipdist': True,
+               'bdist_mpkg': {'zipdist': False,
                               'license': 'COPYING',
                               'readme': 'contrib/macosx/Readme.html',
                               'welcome': 'contrib/macosx/Welcome.html',