diff -ur Lib/fnmatch.py Lib.new/fnmatch.py --- Lib/fnmatch.py 2003-05-15 13:03:49.000000000 -0400 +++ Lib.new/fnmatch.py 2003-05-15 12:59:00.000000000 -0400 @@ -82,6 +82,9 @@ i = i+1 if c == '*': res = res + '.*' + elif pat[i-1:i+1] == r'\[': + res = res + r'\[' + i = i+1 elif c == '?': res = res + '.' elif c == '[': diff -ur Lib/glob.py Lib.new/glob.py --- Lib/glob.py 2003-05-15 13:03:51.000000000 -0400 +++ Lib.new/glob.py 2003-05-15 12:59:27.000000000 -0400 @@ -34,6 +34,8 @@ else: result = [] for dirname in list: + if basename.find( '[' ) != -1 and os.path.isdir( os.path.join( dirname, basename ) ): + basename = basename.replace( '[', '\\[' ) sublist = glob1(dirname, basename) for name in sublist: result.append(os.path.join(dirname, name))