 			// First try to find a match based on the key.
 			if let key = child.key {
 				match = theirChildrenByKey[key]
-				usedKeys[key] = ()
 			}
 
 			// If that fails and we still have new children, use one of those.

				match = childQueue[0]
				childQueue.removeAtIndex(0)

				// We already used this child when doing key matching, so don't
				// use it again.
				if let key = match!.key {
					if usedKeys[key] != nil {
						match = nil
					}
				}
			}


		let myChildrenByKey = childrenByKey(children)
		let theirChildrenByKey = childrenByKey(otherChildren)

		var childQueue = otherChildren

		// We want to reuse children as much as possible. First we check for
