diff -urNad trunk~/lib/xmltok_impl.c trunk/lib/xmltok_impl.c
--- trunk~/lib/xmltok_impl.c	2006-11-26 18:34:46.000000000 +0100
+++ trunk/lib/xmltok_impl.c	2009-10-22 21:42:41.000000000 +0200
@@ -1744,7 +1744,7 @@
                        const char *end,
                        POSITION *pos)
 {
-  while (ptr != end) {
+  while (ptr < end) {
     switch (BYTE_TYPE(enc, ptr)) {
 #define LEAD_CASE(n) \
     case BT_LEAD ## n: \