     if extension is 'coffee'
       target = file.replace(/^src/, 'build/compiled').replace(/\.coffee$/, '.js')
     else
-      target = file.replace(/^src/, 'build/compiled')
+      target = file.replace /^src/, 'build/compiled'
+    # Ignore file if the compiled version is newer
+    return if path.existsSync(target) and fs.statSync(target).mtime >= fs.statSync(file).mtime
     # Generate contents if required
     if extension is 'coffee'
       console.log "Compiling #{file}..."

    else
      console.log "Copying #{file} to #{target}..."
      util.pump fs.createReadStream(file), fs.createWriteStream(target)

    # Write the file

  desc 'Remove a file from source'
  task 'remove', (file) ->


desc 'Watch the source directory and make whenever source changes.'
task 'watch', ['make'], ->
  console.log 'Watching for changes...'
  watch.watchTree 'src', (f, curr, prev) ->
    return unless typeof f is 'string'
    unless prev? and curr.nlink is 0
