     @subscriptions.add @socketChannel.onError (error) => @handleChannelError error
     @subscriptions.add @incomingMessageDispatcher.onReady => @handleReady()
     @subscriptions.add @incomingMessageDispatcher.onTerminate => @handleStopping()
-    @subscriptions.add @incomingMessageDispatcher.onPositionUpdated (string) => @emitPositionUpdated string, @isReplay
+    @subscriptions.add @incomingMessageDispatcher.onPositionUpdated (string) => @emitPositionUpdated string
     @subscriptions.add @incomingMessageDispatcher.onCallStackUpdated (string) => @callStackFromString string
     @subscriptions.add @incomingMessageDispatcher.onTableUpdated (string) => @variableTableFromString string
     @subscriptions.add @incomingMessageDispatcher.onEndOfReplayTape => @handleEndOfReplayTape()

    return

  handleReady: ->
    @emitDebuggingStarted()
    for bp in breakpointManager.getBreakpoints()
      @sendBreakpointAdded bp.getPosition()
    @sendEnableDisableAllBreakpoints()
    return

  handleStopping: ->
    @isReplay = false
    @emitDebuggingStopped()
    if @positionMarker?
      @positionMarker.destroy()
    breakpointManager.restoreHiddenBreakpoint()

    if levelsWorkspaceManager.isActiveLevelDebuggable()
      currentPosition = levelsWorkspaceManager.getActiveTextEditorPosition()
      if breakpointManager.toggle currentPosition
        @socketChannel.sendMessage OutgoingMessageFactory.createAddBreakpointMessage PositionUtils.fromPoint currentPosition
      else
        @socketChannel.sendMessage OutgoingMessageFactory.createRemoveBreakpointMessage PositionUtils.fromPoint currentPosition
    return

  removeAllBreakpoints: ->
    breakpointManager.removeAll()
    @socketChannel.sendMessage OutgoingMessageFactory.createRemoveAllBreakpointsMessage()
    return

  enableDisableAllBreakpoints: ->
    breakpointManager.flip()
    @sendEnableDisableAllBreakpoints()
    @emitter.emit 'enable-disable-all-breakpoints', breakpointManager.getAreBreakpointsEnabled()
    return

  runToNextBreakpoint: ->
