       (@redoStack[@redoStack.length - 1] is 'CAPTURE' and
       @getValue() isnt currentValue)
     operation = @popRedo()
-    @tree.perform(operation, 'forward') unless operation is 'CAPTURE'
+    if operation instanceof FloatingOperation
+      @performFloatingOperation(operation, 'forward')
+    else
+      @tree.perform(operation, 'forward') unless operation is 'CAPTURE'
 
   @popRedo()
   @redrawMain()

    @redrawMain()
    @redrawHighlights()

# On mousedown, we can hit test for floating blocks.
hook 'mousedown', 5, (point, event, state) ->
  # If someone else has already taken this click, pass.


    # Add the undo operation associated
    # with creating this floating block
    @pushUndo new FloatingOperation @draggingBlock, renderPoint, 'create'

    # Add this block to our list of floating blocks
    @floatingBlocks.push new FloatingBlockRecord(
