Here is the patch, if somebody is interested:
<verbatim>
--- src/diffcmd.c
+++ src/diffcmd.c
@@ -267,13 +267,14 @@
       printf("ADDED_BY_MERGE %s\n", zPathname);
     }else{
       int srcid = db_column_int(&q, 4);
       Blob content;
       content_get(srcid, &content);
-      printf("Index: %s\n======================================="
-             "============================\n",
-             zPathname
+      if (!zDiffCmd)
+        printf("Index: %s\n======================================="
+               "============================\n",
+               zPathname
       );
       diff_file(&content, zFullName, zPathname, zDiffCmd);
       blob_reset(&content);
     }
     free(zFullName);
@@ -353,11 +354,11 @@
   zTo = find_option("to", 0, 1);

   if( zTo==0 ){
     db_must_be_within_tree();
     verify_all_options();
-    if( !isInternDiff && g.argc==3 ){
+    if( !isInternDiff ){
       zDiffCmd = db_get(isGDiff ? "gdiff-command" : "diff-command", 0);
     }
     if( g.argc==3 ){
       diff_one_against_disk(zFrom, zDiffCmd);
     }else{
</verbatim>