diff --git a/kalumet-modules/common/src/main/java/org/apache/kalumet/FileManipulator.java b/kalumet-modules/common/src/main/java/org/apache/kalumet/FileManipulator.java
index 97dbb88..104cc10 100644
--- a/kalumet-modules/common/src/main/java/org/apache/kalumet/FileManipulator.java
+++ b/kalumet-modules/common/src/main/java/org/apache/kalumet/FileManipulator.java
@@ -412,7 +412,7 @@
       }
       else
       {
-        LOGGER.debug( "Source {} is a file" );
+        LOGGER.debug( "Source {} is a file", src );
         if ( destFile.exists() && destFile.getType().equals( FileType.FOLDER ) )
         {
           destFile = this.resolveFile( dest + "/" + srcFile.getName().getBaseName() );
diff --git a/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Kalumet.java b/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Kalumet.java
index 1d1a2e7..a5b0636 100644
--- a/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Kalumet.java
+++ b/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Kalumet.java
@@ -18,7 +18,6 @@
  */
 package org.apache.kalumet.model;
 
-import EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock;
 import org.apache.commons.digester.Digester;
 import org.apache.kalumet.FileManipulator;
 import org.apache.kalumet.KalumetException;
@@ -35,6 +34,7 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
 
 /**
  * Represents the <code>kalumet</code> root tag in the main Kalumet DOM.
@@ -45,7 +45,7 @@
 
   private static final long serialVersionUID = -3237352886418250595L;
 
-  private static WriterPreferenceReadWriteLock lock = new WriterPreferenceReadWriteLock();
+  private static ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
 
   private LinkedList properties;
 
@@ -358,7 +358,7 @@
     Kalumet kalumet = null;
     try
     {
-      lock.readLock().acquire();
+      lock.readLock().lock();
 
       // init the digester with no validation on the XML file (no DTD)
       Digester digester = new Digester();
@@ -831,7 +831,7 @@
     }
     finally
     {
-      lock.readLock().release();
+      lock.readLock().unlock();
     }
     return kalumet;
   }
@@ -923,7 +923,7 @@
     }
     try
     {
-      lock.writeLock().acquire();
+      lock.writeLock().lock();
       OutputFormat format = new OutputFormat();
       format.setLineWidth( 72 );
       format.setIndenting( true );
@@ -946,7 +946,7 @@
     }
     finally
     {
-      lock.writeLock().release();
+      lock.writeLock().unlock();
     }
   }
 
diff --git a/pom.xml b/pom.xml
index a8e9018..ebfd1f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -173,7 +173,7 @@
     <log4j.version>1.2.16</log4j.version>
     <oro.version>2.0.8</oro.version>
     <quartz.version>1.6.3</quartz.version>
-    <slf4j.version>1.6.3</slf4j.version>
+    <slf4j.version>1.7.6</slf4j.version>
     <xalan.version>2.7.1</xalan.version>
     <xerces.version>2.9.1</xerces.version>
     <xml-apis.version>2.0.2</xml-apis.version>
