In the procedure apply_or_revert_range_or_line, if the patch does not apply successfully, a dialog is shown, but execution proceeds after that. Instead, return early on error so the parts that come after this don't work on top of an error state. Signed-off-by: Pratyush Yadav <me@xxxxxxxxxxxxxxxxx> --- lib/diff.tcl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/diff.tcl b/lib/diff.tcl index ffca788..0659029 100644 --- a/lib/diff.tcl +++ b/lib/diff.tcl @@ -848,6 +848,8 @@ proc apply_or_revert_range_or_line {x y revert} { puts -nonewline $p $wholepatch close $p} err]} { error_popup "$failed_msg\n\n$err" + unlock_index + return } unlock_index -- 2.21.0