diff --git a/src/java/org/apache/fop/apps/FopFactory.java b/src/java/org/apache/fop/apps/FopFactory.java
index e7849a8..2b4d986 100644
--- a/src/java/org/apache/fop/apps/FopFactory.java
+++ b/src/java/org/apache/fop/apps/FopFactory.java
@@ -189,7 +189,8 @@
      * @return the new Fop instance
      * @throws FOPException when the constructor fails
      */
-    public Fop newFop(String outputFormat, FOUserAgent userAgent, OutputStream stream) throws FOPException {
+    public Fop newFop(String outputFormat, FOUserAgent userAgent, OutputStream stream) 
+                throws FOPException {
         if (userAgent == null) {
             throw new NullPointerException("The userAgent parameter must not be null!");
         }
@@ -510,8 +511,6 @@
                 return cfgBaseDir;
             } catch (MalformedURLException mue) {
                 log.error("Base URL in user config is malformed!");
-            } catch (IOException ioe) {
-                log.error("Error converting relative base directory to absolute URL.");
             }
         }
         return null;
