diff --git a/CHANGELOG.md b/CHANGELOG.md
index a01f6e9..46f2735 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.6.3+1
+
+* Cleaned up handling of certain `Map` instances and related dependencies.
+
 ## 0.6.3
 
 * Messages returned by `Request.change()` and `Response.change()` are marked
diff --git a/lib/src/shelf_unmodifiable_map.dart b/lib/src/shelf_unmodifiable_map.dart
index d07ebfd..46b4223 100644
--- a/lib/src/shelf_unmodifiable_map.dart
+++ b/lib/src/shelf_unmodifiable_map.dart
@@ -6,11 +6,13 @@
 
 import 'dart:collection';
 
-import 'package:collection/wrappers.dart' as pc;
+import 'package:http_parser/http_parser.dart';
 
-/// A simple wrapper over [pc.UnmodifiableMapView] which avoids re-wrapping
-/// itself.
+/// A simple wrapper over [UnmodifiableMapView] which avoids re-wrapping itself.
 class ShelfUnmodifiableMap<V> extends UnmodifiableMapView<String, V> {
+  /// `true` if the key values are already lowercase.
+  final bool _ignoreKeyCase;
+
   /// If [source] is a [ShelfUnmodifiableMap] with matching [ignoreKeyCase],
   /// then [source] is returned.
   ///
@@ -22,7 +24,10 @@
   /// after constructions are not reflected.
   factory ShelfUnmodifiableMap(Map<String, V> source,
       {bool ignoreKeyCase: false}) {
-    if (source is ShelfUnmodifiableMap<V>) {
+    if (source is ShelfUnmodifiableMap<V> &&
+        //        !ignoreKeyCase: no transformation of the input is required
+        // source._ignoreKeyCase: the input cannot be transformed any more
+        (!ignoreKeyCase || source._ignoreKeyCase)) {
       return source;
     }
 
@@ -31,22 +36,21 @@
     }
 
     if (ignoreKeyCase) {
-      source = new pc.CanonicalizedMap<String, String, V>.from(
-          source, (key) => key.toLowerCase(), isValidKey: (key) => key != null);
+      source = new CaseInsensitiveMap<V>.from(source);
     } else {
       source = new Map<String, V>.from(source);
     }
 
-    return new ShelfUnmodifiableMap<V>._(source);
+    return new ShelfUnmodifiableMap<V>._(source, ignoreKeyCase);
   }
 
-  ShelfUnmodifiableMap._(Map<String, V> source) : super(source);
+  ShelfUnmodifiableMap._(Map<String, V> source, this._ignoreKeyCase)
+      : super(source);
 }
 
-/// An const empty implementation of [ShelfUnmodifiableMap].
-// TODO(kevmoo): Consider using MapView from dart:collection which has a const
-// ctor. Would require updating min SDK to 1.5.
-class _EmptyShelfUnmodifiableMap<V> extends pc.DelegatingMap<String, V>
+/// A const implementation of an empty [ShelfUnmodifiableMap].
+class _EmptyShelfUnmodifiableMap<V> extends MapView<String, V>
     implements ShelfUnmodifiableMap<V> {
+  bool get _ignoreKeyCase => true;
   const _EmptyShelfUnmodifiableMap() : super(const {});
 }
diff --git a/pubspec.yaml b/pubspec.yaml
index 28fc35a..dfdfeaf 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,13 +1,12 @@
 name: shelf
-version: 0.6.3
+version: 0.6.3+1
 author: Dart Team <misc@dartlang.org>
 description: Web Server Middleware for Dart
 homepage: https://github.com/dart-lang/shelf
 environment:
   sdk: '>=1.9.0 <2.0.0'
 dependencies:
-  collection: '^1.0.0'
-  http_parser: '>=0.0.0 <2.0.0'
+  http_parser: '^1.0.0'
   path: '^1.0.0'
   stack_trace: '^1.0.0'
 dev_dependencies:
