diff --git a/ext/dom/node.c b/ext/dom/node.c
index 82f40860cfd35..c80f9c3333c6c 100644
--- a/ext/dom/node.c
+++ b/ext/dom/node.c
@@ -1667,6 +1667,7 @@ static void dom_canonicalization(INTERNAL_FUNCTION_PARAMETERS, int mode) /* {{{
inclusive_ns_prefixes = safe_emalloc(zend_hash_num_elements(Z_ARRVAL_P(ns_prefixes)) + 1,
sizeof(xmlChar *), 0);
ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(ns_prefixes), tmpns) {
+ ZVAL_DEREF(tmpns);
if (Z_TYPE_P(tmpns) == IS_STRING) {
inclusive_ns_prefixes[nscount++] = (xmlChar *) Z_STRVAL_P(tmpns);
}
diff --git a/ext/dom/tests/DOMNode_C14N_references.phpt b/ext/dom/tests/DOMNode_C14N_references.phpt
index 514e22be6365a..5612874f5f30f 100644
--- a/ext/dom/tests/DOMNode_C14N_references.phpt
+++ b/ext/dom/tests/DOMNode_C14N_references.phpt
@@ -38,4 +38,4 @@ unset($v);
echo $doc->C14N(true, false, $xpath, $prefixes);
?>
--EXPECT--
-
+