diff -r 51d08c49e9b6 -r 3bb0eb51bed6 emul/src/main/java/java/lang/AbstractStringBuilder.java --- a/emul/src/main/java/java/lang/AbstractStringBuilder.java Sun Nov 18 21:58:44 2012 +0100 +++ b/emul/src/main/java/java/lang/AbstractStringBuilder.java Wed Nov 21 21:48:51 2012 +0100 @@ -1416,8 +1416,14 @@ } static void arraycopy(char[] value, int srcBegin, char[] dst, int dstBegin, int count) { - while (count-- > 0) { - dst[dstBegin + count] = value[srcBegin + count]; + if (srcBegin < dstBegin) { + while (count-- > 0) { + dst[dstBegin + count] = value[srcBegin + count]; + } + } else { + while (count-- > 0) { + dst[dstBegin++] = value[srcBegin++]; + } } }