diff -r 77415202bfc8 -r 2e6c4614c58e connectionmonitoring/connmon/connectionmonitor/src/ConnMonIAP.cpp --- a/connectionmonitoring/connmon/connectionmonitor/src/ConnMonIAP.cpp Tue Feb 02 00:24:11 2010 +0200 +++ b/connectionmonitoring/connmon/connectionmonitor/src/ConnMonIAP.cpp Fri Feb 19 23:12:51 2010 +0200 @@ -33,6 +33,7 @@ #include "connmontelnoti.h" #include "ConnMonBearerNotifier.h" #include "log.h" +#include "cellulardatausagekeyupdater.h" // ============================ MEMBER FUNCTIONS =============================== @@ -2007,8 +2008,15 @@ iNetwRegistrationNotifier = CNetwRegistrationNotifier::NewL( iServer, iMobilePhone ); } if ( !iNetwRegistrationNotifier->IsActive() ) - { + { iNetwRegistrationNotifier->Receive(); // (re)start listening + + // We might have missed the network registration notification before + // we started listening for notifications here. Update the + // network registration information. + TInt registration( ENetworkRegistrationExtNotAvailable ); + User::LeaveIfError( GetNetworkRegistration_v2( registration ) ); + iServer->CellularDataUsageKeyUpdater()->UpdateKeyL( registration ); } // Bearer change (GPRS/Edge GPRS) status events