diff --git a/sdk/lib/_internal/compiler/implementation/compiler.dart b/sdk/lib/_internal/compiler/implementation/compiler.dart
index 66a039d..6098512 100644
--- a/sdk/lib/_internal/compiler/implementation/compiler.dart
+++ b/sdk/lib/_internal/compiler/implementation/compiler.dart
@@ -1060,6 +1060,7 @@
     // Elements required by enqueueHelpers are global dependencies
     // that are not pulled in by a particular element.
     backend.enqueueHelpers(enqueuer.resolution, globalDependencies);
+    resolveLibraryMetadata();
     processQueue(enqueuer.resolution, main);
     enqueuer.resolution.logSummary(log);
 
@@ -1127,6 +1128,19 @@
     }
   }
 
+  // Resolves metadata on library elements.  This is necessary in order to
+  // resolve metadata classes referenced only from metadata on library tags.
+  // TODO(ahe): Figure out how to do this lazily.
+  void resolveLibraryMetadata() {
+    for (LibraryElement library in libraries.values) {
+      if (library.metadata != null) {
+        for (MetadataAnnotation metadata in library.metadata) {
+          metadata.ensureResolved(this);
+        }
+      }
+    }
+  }
+
   void processQueue(Enqueuer world, Element main) {
     world.nativeEnqueuer.processNativeClasses(libraries.values);
     if (main != null) {
diff --git a/tests/lib/mirrors/library_metatarget_test.dart b/tests/lib/mirrors/library_metatarget_test.dart
new file mode 100644
index 0000000..8bbb64f
--- /dev/null
+++ b/tests/lib/mirrors/library_metatarget_test.dart
@@ -0,0 +1,17 @@
+// Copyright (c) 2013, 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.
+
+// Regression test for the combined use of metatargets and library tags.
+
+library topLib;
+
+import 'library_metatarget_test_lib.dart';
+import 'library_metatarget_test_annotations_lib.dart';
+
+@MirrorsUsed(metaTargets:const [Reflectable])
+import 'dart:mirrors';
+
+void main() {
+  print(new A());
+}
diff --git a/tests/lib/mirrors/library_metatarget_test_annotations_lib.dart b/tests/lib/mirrors/library_metatarget_test_annotations_lib.dart
new file mode 100644
index 0000000..20fcfcf
--- /dev/null
+++ b/tests/lib/mirrors/library_metatarget_test_annotations_lib.dart
@@ -0,0 +1,17 @@
+// Copyright (c) 2013, 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.
+
+// Regression test for the combined use of metatargets and library tags.
+
+library annotations;
+
+class UsedOnlyOnLibrary {
+  const UsedOnlyOnLibrary();
+}
+const usedOnlyOnLibrary = const UsedOnlyOnLibrary();
+
+class Reflectable {
+  const Reflectable();
+}
+const Reflectable reflectable = const Reflectable();
diff --git a/tests/lib/mirrors/library_metatarget_test_lib.dart b/tests/lib/mirrors/library_metatarget_test_lib.dart
new file mode 100644
index 0000000..3732f92
--- /dev/null
+++ b/tests/lib/mirrors/library_metatarget_test_lib.dart
@@ -0,0 +1,15 @@
+// Copyright (c) 2013, 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.
+
+// Regression test for the combined use of metatargets and library tags.
+
+@usedOnlyOnLibrary
+library subLib;
+
+import 'library_metatarget_test_annotations_lib.dart';
+
+class A {
+  @reflectable var reflectableField = 1;
+  var nonreflectableField = 2;
+}
diff --git a/tools/VERSION b/tools/VERSION
index 46461a5..b409bea 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -1,4 +1,4 @@
 MAJOR 0
 MINOR 8
 BUILD 3
-PATCH 1 
+PATCH 2 
