diff -rupN 1/orig/qapplication.cpp 1/new/qapplication.cpp --- 1/orig/qapplication.cpp Thu Dec 8 07:06:02 2011 +++ 1/new/qapplication.cpp Thu Jan 19 09:27:43 2012 @@ -2139,9 +2139,10 @@ void QApplication::setWindowIcon(const Q QWidgetList QApplication::topLevelWidgets() { QWidgetList list; - QWidgetList all = allWidgets(); + if (!QWidgetPrivate::allWidgets) return list; + QWidgetSet* set = QWidgetPrivate::allWidgets; - for (QWidgetList::ConstIterator it = all.constBegin(); it != all.constEnd(); ++it) { + for (QWidgetSet::ConstIterator it = set->constBegin(); it != set->constEnd(); ++it) { QWidget *w = *it; if (w->isWindow() && w->windowType() != Qt::Desktop) list.append(w);