diff --git a/CHANGELOG.md b/CHANGELOG.md
index 403cd65..42c6d8b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,9 @@
   is always just an internal isolate message handler anyway. This
   improves the readability of stack traces, especially in stack chains.
 
+* Remove the line numbers and specific files in all terse folded frames, not
+  just those from core libraries.
+
 ## 1.2.1
 
 * Add `terse` to `LazyTrace.foldFrames()`.
diff --git a/README.md b/README.md
index 38b768d..24da03c 100644
--- a/README.md
+++ b/README.md
@@ -54,7 +54,6 @@
     pkg/stack_trace/lib/src/trace.dart 40:35    Trace.terse
     pkg/stack_trace/lib/stack_trace.dart 24:28  format
     test.dart 21:29                             main.<fn>
-    dart:async                                  Timer.Timer.<fn>
 
 ## Stack Chains
 
@@ -194,14 +193,12 @@
 
     test.dart 17:3   runAsync
     test.dart 13:28  scheduleAsync.<fn>
-    dart:isolate     _RawReceivePortImpl._handleMessage
     ===== asynchronous gap ===========================
-    dart:async                                _Future.then
-    test.dart 13:12                           scheduleAsync
-    test.dart 7:18                            main.<fn>
-    package:stack_trace/src/chain.dart 93:20  Chain.capture
-    test.dart 6:16                            main
-    dart:isolate                              _RawReceivePortImpl._handleMessage
+    dart:async           _Future.then
+    test.dart 13:12      scheduleAsync
+    test.dart 7:18       main.<fn>
+    package:stack_trace  Chain.capture
+    test.dart 6:16       main
 
 That's a lot easier to understand!
 
diff --git a/lib/src/trace.dart b/lib/src/trace.dart
index e0cb21b..954cf45 100644
--- a/lib/src/trace.dart
+++ b/lib/src/trace.dart
@@ -252,7 +252,7 @@
 
     if (terse) {
       newFrames = newFrames.map((frame) {
-        if (!frame.isCore) return frame;
+        if (!predicate(frame)) return frame;
         var library = frame.library.replaceAll(_terseRegExp, '');
         return new Frame(Uri.parse(library), null, null, frame.member);
       }).toList();
diff --git a/test/chain_test.dart b/test/chain_test.dart
index c5f8efb..cf8a61f 100644
--- a/test/chain_test.dart
+++ b/test/chain_test.dart
@@ -590,9 +590,9 @@
       expect(folded.toString(), equals(
           'dart:async    Zip.zap\n'
           'b.dart 10:11  Bang.qux\n'
-          'a.dart 10:11  Zop.zoop\n'
+          'a.dart        Zop.zoop\n'
           '===== asynchronous gap ===========================\n'
-          'a.dart 10:11  Zip.zap\n'
+          'a.dart        Zip.zap\n'
           'b.dart 10:11  Zop.zoop\n'));
     });
 
diff --git a/test/trace_test.dart b/test/trace_test.dart
index 10c931c..1887509 100644
--- a/test/trace_test.dart
+++ b/test/trace_test.dart
@@ -359,4 +359,24 @@
 bar.dart 10:20  alsoNotFoo
 '''));
   });
+
+  test('.foldFrames with terse: true shortens folded frames', () {
+    var trace = new Trace.parse('''
+#0 notFoo (foo.dart:42:21)
+#1 fooTop (bar.dart:0:2)
+#2 fooBottom (package:foo/bar.dart:0:2)
+#3 alsoNotFoo (bar.dart:10:20)
+#4 fooTop (foo.dart:9:11)
+#5 fooBottom (foo/bar.dart:9:11)
+''');
+
+    var folded = trace.foldFrames((frame) => frame.member.startsWith('foo'),
+        terse: true);
+    expect(folded.toString(), equals('''
+foo.dart 42:21  notFoo
+package:foo     fooBottom
+bar.dart 10:20  alsoNotFoo
+foo             fooBottom
+'''));
+  });
 }
