 									else
 										builder.insertElement wrapper.element, buffer[i-1].element
 									wrapper.op = 'none'
+									keepFetching = keepFetching || wrapper.element.outerHeight(true)
 								when 'insert'
 									if (i == 0)
 										promises = promises.concat (builder.insertElementAnimated wrapper.element)

						item.scope.$index = first + i for item,i in buffer

						#log "top {actual=#{builder.topDataPos()} visible from=#{topVisiblePos()} bottom {visible through=#{bottomVisiblePos()} actual=#{builder.bottomDataPos()}}"
						if shouldLoadBottom()
							enqueueFetch(rid, true)
						else
							enqueueFetch(rid, false) if shouldLoadTop()
						finalize(rid) if finalize

						#topVisible is not necessarily the first item in the buffer
						if pending.length == 0

							for wrapper in toBePrepended
								builder.insertElement wrapper.element
								wrapper.op = 'none'
								keepFetching = keepFetching || wrapper.element.outerHeight(true)
							heightIncrement = builder.bottomDataPos() - bottomPos
							# adjust padding to prevent it from visually pushing everything down
							if builder.topPadding() >= heightIncrement
