 		// ignore nonvisible rows off the top
 		var yy:Number;
 		var i:int;
+		var n:int = listItems.length;
+        // if there is more than one row and it is a partial row we dont count it
+        while (rowCount > 1 && rowInfo[n - 1].y + rowInfo[n-1].height > listContent.height - listContent.bottomOffset)
+		{
+            rowCount--;
+			n--;
+		}
+
+        // offset, when added to rowCount, is the index of the dataProvider
+        // item for that row.  IOW, row 10 in listItems is showing dataProvider
+        // item 10 + verticalScrollPosition - lockedRowCount - 1;
+        var offset:int = verticalScrollPosition - lockedRowCount - 1;
+        // don't count filler rows at the bottom either.
+        var fillerRows:int = 0;
+        // don't count filler rows at the bottom either.
+        while (rowCount && listItems[rowCount - 1].length == 0)
+        {
+            if (collection && rowCount + offset >= collection.length)
+            {
+                rowCount--;
+                ++fillerRows;
+            }
+            else
+                break;
+        }
+
+        // we have to scroll up.  We can't have filler rows unless the scrollPosition is 0
+        // We don't do the adjustment if a data effect is running, because that prevents
+        // a smooth effect. Effectively, we pin the scroll position while the effect is
+        // running.
+        if (verticalScrollPosition > 0 && fillerRows > 0 && !runningDataEffect)
+        {
+            if (adjustVerticalScrollPositionDownward(Math.max(rowCount, 1)))
+                return;
+        }
+
 		if (listContent.topOffset)
 		{
 			yy = Math.abs(listContent.topOffset);

		var paddingRight:Number = getStyle("paddingRight");

        h = rowInfo[rowCount - 1].y + rowInfo[rowCount - 1].height;
        h = listContent.heightExcludingOffsets - h;
		
        // back up one
        var numRows:int = 0;

			}
		}

        var colCount:int = listItems[0].length;
        var oldHorizontalScrollBar:Object = horizontalScrollBar;
        var oldVerticalScrollBar:Object = verticalScrollBar;
