     , callback
 
 # Extract files that depend on current file.
-getDependencies = (data, path, compiler, callback) ->
+getDependencies = (data, path, compilerDeps, compiler, callback) ->
   if compiler.getDependencies
-    debug "getDependencies '#{path}' with '#{compiler.constructor.name}'"
+    {name} = compiler.constructor
+    if compilerDeps
+      return callback "Compiler '#{name}' already passes dependencies. Remove `getDependencies` method."
+    debug "getDependencies '#{path}' with '#{name}'"
     compiler.getDependencies data, path, callback
   else
-    callback null, []
+    callback null, compilerDeps or []
 
 mapCompilerChain = (compiler) -> (params, next) ->
   return next() unless params

        logger.warn "Linting of #{path}: #{error}"
      else
        return callback throwError 'Linting', error if error?
      
      compile source, path, compilers, callback

exports.pipeline = pipeline

    return callback throwError 'Compiling', error if error?
    return next() unless result?
    if toString.call(result) is '[object Object]'
      compiled = result.data
      sourceMap = result.map
      compilerDeps = result.dependencies
    else
      compiled = result
    unless compiled?
      throw new Error "Brunch SourceFile: file #{path} data is invalid"
    getDependencies source, path, compilerDeps, compiler, (error, dependencies) =>
      return callback throwError 'Dependency parsing', error if error?
      next null, {dependencies, compiled, source, sourceMap, path, callback}

