     if not configDataIsEmpty
       config.data = passedConfigData
 
+    # remove duplicate paths
+    config.options.path = removeDuplicates config.options.path
+
     # expand all globs
     expandGlobs = (cb) ->
       async.each config.options.path, (globToExpand, globCallback) ->


CONNECTION_ERRORS = ['ECONNRESET', 'ENOTFOUND', 'ESOCKETTIMEDOUT', 'ETIMEDOUT', 'ECONNREFUSED', 'EHOSTUNREACH', 'EPIPE']

class Dredd
  constructor: (configOrigin) ->
    # do not touch passed configuration, rather work on a clone of it
    # (e.g prevents changing references)
    config = clone configOrigin
    @tests = []
    @stats =
        tests: 0
        failures: 0
        errors: 0
        passes: 0
        skipped: 0
        start: 0
        end: 0
        duration: 0
    @configuration = applyConfiguration(config, @stats)
    configureReporters @configuration, @stats, @tests
    @runner = new Runner @configuration


          return callback({message: "Blueprint file or files not found on path: '#{config.options.path}'"}, stats)

        # remove duplicate filenames
        config.files = removeDuplicates config.files
        cb()

    # load all files
    loadFiles = (cb) ->
