diff --git a/Lib/sre.py b/Lib/sre.py
index 7a640f9..70d0148 100644
--- a/Lib/sre.py
+++ b/Lib/sre.py
@@ -104,7 +104,7 @@
     "U", "IGNORECASE", "LOCALE", "MULTILINE", "DOTALL", "VERBOSE",
     "UNICODE", "error" ]
 
-__version__ = "2.1.1"
+__version__ = "2.2.0"
 
 # this module works under 1.5.2 and later.  don't use string methods
 import string
@@ -197,6 +197,8 @@
 _cache = {}
 _cache_repl = {}
 
+_pattern_type = type(sre_compile.compile("", 0))
+
 _MAXCACHE = 100
 
 def _join(seq, sep):
@@ -209,8 +211,10 @@
     if p is not None:
         return p
     pattern, flags = key
-    if type(pattern) not in sre_compile.STRING_TYPES:
+    if type(pattern) is _pattern_type:
         return pattern
+    if type(pattern) not in sre_compile.STRING_TYPES:
+        raise TypeError, "first argument must be string or compiled pattern"
     try:
         p = sre_compile.compile(pattern, flags)
     except error, v:
@@ -312,7 +316,7 @@
 def _pickle(p):
     return _compile, (p.pattern, p.flags)
 
-copy_reg.pickle(type(_compile("", 0)), _pickle, _compile)
+copy_reg.pickle(_pattern_type, _pickle, _compile)
 
 # --------------------------------------------------------------------
 # experimental stuff (see python-dev discussions for details)
diff --git a/Lib/test/test_sre.py b/Lib/test/test_sre.py
index 4a71447..12a66f9 100644
--- a/Lib/test/test_sre.py
+++ b/Lib/test/test_sre.py
@@ -204,6 +204,12 @@
 test(r"""pat.match('b').group('a1', 'b2', 'c3')""", (None, 'b', None))
 test(r"""pat.match('ac').group(1, 'b2', 3)""", ('a', None, 'c'))
 
+# bug 448951 (similar to 429357, but with single char match)
+# (Also test greedy matches.)
+for op in '','?','*':
+    test(r"""sre.match(r'((.%s):)?z', 'z').groups()"""%op, (None, None))
+    test(r"""sre.match(r'((.%s):)?z', 'a:z').groups()"""%op, ('a:', 'a'))
+
 if verbose:
     print "Running tests on sre.escape"
 
diff --git a/Modules/_sre.c b/Modules/_sre.c
index 32cd48b..537dc29 100644
--- a/Modules/_sre.c
+++ b/Modules/_sre.c
@@ -32,6 +32,7 @@
  * 2001-05-14 fl  fixes for 1.5.2
  * 2001-07-01 fl  added BIGCHARSET support (from Martin von Loewis)
  * 2001-09-18 fl  added _getliteral helper
+ * 2001-10-18 fl  fixed group reset issue (from Matthew Mueller)
  *
  * Copyright (c) 1997-2001 by Secret Labs AB.  All rights reserved.
  *
@@ -47,7 +48,7 @@
 #ifndef SRE_RECURSIVE
 
 static char copyright[] =
-    " SRE 2.1.1 Copyright (c) 1997-2001 by Secret Labs AB ";
+    " SRE 2.2.0 Copyright (c) 1997-2001 by Secret Labs AB ";
 
 #include "Python.h"
 #include "structmember.h" /* offsetof */
@@ -1061,6 +1062,7 @@
                 if (i)
                     return i;
                 i = mark_restore(state, 0, lastmark);
+                state->lastmark = lastmark;
                 if (i < 0)
                     return i;
                 rp->count = count - 1;
