diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
 # Changelog
 
+## 1.8.3 (2026-06-03)
+- 'compare-tarballs': order tarballs by removal and addition
+
 ## 1.8.2 (2026-06-03)
 - 'autospec': don't switch to rawhide and pass pkg spec file to convert
 - 'copr': filter out canceled builds from existing builds
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -270,7 +270,7 @@
 `$ fbrnch --version`
 
 ```
-1.8.2
+1.8.3
 ```
 
 `$ fbrnch --help`
diff --git a/fbrnch.cabal b/fbrnch.cabal
--- a/fbrnch.cabal
+++ b/fbrnch.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 name:                fbrnch
-version:             1.8.2
+version:             1.8.3
 synopsis:            Fedora packager tool to build package branches
 description:
             fbrnch (fedora branch or "f-branch" for short) is
diff --git a/src/Patch.hs b/src/Patch.hs
--- a/src/Patch.hs
+++ b/src/Patch.hs
@@ -12,7 +12,7 @@
 
 simplifyMinimalDiff :: [String] -> [String]
 simplifyMinimalDiff =
-  maybeRemoveDiffGit . filterCommon
+  sortOn diffKey . maybeRemoveDiffGit . filterCommon
   where
     filterCommon =
       filter (not .
@@ -24,6 +24,10 @@
         if length gitDiffs == 1
         then ls \\ gitDiffs
         else ls
+
+    diffKey ('-':fs) = (False, fs)
+    diffKey ('+':fs) = (True, fs)
+    diffKey s = error $ "bad diff line:" +-+ show s
 
 -- adapted from flist in swish
 matchPreds :: [a -> Bool] -> a -> Bool
