Index: src/java/org/apache/nutch/indexer/DeleteDuplicates.java
===================================================================
--- src/java/org/apache/nutch/indexer/DeleteDuplicates.java	(revision 1085)
+++ src/java/org/apache/nutch/indexer/DeleteDuplicates.java	(working copy)
@@ -300,7 +300,9 @@
         IndexDoc value = (IndexDoc)values.next();
         // skip already deleted
         if (!value.keep) {
-          LOG.debug("-discard " + value + " (already marked)");
+          if (LOG.isDebugEnabled()) {
+            LOG.debug("-discard " + value + " (already marked)");
+          }
           output.collect(value.url, value);
           continue;
         }
@@ -308,23 +310,29 @@
           highest = value;
           continue;
         }
-        if (byScore) {
-          if (value.score > highest.score) {
-            highest.keep = false;
-            LOG.debug("-discard " + highest + ", keep " + value);
-            output.collect(highest.url, highest);     // delete highest
-            highest = value;
-          }
+        IndexDoc toDelete = null, toKeep = null;
+        boolean metric = byScore ? (value.score > highest.score) : 
+                                   (value.urlLen < highest.urlLen);
+        if (metric) {
+          toDelete = highest;
+          toKeep = value;
         } else {
-          if (value.urlLen < highest.urlLen) {
-            highest.keep = false;
-            LOG.debug("-discard " + highest + ", keep " + value);
-            output.collect(highest.url, highest);     // delete highest
-            highest = value;
-          }
+          toDelete = value;
+          toKeep = highest;
         }
+        
+        if (LOG.isDebugEnabled()) {
+          LOG.debug("-discard " + toDelete + ", keep " + toKeep);
+        }
+        
+        toDelete.keep = false;
+        output.collect(toDelete.url, toDelete);
+        highest = toKeep;
       }
-      LOG.debug("-keep " + highest);
+      
+      if (LOG.isDebugEnabled()) {
+        LOG.debug("-keep " + highest);
+      }
       // no need to add this - in phase 2 we only process docs to delete them
       // highest.keep = true;
       // output.collect(key, highest);
@@ -368,7 +376,9 @@
     try {
       while (values.hasNext()) {
         IntWritable value = (IntWritable)values.next();
-        LOG.debug("-delete " + index + " doc=" + value);
+        if (LOG.isDebugEnabled()) {
+          LOG.debug("-delete " + index + " doc=" + value);
+        }
         reader.deleteDocument(value.get());
       }
     } finally {
