diff --git a/Lib/test/test_macpath.py b/Lib/test/test_macpath.py
new file mode 100644
index 0000000..67b1bed
--- /dev/null
+++ b/Lib/test/test_macpath.py
@@ -0,0 +1,64 @@
+import macpath
+from test import test_support
+import unittest
+
+
+class MacPathTestCase(unittest.TestCase):
+
+    def test_abspath(self):
+        self.assert_(macpath.abspath("xx:yy") == "xx:yy")
+
+    def test_isabs(self):
+        isabs = macpath.isabs
+        self.assert_(isabs("xx:yy"))
+        self.assert_(isabs("xx:yy:"))
+        self.assert_(isabs("xx:"))
+        self.failIf(isabs("foo"))
+        self.failIf(isabs(":foo"))
+        self.failIf(isabs(":foo:bar"))
+        self.failIf(isabs(":foo:bar:"))
+
+
+    def test_commonprefix(self):
+        commonprefix = macpath.commonprefix
+        self.assert_(commonprefix(["home:swenson:spam", "home:swen:spam"])
+                     == "home:swen")
+        self.assert_(commonprefix([":home:swen:spam", ":home:swen:eggs"])
+                     == ":home:swen:")
+        self.assert_(commonprefix([":home:swen:spam", ":home:swen:spam"])
+                     == ":home:swen:spam")
+
+    def test_split(self):
+        split = macpath.split
+        self.assertEquals(split("foo:bar"),
+                          ('foo:', 'bar'))
+        self.assertEquals(split("conky:mountpoint:foo:bar"),
+                          ('conky:mountpoint:foo', 'bar'))
+
+        self.assertEquals(split(":"), ('', ''))
+        self.assertEquals(split(":conky:mountpoint:"),
+                          (':conky:mountpoint', ''))
+
+    def test_splitdrive(self):
+        splitdrive = macpath.splitdrive
+        self.assertEquals(splitdrive("foo:bar"), ('', 'foo:bar'))
+        self.assertEquals(splitdrive(":foo:bar"), ('', ':foo:bar'))
+
+    def test_splitext(self):
+        splitext = macpath.splitext
+        self.assertEquals(splitext(":foo.ext"), (':foo', '.ext'))
+        self.assertEquals(splitext("foo:foo.ext"), ('foo:foo', '.ext'))
+        self.assertEquals(splitext(".ext"), ('', '.ext'))
+        self.assertEquals(splitext("foo.ext:foo"), ('foo.ext:foo', ''))
+        self.assertEquals(splitext(":foo.ext:"), (':foo.ext:', ''))
+        self.assertEquals(splitext(""), ('', ''))
+        self.assertEquals(splitext("foo.bar.ext"), ('foo.bar', '.ext'))
+
+
+def test_main():
+    test_support.run_unittest(MacPathTestCase)
+
+
+if __name__ == "__main__":
+    test_main()
+
diff --git a/Lib/test/test_ntpath.py b/Lib/test/test_ntpath.py
index 40d785f..2419844 100644
--- a/Lib/test/test_ntpath.py
+++ b/Lib/test/test_ntpath.py
@@ -15,6 +15,16 @@
         print " returned: " + str(gotResult)
         print ""
         errors = errors + 1
+        
+tester('ntpath.splitext("foo.ext")', ('foo', '.ext'))
+tester('ntpath.splitext("/foo/foo.ext")', ('/foo/foo', '.ext'))
+tester('ntpath.splitext(".ext")', ('', '.ext'))
+tester('ntpath.splitext("\\foo.ext\\foo")', ('\\foo.ext\\foo', ''))
+tester('ntpath.splitext("foo.ext\\")', ('foo.ext\\', ''))
+tester('ntpath.splitext("")', ('', ''))
+tester('ntpath.splitext("foo.bar.ext")', ('foo.bar', '.ext'))
+tester('ntpath.splitext("xx/foo.bar.ext")', ('xx/foo.bar', '.ext'))
+tester('ntpath.splitext("xx\\foo.bar.ext")', ('xx\\foo.bar', '.ext'))
 
 tester('ntpath.splitdrive("c:\\foo\\bar")',
        ('c:', '\\foo\\bar'))
diff --git a/Lib/test/test_posixpath.py b/Lib/test/test_posixpath.py
index 362483f..0aaddaf 100644
--- a/Lib/test/test_posixpath.py
+++ b/Lib/test/test_posixpath.py
@@ -21,6 +21,11 @@
 
 tester('posixpath.splitext("foo.ext")', ('foo', '.ext'))
 tester('posixpath.splitext("/foo/foo.ext")', ('/foo/foo', '.ext'))
+tester('posixpath.splitext(".ext")', ('', '.ext'))
+tester('posixpath.splitext("/foo.ext/foo")', ('/foo.ext/foo', ''))
+tester('posixpath.splitext("foo.ext/")', ('foo.ext/', ''))
+tester('posixpath.splitext("")', ('', ''))
+tester('posixpath.splitext("foo.bar.ext")', ('foo.bar', '.ext'))
 
 tester('posixpath.isabs("/")', 1)
 tester('posixpath.isabs("/foo")', 1)
