set diff_active 0
                        unlock_index
                        ui_status [mc "Unable to display %s" [escape_path $path]]
-                   error_popup [append [mc "Error loading file:"] "\n\n$err"]
+                       error_popup [strcat [mc "Error loading file:"] "\n\n$err"]
                        return
                }
                $ui_diff conf -state normal
                set diff_active 0
                unlock_index
                ui_status [mc "Unable to display %s" [escape_path $path]]
-               error_popup [append [mc "Error loading diff:"] "\n\n$err"]
+               error_popup [strcat [mc "Error loading diff:"] "\n\n$err"]
                return
        }
 
 
                if {[string match {mode *} $line]
                        || [string match {new file *} $line]
+                       || [regexp {^(old|new) mode *} $line]
                        || [string match {deleted file *} $line]
                        || [string match {deleted symlink} $line]
                        || [string match {Binary files * and * differ} $line]
        display_file $current_diff_path $mi
        if {$o eq {_}} {
                clear_diff
+       } else {
+               set current_diff_path $current_diff_path
        }
 }