 
   # Delete the archive.
   unarchive: ->
-    @debug "unarchive"
+    @debug 'unarchive'
     @archived().then (archived) =>
       throw new Error "not archived" unless archived
       Q.nfcall fs.unlink, path.join @constructor.home, @archive()
 
   # Delete the ova.
   unova: ->
-    @debug "unova"
+    @debug 'unova'
     @ovaed().then (ovaed) =>
       throw new Error "not ovaed" unless ovaed
       Q.nfcall fs.unlink, path.join @constructor.home, @ova()

    return @queueVbm arguments... if @_vbm
    @_vbm = true
    command = @constructor.vbm(cmd, [@name].concat args)
    @debug "vbm #{command}"
    child_process.exec command, =>
      @debug "vbm callback #{command}"
      callback arguments...
      @_vbm = false
      @vbm @vbmQueue.shift()... if @vbmQueue? and @vbmQueue.length > 0

  queueVbm: ->
    @debug "queueVbm"
    @vbmQueue ?= []
    @vbmQueue.push arguments


    deferred.promise.timeout timeout

  _waitForGuestControl: (deferred, delay=1000) ->
    @debug '_waitForGuestControl'
    return null if deferred.promise.isRejected()
    @info().then (info) =>
      runlevel = info.GuestAdditionsRunLevel
      @debug "_waitForGuestControl: runlevel #{runlevel}"
      return deferred.resolve true if runlevel? and parseInt(runlevel) > 2
      Q.delay(delay).then => @_waitForGuestControl deferred, delay

