             listItems[listItems.length-1][0].y + rowHeight - oldContentHeight + listContent.topOffset :
             0;
        
-        if (iteratorValid)
-            iterator.seek(cursorPos, 0);
+        iterator.seek(cursorPos, 0);
+
         // make sure list content is moved to the appropriate place.
         // might be able to optimize and not do this every time
         adjustListContent(unscaledWidth,unscaledHeight);

        systemManager.getSandboxRoot().removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler, true);
        systemManager.getSandboxRoot().removeEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE, mouseLeaveHandler);

        if (!dragEnabled && dragScrollingInterval != 0)
        {
            clearInterval(dragScrollingInterval);
            dragScrollingInterval = 0;

            }
            catch(e:ItemPendingError)
            {
                //AJH commented out to fix one bug.  We'll see if it causes others
                //lastSeekPending = new ListBaseSeekPending(CursorBookmark.CURRENT, listItems.length)
                //e.addResponder(new ItemResponder(seekPendingResultHandler, seekPendingFailureHandler,
                //                                lastSeekPending));
                // trace("IPE in UpdateDisplayList");
                iteratorValid = false;
                // don't do anything, we'll repaint when the data arrives
