Patch #941486: add os.path.lexists(). Also fix bug #940578 by using lexists in glob.glob.
diff --git a/Lib/test/test_glob.py b/Lib/test/test_glob.py
index 31de30d..af81dab 100644
--- a/Lib/test/test_glob.py
+++ b/Lib/test/test_glob.py
@@ -48,6 +48,9 @@
         self.mktemp('ZZZ')
         self.mktemp('a', 'bcd', 'EF')
         self.mktemp('a', 'bcd', 'efg', 'ha')
+        if hasattr(os, 'symlink'):
+            os.symlink(self.norm('broken'), self.norm('sym1'))
+            os.symlink(self.norm('broken'), self.norm('sym2'))
 
     def tearDown(self):
         deltree(self.tempdir)
@@ -98,6 +101,13 @@
         eq(self.glob('?a?', '*F'), map(self.norm, [os.path.join('aaa', 'zzzF'),
                                                    os.path.join('aab', 'F')]))
 
+    def test_glob_broken_symlinks(self):
+        if hasattr(os, 'symlink'):
+            eq = self.assertSequencesEqual_noorder
+            eq(self.glob('sym*'), [self.norm('sym1'), self.norm('sym2')])
+            eq(self.glob('sym1'), [self.norm('sym1')])
+            eq(self.glob('sym2'), [self.norm('sym2')])
+
 
 def test_main():
     run_unittest(GlobTests)