diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0d61162..13aa2a9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,15 @@
   `configureExpectFailureHandler`, and `getOrCreateExpectFailureHandler`.
   Now that `expect` is in the `unittest` package, these are no longer needed.
 
+## 0.11.4+4
+
+* Deprecate the name parameter to `isInstanceOf`. All language implementations
+  now support converting the type parameter to a string directly.
+
+## 0.11.4+3
+
+* Fix the examples for `equalsIgnoringWhitespace`.
+
 ## 0.11.4+2
 
 * Improve the formatting of strings that contain unprintable ASCII characters.
diff --git a/lib/src/core_matchers.dart b/lib/src/core_matchers.dart
index 61585bc..a2e9718 100644
--- a/lib/src/core_matchers.dart
+++ b/lib/src/core_matchers.dart
@@ -372,23 +372,15 @@
 /// 'Foo', we would write:
 ///
 ///     expect(bar, new isInstanceOf<Foo>());
-///
-/// To get better error message, supply a name when creating the
-/// Type wrapper; e.g.:
-///
-///     expect(bar, new isInstanceOf<Foo>('Foo'));
-///
-/// Note that this does not currently work in dart2js; it will
-/// match any type, and isNot(new isInstanceof<T>()) will always
-/// fail. This is because dart2js currently ignores template type
-/// parameters.
 class isInstanceOf<T> extends Matcher {
-  final String _name;
-  const isInstanceOf([name = 'specified type']) : this._name = name;
+  /// The [name] parameter does nothing; it's deprecated and will be removed in
+  /// future version of [matcher].
+  const isInstanceOf([@deprecated String name]);
+
   bool matches(obj, Map matchState) => obj is T;
-  // The description here is lame :-(
+
   Description describe(Description description) =>
-      description.add('an instance of ${_name}');
+      description.add('an instance of $T');
 }
 
 /// A matcher that matches a function call against no exception.
diff --git a/lib/src/string_matchers.dart b/lib/src/string_matchers.dart
index c93963f..4643434 100644
--- a/lib/src/string_matchers.dart
+++ b/lib/src/string_matchers.dart
@@ -34,14 +34,14 @@
 ///
 /// For example, the following will all match successfully:
 ///
-///     expect("hello   world", equalsIgnoringCase("hello world"));
-///     expect("  hello world", equalsIgnoringCase("hello world"));
-///     expect("hello world  ", equalsIgnoringCase("hello world"));
+///     expect("hello   world", equalsIgnoringWhitespace("hello world"));
+///     expect("  hello world", equalsIgnoringWhitespace("hello world"));
+///     expect("hello world  ", equalsIgnoringWhitespace("hello world"));
 ///
 /// The following will not match:
 ///
-///     expect("helloworld", equalsIgnoringCase("hello world"));
-///     expect("he llo world", equalsIgnoringCase("hello world"));
+///     expect("helloworld", equalsIgnoringWhitespace("hello world"));
+///     expect("he llo world", equalsIgnoringWhitespace("hello world"));
 Matcher equalsIgnoringWhitespace(String value) =>
     new _IsEqualIgnoringWhitespace(value);
 
diff --git a/test/core_matchers_test.dart b/test/core_matchers_test.dart
index 5d8a194..1769ba4 100644
--- a/test/core_matchers_test.dart
+++ b/test/core_matchers_test.dart
@@ -175,9 +175,9 @@
   });
 
   test('isInstanceOf', () {
-    shouldFail(0, new isInstanceOf<String>('String'),
+    shouldFail(0, new isInstanceOf<String>(),
         "Expected: an instance of String Actual: <0>");
-    shouldPass('cow', new isInstanceOf<String>('String'));
+    shouldPass('cow', new isInstanceOf<String>());
   });
 
   group('Predicate Matchers', () {
