Index: source/i18n/ucol.cpp
===================================================================
--- source/i18n/ucol.cpp	(revision 292709)
+++ source/i18n/ucol.cpp	(working copy)
@@ -2259,6 +2259,9 @@
         if (data->pos + 1 == data->endp) {
             return *(data->pos ++);
         }
+        if (data->pos >= data->endp) {
+            return (UChar) -1; // return U+FFFF (non-char) to indicate an error
+        }
     }
     else {
         if (innormbuf) {
@@ -2821,7 +2824,13 @@
                                 }
                             }
                         } else if (U16_IS_LEAD(schar)) {
-                            miss = U16_GET_SUPPLEMENTARY(schar, getNextNormalizedChar(source));
+                            UChar nextChar = getNextNormalizedChar(source);
+                            const UChar* prevPos = source->pos;
+                            if (U16_IS_TRAIL(nextChar)) {
+                                miss = U16_GET_SUPPLEMENTARY(schar, nextChar);
+                            } else if (prevPos < source->pos) {
+                                goBackOne(source);
+                            }
                         }
 
                         uint8_t sCC;
