I'm using following code sequence to start MsvSession and get Access to ClientMtmRegistry

CMsvSession* iSession;
CClientMtmRegistry* iMtmRegistry;
iSession=MsvSession::OpenAsyncL(*this); //class is derived from CActive and MMsvSessionObserver
iMtmRegistry = CClientMtmRegistry::NewL(*iSession);

It return successfully with "iSession=MsvSession::OpenAsyncL(*this)" means connection is opened. But it fails with "CClientMtmRegistry::NewL(*iSession)".

Also in documet it is given that when "iSession=MsvSession::OpenAsyncL(*this)" create session successfully the event EMsvServerReady is generated with can be caught by HandleSessionEventL(TMsvSessionEvent aEvent, TAny *aArg1, TAny *aArg2, TAny *aArg3) in class starting session, but i'm not getting that event!!