 
   activateNormalMode: ->
     @deactivateInsertMode()
-    @deactivateVisualMode()
+    @deactivateVisualMode() if @isMode('visual')
     @vimState.reset()
     @setMode('normal')
 

      @replaceModeUndoListener = null

  deactivateVisualMode: ->
    return unless @isMode('visual')
    {lastOperation} = @vimState
    restoreColumn = not (lastOperation?.isYank() or lastOperation?.isIndent())
    if restoreColumn and @isMode('visual', 'linewise')

      @selectCharacterwise()
    @vimState.operationStack.push new BlockwiseSelect(@vimState)

  activateOperatorPendingMode: ->
    # @deactivateInsertMode()
    @setMode('operator-pending')

  resetNormalMode: ->
