diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8615187..36e9aa8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,8 @@
 
 * Add support for empty chains and chains of empty traces to `Chain.parse()`.
 
+* Don't crash when parsing stack traces from Dart VM stack overflows.
+
 ## 1.3.2
 
 * Don't crash when running `Trace.terse` on empty stack traces.
diff --git a/lib/src/trace.dart b/lib/src/trace.dart
index 418c4ab..4415161 100644
--- a/lib/src/trace.dart
+++ b/lib/src/trace.dart
@@ -134,10 +134,21 @@
 
   /// Parses a string representation of a Dart VM stack trace.
   Trace.parseVM(String trace)
-      : this(trace.trim().split("\n").
-            // TODO(nweiz): remove this when issue 15920 is fixed.
-            where((line) => line.isNotEmpty).
-            map((line) => new Frame.parseVM(line)));
+      : this(_parseVM(trace));
+
+  static List<Frame> _parseVM(String trace) {
+    var lines = trace.trim().split("\n");
+    var frames = lines.take(lines.length - 1)
+        .map((line) => new Frame.parseVM(line))
+        .toList();
+
+    // TODO(nweiz): Remove this when issue 23614 is fixed.
+    if (!lines.last.endsWith(".da")) {
+      frames.add(new Frame.parseVM(lines.last));
+    }
+
+    return frames;
+  }
 
   /// Parses a string representation of a Chrome/V8 stack trace.
   Trace.parseV8(String trace)
diff --git a/pubspec.yaml b/pubspec.yaml
index 9b8413d..578ecc9 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -7,7 +7,7 @@
 #
 # When the major version is upgraded, you *must* update that version constraint
 # in pub to stay in sync with this.
-version: 1.3.3-dev
+version: 1.3.3
 author: "Dart Team <misc@dartlang.org>"
 homepage: http://github.com/dart-lang/stack_trace
 description: >
diff --git a/test/vm_test.dart b/test/vm_test.dart
index 48ca375..947f14b 100644
--- a/test/vm_test.dart
+++ b/test/vm_test.dart
@@ -56,6 +56,19 @@
       expect(trace.frames.first.member, equals('getStackTraceObject'));
     });
 
+    test('.from handles a stack overflow trace correctly', () {
+      overflow() => overflow();
+
+      var trace;
+      try {
+        overflow();
+      } catch (_, stackTrace) {
+        trace = new Trace.from(stackTrace);
+      }
+
+      expect(trace.frames.first.member, equals('main.<fn>.<fn>.overflow'));
+    });
+
     group('.current()', () {
       test('with no argument returns a trace starting at the current frame',
           () {
