diff --git a/samples/tests/spec/scripting/domSVGcolor.svg b/samples/tests/spec/scripting/domSVGColor.svg
similarity index 100%
rename from samples/tests/spec/scripting/domSVGcolor.svg
rename to samples/tests/spec/scripting/domSVGColor.svg
diff --git a/sources/org/apache/batik/css/engine/CSSEngine.java b/sources/org/apache/batik/css/engine/CSSEngine.java
index 54333b0..7442aef 100644
--- a/sources/org/apache/batik/css/engine/CSSEngine.java
+++ b/sources/org/apache/batik/css/engine/CSSEngine.java
@@ -825,18 +825,13 @@
                         parser.parseStyleDeclaration(style);
                         styleDeclarationDocumentHandler.styleMap = null;
                     } catch (Exception e) {
-                      System.err.println("\n***** CSSEngine: exception style.syntax.error:" + e );  // ---
-                      System.err.println("\nException:" + e.getClass().getName() );
-                      e.printStackTrace( System.err );                           // ---
-                      System.err.println("\n***** CSSEngine: exception...." );   // ---
-
                         String m = e.getMessage();
                         if (m == null) m = "";
                         String u = ((documentURI == null)?"<unknown>":
                                     documentURI.toString());
                         String s = Messages.formatMessage
                             ("style.syntax.error.at",
-                             new Object[] { u, styleLocalName, style, m});
+                             new Object[] { u, styleLocalName, style, m });
                         DOMException de = new DOMException(DOMException.SYNTAX_ERR, s);
                         if (userAgent == null) throw de;
                         userAgent.displayError(de);
diff --git a/sources/org/apache/batik/transcoder/SVGAbstractTranscoder.java b/sources/org/apache/batik/transcoder/SVGAbstractTranscoder.java
index f84831b..43710a6 100644
--- a/sources/org/apache/batik/transcoder/SVGAbstractTranscoder.java
+++ b/sources/org/apache/batik/transcoder/SVGAbstractTranscoder.java
@@ -299,6 +299,12 @@
         if (doc.isSVG12()) {
             return new SVG12BridgeContext(userAgent);
         }
+        // For SVG 1.1/1.0 docs call old signature createBridgeContext
+        // method (this allows FOP to register it's bridges).
+        return createBridgeContext();
+    }
+
+    protected BridgeContext createBridgeContext() {
         return new BridgeContext(userAgent);
     }
 
