diff --git a/src/unidiff.c b/src/unidiff.c
index 46af680..276aec5 100644
--- a/src/unidiff.c
+++ b/src/unidiff.c
@@ -193,10 +193,11 @@ int diff_apply(char* name) {
  *    @return 0 on success.
  */
 static int diff_patch(xmlNodePtr parent) {
+  int i;
   UniDiff_t* diff;
-  UniHunk_t base, hunk;
+  UniHunk_t base, hunk, *fail;
   xmlNodePtr node, cur;
-  char* buf;
+  char* buf, *target;
 
   /* Prepare it. */
   diff = diff_newDiff();
@@ -271,6 +272,34 @@ static int diff_patch(xmlNodePtr parent) {
     }
   } while(xml_nextNode(node));
 
+  if(diff->nfailed > 0) {
+    DEBUG("Unidiff '%s' failed %d hunks.", diff->name, diff->nfailed);
+    for(i = 0; i < diff->nfailed; i++) {
+      fail = &diff->failed[i];
+      target = fail->target.u.name;
+      switch(fail->type) {
+        case HUNK_TYPE_PLANET_ADD:
+          DEBUG("   [%s] planet add: '%s'", target, fail->u.name);
+          break;
+        case HUNK_TYPE_PLANET_REMOVE:
+          DEBUG("   [%s] planet remove: '%s'", target, fail->u.name);
+          break;
+        case HUNK_TYPE_FLEET_ADD:
+          DEBUG("   [%s] fleet add: '%s' (%d%% chance)", target,
+              fail->u.fleet.fleet->name, fail->u.fleet.chance);
+          break;
+        case HUNK_TYPE_FLEET_REMOVE:
+          DEBUG("   [%s] fleet remove: '%s' (%d%% chance)", target,
+              fail->u.fleet.fleet->name, fail->u.fleet.chance);
+          break;
+          
+        default:
+          DEBUG("   Unkown hunk '%d'", fail->type);
+          break;
+      }
+    }
+  }
+
   return 0;
 }