--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">\r
+ \r
+ <xsl:output method="text" encoding="UTF-8"/>\r
+ \r
+ <xsl:key name="area" match="ROW" use="substring(translate(AREA_NAME, '"', ''), 1, 1)"/>\r
+<xsl:template match="*">\r
+ HERE\r
+</xsl:template>\r
+</xsl:stylesheet>\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<AREA_NAME>\r
+ <ROW>\r
+ <AREA_CODE>13</AREA_CODE>\r
+ <AREA_NAME>"Автово" м.</AREA_NAME>\r
+ <AREA_NAME_ENG>m."Avtovo"</AREA_NAME_ENG>\r
+ </ROW>\r
+</AREA_NAME>\r
+\r
--- /dev/null
+--TEST--
+Bug #26384 (domxslt->process causes segfault with xsl:key)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$dom = new domDocument;
+$dom->load(dirname(__FILE__)."/area_name.xml");
+if(!$dom) {
+ echo "Error while parsing the document\n";
+ exit;
+}
+$xsl = new domDocument;
+$xsl->load(dirname(__FILE__)."/area_list.xsl");
+if(!$xsl) {
+ echo "Error while parsing the document\n";
+ exit;
+}
+$proc = new xsltprocessor;
+if(!$proc) {
+ echo "Error while making xsltprocessor object\n";
+ exit;
+}
+
+$proc->importStylesheet($xsl);
+print $proc->transformToXml($dom);
+
+//this segfaulted before
+print $dom->documentElement->firstChild->nextSibling->nodeName;
+
+--EXPECT--
+HERE
+ROW