diff --git a/lib/file-set.js b/lib/file-set.js
index <HASH>..<HASH> 100644
--- a/lib/file-set.js
+++ b/lib/file-set.js
@@ -1,7 +1,9 @@
-var fs = require("fs"),
-    glob = require("glob"),
-    Glob = glob.Glob,
-    a = require("array-tools");
+"use strict";
+var fs = require("fs");
+var glob = require("glob");
+var Glob = glob.Glob;
+var a = require("array-tools");
+var path = require("path");
 
 /**
 Exports a contructor taking a list of file patterns as input, returning a `file-set` instance containing the expanded patterns split into separate lists of `files`, `dirs` and `notExisting`.
@@ -74,11 +76,14 @@ FileSet.prototype.add = function(files){
         } catch(err){
             if (err.code === "ENOENT"){
                 nonExistingFiles.push(file);
+            } else {
+                throw err;
             }
         }
     });
 
     nonExistingFiles.forEach(function(file){
+        file = path.normalize(file);
         var glob = new Glob(file, { sync: true, stat: true });
         if (glob.found.length){
             glob.found.forEach(function(file){
fixed issue when path like 'this/that/../something'