diff --git a/ChangeLog b/ChangeLog
index e9da3952321e40a07763b5058cbe6fa3f0bf33c1_Q2hhbmdlTG9n..d2e1fc50dbd141266db35f4783ac9be19010d729_Q2hhbmdlTG9n 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+Mon Dec  2 17:19:38 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+	* libxslt/extensions.c: applied patch from Josh Parsons fixing bug
+	  #100056
+	* tests/docs/Makefile.am tests/docs/bug-100.xml
+	  tests/general/Makefile.am tests/general/bug-100.*: added the
+	  example in the regression tests for this case
+	* tests/docs/Makefile.am tests/docs/bug-99.xml
+	  tests/general/Makefile.am tests/general/bug-99.*: this test
+	  covers an xsl:attribute namespace bug that Norm pointed out.
+
 Thu Nov 28 17:52:21 CET 2002 Daniel Veillard <daniel@veillard.com>
 
 	* libxslt/xsltInternals.h libxslt/xsltutils.c libxslt/xsltutils.h
diff --git a/libxslt/extensions.c b/libxslt/extensions.c
index e9da3952321e40a07763b5058cbe6fa3f0bf33c1_bGlieHNsdC9leHRlbnNpb25zLmM=..d2e1fc50dbd141266db35f4783ac9be19010d729_bGlieHNsdC9leHRlbnNpb25zLmM= 100644
--- a/libxslt/extensions.c
+++ b/libxslt/extensions.c
@@ -757,6 +757,9 @@
     if ((style == NULL) || (style->nsDefs == NULL))
 	return(0);
 
+    if (prefix == NULL)
+	prefix = BAD_CAST "#default";
+
     cur = (xsltExtDefPtr) style->nsDefs;
     while (cur != NULL) {
 	if (xmlStrEqual(prefix, cur->prefix))
diff --git a/tests/docs/Makefile.am b/tests/docs/Makefile.am
index e9da3952321e40a07763b5058cbe6fa3f0bf33c1_dGVzdHMvZG9jcy9NYWtlZmlsZS5hbQ==..d2e1fc50dbd141266db35f4783ac9be19010d729_dGVzdHMvZG9jcy9NYWtlZmlsZS5hbQ== 100644
--- a/tests/docs/Makefile.am
+++ b/tests/docs/Makefile.am
@@ -98,6 +98,8 @@
 	bug-96.xml \
 	bug-97.xml \
 	bug-98.xml \
+	bug-99.xml \
+	bug-100.xml \
 	character.xml \
 	array.xml \
 	items.xml
diff --git a/tests/docs/bug-100.xml b/tests/docs/bug-100.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d2e1fc50dbd141266db35f4783ac9be19010d729_dGVzdHMvZG9jcy9idWctMTAwLnhtbA==
--- /dev/null
+++ b/tests/docs/bug-100.xml
@@ -0,0 +1,1 @@
+<doc/>
diff --git a/tests/docs/bug-99.xml b/tests/docs/bug-99.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d2e1fc50dbd141266db35f4783ac9be19010d729_dGVzdHMvZG9jcy9idWctOTkueG1s
--- /dev/null
+++ b/tests/docs/bug-99.xml
@@ -0,0 +1,1 @@
+<doc/>
diff --git a/tests/general/Makefile.am b/tests/general/Makefile.am
index e9da3952321e40a07763b5058cbe6fa3f0bf33c1_dGVzdHMvZ2VuZXJhbC9NYWtlZmlsZS5hbQ==..d2e1fc50dbd141266db35f4783ac9be19010d729_dGVzdHMvZ2VuZXJhbC9NYWtlZmlsZS5hbQ== 100644
--- a/tests/general/Makefile.am
+++ b/tests/general/Makefile.am
@@ -102,6 +102,8 @@
     bug-96.out bug-96.xsl \
     bug-97.out bug-97.xsl \
     bug-98.out bug-98.xsl \
+    bug-99.out bug-99.xsl \
+    bug-100.out bug-100.xsl \
     character.out character.xsl \
     character2.out character2.xsl \
     itemschoose.out itemschoose.xsl \
diff --git a/tests/general/bug-100.out b/tests/general/bug-100.out
new file mode 100644
index 0000000000000000000000000000000000000000..d2e1fc50dbd141266db35f4783ac9be19010d729_dGVzdHMvZ2VuZXJhbC9idWctMTAwLm91dA==
--- /dev/null
+++ b/tests/general/bug-100.out
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<!--libxslt:test element test worked-->
diff --git a/tests/general/bug-100.xsl b/tests/general/bug-100.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..d2e1fc50dbd141266db35f4783ac9be19010d729_dGVzdHMvZ2VuZXJhbC9idWctMTAwLnhzbA==
--- /dev/null
+++ b/tests/general/bug-100.xsl
@@ -0,0 +1,9 @@
+<?xml version='1.0'?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+		xmlns="http://xmlsoft.org/XSLT/"
+		xsl:extension-element-prefixes="#default"
+                version='1.0'>
+<xsl:template match="/">
+<test/>
+</xsl:template>
+</xsl:stylesheet>
diff --git a/tests/general/bug-99.out b/tests/general/bug-99.out
new file mode 100644
index 0000000000000000000000000000000000000000..d2e1fc50dbd141266db35f4783ac9be19010d729_dGVzdHMvZ2VuZXJhbC9idWctOTkub3V0
--- /dev/null
+++ b/tests/general/bug-99.out
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<doc xmlns="ns1" xmlns:ns1="ns1" ns1:attr="foo!"/>
diff --git a/tests/general/bug-99.xsl b/tests/general/bug-99.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..d2e1fc50dbd141266db35f4783ac9be19010d729_dGVzdHMvZ2VuZXJhbC9idWctOTkueHNs
--- /dev/null
+++ b/tests/general/bug-99.xsl
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+
+<xsl:output method="xml"/>
+
+<xsl:template match="/">
+  <xsl:element name="doc" namespace="ns1">
+    <xsl:attribute name="attr" namespace="ns1">
+      <xsl:text>foo!</xsl:text>
+    </xsl:attribute>
+  </xsl:element>
+</xsl:template>
+
+</xsl:stylesheet>
+