diff --git a/CHANGELOG.md b/CHANGELOG.md
index a5c022f..4903665 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,7 @@
 * Don't indent cascades farther than their receiver method chains.
 * Optimize line splitting cascades (#811).
 * Split empty catch blocks with finally clauses (#1029).
+* Split empty catch blocks with catches after them.
 
 # 2.0.1
 
diff --git a/lib/src/source_visitor.dart b/lib/src/source_visitor.dart
index c97f0b5..1b918d1 100644
--- a/lib/src/source_visitor.dart
+++ b/lib/src/source_visitor.dart
@@ -3419,11 +3419,16 @@
           ifStatement.thenStatement == node;
     }
 
-    // Force a split in an empty catch if there is a finally:
+    // Force a split in an empty catch if there is a finally or other catch
+    // after it:
     if (node.parent is CatchClause && node.parent!.parent is TryStatement) {
       var tryStatement = node.parent!.parent as TryStatement;
-      return tryStatement.finallyBlock != null &&
-          tryStatement.catchClauses.any((clause) => clause.body == node);
+      if (tryStatement.finallyBlock != null) {
+        return tryStatement.catchClauses.any((clause) => clause.body == node);
+      } else {
+        return tryStatement.catchClauses.any((clause) => clause.body == node) &&
+            node != tryStatement.catchClauses.last.body;
+      }
     }
 
     return false;
diff --git a/test/regression/1000/1029.unit b/test/regression/1000/1029.unit
index 8dda931..ffff020 100644
--- a/test/regression/1000/1029.unit
+++ b/test/regression/1000/1029.unit
@@ -14,4 +14,21 @@
   } finally {
     cleanupSomething();
   }
+}
+>>>
+void main() {
+  try {
+    doSomething();
+  } on FooException {} on BarException {
+    doSomething();
+  }
+}
+<<<
+void main() {
+  try {
+    doSomething();
+  } on FooException {
+  } on BarException {
+    doSomething();
+  }
 }
\ No newline at end of file
diff --git a/test/splitting/statements.stmt b/test/splitting/statements.stmt
index dde279c..c5f19dc 100644
--- a/test/splitting/statements.stmt
+++ b/test/splitting/statements.stmt
@@ -99,4 +99,12 @@
 } catch (err3) {
 } finally {
   ;
-}
\ No newline at end of file
+}
+>>> split leading empty catches if there are multiple
+try {;} catch (err1) {} catch (err2) {} catch (err3) {}
+<<<
+try {
+  ;
+} catch (err1) {
+} catch (err2) {
+} catch (err3) {}
\ No newline at end of file
