diff --git a/src/smf/smfd/SmfCampaignWrapup.cc b/src/smf/smfd/SmfCampaignWrapup.cc
index 10bdbf042..b12fc1ea7 100644
--- a/src/smf/smfd/SmfCampaignWrapup.cc
+++ b/src/smf/smfd/SmfCampaignWrapup.cc
@@ -244,7 +244,13 @@ bool SmfCampaignWrapup::executeCampComplete() {
   if (rc == true)
   {
      for (auto& elem : m_campCompleteAction) {
-       base::Timer adminOpTimer(60000);
+       // [Lennart] To create A new adminOpTimer object for each element is not
+       // needed (however not a real memory leek since all of them will go out
+       // of scope when the function returns) but it may add usage of a lot of
+       // extra memory. The existing object should be reused.
+       // Do like this instead:
+       // base::Timer adminOpTimer(60000); Replace this line with
+       adminOpTimer.set_timeout_time(60000);
        while (adminOpTimer.is_timeout() == false) {
           ais_rc = (*elem).execute(SmfCampaignThread::instance()->getImmHandle(),
                                   &completeRollbackDn);
