diff --git a/src/xercesc/validators/schema/identity/XercesXPath.cpp b/src/xercesc/validators/schema/identity/XercesXPath.cpp
index b7c301fab8eb149ec9fa69dccaca8d95275a8201..ebd2002e910f0dce67757c64dd0fe0ea911f405e 100644
--- a/src/xercesc/validators/schema/identity/XercesXPath.cpp
+++ b/src/xercesc/validators/schema/identity/XercesXPath.cpp
@@ -390,7 +390,9 @@ void XercesXPath::parseExpression(XMLStringPool* const stringPool,
 
     ValueVectorOf<int>                tokens(16, fMemoryManager);
     XPathScannerForSchema             scanner(stringPool);
-    scanner.scanExpression(fExpression, 0, length, &tokens);
+    if(!scanner.scanExpression(fExpression, 0, length, &tokens))
+        ThrowXMLwithMemMgr(XPathException, XMLExcepts::XPath_TokenNotSupported, fMemoryManager);
+
     bool                              firstTokenOfLocationPath=true;
     unsigned int                      tokenCount = tokens.size();
     RefVectorOf<XercesStep>*          stepsVector = new (fMemoryManager) RefVectorOf<XercesStep>(16, true, fMemoryManager);
diff --git a/tests/src/XSTSHarness/regression/XERCESC-1787/schema.xsd b/tests/src/XSTSHarness/regression/XERCESC-1787/schema.xsd
new file mode 100644
index 0000000000000000000000000000000000000000..7a7bf8f65f01b602c98307af3cb1aecb1ef894a3
--- /dev/null
+++ b/tests/src/XSTSHarness/regression/XERCESC-1787/schema.xsd
@@ -0,0 +1,20 @@
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+
+<xs:element name="Songs">
+  <xs:complexType>
+    <xs:sequence>
+      <xs:element name="Song" maxOccurs="unbounded">
+        <xs:complexType>
+          <xs:attribute name="title" use="required"/>
+        </xs:complexType>
+      </xs:element>
+   </xs:sequence>
+  </xs:complexType>
+
+  <xs:unique name="Song">
+    <xs:selector xpath="*:Song"/>
+    <xs:field xpath="@title"/>
+  </xs:unique>
+</xs:element>
+
+</xs:schema>
\ No newline at end of file
diff --git a/tests/src/XSTSHarness/regression/Xerces.testSet b/tests/src/XSTSHarness/regression/Xerces.testSet
index 3555e429540a2cdf18eee9a412e540e601fd0275..106e5fafdc0d389b6d68147662e5e69ba6c11553 100644
--- a/tests/src/XSTSHarness/regression/Xerces.testSet
+++ b/tests/src/XSTSHarness/regression/Xerces.testSet
@@ -419,4 +419,15 @@
 			<current status="accepted" date="2008-02-13"/>
 		</schemaTest>
 	</testGroup>
+	<testGroup name="XERCESC-1787">
+		<annotation>
+			<documentation>Wildcard namespace prefixes in XPath are not reported as errors</documentation>
+		</annotation>
+		<documentationReference xlink:href="https://issues.apache.org/jira/browse/XERCESC-1787"/>
+		<schemaTest name="XERCESC-1787">
+			<schemaDocument xlink:href="./XERCESC-1787/schema.xsd"/>
+			<expected validity="invalid"/>
+			<current status="accepted" date="2008-03-14"/>
+		</schemaTest>
+	</testGroup>
 </testSet>
\ No newline at end of file