diff --git a/exist-core/src/main/resources/org/exist/xquery/lib/xqsuite/xqsuite.xql b/exist-core/src/main/resources/org/exist/xquery/lib/xqsuite/xqsuite.xql
index f9171cec289..4ab36842984 100755
--- a/exist-core/src/main/resources/org/exist/xquery/lib/xqsuite/xqsuite.xql
+++ b/exist-core/src/main/resources/org/exist/xquery/lib/xqsuite/xqsuite.xql
@@ -935,7 +935,12 @@ declare %private function test:equals($annotation-value as element(value), $resu
default return
$result
let $value := test:xdm-value-from-annotation-value($annotation-value)
- let $normValue := test:cast-to-type($value, $result)
+ let $normValue :=
+ typeswitch ($result)
+ case node() return
+ test:cast-to-type($value, $result) => test:normalize()
+ default return
+ test:cast-to-type($value, $result)
return
typeswitch ($normResult)
case node() return
diff --git a/exist-core/src/test/xquery/xqsuite/xqsuite-tests.xql b/exist-core/src/test/xquery/xqsuite/xqsuite-tests.xql
index 9ae03b138f0..c734ece8ce7 100644
--- a/exist-core/src/test/xquery/xqsuite/xqsuite-tests.xql
+++ b/exist-core/src/test/xquery/xqsuite/xqsuite-tests.xql
@@ -246,3 +246,12 @@ declare
function t:args-assert-element($arg as element()) as element() {
$arg
};
+
+(: https://github.com/eXist-db/exist/issues/4327 :)
+declare
+ %test:assertEquals('
+ Success!
+')
+function t:assertEquals-normalize-annotation-whitespace() as element(span) {
+ Success!
+};