             }
         }
         
-        // Find the row we should snap to
         let snapDistances = (rowSnapDistances + sectionSnapDistances).filter { delegate?.tableView?(tableView, canReorderRowAtIndexPath: $0.path) != false }
-        guard let newDestinationRow = snapDistances.minElement({ $0.distance < $1.distance })?.path else { return }
-        
-        guard newDestinationRow != destinationRow else { return }
-        
-        // Update state
-        reorderState = .Reordering(
-            sourceRow: sourceRow,
-            destinationRow: newDestinationRow,
-            snapshotOffset: snapshotOffset
-        )
-        
-        // Notify the delegate
-        delegate?.tableView(tableView, reorderRowAtIndexPath: destinationRow, toIndexPath: newDestinationRow)
-        
-        // Update table view
-        tableView.beginUpdates()
-        tableView.deleteRowsAtIndexPaths([destinationRow], withRowAnimation: .Fade)
-        tableView.insertRowsAtIndexPaths([newDestinationRow], withRowAnimation: .Fade)
-        tableView.endUpdates()
+        return snapDistances.minElement({ $0.distance < $1.distance })?.path
     }
     
     // MARK: - Snapshot view

            }
        } ?? []
        
        // Calculate snapping distances for section thresholds
        let sectionSnapDistances = (0..<tableView.numberOfSections).flatMap { section -> (path: NSIndexPath, distance: CGFloat)? in
            if section > destinationRow.section {
                let rect = tableView.rectForRowAtIndexPath(NSIndexPath(forRow: 0, inSection: section))

        guard case let .Reordering(_, _, snapshotOffset) = reorderState else { return }
        guard let snapshotView = snapshotView else { return }
        
        snapshotView.center.y = point.y + snapshotOffset
        updateDestinationRow()
    }
    
