diff --git a/CHANGELOG.md b/CHANGELOG.md
index 47698f6..8804dc8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.15.2+14
+
+* Update code to eliminate Future flattening in Dart 2.0.
+
 ## 0.15.2+13
 
 * Enforce ordering of Futures with `Future.microtask` rather than async and
diff --git a/lib/src/graph/package_graph.dart b/lib/src/graph/package_graph.dart
index 8eec163..376765c 100644
--- a/lib/src/graph/package_graph.dart
+++ b/lib/src/graph/package_graph.dart
@@ -127,7 +127,7 @@
   ///
   /// If the asset cannot be found, returns null.
   Future<AssetNode> getAssetNode(AssetId id) {
-    return _inErrorZone<Future<AssetNode>>(() {
+    return _inErrorZone(() {
       var cascade = _cascades[id.package];
       if (cascade != null) return cascade.getAssetNode(id);
       return new Future.value(null);
@@ -158,7 +158,7 @@
 
     if (_status != NodeStatus.IDLE) {
       // A build is still ongoing, so wait for it to complete and try again.
-      return results.first.then<Future<AssetSet>>((_) => getAllAssets());
+      return results.first.then((_) => getAllAssets());
     }
 
     // If an unexpected error occurred, complete with that.
@@ -274,7 +274,7 @@
   /// [Future]. If it throws a [BarbackException], that exception will be piped
   /// to the returned [Future] as well. Any other exceptions will be piped to
   /// [results].
-  Future<T> _inErrorZone<T>(T body()) {
+  Future<T> _inErrorZone<T>(FutureOr<T> body()) {
     var completer = new Completer<T>.sync();
     runZoned(() {
       new Future.sync(body)
diff --git a/lib/src/transformer/aggregate_transform.dart b/lib/src/transformer/aggregate_transform.dart
index 5c5fe6c..ce20d43 100644
--- a/lib/src/transformer/aggregate_transform.dart
+++ b/lib/src/transformer/aggregate_transform.dart
@@ -81,7 +81,7 @@
   /// If an input with [id] cannot be found, throws an [AssetNotFoundException].
   Future<String> readInputAsString(AssetId id, {Encoding encoding}) {
     if (encoding == null) encoding = UTF8;
-    return getInput(id).then<Future<String>>(
+    return getInput(id).then(
         (input) => input.readAsString(encoding: encoding));
   }
 
diff --git a/pubspec.yaml b/pubspec.yaml
index c1ed0ad..1d0e8a7 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -7,7 +7,7 @@
 #
 # When the minor or patch version of this is upgraded, you *must* update that
 # version constraint in pub to stay in sync with this.
-version: 0.15.2+13
+version: 0.15.2+14
 
 author: "Dart Team <misc@dartlang.org>"
 homepage: http://github.com/dart-lang/barback
