 										if result.length > 0
 											clipBottom() if buffer.length
 											for i in [result.length-1..0]
-												newItems.unshift (insert --first, result[i])
+												insert --first, result[i]
 											#log "prepended: requested #{bufferSize} received #{result.length} buffer size #{buffer.length} first #{first} next #{next}"
-										finalize(rid, newItems)
-
+										finalize rid, result.length > 0
 
 						# events and bindings
 

											# if not, increment scrollTop
											viewport.scrollTop(viewport.scrollTop() + wrapper.element.outerHeight(true))
									buffer.unshift wrapper
							wrapper

						doAdjustment = (rid, finalize)->
							#log "top {actual=#{builder.topDataPos()} visible from=#{topVisiblePos()} bottom {visible through=#{bottomVisiblePos()} actual=#{builder.bottomDataPos()}}"

									datasource.get first-bufferSize, bufferSize,
									(result) ->
										return if (rid and rid isnt ridActual) or $scope.$$destroyed
										if result.length < bufferSize
											bof = true
											builder.topPadding(0)
