 			
 		} else {
 			
+			BatchUpdate.shared.start()
 			destinationAccount.createFeed(url: feed.url, name: feed.editedName, container: destinationContainer) { result in
 				switch result {
 				case .success:
 					sourceAccount.deleteFeed(feed) { result in
+						BatchUpdate.shared.end()
 						switch result {
 						case .success:
 							break

		let source = node.parent?.representedObject as? Container
		let destination = parentNode.representedObject as? Container

		source?.removeFeed(feed) { result in
			switch result {
			case .success:
				destination?.addFeed(feed) { result in
					switch result {
					case .success:
						break

			return false
		}

		draggedNodes.forEach { node in
			if sameAccount(node, parentNode) {
				if NSApplication.shared.currentEvent?.modifierFlags.contains(.option) ?? false {
					copyInAccount(node: node, to: parentNode)
				} else {
					moveInAccount(node: node, to: parentNode)
				}
			} else {
				if NSApplication.shared.currentEvent?.modifierFlags.contains(.option) ?? false {
					copyBetweenAccounts(node: node, to: parentNode)
				} else {
					moveBetweenAccounts(node: node, to: parentNode)
				}
			}
		}
		
		let allReferencedNodes = draggedNodes.union(Set([parentNode]))
