diff --git a/Lib/distutils/filelist.py b/Lib/distutils/filelist.py
index 6d27cce..3ce5635 100644
--- a/Lib/distutils/filelist.py
+++ b/Lib/distutils/filelist.py
@@ -304,7 +304,7 @@
     return list
 
 
-def glob_to_re (pattern):
+def glob_to_re(pattern):
     """Translate a shell-like glob pattern to a regular expression; return
     a string containing the regex.  Differs from 'fnmatch.translate()' in
     that '*' does not match "special characters" (which are
@@ -319,7 +319,8 @@
     # character except the special characters.
     # XXX currently the "special characters" are just slash -- i.e. this is
     # Unix-only.
-    pattern_re = re.sub(r'(^|[^\\])\.', r'\1[^/]', pattern_re)
+    pattern_re = re.sub(r'((?<!\\)(\\\\)*)\.', r'\1[^/]', pattern_re)
+
     return pattern_re
 
 # glob_to_re ()
diff --git a/Lib/distutils/tests/test_filelist.py b/Lib/distutils/tests/test_filelist.py
new file mode 100644
index 0000000..86db557
--- /dev/null
+++ b/Lib/distutils/tests/test_filelist.py
@@ -0,0 +1,23 @@
+"""Tests for distutils.filelist."""
+import unittest
+from distutils.filelist import glob_to_re
+
+class FileListTestCase(unittest.TestCase):
+
+    def test_glob_to_re(self):
+        # simple cases
+        self.assertEquals(glob_to_re('foo*'), 'foo[^/]*$')
+        self.assertEquals(glob_to_re('foo?'), 'foo[^/]$')
+        self.assertEquals(glob_to_re('foo??'), 'foo[^/][^/]$')
+
+        # special cases
+        self.assertEquals(glob_to_re(r'foo\\*'), r'foo\\\\[^/]*$')
+        self.assertEquals(glob_to_re(r'foo\\\*'), r'foo\\\\\\[^/]*$')
+        self.assertEquals(glob_to_re('foo????'), r'foo[^/][^/][^/][^/]$')
+        self.assertEquals(glob_to_re(r'foo\\??'), r'foo\\\\[^/][^/]$')
+
+def test_suite():
+    return unittest.makeSuite(FileListTestCase)
+
+if __name__ == "__main__":
+    unittest.main(defaultTest="test_suite")
diff --git a/Misc/NEWS b/Misc/NEWS
index d99814f..a77e14f 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -100,6 +100,9 @@
 Library
 -------
 
+- Issue #1491431: Fixed distutils.filelist.glob_to_re for edge cases.
+  Initial fix by Wayne Davison.
+
 - Issue 5471: Fix os.path.expanduser() for $HOME set to '/'.
 
 - Issue 1326077: fix the formatting of SyntaxErrors by the traceback module.
