diff --git a/lib/reporters/lcov-reporter.js b/lib/reporters/lcov-reporter.js
index <HASH>..<HASH> 100644
--- a/lib/reporters/lcov-reporter.js
+++ b/lib/reporters/lcov-reporter.js
@@ -1,4 +1,5 @@
 var Reporter = require('../reporter');
+var fs       = require('fs');
 
 var lcovRecord = function(data) {
   var str = '',
@@ -10,6 +11,18 @@ var lcovRecord = function(data) {
     fileName = this.options.cliOptions.lcovOptions.renamer(fileName);
   }
 
+  // Skip entries with falsy filenames -- lets ignoring files from renamer
+  if (!fileName) { return; }
+
+  // Skip non-existent files if lcovOptions.excludeMissingFiles is set
+  if (this.options.cliOptions && this.options.cliOptions.lcovOptions && this.options.cliOptions.lcovOptions.excludeMissingFiles){
+    try {
+      fs.accessSync(fileName, fs.F_OK);
+    } catch (e) {
+      return;
+    }
+  }
+
   str += 'SF:' + fileName + '\n';
   data.lines.forEach(function(value, num) {
     if (value !== null) {
Skip missing files and files ignored from renamer