diff --git a/lib/build/html_import_annotation_recorder.dart b/lib/build/html_import_annotation_recorder.dart
index 336ee7c..e517e33 100644
--- a/lib/build/html_import_annotation_recorder.dart
+++ b/lib/build/html_import_annotation_recorder.dart
@@ -79,7 +79,7 @@
           path.url.joinAll(segments.getRange(1, segments.length)),
           from: path.url.dirname(path.url.join(bootstrapId.path)));
     } else if (segments[1] == 'lib') {
-      libPath = path.url.joinAll(segments.getRange(1, segments.length));
+      libPath = path.url.joinAll(segments.getRange(2, segments.length));
     } else {
       logger.error('Unable to import `${element.source.uri.path}` from '
           '${bootstrapId}.');
diff --git a/lib/src/normalize_path.dart b/lib/src/normalize_path.dart
index bac6b8b..129dfe6 100644
--- a/lib/src/normalize_path.dart
+++ b/lib/src/normalize_path.dart
@@ -13,16 +13,13 @@
   }
 
   var dartFileDir = path.url.dirname(dartFilePath);
-  var segments = path.url.split(dartFileDir);
-  // The dartFileDir without the leading dir (web, lib, test, etc).
-  var dartFileSubDir = path.url.joinAll(segments.getRange(1, segments.length));
 
   // Relative paths have no package supplied.
   if (dartFilePackage == null) {
-    return path.url.normalize(path.url.join(dartFileSubDir, filePath));
+    return path.url.normalize(path.url.join(dartFileDir, filePath));
   }
 
   // Only option left is a packages/ path.
   return path.url.normalize(
-      path.url.join('packages/', dartFilePackage, dartFileSubDir, filePath));
+      path.url.join('packages/', dartFilePackage, dartFileDir, filePath));
 }
diff --git a/test/foo/bar.dart b/test/foo/bar.dart
new file mode 100644
index 0000000..6784550
--- /dev/null
+++ b/test/foo/bar.dart
@@ -0,0 +1,7 @@
+// 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.
+@HtmlImport('bar.html')
+library web_components.test.foo.bar;
+
+import 'package:web_components/web_components.dart';
diff --git a/test/foo/bar.html b/test/foo/bar.html
new file mode 100644
index 0000000..5716ca5
--- /dev/null
+++ b/test/foo/bar.html
@@ -0,0 +1 @@
+bar
diff --git a/test/html_import_annotation_test.dart b/test/html_import_annotation_test.dart
index cae624a..09a3ffd 100644
--- a/test/html_import_annotation_test.dart
+++ b/test/html_import_annotation_test.dart
@@ -11,6 +11,7 @@
 import 'package:unittest/html_config.dart';
 import 'package:unittest/unittest.dart';
 import 'package:web_components/html_import_annotation.dart';
+import 'foo/bar.dart';
 
 const String importPath = 'my_import.html';
 
@@ -19,8 +20,14 @@
 
   test('adds import to head', () {
     return init.run().then((_) {
-      var good = document.head.querySelector('link[href="$importPath"]');
-      expect(good.import.body.text, 'Hello world!\n');
+      var my_import = document.head.querySelector('link[href="$importPath"]');
+      expect(my_import, isNotNull);
+      expect(my_import.import.body.text, 'Hello world!\n');
+
+      var bar = document.head.querySelector('link[href="foo/bar.html"]');
+      expect(bar, isNotNull);
+      expect(bar.import.body.text, 'bar\n');
+
       var bad = document.head.querySelector('link[href="bad_import.html"]');
       expect(bad.import, isNull);
     });
