diff -r ef0373b55136 -r 758a864f9613 src/gui/itemviews/qlistview.cpp --- a/src/gui/itemviews/qlistview.cpp Fri Sep 17 08:34:18 2010 +0300 +++ b/src/gui/itemviews/qlistview.cpp Mon Oct 04 01:19:32 2010 +0300 @@ -2782,7 +2782,10 @@ y = info.bounds.y() + info.spacing; items.reserve(rowCount() - hiddenCount()); } else { - const QListViewItem item = items.at(info.first - 1); + int idx = info.first - 1; + while (idx > 0 && !items.at(idx).isValid()) + --idx; + const QListViewItem &item = items.at(idx); x = item.x; y = item.y; if (info.flow == QListView::LeftToRight) @@ -2913,6 +2916,8 @@ else contentsSize.rwidth() += info.spacing; } + if (rect.size().isEmpty()) + return; // resize tree int insertFrom = info.first; if (done || info.first == 0) {