diff --git a/Lib/plat-mac/bundlebuilder.py b/Lib/plat-mac/bundlebuilder.py
index d8c5557..9d50f91 100755
--- a/Lib/plat-mac/bundlebuilder.py
+++ b/Lib/plat-mac/bundlebuilder.py
@@ -36,6 +36,7 @@
 import getopt
 from plistlib import Plist
 from types import FunctionType as function
+import macresource
 
 
 class BundleBuilderError(Exception): pass
@@ -188,6 +189,8 @@
 			dst = pathjoin(self.bundlepath, dst)
 			if self.symlink:
 				symlink(src, dst, mkdirs=1)
+			elif os.path.splitext(src)[1] == '.rsrc':
+				macresource.install(src, dst, mkdirs=1)
 			else:
 				copy(src, dst, mkdirs=1)
 
diff --git a/Lib/plat-mac/macresource.py b/Lib/plat-mac/macresource.py
index 7e99c00..16eed00 100644
--- a/Lib/plat-mac/macresource.py
+++ b/Lib/plat-mac/macresource.py
@@ -3,6 +3,8 @@
 from Carbon import Res
 import os
 import sys
+import MacOS
+import macostools
 
 class ArgumentError(TypeError): pass
 class ResourceFileNotFoundError(ImportError): pass
@@ -99,16 +101,51 @@
 	mapping."""
 	need('Estr', 1, filename="errors.rsrc", modname=__name__)
 	
-def _decode(pathname, verbose=0):
+def _decode(pathname, verbose=0, newpathname=None):
 	# Decode an AppleSingle resource file, return the new pathname.
-	newpathname = pathname + '.df.rsrc'
-	if os.path.exists(newpathname) and \
+	if not newpathname:
+		newpathname = pathname + '.df.rsrc'
+		if os.path.exists(newpathname) and \
 			os.stat(newpathname).st_mtime >= os.stat(pathname).st_mtime:
-		return newpathname
+			return newpathname
 	if verbose:
 		print 'Decoding', pathname
 	import applesingle
 	applesingle.decode(pathname, newpathname, resonly=1)
 	return newpathname
 	
-	
\ No newline at end of file
+def install(src, dst, mkdirs=0):
+	"""Copy a resource file. The result will always be a datafork-based
+	resource file, whether the source is datafork-based, resource-fork
+	based or AppleSingle-encoded."""
+	if mkdirs:
+		macostools.mkdirs(os.path.split(dst)[0])
+	try:
+		refno = Res.FSOpenResourceFile(src, u'', 1)
+	except Res.Error, arg:
+		if arg[0] != -199:
+			# -199 is "bad resource map"
+			raise
+	else:
+		# Resource-fork based. Simply copy.
+		Res.CloseResFile(refno)
+		macostools.copy(src, dst)
+		
+	try:
+		refno = Res.FSpOpenResFile(src, 1)
+	except Res.Error, arg:
+		if not arg[0] in (-37, -39):
+			raise
+	else:
+		Res.CloseResFile(refno)
+		BUFSIZ=0x80000      # Copy in 0.5Mb chunks
+		ifp = MacOS.openrf(src, '*rb')
+		ofp = open(dst, 'wb')
+		d = ifp.read(BUFSIZ)
+		while d:
+			ofp.write(d)
+			d = ifp.read(BUFSIZ)
+		ifp.close()
+		ofp.close()
+		
+	_decode(src, newpathname=dst)
