 										++next
 										insertItem 'append', item
 										#log 'appended: requested ' + bufferSize + ' received ' + result.length + ' buffer size ' + buffer.length + ' first ' + first + ' next ' + next
-								finalize rid
+								adjustBufferAfterFetch rid
 					else
 						if buffer.length && !shouldLoadTop()
-							finalize rid
+							adjustBufferAfterFetch rid
 						else
 							#log "prepending... requested #{size} records starting from #{start}"
 							datasource.get first-bufferSize, bufferSize,

								#log "Animation completed rid #{rid}"
								adjustBuffer rid

				finalize = (rid) ->
					adjustBuffer rid, ->
						pending.shift()
						if pending.length == 0


						adjustAfterFetch(rid) if adjustAfterFetch

						if pending.length == 0
							topHeight = 0
							for item in buffer
