diff -r d2517372cc44 -r ae69c2e8bc34 syncmlfw/dm/treemodule/src/nsmldmhostclient.cpp --- a/syncmlfw/dm/treemodule/src/nsmldmhostclient.cpp Tue Sep 28 17:53:08 2010 +0530 +++ b/syncmlfw/dm/treemodule/src/nsmldmhostclient.cpp Fri Oct 15 11:46:45 2010 +0530 @@ -105,8 +105,24 @@ { result = CreateSession( aServerName, ver ); } - } + else if ( result == KErrAlreadyExists ) + { + TInt retryCount = 3; + + while ( result != KErrNone && retryCount ) + { + result = CreateSession( aServerName, ver ); + if( result != KErrNone ) + { + // wait 1.5 seconds to give the server a chance to reach its serviceable state + User::After( 1500000 ); + --retryCount; + } + } + } + } + User::LeaveIfError( result ); return result; }