 		allowed_placements = (@_placements or @knownPlacements).slice(0)
 		wanted_placement = @_placement or allowed_placements[0]
 
-		body_scroll_top = dim_body.scrollTop
-		body_scroll_left = dim_body.scrollLeft
+		body_scroll_top = dim_body.scrollTop + document.documentElement.scrollTop
+		body_scroll_left = dim_body.scrollLeft + document.documentElement.scrollLeft
 
 		if @__element
 			dim_element = CUI.dom.getDimensions(@__element)

			set_css.left = vp.layer_pos.left
		else
			@__layer_root.DOM.removeAttribute("cui-layer-fixed")
			# if the body is positioned, we need to adjust the root layer's position
			if dim_body.isPositioned
				CUI.dom.setStyle @__layer_root.DOM,
					top: - (dim_body.marginTop + dim_body.borderTopWidth)
					left: - (dim_body.marginLeft + dim_body.borderLeftWidth)
					bottom: - (dim_body.marginBottom + dim_body.borderBottomWidth)
					right: - (dim_body.marginRight + dim_body.borderRightWidth)
			else
				CUI.dom.setStyle @__layer_root.DOM,
					top: null
					left: null
					bottom: null
					right: null

		if placement == "c" and not CUI.browser.ie
			# placement can be done by pure CSS

					margin: 0
			else
				CUI.dom.setStyle @__pointer,
					top: vp.pointer_pos.top
					left: vp.pointer_pos.left
					margin: 0

			CUI.dom.addClass(@__pointer, get_pointer_class(vp.pointer_pos.direction))
