diff -r 19d42ab73ba8 -r f566ba6aad4c textinput/peninputarc/src/peninputclient/penclientimpl.cpp --- a/textinput/peninputarc/src/peninputclient/penclientimpl.cpp Mon Mar 08 21:43:50 2010 +0000 +++ b/textinput/peninputarc/src/peninputclient/penclientimpl.cpp Sun Mar 14 13:11:12 2010 +0000 @@ -123,8 +123,11 @@ if(client && client->IsValid()) { RPeninputServerImpl* server = client->GetSingletonServer(); - TInt err = server->ServerReady() ? KErrNone : KErrLaunchingServer; - User::RequestComplete(aStatus,err); + TInt err = server->ServerReady() ? KErrNone : KErrLaunchingServer; + if ( aStatus ) + { + User::RequestComplete( aStatus, err ); + } return server; } @@ -253,12 +256,13 @@ return KErrNone; } } - else //server alreay there + else if ( error == KErrNone )//server alreay there { + iServerReady = ETrue; + AddObserver(); + if(aStatus) - OnServerStarted(KErrNone); - else - AddObserver(); + User::RequestComplete(iPendingRequest, error); } return error; } @@ -1527,17 +1531,17 @@ if(KErrNone == aErr) { iServerReady = ETrue; - } - - //create session - - TInt error = CreateSession( KPeninputServerName, + + //create session + aErr = CreateSession( KPeninputServerName, Version(), KDefaultMessageSlots,EIpcSession_Sharable); - if(KErrNone == error) - AddObserver(); - + if(KErrNone == aErr) + { + AddObserver(); + } + } User::RequestComplete(iPendingRequest, aErr); }