diff --git a/Lib/lib-old/packmail.py b/Lib/lib-old/packmail.py
index c7bebe8..a964d6d 100644
--- a/Lib/lib-old/packmail.py
+++ b/Lib/lib-old/packmail.py
@@ -3,6 +3,7 @@
 import mac
 import macpath
 from stat import ST_MTIME
+import string
 
 # Pack one file
 def pack(outfp, file, name):
@@ -46,3 +47,28 @@
 			print 'No.'
 	todo.sort()
 	packsome(outfp, dirname, todo)
+
+# Pack a whole tree (no exceptions)
+def packtree(outfp, dirname):
+	print 'packtree', dirname
+	outfp.write('mkdir ' + unixfix(dirname) + '\n')
+	names = mac.listdir(dirname)
+	subdirs = []
+	for name in names:
+		fullname = macpath.cat(dirname, name)
+		if macpath.isdir(fullname):
+			subdirs.append(fullname)
+		else:
+			print 'pack', fullname
+			pack(outfp, fullname, unixfix(fullname))
+	for subdirname in subdirs:
+		packtree(outfp, subdirname)
+
+def unixfix(name):
+	comps = string.splitfields(name, ':')
+	res = ''
+	for comp in comps:
+		if comp:
+			if res: res = res + '/'
+			res = res + comp
+	return res
diff --git a/Lib/packmail.py b/Lib/packmail.py
index c7bebe8..a964d6d 100644
--- a/Lib/packmail.py
+++ b/Lib/packmail.py
@@ -3,6 +3,7 @@
 import mac
 import macpath
 from stat import ST_MTIME
+import string
 
 # Pack one file
 def pack(outfp, file, name):
@@ -46,3 +47,28 @@
 			print 'No.'
 	todo.sort()
 	packsome(outfp, dirname, todo)
+
+# Pack a whole tree (no exceptions)
+def packtree(outfp, dirname):
+	print 'packtree', dirname
+	outfp.write('mkdir ' + unixfix(dirname) + '\n')
+	names = mac.listdir(dirname)
+	subdirs = []
+	for name in names:
+		fullname = macpath.cat(dirname, name)
+		if macpath.isdir(fullname):
+			subdirs.append(fullname)
+		else:
+			print 'pack', fullname
+			pack(outfp, fullname, unixfix(fullname))
+	for subdirname in subdirs:
+		packtree(outfp, subdirname)
+
+def unixfix(name):
+	comps = string.splitfields(name, ':')
+	res = ''
+	for comp in comps:
+		if comp:
+			if res: res = res + '/'
+			res = res + comp
+	return res
