 
         self.tableView.beginUpdates()
         self.tableView.insertRowsAtIndexPaths([NSIndexPath(forRow: (self.baby?.gifts?.count)!-1, inSection: Section.Gifts.rawValue)], withRowAnimation: .Fade)
+        self.tableView.endUpdates()
+    }
+    
+    func removeGift(atIndexPath indexPath: NSIndexPath) {
+        if let gift: Gift = self.baby?.giftsOrdered()![indexPath.row] {
+            self.baby?.removeGiftsObject(gift)
+            self.temporaryMoc?.deleteObject(gift)
+        } else {
+            print("Attempt to delete the wrong Gift entity")
+        }
+        
+        self.tableView.beginUpdates()
+        self.tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
         self.tableView.endUpdates()
     }
 

    
    func tableView(tableView: UITableView, editingStyleForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCellEditingStyle {
        switch cellType(forIndexPath: indexPath) {
        case CellType.Adult:
            return .Delete
        case CellType.AddItem:
            return .Insert

    
    func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
        if editingStyle == .Delete {
            if indexPath.section == Section.Adults.rawValue {
                self.removeAdult(atIndexPath: indexPath)
            } else if indexPath.section == Section.Gifts.rawValue {
                self.removeGift(atIndexPath: indexPath)
            }
        } else if editingStyle == .Insert {
            // Tapped the green "+" icon
        }
