     }
     
     private func superIndexPathForIndexPath(indexPath: NSIndexPath) -> NSIndexPath {
-        return NSIndexPath(forRow: indexPath.row + numberOfRowsBeforeIndexPath(indexPath),
+        return NSIndexPath(forRow: indexPath.row + numberOfExcludedRowsBeforeIndexPath(indexPath),
                            inSection: indexPath.section)
     }
     

    // MARK: - UITableViewDataSource
    
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        let numberOfExcludedCellsInThisSection = excludedCells?.filter { cell in
            tableView.indexPathForCell(cell)?.section == section
            }.count ?? 0
        return super.tableView(tableView, numberOfRowsInSection: section) - numberOfExcludedCellsInThisSection
    }
    

    
    // MARK: - Private functions
    
    private func numberOfExcludedRowsBeforeIndexPath(indexPath: NSIndexPath) -> Int {
        var numberOfExcludedRows = 0
        if let excludedCells = excludedCells {
            let superSection = indexPath.section
