   @compress:(file, type, callback)->
 
     file.emit "fs.job.started"
-    targetPath = FSHelper.plainPath "#{file.path}.#{type}"
-    FSHelper.ensureNonexistentPath targetPath, @vmName, (err, response)->
+    path = FSHelper.plainPath "#{file.path}.#{type}"
+    vmName = file.vmName or FSHelper.getVMNameFromPath path
+    FSHelper.ensureNonexistentPath path, vmName, (err, response)->
       if err
         warn err
         callback? err, response

          when "tar.gz" then "tar -pczf #{escapeFilePath response} #{escapeFilePath file.path}"
          else "zip -r #{escapeFilePath response} #{escapeFilePath file.path}"
        KD.getSingleton('kiteController').run
          vmName   : @vmName
          withArgs : command
        , (err, res)->
          file.emit "fs.job.finished"


    sourceItem.emit "fs.job.started"
    targetPath = FSHelper.plainPath "#{targetItem.path}/#{sourceItem.name}"
    vmName = targetItem.vmName or FSHelper.getVMNameFromPath targetPath
    FSHelper.ensureNonexistentPath targetPath, vmName, (err, response)->
      if err
        warn err
        callback? err, response
      else
        KD.getSingleton('kiteController').run
          vmName   : vmName
          withArgs : "cp -R #{escapeFilePath(sourceItem.path)} #{escapeFilePath(response)}"
        , (err, res)->
          sourceItem.emit "fs.job.finished"
