diff --git a/CHANGELOG.md b/CHANGELOG.md
index d974385..be288d9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 0.5.1+4
+
+* Update to use mock dart sdk from `code_transformers` and update the `analyzer`
+and `code_transformers` dependencies.
+
 ## 0.5.1+3
 
 * Fix up mirror based import crawling so it detects dartium and only crawl all
diff --git a/lib/transformer.dart b/lib/transformer.dart
index 903abfa..76cc98c 100644
--- a/lib/transformer.dart
+++ b/lib/transformer.dart
@@ -10,6 +10,7 @@
 import 'package:barback/barback.dart';
 import 'package:code_transformers/assets.dart';
 import 'package:code_transformers/resolver.dart';
+import 'package:code_transformers/src/dart_sdk.dart' as dart_sdk;
 import 'package:dart_style/dart_style.dart';
 import 'package:glob/glob.dart';
 import 'package:html5lib/dom.dart' as dom;
@@ -46,45 +47,7 @@
       {bool errorIfNotFound: true, this.plugins})
       : _entryPointGlobs = entryPoints.map((e) => new Glob(e)),
         _errorIfNotFound = errorIfNotFound,
-        _resolvers = new Resolvers.fromMock({
-          // The list of types below is derived from:
-          //   * types that are used internally by the resolver (see
-          //   _initializeFrom in resolver.dart).
-          // TODO(jakemac): Move this into code_transformers so it can be shared.
-          'dart:core': '''
-            library dart.core;
-            class Object {}
-            class Function {}
-            class StackTrace {}
-            class Symbol {}
-            class Type {}
-
-            class String extends Object {}
-            class bool extends Object {}
-            class num extends Object {}
-            class int extends num {}
-            class double extends num {}
-            class DateTime extends Object {}
-            class Null extends Object {}
-
-            class Deprecated extends Object {
-              final String expires;
-              const Deprecated(this.expires);
-            }
-            const Object deprecated = const Deprecated("next release");
-            class _Override { const _Override(); }
-            const Object override = const _Override();
-            class _Proxy { const _Proxy(); }
-            const Object proxy = const _Proxy();
-
-            class List<V> extends Object {}
-            class Map<K, V> extends Object {}
-            ''',
-          'dart:html': '''
-            library dart.html;
-            class HtmlElement {}
-            ''',
-        });
+        _resolvers = new Resolvers.fromMock(dart_sdk.mockSdkSources);
 
   factory InitializeTransformer.asPlugin(BarbackSettings settings) =>
       new InitializeTransformer(_readFileList(settings, 'entry_points'));
diff --git a/pubspec.yaml b/pubspec.yaml
index d6b6569..b10df23 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,11 +1,12 @@
 name: initialize
-version: 0.5.1+3
+version: 0.5.1+4
 author: Polymer.dart Authors <web@dartlang.org>
 description: Generic building blocks for doing static initialization.
 homepage: https://github.com/dart-lang/initialize
 dependencies:
+  analyzer: '>=0.15.6 <0.25.0'
   barback: '>=0.14.2 <0.16.0'
-  code_transformers: '>=0.2.3 <0.3.0'
+  code_transformers: '>=0.2.7 <0.3.0'
   dart_style: '>=0.1.3 <0.2.0'
   glob: ">=1.0.4 <2.0.0"
   html5lib: '>=0.12.0 <0.13.0'
