Version: 1.5 (using KDE 3.1.0) Installed from: SuSE Compiler: gcc version 2.95.3 20010315 (SuSE) OS: Linux (i586) release 2.4.18-4GB Open a new message (New Composer). Place the cursor in the 'To' Field. Type: ABC. Place the cursor in the main message field. Type: XYZ. Now mark the 'XYZ' with the mouse, so it's highlighted. Type CTRL-C (or Contextmenu: Copy). Mark 'the ABC' in the 'To' field, so it is highlighted. Type CTRL-V (or Contextmenu: Paste). The result in the 'To' field is: 'XYZABC'. I expect 'XYZ' to be there now. I think, selected text should be deleted, when pasting text. The behaviour of kmail is a bit funny in this case. If you select only the 'B' of 'ABC', the result is 'AXYZABC'. On the other hand, IMHO the non standard behaviour on inserting a comma and a space, if pasting text at the end of the line, should be kept. For me, this is very useful. Regards Wolfgang
Works for me. can someone please close this bug ? thx
As requested
This bug is not fixed yet! It still occurs in KDE 3.2.1, SuSE RPMs, KMail 1.6.2, German, exactly as Wolfgang described it. Please re-open this bug report, I accidentially sent a private E-Mail to a mailing list today because of this bug! Daniel
It still behaves that way in the current development version. Re-opening.
Created attachment 7198 [details] proposed patch I would like to propose the attached patch. It corrects the behavior of the AddresseeLineEdit and avoids a deprecated function (QLineEdit::getSelection). I do not understand why the old code tried to keep the position of the cursor if it was outside the selection as I don't know how this could be possible. This part is missing now. Nevertheless, it works as expected. If ok, please commit.
Thank you, Jakob. I'm happy with your patch. $ kmail -v Qt: 3.3.3 KDE: 3.3.0 KMail: 1.7 For me it works now. From my point of view, the bug may be closed.
CVS commit by tilladam: Patch by Jakob Schroeter <js@camaya.net>: Fix pasting into To, Cc, Bcc fields. CCMAIL: 54020-done@bugs.kde.org M +4 -6 addresseelineedit.cpp 1.26 --- kdepim/libkdepim/addresseelineedit.cpp #1.25:1.26 @@ -194,13 +194,11 @@ void AddresseeLineEdit::insert( const QS QString contents = text(); int start_sel = 0; - int end_sel = 0; int pos = cursorPosition(); - if ( getSelection( &start_sel, &end_sel ) ) { + + if ( hasSelectedText() ) { // Cut away the selection. - if ( pos > end_sel ) - pos -= (end_sel - start_sel); - else if ( pos > start_sel ) + start_sel = selectionStart(); pos = start_sel; - contents = contents.left( start_sel ) + contents.right( end_sel + 1 ); + contents = contents.left( start_sel ) + contents.mid( start_sel + selectedText().length() ); }
Current date 2007-01-24, the bug is still there :-( Please, could someone reopen this report.
Confirmed as not fixed in 1.9.5 (Ubuntu Feisty).
Drat. Sorry about this. Somehow Jakob's patch that Till committed on 2004-09-11 got lost and is no longer in the 3.5 branch. No idea what happened. Anyhow, I will restore the patch and keep this bug closed. Unfortunately, this came a few days too late for the KDE 3.5.6 release.
SVN commit 626915 by winterz: Put back this patch that got lost somewhere along the way. Written by Jakob and approved/committed by Till several years ago. Fixes "Paste into selected To, CC, BCC fields keeps old contents" CCBUGS: 54020 M +18 -19 addresseelineedit.cpp --- branches/KDE/3.5/kdepim/libkdepim/addresseelineedit.cpp #626914:626915 @@ -127,7 +127,7 @@ ldapSearchDeleter.setObject( s_LDAPSearch, new KPIM::LdapSearch ); ldapTextDeleter.setObject( s_LDAPText, new QString ); - /* Add completion sources for all ldap server, 0 to n. Added first so + /* Add completion sources for all ldap server, 0 to n. Added first so * that they map to the ldapclient::clientNumber() */ QValueList< LdapClient* > clients = s_LDAPSearch->clients(); for ( QValueList<LdapClient*>::iterator it = clients.begin(); it != clients.end(); ++it ) { @@ -251,15 +251,14 @@ QString contents = text(); int start_sel = 0; - int end_sel = 0; int pos = cursorPosition( ); - if ( getSelection( &start_sel, &end_sel ) ) { + + if ( hasSelectedText() ) { // Cut away the selection. - if ( pos > end_sel ) - pos -= (end_sel - start_sel); - else if ( pos > start_sel ) - pos = start_sel; - contents = contents.left( start_sel ) + contents.right( end_sel + 1 ); + start_sel = selectionStart(); + pos = start_sel; + contents = contents.left( start_sel ) + + contents.mid( start_sel + selectedText().length() ); } int eot = contents.length(); @@ -422,7 +421,7 @@ setCompletionMode( completionMode() ); if ( !m_searchString.isEmpty() ) { - + //if only our \" is left, remove it since user has not typed it either if ( m_searchExtended && m_searchString == "\"" ){ m_searchExtended = false; @@ -437,7 +436,7 @@ if ( match != m_searchString ) { QString adds = m_previousAddresses + match; setCompletedText( adds ); - } + } } else { if ( !m_searchString.startsWith( "\"" ) ) { //try with quoted text, if user has not type one already @@ -562,7 +561,7 @@ #ifdef KDEPIM_NEW_DISTRLISTS if ( KPIM::DistributionList::isDistributionList( addr ) ) { //kdDebug(5300) << "AddresseeLineEdit::addContact() distribution list \"" << addr.formattedName() << "\" weight=" << weight << endl; - + //for CompletionAuto addCompletionItem( addr.formattedName(), weight, source ); @@ -577,7 +576,7 @@ const QStringList emails = addr.emails(); QStringList::ConstIterator it; for ( it = emails.begin(); it != emails.end(); ++it ) { - //TODO: highlight preferredEmail + //TODO: highlight preferredEmail const QString email( (*it) ); const QString givenName = addr.givenName(); const QString familyName= addr.familyName(); @@ -607,7 +606,7 @@ const QString byDomain = "\"" + domain + " " + familyName + " " + givenName + "\" <" + email + ">"; addCompletionItem( byDomain, weight, source ); } - + //for CompletionShell, CompletionPopup QStringList keyWords; const QString realName = addr.realName(); @@ -746,12 +745,12 @@ KABC::Addressee addr; addr.setNameFromString( (*it).name ); addr.setEmails( (*it).email ); - + addContact( addr, (*it).completionWeight, (*it ).clientNumber ); } if ( (hasFocus() || completionBox()->hasFocus() ) - && completionMode() != KGlobalSettings::CompletionNone + && completionMode() != KGlobalSettings::CompletionNone && completionMode() != KGlobalSettings::CompletionShell) { setText( m_previousAddresses + m_searchString ); doCompletion( m_lastSearchMode ); @@ -771,7 +770,7 @@ if ( !m_searchString.isEmpty() ) completionBox->setCancelledText( m_searchString ); completionBox->popup(); - // we have to install the event filter after popup(), since that + // we have to install the event filter after popup(), since that // calls show(), and that's where KCompletionBox installs its filter. // We want to be first, though, so do it now. if ( s_completion->order() == KCompletion::Weighted ) @@ -906,8 +905,8 @@ } // avoid selection of headers on button press, or move or release while // a button is pressed - if ( e->type() == QEvent::MouseButtonPress - || me->state() & LeftButton || me->state() & MidButton + if ( e->type() == QEvent::MouseButtonPress + || me->state() & LeftButton || me->state() & MidButton || me->state() & RightButton ) { if ( !item->text().startsWith( s_completionItemIndentString ) ) { return true; // eat the event, we don't want anything to happen @@ -992,7 +991,7 @@ QStringList items = fullSearch ? s_completion->allMatches( m_searchString ) : s_completion->substringCompletion( m_searchString ); - + int lastSourceIndex = -1; unsigned int i = 0; QMap<int, QStringList> sections;
SVN commit 629114 by vkrause: Merged revisions 626135-629113 via svnmerge from https://vkrause@svn.kde.org/home/kde/branches/KDE/3.5/kdepim ........ r626312 | toma | 2007-01-22 21:19:10 +0100 (Mon, 22 Jan 2007) | 3 lines Backport of trunk commit 626306 by vkrause: more tolerant parsing of broken headers ........ r626502 | coolo | 2007-01-23 15:33:15 +0100 (Tue, 23 Jan 2007) | 3 lines having a different accel for plural is nonsense, sorry (removes one string as it's correct some lines below) ........ r626701 | dfaure | 2007-01-24 12:27:51 +0100 (Wed, 24 Jan 2007) | 3 lines Better avoid error while opening "*.{h,cpp}" for reading: No such file or directory ........ r626915 | winterz | 2007-01-25 00:09:52 +0100 (Thu, 25 Jan 2007) | 7 lines Put back this patch that got lost somewhere along the way. Written by Jakob and approved/committed by Till several years ago. Fixes "Paste into selected To, CC, BCC fields keeps old contents" CCBUGS: 54020 ........ r627092 | wstephens | 2007-01-25 18:07:15 +0100 (Thu, 25 Jan 2007) | 7 lines This patch uses the resource's own KABC::Lock to lock the cache file, which inhibits the file_copy operation that causes the error. The resource detects its cache is locked after having loaded the cache, but before refreshing the cache. The result of adding this lock is that if two processes are simultaneously reloading the resource, the winner will first load the cached version (call it C-1) and then load C0 after fetching it. The loser will load C-1, encounter the lock and stop. On the next iteration, Winner gets C1 and Loser gets C0. So the result of the lockstep is that loser is at most out of date by one version of the resource. A better synchronisation would be if we had distributed locks so that Loser is notified when Winner releases its lock and then loads the fresh cache file. ........ r627230 | kainhofe | 2007-01-26 05:06:46 +0100 (Fri, 26 Jan 2007) | 4 lines Don't write out empty, invalid or superfluous fields. If we have an empty organizer, an invalid URI would be generated. Fields like Sequence, CLASS, etc. have a default value (defined in rfc 2445), so we don't have to write that default value out and grow the icalendar file even more.... BUG: 140624 ........ r627323 | scripty | 2007-01-26 08:02:46 +0100 (Fri, 26 Jan 2007) | 1 line SVN_SILENT made messages (.desktop file) ........ r627419 | kainhofe | 2007-01-26 15:35:23 +0100 (Fri, 26 Jan 2007) | 5 lines Work around Windows-isms. RFC 2445 clearly says that all linebreaks are always \r\n, even under Unix, where \n is used for text files. Just because windows apparently adds the \r automatically, when you add a \n, does not mean that other platforms will do the same. Here in Linux, the file contains exactly what you put into the char*, which is a \n only and thus invalid. CCMAIL: libical@softwarestudio.org BUG: 140650 ........ r627420 | kainhofe | 2007-01-26 15:35:38 +0100 (Fri, 26 Jan 2007) | 5 lines Work around Windows-isms. RFC 2445 clearly says that all linebreaks are always \r\n, even under Unix, where \n is used for text files. Just because windows apparently adds the \r automatically, when you add a \n, does not mean that other platforms will do the same. Here in Linux, the file contains exactly what you put into the char*, which is a \n only and thus invalid. CCMAIL: libical@softwarestudio.org BUG: 140650 ........ r627541 | kainhofe | 2007-01-27 00:55:11 +0100 (Sat, 27 Jan 2007) | 6 lines When loading any url/uri (attachments, audio alarm files, procedure alarm application), make sure we load it as utf8 and not latin1. By default, QString(const char*) treats the string as latin1, so we need to use QString::fromUtf8 instead. BUG: 140688 ........ r627548 | winterz | 2007-01-27 01:32:53 +0100 (Sat, 27 Jan 2007) | 3 lines somehow this part of the templates feature merge got lost ........ r627641 | winterz | 2007-01-27 16:04:37 +0100 (Sat, 27 Jan 2007) | 4 lines Fix for the grave bug "kmail crash when I make a CTRL + J in inbox" BUGS: 140660 ........ r627763 | winterz | 2007-01-28 01:47:52 +0100 (Sun, 28 Jan 2007) | 7 lines merge SVN commit 627761 by winterz: Fix bug "Add icons for context menu on address in readerwin" Thanks for the patch Mikolaj. Hey, we only took 3+ years to commit it! :) BUGS: 66740 ........ r627911 | wstephens | 2007-01-28 16:54:12 +0100 (Sun, 28 Jan 2007) | 1 line take skipped lines into account when reporting line number ........ r627913 | wstephens | 2007-01-28 16:56:03 +0100 (Sun, 28 Jan 2007) | 1 line Fix indentation ........ r627914 | wstephens | 2007-01-28 16:56:41 +0100 (Sun, 28 Jan 2007) | 1 line Add testcases for iCalendar generated by Evolution ........ r628136 | winterz | 2007-01-29 10:46:58 +0100 (Mon, 29 Jan 2007) | 5 lines Fix for "find journals doesn't display journal title". Thanks for the patch Lars. BUGS: 132947 ........ r628168 | dfaure | 2007-01-29 12:15:13 +0100 (Mon, 29 Jan 2007) | 3 lines Laurent started kmail for a brand new user, and oh surprise, there were two actions in the Folder menu with the label "foo"! Call updateFolderMenu after creating the actions. ........ r628300 | kossebau | 2007-01-29 18:57:21 +0100 (Mon, 29 Jan 2007) | 5 lines added: context info to help with the for some translators ambigious term "address" CCMAIL:kde-i18n-doc@kde.org ........ r628362 | kossebau | 2007-01-29 22:23:14 +0100 (Mon, 29 Jan 2007) | 1 line s/IM/Instant messaging/g in i18n comment ........ r628406 | djarvie | 2007-01-30 01:45:43 +0100 (Tue, 30 Jan 2007) | 1 line Fix start-of-day time being ignored for date-only alarms ........ r628408 | djarvie | 2007-01-30 01:49:03 +0100 (Tue, 30 Jan 2007) | 1 line Fix start-of-day time being ignored for date-only alarms ........ r628518 | scripty | 2007-01-30 08:06:53 +0100 (Tue, 30 Jan 2007) | 1 line SVN_SILENT made messages (.desktop file) ........ r628565 | adridg | 2007-01-30 12:50:08 +0100 (Tue, 30 Jan 2007) | 1 line Since the KMail homepage has moved into kontact.kde.org, it's a good idea to point there instead of the deprecated kmail.kde.org. Not a string change. ........ r628578 | wstephens | 2007-01-30 14:04:27 +0100 (Tue, 30 Jan 2007) | 4 lines Refresh the pointer stored to the addressbook whenever KABLock::self() is called, otherwise we risk that StdAddressbook::close() has deleted the reference addressbook and invalidated the pointer. BUG:137269 ........ r628742 | dmiceman | 2007-01-31 08:27:12 +0100 (Wed, 31 Jan 2007) | 4 lines Create all inline forward messages as text/plain CCBUG: 140549 ........ _M . (directory) M +1 -0 akregator/src/akregator_plugin.desktop M +1 -0 akregator/src/eventsrc M +1 -0 akregator/src/mk4storage/akregator_mk4storage_plugin.desktop M +2 -2 certmanager/conf/kleopatra_config_appear.desktop M +1 -1 certmanager/conf/kleopatra_config_dirserv.desktop M +0 -1 certmanager/kleopatra_import.desktop M +3 -1 kaddressbook/Makefile.am M +5 -5 kaddressbook/addresseditwidget.cpp M +0 -1 kaddressbook/csv-templates/kaddressbook.desktop M +2 -2 kaddressbook/editors/imeditorwidget.cpp M +1 -0 kaddressbook/editors/protocols/meanwhileprotocol.desktop M +2 -2 kaddressbook/features/distributionlist.desktop M +2 -2 kaddressbook/features/resourceselection.desktop M +1 -1 kaddressbook/interfaces/kaddressbook_extension.desktop M +1 -1 kaddressbook/interfaces/kaddressbook_xxport.desktop M +2 -0 kaddressbook/kablock.cpp M +1 -1 kaddressbook/kaddressbook_view.desktop M +1 -1 kaddressbook/kcmconfigs/kabconfig.desktop M +1 -1 kaddressbook/kcmconfigs/kabldapconfig.desktop M +1 -1 kaddressbook/xxport/bookmark_xxport.desktop M +2 -2 kaddressbook/xxport/csv_xxport.desktop M +2 -2 kaddressbook/xxport/eudora_xxport.desktop M +2 -2 kaddressbook/xxport/kde2_xxport.desktop M +2 -2 kaddressbook/xxport/ldif_xxport.desktop M +2 -2 kaddressbook/xxport/opera_xxport.desktop M +2 -2 kaddressbook/xxport/pab_xxport.desktop M +2 -2 kaddressbook/xxport/vcard_xxport.desktop M +2 -1 kalarm/Changelog M +3 -2 kalarm/kalarmapp.cpp M +1 -1 kfile-plugins/rfc822/kfile_rfc822.desktop M +0 -1 kmail/KMail.desktop M +1 -1 kmail/aboutdata.cpp M +0 -1 kmail/eventsrc M +1 -1 kmail/kmail_config_appearance.desktop M +3 -3 kmail/kmail_config_identity.desktop M +1 -1 kmail/kmail_config_security.desktop M +0 -1 kmail/kmail_view.desktop M +8 -6 kmail/kmfolder.cpp M +4 -5 kmail/kmmainwidget.cpp M +9 -3 kmail/kmmessage.cpp M +6 -6 kmail/kmreaderwin.cpp M +1 -1 kmail/profiles/profile-default-rc.desktop M +2 -2 kmobile/kmobile.desktop M +1 -1 knode/knode_config_appearance.desktop M +1 -1 knode/knode_config_identity.desktop M +1 -1 knode/knode_config_read_news.desktop M +1 -1 kontact/interfaces/kontactplugin.desktop M +1 -1 kontact/plugins/kaddressbook/kaddressbookplugin.desktop M +1 -1 kontact/plugins/kmail/kmailplugin.desktop M +1 -1 kontact/plugins/knode/knodeplugin.desktop M +1 -1 kontact/plugins/knotes/knotesplugin.desktop M +1 -1 kontact/plugins/korganizer/kcmkorgsummary.desktop M +1 -1 kontact/plugins/korganizer/korganizerplugin.desktop M +1 -1 kontact/plugins/kpilot/kpilotplugin.desktop M +1 -1 kontact/plugins/specialdates/kcmsdsummary.desktop M +1 -1 kontact/plugins/specialdates/specialdatesplugin.desktop M +2 -2 kontact/plugins/test/kptestplugin.desktop M +1 -1 kontact/plugins/weather/weatherplugin.desktop M +1 -1 kontact/src/Kontact.desktop M +0 -1 kontact/src/kontactconfig.desktop M +1 -1 korganizer/actionmanager.cpp M +1 -1 korganizer/interfaces/calendar/calendarplugin.desktop M +8 -5 korganizer/kolistview.cpp M +0 -1 korganizer/korganizer.desktop M +1 -1 korganizer/korganizer_configcolors.desktop M +3 -3 korganizer/korganizer_configplugins.desktop M +1 -1 korganizer/plugins/exchange/exchange.desktop M +1 -1 korn/Makefile.am M +1 -1 kpilot/conduits/vcalconduit/todo-conduit.desktop M +1 -1 kresources/birthdays/kabc.desktop M +19 -14 kresources/remote/resourceremote.cpp M +28 -15 libkcal/icalformatimpl.cpp M +1 -1 libkcal/incidence.cpp M +2 -2 libkcal/libical/src/libical/icalcomponent.c M +2 -2 libkcal/libical/src/libical/icalproperty.c A libkcal/tests/data/Compat/Evolution_2.8.2_timezone_test.ics branches/KDE/3.5/kdepim/libkcal/tests/data/Compat/Evolution_2.8.2_timezone_test.ics#628742 A libkcal/tests/data/Compat/Evolution_2.8.2_timezone_test.ics.ical.ref branches/KDE/3.5/kdepim/libkcal/tests/data/Compat/Evolution_2.8.2_timezone_test.ics.ical.ref#628742 M +256 -272 libkcal/tests/data/Compat/KOrganizer_3.1.ics.ical.ref M +42 -44 libkcal/tests/data/Compat/KOrganizer_3.1a.ics.ical.ref M +83 -89 libkcal/tests/data/Compat/KOrganizer_3.2.ics.ical.ref M +27 -29 libkcal/tests/data/Compat/MSExchange.ics.ical.ref M +74 -89 libkcal/tests/data/Compat/Mozilla_1.0.ics.ical.ref M +0 -1 libkcal/tests/data/RecurrenceRule/KAlarm_3.4/KAlarm_TestCase01.ics M +0 -1 libkcal/tests/data/RecurrenceRule/KAlarm_3.4/KAlarm_TestCase02.ics M +0 -1 libkcal/tests/data/RecurrenceRule/KAlarm_3.4/KAlarm_TestCase03.ics M +0 -1 libkcal/tests/data/RecurrenceRule/KAlarm_3.4/KAlarm_TestCase04.ics M +0 -1 libkcal/tests/data/RecurrenceRule/KAlarm_3.4/KAlarm_TestCase05.ics M +0 -1 libkcal/tests/data/RecurrenceRule/KAlarm_3.4/KAlarm_TestCase06.ics M +0 -1 libkcal/tests/data/RecurrenceRule/KAlarm_3.4/KAlarm_TestCase07.ics M +0 -1 libkcal/tests/data/RecurrenceRule/KAlarm_3.4/KAlarm_TestCase08.ics M +0 -1 libkcal/tests/data/RecurrenceRule/KAlarm_3.4/KAlarm_TestCase09.ics M +0 -1 libkcal/tests/data/RecurrenceRule/KAlarm_3.4/KAlarm_TestCase10.ics M +0 -10 libkcal/tests/data/RecurrenceRule/KAlarm_3.4/KAlarm_TestCases.ics.all M +20 -21 libkcal/tests/data/vCalendar/KOrganizer_vCalTestCase01.vcs.ical.ref M +20 -21 libkcal/tests/data/vCalendar/KOrganizer_vCalTestCase02.vcs.ical.ref M +20 -21 libkcal/tests/data/vCalendar/KOrganizer_vCalTestCase03.vcs.ical.ref M +21 -22 libkcal/tests/data/vCalendar/KOrganizer_vCalTestCase04.vcs.ical.ref M +21 -22 libkcal/tests/data/vCalendar/KOrganizer_vCalTestCase05.vcs.ical.ref M +19 -21 libkcal/tests/data/vCalendar/KOrganizer_vCalTestCase06.vcs.ical.ref M +20 -21 libkcal/tests/data/vCalendar/KOrganizer_vCalTestCase07.vcs.ical.ref M +20 -21 libkcal/tests/data/vCalendar/KOrganizer_vCalTestCase08.vcs.ical.ref M +20 -21 libkcal/tests/data/vCalendar/KOrganizer_vCalTestCase09.vcs.ical.ref M +20 -21 libkcal/tests/data/vCalendar/KOrganizer_vCalTestCase10.vcs.ical.ref M +21 -22 libkcal/tests/data/vCalendar/KOrganizer_vCalTestCase11.vcs.ical.ref M +20 -21 libkcal/tests/data/vCalendar/KOrganizer_vCalTestCase12.vcs.ical.ref M +21 -22 libkcal/tests/data/vCalendar/KOrganizer_vCalTestCase13.vcs.ical.ref M +4 -4 libkcal/tests/readandwrite.cpp M +13 -9 libkcal/tests/runtestcase.pl M +18 -19 libkdepim/addresseelineedit.cpp M +4 -1 libkmime/kmime_util.cpp
The bug is not fixed (KDE 3.5.8), could someone please reopen it?
The bug is fixed in gentoo linux (x86): wolle ~ $ kmail -v Qt: 3.3.8 KDE: 3.5.7 KMail: 1.9.7 The bug is still present in kubuntu 7.10 (i386): root@ubuntu:~# kmail -v Qt: 3.3.7 KDE: 3.5.8 KMail: 1.9.6 (enterprise 0.20070907.709405)
This bug is fixed in trunk, so it'll stay RESOLVED. It is probably only not in the enterprise branch.
Thomas, indeed I also use enterprise. Btw. I am bit puzzled and lost why there are two different versions of KMail and what is the benefit of having two versions when one has some features/bugs the other does not have and vice versa.
>Thomas, indeed I also use enterprise. Btw. I am bit puzzled and lost why there are two different versions of KMail and what is the benefit of having two versions when one has some features/bugs the other does not have and vice versa. Yeah, this situation is a bit of a mess... However, there are plans to merge the two branches together again next year. Additionally, we now have merge tracking with svnmerge, so commits shouldn't get lost anymore. The enterprise branch AFAIK started when the 3.5 branch got feature frozen. The guys at KDAB are paid to work on Kontact for the Kolab project. For that, they have completely different needs (for example they need new features), therefore the branch.
*** Bug 122407 has been marked as a duplicate of this bug. ***
KDE 3.5.9 and KMail regular this time -- the bug is still there.