More tweaks to 'mkpath()':
  - deal with empty tail from os.path.split() (eg. from trailing slash,
    or backslash, or whatever)
  - check PATH_CREATED hash inside loop as well
diff --git a/Lib/distutils/util.py b/Lib/distutils/util.py
index 85b04e7..aee95d3 100644
--- a/Lib/distutils/util.py
+++ b/Lib/distutils/util.py
@@ -43,6 +43,8 @@
         return
 
     (head, tail) = os.path.split (name)
+    if not tail:                        # in case 'name' has trailing slash
+        (head, tail) = os.path.split (head)
     tails = [tail]                      # stack of lone dirs to create
     
     while head and tail and not os.path.isdir (head):
@@ -59,6 +61,9 @@
     for d in tails:
         #print "head = %s, d = %s: " % (head, d),
         head = os.path.join (head, d)
+        if PATH_CREATED.get (head):
+            continue
+
         if verbose:
             print "creating", head