       event.stopPropagation()
       return
 
+    @removeDropTargetClasses()
+
     event.preventDefault()
-    currentDropTargetIndex = @find(".is-drop-target").index()
     newDropTargetIndex = @getDropTargetIndex(event)
 
-    if newDropTargetIndex != currentDropTargetIndex
-      @children().removeClass 'is-drop-target drop-target-is-after'
-      sortableObjects = @find(".sortable")
-      if newDropTargetIndex < sortableObjects.length
-        sortableObjects.eq(newDropTargetIndex).addClass 'is-drop-target'
-      else
-        sortableObjects.eq(newDropTargetIndex - 1).addClass 'drop-target-is-after'
-
+    sortableObjects = @find(".sortable")
+    if newDropTargetIndex < sortableObjects.length
+      sortableObjects.eq(newDropTargetIndex).addClass 'is-drop-target'
+    else
+      sortableObjects.eq(newDropTargetIndex - 1).addClass 'drop-target-is-after'
 
   onDrop: (event) =>
     unless event.originalEvent.dataTransfer.getData('atom-event') is 'true'
       event.preventDefault()
       event.stopPropagation()
       return
+
+    @find(".is-dragging").removeClass 'is-dragging'
+    @removeDropTargetClasses()
 
     event.stopPropagation()
 

    toPane.showItem(item)
    toPane.focus()

  getDropTargetIndex: (event) ->
    el = $(event.target).closest('.sortable')
    el = $(event.target).find('.sortable').last()  if el.length == 0


  onDragEnd: (event) =>
    @find(".is-dragging").removeClass 'is-dragging'
    @removeDropTargetClasses()

  onDragOver: (event) =>
    unless event.originalEvent.dataTransfer.getData('atom-event') is 'true'
