diff --git a/.status b/.status
index 3197870..3cc56c9 100644
--- a/.status
+++ b/.status
@@ -11,6 +11,9 @@
 */*/*/*/packages/*/*: Skip
 */*/*/*/*/packages/*/*: Skip
 
+# failing tests
+test/deferred_library_test.dart: RuntimeError # Issue 22592
+
 # tests that don't need to be ran after pub-build
 build/test/transformer_test.dart: Skip
 build/test/static_init_cycle_error_test.dart: Skip # Build time warning
diff --git a/test/deferred_library_test.dart b/test/deferred_library_test.dart
new file mode 100644
index 0000000..80b7d02
--- /dev/null
+++ b/test/deferred_library_test.dart
@@ -0,0 +1,39 @@
+// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+@initializeTracker
+library initialize.deferred_library_test;
+
+import 'foo.dart' deferred as foo;
+import 'package:initialize/src/initialize_tracker.dart';
+import 'package:initialize/initialize.dart';
+import 'package:unittest/unittest.dart';
+import 'package:unittest/compact_vm_config.dart';
+
+main() {
+  useCompactVMConfiguration();
+
+  test('annotations can be loaded lazily', () {
+    // Initialize everything not in deferred imports.
+    return run().then((_) {
+      var expectedNames = [
+          const LibraryIdentifier(
+              #initialize.deferred_library_test, null,
+              'deferred_library_test.dart'),
+      ];
+      expect(InitializeTracker.seen, expectedNames);
+
+      // Now load the foo library and re-run initializers.
+      return foo.loadLibrary().then((_) => run()).then((_) {
+        expectedNames.addAll([
+            const LibraryIdentifier(
+                #initialize.test.foo, null, 'foo.dart'),
+            foo.foo,
+            foo.fooBar,
+            foo.Foo,
+        ]);
+        expect(InitializeTracker.seen, expectedNames);
+      });
+    });
+  });
+}
