diff --git a/lib/src/unmodifiable_wrappers.dart b/lib/src/unmodifiable_wrappers.dart
index c681884..7f7d901 100644
--- a/lib/src/unmodifiable_wrappers.dart
+++ b/lib/src/unmodifiable_wrappers.dart
@@ -13,8 +13,6 @@
  */
 library collection.unmodifiable_wrappers;
 
-import "dart:collection";
-
 import '../wrappers.dart';
 
 export "dart:collection" show UnmodifiableListView, UnmodifiableMapView;
diff --git a/lib/wrappers.dart b/lib/wrappers.dart
index f14584d..34f812c 100644
--- a/lib/wrappers.dart
+++ b/lib/wrappers.dart
@@ -14,6 +14,8 @@
 import "dart:collection";
 import "dart:math" show Random;
 
+import "src/unmodifiable_wrappers.dart";
+
 export "src/canonicalized_map.dart";
 export "src/unmodifiable_wrappers.dart";
 
diff --git a/pubspec.yaml b/pubspec.yaml
index 33110ba..1517353 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: collection
-version: 1.1.2-dev
+version: 1.1.2
 author: Dart Team <misc@dartlang.org>
 description: Collections and utilities functions and classes related to collections.
 homepage: https://www.github.com/dart-lang/collection
diff --git a/test/unmodifiable_collection_test.dart b/test/unmodifiable_collection_test.dart
index 82189ab..6c722d0 100644
--- a/test/unmodifiable_collection_test.dart
+++ b/test/unmodifiable_collection_test.dart
@@ -42,21 +42,6 @@
   testUnmodifiableSet(aSet, new UnmodifiableSetView(aSet), "three-42");
   aSet = new Set.from([1, 7, 10]);
   testUnmodifiableSet(aSet, new UnmodifiableSetView(aSet), "three!42");
-
-  Map map = new Map();
-  testUnmodifiableMap(map, new UnmodifiableMapView(map), "empty");
-  map = new Map()..[0] = 2;
-  testUnmodifiableMap(map, new UnmodifiableMapView(map), "single-0");
-  map = new Map()..[3] = 2;
-  testUnmodifiableMap(map, new UnmodifiableMapView(map), "single!0");
-  map = new Map()..[0] = 2
-                 ..[1] = 1
-                 ..[2] = 0;
-  testUnmodifiableMap(map, new UnmodifiableMapView(map), "three-0");
-  map = new Map()..[3] = 2
-                 ..[1] = 1
-                 ..[2] = 3;
-  testUnmodifiableMap(map, new UnmodifiableMapView(map), "three!0");
 }
 
 void testUnmodifiableList(List original, List wrapped, String name) {
@@ -82,12 +67,6 @@
   testNoChangeSet(original, wrapped, name);
 }
 
-void testUnmodifiableMap(Map original, Map wrapped, name) {
-  name = "unmodifiable-map-$name";
-  testReadMap(original, wrapped, name);
-  testNoChangeMap(original, wrapped, name);
-}
-
 void testIterable(Iterable original, Iterable wrapped, String name) {
   test("$name - any", () {
     expect(wrapped.any((x) => true), equals(original.any((x) => true)));
