 								when 'prepend' then toBePrepended.unshift wrapper
 								when 'append'
 									if (i == 0) # the first item in buffer is to be appended, therefore the buffer was empty
-										builder.insertElement wrapper.element
+										keepFetching = insertWrapperContent(wrapper) || keepFetching
 									else
-										builder.insertElement wrapper.element, buffer[i-1].element
+										keepFetching = insertWrapperContent(wrapper, buffer[i-1].element) || keepFetching
 									wrapper.op = 'none'
-									if wrapper.element.height() && wrapper.element[0].offsetParent
-										keepFetching = keepFetching || true
-									else
-										((wrapperClosure) ->
-											wrapperClosure.unregister = wrapperClosure.scope.$watch ->
-												if wrapperClosure.element.height() && wrapperClosure.element[0].offsetParent
-													if !alreadyAdjusted
-														adjustBuffer()
-														alreadyAdjusted = true
-													wrapperClosure.unregister()
-										)(wrapper)
 								when 'insert'
 									if (i == 0)
 										promises = promises.concat (builder.insertElementAnimated wrapper.element)

					viewport.scrollTop()

				shouldLoadBottom = ->
					!eof && builder.bottomDataPos() < bottomVisiblePos() + bufferPadding()

				clipBottom = ->

						promises = []
						toBePrepended = []
						toBeRemoved = []

						bottomPos = builder.bottomDataPos()
						for wrapper, i in buffer
