Fixed path normalization.
diff --git a/.travis.yml b/.travis.yml
index b1279b7..7a20d25 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,3 +1,4 @@
 language: dart
+dart: dev
 script: ./tool/travis.sh
 sudo: false
diff --git a/lib/packagemap.dart b/lib/packagemap.dart
index 46a1797..25f27b9 100644
--- a/lib/packagemap.dart
+++ b/lib/packagemap.dart
@@ -31,7 +31,7 @@
           uri, "uri", "Path must not start with '/'.");
     }
     // Normalizes the path by removing '.' and '..' segments.
-    uri = _normalizePath(uri);
+    uri = uri.normalizePath();
     String path = uri.path;
     var slashIndex = path.indexOf('/');
     String packageName;
@@ -51,10 +51,6 @@
     return packageLocation.resolveUri(new Uri(path: rest));
   }
 
-  /// A stand in for uri.normalizePath(), coming in 1.11
-  static Uri _normalizePath(Uri existingUri) =>
-      new Uri().resolveUri(existingUri);
-
   /// Parses a `packages.cfg` file into a `Packages` object.
   ///
   /// The [baseLocation] is used as a base URI to resolve all relative
@@ -189,12 +185,12 @@
       }
     }
 
-    baseUri = _normalizePath(baseUri);
+    baseUri = baseUri.normalizePath();
     List<String> base = baseUri.pathSegments.toList();
     if (base.isNotEmpty) {
       base = new List<String>.from(base)..removeLast();
     }
-    uri = _normalizePath(uri);
+    uri = uri.normalizePath();
     List<String> target = uri.pathSegments.toList();
     int index = 0;
     while (index < base.length && index < target.length) {