diff --git a/Lib/test/test_strftime.py b/Lib/test/test_strftime.py
index 44e2ae2..e9d3826 100755
--- a/Lib/test/test_strftime.py
+++ b/Lib/test/test_strftime.py
@@ -28,6 +28,16 @@
         for i in range(25):
             strftest(now + (i + j*100)*23*3603)
 
+def escapestr(text, ampm):
+    """Escape text to deal with possible locale values that have regex
+    syntax while allowing regex syntax used for the comparison."""
+    new_text = re.escape(text)
+    new_text = new_text.replace(re.escape(ampm), ampm)
+    new_text = new_text.replace("\%", "%")
+    new_text = new_text.replace("\:", ":")
+    new_text = new_text.replace("\?", "?")
+    return new_text
+
 def strftest(now):
     if verbose:
         print "strftime test for", time.ctime(now)
@@ -50,6 +60,8 @@
     elif now[3] > 0: clock12 = now[3]
     else: clock12 = 12
 
+    # Make sure any characters that could be taken as regex syntax is
+    # escaped in escapestr()
     expectations = (
         ('%a', calendar.day_abbr[now[6]], 'abbreviated weekday name'),
         ('%A', calendar.day_name[now[6]], 'full weekday name'),
@@ -110,7 +122,7 @@
         except ValueError, error:
             print "Standard '%s' format gave error:" % e[0], error
             continue
-        if re.match(e[1], result): continue
+        if re.match(escapestr(e[1], ampm), result): continue
         if not result or result[0] == '%':
             print "Does not support standard '%s' format (%s)" % (e[0], e[2])
         else:
@@ -125,7 +137,7 @@
                 print "Error for nonstandard '%s' format (%s): %s" % \
                       (e[0], e[2], str(result))
             continue
-        if re.match(e[1], result):
+        if re.match(escapestr(e[1], ampm), result):
             if verbose:
                 print "Supports nonstandard '%s' format (%s)" % (e[0], e[2])
         elif not result or result[0] == '%':
