v0.1.4+4
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6165e47..382dc8a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.1.4+4
+
+* Using latest `shelf`. Cleaned up test code by using new features.
+
 ## 0.1.4
 
 * Added named (optional) `defaultDocument` argument to `createStaticHandler`.
diff --git a/pubspec.yaml b/pubspec.yaml
index e502ac5..f62e57e 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: shelf_static
-version: 0.1.4+3
+version: 0.1.4+4
 author: Kevin Moore <github@j832.com>
 description: Static file server support for Shelf
 homepage: https://github.com/kevmoo/shelf_static.dart
@@ -8,7 +8,7 @@
 dependencies:
   http_parser: '>=0.0.2+2 <0.1.0'
   mime: '>=0.9.0 <0.10.0'
-  shelf: '>=0.5.0 <0.6.0'
+  shelf: '>=0.5.3 <0.6.0'
 dev_dependencies:
   hop: '>=0.30.4 <0.31.0'
   path: '>=1.1.0 <2.0.0'
diff --git a/test/test_util.dart b/test/test_util.dart
index a019814..58fa18a 100644
--- a/test/test_util.dart
+++ b/test/test_util.dart
@@ -37,24 +37,8 @@
     }
     assert(request.scriptName.isEmpty);
 
-    var relativePath = _ctx.relative(request.requestedUri.path,
-        from: scriptName);
-
-    assert(!relativePath.startsWith('/'));
-
-    relativePath = '/' + relativePath;
-
-    var url = new Uri(path: relativePath, query: request.url.query,
-        fragment: request.url.fragment);
-    var relativeRequest = _copy(request, scriptName, url);
+    var relativeRequest = request.change(scriptName: scriptName);
 
     return handler(relativeRequest);
   };
 }
-
-// TODO: until we have on https://code.google.com/p/dart/issues/detail?id=18453
-Request _copy(Request r, String scriptName, Uri url) {
-  return new Request(r.method, r.requestedUri,
-      protocolVersion: r.protocolVersion, headers: r.headers, url: url,
-      scriptName: scriptName, body: r.read(), context: r.context);
-}