diff --git a/.travis.yml b/.travis.yml
index a3c98ae..a9b5166 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,8 +2,6 @@
 
 dart:
   - dev
-  - stable
-  - 1.23.0
 
 dart_task:
   - test: --platform vm
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 84b72c0..46d142f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.3.5
+
+- Updated SDK version to 2.0.0-dev.17.0
+
 ## 1.3.4
 
 * Modify code to eliminate Future flattening.
diff --git a/pubspec.yaml b/pubspec.yaml
index a5f0434..a628ec6 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: pool
-version: 1.3.4
+version: 1.3.5
 author: Dart Team <misc@dartlang.org>
 description: A class for managing a finite pool of resources.
 homepage: https://github.com/dart-lang/pool
@@ -7,7 +7,7 @@
   async: ">=1.4.0 <3.0.0"
   stack_trace: ">=0.9.2 <2.0.0"
 environment:
-  sdk: ">=1.23.0 <2.0.0"
+  sdk: ">=2.0.0-dev.17.0 <2.0.0"
 dev_dependencies:
   fake_async: ">=0.1.0 <0.2.0"
   test: ">=0.12.0 <0.13.0"
diff --git a/test/pool_test.dart b/test/pool_test.dart
index 6feba75..d0e7017 100644
--- a/test/pool_test.dart
+++ b/test/pool_test.dart
@@ -177,11 +177,11 @@
       var resource = await pool.request();
       var onReleaseCalled = false;
       resource.allowRelease(() => onReleaseCalled = true);
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
       expect(onReleaseCalled, isFalse);
 
       expect(pool.request(), completes);
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
       expect(onReleaseCalled, isTrue);
     });
 
@@ -195,7 +195,7 @@
 
       var onReleaseCalled = false;
       resource.allowRelease(() => onReleaseCalled = true);
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
       expect(onReleaseCalled, isTrue);
     });
 
@@ -208,11 +208,11 @@
 
       var completer = new Completer();
       resource.allowRelease(() => completer.future);
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
       expect(requestComplete, isFalse);
 
       completer.complete();
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
       expect(requestComplete, isTrue);
     });
 
@@ -233,7 +233,7 @@
         onRelease1Called = true;
         return completer1.future;
       });
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
       expect(onRelease1Called, isTrue);
 
       var onRelease2Called = false;
@@ -242,7 +242,7 @@
         onRelease2Called = true;
         return completer2.future;
       });
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
       expect(onRelease2Called, isTrue);
       expect(request1Complete, isFalse);
       expect(request2Complete, isFalse);
@@ -251,12 +251,12 @@
       // was triggered by the second blocking request, it should complete the
       // first one to preserve ordering.
       completer2.complete();
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
       expect(request1Complete, isTrue);
       expect(request2Complete, isFalse);
 
       completer1.complete();
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
       expect(request1Complete, isTrue);
       expect(request2Complete, isTrue);
     });
@@ -286,7 +286,7 @@
     var resource = await pool.request();
     resource.release();
 
-    await new Future.delayed(Duration.ZERO);
+    await new Future.delayed(Duration.zero);
   });
 
   group("close()", () {
@@ -323,7 +323,7 @@
       expect(pool.close(), completes);
 
       resource1.allowRelease(() => completer.future);
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
 
       completer.complete();
     });
@@ -347,11 +347,11 @@
 
       resource1Released = true;
       resource1.release();
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
 
       resource2Released = true;
       resource2.release();
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
 
       var resource3 = await resource3Future;
       resource3Released = true;
@@ -372,10 +372,10 @@
           }),
           completes);
 
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
       pool.close();
 
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
       completer.complete();
     });
 
@@ -396,10 +396,10 @@
           }),
           completes);
 
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
       completer1.complete();
 
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
       completer2.complete();
     });
 
@@ -414,10 +414,10 @@
           }),
           completes);
 
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
       resource.allowRelease(() => completer.future);
 
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
       completer.complete();
     });
 
@@ -431,7 +431,7 @@
       expect(pool.done, throwsA("oh no!"));
       expect(pool.close(), throwsA("oh no!"));
 
-      await new Future.delayed(Duration.ZERO);
+      await new Future.delayed(Duration.zero);
       completer.completeError("oh no!");
     });
   });
