diff --git a/lib/resolver.js b/lib/resolver.js
index <HASH>..<HASH> 100644
--- a/lib/resolver.js
+++ b/lib/resolver.js
@@ -2,7 +2,9 @@
 var goog = require('./goog');
 
 // TODO(vojta): can we handle provide "same thing provided multiple times" ?
-var DependencyResolver = function() {
+var DependencyResolver = function(logger) {
+  var log = logger.create('closure');
+
   // the state
   var fileMap = Object.create(null);
   var provideMap = Object.create(null);
@@ -29,8 +31,13 @@ var DependencyResolver = function() {
     // resolve all dependencies first
     fileMap[filepath].requires.forEach(function(dep) {
       if (!alreadyResolvedMap[dep]) {
-        // TODO(vojta): error if dep not provided
-        resolveFile(provideMap[dep], files, alreadyResolvedMap);
+        if (provideMap[dep]) {
+          resolveFile(provideMap[dep], files, alreadyResolvedMap);
+        } else {
+          log.error('MISSING DEPENDENCY:', dep);
+          log.error('Did you forget to preprocess your source directory? Or did you leave off ' +
+                      'the google closure library deps.js file?');
+        }
       }
     });
fix: Show error for a missing dependency.

This ensures that something is printed out for users who didn't add a mapping for one of their dependencies. Either they missed a deps.js file or they didn't preprocess all of their source files. The current behavior adds an undefined filepath which ends up causing the karma web-server to blow up when it trys to do indexOf on undefined.