In syncml/src/xpt/bindings/wsp/xptwspinit.cpp we have:

TInt wspOpenTLS() {
globals->cleanup = CTrapCleanup::New();

wspOpenTLS() is implicitly called when a client of the SyncML
API calls xptGetProtocol.

Now, about CTrapCleanup::New() the Symbian documentation says
"Allocates and constructs a cleanup stack. If successfully
constructed, this cleanup stack becomes the current cleanup stack."

Since that cleanup stack is not removed before the control returns
to the caller of xptGetProtocol, all hell will break loose if the
call is made between calls to CleanupStack::PushL(...) and

Is this a bug or am I just using xptGetProtocol in the wrong way?