*** org/python/core/MergeState.java.orig 2007-10-13 12:05:32.000000000 +0200 --- org/python/core/MergeState.java 2008-06-13 00:05:21.000000000 +0200 *************** *** 130,137 **** this.data[dest++] = this.data[pb++]; --nb; ! if (nb == 0) return; if (na == 1) { // CopyB; System.arraycopy(this.data, pb, this.data, dest, nb); --- 130,141 ---- this.data[dest++] = this.data[pb++]; --nb; ! if (nb == 0) { ! // Succeed; (falls through to Fail) ! if (na != 0) ! System.arraycopy(this.a, pa, this.data, dest, na); return; + } if (na == 1) { // CopyB; System.arraycopy(this.data, pb, this.data, dest, nb); *************** *** 255,262 **** this.data[dest--] = this.data[pa--]; --na; ! if (na == 0) return; if (nb == 1) { // CopyA; dest -= na; --- 259,270 ---- this.data[dest--] = this.data[pa--]; --na; ! if (na == 0) { ! // Succeed; (falls through to Fail) ! if (nb != 0) ! System.arraycopy(this.a, 0, this.data, dest-(nb-1), nb); return; + } if (nb == 1) { // CopyA; dest -= na;