diff -r cb5317ceca84 Lib/test/test_unicode.py --- a/Lib/test/test_unicode.py Thu Jul 24 13:16:45 2008 +0200 +++ b/Lib/test/test_unicode.py Fri Jul 25 14:33:32 2008 +0200 @@ -531,6 +531,10 @@ self.assertRaises(UnicodeError, unicode, '+3ADYAA-', 'utf-7') self.assertEqual(unicode('+3ADYAA-', 'utf-7', 'replace'), u'\ufffd') + + # Issue #2242: crash on some Windows/MSVC versions + self.assertRaises(UnicodeDecodeError, '+\xc1'.decode, 'utf-7') + def test_codecs_utf8(self): self.assertEqual(u''.encode('utf-8'), '') diff -r cb5317ceca84 Objects/unicodeobject.c --- a/Objects/unicodeobject.c Thu Jul 24 13:16:45 2008 +0200 +++ b/Objects/unicodeobject.c Fri Jul 25 14:33:32 2008 +0200 @@ -1523,7 +1523,7 @@ while (s < e) { Py_UNICODE ch; restart: - ch = *s; + ch = (unsigned char) *s; if (inShift) { if ((ch == '-') || !B64CHAR(ch)) {