             }
         }
 
-        minReached = nilIndexPath
-        maxReached = nilIndexPath
-
         //if initial selection can't be selected, don't start drag selecting
         if delegate?.collectionView?(self, shouldSelectItemAt: selection) == false {
             dragSelectActive = false
             initialSelection = nilIndexPath
             lastDraggedIndex = nilIndexPath
+            minReached = nilIndexPath
+            maxReached = nilIndexPath
             DragSelectCollectionView.LOG("Index [%i, %i] is not selectable.",
                                             args: selection.section, selection.item)
             return false

        // Drag selection logic
        if pathAtPoint != nilIndexPath && pathAtPoint != lastDraggedIndex {
            lastDraggedIndex = pathAtPoint
            if minReached == nilIndexPath { minReached = lastDraggedIndex }
            if maxReached == nilIndexPath { maxReached = lastDraggedIndex }

            maxReached = max(maxReached, lastDraggedIndex)
            minReached = min(minReached, lastDraggedIndex)

                maxReached.section, maxReached.item)

            if initialSelection == lastDraggedIndex {
                minReached = initialSelection
                maxReached = initialSelection
            }
        }
    }
