diff -r aa079dc20555 src/org/python/core/PyString.java --- a/src/org/python/core/PyString.java Sat May 11 19:28:25 2013 +0100 +++ b/src/org/python/core/PyString.java Sun May 12 01:00:21 2013 +0300 @@ -228,7 +228,7 @@ continue; } /* Map UTF-16 surrogate pairs to Unicode \UXXXXXXXX escapes */ - else if (ch >= 0xD800 && ch < 0xDC00) { + else if (ch >= 0xD800 && ch < 0xDC00 && i < str.length()) { char ch2 = str.charAt(i++); size--; if (ch2 >= 0xDC00 && ch2 <= 0xDFFF) {