Bug 90320

Summary: crash when deleting mails in a folder
Product: [Unmaintained] kmail Reporter: Paulo Moura Guedes <kde>
Component: generalAssignee: Till Adam <adam>
Status: RESOLVED FIXED    
Severity: major CC: baybear2004, bernd.laser, bufalo1973, castcarlitos, cfarrell1980, cniehaus, djarvie, gbell72, kollix, kwall, m.vanhulst, mailinglist, mgd, Mr.Ter, msexauer, mss, neosad1st, o-z, olistrut, opensource, paul, phil, public, rdieter, Schaub-Johannes, smazanek, vR, winter
Priority: NOR    
Version: SVN (3.5 branch)   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Paulo Moura Guedes 2004-09-27 13:06:16 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
OS:                Linux

1. Select a (non empty) folder
2. Select a mail
2. Press the delete key until all mails are deleted

When the last mail is going to be deleted KMail crashes.
This is reproducable in any folder.

Then, when I restart KMail the messages in the respective folder are still there and the first one that was "deleted" is blank, i.e. no subject, no body, nothing. If I click on any other mail in that folder it becomes blank too.
This is also reproducible in any folder.

I'm using kdepim HEAD from begining of September.

Here is the backtrace:

Using host libthread_db library "/lib/tls/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 1103038752 (LWP 2315)]
[KCrash handler]
#4  0x00000029 in ?? ()
#5  0x40371db7 in KMMoveCommand::execute() (this=0x816f7f8)
    at kmcommands.cpp:1728
#6  0x4036a2af in KMCommand::slotPostTransfer(KMCommand::Result) (
    this=0x816f7f8, result=OK) at kmcommands.cpp:199
#7  0x40364cc5 in KMCommand::qt_invoke(int, QUObject*) (this=0x816f7f8, _id=5, 
    _o=0xbfffefd0) at kmcommands.moc:148
#8  0x40367f24 in KMMenuCommand::qt_invoke(int, QUObject*) (this=0x816f7f8, 
    _id=5, _o=0xbfffefd0) at kmcommands.moc:2421
#9  0x4036832d in KMMoveCommand::qt_invoke(int, QUObject*) (this=0x816f7f8, 
    _id=5, _o=0xbfffefd0) at kmcommands.moc:2588
#10 0x403684ce in KMDeleteMsgCommand::qt_invoke(int, QUObject*) (
    this=0x816f7f8, _id=5, _o=0xbfffefd0) at kmcommands.moc:2663
#11 0x42590f3d in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x816f7f8, clist=0x8963288, o=0xbfffefd0) at kernel/qobject.cpp:2356
#12 0x40364aa7 in KMCommand::messagesTransfered(KMCommand::Result) (
    this=0x816f7f8, t0=OK) at kmcommands.moc:126
#13 0x4036a7de in KMCommand::transferSelectedMsgs() (this=0x816f7f8)
    at kmcommands.cpp:293
#14 0x4036a25d in KMCommand::slotStart() (this=0x816f7f8) at kmcommands.cpp:191
#15 0x40364c98 in KMCommand::qt_invoke(int, QUObject*) (this=0x816f7f8, _id=4, 
    _o=0xbffff220) at kmcommands.moc:147
#16 0x40367f24 in KMMenuCommand::qt_invoke(int, QUObject*) (this=0x816f7f8, 
    _id=4, _o=0xbffff220) at kmcommands.moc:2421
#17 0x4036832d in KMMoveCommand::qt_invoke(int, QUObject*) (this=0x816f7f8, 
    _id=4, _o=0xbffff220) at kmcommands.moc:2588
#18 0x403684ce in KMDeleteMsgCommand::qt_invoke(int, QUObject*) (
    this=0x816f7f8, _id=4, _o=0xbffff220) at kmcommands.moc:2663
#19 0x42590f3d in QObject::activate_signal(QConnectionList*, QUObject*) (
    this=0x843bcc8, clist=0x877a128, o=0xbffff220) at kernel/qobject.cpp:2356
#20 0x42967f04 in QSignal::signal(QVariant const&) (this=0x843bcc8, 
    t0=@0x843bcf0) at .moc/debug-shared-mt/moc_qsignal.cpp:100
#21 0x425b3182 in QSignal::activate() (this=0x843bcc8)
    at kernel/qsignal.cpp:212
#22 0x425bcd83 in QSingleShotTimer::event(QEvent*) (this=0x843bca0)
    at kernel/qtimer.cpp:277
#23 0x42520be5 in QApplication::internalNotify(QObject*, QEvent*) (
    this=0xbffff830, receiver=0x843bca0, e=0xbffff4b0)
    at kernel/qapplication.cpp:2620
#24 0x4251fffa in QApplication::notify(QObject*, QEvent*) (this=0xbffff830, 
    receiver=0x843bca0, e=0xbffff4b0) at kernel/qapplication.cpp:2343
#25 0x41877416 in KApplication::notify(QObject*, QEvent*) (this=0xbffff830, 
    receiver=0x843bca0, event=0xbffff4b0) at kapplication.cpp:512
#26 0x40615f8d in QApplication::sendEvent(QObject*, QEvent*) (
    receiver=0x843bca0, event=0xbffff4b0) at qapplication.h:491
#27 0x4250bbdd in QEventLoop::activateTimers() (this=0x812c5d0)
    at kernel/qeventloop_unix.cpp:558
#28 0x424bd57d in QEventLoop::processEvents(unsigned) (this=0x812c5d0, flags=4)
    at kernel/qeventloop_x11.cpp:389
#29 0x42537f34 in QEventLoop::enterLoop() (this=0x812c5d0)
    at kernel/qeventloop.cpp:198
#30 0x42537e50 in QEventLoop::exec() (this=0x812c5d0)
    at kernel/qeventloop.cpp:145
#31 0x42520d97 in QApplication::exec() (this=0xbffff830)
    at kernel/qapplication.cpp:2743
#32 0x0804aa2b in main (argc=2, argv=0xbffff9e4) at main.cpp:108
Comment 1 David Faure 2004-09-27 16:46:08 UTC
AFAIK this was fixed by Till's commit to kmcommands.cpp (revision 1.169, on 11-September-2004)

Comment 2 Wilbert Berendsen 2004-09-27 23:46:15 UTC
I'm running branch of yesterday, is this already backported? (sorry: asked first in wrong bug :-)
Comment 3 David Faure 2004-09-28 00:05:11 UTC
Hmm, the refcounting fix was backported (kmcommands.cpp 1.163.2.4), so this
means that bug is still there.... Reopening.

Comment 4 Paulo Moura Guedes 2004-09-28 15:07:31 UTC
Compiled from HEAD and it is still there. Same backtrace.
Comment 5 Stephan Binner 2004-11-29 09:53:59 UTC
*** Bug 93887 has been marked as a duplicate of this bug. ***
Comment 6 Stephan Binner 2004-11-29 09:54:30 UTC
*** Bug 88298 has been marked as a duplicate of this bug. ***
Comment 7 Stephan Binner 2004-11-29 09:55:09 UTC
*** Bug 93125 has been marked as a duplicate of this bug. ***
Comment 8 Stephan Binner 2004-11-29 09:55:43 UTC
*** Bug 93912 has been marked as a duplicate of this bug. ***
Comment 9 Stephan Binner 2004-11-29 09:56:57 UTC
*** Bug 92856 has been marked as a duplicate of this bug. ***
Comment 10 Stephan Binner 2004-11-29 09:57:38 UTC
*** Bug 86971 has been marked as a duplicate of this bug. ***
Comment 11 Stephan Binner 2004-11-29 09:59:02 UTC
Crashes with this very same backstrace still happens with KMail 1.7.2.
Comment 12 Stephan Binner 2004-12-02 11:10:40 UTC
*** Bug 94222 has been marked as a duplicate of this bug. ***
Comment 13 Till Adam 2004-12-03 20:11:32 UTC
I believe I fixed this one earlier today in both branches. Can someone confirm?
Comment 14 Stephan Binner 2004-12-12 11:37:34 UTC
Didn't happen for me anymore the last days. Let's assume it's fixed until somebody still encounters it with KDE_3_3_BRANCH/HEAD (the fix is not in KDE 3.3.2).
Comment 15 Stephan Binner 2004-12-16 19:53:27 UTC
*** Bug 95242 has been marked as a duplicate of this bug. ***
Comment 16 Stephan Binner 2004-12-31 14:02:00 UTC
*** Bug 96065 has been marked as a duplicate of this bug. ***
Comment 17 Stohn 2005-01-07 03:47:48 UTC
Date: 2005-01-06

KMail 1.7.2
KDE 3.3.2-1.2.2.kde

Occurred again.  Below is the trace.

Message was the only one in the Inbox.  Saved the message to a regular system (in order to teach spamassassin) and then immediately clicked the hard-delete button in my toolbar.  KMail crashed.

John S.
Author of related bug number 93912
Memphis, Tenn., America

------------------------------------------------------------------------------
Using host libthread_db library "/lib/tls/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1208121664 (LWP 11704)]
[KCrash handler]
#4  0x00690033 in ?? () from /usr/lib/libkdeprint.so.4
#5  0x051f633b in KMMoveCommand::execute () from /usr/lib/libkmailprivate.so.0
#6  0x051ed68a in KMCommand::slotPostTransfer ()
   from /usr/lib/libkmailprivate.so.0
#7  0x051e7042 in KMCommand::qt_invoke () from /usr/lib/libkmailprivate.so.0
#8  0x051eac7d in KMMenuCommand::qt_invoke ()
   from /usr/lib/libkmailprivate.so.0
#9  0x051eb0b1 in KMMoveCommand::qt_invoke ()
   from /usr/lib/libkmailprivate.so.0
#10 0x03acfa2c in QObject::activate_signal ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#11 0x051e6eaa in KMCommand::messagesTransfered ()
   from /usr/lib/libkmailprivate.so.0
#12 0x051ed6da in KMCommand::transferSelectedMsgs ()
   from /usr/lib/libkmailprivate.so.0
#13 0x051ed4ab in KMCommand::slotStart () from /usr/lib/libkmailprivate.so.0
#14 0x051e702c in KMCommand::qt_invoke () from /usr/lib/libkmailprivate.so.0
#15 0x051eac7d in KMMenuCommand::qt_invoke ()
   from /usr/lib/libkmailprivate.so.0
#16 0x051eb0b1 in KMMoveCommand::qt_invoke ()
   from /usr/lib/libkmailprivate.so.0
#17 0x03acfa2c in QObject::activate_signal ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#18 0x03e1074a in QSignal::signal () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#19 0x03ae9bdd in QSignal::activate () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#20 0x03af13a3 in QSingleShotTimer::event ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#21 0x03a734af in QApplication::internalNotify ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#22 0x03a72aae in QApplication::notify ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#23 0x040a4913 in KApplication::notify () from /usr/lib/libkdecore.so.4
#24 0x03a62d95 in QEventLoop::activateTimers ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#25 0x03a1beeb in QEventLoop::processEvents ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#26 0x03a85758 in QEventLoop::enterLoop ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#27 0x03a85608 in QEventLoop::exec () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#28 0x03a73701 in QApplication::exec () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#29 0x0804a2c4 in ?? ()
#30 0xbff62fe0 in ?? ()
#31 0xbff62ef0 in ?? ()
#32 0x00000000 in ?? ()
Comment 18 David Faure 2005-01-21 18:53:33 UTC
*** Bug 97606 has been marked as a duplicate of this bug. ***
Comment 19 David Faure 2005-01-24 00:23:37 UTC
*** Bug 97344 has been marked as a duplicate of this bug. ***
Comment 20 Thiago Macieira 2005-03-18 13:29:21 UTC
*** Bug 101773 has been marked as a duplicate of this bug. ***
Comment 21 Tom Albers 2005-03-18 14:17:34 UTC
As this is reported in version 1.8 in bug 101773: reopen 
Comment 22 Joe Biden 2005-04-07 15:59:02 UTC
It's definitely still there.
Comment 23 Tom Albers 2005-04-24 23:33:18 UTC
*** Bug 103700 has been marked as a duplicate of this bug. ***
Comment 24 Thiago Macieira 2005-06-10 01:26:56 UTC
*** Bug 107042 has been marked as a duplicate of this bug. ***
Comment 25 Till Adam 2005-06-11 18:39:40 UTC
SVN commit 424363 by tilladam:

Don't allow operations to be performed on items which are already
being operated on. Namely holding down the Del key was triggering
multiple Deletes/Moves for the same message pointer, which for any
but the first command was dangeling. Quite obvious, in retrospect...

BUG: 90320


 M  +8 -6      kmheaders.cpp  


--- trunk/KDE/kdepim/kmail/kmheaders.cpp #424362:424363
@@ -1618,13 +1618,15 @@
   for (QListViewItemIterator it(this); it.current(); it++) {
     if ( it.current()->isSelected() && it.current()->isVisible() ) {
       HeaderItem *item = static_cast<HeaderItem*>(it.current());
-      if (toBeDeleted) {
-        // make sure the item is not uselessly rethreaded and not selectable
-        item->setAboutToBeDeleted ( true );
-        item->setSelectable ( false );
+      if ( !item->aboutToBeDeleted() ) { // we are already working on this one
+        if (toBeDeleted) {
+          // make sure the item is not uselessly rethreaded and not selectable
+          item->setAboutToBeDeleted ( true );
+          item->setSelectable ( false );
+        }
+        KMMsgBase *msgBase = mFolder->getMsgBase(item->msgId());
+        mSelMsgBaseList.append(msgBase);
       }
-      KMMsgBase *msgBase = mFolder->getMsgBase(item->msgId());
-      mSelMsgBaseList.append(msgBase);
     }
   }
   return &mSelMsgBaseList;
Comment 26 Joe Biden 2005-06-12 01:42:27 UTC
On Saturday 11 June 2005 12:39 pm, Till Adam wrote:
> Don't allow operations to be performed on items which are already
> being operated on. Namely holding down the Del key was triggering
> multiple Deletes/Moves for the same message pointer, which for any
> but the first command was dangeling. Quite obvious, in retrospect...


Till, I have said it before, and I say it again: You're the man.
Comment 27 Till Adam 2005-06-16 18:26:32 UTC
*** Bug 107542 has been marked as a duplicate of this bug. ***
Comment 28 Thiago Macieira 2005-08-07 04:19:19 UTC
*** Bug 110120 has been marked as a duplicate of this bug. ***
Comment 29 Thiago Macieira 2005-08-07 04:39:02 UTC
*** Bug 110145 has been marked as a duplicate of this bug. ***
Comment 30 Thiago Macieira 2005-08-29 18:20:21 UTC
*** Bug 111445 has been marked as a duplicate of this bug. ***
Comment 31 Thiago Macieira 2006-03-12 19:51:30 UTC
*** Bug 121359 has been marked as a duplicate of this bug. ***
Comment 32 Thiago Macieira 2006-03-12 19:51:40 UTC
*** Bug 101161 has been marked as a duplicate of this bug. ***
Comment 33 Thiago Macieira 2006-03-12 19:51:46 UTC
*** Bug 116644 has been marked as a duplicate of this bug. ***
Comment 34 Thiago Macieira 2006-03-12 19:51:50 UTC
*** Bug 115502 has been marked as a duplicate of this bug. ***
Comment 35 Thiago Macieira 2006-03-12 19:52:02 UTC
*** Bug 108184 has been marked as a duplicate of this bug. ***
Comment 36 Thiago Macieira 2006-03-12 19:52:07 UTC
*** Bug 123431 has been marked as a duplicate of this bug. ***
Comment 37 Stefan Borggraefe 2006-07-05 23:50:40 UTC
*** Bug 111630 has been marked as a duplicate of this bug. ***
Comment 38 Jason 'vanRijn' Kasper 2006-07-17 22:07:32 UTC
Wow.  This is a helluva old bug.  I think I just hit this one today.  I'm using MAP (not dIMAP) with SUSE 10.1-provided RPM's.  

KDE 3.5.3, kmail 1.9.3.  

It would seem that a commit from a year ago should be in 3.5.3.  =:/  Should I re-open this?

Here's the bt:

[KCrash handler]
#6  0x00000000 in ?? ()
#7  0xb572d07d in KMMoveCommand::execute ()
   from /opt/kde3/lib/libkmailprivate.so
#8  0xb5724049 in KMCommand::slotPostTransfer ()
   from /opt/kde3/lib/libkmailprivate.so
#9  0xb572bb26 in KMCommand::qt_invoke () from /opt/kde3/lib/libkmailprivate.so
#10 0xb572be0b in KMMenuCommand::qt_invoke ()
   from /opt/kde3/lib/libkmailprivate.so
#11 0xb572be97 in KMMoveCommand::qt_invoke ()
   from /opt/kde3/lib/libkmailprivate.so
#12 0xb572bf0b in KMDeleteMsgCommand::qt_invoke ()
   from /opt/kde3/lib/libkmailprivate.so
#13 0xb6cfaedd in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#14 0xb572440e in KMCommand::messagesTransfered ()
   from /opt/kde3/lib/libkmailprivate.so
#15 0xb572cbb1 in KMCommand::transferSelectedMsgs ()
   from /opt/kde3/lib/libkmailprivate.so
#16 0xb572cd17 in KMCommand::slotStart () from /opt/kde3/lib/libkmailprivate.so
#17 0xb572bb38 in KMCommand::qt_invoke () from /opt/kde3/lib/libkmailprivate.so
#18 0xb572be0b in KMMenuCommand::qt_invoke ()
   from /opt/kde3/lib/libkmailprivate.so
#19 0xb572be97 in KMMoveCommand::qt_invoke ()
   from /opt/kde3/lib/libkmailprivate.so
#20 0xb572bf0b in KMDeleteMsgCommand::qt_invoke ()
   from /opt/kde3/lib/libkmailprivate.so
#21 0xb6cfaedd in QObject::activate_signal ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#22 0xb7033b3e in QSignal::signal () from /usr/lib/qt3/lib/libqt-mt.so.3
#23 0xb6d16f87 in QSignal::activate () from /usr/lib/qt3/lib/libqt-mt.so.3
#24 0xb6d1e343 in QSingleShotTimer::event ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#25 0xb6c9bec7 in QApplication::internalNotify ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#26 0xb6c9cc91 in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3
#27 0xb73576f3 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#28 0xb6c91055 in QEventLoop::activateTimers ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#29 0xb6c4b8a0 in QEventLoop::processEvents ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#30 0xb6cb2ce8 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3
#31 0xb6cb2b7e in QEventLoop::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#32 0xb6c9ba7f in QApplication::exec () from /usr/lib/qt3/lib/libqt-mt.so.3
#33 0x08058c02 in main ()
Comment 39 Jason 'vanRijn' Kasper 2006-07-17 22:11:58 UTC
Actually... I am getting this stack trace on pressing the <delete> key on a message in an IMAP account.  It's not the last one as the original bug-reporter described.  May not be the same bug?  Backtrace looks the same....  Blah.  I'm more than willing to open a new bug... I'd just hate to have it closed as a duplicate of this one.  =;)
Comment 40 Kurt Wall 2006-07-20 16:30:51 UTC
I get the same crash in KMail 1.9.3 using KDE 3.5.3-0.2.fc4. The backtrace looks similar:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1209059648 (LWP 18847)]
0x04bf4fcd in vtable for KMMsgInfo () from /usr/lib/libkmailprivate.so
(gdb) bt
#0  0x04bf4fcd in vtable for KMMsgInfo () from /usr/lib/libkmailprivate.so
#1  0x04a2ba9c in KMMoveCommand::execute () from /usr/lib/libkmailprivate.so
#2  0x04a1f332 in KMCommand::slotPostTransfer ()
   from /usr/lib/libkmailprivate.so
#3  0x04a24d8f in KMCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#4  0x04a24fff in KMMenuCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#5  0x04a25074 in KMMoveCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#6  0x04a250eb in KMDeleteMsgCommand::qt_invoke ()
   from /usr/lib/libkmailprivate.so
#7  0x06597154 in QObject::activate_signal ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#8  0x04a1e30c in KMCommand::messagesTransfered ()
   from /usr/lib/libkmailprivate.so
#9  0x04a24941 in KMCommand::transferSelectedMsgs ()
   from /usr/lib/libkmailprivate.so
#10 0x04a24b99 in KMCommand::slotStart () from /usr/lib/libkmailprivate.so
#11 0x04a24da1 in KMCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#12 0x04a24fff in KMMenuCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#13 0x04a25074 in KMMoveCommand::qt_invoke () from /usr/lib/libkmailprivate.so
#14 0x04a250eb in KMDeleteMsgCommand::qt_invoke ()
   from /usr/lib/libkmailprivate.so
#15 0x06597154 in QObject::activate_signal ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#16 0x0690e146 in QSignal::signal () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#17 0x065b4843 in QSignal::activate () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#18 0x065bd117 in QSingleShotTimer::event ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#19 0x0653274d in QApplication::internalNotify ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#20 0x0653309c in QApplication::notify ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#21 0x00975251 in KApplication::notify () from /usr/lib/libkdecore.so.4
#22 0x06526fd9 in QEventLoop::activateTimers ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#23 0x064dcb94 in QEventLoop::processEvents ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#24 0x0654adb2 in QEventLoop::enterLoop ()
   from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#25 0x0654acd6 in QEventLoop::exec () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
---Type <return> to continue, or q <return> to quit---
#26 0x06532119 in QApplication::exec () from /usr/lib/qt-3.3/lib/libqt-mt.so.3
#27 0x0804a08f in ?? ()
#28 0x00229d7f in __libc_start_main () from /lib/libc.so.6
#29 0x08049e2d in ?? ()
(gdb)
Comment 41 Tommi Tervo 2006-08-10 09:57:11 UTC
There is a new PR open, see:
http://bugs.kde.org/show_bug.cgi?id=128593