       _.each Form.getDocs(template), (doc) ->
         df = Q.defer()
         promises.push(df.promise)
-        Form.getCollection().update doc._id, modifier, (err, result) ->
-          if err then df.reject(err) else df.resolve(result)
+        Form.getCollection().update doc._id, modifier, Promises.toCallback(df)
       Q.all(promises).then(
         -> context.done()
         (err) -> context.done(err)

      before:
        insert: (doc) ->
          template = getTemplate(@template)
          # Prevent change events in the inputs during loading from submitting the form until
          # the doc promise is resolved and the form is considered loaded.
          return false if Q.isPending(Form.whenLoaded(template))

        update: (modifier) ->

        args = arguments
        template = getTemplate(@template)
        onSubmit = formArgs.onSubmit

        # Prevent change events in the inputs during loading from submitting the form until
        # the doc promise is resolved and the form is considered loaded.
        return false if Q.isPending(Form.whenLoaded(template))

        result = onSubmit?.apply(@, args)
        callback = => template.settings.onSubmit?.apply(@, args)
        deferCallback(result, callback)
