Problem was that a large app would hang when running on a specific platform (Symbian N97 mini).

After following up false leads for a week, I finally started inserting trace statements into the code, and slowly narrowed it down to one routine that was doing a lot of dynamic_cast operations from QWidget to subclasses of the same. Often these casts were "wrong" and they looked for a null/non-null result to indicate which class was which.

Replaced the dynamic_cast operations with qobject_cast and the problem went away.

I'm guessing that parts of the C++ support on the box were not compiled with RTTI enabled.