[Bug #829532] Invoking os.makedirs() with an argument that contains a
    directory name with a single dot fails.  The patch skips creating
    directories named os.curdir. (Patch by Bram Moolenaar)

2.3 bugfix candidate.
diff --git a/Lib/os.py b/Lib/os.py
index 128351e..8cec912 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -152,6 +152,8 @@
         head, tail = path.split(head)
     if head and tail and not path.exists(head):
         makedirs(head, mode)
+        if tail == curdir:           # xxx/newdir/. exists if xxx/newdir exists
+            return
     mkdir(name, mode)
 
 def removedirs(name):