diff --git a/src/alarmcalendar.cpp b/src/alarmcalendar.cpp --- a/src/alarmcalendar.cpp +++ b/src/alarmcalendar.cpp @@ -467,7 +467,7 @@ ResourceMap::Iterator rit = mResourceMap.find(key); if (rit != mResourceMap.end()) { - bool empty = true; + KAEvent::List retained; KAEvent::List& events = rit.value(); for (int i = 0, end = events.count(); i < end; ++i) { @@ -487,10 +487,12 @@ removed = true; } else - empty = false; + retained.push_back(event); } - if (empty) + if (retained.empty()) mResourceMap.erase(rit); + else + events.swap(retained); } if (removed) {