A TextDecl must have an encoding declaration
diff --git a/expat/xmltok/xmltok.c b/expat/xmltok/xmltok.c
index bcd06eb..281b318 100755
--- a/expat/xmltok/xmltok.c
+++ b/expat/xmltok/xmltok.c
@@ -843,8 +843,14 @@
       *badPtr = ptr;
       return 0;
     }
-    if (!name)
+    if (!name) {
+      if (isGeneralTextEntity) {
+	/* a TextDecl must have an EncodingDecl */
+	*badPtr = ptr;
+	return 0;
+      }
       return 1;
+    }
   }
   if (XmlNameMatchesAscii(enc, name, "encoding")) {
     int c = toAscii(enc, val, end);