smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt.cpp
branchRCL_3
changeset 14 7ef16719d8cb
parent 0 3553901f7fa8
child 24 6638e7f4bd8f
--- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt.cpp	Fri Feb 19 23:59:33 2010 +0200
+++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt.cpp	Fri Mar 12 15:49:38 2010 +0200
@@ -16,95 +16,55 @@
 /**
  @file
 */
-#include <commsdattypesv1_1.h>
-
-#include "TE_smsprtbase.h"
-#include "smsulog.h"
-#include "logcheck.h"
 #include "TE_smsprt.h"
+
 #include <sacls.h>
 #include <exterror.h>
-
 #include <emsformatie.h>
 #include <logwraplimits.h>
 #include <smspver.h>
 
+#include "smsulog.h"
+
 using namespace CommsDat;
 
-#if defined (__WINS__)
-#define PDD_NAME _L("ECDRV")
-#define LDD_NAME _L("ECOMM")
-#else
-#define PDD_NAME _L("EUART1")
-#define LDD_NAME _L("ECOMM")
-#endif
-
-
 TVerdict CTestSimpleTxAndRx::doTestStepL()
 /**
  *  Test a simple Transmit and Receive of a TPDU
  */
 	{
 	INFO_PRINTF1(_L("Test Simple Tx and Rx SMS"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 0);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketL(socketServer,socket,ESmsAddrRecvAny);
-	CleanupClosePushL(socket);
-
-    // Create comms database object
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 	
-#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_2);
-#else
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_1);
-#endif
-	CleanupStack::PushL(db);
-
-	INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck"));
-
-    // EReceiveUnstoredClientAck
-	CMDBField<TUint32>* smsReceiveModeField = new(ELeave) CMDBField<TUint32>(KCDTIdSMSReceiveMode);
-	CleanupStack::PushL(smsReceiveModeField);
-	smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord
-	*smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck;
-	smsReceiveModeField->ModifyL(*db);
-	CleanupStack::PopAndDestroy(smsReceiveModeField);
-	CleanupStack::PopAndDestroy(db);
-	_LIT(KTestMsg1,"test message, 8bits, length 30");
+	ChangeReceiveModeL(RMobileSmsMessaging::EReceiveUnstoredClientAck);
+	
+	_LIT(KTestMsg,"test message, 8bits, length 30");
 
 	//Set destination and SC numbers
 	iTelephoneNumber=KPekka;
 	iServiceCenterNumber=KRadiolinjaSC;
 
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
-	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg, alphabet);
 
 	INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber);
 	INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber);
 
 	//Send SMS
 	SendSmsL(smsMessage,socket);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	//Receive SMS
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
-
-	INFO_PRINTF1(_L("incoming SMS") );
-
-	CleanupStack::PushL(smsMessage);
-	TestSmsContentsL(smsMessage,KTestMsg1);
+    CleanupStack::PushL(smsMessage);
+    
+	TestSmsContentsL(smsMessage, KTestMsg);
 
 	//Save the received message to the SMS storage
 	smsMessage->SetStorage(CSmsMessage::ESmsSIMStorage);
 	WriteSmsToSimL(*smsMessage, socket);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	// Enumerate messages from Store
@@ -113,46 +73,20 @@
 	messages.ResetAndDestroy();
 
 	CleanupStack::PopAndDestroy(&socket);
-	
-	CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult() ;
 	}
-
-
+	
 TVerdict CTestBinaryTxAndRx::doTestStepL()
 /**
  *  Test a binary Transmit and Receive of a TPDU
  */
 	{
 	INFO_PRINTF1(_L("Test Binary Tx and Rx SMS"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 142);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketL(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketL(iSocketServer,socket,ESmsAddrRecvAny);
 	CleanupClosePushL(socket);
-
-    // Create comms database object
-#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_2);
-#else
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_1);
-#endif
-	CleanupStack::PushL(db);
-
-	INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck"));
-
-    // EReceiveUnstoredClientAck
-	CMDBField<TUint32>* smsReceiveModeField = new(ELeave) CMDBField<TUint32>(KCDTIdSMSReceiveMode);
-	CleanupStack::PushL(smsReceiveModeField);
-	smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord
-	*smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck;
-	smsReceiveModeField->ModifyL(*db);
-	CleanupStack::PopAndDestroy(smsReceiveModeField);
-	CleanupStack::PopAndDestroy(db);
-		                          
+	
+	ChangeReceiveModeL(RMobileSmsMessaging::EReceiveUnstoredClientAck);
 
 	//Set destination and SC numbers
 	iTelephoneNumber=KPekka;
@@ -167,8 +101,7 @@
 		}
 		
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
-	CSmsMessage* smsMessage=CreateSmsMessageL(arrBuf, alphabet);
-	CleanupStack::PushL(smsMessage);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(arrBuf, alphabet);
 
 	INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber);
 	INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber);
@@ -184,43 +117,33 @@
 		arrBuf2[i] = 128 + i;
 		}
 		
-	smsMessage=CreateSmsMessageL(arrBuf2, alphabet);
-	CleanupStack::PushL(smsMessage);
-	
 	//Send second SMS
-	SendSmsL(smsMessage,socket);
+    smsMessage=CreateSmsMessageLC(arrBuf2, alphabet);
+    SendSmsL(smsMessage,socket);
 	CleanupStack::PopAndDestroy(smsMessage);		
 				
 	//Receive first SMS
-	INFO_PRINTF1(_L("waiting for incoming first SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
-
-	INFO_PRINTF1(_L("incoming first SMS") );
-	
 	CleanupStack::PushL(smsMessage);
-	TestSmsContentsL(smsMessage, arrBuf, ETrue);	
+
+	TestSmsContentsL(smsMessage, arrBuf, ETrue);
 
 	//Save the received message to the SMS storage
 	smsMessage->SetStorage(CSmsMessage::ESmsSIMStorage);
 	WriteSmsToSimL(*smsMessage, socket);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 			
 	//Receive second SMS
-	INFO_PRINTF1(_L("waiting for incoming second SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
-
-	INFO_PRINTF1(_L("incoming second SMS") );
-	
 	CleanupStack::PushL(smsMessage);
-	TestSmsContentsL(smsMessage, arrBuf2, ETrue);	
+
+	TestSmsContentsL(smsMessage, arrBuf2, ETrue);
 
 	//Save the received message to the SMS storage
 	smsMessage->SetStorage(CSmsMessage::ESmsSIMStorage);
 	WriteSmsToSimL(*smsMessage, socket);
-
 	CleanupStack::PopAndDestroy(smsMessage);				
 	
 	// Enumerate messages from Store
@@ -229,25 +152,17 @@
 	messages.ResetAndDestroy();
 
 	CleanupStack::PopAndDestroy(&socket);
-	
-	CleanupStack::PopAndDestroy(&socketServer);	 
-
 	return TestStepResult() ;	 	
 	}	
-
-
+	
 TVerdict CTestStatusReport::doTestStepL()
 /**
  *  Test a simple Transmit and Receive with status reporting
  */
 	{
 	INFO_PRINTF1(_L("Test Tx an SMS and then receive a status report"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 1);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	_LIT(KTestMsg1,"test message, 8bits, length 30");
 
@@ -264,11 +179,9 @@
 
 	//Send SMS
 	SendSmsL(smsMessage,socket);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	//Create and send the second SMS
-
 	_LIT(KTest7bitMsg,"test message, length 23"); //7 bits test message, length 23 characters
 
 	//Set destination number
@@ -283,7 +196,6 @@
 
 	//Send SMS
 	SendSmsL(smsMessage,socket);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	//Create and send the third SMS
@@ -300,7 +212,6 @@
 
 	//Send SMS
 	SendSmsL(smsMessage,socket);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	//Create and send the fourth SMS
@@ -318,7 +229,6 @@
 
 	//Send SMS
 	SendSmsL(smsMessage,socket);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	// Create and send the 5th SMS. Here the submit PDU contains an international number
@@ -338,10 +248,9 @@
 
 	//Send SMS
 	SendSmsL(smsMessage, socket);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 
-	//
+	////////////
 	// PDEF137451
 	//Create and send the sixth SMS
 	//
@@ -359,7 +268,6 @@
 
 	//Send SMS
 	SendSmsL(smsMessage,socket);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	//
@@ -378,22 +286,24 @@
 
 	//Send SMS
 	SendSmsL(smsMessage,socket);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 	
-	//
+	///////////////
 	
-
 	//Receive status report
 	TSmsServiceCenterAddress telephoneNumber;
 	telephoneNumber.Copy( KOther );
 	RecvStatusReportL(telephoneNumber, socket);
+	
 	telephoneNumber = KLocalNumber;
 	RecvStatusReportL(telephoneNumber, socket);
+	
 	telephoneNumber = KOther;
 	RecvStatusReportL(telephoneNumber, socket);
+	
 	telephoneNumber.Copy( KPekka );
 	RecvStatusReportL(telephoneNumber, socket);
+	
 	// CSmsPDUProcessor::DecodeAndProcessPDUL sets the address of the SR
 	// to the same as that of the original submit. So we expect the
 	// received SR to have an international number, despite the SR PDU
@@ -404,33 +314,26 @@
 	// truncated user data, 8-bit:
 	telephoneNumber.Copy( KPekka );
 	RecvStatusReportL(telephoneNumber, socket);
+	
 	// truncated user data, 7-bit:
 	telephoneNumber.Copy( KOther );			
 	RecvStatusReportL(telephoneNumber, socket);
 
 	CleanupStack::PopAndDestroy(&socket);
-	CleanupStack::PopAndDestroy(&socketServer);
-
-
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestTxWithError::doTestStepL()
 /**
  *  Test a simple Transmit and Receive. This test case tests different errors from TSY.
  */
 	{
 	INFO_PRINTF1(_L("Test Tx an SMS, completed with error"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 2);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	RSocket socket2;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket2,ESmsAddrSendOnly);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket2,ESmsAddrSendOnly);
 
 	_LIT(KTestMsg1,"test message, 8bits, length 30");
 
@@ -439,8 +342,7 @@
 	iServiceCenterNumber=KSoneraSC;
 
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
-	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 
 	//Set Status report request
 	CSmsSubmit& submitPdu=(CSmsSubmit&)smsMessage->SmsPDU();
@@ -455,8 +357,6 @@
 	//Try sending, Tsy returns error
 	SendSmsCancelL(smsMessage,socket, socket2);
 
-//	SendSmsErrorL(smsMessage,socket);
-
 	INFO_PRINTF1(_L("Try again sending the SMS"));
 	//Now sending succeeds KErrNone
 	SendSmsL(smsMessage,socket);
@@ -490,37 +390,24 @@
 	CleanupStack::PopAndDestroy(smsMessage);
 	
 	//Receive SMS
-	INFO_PRINTF1(_L("waiting for incoming SMS..."));
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
-
-	INFO_PRINTF1(_L("incoming SMS") );
-
 	CleanupStack::PushL(smsMessage);
 
 	TestSmsContentsL(smsMessage,KTestMsg1);
 
-	CleanupStack::PopAndDestroy(3); // socket, socket2, smsMessage
-	CleanupStack::PopAndDestroy(&socketServer);
-
+	CleanupStack::PopAndDestroy(3, &socket); // socket, socket2, smsMessage
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestTxFailed::doTestStepL()
 /**
  *  Test sending an SMS, transmit will be failed with different error codes
  */
 	{
 	INFO_PRINTF1(_L("Test Tx an SMS, failed with different error codes"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 3);
-
 	RSocket socket;
-	TInt ret;
-
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	_LIT(KTestMsg1,"test message, 8bits, length 30");
 
@@ -529,27 +416,28 @@
 	iServiceCenterNumber=KSoneraSC;
 
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
-	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 
 	INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber);
 	INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber);
 
 	//Try sending, Dummy Tsy returns RP-error
 	TInt i;
-	for (i=0; i <25; i++)
+	TInt ret;
+
+	for (i=0; i < 25; ++i)
 		{
 		ret = SendSmsErrorL(smsMessage,socket);
 		}
 
 	//Try sending, Dummy Tsy returns RP-error with corrupted or wrong submit report PDU
-	for (i=0; i <2; i++)
+	for (i=0; i < 2; ++i)
 		{
 		ret = SendSmsErrorL(smsMessage,socket);
 		}
 
 	//Try sending, Dummy Tsy returns general error
-	for (i=0; i <3; i++)
+	for (i=0; i < 3; ++i)
 		{
 		ret = SendSmsErrorL(smsMessage,socket);
 		}
@@ -558,29 +446,23 @@
 	ret = SendSmsErrorL(smsMessage,socket);
 	TEST(ret== KErrGsmSMSMemCapacityExceeded);
 
-
-	CleanupStack::PopAndDestroy(2); // socket, smsMessage
-	CleanupStack::PopAndDestroy(&socketServer);
-
+	CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage
 	return TestStepResult() ;
 	}
 
-
+// TODO: test does not seem to be used in any scripts that are run as part of tests
+// only present in TE_smsprtRegressionClass0StoreEnabled.script, check if OK to remove
 TVerdict CTestMatchingToObserver::doTestStepL()
 /**
  *  Test a simple Receive of a single TPDU containing a simple text
  */
 	{
 	INFO_PRINTF1(_L("Test Messages matching to correct observer"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 4);
-
 	RSocket socket1;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket1,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket1,ESmsAddrRecvAny);
 
 	RSocket socket2;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket2,ESmsAddrSendOnly);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket2,ESmsAddrSendOnly);
 
 	_LIT(KTestMsg1,"test message, 8bits, length 30"); //8 bits test message, length 30 chars
 	_LIT(KTestMsg2,"test message, length 23"); //7 bits test message, length 23 characters
@@ -589,7 +471,7 @@
 	match.Copy(KTestMsg2);
 
 	RSocket socket3;
-	TInt ret=socket3.Open(socketServer,KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol);
+	TInt ret=socket3.Open(iSocketServer,KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol);
 	TEST(ret == KErrNone);
 	CleanupClosePushL(socket3);
 
@@ -603,7 +485,6 @@
 	ret=socket1.Bind(smsaddr);
 	TEST(ret == KErrNone);
 
-//
 	//Set destination and SC numbers
 	iTelephoneNumber=KPekka;
 	iServiceCenterNumber=KRadiolinjaSC;
@@ -617,7 +498,6 @@
 
 	//Send SMS
 	SendSmsL(smsMessage,socket2);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	INFO_PRINTF1(_L("waiting for incoming SMS...") );
@@ -631,36 +511,25 @@
 	TEST(ret == KErrNone);
 
 	INFO_PRINTF1(_L("waiting for incoming SMS...") );
-
 	smsMessage = RecvSmsL(socket3);
-	INFO_PRINTF1(_L("incoming SMS") );
-
 	CleanupStack::PushL(smsMessage);
 
 	TestSmsContentsL(smsMessage,KTestMsg2);
 
 	CleanupStack::PopAndDestroy(smsMessage);
 
-//Receive a message to socket1
+	//Receive a message to socket1
 	smsMessage = RecvSmsL(socket1);
-
-	INFO_PRINTF1(_L("incoming SMS") );
-
 	CleanupStack::PushL(smsMessage);
 
 	TestSmsContentsL(smsMessage,KTestMsg1);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 
-//Receive a status report message to socket2
-
+	//Receive a status report message to socket2
 	smsMessage = RecvSmsL(socket2);
-
-	INFO_PRINTF1(_L("incoming SMS") );
-
+    CleanupStack::PushL(smsMessage);
+    
 	//Check the status report
-
-	CleanupStack::PushL(smsMessage);
 	if (smsMessage->Type()==CSmsPDU::ESmsStatusReport)
 		{
 		INFO_PRINTF1(_L("Received status report"));
@@ -669,13 +538,10 @@
 		INFO_PRINTF2(_L("Message delivered to %S"),&telephoneNumber);
 		}
 
-	CleanupStack::PopAndDestroy(4); // socket1, socket2, socket3, smsMessage
-	CleanupStack::PopAndDestroy(&socketServer);
-
+	CleanupStack::PopAndDestroy(4, &socket1); // socket1, socket2, socket3, smsMessage
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestCommandMessages::doTestStepL()
 /**
  *  Test first transmit of a message, then send Command message to enable status reporting to previously sent
@@ -683,12 +549,8 @@
  */
 	{
 	INFO_PRINTF1(_L("Test Command messages"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 5);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	_LIT(KTest7bitMsg,"test message, length 23"); //7 bits test message, length 23 characters
 
@@ -697,8 +559,7 @@
 	iServiceCenterNumber=KSoneraSC;
 
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit;
-	CSmsMessage* smsMessage=CreateSmsMessageL(KTest7bitMsg,alphabet);
-	CleanupStack::PushL(smsMessage);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KTest7bitMsg,alphabet);
 
 	INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber);
 	INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber);
@@ -731,75 +592,54 @@
 	telephoneNumber.Copy( KPekka );
 	RecvStatusReportL(telephoneNumber, socket);
 
-	CleanupStack::PopAndDestroy(2); // socket, smsMessage
-    CleanupStack::PopAndDestroy(&socketServer);
-
+	CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestSimpleRx::doTestStepL()
 /**
  *  Test a simple Receive of a single TPDU containing a simple text
  */
 	{
 	INFO_PRINTF1(_L("Test Simple Rx SMS with Client ACK"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 6);
-
 	RSocket socket;
 	TSmsAddr smsaddr;
 	smsaddr.SetSmsAddrFamily(ESmsAddrMatchText);
 	smsaddr.SetTextMatch(_L8("test message, 8b"));
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer, socket, smsaddr);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, smsaddr);
 
 	RSocket socketRecvAny;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer, socketRecvAny, ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socketRecvAny, ESmsAddrRecvAny);
 
 	INFO_PRINTF1(_L("waiting for incoming SMS No. 1...") );
 	WaitForRecvL(socket);
 	CSmsMessage* smsMessage = RecvSmsFailedL(socket);
-
-	INFO_PRINTF1(_L("incoming SMS") );
-
 	CleanupStack::PushL(smsMessage);
 
 	_LIT(KTestMsg1,"Test message, 8bits, length 30");
 	TestSmsContentsL(smsMessage,KTestMsg1);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	INFO_PRINTF1(_L("waiting for incoming SMS No. 2...") );
 	WaitForRecvL(socketRecvAny);
 	smsMessage = RecvSmsFailedL(socketRecvAny);
-
-	INFO_PRINTF1(_L("incoming SMS") );
-
 	CleanupStack::PushL(smsMessage);
 
 	_LIT(KTestMsg2,"Sest message, 8bits, length 30");
 	TestSmsContentsL(smsMessage,KTestMsg2);
 
-	CleanupStack::PopAndDestroy(3); // socket, socketRecvAny, smsMessage
-    CleanupStack::PopAndDestroy(&socketServer);
-
+	CleanupStack::PopAndDestroy(3, &socket); // socket, socketRecvAny, smsMessage
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTest7bitMessTest::doTestStepL()
 /**
  *  Test a simple Transmit and Receive of a single TPDU containing a single character
  */
 	{
 	INFO_PRINTF1(_L("Test Tx and Rx 7 bit SMS with Client ACK"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 7);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	_LIT(KTest7bitMsg,"test message, length 23"); //7 bits test message, length 23 characters
 	//Set destination and SC numbers
@@ -807,8 +647,7 @@
 	iServiceCenterNumber=KSoneraSC;
 
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit;
-	CSmsMessage* smsMessage=CreateSmsMessageL(KTest7bitMsg,alphabet);
-	CleanupStack::PushL(smsMessage);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KTest7bitMsg,alphabet);
 
 	//Set status report request
 	CSmsSubmit& submitPdu=(CSmsSubmit&)smsMessage->SmsPDU();
@@ -821,36 +660,25 @@
 	SendSmsL(smsMessage,socket);
 	CleanupStack::PopAndDestroy(smsMessage);
 
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
-
-	INFO_PRINTF1(_L("incoming SMS") );
-
 	CleanupStack::PushL(smsMessage);
+
 	TestSmsContentsL(smsMessage,KTest7bitMsg);
 
-	CleanupStack::PopAndDestroy(2); // socket, smsMessage
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+	CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage
+ 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestClassMessages::doTestStepL()
 /**
  *  Test Send and receive messages of different classes
  *  TODO - why do I have to send a class 2 sms before the class 1 and 3 sms
  */
     {
-
     INFO_PRINTF1(_L("Send and receive messages with different classes"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 8);
-	
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	iTelephoneNumber=KPekka;
 	iServiceCenterNumber=KSoneraSC;
@@ -875,12 +703,9 @@
     SendAndRecvTestMessageL(Class3msg,socket);
 
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestRxConcatenated::doTestStepL()
 /**
  *  Test reception of a concatenated SMS message spanning 3 TPDUs
@@ -888,46 +713,38 @@
  */
 	{
 	INFO_PRINTF1(_L("Test Rx Three Part Concatenated Message"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 9);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
-
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
+
 	WaitForRecvL(socket);
 	CSmsMessage* smsMessage = RecvSmsL(socket);
 	CleanupStack::PushL(smsMessage);
-	INFO_PRINTF1(_L("incoming SMS") );
 
 	_LIT(KLongText,"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"The End.");
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"The End.");
+	
 	TestSmsContentsL(smsMessage,KLongText);
 
-	CleanupStack::PopAndDestroy(2); // socket, smsMessage
-    CleanupStack::PopAndDestroy(&socketServer);
-
+	CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestRxDuplicate::doTestStepL()
 /**
  *  Test reception of a concatenated SMS message spanning 3 TPDUs
@@ -936,46 +753,38 @@
  */
 	{
 	INFO_PRINTF1(_L("Test Rx Three Part Concatenated Message with 2nd TPDU Duplicated"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 10);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
-
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
+
 	WaitForRecvL(socket);
 	CSmsMessage* smsMessage = RecvSmsL(socket);
 	CleanupStack::PushL(smsMessage);
-	INFO_PRINTF1(_L("incoming SMS") );
 
 	_LIT(KLongText,"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"The End.");
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"The End.");
+	
 	TestSmsContentsL(smsMessage,KLongText);
 
-	CleanupStack::PopAndDestroy(2); // socket, smsMessage
-    CleanupStack::PopAndDestroy(&socketServer);
-
+	CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestRxRingToneA::doTestStepL()
 /**
  *  Test reception of a concatenated SMS Ringing Tone message spanning 3 TPDUs
@@ -983,18 +792,12 @@
  */
 	{
 	INFO_PRINTF1(_L("Test Rx Three Part Concatenated SMS Ringing Tone Message"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 11);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
-
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
+
 	WaitForRecvL(socket);
 	CSmsMessage* smsMessage = RecvSmsL(socket);
 	CleanupStack::PushL(smsMessage);
-	INFO_PRINTF1(_L("incoming SMS") );
 
 	const TUint16 KRingingTonePDUA[]= {
 	0x02, 0x4A, 0x3A, 0x75, 0x09, 0x85, 0x91, 0xA5, 0xB9, 0x95,
@@ -1033,65 +836,53 @@
 	TPtrC ringingTonePDUA(KRingingTonePDUA,sizeof(KRingingTonePDUA)/sizeof(TUint16));
 	TestSmsContentsL(smsMessage,ringingTonePDUA);
 
-	CleanupStack::PopAndDestroy(2); // socket, smsMessage
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+	CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage
+  	return TestStepResult() ;
 	}
 
-
 TVerdict CTestTxRxConcatenated::doTestStepL()
 /**
  *  Test transmition and reception of a concatenated SMS message spanning 3 TPDUs
  */
-
 	{
 	INFO_PRINTF1(_L("Test Tx and Rx SMS with 3 PDU message"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 12);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	_LIT(KLongText,"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"The End.");
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"The End.");
 
 	//Set destination and SC numbers
 	iTelephoneNumber=KRegTestNumber;
 	iServiceCenterNumber=KVodafoneSC;
 
-	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit;//changed to 7 bits
-//	CSmsMessage* smsMessage=CreateSmsMessageL(KLongText,alphabet);
+	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit;
 	CSmsMessage* smsMessage=CreateSmsWithStatusReportReqL(KLongText,alphabet);
 
 	CleanupStack::PushL(smsMessage);
 	SendSmsL(smsMessage,socket);
 	CleanupStack::PopAndDestroy(smsMessage);
 
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
-
-	INFO_PRINTF1(_L("incoming SMS"));
-
 	CleanupStack::PushL(smsMessage);
+
 	TestSmsContentsL(smsMessage,KLongText);
 	CleanupStack::PopAndDestroy(smsMessage);
 
@@ -1101,74 +892,55 @@
 
 	// TX & RX 8 bit conc msg
 	alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
-	smsMessage=CreateSmsMessageL(KLongText,alphabet);
-
-	CleanupStack::PushL(smsMessage);
+	smsMessage=CreateSmsMessageLC(KLongText,alphabet);
+
 	SendSmsL(smsMessage,socket);
 	CleanupStack::PopAndDestroy(smsMessage);
 
-	INFO_PRINTF1(_L("waiting for incoming SMS..."));
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
-
-	INFO_PRINTF1(_L("incoming SMS") );
-
 	CleanupStack::PushL(smsMessage);
+
 	TestSmsContentsL(smsMessage,KLongText);
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	// TX & RX 16 bit conc msg
 	_LIT(KLongText2,"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"The End.");
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"The End.");
 
 	alphabet=TSmsDataCodingScheme::ESmsAlphabetUCS2;
-	smsMessage=CreateSmsMessageL(KLongText2,alphabet);
-
-	CleanupStack::PushL(smsMessage);
+	smsMessage=CreateSmsMessageLC(KLongText2,alphabet);
+
 	SendSmsL(smsMessage,socket);
 	CleanupStack::PopAndDestroy(smsMessage);
 
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
-
-	INFO_PRINTF1(_L("incoming SMS"));
-
 	CleanupStack::PushL(smsMessage);
+
 	TestSmsContentsL(smsMessage,KLongText2);
 
-	CleanupStack::PopAndDestroy(2); // socket, smsMessage
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult();
+	CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage
+ 	return TestStepResult();
 	}
 
-
 TVerdict CTestParamStorage::doTestStepL()
 /**
  *  Test retrieving and storing the sms parameters
  */
 	{
 	INFO_PRINTF1(_L("Test the parameter storage"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 13);
-
-	TInt ret(KErrNone);
-    TRequestStatus status;
-
-//
-// Retrieve SMS parameters
-//
-	// Open the socket for SIM operations
-	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrLocalOperation);
-
-    RSmsSocketReadStream readstream(socket);
+    // Open the socket for SIM operations
+    RSocket socket;
+    iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrLocalOperation);
+
+    //
+    // Retrieve SMS parameters
+    //
 
 	//Create the smspList
 	CMobilePhoneSmspList* smspList = CMobilePhoneSmspList::NewL();
@@ -1178,12 +950,16 @@
 	User::After(2000000);
 
     // Make read SMS params request to the SMS Stack.
+    TRequestStatus status;
+
     socket.Ioctl(KIoctlReadSmsParams,status,NULL, KSolSmsProv);
     INFO_PRINTF1(_L("waiting for SMS parameters..."));
     User::WaitForRequest(status);
 	TEST(status.Int() == KErrNone);
 
     // Read list from stream and make acknowledgement to the SMS Stack
+    RSmsSocketReadStream readstream(socket);
+
     readstream >> *smspList;
     socket.Ioctl(KIoctlCompleteReadSmsParams, status, NULL,KSolSmsProv);
     User::WaitForRequest(status);
@@ -1191,9 +967,9 @@
 
 	CleanupStack::PopAndDestroy(smspList);
 
-//
-// Store SMS parameters
-//
+	//
+	// Store SMS parameters
+	//
 	smspList=CMobilePhoneSmspList::NewL();
 	CleanupStack::PushL(smspList);
 
@@ -1214,7 +990,7 @@
     // Add 6 entries to the list
 	TInt i = 0;
 
-    for(i=0; i<6; i++)
+    for(i=0; i<6; ++i)
 		{
         entryToTsy.iIndex = i;
 	    smspList->AddEntryL(entryToTsy);
@@ -1223,7 +999,7 @@
     INFO_PRINTF1(_L("storing the SMS parameters..."));
 
     // Write parameter list to the stream and make write SMS parameters request to the SMS Stack.
-    ret = iSmsStackTestUtils->StoreParamsL(*smspList,socket,EFalse);
+    TInt ret = iSmsStackTestUtils->StoreParamsL(*smspList,socket,EFalse);
     TEST_CHECKL(ret,KErrArgument,_L("Status values doesn't match"));
 
     // Writing failed because SIM tsy's SMS parameter store can contain only 5 SMSP sets.
@@ -1234,9 +1010,9 @@
     ret = iSmsStackTestUtils->StoreParamsL(*smspList,socket,EFalse);
 	TEST(ret == KErrNone);
 
-//
-// Retrieve SMS parameters again
-//
+	//
+	// Retrieve SMS parameters again
+	//
 	CMobilePhoneSmspList* smspList2=CMobilePhoneSmspList::NewL();
 	CleanupStack::PushL(smspList2);
 
@@ -1245,7 +1021,7 @@
     socket.CancelIoctl();
     User::WaitForRequest(status);
 
-		// originl code was
+    // originl code was
 	// GLOBAL_CHECKPOINT_CODE(status.Int());
 	// thus always assumes that the cancelling will be missed,
 	// but with the change due defect (DEF40029) to smsppara.cpp,
@@ -1270,9 +1046,9 @@
 
 	CleanupStack::PopAndDestroy(2);	//smspList,smspList2
 
-//
-// Store SMS parameters again
-//
+	//
+	// Store SMS parameters again
+	//
 	smspList=CMobilePhoneSmspList::NewL();
 	CleanupStack::PushL(smspList);
 
@@ -1307,32 +1083,23 @@
 	ret = iSmsStackTestUtils->StoreParamsL(*smspList,socket,EFalse);
 	TEST(ret == KErrNone);
 
-	CleanupStack::PopAndDestroy(2); // socket,smspList
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult();
+	CleanupStack::PopAndDestroy(2, &socket); // socket,smspList
+   	return TestStepResult();
 	}
 
-
 TVerdict CTestSmsStore::doTestStepL()
 /**
  *  Test Sms message storage
  */
 	{
 	INFO_PRINTF1(_L("Test the SMS storage"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 14);
-
-	// Open the socket
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	// Enumerate messages
 	RPointerArray<CSmsMessage> messages;
 	CleanupResetAndDestroyPushL(messages);
 	ReadSmsStoreL(socket, messages);
-//	const TInt beforeCount = messages.Count();
 
 	const CSmsMessage* message = messages[0];
 
@@ -1353,8 +1120,7 @@
 	// Create and store the message
 	_LIT(KStoreMsg1,"SIM TEST MESSAGE 1");
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit;
-	CSmsMessage* smsmessage=CreateSmsMessageL(KStoreMsg1,alphabet);
-	CleanupStack::PushL(smsmessage);
+	CSmsMessage* smsmessage=CreateSmsMessageLC(KStoreMsg1,alphabet);
 
 	smsmessage->SetStorage(CSmsMessage::ESmsSIMStorage);
 	WriteSmsToSimL(*smsmessage, socket);
@@ -1363,12 +1129,10 @@
 	// Create and store another message
 	_LIT(KStoreMsg2,"ME TEST MESSAGE 2");
 	alphabet=TSmsDataCodingScheme::ESmsAlphabetUCS2;
-	smsmessage=CreateSmsMessageL(KStoreMsg2,alphabet);
-	CleanupStack::PushL(smsmessage);
+	smsmessage=CreateSmsMessageLC(KStoreMsg2,alphabet);
 
 	smsmessage->SetStorage(CSmsMessage::ESmsPhoneStorage);
 	WriteSmsToSimL(*smsmessage, socket);
-
 	CleanupStack::PopAndDestroy(smsmessage);
 
 	// Enumerate messages
@@ -1379,31 +1143,22 @@
 
 	CleanupStack::PopAndDestroy(&messages);
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+   	return TestStepResult() ;
 	}
 
-
 TVerdict CTestSmsStoreList::doTestStepL()
 /**
  *  Test Sms message storage
  */
 	{
 	INFO_PRINTF1(_L("Test the SMS storage - read SmsList"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 15);
-
-	// Open the socket for SIM operations
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	// Enumerate messages
 	RPointerArray<CSmsMessage> messages;
 	CleanupResetAndDestroyPushL(messages);
 	ReadSmsStoreL(socket, messages);
-//	const TInt beforeCount = messages.Count();
 
 	const CSmsMessage* message = messages[1];
 
@@ -1425,39 +1180,31 @@
 	_LIT(KStoreMsg1,"SIM TEST MESSAGE 1");
 	iTelephoneNumber=KOther;
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit;
-	CSmsMessage* smsmessage=CreateSmsMessageL(KStoreMsg1,alphabet);
+	CSmsMessage* smsmessage=CreateSmsMessageLC(KStoreMsg1,alphabet);
 	smsmessage->SetStorage(CSmsMessage::ESmsSIMStorage);
 	smsmessage->SetStatus(NMobileSmsStore::EStoredMessageUnsent);
 
-	CleanupStack::PushL(smsmessage);
-
 	WriteSmsToSimL(*smsmessage, socket);
 	CleanupStack::PopAndDestroy(smsmessage);
 
 	// Create and store another message
 	_LIT(KStoreMsg2,"COMB TEST MESSAGE 2");
 	alphabet=TSmsDataCodingScheme::ESmsAlphabetUCS2;
-	smsmessage=CreateSmsMessageL(KStoreMsg2,alphabet);
+	smsmessage=CreateSmsMessageLC(KStoreMsg2,alphabet);
 	smsmessage->SetStorage(CSmsMessage::ESmsCombinedStorage);
 	smsmessage->SetStatus(NMobileSmsStore::EStoredMessageUnsent);
 
-	CleanupStack::PushL(smsmessage);
-
 	WriteSmsToSimL(*smsmessage, socket);
 	CleanupStack::PopAndDestroy(smsmessage);
 
 	// Create and store third message
 	_LIT(KStoreMsg3,"ME TEST MESSAGE 3");
 	alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
-	smsmessage=CreateSmsMessageL(KStoreMsg3,alphabet);
+	smsmessage=CreateSmsMessageLC(KStoreMsg3,alphabet);
 	smsmessage->SetStorage(CSmsMessage::ESmsPhoneStorage);
 	smsmessage->SetStatus(NMobileSmsStore::EStoredMessageUnsent);
 
-	CleanupStack::PushL(smsmessage);
-
 	WriteSmsToSimL(*smsmessage, socket);
-
-
 	CleanupStack::PopAndDestroy(smsmessage);
 
 	// Enumerate messages
@@ -1469,30 +1216,21 @@
 
 	CleanupStack::PopAndDestroy(&messages);
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestDeleteSms::doTestStepL()
 /**
  *  Try to delete message without enumerating the store before it.
  */
 	{
 	INFO_PRINTF1(_L("Test deleting message from SMS storage"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 15); //script number can be this!
-
-	// Open the socket
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	_LIT(KStoreMsg1,"HELLO CHRIS");
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit;
-	CSmsMessage* smsmessage=CreateSmsMessageL(KStoreMsg1,alphabet);
-	CleanupStack::PushL(smsmessage);
+	CSmsMessage* smsmessage=CreateSmsMessageLC(KStoreMsg1,alphabet);
 
 	//Try to delete the message without enumerating first!
 	TRequestStatus status;
@@ -1501,19 +1239,102 @@
 	writestream << *smsmessage;
 	writestream.CommitL();
 
-	socket.Ioctl(KIoctlDeleteSmsMessage, status, NULL, KSolSmsProv);
-	User::WaitForRequest(status);
-
-	INFO_PRINTF2(_L("Delete Sms - returned %d"), status.Int());
+    TBool tryAgain = ETrue;
+    TInt attempts (0);
+    TInt maxRetries = 3;
+	
+    // Delete messages from store. If it fails with KErrNotReady wait for 3 seconds to 
+    // allow sms protocol to fully load and repeat
+    while( tryAgain && attempts++ < maxRetries )
+        {
+        socket.Ioctl(KIoctlDeleteSmsMessage, status, NULL, KSolSmsProv);
+        User::WaitForRequest(status);
+        INFO_PRINTF2(_L("Delete messages from store returned [status=%d]"), status.Int());
+        
+        if ( status.Int() == KErrNotReady )
+            {
+            INFO_PRINTF1(_L("Trying to delete again... "));
+            User::After(3000000);
+            }
+        else
+            {
+            tryAgain = EFalse;
+            }
+        }
 
 	TEST(status.Int() == KErrArgument);
 
-	CleanupStack::PopAndDestroy(2); //socket, smsmessage
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+	CleanupStack::PopAndDestroy(2, &socket); //socket, smsmessage
+ 	return TestStepResult() ;
 	}
 
+/**
+ *  Tests the TSmsAddr class
+ * 
+ *  @return A TVerdict test result.
+ */
+TVerdict CTestSmsAddr::doTestStepL()
+    {
+    TSmsAddr addr1;
+
+    INFO_PRINTF1(_L("Test default values ..."));
+
+    TEST(addr1.SmsAddrFamily() == ESmsAddrUnbound);
+    
+    INFO_PRINTF1(_L("Test address family set/get and dual-SIM aware flag ..."));
+    
+    addr1.SetSmsAddrFamily(ESmsAddrLocalOperation);
+    TEST(addr1.SmsAddrFamily() == ESmsAddrLocalOperation);
+ 
+    
+    addr1.SetSmsAddrFamily(ESmsAddrEmail);
+    TEST(addr1.SmsAddrFamily() == ESmsAddrEmail);
+    
+    INFO_PRINTF1(_L("Test identifier match set/get ..."));
+    
+    addr1.SetSmsAddrFamily(ESmsAddrMatchIEI);
+    addr1.SetIdentifierMatch(CSmsInformationElement::ESmsIEIApplicationPortAddressing8Bit);
+    TEST(addr1.IdentifierMatch() == CSmsInformationElement::ESmsIEIApplicationPortAddressing8Bit);
+    
+    INFO_PRINTF1(_L("Test text match set/get ..."));
+    
+    addr1.SetSmsAddrFamily(ESmsAddrMatchText);
+    addr1.SetTextMatch(_L8("test message, len"));
+    TEST(addr1.TextMatch().CompareF(_L8("test message, len")) == 0);
+    
+    addr1.SetTextMatch(_L8("test message this is max:extra"));
+    TEST(addr1.TextMatch().CompareF(_L8("test message this is max")) == 0);
+    
+    INFO_PRINTF1(_L("Test compare ..."));
+    
+    TSmsAddr addr2;
+    addr2.SetSmsAddrFamily(ESmsAddrMatchText);
+    addr2.SetTextMatch(_L8("test message, len"));
+
+    TSmsAddr addr3;
+    addr3.SetSmsAddrFamily(ESmsAddrMatchText);
+    addr3.SetTextMatch(_L8("test message, len"));
+
+    TEST((addr2 == addr3));
+    
+    addr3.SetTextMatch(_L8("diff test message"));
+    TEST(!(addr2 == addr3));
+  
+    addr2.SetSmsAddrFamily(ESmsAddrMatchIEI);
+    addr2.SetIdentifierMatch(CSmsInformationElement::ESmsIEIApplicationPortAddressing8Bit);
+    
+    TEST(!(addr2 == addr3));
+
+    addr3.SetSmsAddrFamily(ESmsAddrMatchIEI);
+    addr3.SetIdentifierMatch(CSmsInformationElement::ESmsIEIApplicationPortAddressing8Bit);
+
+    TEST((addr2 == addr3));
+    
+    addr2.SetIdentifierMatch(CSmsInformationElement::ESmsIEIApplicationPortAddressing16Bit);
+    TEST(!(addr2 == addr3));
+    
+    return TestStepResult();    
+    }
 
 TVerdict CTestSocketBinding::doTestStepL()
 /**
@@ -1521,19 +1342,15 @@
  */
 	{
 	INFO_PRINTF1(_L("Test Open & Bind the Socket"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 16);
-
 	RSocket socket1;
 	RSocket socket2;
 
-	TInt ret1=socket1.Open(socketServer,KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol);
+	TInt ret1=socket1.Open(iSocketServer,KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol);
 	TEST(ret1 == KErrNone);
 	CleanupClosePushL(socket1);
 	TSmsAddr smsaddr1;
 
-	TInt ret2=socket2.Open(socketServer,KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol);
+	TInt ret2=socket2.Open(iSocketServer,KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol);
 	TEST(ret2 == KErrNone);
 	CleanupClosePushL(socket2);
 	TSmsAddr smsaddr2;
@@ -1621,32 +1438,26 @@
 
 	CleanupStack::Pop(&socket2);
 	CleanupStack::Pop(&socket1);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	INFO_PRINTF1(_L("All bindings ok!"));
+ 	INFO_PRINTF1(_L("All bindings ok!"));
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestSmsEventLogger::doTestStepL()
 /**
  *  Test SMS event logger
  */
 	{
 	INFO_PRINTF1(_L("Test SMS event logger"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 17);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	CLogEvent* logEvent=CLogEvent::NewL();
 	CleanupStack::PushL(logEvent);
 
-//
-// Test logging of sending and receiving events
-//
+	//
+	// Test logging of sending and receiving events
+	//
+	
 	//Set destination and SC numbers
 	iTelephoneNumber=KPekka;
 	iServiceCenterNumber=KRadiolinjaSC;
@@ -1654,8 +1465,7 @@
 	_LIT(KTest7bitMsg,"test message, length 23"); //7 bits test message, length 23 characters
 
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit;
-	CSmsMessage* sendSmsMessage=CreateSmsMessageL(KTest7bitMsg,alphabet);
-    CleanupStack::PushL(sendSmsMessage);
+	CSmsMessage* sendSmsMessage=CreateSmsMessageLC(KTest7bitMsg,alphabet);
 
 	//Send SMS-SUBMIT
 	SendSmsL(sendSmsMessage,socket);
@@ -1769,9 +1579,9 @@
        (dateTime.Second() != 18) )     
         TEST(KErrArgument); 
 	
-//
-// Test logging when senging fails.
-//
+    //
+    // Test logging when senging fails.
+    //
 
 	//Send SMS-SUBMIT
 	SendSmsErrorL(sendSmsMessage,socket);
@@ -1791,27 +1601,27 @@
 
     CleanupStack::PopAndDestroy(2); //sendSmsMessage, receiveSmsMessage
 
-//
-// Test event logging when an intermittent concatenated message status report received.
-//
+    //
+    // Test event logging when an intermittent concatenated message status report received.
+    //
 	_LIT(KLongText,"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"The End.");
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"The End.");
 
 	//Set destination and SC numbers
 	iTelephoneNumber=KRegTestNumber;
@@ -1865,10 +1675,8 @@
        (dateTime.Second() != 18) )     
         TEST(KErrArgument); 
 	
-	CleanupStack::PopAndDestroy(4); // sendSmsMessage, receiveSmsMessage, logEvent, socket
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+	CleanupStack::PopAndDestroy(4, &socket); // sendSmsMessage, receiveSmsMessage, logEvent, socket
+ 	return TestStepResult() ;
 	}
 
 
@@ -1879,12 +1687,10 @@
  *  message.  Buffer size of 500 => 4 PDU message
  */
     {
+    RSocket socket;
+    iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
+    
     INFO_PRINTF1(_L("Testing tx & rx while changing the SMS Bearer"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 18);
-	
-
 	iTelephoneNumber=KPekka;
 	iServiceCenterNumber=KRadiolinjaSC; //maybe not needed...
 
@@ -1894,25 +1700,16 @@
     CleanupStack::PushL(messageBuffer);
     TPtr bufferPtr=messageBuffer->Des();
     FillDes(bufferPtr,KTestMessageBufferSize);
-    CSmsMessage* smsMessage=CreateSmsMessageL(bufferPtr,
-            TSmsDataCodingScheme::ESmsAlphabet7Bit);
-    CleanupStack::PushL(smsMessage);
-    CSmsMessage* rxSmsMessage=NULL;
-
-    // Open socket
-    RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
-
-    RMobileSmsMessaging::TMobileSmsBearer smsBearer;
+    CSmsMessage* smsMessage=CreateSmsMessageLC(bufferPtr, TSmsDataCodingScheme::ESmsAlphabet7Bit);
 
     INFO_PRINTF1(_L("Testing bearer change to GPRS only setting"));
 
     // Send message & change bearer
-    smsBearer=RMobileSmsMessaging::ESmsBearerPacketOnly;
-	iSmsStackTestUtils->SendSmsAndChangeBearerL(smsMessage,socket, smsBearer);
+    RMobileSmsMessaging::TMobileSmsBearer smsBearer = RMobileSmsMessaging::ESmsBearerPacketOnly;
+	iSmsStackTestUtils->SendSmsAndChangeBearerL(smsMessage, socket, smsBearer);
 
 	// Receive message
-	rxSmsMessage=RecvSmsL(socket);
+	CSmsMessage* rxSmsMessage = RecvSmsL(socket);
 	CleanupStack::PushL(rxSmsMessage);
 	TestSmsContentsL(rxSmsMessage,bufferPtr);
 	CleanupStack::PopAndDestroy(rxSmsMessage);  // rxSmsMessage
@@ -1920,8 +1717,8 @@
 	INFO_PRINTF1(_L("Testing bearer change to CSD only setting"));
 
 	// Send message & change bearer
-	smsBearer=RMobileSmsMessaging::ESmsBearerCircuitOnly;
-	iSmsStackTestUtils->SendSmsAndChangeBearerL(smsMessage,socket, smsBearer);
+	smsBearer = RMobileSmsMessaging::ESmsBearerCircuitOnly;
+	iSmsStackTestUtils->SendSmsAndChangeBearerL(smsMessage, socket, smsBearer);
 
 	// Receive message
 	rxSmsMessage=RecvSmsL(socket);
@@ -1933,7 +1730,7 @@
 
 	// Send message & change bearer
 	smsBearer=RMobileSmsMessaging::ESmsBearerPacketPreferred;
-	iSmsStackTestUtils->SendSmsAndChangeBearerL(smsMessage,socket, smsBearer);
+	iSmsStackTestUtils->SendSmsAndChangeBearerL(smsMessage, socket, smsBearer);
 
 	// Receive message
 	rxSmsMessage=RecvSmsL(socket);
@@ -1953,10 +1750,8 @@
 	TestSmsContentsL(rxSmsMessage,bufferPtr);
 	CleanupStack::PopAndDestroy(rxSmsMessage);  // rxSmsMessage
 
-	CleanupStack::PopAndDestroy(3); // messageBuffer, smsMessage, CleanupCloseItem
-    CleanupStack::PopAndDestroy(&socketServer);
-
- 	return TestStepResult() ;
+	CleanupStack::PopAndDestroy(3, &socket); // messageBuffer, smsMessage, CleanupCloseItem
+  	return TestStepResult() ;
 	}
 
 	
@@ -1966,43 +1761,42 @@
       the bearer back to the previous setting.
 */
 	{
-    // Set the initial bearer value in CommDB
-    RMobileSmsMessaging::TMobileSmsBearer newBearer;
-    newBearer = RMobileSmsMessaging::ESmsBearerCircuitPreferred;
-    iSmsStackTestUtils->ChangeBearerL(newBearer);
-
-	// Starts the smsstack
-	RSocketServ socketServer;
-	INFO_PRINTF1(_L("Connecting to SocketServer ..."));
-	TInt ret = socketServer.Connect(KSocketMessageSlots);
-	CleanupClosePushL(socketServer);
-
-    // Open socket
+    // Get the initial bearer value from CommDB
+    RMobileSmsMessaging::TMobileSmsBearer retrievedBearer;
+    RMobileSmsMessaging::TMobileSmsBearer bearer;
+    iSmsStackTestUtils->GetBearerL(retrievedBearer);
+
     RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketL(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
     
     // Attempt to change the bearer
-    newBearer = RMobileSmsMessaging::ESmsBearerPacketPreferred;
-    iSmsStackTestUtils->ChangeBearerL(newBearer);
-    INFO_PRINTF2(_L("Changing bearer in CommDB global settings to %d"), newBearer);
+	if (retrievedBearer == RMobileSmsMessaging::ESmsBearerPacketPreferred )
+	    {
+        bearer = RMobileSmsMessaging::ESmsBearerCircuitPreferred;
+ 	    }
+	else
+        {
+        bearer = RMobileSmsMessaging::ESmsBearerPacketPreferred;
+        }
+    INFO_PRINTF2(_L("Changing bearer in CommDB global settings to %d"), bearer);
+    iSmsStackTestUtils->ChangeBearerL(bearer);
     
-    // Wait 2 seconds for CSmspSetBearer to complete and revert the bearer
-    User::After(2000000);
+    // Wait 5 seconds for CSmspSetBearer to complete and revert the bearer
+    const TInt delay = 5;
+    User::After(delay*1000000);
     
     // With simtsy, setting the bearer to any value is not
     // supported, therefore the smsstack should revert 
     // back to the previous bearer setting.
-    INFO_PRINTF1(_L("Bearer should be reverted back to previous supported setting."));
+    INFO_PRINTF2(_L("Bearer should be reverted back to previous supported setting after wait for %d seconds"), delay);
     INFO_PRINTF1(_L("The initial supported setting is obtained from CommDB."));
-    RMobileSmsMessaging::TMobileSmsBearer retrievedBearer;
-    iSmsStackTestUtils->GetBearerL(retrievedBearer);
+    iSmsStackTestUtils->GetBearerL(bearer);
     
-    TEST(retrievedBearer == RMobileSmsMessaging::ESmsBearerCircuitPreferred);
+    TESTCHECK(retrievedBearer, bearer, "Checking if the Bearer was reverted back to previous supported setting");
     
-	CleanupStack::PopAndDestroy(); //socketServer
+	CleanupStack::PopAndDestroy(&socket);
  	return TestStepResult();	
-	} 
-
+	}
 
 TVerdict CTestRecvModeChange::doTestStepL()
 /**
@@ -2011,11 +1805,9 @@
  */
     {
     INFO_PRINTF1(_L("Testing tx & rx while changing the SMS Receive mode"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 19);
-	
-
+    RSocket socket;
+    iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
+    
 	_LIT(KTestMsg1,"test message, 8bits, length 30");
 
 	//Set destination and SC numbers
@@ -2028,28 +1820,24 @@
     CleanupStack::PushL(smsMessage);
     CSmsMessage* rxSmsMessage=NULL;
 
-    // Open socket
-    RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
-
     // Create comms database object
 #ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_2);
+    CMDBSession* db = CMDBSession::NewL(KCDVersion1_2);
 #else
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_1);
+    CMDBSession* db = CMDBSession::NewL(KCDVersion1_1);
 #endif
     CleanupStack::PushL(db);
-	INFO_PRINTF1(_L("Testing recvMode change to EReceiveModeUnspecified"));
+    INFO_PRINTF1(_L("Testing recvMode change to EReceiveModeUnspecified"));
 
     // Send message & wait a sec(!)
     SendSmsL(smsMessage,socket);
 
     // EReceiveModeUnspecified
-	CMDBField<TUint32>* smsReceiveModeField = new(ELeave) CMDBField<TUint32>(KCDTIdSMSReceiveMode);
-	CleanupStack::PushL(smsReceiveModeField);
-	smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord
-	*smsReceiveModeField = RMobileSmsMessaging::EReceiveModeUnspecified;
-	smsReceiveModeField->ModifyL(*db);
+    CMDBField<TUint32>* smsReceiveModeField = new(ELeave) CMDBField<TUint32>(KCDTIdSMSReceiveMode);
+    CleanupStack::PushL(smsReceiveModeField);
+    smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord
+    *smsReceiveModeField = RMobileSmsMessaging::EReceiveModeUnspecified;
+    smsReceiveModeField->ModifyL(*db);
 
     // Receive message
     rxSmsMessage=RecvSmsL(socket);
@@ -2063,8 +1851,8 @@
     SendSmsL(smsMessage,socket);
 
     // UnstoredPhoneAck
-	*smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredPhoneAck;
-	smsReceiveModeField->ModifyL(*db);
+    *smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredPhoneAck;
+    smsReceiveModeField->ModifyL(*db);
 
     // Receive message
     rxSmsMessage=RecvSmsL(socket);
@@ -2078,8 +1866,8 @@
     SendSmsL(smsMessage,socket);
 
     // UnstoredClientAck
-	*smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck;
-	smsReceiveModeField->ModifyL(*db);
+    *smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck;
+    smsReceiveModeField->ModifyL(*db);
 
     // Receive message
     rxSmsMessage=RecvSmsL(socket);
@@ -2093,8 +1881,8 @@
     SendSmsL(smsMessage,socket);
 
     // Stored
-	*smsReceiveModeField = RMobileSmsMessaging::EReceiveStored;
-	smsReceiveModeField->ModifyL(*db);
+    *smsReceiveModeField = RMobileSmsMessaging::EReceiveStored;
+    smsReceiveModeField->ModifyL(*db);
 
     // Receive message
     rxSmsMessage=RecvSmsL(socket);
@@ -2108,9 +1896,9 @@
     SendSmsL(smsMessage,socket);
 
     // Either
-	*smsReceiveModeField = RMobileSmsMessaging::EReceiveEither;
-	smsReceiveModeField->ModifyL(*db);
-	CleanupStack::PopAndDestroy(smsReceiveModeField);
+    *smsReceiveModeField = RMobileSmsMessaging::EReceiveEither;
+    smsReceiveModeField->ModifyL(*db);
+    CleanupStack::PopAndDestroy(smsReceiveModeField);
 
     // Receive message
     rxSmsMessage=RecvSmsL(socket);
@@ -2120,25 +1908,18 @@
 
     // Cleanup
     CleanupStack::PopAndDestroy(3); // smsMessage, socket, db
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+
+    return TestStepResult() ;
     }
 
-
 TVerdict CTestTsyCaps::doTestStepL()
 /**
  *  Test sms stack when tsy doesn't support anything
  */
 	{
 	INFO_PRINTF1(_L("Test Sms stack when Tsy supports nothing"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 20);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	_LIT(KTestMsg1,"test message, 8bits, length 30");
 
@@ -2147,8 +1928,7 @@
 	iServiceCenterNumber=KRadiolinjaSC;
 
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
-	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 
 	INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber);
 	INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber);
@@ -2200,10 +1980,7 @@
 	INFO_PRINTF2(_L("Read Sms parameters - returned %d"), status.Int());
 	TEST(status.Int() == KErrNotSupported);
 
-
-//
-// Try to store SMS parameters, tsy doesn't support this
-//
+	// Try to store SMS parameters, tsy doesn't support this
 	CMobilePhoneSmspList* smspList=CMobilePhoneSmspList::NewL();
 	CleanupStack::PushL(smspList);
 
@@ -2236,10 +2013,8 @@
 	INFO_PRINTF2(_L("Write Sms parameters - returned %d"), status.Int());
 	TEST(status.Int() == KErrNotSupported);
 
-	CleanupStack::PopAndDestroy(2); //socket, smspList
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+	CleanupStack::PopAndDestroy(2, &socket); //socket, smspList
+ 	return TestStepResult() ;
 	}
 
 TVerdict CTestOOMSendSms::doTestStepL()
@@ -2251,12 +2026,8 @@
 #ifdef _DEBUG
 
 	INFO_PRINTF1(_L("OOM test: Send Sms"));
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 21);
-	
-	
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	//Set destination and SC numbers
 	iTelephoneNumber=KPekka;
@@ -2265,18 +2036,17 @@
 	_LIT(KTestMsg1,"test message, 8bits, length 30");
 
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
-	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 
 	TInt count=0;
 	TInt ret=KErrNoMemory;
 	TInt successfullSends=0;  //maximum expected number of succeeded sends is 2 in TSY config file
 	while ((ret==KErrNoMemory || ret==KErrEof || count < 18) && (successfullSends<2))
 		{
-		socketServer.__DbgFailNext(count);
-		socketServer.__DbgMarkHeap();
+		iSocketServer.__DbgFailNext(count);
+		iSocketServer.__DbgMarkHeap();
 		TRAP(ret,SendSmsDontCheckReturnValueL(smsMessage,socket));
-		socketServer.__DbgMarkEnd(0);
+		iSocketServer.__DbgMarkEnd(0);
 		if(ret==KErrNone)
 			successfullSends++;
 		count++;
@@ -2284,11 +2054,9 @@
 	
 	TEST(ret == KErrNone);
 
-	socketServer.__DbgFailNext(-1); // Reset heap
-
-	CleanupStack::PopAndDestroy(2);	//smsMessage, socket
-
-	CleanupStack::PopAndDestroy(&socketServer);
+	iSocketServer.__DbgFailNext(-1); // Reset heap
+
+	CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage
 
 #endif
 	return TestStepResult() ;
@@ -2301,19 +2069,13 @@
 	{
 	INFO_PRINTF1(_L("OOM test: Write Sms to Store"));
 #ifdef _DEBUG
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 22);
-	
-		
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	// Create and store the message
 	_LIT(KStoreMsg1,"HELLO CHRIS");
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit;
-	CSmsMessage* smsMessage=CreateSmsMessageL(KStoreMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KStoreMsg1,alphabet);
 
 	smsMessage->SetStorage(CSmsMessage::ESmsSIMStorage);
 
@@ -2321,25 +2083,20 @@
 	TInt ret=KErrNoMemory;
 	while (ret==KErrNoMemory || ret==KErrEof || count < 8)
 		{
-		socketServer.__DbgFailNext(count);
-		socketServer.__DbgMarkHeap();
+		iSocketServer.__DbgFailNext(count);
+		iSocketServer.__DbgMarkHeap();
 		TRAP(ret,WriteSmsLeaveIfErrorL(*smsMessage,socket););
-		socketServer.__DbgMarkEnd(0);
+		iSocketServer.__DbgMarkEnd(0);
 		count++;
 		}
 
-	socketServer.__DbgFailNext(-1); // Reset heap
+	iSocketServer.__DbgFailNext(-1); // Reset heap
 	TEST(ret == KErrNone);
-	CleanupStack::PopAndDestroy(2);	//smsMessage, socket
-
-	//Ensure socket server session is closed to remove cache
-    CleanupStack::PopAndDestroy(&socketServer);
-
+	CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage
 #endif
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestOOMReadSms::doTestStepL()
 /**
  *  Test out of memory handling, Read SMS messages
@@ -2347,15 +2104,8 @@
 	{
 	INFO_PRINTF1(_L("OOM test: Read, SMS store ReadAll not supported."));
 #ifdef _DEBUG
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 23);
-	
-	
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
-
-	TInt count, i(0);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	RSmsSocketReadStream readstream(socket);
 	TRequestStatus status;
@@ -2363,21 +2113,20 @@
 	CSmsMessage* smsMessage = NULL;
 
 	TInt numberOfMessages(0);
-	smsMessage = CreateSmsMessageL(_L(""),TSmsDataCodingScheme::ESmsAlphabet7Bit);
-	CleanupStack::PushL(smsMessage);
-
-	count=0;
+	smsMessage = CreateSmsMessageLC(_L(""),TSmsDataCodingScheme::ESmsAlphabet7Bit);
+
+	TInt count=0;
 	TInt ret=KErrNoMemory;
 	while (ret==KErrNoMemory || ret==KErrEof || count < 10)
 		{
-		socketServer.__DbgFailNext(count);
-		socketServer.__DbgMarkHeap();
+		iSocketServer.__DbgFailNext(count);
+		iSocketServer.__DbgMarkHeap();
 		TRAP(ret,numberOfMessages=MakeReadSmsStoreRequestL(socket););
-		socketServer.__DbgMarkEnd(0);
+		iSocketServer.__DbgMarkEnd(0);
 		
 		if (ret==KErrNone)
 			{
-			for (i=0; i<numberOfMessages; i++)
+			for (TInt i=0; i<numberOfMessages; ++i)
 				{
 				TRAPD(ret,readstream >> *smsMessage);
 				TEST(ret == KErrNone);
@@ -2385,17 +2134,17 @@
 				User::WaitForRequest(status);
 				}
 			}
-		count++;
+		++count;
 		}
 
 	CleanupStack::PopAndDestroy(smsMessage);
 	TEST(ret == KErrNone);
-	socketServer.__DbgFailNext(-1); // Reset heap
+	iSocketServer.__DbgFailNext(-1); // Reset heap
 
 	INFO_PRINTF2(_L("%d enumerated messages"), numberOfMessages);
 
 	//Check that test client can read all messages from the stream
-	for(i=0; i< numberOfMessages; i++)
+	for(TInt i=0; i< numberOfMessages; ++i)
 		{
 		CSmsBuffer* buffer=CSmsBuffer::NewL();
 		smsMessage=CSmsMessage::NewL(iFs, CSmsPDU::ESmsDeliver,buffer);
@@ -2409,16 +2158,11 @@
 		CleanupStack::PopAndDestroy(smsMessage);
 		}
 
-	CleanupStack::PopAndDestroy(&socket);	//socket
-
-	//Ensure socket server session is closed to remove cache
-    CleanupStack::PopAndDestroy(&socketServer);
-
+	CleanupStack::PopAndDestroy(&socket);
 #endif
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestOOMReadSmsList::doTestStepL()
 /**
  *  Test out of memory handling, Read SMS messages from store
@@ -2426,15 +2170,8 @@
 	{
 	INFO_PRINTF1(_L("OOM test: Read, SMS store ReadAll not supported."));
 #ifdef _DEBUG
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 24);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
-
-	TInt count, i(0);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	RSmsSocketReadStream readstream(socket);
 	TRequestStatus status;
@@ -2442,23 +2179,21 @@
 	CSmsMessage* smsMessage = NULL;
 
 	TInt numberOfMessages(0);
-	smsMessage = CreateSmsMessageL(_L(""),TSmsDataCodingScheme::ESmsAlphabet7Bit);
-	CleanupStack::PushL(smsMessage);
-
-	count=0;
+	smsMessage = CreateSmsMessageLC(_L(""),TSmsDataCodingScheme::ESmsAlphabet7Bit);
+
+	TInt count=0;
 	TInt ret=KErrNoMemory;
 	while (ret==KErrNoMemory || ret==KErrEof || count < 10)
 		{
-		
-		socketServer.__DbgFailNext(count);
-		socketServer.__DbgMarkHeap();
+		iSocketServer.__DbgFailNext(count);
+		iSocketServer.__DbgMarkHeap();
 		TRAP(ret,numberOfMessages=MakeReadSmsStoreRequestL(socket););
-		socketServer.__DbgMarkEnd(0);
+		iSocketServer.__DbgMarkEnd(0);
 		
 		if (ret==KErrNone)
 			{
 			//Check that test client can read all messages from the stream
-			for (i=0; i<numberOfMessages; i++)
+			for (TInt i=0; i<numberOfMessages; ++i)
 				{
 				TRAPD(ret,readstream >> *smsMessage);
 				TEST(ret == KErrNone);
@@ -2467,27 +2202,22 @@
 				TEST(status.Int() == KErrNone);
 				}
 			}
-		count++;
+		++count;
 		}
 
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	TEST(ret == KErrNone);
 
-	socketServer.__DbgFailNext(-1); // Reset heap
+	iSocketServer.__DbgFailNext(-1); // Reset heap
 
 	INFO_PRINTF2(_L("%d enumerated messages"), numberOfMessages);
 
-	CleanupStack::PopAndDestroy(&socket);	//socket
-
-	//Ensure socket server session is closed to remove cache
-    CleanupStack::PopAndDestroy(&socketServer);
-
+	CleanupStack::PopAndDestroy(&socket);
 #endif
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestOOMDeleteSms::doTestStepL()
 /**
  *  Test out of memory handling, Delete SMS message
@@ -2495,13 +2225,8 @@
 	{
 	INFO_PRINTF1(_L("OOM test: Delete SMS message."));
 #ifdef _DEBUG
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 25);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrLocalOperation);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrLocalOperation);
 
 	// First get one message from store.
 	RPointerArray<CSmsMessage> messages;
@@ -2513,54 +2238,45 @@
 	TInt ret=0;
 	while (ret==KErrNoMemory || ret==KErrEof || i<messages.Count())
 		{
-		socketServer.__DbgFailNext(count);
-		socketServer.__DbgMarkHeap();
+		iSocketServer.__DbgFailNext(count);
+		iSocketServer.__DbgMarkHeap();
 		TRAP(ret,DeleteSmsLeaveIfErrorL(*messages[i],socket));
-		socketServer.__DbgMarkEnd(0);
+		iSocketServer.__DbgMarkEnd(0);
 		
 		if(ret == KErrNone)
+		    {
 			//Deleting was successfull. Delete next message.
-
-			i++;
+			++i;
+		    }
 		else if(ret == KErrNotFound)
+		    {
 			//SMS Prot has deleted message, but returned KErrNoMemory.
 			//When test harness tried to delete same message again, SMS stack
 			//returned KErrNotFound.
 			TEST(ret == KErrNone);
-		count++;
+		    }
+		++count;
 		}
 
-	socketServer.__DbgFailNext(-1); // Reset heap
+	iSocketServer.__DbgFailNext(-1); // Reset heap
 	messages.ResetAndDestroy();
 	ReadSmsStoreL(socket, messages);
 
 	TEST(messages.Count()== 0);
-	CleanupStack::PopAndDestroy(2);	//messages,socket
-
-	//Ensure socket server session is closed to remove cache
-    CleanupStack::PopAndDestroy(&socketServer);
-    
+	CleanupStack::PopAndDestroy(2, &socket); // socket, messages
 #endif
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestOOMSmsParams::doTestStepL()
 /**
  *  Test out of memory handling, Retrieve and store SMS parameters
  */
 	{
-	INFO_PRINTF1(_L("OOM test: Read and Store Sms params."));
 #ifdef _DEBUG
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 26);
-	
-
-	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrLocalOperation);
-
-	TInt count;
+    INFO_PRINTF1(_L("OOM test: Read and Store Sms params."));
+    RSocket socket;
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrLocalOperation);
 
 	RSmsSocketReadStream readstream(socket);
 	TRequestStatus status;
@@ -2570,17 +2286,17 @@
 
 	INFO_PRINTF1(_L("Retrieve SMS parameters."));
 
-	count=0;
+	TInt count = 0;
 	TInt ret=KErrNoMemory;
 	while (ret==KErrNoMemory || ret==KErrEof || count < 8)
 		{
-		socketServer.__DbgFailNext(count);
-		socketServer.__DbgMarkHeap();		
+		iSocketServer.__DbgFailNext(count);
+		iSocketServer.__DbgMarkHeap();		
 		TRAP(ret,iSmsStackTestUtils->MakeParametersReadRequestL(socket););
-		socketServer.__DbgMarkEnd(0);
+		iSocketServer.__DbgMarkEnd(0);
 		count++;
 		}
-	socketServer.__DbgFailNext(-1);	// suppress any lurking heap failure
+	iSocketServer.__DbgFailNext(-1);	// suppress any lurking heap failure
 
 	TEST(ret == KErrNone);
 
@@ -2592,9 +2308,9 @@
 
 	CleanupStack::PopAndDestroy(smspList);
 
-//
-//Store parameters
-//
+	//
+	//Store parameters
+	//
 	smspList=CMobilePhoneSmspList::NewL();
 	CleanupStack::PushL(smspList);
 
@@ -2621,19 +2337,19 @@
 	ret=KErrNoMemory;
 	while (ret==KErrNoMemory || count < 10)
 		{
-		socketServer.__DbgFailNext(count);
-		socketServer.__DbgMarkHeap();
+		iSocketServer.__DbgFailNext(count);
+		iSocketServer.__DbgMarkHeap();
 		TRAP(ret,iSmsStackTestUtils->StoreParamsLeaveIfErrorL(*smspList,socket););
-		socketServer.__DbgMarkEnd(0);
+		iSocketServer.__DbgMarkEnd(0);
 		count++;
 		}
 
 	TEST(ret == KErrNone);
 
-	socketServer.__DbgFailNext(-1); // Reset heap
-//
-// Retrieve SMS parameters again and test the content of params
-//
+	iSocketServer.__DbgFailNext(-1); // Reset heap
+	//
+	// Retrieve SMS parameters again and test the content of params
+	//
 	//Wait a second, OOM macro is still closing!!
 	INFO_PRINTF1(_L("Retrieve parameters again..."));
 
@@ -2656,16 +2372,11 @@
 	ret = iSmsStackTestUtils->TestParameters(*smspList,*smspList2);
 	TEST(ret == KErrNone);
 
-	CleanupStack::PopAndDestroy(3);  //smspList2, smspList, socket
-
-	//Ensure socket server session is closed to remove cache
-    CleanupStack::PopAndDestroy(&socketServer);
-
+	CleanupStack::PopAndDestroy(3, &socket);  //smspList2, smspList, socket
 #endif
 	return TestStepResult();
 	}
 
-
 //
 // Integration test harnesses against SIM tsy
 //
@@ -2676,14 +2387,9 @@
  */
 	{
 	INFO_PRINTF1(_L("Test the ME store containing duplicated and missing pdus"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 27);
-	
-
 	// Open the socket for SIM operations
 	RSocket enumSocket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,enumSocket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, enumSocket, ESmsAddrLocalOperation);
 
 	// Enumerate messages
 	RPointerArray<CSmsMessage> messages;
@@ -2695,7 +2401,7 @@
 	CleanupStack::PopAndDestroy(&enumSocket);
 
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	INFO_PRINTF1(_L("waiting for 1st incoming SMS...") );
 	WaitForRecvL(socket);
@@ -2718,14 +2424,11 @@
     delete smsMessage;
 
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	INFO_PRINTF1(_L("Additional waiting SMS protocol to get unloaded"));
-	User::After(20000000);
+ 	INFO_PRINTF1(_L("Additional waiting SMS protocol to get unloaded"));
+	User::After(20000000); // TODO: reviewers - is this needed here?
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestSimStoreDupAndMiss::doTestStepL()
 /**
  *  Test ME store containing concatenated messages when
@@ -2733,14 +2436,9 @@
  */
 	{
 	INFO_PRINTF1(_L("Test the ME store containing duplicated and missing pdus"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 28);
-	
-
 	// Open the socket for SIM operations
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrLocalOperation);
 
 	// Enumerate messages
 	RPointerArray<CSmsMessage> messages;
@@ -2770,35 +2468,25 @@
 	message = messages[0];
 	ret = DeleteSmsL(*message, socket);
 	TEST(ret == KErrNone);
-
 	messages.ResetAndDestroy();
 
 	ReadSmsStoreL(socket, messages);
-
 	TEST(messages.Count() == 4);
 
 	CleanupStack::PopAndDestroy(&messages);
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+ 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestRxCphs::doTestStepL()
 /**
  *  Test the reception of a CPHS Message Waiting Indication
  */
 	{
 	INFO_PRINTF1(_L("Test Rx Message Waiting Cphs"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 30);
-	
-
-	// Open the socket for SIM operations
+	// Open the socket for Address Message Indications
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrMessageIndication);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrMessageIndication);
 
 	INFO_PRINTF1(_L("...waiting for incoming Message Waiting Indicator Cphs...") );
 	WaitForRecvL(socket);
@@ -2817,19 +2505,15 @@
 	TEST(((address.iTelNumber[2] & 0x7E) == 0x10));
 	TEST(((address.iTelNumber[3] & 0x7E) == 0x00));
 
-
 	//test for the user data: space and then free-format text
 	_LIT(KTestSingleSpace," ");
 	TestSmsContentsL(smsMessage,KTestSingleSpace);
 	INFO_PRINTF1(_L("Successful Match of Message Waiting Indicator Cphs") );
 
-	CleanupStack::PopAndDestroy(2); // socket, smsMessage
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+	CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage
+ 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestInvalidPDUs::doTestStepL()
 /**
  *  Test receiving invalid pdus.
@@ -2837,13 +2521,8 @@
  */
 	{
 	INFO_PRINTF1(_L("Test receiving invalid pdus"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 31);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 	_LIT(KTestMsg1,"test message, 8bits, length 30");
 	_LIT(KTestMsg2,"Voicemail waiting");
 
@@ -2855,8 +2534,6 @@
 		INFO_PRINTF2(_L("waiting for incoming SMS No. %d..."), i);
 		WaitForRecvL(socket);
 		smsMessage = RecvSmsL(socket);
-
-		INFO_PRINTF1(_L("incoming SMS") );
 		CleanupStack::PushL(smsMessage);
 
 		if (i!=10 && i!= 16)
@@ -2867,29 +2544,21 @@
 		if (i==12)
 			TestSmsContentsL(smsMessage, KTestMsg2);
 		CleanupStack::PopAndDestroy(smsMessage);
-		i++;
+		++i;
 		}
 
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+ 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestStress::doTestStepL()
 /**
  *  Test Transmit and Receive large number of different messages
  */
 	{
 	INFO_PRINTF1(_L("Test Tx and Rx large number of messages"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 32);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	_LIT(KTestMsg1,"test message, 8bits, length 30");
 
@@ -2898,38 +2567,32 @@
 	iServiceCenterNumber=KRadiolinjaSC;
 
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
-	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 
 	INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber);
 	INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber);
 
-	INFO_PRINTF1(_L("Send large number of messages"));
+	INFO_PRINTF1(_L("Send large number (20) of messages"));
 
 	TInt i(0);
-	//Send SMSes
 	while (i<20)
 		{
 		SendSmsL(smsMessage,socket);
-		i++;
+		++i;
 		}
 
 	CleanupStack::PopAndDestroy(smsMessage);
 
-	INFO_PRINTF1(_L("Receive large number of messages"));
-	//Receive SMSes
+	INFO_PRINTF1(_L("Receive large number (20) of messages"));
 	while (i!=0)
 		{
-		INFO_PRINTF1(_L("waiting for incoming SMS...") );
 		WaitForRecvL(socket);
 		smsMessage = RecvSmsL(socket);
-
-		INFO_PRINTF1(_L("incoming SMS") );
-
 		CleanupStack::PushL(smsMessage);
+
 		TestSmsContentsL(smsMessage,KTestMsg1);
 		CleanupStack::PopAndDestroy(smsMessage);
-		i--;
+		--i;
 		}
 
 	_LIT(KTest7bitMsg,"test message, length 23"); //7 bits test message, length 23 characters
@@ -2939,8 +2602,7 @@
 	iServiceCenterNumber=KSoneraSC;
 
 	alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit;
-	smsMessage=CreateSmsMessageL(KTest7bitMsg,alphabet);
-	CleanupStack::PushL(smsMessage);
+	smsMessage=CreateSmsMessageLC(KTest7bitMsg,alphabet);
 
 	//Set status report request
 	CSmsSubmit& submitPdu=(CSmsSubmit&)smsMessage->SmsPDU();
@@ -2949,55 +2611,50 @@
 	INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber);
 	INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber);
 
-	INFO_PRINTF1(_L("Send large number of messages"));
-	//Send SMSes
+	INFO_PRINTF1(_L("Send large number (40) of messages"));
 	while (i<40)
 		{
 		SendSmsL(smsMessage,socket);
-		i++;
+		++i;
 		}
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	//Receive status report
 	TSmsServiceCenterAddress telephoneNumber(KPekka);
 
-	INFO_PRINTF1(_L("Receive large number of messages"));
-	//Receive SMSes
+	INFO_PRINTF1(_L("Receive large number (40) of messages"));
 	while (i!=0)
 		{
-		INFO_PRINTF1(_L("waiting for incoming SMS...") );
 		WaitForRecvL(socket);
 		smsMessage = RecvSmsL(socket);
-
-		INFO_PRINTF1(_L("incoming SMS") );
-
 		CleanupStack::PushL(smsMessage);
+		
 		TestSmsContentsL(smsMessage,KTest7bitMsg);
 		CleanupStack::PopAndDestroy(smsMessage);
-		i--;
+		--i;
 		//Receive status report
 		RecvStatusReportL(telephoneNumber, socket);
 		}
 
-//Tx and rx concatenated message & status report
+	//Tx and rx concatenated message & status report
 	_LIT(KLongText,"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"The End.");
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"The End.");
 
 	//Set destination and SC numbers
 	iTelephoneNumber=KRegTestNumber;
@@ -3012,55 +2669,52 @@
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	INFO_PRINTF1(_L("Recv concatenated message and status report"));
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
-
-	INFO_PRINTF1(_L("incoming SMS") );
-
 	CleanupStack::PushL(smsMessage);
+	
 	TestSmsContentsL(smsMessage,KLongText);
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	telephoneNumber.Copy( KRegTestNumber );
 	RecvStatusReportL(telephoneNumber, socket);
 
-//Tx and rx longer concatenated message & status report
+	//Tx and rx longer concatenated message & status report
 	_LIT(KLongText2,"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"7 PDU test SMS message. "
-L"The End.");
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"7 PDU test SMS message. "
+	        L"The End.");
 
 	//Set destination and SC numbers
 	iTelephoneNumber=KPekka;
@@ -3068,20 +2722,17 @@
 
 	alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
 	smsMessage=CreateSmsWithStatusReportReqL(KLongText2,alphabet);
-
 	CleanupStack::PushL(smsMessage);
+
 	INFO_PRINTF1(_L("Send concatenated message"));
 	SendSmsL(smsMessage,socket);
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	INFO_PRINTF1(_L("Recv concatenated message and status report"));
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
-
-	INFO_PRINTF1(_L("incoming SMS") );
-
 	CleanupStack::PushL(smsMessage);
+	
 	TestSmsContentsL(smsMessage,KLongText2);
 
 	telephoneNumber.Copy( KPekka );
@@ -3125,28 +2776,19 @@
     
     CleanupStack::PopAndDestroy(logEvent);
     CleanupStack::PopAndDestroy(smsMessage);        
-	
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestCombinedStore::doTestStepL()
 /**
  *  Test combined store.
  */
 	{
 	INFO_PRINTF1(_L("Test Combined SMS Store"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 33);
-	
-
 	// Open the socket for SIM operations
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrLocalOperation);
 
 	// Enumerate messages. Concatenated message with constituent PDUs is stored to the SIM, Phone store and
 	// Combined store. Also one normal single part message is stored to Combined store.
@@ -3178,32 +2820,30 @@
 	// Create and write message to the Combined store
 	_LIT(KStoreMsg1,"Store MSG to combined store");
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit;
-	CSmsMessage* smsmessage1=CreateSmsMessageL(KStoreMsg1,alphabet);
-	CleanupStack::PushL(smsmessage1);
+	CSmsMessage* smsmessage1=CreateSmsMessageLC(KStoreMsg1,alphabet);
 	smsmessage1->SetStorage(CSmsMessage::ESmsCombinedStorage);
 	WriteSmsToSimL(*smsmessage1, socket);
 
 	// Create and write concatenated message to the Combined store
 	_LIT(KStoreMsg2,"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"The End.");
-	CSmsMessage* smsmessage2=CreateSmsMessageL(KStoreMsg2,alphabet);
-	CleanupStack::PushL(smsmessage2);
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"3 PDU test SMS message. "
+	        L"The End.");
+	CSmsMessage* smsmessage2=CreateSmsMessageLC(KStoreMsg2,alphabet);
 	smsmessage2->SetStorage(CSmsMessage::ESmsCombinedStorage);
 	WriteSmsToSimL(*smsmessage2, socket);
 
@@ -3227,13 +2867,10 @@
 	ReadSmsStoreL(socket, messages);
 	TEST(messages.Count()==0);
 
-	CleanupStack::PopAndDestroy(4);	//socket, messages, smsmessage1, smsmessage2
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+	CleanupStack::PopAndDestroy(4, &socket);	//socket, messages, smsmessage1, smsmessage2
+    return TestStepResult() ;
 	}
 
-
 TVerdict CTestParamsInter::doTestStepL()
 /**
  *  Test retrieving and storing the sms parameters.
@@ -3241,20 +2878,15 @@
  */
 	{
 	INFO_PRINTF1(_L("Parameter storage data testing"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 34);
-	
-
 	TInt ret(KErrNone);
     TRequestStatus status;
 
-//
-// Retrieve SMS parameters
-//
+    //
+    // Retrieve SMS parameters
+    //
 	// Open the socket for SIM operations
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrLocalOperation);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrLocalOperation);
 
     RSmsSocketReadStream readstream(socket);
 
@@ -3278,9 +2910,9 @@
     User::WaitForRequest(status);
 	TEST(status.Int() == KErrNone);
 
-//
-// Store SMS parameters
-//
+	//
+	// Store SMS parameters
+	//
 	CMobilePhoneSmspList* smspList = CMobilePhoneSmspList::NewL();
 	CleanupStack::PushL(smspList);
 
@@ -3353,9 +2985,9 @@
     ret = iSmsStackTestUtils->StoreParamsL(*smspList,socket,EFalse);
 	TEST(ret == KErrNone);
 
-//
-// Retrieve SMS parameters again
-//
+	//
+	// Retrieve SMS parameters again
+	//
 	CMobilePhoneSmspList* smspList2=CMobilePhoneSmspList::NewL();
 	CleanupStack::PushL(smspList2);
 
@@ -3376,9 +3008,9 @@
 
 	CleanupStack::PopAndDestroy(2);	//smspList,smspList2
 
-//
-// Store original SMS parameters to the SIM
-//
+	//
+	// Store original SMS parameters to the SIM
+	//
 
     INFO_PRINTF1(_L("storing the original SMS parameters...") );
 
@@ -3386,26 +3018,18 @@
     ret = iSmsStackTestUtils->StoreParamsL(*smspListOriginal,socket,EFalse);
 	TEST(ret == KErrNone);
 
-	CleanupStack::PopAndDestroy(2); // socket,smspListOriginal
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+	CleanupStack::PopAndDestroy(2, &socket); // socket,smspListOriginal
+ 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestTxRxAlphanumeric::doTestStepL()
 /**
  *  Test a Tx And Rx of messages with alphanumeric dest/orig addresses
  */
 	{
 	INFO_PRINTF1(_L("Test Tx And Rx SMSes with Alphanumeric originator address"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 35);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	_LIT(KTestMsg1,"test message, 8bits, length 30");
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
@@ -3431,8 +3055,7 @@
 		{
 		iTelephoneNumber=destinationNumbers[i];
 
-		txSms=CreateSmsMessageL(KTestMsg1,alphabet);
-		CleanupStack::PushL(txSms);
+		txSms=CreateSmsMessageLC(KTestMsg1,alphabet);
 
 		gsmSmsTelNumber.iTelNumber.Copy(iTelephoneNumber);
 
@@ -3444,17 +3067,19 @@
 
 		//Send SMS
 		if(i!=0)
-			SendSmsL(txSms,socket);
+		    {
+            SendSmsL(txSms,socket);
+		    }
 		else
+		    {
 			SendSmsErrorL(txSms,socket);
-
+		    }
+		
 		if(i!=0)
 			{
 			INFO_PRINTF2(_L("waiting for incoming SMS No. %d..."), i);
 			WaitForRecvL(socket);
 			rxSms = RecvSmsL(socket);
-
-			INFO_PRINTF1(_L("incoming SMS") );
 			CleanupStack::PushL(rxSms);
 
 			TestSmsContentsL(rxSms,KTestMsg1);
@@ -3472,29 +3097,26 @@
 			CleanupStack::PopAndDestroy(rxSms);
 			}
 		CleanupStack::PopAndDestroy(txSms);
-		i++;
+		++i;
 		}
 
-	CleanupStack::PopAndDestroy(2); //socket, destinationNumbers
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+	CleanupStack::PopAndDestroy(2, &socket); //socket, destinationNumbers
+ 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestRxSuspend::doTestStepL()
 /**
  *  Test suspend receiving messages
  */
 	{
 	const TInt testNumber = 36;
-	const TInt smsRxCount = KDefaultMaxmumNumberOfCompleteMessagesInReassemblyStore + 1; //< Number of messages that will cause a suspend
+	const TInt smsRxCount = KDefaultMaxmumNumberOfCompleteMessagesInReassemblyStore + 1; // Number of messages that will cause a suspend
 
 	//Add smsRxCount SmsRx tags to c:\config.txt, taking KTSmsPrtConfigFileName as input
 	CTestConfig* configFile = CTestConfig::NewLC(iFs, KGmsSmsConfigFileDir, KTSmsPrtConfigFileName);
 
 	TInt i(0);
-	for (i = 0; i < smsRxCount; i++)
+	for (i = 0; i < smsRxCount; ++i)
 		{
 		_LIT(KTestRxSuspendMessage, "TestRxSuspendMessage %d");
 		TBuf<32> buf;
@@ -3515,37 +3137,38 @@
 
 	CleanupStack::PopAndDestroy(configFile);
 
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, testNumber);
+	// Set the test number. SIMTSY will re-configure itself
+	SetSimTSYTestNumberL(testNumber);
 	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	INFO_PRINTF1(_L("Test suspend receiving messages"));
 
 	CSmsMessage* smsMessage;
-	for (i = 0; i < smsRxCount; i++)
+	for (i = 0; i < smsRxCount; ++i)
 		{
 		INFO_PRINTF2(_L("%d Waiting for incoming SMS..."), i);
 		WaitForRecvL(socket);
 		smsMessage = RecvSmsL(socket, KIoctlReadMessageFailed);
-
-		PrintSmsMessage(*smsMessage);
-		delete smsMessage;
+		CleanupStack::PushL(smsMessage);
+
+		PrintMessageL(smsMessage);
+		CleanupStack::PopAndDestroy(smsMessage);
 
 		INFO_PRINTF3(_L("%d Waiting %d secs for next message"), i, rxPeriod);
 		User::After(rxPeriod * 1000000);
 		}
 
-	for (i = 0; i < smsRxCount; i++)
+	for (i = 0; i < smsRxCount; ++i)
 		{
 		INFO_PRINTF2(_L("%d Waiting for incoming SMS..."), i);
 		WaitForRecvL(socket);
 		smsMessage = RecvSmsL(socket, KIoctlReadMessageSucceeded);
-
-		PrintSmsMessage(*smsMessage);
-		delete smsMessage;
+		CleanupStack::PushL(smsMessage);
+
+		PrintMessageL(smsMessage);
+        CleanupStack::PopAndDestroy(smsMessage);
 		}
 
 	INFO_PRINTF2(_L("Waiting %d secs to see if other (unexpected) message received"), rxPeriod * 3);
@@ -3555,28 +3178,21 @@
 		{
 		INFO_PRINTF1(_L("Unexpected message received:"));
 		smsMessage = RecvSmsL(socket, KIoctlReadMessageSucceeded);
-		PrintSmsMessage(*smsMessage);
-		delete smsMessage;
+		CleanupStack::PushL(smsMessage);
+		PrintMessageL(smsMessage);
+        CleanupStack::PopAndDestroy(smsMessage);
 		}
 
 	TEST(!otherReceived);
 
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestEnumerateCorrupted::doTestStepL()
 	{
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 37);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	// Enumerate messages
 	RPointerArray<CSmsMessage> messages;
@@ -3589,12 +3205,9 @@
 	messages.ResetAndDestroy();
 	CleanupStack::PopAndDestroy(&messages);
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+  	return TestStepResult() ;
 	}
 
-
 TVerdict CTestCancelling::doTestStepL()
 	{
 	/*This test harness has been created to reproduce  HOE-573FF6 that has been closed
@@ -3603,15 +3216,11 @@
 	note: the message count will keep increasing as the socket is not emptied
 	*/
 	INFO_PRINTF1(_L("Test Cancelling requests"));
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 38);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	RSocket socket2;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket2,ESmsAddrLocalOperation);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket2,ESmsAddrLocalOperation);
 	RSmsSocketWriteStream writestream(socket);
 
 	RPointerArray<CSmsMessage> messages;
@@ -3619,27 +3228,24 @@
 
 	_LIT(KStoreMsg1,"SIM TEST MESSAGE 1");
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit;
-	CSmsMessage* smsmessage=CreateSmsMessageL(KStoreMsg1,alphabet);
-	CleanupStack::PushL(smsmessage);
+	CSmsMessage* smsmessage=CreateSmsMessageLC(KStoreMsg1,alphabet);
 	smsmessage->SetStorage(CSmsMessage::ESmsSIMStorage);
 
 	TPckgBuf<TUint> sbuf;
 	TRequestStatus status;
-//***********************************************************
+
 	INFO_PRINTF1(_L("testing cancel send message"));
 
 	writestream << *smsmessage;
 	writestream.CommitL();
 
 	socket.Ioctl(KIoctlSendSmsMessage,status,&sbuf, KSolSmsProv);
-	INFO_PRINTF1(_L("Cancel"));
+	INFO_PRINTF1(_L("Cancel send request"));
 	socket.CancelIoctl();
 	User::WaitForRequest(status);
-	TEST(status.Int()==KErrCancel);
+	TESTCHECK(status.Int(), KErrCancel, "Cancel send request");
 	//need to check here if the message has actually been sent
 
-
-//************************************************************
 	INFO_PRINTF1(_L("testing cancel Delete message"));
 
 	ReadSmsStoreL(socket, messages);
@@ -3653,13 +3259,9 @@
 	INFO_PRINTF1(_L("Cancel"));
 	User::After(300000);
 	socket.CancelIoctl();
-
 	User::WaitForRequest(status);
-	TEST(status.Int()==KErrCancel);
-	INFO_PRINTF1(_L("Cancel successfully"));
-
-
-//****************************************************
+    TESTCHECK(status.Int(), KErrCancel, "Cancel delete request");
+
 	INFO_PRINTF1(_L("testing cancel write message"));
 
 	writestream << *smsmessage;
@@ -3673,21 +3275,22 @@
 	CleanupStack::PopAndDestroy(&messages);
 	CleanupStack::PopAndDestroy(&socket2);
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestSendAndRecvMsgsWithDifferentTON::doTestStepL()
 /**
  *  @test Send and receive messages with different type of number
  */
 	{
+    // TODO: replace the following two lines with 
+    // in-script commands(copy file, ParseSettingsFromFileL is called from preample) 
 	iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtConfigExtraFileName);
 	ParseSettingsFromFileL();
+	
 	TBool found( ETrue );
 	TInt count( 0 );
+	
 	while( found )
 		{
 		//run the test
@@ -3697,7 +3300,6 @@
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestSendAndReceiveIndicatorMsgs::doTestStepL()
 	{
 	iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtConfigExtraFileName);
@@ -3713,42 +3315,34 @@
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestSendRecvMaxLengthMsg::doTestStepL()
     {
     INFO_PRINTF1(_L("Sending max length SMS can take a while ... get a cup of coffee or two :-)"));
 	iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtConfigTxRxMaxMsgFileName);
-
 	ParseSettingsFromFileL();
-
-	RSocketServ socketServer;
-
-	PrepareRegTestLC(socketServer, 42);
 	
+	const TInt testNumber = 42;
+	SetSimTSYTestNumberL(testNumber);
 
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	HBufC* textBuf=HBufC::NewL(39015);
 	CleanupStack::PushL(textBuf);
 	TPtr textPtr=textBuf->Des();
 	TInt i;
-	for(i=0;i<255;i++)
+	for(i=0; i<255; ++i)
 		{
 		textPtr.Append(KText);
 		}
 
 	SendAndRecvSms7BitL(textPtr,socket);
-
-	CleanupStack::PopAndDestroy(2);
-    CleanupStack::PopAndDestroy(&socketServer);
+	CleanupStack::PopAndDestroy(2, &socket); // socket, textBuf
 
 	iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtConfigFileName);
-
 	return TestStepResult() ;
     }
 
-
 TVerdict CTestSendAndRecvMsgsWithDifferentPID::doTestStepL()
 /**
  *  @test Send and receive messages with different type of protocol identifier
@@ -3758,22 +3352,19 @@
 	ParseSettingsFromFileL();
 
     INFO_PRINTF1(_L("Send and receive messages with different type of TP-PID"));
-
-	RSocketServ socketServer;
-
-	PrepareRegTestLC(socketServer, 41);
-	
+    
+    const TInt testNumber = 41;
+    SetSimTSYTestNumberL(testNumber);
 
 	RSocket sendSocket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,sendSocket,ESmsAddrSendOnly);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,sendSocket,ESmsAddrSendOnly);
 
 	_LIT(KTestMsg,"Test message.");
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit;
-	CSmsMessage* sendMessage=CreateSmsMessageL(KTestMsg,alphabet);
-	CleanupStack::PushL(sendMessage);
+	CSmsMessage* sendMessage=CreateSmsMessageLC(KTestMsg,alphabet);
     CSmsSubmit& submitPdu=(CSmsSubmit&)sendMessage->SmsPDU();
 
-// TP-PID is telex (or teletex reduced to telex format)
+    // TP-PID is telex (or teletex reduced to telex format)
 	submitPdu.SetPIDType(TSmsProtocolIdentifier::ESmsPIDTelematicInterworking);
 	submitPdu.SetTelematicDeviceIndicator(TSmsProtocolIdentifier::ESmsTelematicDevice);
 	submitPdu.SetTelematicDeviceType(TSmsProtocolIdentifier::ESmsTelex);
@@ -3781,9 +3372,8 @@
 	SendSmsL(sendMessage,sendSocket);
 
 	RSocket recvSocket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,recvSocket,ESmsAddrRecvAny);
-
-	INFO_PRINTF1(_L("Waiting for incoming SMS...") );
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,recvSocket,ESmsAddrRecvAny);
+
 	WaitForRecvL(recvSocket);
 	CSmsMessage* recvMessage = RecvSmsL(recvSocket);
 	CleanupStack::PushL(recvMessage);
@@ -3794,9 +3384,9 @@
 	TEST(deliverPdu1.TelematicDeviceIndicator() == submitPdu.TelematicDeviceIndicator());
 	TEST(deliverPdu1.TelematicDeviceType() == submitPdu.TelematicDeviceType());
 
-	CleanupStack::PopAndDestroy(2);	//recvSocket,recvMessage
-
-// TP-PID is Replace Short Message Type 1
+	CleanupStack::PopAndDestroy(2, &recvSocket); //recvSocket, recvMessage
+
+	// TP-PID is Replace Short Message Type 1
 	submitPdu.SetPIDType(TSmsProtocolIdentifier::ESmsPIDShortMessageType);
 	submitPdu.SetShortMessageType(TSmsProtocolIdentifier::ESmsReplaceShortMessageType1);
 	INFO_PRINTF1(_L("Send SMS message. TP-PID is Replace Short Message Type 1") );
@@ -3806,7 +3396,7 @@
 	SendSmsL(sendMessage,sendSocket);
 
 	INFO_PRINTF1(_L("Open ESmsAddrRecvAny socket and receive messages") );
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,recvSocket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,recvSocket,ESmsAddrRecvAny);
 
 	INFO_PRINTF1(_L("Waiting for incoming SMS...") );
 	WaitForRecvL(recvSocket);
@@ -3831,7 +3421,6 @@
 	/*I beleive the above is wrong, the sms stack does not care about the PID and just passes the message
 	it is up to the applicatio to do that check; therefore the 2 replace messages are received -Pierre*/
 
-
 	WaitForRecvL(recvSocket);
 	recvMessage = RecvSmsL(recvSocket);
 	CleanupStack::PushL(recvMessage);
@@ -3842,40 +3431,43 @@
 	TEST(deliverPdu3.ShortMessageType() == submitPdu.ShortMessageType());
 	CleanupStack::PopAndDestroy(recvMessage);
 
-	CleanupStack::PopAndDestroy(3);	//socketServer,sendSocket,sendMessage,recvSocket
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtConfigFileName);
+	CleanupStack::PopAndDestroy(3, &sendSocket);	// sendSocket,sendMessage,recvSocket
+    iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtConfigFileName);
 	return TestStepResult() ;
 	}
 
-
-TVerdict CSmsParamsErrorCases::doTestStepL()
+TVerdict CTestSmsParamsErrorCases::doTestStepL()
  /**
   *  Test SMS parameters while error returned from TSY.
   *  Manual function moved from t_sms_inter_auto test suite.
   */
 	{
-	INFO_PRINTF1(_L("Test SMS prameters while eror returned from TSY"));
+	INFO_PRINTF1(_L("Test SMS prameters while error returned from TSY"));
 	iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtConfigExtraFileName);
+	
 	const TInt testNumber = 43;         // or any number it reaches
 	CTestConfig* configFile = CTestConfig::NewLC(iFs, KGmsSmsConfigFileDir, KTSmsPrtConfigExtraFileName);
+	
 	CTestConfigSection& section = iSmsStackTestUtils->GetSectionL(*configFile, testNumber);
 	TInt param = section.ItemValue(KSmspEntryValidParams, 2);
+	
 	RMobileSmsMessaging::TMobileSmspStoreValidParams smspEntryValidParams = ( RMobileSmsMessaging::TMobileSmspStoreValidParams )param;
 	param = section.ItemValue(KSmspEntryScTypeOfNumber, 1);
+	
 	RMobilePhone::TMobileTON smspEntryScTypeOfNumber = ( RMobilePhone::TMobileTON )param;
 	param = section.ItemValue(KSmspEntryScNumberPlan, 1);
+	
 	RMobilePhone::TMobileNPI smspEntryScNumberPlan = ( RMobilePhone::TMobileNPI )param;
 	const TDesC8& smspEntryScTelNumber = section.ItemValue(KServiceCentreAddress, (_L8("+358508771010")));
 
 	TestSmsParamsErrorCasesL(smspEntryValidParams, smspEntryScTypeOfNumber, smspEntryScNumberPlan, smspEntryScTelNumber);
+	
 	CleanupStack::PopAndDestroy(configFile);
 	iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtConfigFileName);
 	return TestStepResult() ;
 	}
 
-void CSmsParamsErrorCases::TestSmsParamsErrorCasesL(
+void CTestSmsParamsErrorCases::TestSmsParamsErrorCasesL(
 		RMobileSmsMessaging::TMobileSmspStoreValidParams aSmspEntryValidParams,
 		RMobilePhone::TMobileTON aSmspEntryScTypeOfNumber,
 		RMobilePhone::TMobileNPI aSmspEntryScNumberPlan,
@@ -3885,25 +3477,44 @@
  */
     {
     INFO_PRINTF1(_L("TSY returns error to retrieve and store SMSP list requests"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer,43);
-	
-
+    
+    const TInt testNumber = 43;
+    SetSimTSYTestNumberL(testNumber);
+    
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrLocalOperation);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrLocalOperation);
 
 	RSmsSocketReadStream readstream(socket);
 	TRequestStatus status;
 
-//
-//Retrieve SMSP list
-//
-    // Make read SMS params request to the SMS Stack.
-    socket.Ioctl(KIoctlReadSmsParams,status,NULL, KSolSmsProv);
+    TBool tryAgain = ETrue;
+    TInt attempts (0);
+    TInt maxRetries = 3;
+	
+    //
+	//Retrieve SMSP list
+	//
+	
+    // Make read SMS params request to the SMS Stack. If it fails with KErrNotReady wait for 3 seconds to 
+    // allow sms protocol to fully load and repeat
     INFO_PRINTF1(_L("Waiting for SMS parameters...") );
-    User::WaitForRequest(status);
-	INFO_PRINTF2(_L("Read parameters returned %d"), status.Int());
+    while( tryAgain && attempts++ < maxRetries )
+        {
+        socket.Ioctl(KIoctlReadSmsParams,status,NULL, KSolSmsProv);
+        User::WaitForRequest(status);
+        INFO_PRINTF2(_L("Read parameters returned %d"), status.Int());
+        
+        if ( status.Int() == KErrNotReady )
+            {
+            INFO_PRINTF1(_L("Trying again... "));
+            User::After(3000000);
+            }
+        else
+            {
+            tryAgain = EFalse;
+            }
+        }
+    
 	if(status.Int() == KErrNone)
 		{
 		CMobilePhoneSmspList* smspList = CMobilePhoneSmspList::NewL();
@@ -3914,11 +3525,11 @@
 		User::WaitForRequest(status);
 		CleanupStack::PopAndDestroy(smspList);
 		}
-		TEST(status.Int() == KErrNone);
-
-//
-//Store SMSP list
-//
+	TEST(status.Int() == KErrNone);
+
+	//
+	//Store SMSP list
+	//
 	// Create the smspList
     CMobilePhoneSmspList* smspList = CMobilePhoneSmspList::NewL();
     CleanupStack::PushL(smspList);
@@ -3938,11 +3549,8 @@
 
 	CleanupStack::PopAndDestroy(smspList);
     CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	}
 
-
 TVerdict CTestResendFailedConcatinatedMessage::doTestStepL()
 /**
  *  Test that sent PDUs in failed concatenated message are not re-sent"
@@ -3951,32 +3559,10 @@
 	INFO_PRINTF1(_L(" Test that sent PDUs in failed concatenated message are not re-sent"));
 	TLogId logid;
 	TLogSmsPduData pduData;
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 44);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
-
-    // Create comms database object
-#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_2);
-#else
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_1);
-#endif
-	CleanupStack::PushL(db);
-
-	INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck"));
-
-    // EReceiveUnstoredClientAck
-	CMDBField<TUint32>* smsReceiveModeField = new(ELeave) CMDBField<TUint32>(KCDTIdSMSReceiveMode);
-	CleanupStack::PushL(smsReceiveModeField);
-	smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord
-	*smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck;
-	smsReceiveModeField->ModifyL(*db);
-	CleanupStack::PopAndDestroy(smsReceiveModeField);
-	CleanupStack::PopAndDestroy(db);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
+
+	ChangeReceiveModeL(RMobileSmsMessaging::EReceiveUnstoredClientAck);
 
 	_LIT(KTestMsg1,"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCC");
 
@@ -3984,126 +3570,105 @@
 	iTelephoneNumber=KPekka;
 	iServiceCenterNumber=KRadiolinjaSC;
 
-
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
 
 	INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber);
 	INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber);
 
 	//Send SMS	- first pdu fails
-
-	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 	pduData.iType=smsMessage->Type();
 	logid=iSmsStackTestUtils->AddLogEventL(*smsMessage,pduData);
 	smsMessage->SetLogServerId(logid);
+	
 	INFO_PRINTF2(_L("Sends message with log id %d"),logid);
 	SendSmsErrorL(smsMessage,socket);
 	SendSmsL(smsMessage,socket);
 	CleanupStack::PopAndDestroy(smsMessage);
+	
 	//Receive SMS
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
 
-	INFO_PRINTF1(_L("incoming SMS") );
-
 	CleanupStack::PushL(smsMessage);
 	TestSmsContentsL(smsMessage,KTestMsg1);
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	//Send SMS	- second pdu fails
-
-	smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 	pduData.iType=smsMessage->Type();
 	logid=iSmsStackTestUtils->AddLogEventL(*smsMessage,pduData);
 	smsMessage->SetLogServerId(logid);
+	
 	INFO_PRINTF2(_L("Sends message with log id %d"),logid);
 	SendSmsErrorL(smsMessage,socket);
 	SendSmsL(smsMessage,socket);
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	//Receive SMS
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
-
-	INFO_PRINTF1(_L("incoming SMS") );
-
 	CleanupStack::PushL(smsMessage);
+
 	TestSmsContentsL(smsMessage,KTestMsg1);
 	CleanupStack::PopAndDestroy(smsMessage);
 
-
 	//Send SMS	- third pdu fails
-
-	smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 	pduData.iType=smsMessage->Type();
 	logid=iSmsStackTestUtils->AddLogEventL(*smsMessage,pduData);
 	smsMessage->SetLogServerId(logid);
+	
 	INFO_PRINTF2(_L("Sends message with log id %d"),logid);
 	SendSmsErrorL(smsMessage,socket);
 	SendSmsL(smsMessage,socket);
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	//Receive SMS
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
-
-	INFO_PRINTF1(_L("incoming SMS") );
-
 	CleanupStack::PushL(smsMessage);
+
 	TestSmsContentsL(smsMessage,KTestMsg1);
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	//Send SMS	- fourth pdu fails
-	smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 	pduData.iType=smsMessage->Type();
 	logid=iSmsStackTestUtils->AddLogEventL(*smsMessage,pduData);
 	smsMessage->SetLogServerId(logid);
+	
 	INFO_PRINTF2(_L("Sends message with log id %d"),logid);
 	SendSmsErrorL(smsMessage,socket);
 	smsMessage->SetLogServerId(KLogNullId);
+	
 	SendSmsL(smsMessage,socket);
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	//Receive SMS
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
-
-	INFO_PRINTF1(_L("incoming SMS") );
-
 	CleanupStack::PushL(smsMessage);
+	
 	TestSmsContentsL(smsMessage,KTestMsg1);
 	CleanupStack::PopAndDestroy(smsMessage);
+	
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+    return TestStepResult() ;
 	}
 
-
+// TODO: move to WAP STACK test suite
 TVerdict CTestMultipartWapMessage::doTestStepL()
 /**
  *  test multi-part WAP message
  */
 	{
-
 	INFO_PRINTF1(_L("Test receive multi-part WAP message"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 45);
-	
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	RSocket wapsock;
-	TInt ret=wapsock.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol);
+	TInt ret=wapsock.Open(iSocketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol);
 	TEST(ret == KErrNone);
 
 	TWapAddr recvWapAddr;
@@ -4134,35 +3699,26 @@
 		buf.Zero();
 		const TInt midLen = Min(KMaxPrintLen, len - pos);
 		buf.SetLength(midLen);
-		for (TInt i=0; i<midLen; i++)
+		for (TInt i=0; i<midLen; ++i)
+		    {
 			buf[i]=recvBuf[pos+i];
+		    }
 		INFO_PRINTF2(_L("%S"), &buf);
 		}
 
 	wapsock.Close();
-
     CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestMOSESMessage::doTestStepL()
 /**
  *  Test a simple Receive of a single TPDU containing a simple text
  */
 	{
 	INFO_PRINTF1(_L("Test receive MOSES message"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 46);
-	
-
 	RSocket socketRecvAny;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer, socketRecvAny, ESmsAddrRecvAny);
-
-	INFO_PRINTF1(_L("waiting for incoming SMS ...") );
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socketRecvAny, ESmsAddrRecvAny);
 
 	WaitForRecvL(socketRecvAny);
 	CSmsMessage* smsMessage = RecvSmsL(socketRecvAny);
@@ -4172,46 +3728,20 @@
 	INFO_PRINTF1(_L(""));
 
 	CleanupStack::PushL(smsMessage);
-
-	CleanupStack::PopAndDestroy(2); //  socketRecvAny, smsMessage
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+	CleanupStack::PopAndDestroy(2, &socketRecvAny); //  socketRecvAny, smsMessage
+ 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestClockBack::doTestStepL()
  /**
   *  Test clock back
   */
-{
+    {
  	INFO_PRINTF1(_L(" Test that turning back time does not result in 2 receipts of same messages"));
-
- 	RSocketServ socketServer;
- 	PrepareRegTestLC(socketServer, 47);
-	
-
  	RSocket socket;
- 	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
-
- 	// Create comms database object
-#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_2);
-#else
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_1);
-#endif
- 	CleanupStack::PushL(db);
-
- 	INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck"));
-
- 	// EReceiveUnstoredClientAck
-	CMDBField<TUint32>* smsReceiveModeField = new(ELeave) CMDBField<TUint32>(KCDTIdSMSReceiveMode);
-	CleanupStack::PushL(smsReceiveModeField);
-	smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord
-	*smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck;
-	smsReceiveModeField->ModifyL(*db);
-	CleanupStack::PopAndDestroy(smsReceiveModeField);
-	CleanupStack::PopAndDestroy(db);
+ 	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
+
+ 	ChangeReceiveModeL(RMobileSmsMessaging::EReceiveUnstoredClientAck);
 
  	_LIT(KTestMsg1,"test message, 8bits, length 30");
 
@@ -4219,7 +3749,6 @@
  	iTelephoneNumber=KPekka;
  	iServiceCenterNumber=KRadiolinjaSC;
 
-
  	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
 
  	INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber);
@@ -4229,19 +3758,15 @@
 	User::SetUTCOffset(-2*60*60);
 
  	//Send SMS
-
- 	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
- 	CleanupStack::PushL(smsMessage);
+ 	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
  	SendSmsL(smsMessage,socket);
  	CleanupStack::PopAndDestroy(smsMessage);
+
  	//Receive SMS
- 	INFO_PRINTF1(_L("waiting for incoming SMS...") );
  	WaitForRecvL(socket);
  	smsMessage = RecvSmsL(socket);
-
- 	INFO_PRINTF1(_L("incoming SMS") );
-
  	CleanupStack::PushL(smsMessage);
+
  	TestSmsContentsL(smsMessage,KTestMsg1);
  	CleanupStack::PopAndDestroy(smsMessage);
 
@@ -4251,48 +3776,56 @@
  	TEST(otherReceived ==EFalse);
 
  	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
- 
-	return TestStepResult() ;
-}
-
+    return TestStepResult() ;
+    }
 
 TVerdict CTestEnumerateNoMessages::doTestStepL()
 /**
  *  Test enumerating a message store which has no messages in it.
  *  There are 3 message stores s13 has 0 messages, S14 has 1 message and S15 has 2 messages
  */
-{
+    {
 	INFO_PRINTF1(_L("Test enumerating a message store which has no messages"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 48);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
-
- 	// Enumerate messages from Store
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
+
 	TRequestStatus status;
 	TPckgBuf<TUint> sbuf;
 	sbuf()=0;
 
-	//Now enumerate messages from store
-	socket.Ioctl(KIoctlEnumerateSmsMessages,status,&sbuf, KSolSmsProv);
-	User::WaitForRequest(status);
-	TEST(status.Int()==KErrNone);
-
+    TBool tryAgain = ETrue;
+    TInt attempts (0);
+    TInt maxRetries = 3;
+
+    // Enumerate messages from store. If it fails with KErrNotReady wait for 3 seconds to 
+    // allow sms protocol to fully load and repeat
+    while( tryAgain && attempts++ < maxRetries )
+        {
+        socket.Ioctl(KIoctlEnumerateSmsMessages,status,&sbuf, KSolSmsProv);
+        User::WaitForRequest(status);
+        INFO_PRINTF2(_L("Enumerate messages from store returned [status=%d]"), status.Int());
+        
+        if ( status.Int() == KErrNotReady )
+            {
+            INFO_PRINTF1(_L("Trying to enumerate again... "));
+            User::After(3000000);
+            }
+        else
+            {
+            tryAgain = EFalse;
+            }
+        }
+
+    TESTCHECK(status.Int(), KErrNone, "Enumerate messages from store");
+    
 	//sbuf() includes the count of messages on Store
 	TInt count = sbuf();
 	INFO_PRINTF2(_L("%d enumerated messages"), count);
 	TEST(count==3);
 
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
-}
-
+ 	return TestStepResult() ;
+    }
 
 TVerdict CTestIE::doTestStepL()
 /**
@@ -4300,46 +3833,37 @@
  */
 {
 	INFO_PRINTF1(_L("Test IE"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 52);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
-
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	//Set destination and SC numbers
 	iTelephoneNumber=KPekka;
 	iServiceCenterNumber=KRadiolinjaSC;
 	CSmsMessage* smsMessage=NULL;
 
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
+	
 	CleanupStack::PushL(smsMessage);
 	CSmsUserData& recvUserData = smsMessage->SmsPDU().UserData();
 	TInt numIE=recvUserData.NumInformationElements();
-	for(TInt k=0;k<numIE;k++)
+	
+	for(TInt i=0; i<numIE; ++i)
 		{
-		CSmsInformationElement& ie=recvUserData.InformationElement(k);
+		CSmsInformationElement& ie=recvUserData.InformationElement(i);
 		TPtr8 ptr(ie.Data());
-		INFO_PRINTF4(_L(" %d. ie  is %d %S"),k,ie.Identifier(),&ptr);
+		INFO_PRINTF4(_L(" %d. ie  is %d %S"),i ,ie.Identifier(), &ptr);
 		}
 
 	CleanupStack::PopAndDestroy(smsMessage);
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+ 	return TestStepResult() ;
 }
 
-
 TVerdict CTestEmailIE::doTestStepL()
 /**
  *  Test the reception of a CPHS Message Waiting Indication
  */
-
 	{
 	INFO_PRINTF1(_L("Test EmailIE"));
 	_LIT(KTestMsg1,"MMMMMMMMMM");
@@ -4349,128 +3873,118 @@
 	_LIT16(KSmsEmailHeaderLong,"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
 	_LIT16(KSmsEmailBodyLong,"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB");
 
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 53);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrEmail);
-
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrEmail);
 
 	//Set destination and SC numbers
 	iTelephoneNumber=KPekka;
 	iServiceCenterNumber=KRadiolinjaSC;
 	CSmsMessage* smsMessage=NULL;
-
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
-	smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	
+	smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
+	
 	// case 1 short - one pdu
 	smsMessage->AddEmailHeaderL(KSmsEmailHeaderShort,KSmsEmailBodyShort);
-	//Send SMS
+
 	SendSmsL(smsMessage,socket);
 	CleanupStack::PopAndDestroy(smsMessage);
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
+	
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
 	CleanupStack::PushL(smsMessage);
+	
 	CSmsUserData& recvUserData = smsMessage->SmsPDU().UserData();
 	TInt numIE=recvUserData.NumInformationElements();
-	TInt k=0;
-	for(k=0;k<numIE;k++)
+	
+	for(TInt i=0; i<numIE; ++i)
 		{
-		CSmsInformationElement& ie=recvUserData.InformationElement(k);
+		CSmsInformationElement& ie=recvUserData.InformationElement(i);
 		TPtr8 ptr(ie.Data());
-		INFO_PRINTF4(_L(" %d. ie  is %d %S"),k,ie.Identifier(),&ptr);
+		INFO_PRINTF4(_L(" %d. ie  is %d %S"), i, ie.Identifier(), &ptr);
 		}
 
 	TLogId logId(KLogNullId);
-	TEST_CHECKL(smsMessage->IsEmailHeader(),ETrue,_L("Message does noty contain E-Mail header"));
+	TEST_CHECKL(smsMessage->IsEmailHeader(),ETrue,_L("Checking if message contains E-Mail header"));
 	HBufC* bd;
 	HBufC* hd;
 	if(smsMessage->GetEmailHeaderL(&hd,&bd))
 		{
-			INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd);
-			INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd);
-			TEST(*hd==KSmsEmailHeaderShort());
-			TEST(*bd==KSmsEmailBodyShort());
-			logId=smsMessage->LogServerId();
-			if(logId!=KLogNullId)
+		INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd);
+		INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd);
+		TEST(*hd==KSmsEmailHeaderShort());
+		TEST(*bd==KSmsEmailBodyShort());
+		logId=smsMessage->LogServerId();
+		
+		if(logId!=KLogNullId)
 			{
-				TLogSmsPduData pduData;
-				CLogEvent* logEvent=CLogEvent::NewL();
-				CleanupStack::PushL(logEvent);
-				iSmsStackTestUtils->GetLogEventL(*logEvent,logId);
-				TPckg<TLogSmsPduData> packeddata(pduData);
-				packeddata.Copy(logEvent->Data());
-				TEST(packeddata().iTotal==1);
-				TEST(packeddata().iReceived==1);
-				CleanupStack::PopAndDestroy(logEvent);
+			TLogSmsPduData pduData;
+			CLogEvent* logEvent=CLogEvent::NewL();
+			CleanupStack::PushL(logEvent);
+			iSmsStackTestUtils->GetLogEventL(*logEvent,logId);
+			TPckg<TLogSmsPduData> packeddata(pduData);
+			packeddata.Copy(logEvent->Data());
+			TEST(packeddata().iTotal==1);
+			TEST(packeddata().iReceived==1);
+			CleanupStack::PopAndDestroy(logEvent);
 			}
-			delete hd;
-			delete bd;
+		delete hd;
+		delete bd;
 		}
-	//
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	// case 2 - long header
-
-	smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 
 	smsMessage->AddEmailHeaderL(KSmsEmailHeaderLong,KSmsEmailBodyShort);
 
-	//Send SMS
 	SendSmsL(smsMessage,socket);
 	CleanupStack::PopAndDestroy(smsMessage);
 
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
 	CleanupStack::PushL(smsMessage);
+
+	CSmsUserData& recvUserData2 = smsMessage->SmsPDU().UserData();
+	numIE=recvUserData2.NumInformationElements();
+	
+	for(TInt i=0; i<numIE; ++i)
 		{
-		CSmsUserData& recvUserData2 = smsMessage->SmsPDU().UserData();
-		TInt numIE=recvUserData2.NumInformationElements();
-		for(TInt k=0;k<numIE;k++)
-			{
-			CSmsInformationElement& ie=recvUserData2.InformationElement(k);
-			TPtr8 ptr(ie.Data());
-			INFO_PRINTF4(_L(" %d. ie  is %d %S"),k,ie.Identifier(),&ptr);
-			}
+		CSmsInformationElement& ie=recvUserData2.InformationElement(i);
+		TPtr8 ptr(ie.Data());
+		INFO_PRINTF4(_L(" %d. ie  is %d %S"), i, ie.Identifier(), &ptr);
 		}
 
 	logId=KLogNullId;
 	TEST_CHECKL(smsMessage->IsEmailHeader(),ETrue,_L("Message does noty contain E-Mail header"));
 	if(smsMessage->GetEmailHeaderL(&hd,&bd))
+	    {
+		INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd);
+		INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd);
+		TEST(*hd==KSmsEmailHeaderLong());
+		TEST(*bd==KSmsEmailBodyShort());
+		logId=smsMessage->LogServerId();
+		if(logId!=KLogNullId)
 			{
-			INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd);
-			INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd);
-			TEST(*hd==KSmsEmailHeaderLong());
-			TEST(*bd==KSmsEmailBodyShort());
-			logId=smsMessage->LogServerId();
-			if(logId!=KLogNullId)
-				{
-				TLogSmsPduData pduData;
-				CLogEvent* logEvent=CLogEvent::NewL();
-				CleanupStack::PushL(logEvent);
-				iSmsStackTestUtils->GetLogEventL(*logEvent,logId);
-				TPckg<TLogSmsPduData> packeddata(pduData);
-				packeddata.Copy(logEvent->Data());
-				TEST(packeddata().iTotal==2);
-				TEST(packeddata().iReceived==2);
-				CleanupStack::PopAndDestroy(logEvent);
-				}
-			delete hd;
-			delete bd;
+			TLogSmsPduData pduData;
+			CLogEvent* logEvent=CLogEvent::NewL();
+			CleanupStack::PushL(logEvent);
+			iSmsStackTestUtils->GetLogEventL(*logEvent,logId);
+			TPckg<TLogSmsPduData> packeddata(pduData);
+			packeddata.Copy(logEvent->Data());
+			TEST(packeddata().iTotal==2);
+			TEST(packeddata().iReceived==2);
+			CleanupStack::PopAndDestroy(logEvent);
 			}
-	//
+		delete hd;
+		delete bd;
+		}
 	CleanupStack::PopAndDestroy(smsMessage);
 
 
 	// case 3 - short header  long body
 
-	smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 
 	smsMessage->AddEmailHeaderL(KSmsEmailHeaderShort,KSmsEmailBodyLong);
 
@@ -4482,249 +3996,214 @@
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
 	CleanupStack::PushL(smsMessage);
+
+	CSmsUserData& recvUserData3 = smsMessage->SmsPDU().UserData();
+	numIE = recvUserData3.NumInformationElements();
+	for(TInt i=0; i<numIE; ++i)
 		{
-		CSmsUserData& recvUserData3 = smsMessage->SmsPDU().UserData();
-		TInt numIE=recvUserData3.NumInformationElements();
-		for(TInt k=0;k<numIE;k++)
-			{
-			CSmsInformationElement& ie=recvUserData3.InformationElement(k);
-			TPtr8 ptr(ie.Data());
-			INFO_PRINTF4(_L(" %d. ie  is %d %S"),k,ie.Identifier(),&ptr);
-			}
-		}
-
-	logId=KLogNullId;
-	TEST_CHECKL(smsMessage->IsEmailHeader(),ETrue,_L("Message does noty contain E-Mail header"));
-	if(smsMessage->GetEmailHeaderL(&hd,&bd))
-			{
-			INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd);
-			INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd);
-			TEST(*hd==KSmsEmailHeaderShort());
-			TEST(*bd==KSmsEmailBodyLong());
-			logId=smsMessage->LogServerId();
-			if(logId!=KLogNullId)
-				{
-				TLogSmsPduData pduData;
-				CLogEvent* logEvent=CLogEvent::NewL();
-				CleanupStack::PushL(logEvent);
-				iSmsStackTestUtils->GetLogEventL(*logEvent,logId);
-				TPckg<TLogSmsPduData> packeddata(pduData);
-				packeddata.Copy(logEvent->Data());
-				TEST(packeddata().iTotal==2);
-				TEST(packeddata().iReceived==2);
-				CleanupStack::PopAndDestroy(logEvent);
-				}
-			delete hd;
-			delete bd;
-			}
-	//
-	CleanupStack::PopAndDestroy(smsMessage);
-
-
-	// case 4 - long header  long body
-
-	smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
-
-	smsMessage->AddEmailHeaderL(KSmsEmailHeaderLong,KSmsEmailBodyLong);
-
-	//Send SMS
-	SendSmsL(smsMessage,socket);
-	CleanupStack::PopAndDestroy(smsMessage);
-
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
-	WaitForRecvL(socket);
-	smsMessage = RecvSmsL(socket);
-	CleanupStack::PushL(smsMessage);
-		{
-		CSmsUserData& recvUserData4 = smsMessage->SmsPDU().UserData();
-		TInt numIE=recvUserData4.NumInformationElements();
-		for(TInt k=0;k<numIE;k++)
-			{
-			CSmsInformationElement& ie=recvUserData4.InformationElement(k);
-			TPtr8 ptr(ie.Data());
-			INFO_PRINTF4(_L(" %d. ie  is %d %S"),k,ie.Identifier(),&ptr);
-			}
+		CSmsInformationElement& ie=recvUserData3.InformationElement(i);
+		TPtr8 ptr(ie.Data());
+		INFO_PRINTF4(_L(" %d. ie  is %d %S"), i, ie.Identifier(), &ptr);
 		}
 
 	logId=KLogNullId;
 	TEST_CHECKL(smsMessage->IsEmailHeader(),ETrue,_L("Message does noty contain E-Mail header"));
 	if(smsMessage->GetEmailHeaderL(&hd,&bd))
+		{
+		INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd);
+		INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd);
+		TEST(*hd==KSmsEmailHeaderShort());
+		TEST(*bd==KSmsEmailBodyLong());
+		logId=smsMessage->LogServerId();
+		if(logId!=KLogNullId)
 			{
-			INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd);
-			INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd);
-			TEST(*hd==KSmsEmailHeaderLong());
-			TEST(*bd==KSmsEmailBodyLong());
-			logId=smsMessage->LogServerId();
-			if(logId!=KLogNullId)
-				{
-				TLogSmsPduData pduData;
-				CLogEvent* logEvent=CLogEvent::NewL();
-				CleanupStack::PushL(logEvent);
-				iSmsStackTestUtils->GetLogEventL(*logEvent,logId);
-				TPckg<TLogSmsPduData> packeddata(pduData);
-				packeddata.Copy(logEvent->Data());
-				TEST(packeddata().iTotal==3);
-				TEST(packeddata().iReceived==3);
-				CleanupStack::PopAndDestroy(logEvent);
-				}
-			delete hd;
-			delete bd;
+			TLogSmsPduData pduData;
+			CLogEvent* logEvent=CLogEvent::NewL();
+			CleanupStack::PushL(logEvent);
+			iSmsStackTestUtils->GetLogEventL(*logEvent,logId);
+			TPckg<TLogSmsPduData> packeddata(pduData);
+			packeddata.Copy(logEvent->Data());
+			TEST(packeddata().iTotal==2);
+			TEST(packeddata().iReceived==2);
+			CleanupStack::PopAndDestroy(logEvent);
 			}
-	//
+		delete hd;
+		delete bd;
+		}
 	CleanupStack::PopAndDestroy(smsMessage);
 
-
-	// case 5 - long header  long body, unicode
-
-	smsMessage=CreateSmsMessageL(KTestMsg1,TSmsDataCodingScheme::ESmsAlphabetUCS2);
-	CleanupStack::PushL(smsMessage);
+	// case 4 - long header  long body
+	smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 
 	smsMessage->AddEmailHeaderL(KSmsEmailHeaderLong,KSmsEmailBodyLong);
 
-	//Send SMS
 	SendSmsL(smsMessage,socket);
 	CleanupStack::PopAndDestroy(smsMessage);
 
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
 	CleanupStack::PushL(smsMessage);
+	
+	CSmsUserData& recvUserData4 = smsMessage->SmsPDU().UserData();
+	numIE=recvUserData4.NumInformationElements();
+	
+    for(TInt i=0; i<numIE; ++i)
 		{
-		CSmsUserData& recvUserData4 = smsMessage->SmsPDU().UserData();
-		TInt numIE=recvUserData4.NumInformationElements();
-		for(TInt k=0;k<numIE;k++)
+		CSmsInformationElement& ie=recvUserData4.InformationElement(i);
+		TPtr8 ptr(ie.Data());
+		INFO_PRINTF4(_L(" %d. ie  is %d %S"), i, ie.Identifier(), &ptr);
+		}
+	
+	logId=KLogNullId;
+	TEST_CHECKL(smsMessage->IsEmailHeader(),ETrue,_L("Message does noty contain E-Mail header"));
+	if(smsMessage->GetEmailHeaderL(&hd,&bd))
+		{
+		INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd);
+		INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd);
+		TEST(*hd==KSmsEmailHeaderLong());
+		TEST(*bd==KSmsEmailBodyLong());
+		logId=smsMessage->LogServerId();
+		if(logId!=KLogNullId)
 			{
-			CSmsInformationElement& ie=recvUserData4.InformationElement(k);
-			TPtr8 ptr(ie.Data());
-			INFO_PRINTF4(_L(" %d. ie  is %d %S"),k,ie.Identifier(),&ptr);
+			TLogSmsPduData pduData;
+			CLogEvent* logEvent=CLogEvent::NewL();
+			CleanupStack::PushL(logEvent);
+			iSmsStackTestUtils->GetLogEventL(*logEvent,logId);
+			TPckg<TLogSmsPduData> packeddata(pduData);
+			packeddata.Copy(logEvent->Data());
+			TEST(packeddata().iTotal==3);
+			TEST(packeddata().iReceived==3);
+			CleanupStack::PopAndDestroy(logEvent);
 			}
+		delete hd;
+		delete bd;
+		}
+
+	CleanupStack::PopAndDestroy(smsMessage);
+
+	// case 5 - long header, long body, unicode
+	smsMessage=CreateSmsMessageLC(KTestMsg1,TSmsDataCodingScheme::ESmsAlphabetUCS2);
+
+	smsMessage->AddEmailHeaderL(KSmsEmailHeaderLong,KSmsEmailBodyLong);
+
+	SendSmsL(smsMessage,socket);
+	CleanupStack::PopAndDestroy(smsMessage);
+
+	WaitForRecvL(socket);
+	smsMessage = RecvSmsL(socket);
+	CleanupStack::PushL(smsMessage);
+
+	CSmsUserData& recvUserData5 = smsMessage->SmsPDU().UserData();
+	numIE=recvUserData5.NumInformationElements();
+    for(TInt i=0; i<numIE; ++i)
+		{
+		CSmsInformationElement& ie=recvUserData5.InformationElement(i);
+		TPtr8 ptr(ie.Data());
+		INFO_PRINTF4(_L(" %d. ie  is %d %S"), i, ie.Identifier(), &ptr);
 		}
 
 	logId=KLogNullId;
 	TEST_CHECKL(smsMessage->IsEmailHeader(),ETrue,_L("Message does noty contain E-Mail header"));
 	if(smsMessage->GetEmailHeaderL(&hd,&bd))
+		{
+		INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd);
+		INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd);
+		TEST(*hd==KSmsEmailHeaderLong());
+		TEST(*bd==KSmsEmailBodyLong());
+		logId=smsMessage->LogServerId();
+		if(logId!=KLogNullId)
 			{
-			INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd);
-			INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd);
-			TEST(*hd==KSmsEmailHeaderLong());
-			TEST(*bd==KSmsEmailBodyLong());
-			logId=smsMessage->LogServerId();
-			if(logId!=KLogNullId)
-				{
-				TLogSmsPduData pduData;
-				CLogEvent* logEvent=CLogEvent::NewL();
-				CleanupStack::PushL(logEvent);
-				iSmsStackTestUtils->GetLogEventL(*logEvent,logId);
-				TPckg<TLogSmsPduData> packeddata(pduData);
-				packeddata.Copy(logEvent->Data());
-				TEST(packeddata().iTotal==6);
-				TEST(packeddata().iReceived==6);
-				CleanupStack::PopAndDestroy(logEvent);
-				}
-			delete hd;
-			delete bd;
+			TLogSmsPduData pduData;
+			CLogEvent* logEvent=CLogEvent::NewL();
+			CleanupStack::PushL(logEvent);
+			iSmsStackTestUtils->GetLogEventL(*logEvent,logId);
+			TPckg<TLogSmsPduData> packeddata(pduData);
+			packeddata.Copy(logEvent->Data());
+			TEST(packeddata().iTotal==6);
+			TEST(packeddata().iReceived==6);
+			CleanupStack::PopAndDestroy(logEvent);
 			}
-	//
+		delete hd;
+		delete bd;
+		}
 	CleanupStack::PopAndDestroy(smsMessage);
 
 
-
 	// case 6 - long header  long body, 7bit
-
-	smsMessage=CreateSmsMessageL(KTestMsg1,TSmsDataCodingScheme::ESmsAlphabet7Bit);
-	CleanupStack::PushL(smsMessage);
+	smsMessage=CreateSmsMessageLC(KTestMsg1,TSmsDataCodingScheme::ESmsAlphabet7Bit);
 
 	smsMessage->AddEmailHeaderL(KSmsEmailHeaderLong,KSmsEmailBodyLong);
 
-	//Send SMS
 	SendSmsL(smsMessage,socket);
 	CleanupStack::PopAndDestroy(smsMessage);
 
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
 	CleanupStack::PushL(smsMessage);
+
+	CSmsUserData& recvUserData6 = smsMessage->SmsPDU().UserData();
+	numIE=recvUserData6.NumInformationElements();
+	
+    for(TInt i=0; i<numIE; ++i)
 		{
-		CSmsUserData& recvUserData4 = smsMessage->SmsPDU().UserData();
-		TInt numIE=recvUserData4.NumInformationElements();
-		for(TInt k=0;k<numIE;k++)
-			{
-			CSmsInformationElement& ie=recvUserData4.InformationElement(k);
-			TPtr8 ptr(ie.Data());
-			INFO_PRINTF4(_L(" %d. ie  is %d %S"),k,ie.Identifier(),&ptr);
-			}
+		CSmsInformationElement& ie=recvUserData6.InformationElement(i);
+		TPtr8 ptr(ie.Data());
+		INFO_PRINTF4(_L(" %d. ie  is %d %S"),i, ie.Identifier(), &ptr);
 		}
 
 	logId=KLogNullId;
 	TEST_CHECKL(smsMessage->IsEmailHeader(),ETrue,_L("Message does noty contain E-Mail header"));
 	if(smsMessage->GetEmailHeaderL(&hd,&bd))
+		{
+		INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd);
+		INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd);
+		TEST(*hd==KSmsEmailHeaderLong());
+		TEST(*bd==KSmsEmailBodyLong());
+		logId=smsMessage->LogServerId();
+		if(logId!=KLogNullId)
 			{
-			INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd);
-			INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd);
-			TEST(*hd==KSmsEmailHeaderLong());
-			TEST(*bd==KSmsEmailBodyLong());
-			logId=smsMessage->LogServerId();
-			if(logId!=KLogNullId)
-				{
-				TLogSmsPduData pduData;
-				CLogEvent* logEvent=CLogEvent::NewL();
-				CleanupStack::PushL(logEvent);
-				iSmsStackTestUtils->GetLogEventL(*logEvent,logId);
-				TPckg<TLogSmsPduData> packeddata(pduData);
-				packeddata.Copy(logEvent->Data());
-				TEST(packeddata().iTotal==3);
-				TEST(packeddata().iReceived==3);
-				CleanupStack::PopAndDestroy(logEvent);
-				}
-			delete hd;
-			delete bd;
+			TLogSmsPduData pduData;
+			CLogEvent* logEvent=CLogEvent::NewL();
+			CleanupStack::PushL(logEvent);
+			iSmsStackTestUtils->GetLogEventL(*logEvent,logId);
+			TPckg<TLogSmsPduData> packeddata(pduData);
+			packeddata.Copy(logEvent->Data());
+			TEST(packeddata().iTotal==3);
+			TEST(packeddata().iReceived==3);
+			CleanupStack::PopAndDestroy(logEvent);
 			}
-	//
+		delete hd;
+		delete bd;
+		}
+
 	CleanupStack::PopAndDestroy(smsMessage);
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult() ;
 	}
 
-
-
 TVerdict CTestMaxReadTimeForSmsStoreList::doTestStepL()
 /**
  *  Test Sms message storage
  */
     {
     INFO_PRINTF1(_L("Enumerating a phone store list that takes 254 seconds"));
-
-    RSocketServ socketServer;
-    PrepareRegTestLC(socketServer, 54);
-	
-
     // Open the socket for SIM operations
     RSocket socket;
-    iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+    iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrLocalOperation);
 
     // Enumerate messages
-
     RPointerArray<CSmsMessage> messages;
     CleanupResetAndDestroyPushL(messages);
     ReadSmsStoreL(socket, messages);
+
     const TInt count = messages.Count();
-
-    // Check that request successfully retrieved 2 messages
-    // after 254 seconds.
-
-    TEST(count == 2);
+    TESTCHECK(count, 2, "Request retrieved 2 messages after 254 seconds");
 
     CleanupStack::PopAndDestroy(&messages);
     CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult();
     }
 
-
 TVerdict CTestSameLogIdMultiplePDU::doTestStepL()
 /**
  *  Resend Multi PDU SMS message with same log id"
@@ -4752,32 +4231,10 @@
 	INFO_PRINTF1(_L(" Test that sent SMS consisting of Multiple PDUs with the same logId"));
 	TLogId logid;
 	TLogSmsPduData pduData;
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 57);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
-
-    // Create comms database object
-#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_2);
-#else
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_1);
-#endif
-    CleanupStack::PushL(db);
-
-	INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck"));
-
-    // EReceiveUnstoredClientAck
-	CMDBField<TUint32>* smsReceiveModeField = new(ELeave) CMDBField<TUint32>(KCDTIdSMSReceiveMode);
-	CleanupStack::PushL(smsReceiveModeField);
-	smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord
-	*smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck;
-	smsReceiveModeField->ModifyL(*db);
-	CleanupStack::PopAndDestroy(smsReceiveModeField);
-	CleanupStack::PopAndDestroy(db);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
+
+	ChangeReceiveModeL(RMobileSmsMessaging::EReceiveUnstoredClientAck);
 
     // Initialization
     // Message String
@@ -4794,9 +4251,30 @@
 	INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber);
 
     // Twice send an Sms with the same logid - step 1
-    // Create a Message
-	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
+	pduData.iType=smsMessage->Type();
+
+	// Get a log Id
+	logid=iSmsStackTestUtils->AddLogEventL(*smsMessage,pduData);
+	smsMessage->SetLogServerId(logid);
+	INFO_PRINTF2(_L("Sends message with log id %d"),logid);
+
+	SendSmsL(smsMessage,socket);
+	// Send SMS again
+    SendSmsL(smsMessage,socket);
+
+	CleanupStack::PopAndDestroy(smsMessage);
+
+	WaitForRecvL(socket);
+	smsMessage = RecvSmsL(socket);
+
 	CleanupStack::PushL(smsMessage);
+	TestSmsContentsL(smsMessage,KTestMsg1);
+	CleanupStack::PopAndDestroy(smsMessage);
+
+	// Twice send an Sms with the same logid - step 2
+	// Create a Message
+	smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 	pduData.iType=smsMessage->Type();
 
 	// Get a log Id
@@ -4812,49 +4290,17 @@
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	//Receive SMS
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
-    INFO_PRINTF1(_L("incoming SMS arrived") );
 
 	CleanupStack::PushL(smsMessage);
 	TestSmsContentsL(smsMessage,KTestMsg1);
-	CleanupStack::PopAndDestroy(smsMessage);
-
-	// Twice send an Sms with the same logid - step 2
-	// Create a Message
-	smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
-	pduData.iType=smsMessage->Type();
-
-	// Get a log Id
-	logid=iSmsStackTestUtils->AddLogEventL(*smsMessage,pduData);
-	smsMessage->SetLogServerId(logid);
-	INFO_PRINTF2(_L("Sends message with log id %d"),logid);
-
-	// Send SMS
-	SendSmsL(smsMessage,socket);
-	// Send SMS again
-    SendSmsL(smsMessage,socket);
 
 	CleanupStack::PopAndDestroy(smsMessage);
-
-	//Receive SMS
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
-	WaitForRecvL(socket);
-	smsMessage = RecvSmsL(socket);
-    INFO_PRINTF1(_L("incoming SMS arrived") );
-
-	CleanupStack::PushL(smsMessage);
-	TestSmsContentsL(smsMessage,KTestMsg1);
-	CleanupStack::PopAndDestroy(smsMessage);
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult();
 	}
 
-
 TVerdict CTestSameLogIdSinglePDU::doTestStepL()
 /**
  *  Resend Single PDU SMS message with same log id"
@@ -4882,34 +4328,11 @@
 	INFO_PRINTF1(_L(" Test that sent SMS consisting of single PDUs with the same logId"));
 	TLogId logid;
 	TLogSmsPduData pduData;
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 58);
+	RSocket socket;
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 	
-
-	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
-
-    // Create comms database object
-#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_2);
-#else
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_1);
-#endif
-	CleanupStack::PushL(db);
-
-	INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck"));
-
-    // EReceiveUnstoredClientAck
-	CMDBField<TUint32>* smsReceiveModeField = new(ELeave) CMDBField<TUint32>(KCDTIdSMSReceiveMode);
-	CleanupStack::PushL(smsReceiveModeField);
-	smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord
-	*smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck;
-	smsReceiveModeField->ModifyL(*db);
-	CleanupStack::PopAndDestroy(smsReceiveModeField);
-	CleanupStack::PopAndDestroy(db);
-    // Initialization
-    // Message String
+	ChangeReceiveModeL(RMobileSmsMessaging::EReceiveUnstoredClientAck);
+	
 	_LIT(KTestMsg1,"CCCCCCC");
 
 	//Set destination and SC numbers
@@ -4934,8 +4357,7 @@
 
         // Twice send an Sms with the same logid - step 1
         // Create a Message
-        smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-        CleanupStack::PushL(smsMessage);
+        smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
         pduData.iType=smsMessage->Type();
 
         // Get a log Id
@@ -4951,19 +4373,15 @@
         CleanupStack::PopAndDestroy(smsMessage);
 
         // Receive SMS
-        INFO_PRINTF1(_L("waiting for incoming SMS...") );
         WaitForRecvL(socket);
         smsMessage = RecvSmsL(socket);
-        INFO_PRINTF1(_L("incoming SMS arrived") );
 
         CleanupStack::PushL(smsMessage);
         TestSmsContentsL(smsMessage,KTestMsg1);
         CleanupStack::PopAndDestroy(smsMessage);
 
         // Twice send an Sms with the same logid - step 2
-        // Create a Message
-        smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-        CleanupStack::PushL(smsMessage);
+        smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
         pduData.iType=smsMessage->Type();
 
         // Get a log Id
@@ -4979,10 +4397,8 @@
         CleanupStack::PopAndDestroy(smsMessage);
 
         //Receive SMS
-        INFO_PRINTF1(_L("waiting for incoming SMS...") );
         WaitForRecvL(socket);
         smsMessage = RecvSmsL(socket);
-        INFO_PRINTF1(_L("incoming SMS arrived") );
 
         CleanupStack::PushL(smsMessage);
         TestSmsContentsL(smsMessage,KTestMsg1);
@@ -4990,14 +4406,10 @@
         }
 
 	CleanupStack::PopAndDestroy(&socket);
-	CleanupStack::PopAndDestroy(&socketServer);
-
-
 	return TestStepResult();
 }
 
-
-CTestLog* CTestLog::NewLC(CSmsStackTestUtils& aUtils, RFs& aFs, CSmsPrtTestStep* aTest, TInt aPriority)
+CTestLog* CTestLog::NewLC(CSmsStackTestUtils& aUtils, RFs& aFs, CSmsBaseTestStep* aTest, TInt aPriority)
 	{
 	CTestLog* self = new (ELeave) CTestLog(aUtils, aTest, aPriority);
 	CleanupStack::PushL(self);
@@ -5005,7 +4417,7 @@
 	return self;
 	}
 
-CTestLog::CTestLog(CSmsStackTestUtils& aUtils, CSmsPrtTestStep* aTest, TInt aPriority)
+CTestLog::CTestLog(CSmsStackTestUtils& aUtils, CSmsBaseTestStep* aTest, TInt aPriority)
 : CActive(aPriority), iUtils(aUtils), iTest(aTest)
 	{
 	CActiveScheduler::Add(this);
@@ -5014,15 +4426,15 @@
 CTestLog::~CTestLog()
 	{
 	Cancel();
-	delete iMessage;
+	iSocket.Close();
 	delete iLogChecker;
 	delete iEventLogger;
+    delete iMessage;
 	iAddedIds.Close();
 	}
 
 void CTestLog::StartOriginalL()
 	{
-
 	iAddedIds.Reset();
 
 	iLogChecker->CountOriginalIdsL(iStatus);
@@ -5032,8 +4444,6 @@
 
 	//TEST(KErrNone == iStatus.Int());
 	iTest->testBooleanTrue(KErrNone == iStatus.Int(),(TText8*)__FILE__, __LINE__);
-
-
 	}
 
 void CTestLog::StartCompareL(TInt aExpectError)
@@ -5047,23 +4457,23 @@
 	}
 
 _LIT(KLongText,"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"3 PDU test SMS message. "
-L"The End.");
+        L"3 PDU test SMS message. "
+        L"3 PDU test SMS message. "
+        L"3 PDU test SMS message. "
+        L"3 PDU test SMS message. "
+        L"3 PDU test SMS message. "
+        L"3 PDU test SMS message. "
+        L"3 PDU test SMS message. "
+        L"3 PDU test SMS message. "
+        L"3 PDU test SMS message. "
+        L"3 PDU test SMS message. "
+        L"3 PDU test SMS message. "
+        L"3 PDU test SMS message. "
+        L"3 PDU test SMS message. "
+        L"3 PDU test SMS message. "
+        L"3 PDU test SMS message. "
+        L"3 PDU test SMS message. "
+        L"The End.");
 
 void CTestLog::StartL()
 	{
@@ -5072,38 +4482,28 @@
 
 	iTest->SendSmsL(iMessage,iSocket);
 
-	//INFO_PRINTF1(_L("waiting for incoming SMS...") );
-	iTest->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (_L("waiting for incoming SMS...\n")));
-
 	delete iMessage;
 	iMessage = NULL;
 
 	iTest->WaitForRecvL(iSocket);
 	iMessage = iTest->RecvSmsL(iSocket);
 
-	//INFO_PRINTF1(_L("incoming SMS") );
-	iTest->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (_L("incoming SMS\n")));
-	iTest->TestSmsContentsL(iMessage,KLongText);
+	iTest->TestSmsContentsL(iMessage, KLongText);
 
 	User::LeaveIfError(iAddedIds.Append(iMessage->LogServerId()));
 
 	StartCompareL(KErrNone);
-
 	delete iMessage;
 	iMessage = NULL;
-
-	CleanupStack::PopAndDestroy(&iSocket);
-	CleanupStack::PopAndDestroy(&iSocketServer);
 	}
 
 void CTestLog::ConstructL(RFs& aFs)
 	{
 	iLogChecker = CSmsLogChecker::NewL(aFs, iTest, Priority());
 	iEventLogger = CSmsEventLogger::NewL(aFs, Priority());
-
-	iTest->PrepareRegTestLC(iSocketServer, 50);
-
-	iTest->iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,iSocket,ESmsAddrRecvAny);
+	
+//	iTest->ConnectSocketServerL(iSocketServer);
+	iTest->iSmsStackTestUtils->OpenSmsSocketL(iTest->iSocketServer,iSocket,ESmsAddrRecvAny);
 
 	//Set destination and SC numbers
 	iTest->iTelephoneNumber=KRegTestNumber;
@@ -5134,12 +4534,10 @@
 	{
 	INFO_PRINTF1(_L("Test Tx and Rx SMS with 3 PDU message"));
 
-
 	CTestLog* testLog = CTestLog::NewLC(*iSmsStackTestUtils, iFs,this, CActive::EPriorityStandard);
 	testLog->StartL();
 	
 	CleanupStack::PopAndDestroy(testLog);
-
 	return TestStepResult();
 	}
 
@@ -5147,19 +4545,14 @@
 TVerdict CTestEnumerationOfStatusReport::doTestStepL()
 	{
 	INFO_PRINTF1(_L("Test enumeration of status report"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 51);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrLocalOperation);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrLocalOperation);
 
 	CSmsMessage* smsMessage = CreateSmsMessageLC(CSmsPDU::ESmsStatusReport, CSmsBuffer::NewL(), iTelephoneNumber);
 
 	smsMessage->SetStorage(CSmsMessage::ESmsSIMStorage);
 
-	WriteToSIML(socket, *smsMessage);
+	WriteSmsToSimL(*smsMessage, socket);
 
  	// Enumerate messages from Store
 	TRequestStatus status;
@@ -5169,7 +4562,7 @@
 	//Now enumerate messages from store
 	socket.Ioctl(KIoctlEnumerateSmsMessages,status,&sbuf, KSolSmsProv);
 	User::WaitForRequest(status);
-	TEST(status.Int() == KErrNone);
+	TESTCHECK(status.Int(), KErrNone, "Enumerate messages from store");
 
 	//sbuf() includes the count of messages on Store
 	TInt count = sbuf();
@@ -5178,37 +4571,26 @@
 
 	CleanupStack::PopAndDestroy(smsMessage);
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult();
+   	return TestStepResult();
 	}
 
-
 TVerdict CTestWriteStatusReportToSIM::doTestStepL()
 	{
 	INFO_PRINTF1(_L("Test write of status report to SIM"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 49);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrLocalOperation);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrLocalOperation);
 
 	CSmsMessage* smsMessage = CreateSmsMessageLC(CSmsPDU::ESmsStatusReport, CSmsBuffer::NewL(), iTelephoneNumber);
 
 	smsMessage->SetStorage(CSmsMessage::ESmsSIMStorage);
 
-	WriteToSIML(socket, *smsMessage);
+	WriteSmsToSimL(*smsMessage, socket);
 
 	CleanupStack::PopAndDestroy(smsMessage);
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult();
 	}
 
-
 TVerdict CTestTxSmsWithDelayedCompletion::doTestStepL()
     {
     /**
@@ -5218,34 +4600,11 @@
      *  and adding a delay to the SIM TSY's completion time in tsms_config.txt.
      *  DEF047240 - read sendTryTimeout from ESK file
      */
-
 	INFO_PRINTF1(_L("Test Simple Tx SMS"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 60);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
-
- 	// Create comms database object
-#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_2);
-#else
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_1);
-#endif
-	CleanupStack::PushL(db);
-
-	INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck"));
-
-	// EReceiveUnstoredClientAck
-	CMDBField<TUint32>* smsReceiveModeField = new(ELeave) CMDBField<TUint32>(KCDTIdSMSReceiveMode);
-	CleanupStack::PushL(smsReceiveModeField);
-	smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord
-	*smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck;
-	smsReceiveModeField->ModifyL(*db);
-	CleanupStack::PopAndDestroy(smsReceiveModeField);
-	CleanupStack::PopAndDestroy(db);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
+
+	ChangeReceiveModeL(RMobileSmsMessaging::EReceiveUnstoredClientAck);
 
 	_LIT(KTestMsg1,"test message, 8bits, length 30");
 
@@ -5254,26 +4613,21 @@
 	iServiceCenterNumber=KRadiolinjaSC;
 
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
-	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 
 	INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber);
 	INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber);
 
 	//Send SMS
 	SendSmsL(smsMessage,socket);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	INFO_PRINTF1(_L("SMS message sent successfully") );
 
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult();
 	};
 
-
 TVerdict CTestSmsStoreReadCancel::doTestStepL()
 /**
  *  Test Sms message storage - cancel during read
@@ -5282,7 +4636,6 @@
     return TestStepResult() ;
 	}
 
-
 TVerdict CTestBindWhenPoweredDownWithPublishSubscribe::doTestStepL()
 /**
  *  Test bind()ing when powered-down, and subsequent dequeueing of messages upon power-up
@@ -5291,14 +4644,7 @@
 	{
 	INFO_PRINTF1(_L("Test bind() when powered-down with Publish and Subscribe"));
 
-	RSocketServ socketServer;
-	TInt  ret = socketServer.Connect(KSocketMessageSlots);
-    TESTL(ret == KErrNone);
-    CleanupClosePushL(socketServer);
-
-	// Now switch phone off
 	INFO_PRINTF1(_L("switching phone off") );
-
 	RProperty phonePowerProperty;
 	User::LeaveIfError(phonePowerProperty.Attach(KUidSystemCategory, KUidPhonePwr.iUid));
 	CleanupClosePushL(phonePowerProperty);
@@ -5306,21 +4652,10 @@
 	// Create the socket and open for SIM operations
 	RSocket socket;
 	INFO_PRINTF1(_L("binding socket") );
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	// knock power off because opening of socket brought it up
-	TRequestStatus status;
-	TInt phonePowerCheck;
-	do
-    	{
-       	phonePowerProperty.Subscribe(status);
-    	User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOff));
-    	User::After(5 * 1000000);	// sleep 5 secs;
-    	User::WaitForRequest(status);
-    	TEST(status.Int() == KErrNone);
-    	User::LeaveIfError(phonePowerProperty.Get(phonePowerCheck));
-    	}
-	while (phonePowerCheck==ESAPhoneOn);
+	UpdatePhonePowerStatusL(phonePowerProperty, ESAPhoneOff);
 	
 	// Set the SimTSY config.
 	SetSimTSYTestNumberL(29);
@@ -5330,17 +4665,8 @@
 	TEST_CHECKL(bRcv, EFalse, _L("Receive should fail with phone off"));
 
 	// Power on & wait for rx again
-	do
-    	{
-       	phonePowerProperty.Subscribe(status);
-    	User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOn));
-    	User::After(5 * 1000000);	// sleep 5 secs;
-    	User::WaitForRequest(status);
-       	TEST(status.Int() == KErrNone);
-    	User::LeaveIfError(phonePowerProperty.Get(phonePowerCheck));
-    	}
-	while (phonePowerCheck==ESAPhoneOff);
-	
+	UpdatePhonePowerStatusL(phonePowerProperty, ESAPhoneOn);
+
 	// Briefly wait for receipt on it - this should now happen
 	bRcv = TimedWaitForRecvL(socket, 5 * 1000000);
 	TEST_CHECKL(bRcv, ETrue, _L("Receive should now succeed with phone on again"));
@@ -5350,16 +4676,13 @@
 
 	TPtrC fromAddr = smsMessage->ToFromAddress();
 	INFO_PRINTF2(_L("Received SMS from: %S"), &fromAddr);
+
 	CleanupStack::PopAndDestroy(smsMessage);
-	
 	CleanupStack::PopAndDestroy(&socket);
 	CleanupStack::PopAndDestroy(&phonePowerProperty);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+ 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestObserverNotifiedWhenPoweredDownWithPublishSubscribe::doTestStepL()
 /**
  *  Fix Defect 42937
@@ -5381,11 +4704,6 @@
  */
 	{
 	INFO_PRINTF1(_L("Test observer when powered-down"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 59);
-	
-
 	// Open the socket and bind it to ESmsAddrApplication16BitPort 245
 	RSocket socket;
 	TSmsAddr addr16;
@@ -5393,7 +4711,7 @@
 	TInt port(245);
 	addr16.SetPort(port);
 
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,addr16);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,addr16);
 
 	// Switch phone off, causing the stack to notify the observer
 	// corresponding to ESmsAddrApplication16BitPort 245
@@ -5404,39 +4722,16 @@
 	CleanupClosePushL(phonePowerProperty);
 
 	// knock power off because opening of socket brought it up
-	TInt phonePowerCheck;
-	TRequestStatus status;
-	do
-    	{
-       	phonePowerProperty.Subscribe(status);
-    	User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOff));
-    	User::After(5 * 1000000);	// sleep 5 secs;
-    	User::WaitForRequest(status);
-    	TEST(status.Int() == KErrNone);
-    	User::LeaveIfError(phonePowerProperty.Get(phonePowerCheck));
-    	}
-	while (phonePowerCheck==ESAPhoneOn);
+	UpdatePhonePowerStatusL(phonePowerProperty, ESAPhoneOff);
 
 	// bring power back up
-	do
-    	{
-       	phonePowerProperty.Subscribe(status);
-    	User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOn));
-    	User::After(5 * 1000000);	// sleep 5 secs;
-    	User::WaitForRequest(status);
-    	TEST(status.Int() == KErrNone);
-    	User::LeaveIfError(phonePowerProperty.Get(phonePowerCheck));
-    	}
-	while (phonePowerCheck==ESAPhoneOff);
+	UpdatePhonePowerStatusL(phonePowerProperty, ESAPhoneOn);
 
 	CleanupStack::PopAndDestroy(&phonePowerProperty);
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult();
+ 	return TestStepResult();
 	}
 
-
 TVerdict CTestSmsCNumberChangeWithPublishSubscribe::doTestStepL()
 /**
  *  Test SMSC number change
@@ -5459,15 +4754,9 @@
  */
     {
     INFO_PRINTF1(_L("Test SMSC Number Change with Publish and Subscribe"));
-
-    RSocketServ socketServer;
-    TRequestStatus status;
-    PrepareRegTestLC(socketServer, 55);
-	
-
     // Open the socket for SIM operations
     RSocket socket1;
-    iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket1,ESmsAddrLocalOperation);
+    iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket1, ESmsAddrLocalOperation);
     RSmsSocketReadStream readstream1(socket1);
 
     // Create the smspList
@@ -5475,20 +4764,38 @@
     CleanupStack::PushL(smspList1);
 
     // Make read SMS params request to the SMS Stack
-    socket1.Ioctl(KIoctlReadSmsParams,status,NULL,KSolSmsProv);
-    INFO_PRINTF1(_L("waiting for SMS parameters...") );
-    User::WaitForRequest(status);
-    TEST(status.Int() == KErrNone);
-    INFO_PRINTF1(_L("Received SMS parameters..."));
+    TRequestStatus status;
+    TBool tryAgain = ETrue;
+    TInt attempts (0);
+    TInt maxRetries = 3;
+
+    // Enumerate messages from store. If it fails with KErrNotReady wait for 3 seconds to 
+    // allow sms protocol to fully load and repeat
+    while( tryAgain && attempts++ < maxRetries )
+        {
+        socket1.Ioctl(KIoctlReadSmsParams,status,NULL,KSolSmsProv);
+        User::WaitForRequest(status);
+        INFO_PRINTF2(_L("Reading SMS parameters returned [status=%d]"), status.Int());
+        if ( status.Int() == KErrNotReady )
+            {
+            INFO_PRINTF1(_L("Trying to enumerate again... "));
+            User::After(3000000);
+            }
+        else
+            {
+            tryAgain = EFalse;
+            }
+        }
+
+    TESTCHECK(status.Int(), KErrNone, "Reading SMS parameters"); 
 
     // Read list from stream and make acknowledgement to the SMS Stack
-
     INFO_PRINTF1(_L("About to write to smspList1..."));
     readstream1 >> *smspList1;
     INFO_PRINTF1(_L("written to smspList1..."));
     socket1.Ioctl(KIoctlCompleteReadSmsParams,status,NULL,KSolSmsProv);
     User::WaitForRequest(status);
-    TEST(status.Int() == KErrNone);
+    TESTCHECK(status.Int(), KErrNone, "Completing Read SMS parameters...");
 
     iSmsStackTestUtils->PrintSmspList(*smspList1);
 
@@ -5499,18 +4806,7 @@
     CleanupClosePushL(phonePowerProperty);
 
     // knock power off
-	INFO_PRINTF1(_L("switching phone off"));
-	TInt phonePowerCheck;
-	do
-    	{
-       	phonePowerProperty.Subscribe(status);
-    	User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOff));
-    	User::After(5 * 1000000);	// sleep 5 secs;
-    	User::WaitForRequest(status);
-    	TEST(status.Int() == KErrNone);
-    	User::LeaveIfError(phonePowerProperty.Get(phonePowerCheck));
-    	}
-	while (phonePowerCheck==ESAPhoneOn);
+    UpdatePhonePowerStatusL(phonePowerProperty, ESAPhoneOff);
 
     // Move to new test
     RProperty testNumberProperty;
@@ -5529,24 +4825,14 @@
         User::Leave(KErrNotFound);
 
     // Power back on
-    INFO_PRINTF1(_L("switching phone on") );
-	do
-    	{
-       	phonePowerProperty.Subscribe(status);
-    	User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOn));
-    	User::After(5 * 1000000);	// sleep 5 secs;
-    	User::WaitForRequest(status);
-    	TEST(status.Int() == KErrNone);
-    	User::LeaveIfError(phonePowerProperty.Get(phonePowerCheck));
-    	}
-	while (phonePowerCheck==ESAPhoneOff);
+    UpdatePhonePowerStatusL(phonePowerProperty, ESAPhoneOn);
 
     CleanupStack::PopAndDestroy(&testNumberProperty);
     CleanupStack::PopAndDestroy(&phonePowerProperty);
 
     // Open the second socket for SIM operations
     RSocket socket2;
-    iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket2,ESmsAddrLocalOperation);
+    iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket2,ESmsAddrLocalOperation);
 
     RSmsSocketReadStream readstream2(socket2);
 
@@ -5558,13 +4844,13 @@
     socket2.Ioctl(KIoctlReadSmsParams,status,NULL,KSolSmsProv);
     INFO_PRINTF1(_L("waiting for SMS parameters...") );
     User::WaitForRequest(status);
-    TEST(status.Int() == KErrNone);
+    TESTCHECK(status.Int(), KErrNone, "Receiving SMS parameters...");
 
     // Read list from stream and make acknowledgement to the SMS Stack
     readstream2 >> *smspList2;
     socket2.Ioctl(KIoctlCompleteReadSmsParams,status,NULL,KSolSmsProv);
     User::WaitForRequest(status);
-    TEST(status.Int() == KErrNone);
+    TESTCHECK(status.Int(), KErrNone, "Completing Read SMS parameters...");
 
     iSmsStackTestUtils->PrintSmspList(*smspList2);
 
@@ -5579,36 +4865,25 @@
                                  &entryToTsy2.iServiceCentre.iTelNumber);
 
     // Real test - both parameters have a vaild SC number and they are different - it leaves if error
-    TEST(
-        (entryToTsy1.iValidParams & RMobileSmsMessaging::KSCAIncluded) &&
-        (entryToTsy2.iValidParams & RMobileSmsMessaging::KSCAIncluded) &&
-        (entryToTsy1.iServiceCentre.iTelNumber != entryToTsy2.iServiceCentre.iTelNumber)
-                     );
-
-    // Give memory back
+    TEST((entryToTsy1.iValidParams & RMobileSmsMessaging::KSCAIncluded) &&
+         (entryToTsy2.iValidParams & RMobileSmsMessaging::KSCAIncluded) &&
+         (entryToTsy1.iServiceCentre.iTelNumber != entryToTsy2.iServiceCentre.iTelNumber));
+
     CleanupStack::PopAndDestroy(smspList2);
     CleanupStack::PopAndDestroy(&socket2);
     CleanupStack::PopAndDestroy(smspList1);
     CleanupStack::PopAndDestroy(&socket1);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult();
+  	return TestStepResult();
     }
 
-
 TVerdict CTestStatusReportTime::doTestStepL()
 /**
  *  Test a simple Transmit and Receive with status reporting, check time stamp
  */
 	{
 	INFO_PRINTF1(_L("Test Tx an SMS and then receive a status report"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 62);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	_LIT(KTestMsg1,"test message, 8bits, length 30");
 
@@ -5629,7 +4904,6 @@
 
 	//Send SMS
 	SendSmsL(smsMessageSend,socket);
-
 	CleanupStack::PopAndDestroy(smsMessageSend);
 
 	//Receive status report
@@ -5637,12 +4911,9 @@
 	telephoneNumberSC.Copy( KPekka );
 
 	//Receive SMS
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	CSmsMessage* smsMessageRecv = RecvSmsL(socket);
 
-	INFO_PRINTF1(_L("incoming SMS") );
-
 	//Check the status report (timestamp should be 10 seconds later)
 	CleanupStack::PushL(smsMessageRecv);
 	TBool isSR = (smsMessageRecv->Type()==CSmsPDU::ESmsStatusReport);
@@ -5661,34 +4932,32 @@
 		if (timeRecv < timeSend)
 			{
 			//  fail condition
-			INFO_PRINTF1(_L("Timestamp of received status report earlier than sent SMS!"));
+			ERR_PRINTF1(_L("Timestamp of received status report earlier than sent SMS!"));
+			SetTestStepResult(EFail);
 			}
 		else if (timeRecv == timeSend)
 			{
 			//  fail condition
-			INFO_PRINTF1(_L("Timestamp of received status report same as sent SMS!"));
+			ERR_PRINTF1(_L("Timestamp of received status report same as sent SMS!"));
+			SetTestStepResult(EFail);
 			}
 		else
 			{
 			//  pass condition
 			INFO_PRINTF1(_L("Timestamp of received status report later than sent SMS!"));
 			}
-
-		TEST(timeRecv > timeSend);
 		}
 	else
-		INFO_PRINTF1(_L("Received SMS is NOT a Status report!"));
-
-	TEST(isSR==1);
-
-	CleanupStack::PopAndDestroy(smsMessageRecv);
-	CleanupStack::PopAndDestroy(); // socket
-    CleanupStack::PopAndDestroy(&socketServer);
-
+	    {
+		ERR_PRINTF1(_L("Received SMS is NOT a Status report!"));
+		SetTestStepResult(EFail);
+	    }
+
+    CleanupStack::PopAndDestroy(2, &socket); // smsMessageRecv, socket
 	return TestStepResult() ;
 	}
 
-
+//TODO: move to WAPPROT test suite
 TVerdict CTestTx8BitWapWithStatus::doTestStepL()
 	//  Fix Defect 42714
 	//      This test case verifies that 8 Bit Wap messages can
@@ -5709,21 +4978,11 @@
 	//      access to the log id. This will be fixed in defect 42716.
 	//
     {
-    INFO_PRINTF1(_L("Test sending a 8 Bit Wap Message"));
-    INFO_PRINTF1(_L("and receiving a status message"));
-
-    RSocketServ socketServer;
-    RSocket socket;
-    TRequestStatus status;
-
-    PrepareRegTestLC(socketServer, 63);
-	
-
-    socketServer.StartProtocol(KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol,
-                               status);
+    INFO_PRINTF1(_L("Test sending a 8 Bit Wap Message and receiving a status message"));
 
     // (1) Create a Socket for sending wap messages
-    TInt ret=socket.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol);
+    RSocket socket;
+    TInt ret=socket.Open(iSocketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol);
     INFO_PRINTF2(_L("Socket return code is %d"),ret);
     TESTL(ret == KErrNone);
     CleanupClosePushL(socket);
@@ -5734,7 +4993,7 @@
 
     // (2) Create a socket for receiving status reports
     RSocket statusSocket;
-    iSmsStackTestUtils->OpenSmsSocketLC(socketServer,statusSocket,ESmsAddrStatusReport);
+    iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,statusSocket,ESmsAddrStatusReport);
     // socket pushed onto stack inside method call.
 
     // (3) Create a Wap address and bind it to the socket
@@ -5750,7 +5009,9 @@
 
     // (4) Send a test message to address specified in setupgsmsms.txt
     // and the port specified above
-     _LIT8(KWapTestMsg,"BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n");
+    TRequestStatus status;
+    _LIT8(KWapTestMsg,"BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n");
+    
     socket.SendTo(KWapTestMsg,wapAddr,0,status);
     User::WaitForRequest(status);
     TESTL(status.Int()==KErrNone);
@@ -5758,20 +5019,15 @@
 
     // (5) Message has been sent successfully, now check that
     // status report is received for that address.
-    INFO_PRINTF1(_L("waiting for incoming SMS...") );
     WaitForRecvL(statusSocket);
     INFO_PRINTF1(_L("received status report...") );
 
     User::After(200000);
-
     CleanupStack::PopAndDestroy(&statusSocket);
     CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
     return TestStepResult();
     }
 
-
 TVerdict CTestSimStoreCorruptMessage::doTestStepL()
 /**
  *  Added to verify fix for DEF039913
@@ -5784,33 +5040,22 @@
  */
 	{
 	INFO_PRINTF1(_L("Test to see whether RMobileSimStore ignores corrupted SMSs"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 64);
-	
-
-	// Open the socket
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
-
-	TRequestStatus status;
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	// Enumerate messages
+	TRequestStatus status;
 	RPointerArray<CSmsMessage> messages;
 	CleanupResetAndDestroyPushL(messages);
+
 	ReadSmsStoreL(socket, messages, status);
-
-	TEST(status.Int() == KErrNone);
-
-	TEST(messages.Count()==2);
+	TESTCHECK(status.Int(), KErrNone, "Enumerate messages");
+	TESTCHECK(messages.Count(), 2, "CHecking message count equals to 2");
 		
 	CleanupStack::PopAndDestroy(&messages);
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-    
-	return TestStepResult() ;
+  	return TestStepResult() ;
 	}
-
  
  TVerdict CTestCorruptPduWithNegativeResponse::doTestStepL()
  /**
@@ -5822,50 +5067,37 @@
   */
  {
  	INFO_PRINTF1(_L("TestCorruptPduWithNegativeResponse"));
-
- 	RSocketServ socketServer;
- 	PrepareRegTestLC(socketServer, 65);
-	
-
  	RSocket socket;
- 	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+ 	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
  	_LIT(KTestMsg1,"test message, 8bits, length 30");
 
  	//Set destination and SC numbers
  	iTelephoneNumber=KPekka;
  	iServiceCenterNumber=KRadiolinjaSC;
-
  	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
- 	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
- 	CleanupStack::PushL(smsMessage);
+
+ 	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 
  	INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber);
  	INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber);
 
  	//Send SMS
  	SendSmsL(smsMessage,socket);
-
  	CleanupStack::PopAndDestroy(smsMessage);
 
  	//Receive SMS
- 	INFO_PRINTF1(_L("waiting for incoming SMS...") );
  	WaitForRecvL(socket);
  	smsMessage = RecvSmsL(socket);
-
- 	INFO_PRINTF1(_L("incoming SMS") );
-
  	CleanupStack::PushL(smsMessage);
+
  	TestSmsContentsL(smsMessage,KTestMsg1);
 
  	CleanupStack::PopAndDestroy(smsMessage);
  	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-  	return TestStepResult();
+ 	return TestStepResult();
  }
 
-
 TVerdict CTestBootTimer::doTestStepL()
  /**
   *  Test for DEF054033:
@@ -5888,39 +5120,30 @@
   */
 	{
     INFO_PRINTF1(_L("Test receive multi-part WAP message"));
-
-    RSocketServ socketServer;
-    PrepareRegTestLC(socketServer, 45);
-	
-
     RSocket socket;
-    iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+    iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
     TBool msgRcvd = TimedWaitForRecvL(socket, 40000000);
 
     if (msgRcvd)
-    {
+        {
         INFO_PRINTF1(_L("WAP message delivered to messaging application"));
         INFO_PRINTF1(_L("on default watcher"));
-    }
+        }
     else
-    {
+        {
         INFO_PRINTF1(_L("Boot Time did not timeout - Test Failed"));
         User::Leave(KErrGeneral);
-    }
+        }
 
     CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
     return TestStepResult() ;
 	}
 
-
 TVerdict CTestCSmsMessageTimeStamp::doTestStepL()
 /**
  *  Creating a CSmsMessage object, checking it's timestamp is set to UTC time
  */
-
 {
 	//Get the current UTC offset
 	TTime currUTCTime;
@@ -5950,8 +5173,7 @@
 
 	//Create a message
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
-	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg,alphabet);
-	CleanupStack::PushL(smsMessage);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg,alphabet);
 
 	//	Test time stamp, Time()
 	//	Time must be = UTC, we allow 1 second for Message to be created.
@@ -6062,11 +5284,9 @@
 
 	CleanupStack::PopAndDestroy(smsMessage);
 	User::SetUTCTimeAndOffset(currUTCTime,currUTCOffset);
-
 	return TestStepResult();
 }
 
-
 TVerdict CTestCSmsMessageWithDeliverPDU::doTestStepL()
 {
 /**
@@ -6077,15 +5297,9 @@
 	TTimeIntervalSeconds allowableDelay(KMaxAllowanceSeconds);
 	TTimeIntervalSeconds rxPeriod(KMaxRxPeriod);
 
-
 	INFO_PRINTF1(_L("Test Simple Tx and Rx SMS"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 66);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	_LIT(KTestMsg1,"test message, 8bits, length 30");
 
@@ -6095,20 +5309,14 @@
 
 	//Create the message
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
-	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 
 	INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber);
 	INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber);
 
-	//Send SMS
 	SendSmsL(smsMessage,socket);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 
-	//Receive SMS
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
-
 	//Wait for first SMS
 	WaitForRecvL(socket);
 
@@ -6148,15 +5356,12 @@
 
 	CleanupStack::PopAndDestroy(smsMessage);
 
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
-
 	//	Wait for second message to arrive.  Must be round 60 seconds
 	WaitForRecvL(socket);
 
 	//Receive second message
 	smsMessage = RecvSmsL(socket);
 	CleanupStack::PushL(smsMessage);
-
 	INFO_PRINTF1(_L("incoming second SMS") );
 
 	//Checks make on message
@@ -6199,9 +5404,7 @@
 
 	CleanupStack::PopAndDestroy(smsMessage);
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult();
+   	return TestStepResult();
 }
 
 
@@ -6211,13 +5414,8 @@
  */
 	{
 	INFO_PRINTF1(_L("Test Tx an SMS and then receive a status report"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 67);
-	
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	_LIT(KTestMsg1,"test message, 8bits, length 30");
 
@@ -6232,18 +5430,14 @@
 	INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber);
 	INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber);
 
-	//Send SMS
 	SendSmsL(smsMessage,socket);
 	CleanupStack::PopAndDestroy(smsMessage);
 
-	//Receive status report
 	TSmsServiceCenterAddress telephoneNumber;
 	telephoneNumber.Copy( KPekka );
 
-	//Wait for status report
+	// Receive status report
 	WaitForRecvL(socket);
-
-	//Get message from socket
 	smsMessage = RecvSmsL(socket);
 
 	//Get the status report
@@ -6292,9 +5486,7 @@
 
 	CleanupStack::PopAndDestroy(smsMessage);
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult() ;
+ 	return TestStepResult() ;
 	}
 
 TVerdict CTestCSmsMessageWithSubmitPDU::doTestStepL()
@@ -6303,14 +5495,9 @@
  *  UTC value, offset and validity period.
  */
 	{
-	_LIT(KTestMsg,"test message, 8bits, length 30");
 	INFO_PRINTF1(_L("Test Tx an SMS and let SIMTSY validate the validityPeriod in the submit pdu"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 68);
-	
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	//--------------------------------------------------------
 	//	Set the universal time
@@ -6333,9 +5520,9 @@
 	//--------------------------------------------------------
 	
 	//Create a message
+	_LIT(KTestMsg,"test message, 8bits, length 30");
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
-	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg,alphabet);
-	CleanupStack::PushL(smsMessage);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg,alphabet);
 
 	//	Test validity period of submit pdu
 	TEST(smsMessage->Type()==CSmsPDU::ESmsSubmit);
@@ -6353,17 +5540,12 @@
 	
 	//Send the message
 	SendSmsL(smsMessage,socket);
-	TEST(ETrue);
 
 	CleanupStack::PopAndDestroy(smsMessage);
-	//--------------------------------------------------------
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult() ;
 	}
 
-
 TVerdict CTestHandlePID40h::doTestStepL()
 /**
  *  Test for DEF055800
@@ -6372,12 +5554,8 @@
  */
  	{
     INFO_PRINTF1(_L("Check that PDUs with PID = 0x40 are acknowledged but not forwarded to the inbox."));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 69);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	_LIT(KTestMsg1,"test message, 8bits, length 30");
 
@@ -6386,8 +5564,7 @@
 	iServiceCenterNumber=KRadiolinjaSC;
 
 	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
-	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
-	CleanupStack::PushL(smsMessage);
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
 
 	INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber);
 	INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber);
@@ -6398,13 +5575,10 @@
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	//Receive 2 PDUs
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
-
-	INFO_PRINTF1(_L("incoming SMS") );
-
 	CleanupStack::PushL(smsMessage);
+
 	TestSmsContentsL(smsMessage,KTestMsg1);
 
 	//Save the received message to the SMS storage
@@ -6417,20 +5591,16 @@
 	ReadSmsStoreL(socket, messages);
 	// The standard PDU should be in the SIM store, along with two other messages
 	// The PDU with PID 0x40 should be NOT be present
-	TInt count = messages.Count();
-	TEST(count==3);
-	INFO_PRINTF2(_L("Expecting 3 messages in SIM Store, found %d."),count);
+	TESTCHECK(messages.Count(), 3, "Expecting 3 messages in SIM Store" );
 	messages.ResetAndDestroy();
 
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult() ;
 	}
 
 TVerdict CTestDiskSpaceMidRangeClass0Class2::doTestStepPreambleL()
     {
-    CSmsPrtTestStep::doTestStepPreambleL();
+    CSmsBaseTestStep::doTestStepPreambleL();
 
 #ifdef _DEBUG    
     TInt err = RProperty::Define(KUidPSSMSStackCategory, KUidPSSMSStackFreeDiskSpaceKey, RProperty::EInt);
@@ -6457,7 +5627,6 @@
 #ifndef _DEBUG
 	INFO_PRINTF1(_L("This test can only be run when the SMS Stack is in debug mode."));
 #else
-	
 	//
 	// Disk space should be available at the start...
 	//
@@ -6481,21 +5650,22 @@
 	//
 	// Load the SMS Stack...
 	//
-	RSocketServ  socketServer;
-	PrepareRegTestLC(socketServer, 131);
-
 	RSocket  socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer, socket, ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrRecvAny);
 	
 	//
 	// Attempt to receive an SMS - Class 0 message should arrive...
 	//
 	INFO_PRINTF1(_L("Receiving SMS message - Class 0 message should arrive..."));
+	
+    CSmsMessage* message1 = CreateSMSL();
+    CleanupStack::PushL(message1);
+    SendSmsL(message1, socket);
+    CleanupStack::PopAndDestroy(message1);    
 
 	TBool  messageReceived;
-
 	messageReceived = TimedWaitForRecvL(socket, 10*1000000);
-	if (messageReceived)
+	if( messageReceived )
 		{
 		CSmsMessage*  sms = RecvSmsL(socket);
 
@@ -6507,39 +5677,52 @@
 			!sms->SmsPDU().Class(msgClass)  ||
 			msgClass != TSmsDataCodingScheme::ESmsClass0)
 			{
-			INFO_PRINTF1(_L("Message was not Class 0!"));
-			TEST(EFalse);
+			ERR_PRINTF1(_L("Message was not Class 0!"));
+			SetTestStepResult(EFail);
 			}
 
 		delete sms;
 		}
 	else
 		{
-		INFO_PRINTF1(_L("Message not received!"));
-		TEST(EFalse);
+		ERR_PRINTF1(_L("Message not received!"));
+		SetTestStepResult(EFail);
 		}
-		
-	//
+
+	// 1 - rx now triggered from tx; more deterministic
+	// 2 - if class 0 received, disk space available.
+	// 
+	// But I agree with comment below - this seems like a defect in disk monitor
+	// as it depends on order of received messages and not actuall OOD situation!
+	// Disk monitor needs to be updated to give diskfull status when below high
+	// but above low.
+	// 
+	// Old comment below;
 	// Disk space should not be available, even though the Class 0 came through okay.
 	// Potentially I think this maybe a defect in the Disk Space Monitor class.
 	//
 	ret = RProperty::Get(KUidPSSMSStackCategory, KUidPSSMSStackDiskSpaceMonitorKey,
 						 diskSpaceStatus);
 	TEST(ret == KErrNone);
-	TEST(diskSpaceStatus == ESmsDiskSpaceFull);
+	TEST(diskSpaceStatus == ESmsDiskSpaceAvailable);
 
 	//
 	// Attempt to receive an SMS - Class 2 message should not arrive...
 	//
 	INFO_PRINTF1(_L("Receiving SMS message - Class 2 message should not arrive..."));
-
-	messageReceived = TimedWaitForRecvL(socket, 10*1000000);
+	
+    CSmsMessage* message2 = CreateSMSL();
+    CleanupStack::PushL(message2);
+    SendSmsL(message2, socket);
+    CleanupStack::PopAndDestroy(message2);    
+
+    messageReceived = TimedWaitForRecvL(socket, 10*1000000);
 	if (messageReceived)
 		{
 		CSmsMessage*  sms = RecvSmsL(socket);
 
-		INFO_PRINTF1(_L("Message received!"));
-		TEST(EFalse);
+		ERR_PRINTF1(_L("Message received!"));
+		SetTestStepResult(EFail);
 
 		delete sms;
 		}
@@ -6559,6 +5742,8 @@
 	//
 	// Raise the disk space to above the high limit...
 	//
+	INFO_PRINTF1(_L("Raise the disk space to above the high limit"));
+	
     freeDrop = 2;
     ReleaseDiskSpaceL();
     SetFreeDiskSpaceFromDropLevelL(freeDrop);	
@@ -6567,8 +5752,13 @@
 	// Attempt to receive an SMS - Class 2 message should arrive...
 	//
 	INFO_PRINTF1(_L("Receiving SMS message - Class 2 message should arrive..."));
-
-	messageReceived = TimedWaitForRecvL(socket, 10*1000000);
+	
+    CSmsMessage* message3 = CreateSMSL();
+    CleanupStack::PushL(message3);
+    SendSmsL(message3, socket);
+    CleanupStack::PopAndDestroy(message3);    
+
+    messageReceived = TimedWaitForRecvL(socket, 10*1000000);
 	if (messageReceived)
 		{
 		CSmsMessage*  sms = RecvSmsL(socket);
@@ -6581,16 +5771,16 @@
 			!sms->SmsPDU().Class(msgClass)  ||
 			msgClass != TSmsDataCodingScheme::ESmsClass2)
 			{
-			INFO_PRINTF1(_L("Message was not Class 2!"));
-			TEST(EFalse);
+			ERR_PRINTF1(_L("Message was not Class 2!"));
+			SetTestStepResult(EFail);
 			}
 
 		delete sms;
 		}
 	else
 		{
-		INFO_PRINTF1(_L("Message not received!"));
-		TEST(EFalse);
+		ERR_PRINTF1(_L("Message not received!"));
+		SetTestStepResult(EFail);
 		}
 
 	//
@@ -6605,21 +5795,19 @@
 	// Close the SMS Stack...
 	//
 	ReleaseDiskSpaceL();
-		
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
 #endif
 
 	return TestStepResult() ;
-	} // CTestDiskSpaceMidRangeClass0Class2::doTestStepL
+	}
 
 
 /**
  *  Post-amble funtion to ensure the environment is reverted to normal.
  */
 TVerdict CTestDiskSpaceMidRangeClass0Class2::doTestStepPostambleL()
-	{
-#ifdef _DEBUG	
+    {
+#ifdef _DEBUG   
     TInt err = RProperty::Delete(KUidPSSMSStackCategory, KUidPSSMSStackFreeDiskSpaceKey);
     if (err != KErrNone && err != KErrNotFound)
         {
@@ -6627,20 +5815,20 @@
         }   
 #endif
     
-	//
-	// Restore the environment to normal and then call the previous post-amble
-	// function.
-	//
-	RemoveLowHighLimitsFromSmsuRscL();
-	
-	CSmsPrtTestStep::doTestStepPostambleL();
-
-	return TestStepResult() ;
-	} // CTestDiskSpaceMidRangeClass0Class2::doTestStepPostambleL
+    //
+    // Restore the environment to normal and then call the previous post-amble
+    // function.
+    //
+    RemoveLowHighLimitsFromSmsuRscL();
+    
+    CSmsBaseTestStep::doTestStepPostambleL();
+
+    return TestStepResult() ;
+    }
 
 TVerdict CTestDiskSpaceLowRangeClass0Class2::doTestStepPreambleL()
     {
-    CSmsPrtTestStep::doTestStepPreambleL();
+    CSmsBaseTestStep::doTestStepPreambleL();
 
 #ifdef _DEBUG    
     TInt err = RProperty::Define(KUidPSSMSStackCategory, KUidPSSMSStackFreeDiskSpaceKey, RProperty::EInt);
@@ -6668,7 +5856,6 @@
 #ifndef _DEBUG
 	INFO_PRINTF1(_L("This test can only be run when the SMS Stack is in debug mode."));
 #else
-	
 	//
 	// Disk space should be available at the start...
 	//
@@ -6689,14 +5876,8 @@
     
     SetHighLowLimitsAndDiskSpaceLevelL(highDrop, lowDrop, freeDrop);
 	
-	//
-	// Load the SMS Stack...
-	//
-	RSocketServ  socketServer;
-	PrepareRegTestLC(socketServer, 132);
-
 	RSocket  socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer, socket, ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrRecvAny);
 	
 	//
 	// Attempt to receive an SMS - Class 0 message should not arrive...
@@ -6709,9 +5890,8 @@
 		{
 		CSmsMessage*  sms = RecvSmsL(socket);
 
-		INFO_PRINTF1(_L("Message received!"));
-		TEST(EFalse);
-
+		ERR_PRINTF1(_L("Message received!"));
+		SetTestStepResult(EFail);
 		delete sms;
 		}
 	else
@@ -6737,9 +5917,8 @@
 		{
 		CSmsMessage*  sms = RecvSmsL(socket);
 
-		INFO_PRINTF1(_L("Message received!"));
-		TEST(EFalse);
-
+		ERR_PRINTF1(_L("Message received!"));
+		SetTestStepResult(EFail);
 		delete sms;
 		}
 	else
@@ -6780,16 +5959,16 @@
 			!sms->SmsPDU().Class(msgClass)  ||
 			msgClass != TSmsDataCodingScheme::ESmsClass0)
 			{
-			INFO_PRINTF1(_L("Message was not Class 0!"));
-			TEST(EFalse);
+			ERR_PRINTF1(_L("Message was not Class 0!"));
+			SetTestStepResult(EFail);
 			}
 
 		delete sms;
 		}
 	else
 		{
-		INFO_PRINTF1(_L("Message not received!"));
-		TEST(EFalse);
+		ERR_PRINTF1(_L("Message not received!"));
+		SetTestStepResult(EFail);
 		}
 
 	//
@@ -6818,16 +5997,16 @@
 			!sms->SmsPDU().Class(msgClass)  ||
 			msgClass != TSmsDataCodingScheme::ESmsClass2)
 			{
-			INFO_PRINTF1(_L("Message was not Class 2!"));
-			TEST(EFalse);
+			ERR_PRINTF1(_L("Message was not Class 2!"));
+			SetTestStepResult(EFail);
 			}
 
 		delete sms;
 		}
 	else
 		{
-		INFO_PRINTF1(_L("Message not received!"));
-		TEST(EFalse);
+		ERR_PRINTF1(_L("Message not received!"));
+		SetTestStepResult(EFail);
 		}
 
 	//
@@ -6842,74 +6021,52 @@
 	// Close the SMS Stack...
 	//
 	ReleaseDiskSpaceL();
-	
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
+    
 #endif
 
 	return TestStepResult() ;
 	} // CTestDiskSpaceLowRangeClass0Class2::doTestStepL
 
-
 /**
  *  Post-amble funtion to ensure the environment is reverted to normal.
  */
 TVerdict CTestDiskSpaceLowRangeClass0Class2::doTestStepPostambleL()
 	{
-#ifdef _DEBUG	
+#ifdef _DEBUG   
     TInt err = RProperty::Delete(KUidPSSMSStackCategory, KUidPSSMSStackFreeDiskSpaceKey);
     if (err != KErrNone && err != KErrNotFound)
         {
         ERR_PRINTF2(_L("RProperty::Delete() failure [err=%d]"), err);
         }       
 #endif
-    
 	//
 	// Restore the environment to normal and then call the previous post-amble
 	// function.
 	//
 	RemoveLowHighLimitsFromSmsuRscL();
 	
-	CSmsPrtTestStep::doTestStepPostambleL();
+	CSmsBaseTestStep::doTestStepPostambleL();
 
 	return TestStepResult() ;
 	} // CTestDiskSpaceLowRangeClass0Class2::doTestStepPostambleL
 
-
 /**
  *  Simple test of receiving a few corrupt PDUs and then one good one.
  */
 TVerdict CTestCorruptPDUs::doTestStepL()
 	{
-	//
-	// Load the SMS Stack...
-	//
-	RSocketServ  socketServer;
-	PrepareRegTestLC(socketServer, 133);
-
 	RSocket  socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer, socket, ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrRecvAny);
 	
-	//
 	// Attempt to receive the valid SMS...
-	//
 	WaitForRecvL(socket);
-
 	CSmsMessage*  sms = RecvSmsL(socket);
-
-	INFO_PRINTF1(_L("Message received!"));
-
 	delete sms;
 
-	//
-	// Close the SMS Stack...
-	//
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult() ;
-	} // CTestCorruptPDUs::doTestStepL()
-
+	}
 
 /**
  *  Tests the reception of a series of messages which cause the assembly to become full,
@@ -6917,15 +6074,12 @@
  */
 TVerdict CTestCongestedReceive::doTestStepL()
 	{
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 141);
-
 	RSocket socket;
 	TSmsAddr smsaddr;
 	smsaddr.SetSmsAddrFamily(ESmsAddrRecvAny);
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer, socket, smsaddr);
-
-	for (TInt  count = 1;  count <= 30;  count++)
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, smsaddr);
+
+	for (TInt  count = 1;  count <= 30; ++count)
 		{
 		INFO_PRINTF2(_L("Waiting for incoming SMS %d..."), count);
 
@@ -6937,11 +6091,8 @@
 		}
 
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
-	return TestStepResult();
-	}  // CTestCongestedReceive::doTestStepL()
-
+ 	return TestStepResult();
+	}
 
 enum TVerdict CTestEncodingPDUonBoundary::doTestStepL()
 /**
@@ -6953,30 +6104,10 @@
  */
 	{
 	INFO_PRINTF1(_L("Test Encoding PDU on Boundary"));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 143);
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
-
-    // Create comms database object
-#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_2);
-#else
-	CMDBSession* db = CMDBSession::NewL(KCDVersion1_1);
-#endif
-	CleanupStack::PushL(db);
-
-	INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck"));
-
-    // EReceiveUnstoredClientAck
-	CMDBField<TUint32>* smsReceiveModeField = new(ELeave) CMDBField<TUint32>(KCDTIdSMSReceiveMode);
-	CleanupStack::PushL(smsReceiveModeField);
-	smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord
-	*smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck;
-	smsReceiveModeField->ModifyL(*db);
-	CleanupStack::PopAndDestroy(smsReceiveModeField);
-	CleanupStack::PopAndDestroy(db);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
+	
+	ChangeReceiveModeL(RMobileSmsMessaging::EReceiveUnstoredClientAck);
 
 	//	Create a 149 character message (from 4 30 character messages + 1 29 character message).
 	//  Set the encoding to 7 bit encoding. There should be sufficient space in the PDU to
@@ -6990,10 +6121,8 @@
 	
 	TSmsDataCodingScheme::TSmsAlphabet alphabet7Bit=TSmsDataCodingScheme::ESmsAlphabet7Bit;
 		
-	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet7Bit);
-	CleanupStack::PushL(smsMessage);
-
-	
+	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet7Bit);
+
 	// Create the format object
 	CEmsFormatIE* format = CEmsFormatIE::NewL();
 	format->SetStartPosition(147);
@@ -7020,17 +6149,13 @@
 
 	//Send SMS
 	SendSmsL(smsMessage,socket);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	//Receive SMS
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	smsMessage = RecvSmsL(socket);
-	
-	INFO_PRINTF1(_L("incoming SMS") );
-
 	CleanupStack::PushL(smsMessage);
+
 	TestSmsContentsL(smsMessage,KTestMsg1);
 
 	num = smsMessage->NumMessagePDUsL();	
@@ -7039,7 +6164,6 @@
 	//Save the received message to the SMS storage	
 	smsMessage->SetStorage(CSmsMessage::ESmsSIMStorage);
 	WriteSmsToSimL(*smsMessage, socket);
-
 	CleanupStack::PopAndDestroy(smsMessage);
 
 	// Enumerate messages from Store
@@ -7048,30 +6172,19 @@
 	messages.ResetAndDestroy();
 
 	CleanupStack::PopAndDestroy(&socket);
-	CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult() ;	
 	}
 
-
 /**
  *  Tests that a PDU can be received if it has an invalid or reserved IE number.
  */
 TVerdict CTestReceiveInvalidOrReservedIE::doTestStepL()
 	{
-	//
-	// Open a socket to receive an SMS with SIMTSY...
-	//
-	RSocketServ  socketServer;
-	PrepareRegTestLC(socketServer, 144);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny);
 	CleanupClosePushL(socket);
 
-	//
 	// Receive the SMS with the reserved IE value.
-	//
 	WaitForRecvL(socket);
 	CSmsMessage*  smsMessage = RecvSmsL(socket);
 	CleanupStack::PushL(smsMessage);
@@ -7080,16 +6193,9 @@
 	TestSmsContentsL(smsMessage, KTestMsg);
 
 	CleanupStack::PopAndDestroy(smsMessage);
-
-	//
-	// Close the socket.
-	//
 	CleanupStack::PopAndDestroy(&socket);
-	CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult() ;
-	} // CTestReceiveInvalidOrReservedIE::doTestStepL
-
+	}
 
 /**
  *  Tests that standard GSM characters can be sent and received using 7bit
@@ -7097,11 +6203,8 @@
  */
 TVerdict CTestEncoding7bitStandardGSM::doTestStepL()
 	{
-	RSocketServ  socketServer;
-	PrepareRegTestLC(socketServer, 150);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny);
 	CleanupClosePushL(socket);
 
 	//
@@ -7132,16 +6235,10 @@
 		/* Encoding to use */	ESmsEncodingNone,
 		/* Encoding expected */	ESmsEncodingNone);
 	iCharSets.Reset();
-	
-    //
-	// Clean up and finish...
-	//
+
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult();
-	}  // CTestEncoding7bitStandardGSM::doTestStepL
-
+	}
 
 /**
  *  Tests that standard 8bit characters can be sent and received without
@@ -7149,11 +6246,8 @@
  */
 TVerdict CTestEncoding8bitCodePage1252::doTestStepL()
 	{
-	RSocketServ  socketServer;
-	PrepareRegTestLC(socketServer, 151);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny);
 	CleanupClosePushL(socket);
 
 	//
@@ -7170,15 +6264,9 @@
 		/* Encoding expected */	ESmsEncodingNone);
 	iCharSets.Reset();
 	
-	//
-	// Clean up and finish...
-	//
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult();
-	}  // CTestEncoding8bitCodePage1252::doTestStepL
-
+	}
 
 /**
  *  Tests that standard unicode characters can be sent and received without
@@ -7186,11 +6274,8 @@
  */
 TVerdict CTestEncodingUnicode::doTestStepL()
 	{
-	RSocketServ  socketServer;
-	PrepareRegTestLC(socketServer, 152);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny);
 	CleanupClosePushL(socket);
 
 	//
@@ -7207,15 +6292,9 @@
 		/* Encoding expected */	ESmsEncodingNone);
 	iCharSets.Reset();
 
-	//
-	// Clean up and finish...
-	//
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult();
-	}  // CTestEncodingUnicode::doTestStepL
-
+	}
 
 /**
  *  Tests that unconvertible GSM characters can be sent using 7bit by being
@@ -7223,11 +6302,8 @@
  */
 TVerdict CTestEncoding7bitUnconvertibleGSM::doTestStepL()
 	{
-	RSocketServ  socketServer;
-	PrepareRegTestLC(socketServer, 153);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny);
 	CleanupClosePushL(socket);
 
 	//
@@ -7246,15 +6322,9 @@
 		/* Encoding expected */	ESmsEncodingNone);
 	iCharSets.Reset();
 
-	//
-	// Clean up and finish...
-	//
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult();
-	}  // CTestEncoding7bitUnconvertibleGSM::doTestStepL
-
+	}
 
 /**
  *  Tests that non-standard GSM characters can be sent and received using 7bit
@@ -7262,11 +6332,8 @@
  */
 TVerdict CTestEncoding7bitNonStandardGSM::doTestStepL()
 	{
-	RSocketServ  socketServer;
-	PrepareRegTestLC(socketServer, 154);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny);
 	CleanupClosePushL(socket);
 
 	//
@@ -7298,15 +6365,9 @@
 		/* Encoding expected */	ESmsEncodingNone);
 	iCharSets.Reset();
 
-	//
-	// Clean up and finish...
-	//
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult();
-	}  // CTestEncoding7bitNonStandardGSM::doTestStepL
-
+	}
 
 /**
  *  Tests that Turkish characters can be sent and received using 7bit without
@@ -7314,11 +6375,8 @@
  */
 TVerdict CTestEncoding7bitTurkishNationalLanguage::doTestStepL()
 	{
-	RSocketServ  socketServer;
-	PrepareRegTestLC(socketServer, 155);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny);
 	CleanupClosePushL(socket);
 
 	//
@@ -7410,15 +6468,9 @@
 		/* Encoding expected */	ESmsEncodingTurkishSingleShift);
 	iCharSets.Reset();
 
-	//
-	// Clean up and finish...
-	//
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult();
-	}  // CTestEncoding7bitTurkishNationalLanguage::doTestStepL
-
+	}
 
 /**
  *  Generates various messages with some Turkish and unconvertible characters,
@@ -7426,11 +6478,8 @@
  */
 TVerdict CTestEncoding7bitTurkishAndUnconvertible::doTestStepL()
 	{
-	RSocketServ  socketServer;
-	PrepareRegTestLC(socketServer, 156);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny);
 	CleanupClosePushL(socket);
 
 	//
@@ -7449,12 +6498,7 @@
 		/* Encoding expected */	ESmsEncodingTurkishSingleShift);
 	iCharSets.Reset();
 	
-	//
-	// Clean up and finish...
-	//
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult();
 	}  // CTestEncoding7bitTurkishAndUnconvertible::doTestStepL
 
@@ -7467,11 +6511,8 @@
  */
 TVerdict CTestReceivingMessageWithDifferentEncodings::doTestStepL()
 	{
-	RSocketServ  socketServer;
-	PrepareRegTestLC(socketServer, 157);
-
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny);
 	CleanupClosePushL(socket);
 
 	//
@@ -7515,12 +6556,11 @@
 	CSmsMessage*  smsMessage;
 	TInt  pdus;
 	
-	smsMessage = CreateSmsMessageL(msg7BitPtr, TSmsDataCodingScheme::ESmsAlphabet7Bit);
-	CleanupStack::PushL(smsMessage);
+	smsMessage = CreateSmsMessageLC(msg7BitPtr, TSmsDataCodingScheme::ESmsAlphabet7Bit);
 	pdus = smsMessage->NumMessagePDUsL();
-	TESTCHECK(pdus, 3);
+	TESTCHECK(pdus, 3, "Expected 3 PDUs");
 	TRAPD(sendErr, SendSmsL(smsMessage, socket));
-	TESTCHECK(sendErr, KErrNone);
+	TESTCHECK(sendErr, KErrNone, "Sending SMS");
 	CleanupStack::PopAndDestroy(smsMessage);
 	
 	smsMessage = RecvSmsL(socket);
@@ -7528,12 +6568,12 @@
 	TestSmsContentsL(smsMessage, msg7BitPtr);
 	CleanupStack::PopAndDestroy(smsMessage);
 	
-	smsMessage = CreateSmsMessageL(msg8BitPtr, TSmsDataCodingScheme::ESmsAlphabet8Bit);
-	CleanupStack::PushL(smsMessage);
+	smsMessage = CreateSmsMessageLC(msg8BitPtr, TSmsDataCodingScheme::ESmsAlphabet8Bit);
 	pdus = smsMessage->NumMessagePDUsL();
-	TESTCHECK(pdus, 3);
+    TESTCHECK(pdus, 3, "Expected 3 PDUs");
+    
 	TRAP(sendErr, SendSmsL(smsMessage, socket));
-	TESTCHECK(sendErr, KErrNone);
+    TESTCHECK(sendErr, KErrNone, "Sending SMS");
 	CleanupStack::PopAndDestroy(smsMessage);
 	
 	smsMessage = RecvSmsL(socket);
@@ -7541,12 +6581,13 @@
 	TestSmsContentsL(smsMessage, msg8BitPtr);
 	CleanupStack::PopAndDestroy(smsMessage);
 	
-	smsMessage = CreateSmsMessageL(msg16BitPtr, TSmsDataCodingScheme::ESmsAlphabetUCS2);
-	CleanupStack::PushL(smsMessage);
+	smsMessage = CreateSmsMessageLC(msg16BitPtr, TSmsDataCodingScheme::ESmsAlphabetUCS2);
 	pdus = smsMessage->NumMessagePDUsL();
-	TESTCHECK(pdus, 3);
+    TESTCHECK(pdus, 3, "Expected 3 PDUs");
+    
 	TRAP(sendErr, SendSmsL(smsMessage, socket));
-	TESTCHECK(sendErr, KErrNone);
+    TESTCHECK(sendErr, KErrNone, "Sending SMS");
+    
 	CleanupStack::PopAndDestroy(smsMessage);
 	
 	smsMessage = RecvSmsL(socket);
@@ -7596,16 +6637,11 @@
 	TestSmsContentsL(smsMessage, incomingPtr);
 	CleanupStack::PopAndDestroy(smsMessage);
 	
-	//
-	// Clean up and finish...
-	//
 	CleanupStack::PopAndDestroy(incomingBuf);
 	CleanupStack::PopAndDestroy(msg16BitBuf);
 	CleanupStack::PopAndDestroy(msg8BitBuf);
 	CleanupStack::PopAndDestroy(msg7BitBuf);
 	CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult();
 	}  // CTestReceivingMessageWithDifferentEncodings::doTestStepL
 
@@ -7617,16 +6653,10 @@
 TVerdict CTestReceivingMessageAfterSocketClosure::doTestStepL()
 	{
 	INFO_PRINTF1(_L("Test re-requesting to receive a message after socket closure."));
-
-	RSocketServ socketServer;
-	PrepareRegTestLC(socketServer, 159);
-
-	// Open the socket for SIM operations.
 	RSocket socket;
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	// Wait for SMS message receipt.
-	INFO_PRINTF1(_L("waiting for incoming SMS...") );
 	WaitForRecvL(socket);
 	
 	// Close socket before reading the message.
@@ -7634,7 +6664,7 @@
 	
 	// Bind the socket again
 	INFO_PRINTF1(_L("binding socket again; checking for receipt") );
-	iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny);
+	iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny);
 
 	// Briefly wait for receipt on it - this should now happen again.
 	TBool bRcv = TimedWaitForRecvL(socket, 5 * 1000000);
@@ -7642,7 +6672,6 @@
 	
 	// Read the 1st SMS.
 	CSmsMessage* smsMessage1 = RecvSmsL(socket);
-
 	CleanupStack::PushL(smsMessage1);
 
 	TPtrC fromAddr1 = smsMessage1->ToFromAddress();
@@ -7653,7 +6682,6 @@
 	TEST_CHECKL(bRcv, ETrue, _L("Receive after reading 1st message should also succeed."));
 	
 	CSmsMessage* smsMessage2 = RecvSmsL(socket);
-
     CleanupStack::PushL(smsMessage2);
 
     TPtrC fromAddr2 = smsMessage2->ToFromAddress();
@@ -7662,10 +6690,8 @@
 	CleanupStack::PopAndDestroy(smsMessage2);
 	CleanupStack::PopAndDestroy(smsMessage1);
 	CleanupStack::PopAndDestroy(&socket);
-	CleanupStack::PopAndDestroy(&socketServer);
-
 	return TestStepResult() ;
-	}  // CTestReceivingMessageAfterSocketClosure::doTestStepL
+	}
 
 TVerdict CTestSimpleTxAndRxWithLoggingDisabled::doTestStepL()
 /**
@@ -7674,12 +6700,8 @@
  */
 	{
  	INFO_PRINTF1(_L("Test Simple Tx and Rx SMS"));
- 
- 	RSocketServ socketServer;
- 	PrepareRegTestLC(socketServer, 158);
- 
- 	RSocket socket;
- 	iSmsStackTestUtils->OpenSmsSocketL(socketServer,socket,ESmsAddrRecvAny);
+  	RSocket socket;
+ 	iSmsStackTestUtils->OpenSmsSocketL(iSocketServer,socket,ESmsAddrRecvAny);
  	CleanupClosePushL(socket);
  
  	iSmsStackTestUtils->DisableLogging();
@@ -7691,34 +6713,25 @@
  	iServiceCenterNumber=KRadiolinjaSC;
  
  	TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit;
- 	CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet);
- 	CleanupStack::PushL(smsMessage);
+ 	CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet);
  
  	INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber);
  	INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber);
  
  	//Send SMS
  	SendSmsL(smsMessage,socket);
- 
  	CleanupStack::PopAndDestroy(smsMessage);
  
  	//Receive SMS
- 	INFO_PRINTF1(_L("waiting for incoming SMS...") );
  	WaitForRecvL(socket);
  	smsMessage = RecvSmsL(socket);
- 
- 	INFO_PRINTF1(_L("incoming SMS") );
- 
  	CleanupStack::PushL(smsMessage);
+
  	TestSmsContentsL(smsMessage,KTestMsg1);
  	CleanupStack::PopAndDestroy(smsMessage);
  
  	iSmsStackTestUtils->EnableLogging();	
- 	
  	CleanupStack::PopAndDestroy(&socket);
- 	
- 	CleanupStack::PopAndDestroy(&socketServer);
- 
  	return TestStepResult() ;
  	}
 
@@ -7727,11 +6740,8 @@
  */
 TVerdict CTestEncoding7bitNationalLanguages::doTestStepL()
     {
-    RSocketServ  socketServer;
-    PrepareRegTestLC(socketServer, 160);
-
     RSocket socket;
-    iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny);
+    iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny);
     CleanupClosePushL(socket);
 
     //
@@ -7808,26 +6818,18 @@
         /* Encoding to use */   ESmsEncodingTurkishLockingShift,
         /* Encoding expected */ ESmsEncodingTurkishLockingShift);
     iCharSets.Reset();  
-    
-    //
-    // Clean up and finish...
-    //
+
     CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
     return TestStepResult();
-    }  // CTestEncoding7bitNationalLanguages::doTestStepL
+    }
 
 /**
  *  Tests that Portuguese character converters creates a multi PDU SMS message correctly.
  */
 TVerdict CTestEncodingMultiPDUwith7bitNationalLanguages::doTestStepL()
     {
-    RSocketServ  socketServer;
-    PrepareRegTestLC(socketServer, 161);
-
     RSocket socket;
-    iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny);
+    iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny);
     CleanupClosePushL(socket);
 
     //
@@ -7855,26 +6857,17 @@
     iCharSets.Reset(); 
     iAdditionalCharSets.Reset();
 
-    //
-    // Clean up and finish...
-    //
     CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
     return TestStepResult();
-    }  // CTestEncodingMultiPDUwith7bitNationalLanguages::doTestStepL
+    }
 
 /**
  * Test Turkish, Portuguese and Spanish Character Downgrading
  */
 TVerdict CTestEncodingDowngradedWith7bitNationalLanguages::doTestStepL()
     {
-    
-    RSocketServ  socketServer;
-    PrepareRegTestLC(socketServer, 162); 
-
     RSocket socket;
-    iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny);
+    iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny);
     CleanupClosePushL(socket);
 
     //
@@ -7919,26 +6912,17 @@
         /* Encoding expected */ ESmsEncodingNone);
     iCharSets.Reset();
 
-    //
-    // Clean up and finish...
-    //
     CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
     return TestStepResult();
-    }  // CTestEncodingDowngradedWith7bitNationalLanguages::doTestStepL()
+    }
 
 /**
  * Test Portuguese GSM text (Portuguese locking and shift table)...
  */
 TVerdict CTestOptimumEncodingWithLockingAndShift7bitNationalLanguages::doTestStepL()
     {
-
-    RSocketServ  socketServer;
-    PrepareRegTestLC(socketServer, 163); 
-
     RSocket socket;
-    iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny);
+    iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny);
     CleanupClosePushL(socket);
 
     // Test to ensure ESmsEncodingPortugueseSingleShift is selected
@@ -7959,26 +6943,17 @@
          /* Encoding expected */ ESmsEncodingPortugueseSingleShift);
     iCharSets.Reset(); 
     
-    //
-    // Clean up and finish...
-    //
     CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
     return TestStepResult();
-    }  // CTestOptimumEncodingWithLockingAndShift7bitNationalLanguages::doTestStepL()
+    }
 
 /**
  * Test normal GSM text but with Turkish locking and shift table...
  */
 TVerdict CTestOptimumEncodingWithLockingAndDowngrade7bitNationalLanguages::doTestStepL()
     {
-    
-    RSocketServ  socketServer;
-    PrepareRegTestLC(socketServer, 164); 
-
     RSocket socket;
-    iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny);
+    iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny);
     CleanupClosePushL(socket);
     
     // Add characters in the standard table, but request ESmsEncodingTurkishLockingAndSingleShift 
@@ -7994,26 +6969,17 @@
         /* Encoding expected */ ESmsEncodingNone);
     iCharSets.Reset();
     
-    //
-    // Clean up and finish...
-    //
     CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
     return TestStepResult();
-    }  // CTestOptimumEncodingWithLockingAndDowngrade7bitNationalLanguages::doTestStepL()
+    }
 
 /**
  * Test Turkish GSM text with other downgrades (Turkish locking and shift table)...
  */
 TVerdict CTestOptimumEncodingWithLockingAndUnconvertible7bitNationalLanguages::doTestStepL()
     {
-    
-    RSocketServ  socketServer;
-    PrepareRegTestLC(socketServer, 165); 
-
     RSocket socket;
-    iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny);
+    iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny);
     CleanupClosePushL(socket);
 
     // Add Turkish shift characters
@@ -8030,12 +6996,6 @@
         /* Encoding expected */ ESmsEncodingTurkishSingleShift);
     iCharSets.Reset();
 
-    //
-    // Clean up and finish...
-    //
     CleanupStack::PopAndDestroy(&socket);
-    CleanupStack::PopAndDestroy(&socketServer);
-
     return TestStepResult();
-    }  // CTestOptimumEncodingWithLockingAndUnconvertible7bitNationalLanguages::doTestStepL
-
+    }