 		return
 
 	fillData: (array)->
-		@_dontChangeCurrent = true
-		try
-			page = @_findPage(@pageNo)
-			page ?= new Page(@, @pageNo)
+		page = @_findPage(@pageNo)
+		if not page
+			page = new Page(@, @pageNo)
 			@_insertElement(page, "begin")
-			page.initData(array)
-
-			if not @current and page.length
-				for entity, i in entity
-					if entity.state isnt _Entity.STATE_DELETED
-						@setCurrent(entity)
-						page.hotIndex = i
-						break
-		finally
-			delete @_dontChangeCurrent
+		page.initData(array)
+
+		if not @current
+			for entity in page
+				if entity.state isnt _Entity.STATE_DELETED
+					@setCurrent(entity)
+					break
 		return
 
 	_setDataModel: (dataModel)->

							property: prop
						}
						@_notify(cola.constants.MESSAGE_LOADING_START, notifyArg)
						@_data[prop] = dfd = providerInvoker.invokeAsync().always(()=>
							@_notify(cola.constants.MESSAGE_LOADING_END, notifyArg)
							return
						).done((result)=>
							if @_data[prop] isnt retValue
								result = @_set(prop, result, true)
								if result and (result instanceof cola.EntityList or result instanceof cola.Entity)
									result._providerInvoker = providerInvoker

								if property?.getListeners("load")
									property.fire("load", property, {
										entity: @
										property: prop
									})
							return
						)


				entityList.pageCountDetermined = true

			entityList.entityCount += json.length

			if not entityList.current and @length
				for entity, i in entity
					if entity.state isnt _Entity.STATE_DELETED
						entityList.setCurrent(entity)
						page.hotIndex = i
						break

			entityList.timestamp = cola.sequenceNo()

			entityList._notify(cola.constants.MESSAGE_REFRESH, {
