 		if prop
 			if data.hasOwnProperty(prop)
 				@_set(prop, @_oldData[prop])
-				@clearMessages(prop)
+				@clearMessage(prop)
 		else
 			if @_oldData
 				@disableObservers()


	resetState: ()->
		delete @_oldData
		@clearMessages()
		@setState(_Entity.STATE_NONE)
		return @


				topKeyChanged = true
		return topKeyChanged

	clear: (prop, force)->
		if not force
			if prop
				messages = propertyMessages[prop]
				if messages
					topKeyMessage = @keyMessage[$]
					propertyMessages[prop] = newMessages = []
					for message in messages
						if message.sticky
							newMessages.push(message)
							if not keyMessage or @compare(message, keyMessage) > 0
								keyMessage = message

				changed = newMessages.length < messages.length
				@keyMessage[prop] = keyMessage

				for p, keyMessage of @keyMessage
					if not topKeyMessage
						topKeyMessage = keyMessage
					else if @compare(keyMessage, topKeyMessage) > 0
						topKeyMessage = keyMessage

				@keyMessage["$"] = topKeyMessage
			else
				for prop of propertyMessages
					if @clear(prop, force)
						changed = true
				if @clear("$", force)
					changed = true
		else
			if prop
				changed = !!@propertyMessages[prop]
				delete @propertyMessages[prop]
				delete @keyMessage[prop]
			else
				changed = !!@keyMessage["$"]
				@keyMessage = {}
				@propertyMessages = {}
		return changed

	getMessages: (prop = "$")->
