     
     //If the drag has moved up, we need to move some lines down potentially
     if max(0,lineNumber) < draggedLineNumber {
-      for lineToMove in max(lineNumber,0)...(draggedLineNumber - 1) {
+      //Move the ones between the current drag location and dragged line
+      for lineToMove in max(lineNumber,1)...(draggedLineNumber - 1) {
         let labelToMove = dragOverlayLabels[lineToMove]!
         //check if offset is supposed to move
         if labelToMove.frame.origin.y == originalDragOverlayLabelOffsets[lineToMove]! {

          labelToMove.setNeedsLayout()
        }
      }
    } else if min(lineNumber,maxLine) > draggedLineNumber {
      for lineToMove in (draggedLineNumber + 1)...min(lineNumber,maxLine) {
        let labelToMove = dragOverlayLabels[lineToMove]!
        if labelToMove.frame.origin.y == originalDragOverlayLabelOffsets[lineToMove]! {

          println("Moved line \(lineToMove)")
        }
      }
      //Reset the ones below that
      for lineToReset in min(maxLine,lineNumber + 1)...maxLine {
        let labelToReset = dragOverlayLabels[lineToReset]!
        if labelToReset.frame.origin.y != originalDragOverlayLabelOffsets[lineToReset]! {
          var oldFrame = labelToReset.frame
          oldFrame.origin.y = originalDragOverlayLabelOffsets[lineToReset]!
          labelToReset.frame = oldFrame
          labelToReset.setNeedsLayout()
        }
      }
    
      
    } else if lineNumber == draggedLineNumber {
      //println("Should maybe move lines back? Drag on dragged line number!")
