                     $0.priority = ToDoPriority.Low.toRaw()
                 }
             }
+            
+            // Update cell
+            NSOperationQueue.mainQueue().addOperationWithBlock { // Table view is in inconsistent state, gotta wait
+                self.configureCell(tableView.cellForRowAtIndexPath(destinationIndexPath), toDo: toDo)
+            }
         }
         
         // Now update internal order to reflect new position

        case .Move:
            if !contains(sectionsBeingAdded, newIndexPath.section) && !contains(sectionsBeingRemoved, indexPath.section) {
                tableView.moveRowAtIndexPath(indexPath, toIndexPath: newIndexPath)
            } else { // Stupid and ugly, rdar://17684030
                tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
                tableView.insertRowsAtIndexPaths([newIndexPath], withRowAnimation: .Fade)

    
    func configureCell(cell: UITableViewCell, toDo: ToDo) {
        cell.textLabel.text = toDo.title
        if toDo.done.boolValue {
            cell.textLabel.textColor = UIColor.lightGrayColor()
        } else {
            cell.textLabel.textColor = UIColor.blackColor()
        }
    }
    
}
