diff -ru libxslt-1.1.15_orig/libxslt/numbers.c libxslt-1.1.15/libxslt/numbers.c
--- libxslt-1.1.15_orig/libxslt/numbers.c	2005-07-04 00:41:43.000000000 +0200
+++ libxslt-1.1.15/libxslt/numbers.c	2005-11-29 20:20:28.000000000 +0100
@@ -1157,7 +1157,7 @@
      * We have processed the +ve prefix, number part and +ve suffix.
      * If the number is -ve, we must substitute the -ve prefix / suffix
      */
-    if (number < 0) {
+    if (number < 0 || number == -0) {
         /*
 	 * Note that j is the number of UTF8 chars before the separator,
 	 * not the number of bytes! (bug 151975)
