   if not vparams
     return callback()
 
+  timestamp = sessionContext.timestamp + sessionContext.iteration
   toClear = null
   for vpu, i in ret
-    toClear = commitVirtualParameter(sessionContext, vparams[i], vpu, toClear)
+    vpu[k] = [timestamp + (if vparams[i][2][k]? then 1 else 0), v] for k, v of vpu
+    toClear = device.set(sessionContext.deviceData, ['VirtualParameters', vparams[i][0]], timestamp, vpu, toClear)
 
   clear(sessionContext, toClear, (err) ->
     return rpcRequest(sessionContext, null, callback)

        done &&= _done
        allDeclarations[j] = _declarations or []
        allClear[j] = _clear or []
        virtualParameterUpdates[j] = JSON.parse(JSON.stringify(_returnValue)) if _done

        if (counter -= 2) == 1
          allDeclarations = Array.prototype.concat.apply([], allDeclarations)

  for provision, j in provisions
    counter += 2
    globals = {args: provision.slice(1)}
    do (provision, j) -> sandbox.run(allVirtualParameters[provision[0]].script, globals,
      sessionContext, startRevision, endRevision,
      (err, _fault, _clear, _declarations, _done, _returnValue) ->
        if err or _fault
