           values.push(value)
           count++
         return count >= 3
+
+    ################################################################################################
+    # REACTIVE UPDATES
+    ################################################################################################
+
+    Form.isReactive = -> !!formArgs.reactive
+
+    Form.setUpReactivity = (template) ->
+      template = getTemplate(template)
+      docs = Form.getDocs()
+      # If no docs exist, no reactive updates can occur on them.
+      return unless docs.length > 0
+      docIdMap = {}
+      _.each docs, (doc) -> docIdMap[doc._id] = true
+      collection = Form.getCollection()
+      singularName = Form.getSingularName()
+      # Check if the doc has changed and ensure the current form is not submitting to prevent
+      # self-detection.
+      docHasChanged = (doc) -> docIdMap[doc._id]? && !template.isSubmitting
+      template.autorun ->
+        Collections.observe collection,
+          changed: (doc) ->
+            return unless docHasChanged(doc)
+            result = confirm('Warning: The ' + singularName + ' being edited by this form has been
+                modified. Do you want to merge changes?')
+            console.log('result', result)
+          deleted: (doc) ->
+            return unless docHasChanged(doc)
+            alert('Warning: The ' + singularName + ' being edited by this form has been removed.')
+            # TODO(aramk) Change the form to insert.
 
     ################################################################################################
     # AUXILIARY

        onError?.apply(@, args)
        throw new Error(error)

      beginSubmit: (formId, template) -> Form.setSubmitButtonDisabled(true, template)

      endSubmit: (formId, template) -> Form.setSubmitButtonDisabled(false, template)

    if formArgs.hooks?
      AutoForm.addHooks name, formArgs.hooks

      @settings = @data.settings ? {}
      @docs = Form.parseDocs()
      @data.doc = Form.getValues()
      @isSubmitting = false
      formArgs.onCreate?.apply(@, arguments)

    Form.rendered = ->
