Index: Objects/unicodeobject.c =================================================================== --- Objects/unicodeobject.c (Revision 74825) +++ Objects/unicodeobject.c (Arbeitskopie) @@ -2321,7 +2321,7 @@ if (unicode_decode_call_errorhandler( errors, &errorHandler, "utf32", errmsg, - starts, size, &startinpos, &endinpos, &exc, &s, + starts, size, &startinpos, &endinpos, &exc, (const char **)&q, &unicode, &outpos, &p)) goto onError; } Index: Lib/test/test_codecs.py =================================================================== --- Lib/test/test_codecs.py (Revision 74825) +++ Lib/test/test_codecs.py (Arbeitskopie) @@ -305,6 +305,12 @@ ] ) + def test_handlers(self): + self.assertEqual((u'\ufffd', 1), + codecs.utf_32_decode('\x01', 'replace', True)) + self.assertEqual((u'', 1), + codecs.utf_32_decode('\x01', 'ignore', True)) + def test_errors(self): self.assertRaises(UnicodeDecodeError, codecs.utf_32_decode, "\xff", "strict", True) @@ -422,6 +428,12 @@ ] ) + def test_handlers(self): + self.assertEqual((u'\ufffd', 1), + codecs.utf_16_decode('\x01', 'replace', True)) + self.assertEqual((u'', 1), + codecs.utf_16_decode('\x01', 'ignore', True)) + def test_errors(self): self.assertRaises(UnicodeDecodeError, codecs.utf_16_decode, "\xff", "strict", True)