 
   selectTextObject: (selection) ->
     if range = @getRange(selection)
+      oldRange = selection.getBufferRange()
+
       needToKeepColumn = @needToKeepColumn()
       if needToKeepColumn and not @isMode('visual', 'linewise')
         @vimState.modeManager.activate('visual', 'linewise')
       swrap(selection).setBufferRangeSafely(range, keepGoalColumn: needToKeepColumn)
+
+      newRange = selection.getBufferRange()
+      if newRange.isEqual(oldRange)
+        @stopSelection() # FIXME: quick-fix for #560
+
       true
     else
+      @stopSelection() # FIXME: quick-fix for #560
       false
 
   getRange: ->

class Paragraph extends TextObject
  @extend(false)
  wise: 'linewise'

  findRow: (fromRow, direction, fn) ->
    fn.reset?()

class TextObject extends Base
  @extend(false)
  wise: null
  supportCount: false # FIXME #472, #66

  constructor: ->
    @constructor::inner = @getName().startsWith('Inner')
