< Pasting the backtraces (it is a lot easier to find duplicates if they are as comments). They showed the same thing as the first I already posted so I think they are not of much use then for reference. Tried the same messages with a new user. Messages show up much faster when changing between them and I'm not able reproduce it then. So there must be some combination of things that slows it down to create the problem. Tried to comment out the lines at kmail/kmreaderwin.cpp:1628 Where we get the crash I think. // store encrypted/signed status information in the KMMessage // - this can only be done *after* calling parseObjectTree() KMMsgEncryptionState encryptionState = mRootNode->overallEncryptionState(); KMMsgSignatureState signatureState = mRootNode->overallSignatureState(); //#! HERE 1628 !## aMsg->setEncryptionState( encryptionState ); // Don't reset the signature state to "not signed" (e.g. if one canceled the // decryption of a signed messages which has already been decrypted before). // if ( signatureState != KMMsgNotSigned || // aMsg->signatureState() == KMMsgSignatureStateUnknown ) { // aMsg->setSignatureState( signatureState ); // } But instead I now get a crash at another place. But it might help to explain the first one. #0 DwHeaders::FindField (this=0x646f42646c656946, aFieldName=0x3573138 "Message-Id") at /home/johan/dev/kde/kdepim-4.2.0/mimelib/headers.cpp:287 #1 0x00007fd6a12f2770 in KMMessage::headerField (this=0x2255830, aName=@0x7fffaa8684c0) at /home/johan/dev/kde/kdepim-4.2.0/kmail/kmmessage.cpp:2231 #2 0x00007fd6a12f61d0 in KMMessage::msgId (this=0x2255830) at /home/johan/dev/kde/kdepim-4.2.0/kmail/kmmessage.cpp:2121 #3 0x00007fd6a13f78e0 in KMReaderWin::parseMsg (this=0x18e8f10, aMsg=0x2255830) at /home/johan/dev/kde/kdepim-4.2.0/kmail/kmreaderwin.cpp:1708 #4 0x00007fd6a13e5537 in KMReaderWin::displayMessage (this=0x18e8f10) at /home/johan/dev/kde/kdepim-4.2.0/kmail/kmreaderwin.cpp:1555 #5 0x00007fd6a13e5725 in KMReaderWin::updateReaderWin (this=0x18e8f10) at /home/johan/dev/kde/kdepim-4.2.0/kmail/kmreaderwin.cpp:1495 #6 0x00007fd6a13f2bf5 in KMReaderWin::qt_metacall (this=0x18e8f10, _c=QMetaObject::InvokeMetaMethod, _id=, _a=0x7fffaa868d10) at /home/johan/dev/kde/kdepim-4.2.0/obj-x86_64-linux-gnu/kmail/kmreaderwin.moc:164 #7 0x00007fd69df17134 in QMetaObject::activate () from /usr/lib/libQtCore.so.4 #8 0x00007fd69df11a43 in QObject::event () from /usr/lib/libQtCore.so.4 #9 0x00007fd69e626c3d in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4 #10 0x00007fd69e62e9ba in QApplication::notify () from /usr/lib/libQtGui.so.4 #11 0x00007fd6a22605db in KApplication::notify () from /usr/lib/libkdeui.so.5 #12 0x00007fd69df02d61 in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4 #13 0x00007fd69df2eab6 in ?? () from /usr/lib/libQtCore.so.4 #14 0x00007fd69df2b1fd in ?? () from /usr/lib/libQtCore.so.4 #15 0x00007fd69561fd3b in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #16 0x00007fd69562350d in ?? () from /usr/lib/libglib-2.0.so.0 #17 0x00007fd6956236cb in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #18 0x00007fd69df2b15f in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4 #19 0x00007fd69e6b8a8f in ?? () from /usr/lib/libQtGui.so.4 #20 0x00007fd69df01682 in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4 #21 0x00007fd69df0180d in QEventLoop::exec () from /usr/lib/libQtCore.so.4 #22 0x00007fd69df03cbd in QCoreApplication::exec () from /usr/lib/libQtCore.so.4 #23 0x000000000040309b in main (argc=, argv=) at /home/johan/dev/kde/kdepim-4.2.0/kmail/main.cpp:146 list 282 283 DwField* DwHeaders::FindField(const char* aFieldName) const 284 { 285 assert(aFieldName != 0); 286 if (aFieldName == 0) return 0; 287 DwField* field = mFirstField; 288 while (field) { 289 if (DwStrcasecmp(field->FieldNameStr(), aFieldName) == 0) { 290 break; 291 } (gdb) p aFieldName $3 = 0x3573138 "Message-Id" (gdb) print mFirstField Cannot access memory at address 0x646f42646c656946 Gone? frame 3 1703 // save current main Content-Type before deleting mRootNode 1704 const int rootNodeCntType = mRootNode ? mRootNode->type() : DwMime::kTypeText; 1705 const int rootNodeCntSubtype = mRootNode ? mRootNode->subType() : DwMime::kSubtypePlain; 1706 1707 // store message id to avoid endless recursions 1708 setIdOfLastViewedMessage( aMsg->msgId() ); Anything I should check or change to help?