Revision: 201010 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 15 Mar 2010 12:45:15 +0200
branchRCL_3
changeset 12 8b5d60ce1e94
parent 11 98a7181d2ce7
child 13 0b0e9fce0b58
Revision: 201010 Kit: 201010
commsconfig/commsdatabaseshim/ts_commdb/scripts/020.xml
commsconfig/commsdatabaseshim/ts_commdb/scripts/021.xml
commsconfig/commsdatabaseshim/ts_commdb/scripts/022.xml
commsconfig/commsdatabaseshim/ts_commdb/scripts/022_30.xml
commsconfig/commsdatabaseshim/ts_commdb/scripts/023.xml
commsconfig/commsdatabaseshim/ts_commdb/scripts/024.xml
commsconfig/commsdatabaseshim/ts_commdb/scripts/061_01.xml
commsconfig/commsdatabaseshim/ts_commdb/scripts/061_02.xml
commsconfig/commsdatabaseshim/ts_commdb/scripts/061_03.xml
commsconfig/commsdatabaseshim/ts_commdb/scripts/061_04.xml
commsconfig/commsdatabaseshim/ts_commdb/scripts/Corrupt.xml
commsconfig/commsdatabaseshim/ts_commdb/scripts/Default.xml
commsconfig/commsdatabaseshim/ts_commdb/scripts/Default1.xml
commsconfig/commsdatabaseshim/ts_commdb/scripts/Default7.xml
commsconfig/commsdatabaseshim/ts_commdb/scripts/default3.xml
commsconfig/commsdatabaseshim/ts_commdb/scripts/protect.xml
commsconfig/commsdatabaseshim/ts_commdb/te_cdma2000Settings/config/te_cdmacommdbsettings.xml
commsfwsupport/commselements/meshmachine/inc/mm_mutexpolicies.h
commsfwsupport/commselements/meshmachine/src/mm_node.cpp
commsfwtools/commstools/svg/parse.ini
commsfwtools/commstools/utracedecoder/data/esockmessages.definition.txt
commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/configs/te_ced_reference_by_record_id.xml
commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/configs/te_ced_reference_table01.xml
commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/configs/te_ced_reference_table01_IAP_append.xml
commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/configs/te_ced_reference_table01_IAP_append_tricky.xml
commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/92schema/Contents.xml
commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/93schema/Contents.xml
commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/94schema/Contents.xml
commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/95schema/Contents.xml
commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/base_schema/Contents.xml
commsfwtools/preparedefaultcommsdatabase/defaultcommdb/group/bld.inf
commsfwtools/preparedefaultcommsdatabase/defaultcommdb/group/createcommdbs.pl
commsfwtools/preparedefaultcommsdatabase/src/CommsDatMapper.cpp
commsfwtools/preparedefaultcommsdatabase/src/CommsDatMapperAndValidatorUtils.cpp
commsfwtools/preparedefaultcommsdatabase/src/CommsDatMapperAndValidatorUtils.h
commsfwtools/preparedefaultcommsdatabase/src/CommsDatValidator.cpp
commsfwtools/preparedefaultcommsdatabase/src/MetaDatabaseVisitorRecordLink.cpp
commsfwtools/preparedefaultcommsdatabase/te_commsdat/configs/te_commsdat.xml
commsfwtools/preparedefaultcommsdatabase/te_commsdat/configs/te_commsdat_Wifi_table.xml
commsfwutils/commsbufs/mbufmgrimpl/src/MBufPoolManager.cpp
commsprocess/commsrootserverconfig/group/backup_registration.xml
datacommsserver/esockserver/CoreProviders/src/coremcprstates.cpp
datacommsserver/esockserver/bwins/esocksvrU.DEF
datacommsserver/esockserver/core_states/ss_corepractivities.cpp
datacommsserver/esockserver/core_states/ss_corepractivities.h
datacommsserver/esockserver/core_states/ss_coreprstates.cpp
datacommsserver/esockserver/core_states/ss_coreprstates.h
datacommsserver/esockserver/csock/CS_CLI.CPP
datacommsserver/esockserver/eabi/esocksvrU.DEF
datacommsserver/esockserver/group/BLD.INF
datacommsserver/esockserver/group/backup_registration.xml
datacommsserver/esockserver/inc/ES_SOCK.H
datacommsserver/esockserver/inc/ss_activities.h
datacommsserver/esockserver/inc/ss_connstates.h
datacommsserver/esockserver/inc/ss_flowrequeststates.h
datacommsserver/esockserver/inc/ss_internal_activities.h
datacommsserver/esockserver/inc/ss_nodemessages_dataclient.h
datacommsserver/esockserver/inc/ss_nodemessages_internal.h
datacommsserver/esockserver/inc/ss_nodemessages_serviceprovider.h
datacommsserver/esockserver/ssock/SS_RSLV.CPP
datacommsserver/esockserver/ssock/ss_conn.cpp
datacommsserver/esockserver/ssock/ss_connLegacy.cpp
datacommsserver/esockserver/ssock/ss_connprov.cpp
datacommsserver/esockserver/ssock/ss_connselect.cpp
datacommsserver/esockserver/ssock/ss_connstates.cpp
datacommsserver/esockserver/ssock/ss_flowrequest.cpp
datacommsserver/esockserver/ssock/ss_flowrequeststates.cpp
datacommsserver/esockserver/ssock/ss_intsock.cpp
datacommsserver/esockserver/ssock/ss_mmcommsprov.cpp
datacommsserver/esockserver/ssock/ss_sapshim.cpp
datacommsserver/esockserver/ssock/ss_subconn.cpp
datacommsserver/esockserver/test/CapTests/Connection/Common/Te_Cap_RConnDHCP.xml
datacommsserver/esockserver/test/CapTests/Resolver/Common/Te_Cap_RES.xml
datacommsserver/esockserver/test/CapTests/Socket/Common/Te_Cap_Esock.xml
datacommsserver/esockserver/test/CapTests/Socket_transfer/Config/TE_Cap_Esock_transfer.xml
datacommsserver/esockserver/test/TE_ESock/scriptfiles/te_esock.xml
datacommsserver/esockserver/test/TE_ESock/scriptfiles/te_esock_ethernet_MOMAP16xx.xml
datacommsserver/esockserver/test/TE_ESock/scriptfiles/te_esock_ethernet_wins.xml
datacommsserver/esockserver/test/TE_Ini/testdata/te_ini.xml
datacommsserver/esockserver/test/TE_RConnection/configs/DataMonitoring/DataMonitoring.ced.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/RConnectionNTRAS_Bad.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/ainethernet_MOMAP16xx.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/ainethernet_emulator.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/ainntras.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/ainudp.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/def143083.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectioncmm.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectioncmm_ethernet_MOMAP16xx.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectioncmm_ethernet_emulator.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionconfigdaemon_MOMAP16xx.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionconfigdaemon_emulator.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionethernet_MOMAP16xx.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionethernet_emulator.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionethernet_emulator_test202_204.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionntras.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionudp.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionudp_ethernet_MOMAP16xx.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionudp_ethernet_emulator.xml
datacommsserver/esockserver/test/TE_RConnectionSuite/src/TE_AllInterfaceNotification.cpp
datacommsserver/esockserver/test/TE_Socket/SocketTestSection1.cpp
datacommsserver/esockserver/test/TE_Socket/SocketTestSection31.cpp
datacommsserver/esockserver/test/TE_Socket/SocketTestSection31.h
datacommsserver/esockserver/test/TE_Socket/TestSuiteSocket.cpp
datacommsserver/esockserver/test/TE_Socket/scriptfiles/te_socket_tests.script
datacommsserver/esockserver/test/TS_MultiHoming/ScriptFiles/ESock_TS_MultiHoming_3_Connection.script.assabet
datacommsserver/esockserver/test/TS_MultiHoming/ScriptFiles/TS_MultiHoming_Test18_ced.xml
datacommsserver/esockserver/test/TS_MultiHoming/ScriptFiles/TS_MultiHoming_Test21_ced.xml
datacommsserver/esockserver/test/TS_MultiHoming/ScriptFiles/TS_MultiHoming_net0.xml
datacommsserver/esockserver/test/TS_MultiHoming/ScriptFiles/TS_MultiHoming_net1.xml
datacommsserver/esockserver/test/providers/dummy/src/dummypr_extended_subconnprov.cpp
datacommsserver/esockserver/test/providers/dummy/src/dummypr_network_flow.cpp
datacommsserver/networkingdialogapi/src/ND_DLGSL.CPP
--- a/commsconfig/commsdatabaseshim/ts_commdb/scripts/020.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/scripts/020.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,8 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
-
 
 -->
 
--- a/commsconfig/commsdatabaseshim/ts_commdb/scripts/021.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/scripts/021.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/commsconfig/commsdatabaseshim/ts_commdb/scripts/022.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/scripts/022.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/commsconfig/commsdatabaseshim/ts_commdb/scripts/022_30.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/scripts/022_30.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/commsconfig/commsdatabaseshim/ts_commdb/scripts/023.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/scripts/023.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
  -->
 
--- a/commsconfig/commsdatabaseshim/ts_commdb/scripts/024.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/scripts/024.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
  -->
 
--- a/commsconfig/commsdatabaseshim/ts_commdb/scripts/061_01.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/scripts/061_01.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
  In the case of that IfAuthName or IfAuthPass is 'replaceme' or DefaultTelNum is '+442079460224'
  it needs to be changed to the proper value for testing
--- a/commsconfig/commsdatabaseshim/ts_commdb/scripts/061_02.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/scripts/061_02.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
--- a/commsconfig/commsdatabaseshim/ts_commdb/scripts/061_03.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/scripts/061_03.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,10 +3,9 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
-
  Initial Contributors:
  Nokia Corporation - initial contribution.
 
@@ -14,7 +13,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
  In the case of that IfAuthName or IfAuthPass is 'replaceme' or DefaultTelNum is '+442079460224'
  it needs to be changed to the proper value for testing
--- a/commsconfig/commsdatabaseshim/ts_commdb/scripts/061_04.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/scripts/061_04.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,10 +3,9 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
-
  Initial Contributors:
  Nokia Corporation - initial contribution.
 
@@ -14,7 +13,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
  In the case of that IfAuthName or IfAuthPass is 'replaceme' or DefaultTelNum is '+442079460224'
  it needs to be changed to the proper value for testing
--- a/commsconfig/commsdatabaseshim/ts_commdb/scripts/Corrupt.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/scripts/Corrupt.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,10 +3,9 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
-
  Initial Contributors:
  Nokia Corporation - initial contribution.
 
@@ -14,7 +13,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/commsconfig/commsdatabaseshim/ts_commdb/scripts/Default.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/scripts/Default.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/commsconfig/commsdatabaseshim/ts_commdb/scripts/Default1.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/scripts/Default1.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/commsconfig/commsdatabaseshim/ts_commdb/scripts/Default7.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/scripts/Default7.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/commsconfig/commsdatabaseshim/ts_commdb/scripts/default3.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/scripts/default3.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/commsconfig/commsdatabaseshim/ts_commdb/scripts/protect.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/scripts/protect.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/commsconfig/commsdatabaseshim/ts_commdb/te_cdma2000Settings/config/te_cdmacommdbsettings.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsconfig/commsdatabaseshim/ts_commdb/te_cdma2000Settings/config/te_cdmacommdbsettings.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/commsfwsupport/commselements/meshmachine/inc/mm_mutexpolicies.h	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwsupport/commselements/meshmachine/inc/mm_mutexpolicies.h	Mon Mar 15 12:45:15 2010 +0200
@@ -100,7 +100,11 @@
 	*/
     inline static TBool IsBlocked(const MeshMachine::TNodeContextBase& aContext)
     	{
-		return aContext.iNode.CountActivities(ACTIVITYID) != 0;
+		TInt count = aContext.iNode.CountActivities(ACTIVITYID);
+		MESH_LOG((KMeshMachineSubTag, _L8("TActivityIdMutex: Node [%08x] Activity [%08x]: Number of actid (%d) = %d"), aContext.NodeId().Ptr(), aContext.iNodeActivity,
+				 ACTIVITYID, count));
+
+		return count != 0;
     	}
 	};
 	
@@ -192,11 +196,54 @@
 	*/
     inline static TBool IsBlocked(const MeshMachine::TNodeContextBase& aContext)
     	{
-    	TBool isBlocked = aContext.iNode.CountActivities(ACTIVITYID1) != 0;
-    	isBlocked |= aContext.iNode.CountActivities(ACTIVITYID2) != 0;
-    	isBlocked |= (ACTIVITYID3)? aContext.iNode.CountActivities(ACTIVITYID3) != 0 : EFalse;
-    	isBlocked |= (ACTIVITYID4)? aContext.iNode.CountActivities(ACTIVITYID4) != 0 : EFalse;
-    	isBlocked |= (ACTIVITYID5)? aContext.iNode.CountActivities(ACTIVITYID5) != 0 : EFalse;
+
+		MESH_LOG((KMeshMachineSubTag, _L8("TActivitiesIdMutex: Node [%08x] Activity [%08x]: [2] Number of actid (%d) = %d"), aContext.NodeId().Ptr(), aContext.iNodeActivity,
+				ACTIVITYID2, aContext.iNode.CountActivities(ACTIVITYID2)));
+		if (ACTIVITYID3)
+			{
+			MESH_LOG((KMeshMachineSubTag, _L8("TActivitiesIdMutex: Node [%08x] Activity [%08x]: [3] Number of actid (%d) = %d"), aContext.NodeId().Ptr(), aContext.iNodeActivity,
+					ACTIVITYID3, aContext.iNode.CountActivities(ACTIVITYID3)));
+			if (ACTIVITYID4)
+				{
+				MESH_LOG((KMeshMachineSubTag, _L8("TActivitiesIdMutex: Node [%08x] Activity [%08x]: [4] Number of actid (%d) = %d"), aContext.NodeId().Ptr(), aContext.iNodeActivity,
+						ACTIVITYID4, aContext.iNode.CountActivities(ACTIVITYID4)));
+				if (ACTIVITYID5)
+					{
+					MESH_LOG((KMeshMachineSubTag, _L8("TActivitiesIdMutex: Node [%08x] Activity [%08x]: [5] Number of actid (%d) = %d"), aContext.NodeId().Ptr(), aContext.iNodeActivity,
+							ACTIVITYID5, aContext.iNode.CountActivities(ACTIVITYID5)));
+					}
+				}
+			}
+		TInt count = 0;
+		count = aContext.iNode.CountActivities(ACTIVITYID1);
+		MESH_LOG((KMeshMachineSubTag, _L8("TActivitiesIdMutex: Node [%08x] Activity [%08x]: [1] Number of actid (%d) = %d"), aContext.NodeId().Ptr(), aContext.iNodeActivity, ACTIVITYID1, count));
+    	TBool isBlocked = (count != 0);
+
+		count = aContext.iNode.CountActivities(ACTIVITYID2);
+		MESH_LOG((KMeshMachineSubTag, _L8("TActivitiesIdMutex: Node [%08x] Activity [%08x]: [2] Number of actid (%d) = %d"), aContext.NodeId().Ptr(), aContext.iNodeActivity, ACTIVITYID2, count));
+    	isBlocked |= (count != 0);
+		
+		if (ACTIVITYID3)
+			{
+			count = aContext.iNode.CountActivities(ACTIVITYID3);
+			MESH_LOG((KMeshMachineSubTag, _L8("TActivitiesIdMutex: Node [%08x] Activity [%08x]: [3] Number of actid (%d) = %d"), aContext.NodeId().Ptr(), aContext.iNodeActivity, ACTIVITYID3, count));
+			isBlocked |= (count != 0);
+
+			if (ACTIVITYID4)
+				{
+				count = aContext.iNode.CountActivities(ACTIVITYID4);
+				MESH_LOG((KMeshMachineSubTag, _L8("TActivitiesIdMutex: Node [%08x] Activity [%08x]: [4] Number of actid (%d) = %d"), aContext.NodeId().Ptr(), aContext.iNodeActivity, ACTIVITYID4, count));
+				isBlocked |= (count != 0);
+
+				if (ACTIVITYID5)
+					{
+					count = aContext.iNode.CountActivities(ACTIVITYID5);
+					MESH_LOG((KMeshMachineSubTag, _L8("TActivitiesIdMutex: Node [%08x] Activity [%08x]: [5] Number of actid (%d) = %d"), aContext.NodeId().Ptr(), aContext.iNodeActivity, ACTIVITYID5, count));
+					isBlocked |= (count != 0);
+					}
+				}
+			}
+		
 		return isBlocked;
     	}
 	};
@@ -213,7 +260,9 @@
 	*/
     inline static TBool IsBlocked(const MeshMachine::TNodeContextBase& aContext)
     	{
-    	return aContext.iNode.CountAllActivities() != 0;
+		TInt count = aContext.iNode.CountAllActivities();
+		MESH_LOG((KMeshMachineSubTag, _L8("Node [%08x] Activity [%08x]: Count all activities %d"), aContext.NodeId().Ptr(), aContext.iNodeActivity, count));
+    	return count != 0;
     	}
 	};
 
@@ -238,7 +287,9 @@
 #ifdef __GCCXML__
 		return EFalse;
 #else
-		return aContext.iNode.CountClients<TMATCHPOLICY>(Messages::TClientType(TYPE,FLAGS)) != 0;
+		TInt count = aContext.iNode.CountClients<TMATCHPOLICY>(Messages::TClientType(TYPE,FLAGS));
+		MESH_LOG((KMeshMachineSubTag, _L8("TClientMutex Node [%08x] Activity [%08x]: Count Clients (%x, %x) = %d"), aContext.NodeId().Ptr(), aContext.iNodeActivity, TYPE, FLAGS, count));
+		return count != 0;
 #endif
     	}
 	};
@@ -264,7 +315,9 @@
 #ifdef __GCCXML__
 		return EFalse;
 #else
-		return aContext.iNode.CountClients<TMATCHPOLICY>(Messages::TClientType(TYPE,FLAGS)) == 0;
+		TInt count = aContext.iNode.CountClients<TMATCHPOLICY>(Messages::TClientType(TYPE,FLAGS));
+		MESH_LOG((KMeshMachineSubTag, _L8("TNoClientMutex Node [%08x] Activity [%08x]: Count Clients (%x, %x) = %d"), aContext.NodeId().Ptr(), aContext.iNodeActivity, TYPE, FLAGS, count));
+		return count == 0;
 #endif
     	}
 	};
--- a/commsfwsupport/commselements/meshmachine/src/mm_node.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwsupport/commselements/meshmachine/src/mm_node.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -438,6 +438,13 @@
     for (TInt i = iActivities.Count() - 1; i>=0; i--)
         {
         aContext.iNodeActivity = iActivities[i];
+		
+		// We dont want to abort already idle activities or they may error.		
+		if(aContext.iNodeActivity->IsIdle())
+			{
+			continue;
+			}
+		
         if (caller != aContext.iNodeActivity)
             {
         	if (abortAll)
--- a/commsfwtools/commstools/svg/parse.ini	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/commstools/svg/parse.ini	Mon Mar 15 12:45:15 2010 +0200
@@ -1,7 +1,7 @@
 # Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
+# under the terms of "Eclipse Public License v1.0"
 # which accompanies this distribution, and is available
 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
 #
--- a/commsfwtools/commstools/utracedecoder/data/esockmessages.definition.txt	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/commstools/utracedecoder/data/esockmessages.definition.txt	Mon Mar 15 12:45:15 2010 +0200
@@ -1007,6 +1007,8 @@
 	ECFDCStopped               	= 4
 	ECFCommsBinderRequest		= 5
 	ECFCommsBinderResponse		= 6
+	ECFCommsBindToComplete		= 7
+	
 END ENUM
 
 MESSAGE Start
@@ -1039,6 +1041,10 @@
     MESSAGEID = KServiceProviderRealmId:ECFCommsBinderResponse
 END MESSAGE
 
+MESSAGE CommsBindToComplete
+     SIGNATURE = TSigNumber
+     MESSAGEID = KServiceProviderRealmId:ECFCommsBindToComplete
+END MESSAGE
 
 // ss_nodemessages_subconn_controlclient.h
 CONST KSubConnCCRealmId = 0x10285F50
--- a/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/configs/te_ced_reference_by_record_id.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/configs/te_ced_reference_by_record_id.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/configs/te_ced_reference_table01.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/configs/te_ced_reference_table01.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,10 +3,11 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
+
  Initial Contributors:
  Nokia Corporation - initial contribution.
 
@@ -14,7 +15,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/configs/te_ced_reference_table01_IAP_append.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/configs/te_ced_reference_table01_IAP_append.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,10 +3,11 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
+
  Initial Contributors:
  Nokia Corporation - initial contribution.
 
--- a/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/configs/te_ced_reference_table01_IAP_append_tricky.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/configs/te_ced_reference_table01_IAP_append_tricky.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,10 +3,11 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
+
  Initial Contributors:
  Nokia Corporation - initial contribution.
 
@@ -14,7 +15,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/92schema/Contents.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/92schema/Contents.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -16,7 +16,6 @@
  XML file with the definitions of the XML Schema files to be used
  by the CommDB Editor in order to learn the structure of the CommDB
  tables
- All Rights Reserved
 
 -->
 
--- a/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/93schema/Contents.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/93schema/Contents.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -16,8 +16,7 @@
  XML file with the definitions of the XML Schema files to be used
  by the CommDB Editor in order to learn the structure of the CommDB
  tables
- All Rights Reserved
-
+ 
 -->
 
 
--- a/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/94schema/Contents.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/94schema/Contents.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -16,7 +16,6 @@
  XML file with the definitions of the XML Schema files to be used
  by the CommDB Editor in order to learn the structure of the CommDB
  tables
- All Rights Reserved
 
 -->
 
--- a/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/95schema/Contents.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/95schema/Contents.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -16,7 +16,6 @@
  XML file with the definitions of the XML Schema files to be used
  by the CommDB Editor in order to learn the structure of the CommDB
  tables
- All Rights Reserved
 
 -->
 
--- a/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/base_schema/Contents.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/Tools/cfg2xml/com/symbian/commdb/base_schema/Contents.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -16,7 +16,6 @@
  XML file with the definitions of the XML Schema files to be used
  by the CommDB Editor in order to learn the structure of the CommDB
  tables
- All Rights Reserved
 
 -->
 
--- a/commsfwtools/preparedefaultcommsdatabase/defaultcommdb/group/bld.inf	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/defaultcommdb/group/bld.inf	Mon Mar 15 12:45:15 2010 +0200
@@ -26,3 +26,4 @@
 	option SRCDIR ../version1/src
 #endif
 end
+
--- a/commsfwtools/preparedefaultcommsdatabase/defaultcommdb/group/createcommdbs.pl	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/defaultcommdb/group/createcommdbs.pl	Mon Mar 15 12:45:15 2010 +0200
@@ -368,8 +368,8 @@
 	print("Copy $winsCdb to $zDriveCre\n");
 	CopyFile($winsCdb, $zDriveCre);
 
-	#print("Copy $winsCdb to $romCdb\n");
-	#CopyFile($winsCdb, $romCdb);
+	print("Copy $winsCdb to $romCdb\n");
+	CopyFile($winsCdb, $romCdb);
 }
 
 sub CheckCedLog 
--- a/commsfwtools/preparedefaultcommsdatabase/src/CommsDatMapper.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/src/CommsDatMapper.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -1602,29 +1602,24 @@
     		}
     	}
     
-    CCDAccessPointRecord* ipprotoAP = NULL;
-        
-    if (!CommsDatMapperAndValidator::IsIPProtoAPAlreadyExistL(linkAPTagId, iSession.iOwner))
+    CCDAccessPointRecord* ipProtoAP = CommsDatMapperAndValidator::LoadIPProtoAccessPoint(linkAPTagId, iSession.iOwner);
+    
+    if (!ipProtoAP)
     	{
     	//The IPProto AP is not existing yet. Generate one.
-	    ipprotoAP = CommsDatMapperAndValidator::GenerateIPProtoAPL(IPProtoBaseTagId,
-	    														   linkAPTagId,
-	                                                               iSession.iOwner);
-	    
-	    CleanupStack::PushL(ipprotoAP);
+        ipProtoAP = CommsDatMapperAndValidator::GenerateIPProtoAPL(IPProtoBaseTagId, linkAPTagId, iSession.iOwner);
+	    CleanupStack::PushL(ipProtoAP);
 	    
 	    //save the generated AP record
-	    ipprotoAP->StoreL(iSession.iOwner);
+	    ipProtoAP->StoreL(iSession.iOwner);
     	}
     else
     	{
     	//The IPProto AP is already exsiting. Use that one.
-    	ipprotoAP = CommsDatMapperAndValidator::LoadTheAPL(linkAPTagId, iSession.iOwner);
-    	
-    	CleanupStack::PushL(ipprotoAP);
+    	CleanupStack::PushL(ipProtoAP);
     	}
     
-    TMDBElementId elemId = ipprotoAP->ElementId();
+    TMDBElementId elemId = ipProtoAP->ElementId();
     elemId &= KCDMaskHideAttrAndRes;
     TMDBElementId tableAndRecordBitMask = KCDMaskShowRecordType | KCDMaskShowRecordId;
     elemId &= tableAndRecordBitMask;
@@ -1642,7 +1637,7 @@
         CommsDatMapperAndValidator::ModifyDefaultTierRecordL(elemId, iSession.iOwner);
         }
     
-    CleanupStack::PopAndDestroy(ipprotoAP);
+    CleanupStack::PopAndDestroy(ipProtoAP);
     }
 
 void CCDMapperIAPPrioritySelectionPolicyRecord::DeleteIPProtoAPL(CMDBRecordLink<CCDAccessPointRecord>*& aAPPriorityField)
--- a/commsfwtools/preparedefaultcommsdatabase/src/CommsDatMapperAndValidatorUtils.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/src/CommsDatMapperAndValidatorUtils.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -157,8 +157,7 @@
 	apRecordToBeCreated->iCpr.SetL(templateForTheAPRec->iCpr);
 	apRecordToBeCreated->iSCpr.SetL(templateForTheAPRec->iSCpr);
 	apRecordToBeCreated->iProtocol.SetL(templateForTheAPRec->iProtocol);
-    CMDBField<TInt>* custFiel = &(apRecordToBeCreated->iCustomSelectionPolicy);
-    *custFiel = aLinkLevelAPTagId;
+	apRecordToBeCreated->iCustomSelectionPolicy.SetL(aLinkLevelAPTagId);
     apRecordToBeCreated->iCprConfig.SetL(aLinkLevelAPTagId);
     
     CleanupStack::PopAndDestroy(templateForTheAPRec);
@@ -309,49 +308,72 @@
 	return recId;
 	}
 
+
+/*
+Populates an access point record with the first matching IP Proto Access Point record.
+
+@param aAccessPoint An access point record that will be populated with data from the
+                    first matching record. This can have fields primed in order to
+                    make the match more specific
+@param aSession     The commsdat session to use  
+@return             ETrue if a matching IP Proto access point is found. EFalse if it is not.
+@exception          KErrCorrupt if the IP Proto Tier entry is missing from the database.
+                    It can leave with other errors from other parts of commsdat/cenrep
+*/
+TBool CommsDatMapperAndValidator::FindIPProtoAccessPointRecordL(CommsDat::CCDAccessPointRecord& aAccessPoint, CommsDat::CMDBSession& aSession)
+    {
+    // Find the IP Proto tier record - we can then use this information to more efficently find the ip proto access points
+    CMDBField<TInt> tierRecord;
+    tierRecord.SetElementId(KCDTIdTierRecord | KCDTIdRecordTag);
+    tierRecord.SetL(EIPProtoTierId);
+    TBool found = tierRecord.FindL(aSession);
+    if (!found)
+        {
+        __FLOG_STATIC0(KLogComponent, KCDInfoLog, _L("CommsDatMapperAndValidator::FindIPProtoAccessPointRecordL - ERROR: IP Proto Tier entry missing!!"));
+        User::Leave(KErrCorrupt);
+        }
+
+    TMDBElementId tierElement; // This is where the AP record will link if it is an IP Proto AP
+    tierElement = tierRecord.ElementId() & (KCDMaskShowType | KCDMaskShowRecordId);
+    
+    aAccessPoint.iTier = tierElement;
+    found = aAccessPoint.FindL(aSession);
+    
+    return found;
+    }
+
 TBool CommsDatMapperAndValidator::IsIPProtoAPAlreadyExistL(TInt aLinkLevelTagId,
 														  CommsDat::CMDBSession& aSession)
 	{
-	TBool ret = EFalse;
-	
-	CMDBField<TInt>* ipprotoCustSelPolField = new(ELeave)CMDBField<TInt>(KCDTIdCustomSelectionPolicy);
-	CleanupStack::PushL(ipprotoCustSelPolField);
-	
-	*ipprotoCustSelPolField = aLinkLevelTagId;
-	
-	if (ipprotoCustSelPolField->FindL(aSession))
-		{
-		ret = ETrue;
-		}
-	
-	CleanupStack::PopAndDestroy(ipprotoCustSelPolField);
-	
-	return ret;
+    CCDAccessPointRecord* ap = (CCDAccessPointRecord*)CCDRecordBase::RecordFactoryL(KCDTIdAccessPointRecord);
+    CleanupStack::PushL(ap);
+    
+    ap->iCustomSelectionPolicy = aLinkLevelTagId;
+    
+    TBool found = FindIPProtoAccessPointRecordL(*ap, aSession);
+	CleanupStack::PopAndDestroy(ap);
+    
+	return found;
 	}
 
 TBool CommsDatMapperAndValidator::IsIPProtoAPAlreadyExistL(TInt aLinkLevelTagId, 
 														   TInt aConnPrefElementId, 
 														   CommsDat::CMDBSession& aSession)
 	{
-	TBool ret = EFalse;
-	
-	CCDAccessPointRecord* apRec = static_cast<CCDAccessPointRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdAccessPointRecord));
-	CleanupStack::PushL(apRec);
-	
-	apRec->iCprConfig = aConnPrefElementId;
-	apRec->iCustomSelectionPolicy = aLinkLevelTagId;
-	
-	if (apRec->FindL(aSession))
-		{
-		ret = ETrue;
-		}
-	
-	CleanupStack::PopAndDestroy(apRec);
-	
-	return ret;
+    CCDAccessPointRecord* ap = (CCDAccessPointRecord*)CCDRecordBase::RecordFactoryL(KCDTIdAccessPointRecord);
+    CleanupStack::PushL(ap);
+    
+    ap->iCprConfig = aConnPrefElementId;
+    ap->iCustomSelectionPolicy = aLinkLevelTagId;
+
+    TBool found = FindIPProtoAccessPointRecordL(*ap, aSession);
+    CleanupStack::PopAndDestroy(ap);
+    
+    return found;
 	}
 
-CommsDat::CCDAccessPointRecord* CommsDatMapperAndValidator::LoadTheAPL(TInt aLinkLevelTagId,
+
+CommsDat::CCDAccessPointRecord* CommsDatMapperAndValidator::LoadIPProtoAccessPoint(TInt aLinkLevelTagId,
 										   							   CommsDat::CMDBSession& aSession)
 	{
     CCDAccessPointRecord* apRec = static_cast<CCDAccessPointRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdAccessPointRecord));
@@ -359,17 +381,17 @@
     
     apRec->iCustomSelectionPolicy = aLinkLevelTagId;
     
-    if(!apRec->FindL(aSession))
-    	{
-    	//no records were found with the given customSelectionPolicy value
-    	User::Leave(KErrNotFound);
-    	}
+    if (!FindIPProtoAccessPointRecordL(*apRec, aSession))
+        {
+        CleanupStack::PopAndDestroy(apRec);
+        return NULL;
+        }
     
-    CleanupStack::Pop(apRec);
-    
+    CleanupStack::Pop(apRec); // ownership of the AP record is given to the caller
     return apRec;
 	}
 
+
 /* All of the APPrioritySelectionPolicy fields are exemined checking that how many
  * fields, in different APPrioritySelPol records, are referencing the given AP
  * record. The recordSet->FindL with a primed record is not suitable here because
@@ -482,6 +504,7 @@
 	return refCount;
 	}
 
+
 TBool CommsDatMapperAndValidator::IsIAPRecInDB(CommsDat::CMDBSession& aSession)
 	{
 	TBool ret = EFalse;
--- a/commsfwtools/preparedefaultcommsdatabase/src/CommsDatMapperAndValidatorUtils.h	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/src/CommsDatMapperAndValidatorUtils.h	Mon Mar 15 12:45:15 2010 +0200
@@ -29,6 +29,7 @@
 
 #ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
 
+#include <metadatabase.h>
 #include <cdbcols.h>
 #include <in_sock.h> //KAfInet
 //forward declarations
@@ -127,7 +128,8 @@
     
     static TBool IsIPProtoAPAlreadyExistL(TInt aLinkLevelTagId, TInt aConnPrefElementId, CommsDat::CMDBSession& aSession);
     
-    static CommsDat::CCDAccessPointRecord* LoadTheAPL(TInt aLinkLevelTagId, CommsDat::CMDBSession& aSession);
+    static inline CommsDat::CCDAccessPointRecord* LoadIPProtoAccessPointL(TInt aLinkLevelTagId, CommsDat::CMDBSession& aSession);
+    static CommsDat::CCDAccessPointRecord* LoadIPProtoAccessPoint(TInt aLinkLevelTagId, CommsDat::CMDBSession& aSession);
     
     static TInt CountReferenceToThisIPProtoAPL(TUint aElementId, CommsDat::CMDBSession& aSession);
     
@@ -151,11 +153,23 @@
     CommsDatMapperAndValidator& operator=(const CommsDatMapperAndValidator&);
     
     static void CheckTheAPPrioritySelPolFromConnPrefModL(CommsDat::CCDAPPrioritySelectionPolicyRecord*& aAPSelPolRec);
+    static TBool FindIPProtoAccessPointRecordL(CommsDat::CCDAccessPointRecord& aAccessPoints, CommsDat::CMDBSession& aSession);
     
     }; //CommsDatMapperAndValidator
     
+inline CommsDat::CCDAccessPointRecord* CommsDatMapperAndValidator::LoadIPProtoAccessPointL(TInt aLinkLevelTagId, CommsDat::CMDBSession& aSession)
+    {
+    CommsDat::CCDAccessPointRecord* ap = LoadIPProtoAccessPoint(aLinkLevelTagId, aSession);
+    if (!ap)
+        {
+        User::Leave(KErrNotFound);
+        }
+    return ap;
+    }
+
 } //end of namespace CommsDatInternal
 
 #endif //SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
 
 #endif //COMMSDATMAPPERANDVALIDATORUTILS_H
+
--- a/commsfwtools/preparedefaultcommsdatabase/src/CommsDatValidator.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/src/CommsDatValidator.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -1927,7 +1927,7 @@
     else
     	{
     	//The IPProto AP is already exsiting. Use that one.
-    	ipprotoAP = CommsDatMapperAndValidator::LoadTheAPL(iLinkAPTagId, iSession.iOwner);
+    	ipprotoAP = CommsDatMapperAndValidator::LoadIPProtoAccessPointL(iLinkAPTagId, iSession.iOwner);
     	
     	CleanupStack::PushL(ipprotoAP);
     	}
@@ -2044,7 +2044,8 @@
     	 * a new one should be generated.
     	 */
     	
-    	if (!CommsDatMapperAndValidator::IsIPProtoAPAlreadyExistL(iLinkAPTagId, iSession.iOwner))
+        apRecordToBeModified = CommsDatMapperAndValidator::LoadIPProtoAccessPoint(iLinkAPTagId, iSession.iOwner);
+    	if (!apRecordToBeModified)
     		{
     		//ok, there is no AP with the given customSelPol field
 	        apRecordToBeModified = static_cast<CCDAccessPointRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdAccessPointRecord));
@@ -2058,8 +2059,6 @@
     		{
     		//there is already an AP with the given customSelPol field
     		//delete the currently used IPProto AP
-    		apRecordToBeModified = CommsDatMapperAndValidator::LoadTheAPL(iLinkAPTagId, iSession.iOwner);
-        	
         	CleanupStack::PushL(apRecordToBeModified);
         	
     		CCDAccessPointRecord* apRecordToBeDeleted = static_cast<CCDAccessPointRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdAccessPointRecord));
@@ -2119,7 +2118,7 @@
     		{
     		//the given IPProto is already existing with the received Link TagId (and cprConfig
     		//field if the connpref is prompting). Let's use that one
-    		apRecordToBeModified = CommsDatMapperAndValidator::LoadTheAPL(iLinkAPTagId, iSession.iOwner);
+    		apRecordToBeModified = CommsDatMapperAndValidator::LoadIPProtoAccessPointL(iLinkAPTagId, iSession.iOwner);
         	
         	CleanupStack::PushL(apRecordToBeModified);
     		
--- a/commsfwtools/preparedefaultcommsdatabase/src/MetaDatabaseVisitorRecordLink.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/src/MetaDatabaseVisitorRecordLink.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -207,9 +207,10 @@
     TInt err = TMDBVisitor<TInt>::LoadL(aSession, (*iElementId & ~KCDMaskShowRecordId) | (aRecordId & KCDMaskShowRecordId), aAttributeFlags);
     
     if (iOwner->Type() == ELink &&
-        err == KErrNone )
+        err == KErrNone &&
+        iLinkedRecord != NULL)
         {
-        if (iLinkedRecord != NULL && *iLinkedRecord != NULL)
+        if (*iLinkedRecord != NULL)
             {
             CheckLinkedRecordL(iTarget->iValue);
 
--- a/commsfwtools/preparedefaultcommsdatabase/te_commsdat/configs/te_commsdat.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/te_commsdat/configs/te_commsdat.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/commsfwtools/preparedefaultcommsdatabase/te_commsdat/configs/te_commsdat_Wifi_table.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwtools/preparedefaultcommsdatabase/te_commsdat/configs/te_commsdat_Wifi_table.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/commsfwutils/commsbufs/mbufmgrimpl/src/MBufPoolManager.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsfwutils/commsbufs/mbufmgrimpl/src/MBufPoolManager.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -265,6 +265,8 @@
 			}
 		}
 
+    ASSERT(selectedPoolChain != NULL);  // AO should only be triggered once a pool selected for growth
+
 	// Might have wrapped round all the PoolChains
 	if ( (iNextMBufSize == KNoOutstandingRequests)  
 			&& (lowestRequest != growThisPoolChain) )
--- a/commsprocess/commsrootserverconfig/group/backup_registration.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/commsprocess/commsrootserverconfig/group/backup_registration.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -4,7 +4,7 @@
  Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
--- a/datacommsserver/esockserver/CoreProviders/src/coremcprstates.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/CoreProviders/src/coremcprstates.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -397,8 +397,7 @@
 DEFINE_SMELEMENT(TAwaitingClientLeaveAndNoClients, NetStateMachine::MState, MCprStates::TContext)
 TBool TAwaitingClientLeaveAndNoClients::Accept()
     {
-    CoreStates::TAwaitingClientLeave clientLeave(iContext);
-    if (clientLeave.Accept())
+    if (iContext.iMessage.IsMessage<TEPeer::TLeaveRequest>() || iContext.iMessage.IsMessage<TEChild::TLeft>())
 		{
 		TClientIter<TDefaultClientMatchPolicy> iter = iContext.Node().GetClientIter<TDefaultClientMatchPolicy>(TClientType(TCFClientType::ECtrl|TCFClientType::EData));
 		__ASSERT_DEBUG(iter[0], User::Panic(KSpecAssert_ESockCrPrvMCPRSC, 5));
--- a/datacommsserver/esockserver/bwins/esocksvrU.DEF	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/bwins/esocksvrU.DEF	Mon Mar 15 12:45:15 2010 +0200
@@ -1,6 +1,6 @@
 EXPORTS
 	?ThreadEntrypoint@CWorkerThread@@SAHPAX@Z @ 1 NONAME ; int CWorkerThread::ThreadEntrypoint(void *)     
-        ?GetVDataTableStatic@TMCprGetConnectionSetting@ESock@@SAPBUSVDataTableEntry@Meta@@XZ @ 2 NONAME ; struct Meta::SVDataTableEntry const * ESock::TMCprGetConnectionSetting::GetVDataTableStatic(void)
+	?GetVDataTableStatic@TMCprGetConnectionSetting@ESock@@SAPBUSVDataTableEntry@Meta@@XZ @ 2 NONAME ; struct Meta::SVDataTableEntry const * ESock::TMCprGetConnectionSetting::GetVDataTableStatic(void)
 	?Write@RInternalSocket@@QAEXABVTDesC8@@AAVTRequestStatus@@@Z @ 3 NONAME ; void RInternalSocket::Write(class TDesC8 const &, class TRequestStatus &)
 	?WorkerId@ESockLogExternal@@SAHXZ @ 4 NONAME ; int ESockLogExternal::WorkerId(void)
 	??0CConnectionSettings@@QAE@XZ @ 5 NONAME ; CConnectionSettings::CConnectionSettings(void)
@@ -472,7 +472,7 @@
 	?DoL@TSendBindTo@CoreNetStates@@UAEXXZ @ 471 NONAME ; void CoreNetStates::TSendBindTo::DoL(void)
 	?DoL@TSendBindToComplete@ABindingActivity@CoreActivities@@UAEXXZ @ 472 NONAME ; void CoreActivities::ABindingActivity::TSendBindToComplete::DoL(void)
 	?DoL@TSendBindToComplete@CoreNetStates@@UAEXXZ @ 473 NONAME ; void CoreNetStates::TSendBindToComplete::DoL(void)
-	?DoL@TSendBindToCompleteIfExpected@ABindingActivity@CoreActivities@@UAEXXZ @ 474 NONAME ; void CoreActivities::ABindingActivity::TSendBindToCompleteIfExpected::DoL(void)
+	?DoL@TSendBindToCompleteIfExpected@ABindingActivity@CoreActivities@@UAEXXZ @ 474 NONAME ABSENT; void CoreActivities::ABindingActivity::TSendBindToCompleteIfExpected::DoL(void)
 	?DoL@TSendBinderResponse@CCommsBinderActivity@PRActivities@@UAEXXZ @ 475 NONAME ; void PRActivities::CCommsBinderActivity::TSendBinderResponse::DoL(void)
 	?DoL@TSendClientLeavingAndRemoveControlProvider@CoreNetStates@@UAEXXZ @ 476 NONAME ; void CoreNetStates::TSendClientLeavingAndRemoveControlProvider::DoL(void)
 	?DoL@TSendClientLeavingAndRemoveControlProviderIfNoServiceProviders@CoreNetStates@@UAEXXZ @ 477 NONAME ; void CoreNetStates::TSendClientLeavingAndRemoveControlProviderIfNoServiceProviders::DoL(void)
@@ -808,7 +808,7 @@
 	?GetVTablePtr@TSendBindToComplete@ABindingActivity@CoreActivities@@SAPAVMStateTransition@NetStateMachine@@AAVTDesC8@@PAX@Z @ 807 NONAME ; class NetStateMachine::MStateTransition * CoreActivities::ABindingActivity::TSendBindToComplete::GetVTablePtr(class TDesC8 &, void *)
 	?GetVTablePtr@TSendBindToComplete@CBindToActivity@PRActivities@@SAPAVMStateTransition@NetStateMachine@@AAVTDesC8@@PAX@Z @ 808 NONAME ; class NetStateMachine::MStateTransition * PRActivities::CBindToActivity::TSendBindToComplete::GetVTablePtr(class TDesC8 &, void *)
 	?GetVTablePtr@TSendBindToComplete@CoreNetStates@@SAPAVMStateTransition@NetStateMachine@@AAVTDesC8@@PAX@Z @ 809 NONAME ; class NetStateMachine::MStateTransition * CoreNetStates::TSendBindToComplete::GetVTablePtr(class TDesC8 &, void *)
-	?GetVTablePtr@TSendBindToCompleteIfExpected@ABindingActivity@CoreActivities@@SAPAVMStateTransition@NetStateMachine@@AAVTDesC8@@PAX@Z @ 810 NONAME ; class NetStateMachine::MStateTransition * CoreActivities::ABindingActivity::TSendBindToCompleteIfExpected::GetVTablePtr(class TDesC8 &, void *)
+	?GetVTablePtr@TSendBindToCompleteIfExpected@ABindingActivity@CoreActivities@@SAPAVMStateTransition@NetStateMachine@@AAVTDesC8@@PAX@Z @ 810 NONAME ABSENT; class NetStateMachine::MStateTransition * CoreActivities::ABindingActivity::TSendBindToCompleteIfExpected::GetVTablePtr(class TDesC8 &, void *)
 	?GetVTablePtr@TSendBinderResponse@CCommsBinderActivity@PRActivities@@SAPAVMStateTransition@NetStateMachine@@AAVTDesC8@@PAX@Z @ 811 NONAME ; class NetStateMachine::MStateTransition * PRActivities::CCommsBinderActivity::TSendBinderResponse::GetVTablePtr(class TDesC8 &, void *)
 	?GetVTablePtr@TSendClientLeavingAndRemoveControlProvider@CoreNetStates@@SAPAVMStateTransition@NetStateMachine@@AAVTDesC8@@PAX@Z @ 812 NONAME ; class NetStateMachine::MStateTransition * CoreNetStates::TSendClientLeavingAndRemoveControlProvider::GetVTablePtr(class TDesC8 &, void *)
 	?GetVTablePtr@TSendClientLeavingAndRemoveControlProviderIfNoServiceProviders@CoreNetStates@@SAPAVMStateTransition@NetStateMachine@@AAVTDesC8@@PAX@Z @ 813 NONAME ; class NetStateMachine::MStateTransition * CoreNetStates::TSendClientLeavingAndRemoveControlProviderIfNoServiceProviders::GetVTablePtr(class TDesC8 &, void *)
@@ -1044,4 +1044,6 @@
 	?TierImplId@CTierManagerBase@ESock@@QBE?AVTUid@@XZ @ 1043 NONAME ; class TUid ESock::CTierManagerBase::TierImplId(void) const
 	?GetVTablePtr@TCancelStart@CoreNetStates@@SAPAVMStateTransition@NetStateMachine@@AAVTDesC8@@PAX@Z @ 1044 NONAME ; class NetStateMachine::MStateTransition * CoreNetStates::TCancelStart::GetVTablePtr(class TDesC8 &, void *)
 	?CountParameterSets@RCFParameterFamilyBundleC@ESock@@QBEIXZ @ 1045 NONAME ; unsigned int ESock::RCFParameterFamilyBundleC::CountParameterSets(void) const
+	?Self@PRClientLeft@PRClientLeftActivity@@SAABUTNodeActivity@MeshMachine@@XZ @ 1046 NONAME ; struct MeshMachine::TNodeActivity const & PRClientLeftActivity::PRClientLeft::Self(void)
+	?FirstTriple@PRClientLeft@PRClientLeftActivity@@SAABUTStateTriple@NetStateMachine@@XZ @ 1047 NONAME ; struct NetStateMachine::TStateTriple const & PRClientLeftActivity::PRClientLeft::FirstTriple(void)
 
--- a/datacommsserver/esockserver/core_states/ss_corepractivities.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/core_states/ss_corepractivities.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -108,10 +108,51 @@
 NODEACTIVITY_END()
 }
 
+
+namespace PRDestroyOrphansActivity
+{
+DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityDestroyOrphans, PRDestroyOrphans, TCFMessage::TDestroyOrphans, CoreActivities::CDestroyOrphansActivity::New)
+    // Destroy non-Default Data clients first (as there can be references from non-Default Data clients to the Default Data client)
+    FIRST_NODEACTIVITY_ENTRY(MeshMachine::TAwaitingMessageState<TCFMessage::TDestroyOrphans>, PRStates::TOrphansOrNoTag)
+    NODEACTIVITY_ENTRY(KOrphans, PRStates::TDestroyFirstOrphan, MeshMachine::TAwaitingMessageState<Messages::TEChild::TLeft>, MeshMachine::TTag<KContinue>)
+    THROUGH_NODEACTIVITY_ENTRY(KContinue, PRStates::TProcessClientLeft, PRStates::TOrphansBackwardsOrNoTag)
+    ROUTING_NODEACTIVITY_ENTRY(KNoTag, CDestroyOrphansActivity::TNoTagOrNoClients)
+    LAST_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing)
+
+    // At this point, there are no Data or Control clients, so leave the Service Providers (if any) and destroy the node.
+    // (Can we just modify the above tuples so that they do not accept the very last TLeft, and thus leave it
+    // to MCPrDestroyActivity or PRClientLeftActivity to accept and do the destruction for us?).
+    
+    // If Control Provider is present, send a TIdle message.
+    THROUGH_NODEACTIVITY_ENTRY(KNoClients, CoreNetStates::TSendDataClientIdle, TNoTag)
+    // If Control Provider is present, terminate the activity (KNoTag), as
+    // Control Provider will send us a TDestroy in response to the TIdle message. 
+    ROUTING_NODEACTIVITY_ENTRY(KNoTag, CDestroyOrphansActivity::TControlProviderNoTagOrNoClients)
+    LAST_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing)
+
+    // No Control Provider - leave Service Providers (if any) and destroy the node.
+    ROUTING_NODEACTIVITY_ENTRY(KNoClients, CoreNetStates::TNoTagOrNoBearer)
+    THROUGH_NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSendClientLeavingRequestToServiceProviders, TNoTag)
+    NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing, MeshMachine::TAwaitingLeaveComplete, CDestroyOrphansActivity::TNoTagOrNoTagBackwards)
+
+    ROUTING_NODEACTIVITY_ENTRY(KNoBearer, TNoTag)
+    LAST_NODEACTIVITY_ENTRY(KNoTag, CDestroyOrphansActivity::TMarkNodeForDestruction)
+    // Node will be destroyed in CDestroyOrphansActivity::Destroy() 
+NODEACTIVITY_END()
+}
+
 namespace PRClientLeaveActivity
 {//This activity will wait for ECFActivityBinderRequest to complete
-DEFINE_EXPORT_NODEACTIVITY(ECFActivityClientLeave, PRClientLeave, TNodeSignal::TNullMessageId) //May be waiting for both messages
-NODEACTIVITY_ENTRY(KNoTag, PRStates::TProcessClientLeave, CoreStates::TAwaitingClientLeave, MeshMachine::TNoTag)
+DEFINE_EXPORT_NODEACTIVITY(ECFActivityClientLeave, PRClientLeave, Messages::TEPeer::TLeaveRequest) 
+    NODEACTIVITY_ENTRY(KNoTag, PRStates::TProcessClientLeave, MeshMachine::TAwaitingMessageState<TEPeer::TLeaveRequest>, MeshMachine::TNoTag)
+NODEACTIVITY_END()
+}
+
+namespace PRClientLeftActivity
+{
+//This activity waits for TLeft which is a response to destroy, shouldn't really be needed
+DEFINE_EXPORT_NODEACTIVITY(ECFActivityClientLeft, PRClientLeft, Messages::TEChild::TLeft)
+    NODEACTIVITY_ENTRY(KNoTag, PRStates::TProcessClientLeft, MeshMachine::TAwaitingMessageState<Messages::TEChild::TLeft>, MeshMachine::TNoTag)
 NODEACTIVITY_END()
 }
 
@@ -135,12 +176,9 @@
 DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityDestroy, PRDestroy, TEChild::TDestroy, CoreActivities::CDestroyActivity::New)
 	FIRST_NODEACTIVITY_ENTRY(MeshMachine::TAwaitingDestroy, CoreActivities::CDestroyActivity::TNoTagBlockedByActivitiesOrLeavingDataClient)
 
-    //Stop self first
-    NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TStopSelf, CoreNetStates::TAwaitingDataClientStopped, CoreStates::TNoTagOrNoClients)
-
-    //The node mustn't go out of scope with clients present. The node must get rid of them first.
-	NODEACTIVITY_ENTRY(KNoTag, CoreActivities::CDestroyActivity::TMakeClientsLeaveOrProcessClientLeave, CoreStates::TAwaitingClientLeave,  CDestroyActivity::TNoTagOrNoTagBackwards)
-	THROUGH_NODEACTIVITY_ENTRY(KNoTag, CoreActivities::CDestroyActivity::TProcessClientLeave, TTag<KNoClients>)
+    ROUTING_NODEACTIVITY_ENTRY(KNoTag, PRStates::TNonLeavingNoTagOrNoClients)
+    NODEACTIVITY_ENTRY(KNoTag, PRStates::TDestroyFirstClient, MeshMachine::TAwaitingMessageState<Messages::TEChild::TLeft>, MeshMachine::TTag<KContinue>)
+    THROUGH_NODEACTIVITY_ENTRY(KContinue, PRStates::TProcessClientLeft, PRStates::TNoTagBackwardsOrNoClients)
 
  	THROUGH_NODEACTIVITY_ENTRY(KNoClients, PRStates::TProcessDestroy, MeshMachine::TNoTag)
  	NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing, MeshMachine::TAwaitingLeaveComplete, CoreActivities::CDestroyActivity::TNoTagOrNoTagBackwards)
@@ -296,6 +334,8 @@
 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing, CoreNetStates::TNoTagOrUnbindOnStop)
 
 	NODEACTIVITY_ENTRY(CoreNetStates::KUnbind, CoreNetStates::TSendClientLeavingRequestToServiceProvider, MeshMachine::TAwaitingLeaveComplete, MeshMachine::TNoTag)
+	// Note that if CMMCommsProviderBase::DestroyOrphanedDataClients() finds this activity running, it
+	// will do nothing and assume that destruction of orphans will be initiated below.
 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, PRStates::TDestroyOrphanedDataClients, MeshMachine::TNoTag)
 	LAST_NODEACTIVITY_ENTRY(KNoTag, PRStates::TSendDataClientStopped)
 NODEACTIVITY_END()
@@ -632,7 +672,7 @@
 :	CNodeRetryActivity(aActivitySig, aNode),
 	APreallocatedOriginators<1>(iOriginators)
 	{
-	//Mark the provider for deletion, so that it's not served by the factory from now on.
+    //Mark the provider for deletion, so that it's not served by the factory from now on.
     static_cast<ESock::CMMCommsProviderBase&>(iNode).MarkMeForDeletion();
 	}
 
@@ -645,16 +685,6 @@
 	static_cast<ESock::CMMCommsProviderBase&>(iNode).DeleteMeNow();
 	}
 
-TBool CDestroyActivity::Next(TNodeContextBase& aContext)
-    {
-    if (aContext.iMessage.IsMessage<TEBase::TCancel>())
-        {  
-        return ETrue;
-        }
-    else
-        return CNodeActivityBase::Next(aContext);
-    }
-
 EXPORT_DEFINE_SMELEMENT(CDestroyActivity::TNoTagOrNoTagBackwards, NetStateMachine::MStateFork, PRStates::TContext)
 EXPORT_C TInt CDestroyActivity::TNoTagOrNoTagBackwards::TransitionTag()
     {
@@ -703,13 +733,18 @@
     __ASSERT_DEBUG(iContext.Node().GetFirstClient<TDefaultClientMatchPolicy>(TClientType(TCFClientType::EData, TCFClientType::EActive|TCFClientType::EActivating|TCFClientType::EStarting|TCFClientType::EStarted))==NULL,
     	User::Panic(KCorePrPanic, KPanicClientsStillPresent));
 
-   	TClientIter<TDefaultClientMatchPolicy> dciter = iContext.Node().GetClientIter<TDefaultClientMatchPolicy>(TClientType(TCFClientType::EData),	TClientType(0, TCFClientType::ELeaving));
-   	RNodeInterface* dc = NULL;
-    while ((dc = dciter[0]) != NULL) //always inspect the first elem as we're invalidating the iterator with each hit.
-        {
-		dc->PostMessage(iContext.NodeId(), TEChild::TDestroy().CRef());
-		dc->SetFlags(TCFClientType::ELeaving);
-        }
+	iContext.Node().PostToClients<TDefaultClientMatchPolicy>(iContext.NodeId(),
+		TEChild::TDestroy().CRef(),
+		TClientType(TCFClientType::EData),
+		TClientType(0, TCFClientType::ELeaving|TCFClientType::EDefault),
+		TClientType::ELeaving
+		);
+	iContext.Node().PostToClients<TDefaultClientMatchPolicy>(iContext.NodeId(),
+		TEChild::TDestroy().CRef(),
+		TClientType(TCFClientType::EData),
+		TClientType(0, TCFClientType::ELeaving),
+		TClientType::ELeaving
+		);
 	}
 
 void CDestroyActivity::TMakeClientsLeaveOrProcessClientLeave::ProcessClientLeaveL()
@@ -718,6 +753,114 @@
     processClientLeave.DoL();
     }
 
+//-=========================================================
+//
+// Destroy Orphan Activity - will delete the node when destructed
+// if TMarkNodeForDestruction tuple has been called.
+//
+//-=========================================================
+
+CNodeActivityBase* CDestroyOrphansActivity::New(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode)
+    {
+    TAny* space = BorrowPreallocatedSpace(aNode, sizeof(CDestroyOrphansActivity));
+    CDestroyOrphansActivity* self = new (space) CDestroyOrphansActivity(aActivitySig, aNode);
+    self->InsertPreallocatedDestroyActivity(); //Destructing preallocated activity
+    return self;
+    }
+
+CDestroyOrphansActivity::CDestroyOrphansActivity(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode)
+  : MeshMachine::CNodeActivityBase(aActivitySig, aNode),
+          MeshMachine::APreallocatedOriginators<1>(iOriginators)
+    {
+    }
+
+CDestroyOrphansActivity::~CDestroyOrphansActivity() 
+    {
+    }
+
+void CDestroyOrphansActivity::Destroy() 
+    {
+    ReturnPreallocatedSpace(this);
+    if (DestroyFlag() && iNode.CountActivities(ECFActivityDestroy) == 0)
+        {
+        static_cast<ESock::CMMCommsProviderBase&>(iNode).MarkMeForDeletion();
+        this->~CDestroyOrphansActivity(); //Run the destructor
+        static_cast<ESock::CMMCommsProviderBase&>(iNode).DeleteMeNow();
+        }
+    else
+        {
+        this->~CDestroyOrphansActivity(); //Run the destructor
+        }
+    }
+
+void CDestroyOrphansActivity::SetDestroyFlag()
+    {
+    iDestroyFlag = ETrue;
+    }
+
+TBool CDestroyOrphansActivity::DestroyFlag() const
+    {
+    return iDestroyFlag;
+    }
+
+DEFINE_SMELEMENT(CDestroyOrphansActivity::TMarkNodeForDestruction, NetStateMachine::MStateTransition, CDestroyOrphansActivity::TContext)
+void CDestroyOrphansActivity::TMarkNodeForDestruction::DoL()
+/**
+Flag that the node should be destroyed when the activity completes.
+*/
+    {
+    CDestroyOrphansActivity* act = static_cast<CDestroyOrphansActivity*>(iContext.Activity());
+    ASSERT(act);
+    act->SetDestroyFlag();
+    }
+
+// This is a copy from CDestroyActivity.
+DEFINE_SMELEMENT(CDestroyOrphansActivity::TNoTagOrNoTagBackwards, NetStateMachine::MStateFork, CDestroyOrphansActivity::TContext)
+TInt CDestroyOrphansActivity::TNoTagOrNoTagBackwards::TransitionTag()
+    {
+    if (iContext.iMessage.IsMessage<TEChild::TLeft>())
+        {
+        TClientIter<TDefaultClientMatchPolicy> iter = iContext.Node().GetClientIter<TDefaultClientMatchPolicy>(TClientType(TCFClientType::EData|TCFClientType::ECtrl));
+        __ASSERT_DEBUG(iter[0], User::Panic(KSpecAssert_ESockCrStaCPRAC, 7)); //One leaving client must still be there.
+        return iter[1] == NULL ?  MeshMachine::KNoTag : MeshMachine::KNoTag | NetStateMachine::EBackward;
+        }
+    else if (iContext.iMessage.IsMessage<TEPeer::TLeaveComplete>())
+        {
+        __ASSERT_DEBUG(iContext.Node().GetFirstClient<TDefaultClientMatchPolicy>(TClientType(TCFClientType::ECtrl|TCFClientType::EData))==NULL,
+        User::Panic(KCorePrPanic, KPanicClientsStillPresent));
+        if (iContext.Node().GetFirstClient<TDefaultClientMatchPolicy>(TClientType(TCFClientType::EServProvider))==NULL)
+            {
+            return NetStateMachine::EForward | MeshMachine::KNoTag;
+            }
+        return NetStateMachine::EBackward | MeshMachine::KNoTag; //Loop back to the same triple (& remove the peer)
+        }
+    __ASSERT_DEBUG(EFalse, User::Panic(KSpecAssert_ESockCrStaCPRAC, 8));
+    return KNoTag;
+    }
+
+DEFINE_SMELEMENT(CDestroyOrphansActivity::TNoTagOrNoClients, NetStateMachine::MStateFork, CDestroyOrphansActivity::TContext)
+TInt CDestroyOrphansActivity::TNoTagOrNoClients::TransitionTag()
+/**
+If the Destroy activity is not running and there are no data/control clients, return KNoClients, else return KNoTag.
+*/
+    {
+    if (iContext.Node().CountActivities(ECFActivityDestroy))
+        {
+        return KNoTag;
+        }
+    CoreStates::TNoTagOrNoClients fork(iContext);
+    return fork.TransitionTag();
+    }
+
+
+DEFINE_SMELEMENT(CDestroyOrphansActivity::TControlProviderNoTagOrNoClients, NetStateMachine::MStateFork, CDestroyOrphansActivity::TContext)
+TInt CDestroyOrphansActivity::TControlProviderNoTagOrNoClients::TransitionTag()
+/**
+If there is a Control Provider, return KNoTag, else return KNoClients
+*/
+    {
+    return iContext.Node().ControlProvider() ? KNoTag : KNoClients;
+    }
 
 //-=========================================================
 //
@@ -794,8 +937,10 @@
     //If you are not providing a clean error handling solution for your activity,
     //please use IsBinding() before calling this API!
     __ASSERT_DEBUG(!iOriginator.IsNull(), User::Panic(KSpecAssert_ESockCrStaCPRAC, 10)); //The iOriginator must be set.
-    RClientInterface::OpenPostMessageClose(iOurNode, iOriginator, TCFDataClient::TBindToComplete(aError).CRef());
-    iOriginator.SetNull();
+    
+    RClientInterface::OpenPostMessageClose(iOurNode, iOriginator, TCFServiceProvider::TBindToComplete(aError).CRef());
+
+     iOriginator.SetNull();
     }
 
 EXPORT_DEFINE_SMELEMENT(ABindingActivity::TSendBindToComplete, NetStateMachine::MStateTransition, CoreStates::TContext)
@@ -807,18 +952,6 @@
     bindingActivity->ReplyToOriginator(iContext.iNodeActivity->Error());
 	}
 
-EXPORT_DEFINE_SMELEMENT(ABindingActivity::TSendBindToCompleteIfExpected, NetStateMachine::MStateTransition, CoreStates::TContext)
-EXPORT_C void ABindingActivity::TSendBindToCompleteIfExpected::DoL()
-	{
-    __ASSERT_DEBUG(iContext.iNodeActivity, User::Panic(KCorePrPanic, KPanicNoActivity));
-    __ASSERT_DEBUG(iContext.iNodeActivity->SupportsExtInterface(ABindingActivity::KInterfaceId), User::Panic(KSpecAssert_ESockCrStaCPRAC, 12));
-    ABindingActivity* bindingActivity = reinterpret_cast<ABindingActivity*>(iContext.iNodeActivity->FetchExtInterfaceL(ABindingActivity::KInterfaceId));
-    if (bindingActivity->IsBinding())
-	    {
-		bindingActivity->ReplyToOriginator(iContext.iNodeActivity->Error());
-	    }
-	}
-
 void ABindingActivity::FinalReplyToOriginator(TInt aError)
 /**
 Intended to be called from derived class destructors to arrange for a TBindToComplete reply to be sent
@@ -841,9 +974,11 @@
 DECLARE_DEFINE_ACTIVITY_MAP(coreActivitiesPR)
 	ACTIVITY_MAP_ENTRY(PRDataClientJoinActivity, PRDataClientJoin)
 	ACTIVITY_MAP_ENTRY(PRControlClientJoinActivity, PRControlClientJoin)
-	ACTIVITY_MAP_ENTRY(PRClientLeaveActivity, PRClientLeave)
+	ACTIVITY_MAP_ENTRY(PRClientLeftActivity, PRClientLeft)
+    ACTIVITY_MAP_ENTRY(PRClientLeaveActivity, PRClientLeave)
 	ACTIVITY_MAP_ENTRY(PRForwardStateChangeActivity, PRForwardStateChange)
 	ACTIVITY_MAP_ENTRY(PRBindToActivity, PRBindTo)
+	ACTIVITY_MAP_ENTRY(PRDestroyOrphansActivity, PRDestroyOrphans)
 ACTIVITY_MAP_END_BASE(CoreActivities,coreActivitiesAll)
 
 //Activity Map provided by CorePr to be used by SCprs.
@@ -894,6 +1029,7 @@
 	ACTIVITY_MAP_ENTRY(PRDataClientActiveActivity, PRDataClientActive)
     ACTIVITY_MAP_ENTRY(PRDataClientStatusChangeActivity, PRDataClientStatusChange)
     ACTIVITY_MAP_ENTRY(PRLegacyRMessage2HandlerActivity, PRLegacyRMessage2Handler)
+    ACTIVITY_MAP_ENTRY(PRDestroyActivity, PRDestroy)
 ACTIVITY_MAP_END_BASE(PRActivities,coreActivitiesPR)
 
 //Activity Map provided by CorePr to be used by TMs.
@@ -1319,18 +1455,20 @@
             //clients in at the current owner.
             for (TInt i = 0; i < iDataClients.Count(); i++)
                 {
-                if (!(iDataClients[i].iDataClient.Flags() & TCFClientType::EActive))
+                Messages::RNodeInterface& dataClient = iDataClients[i].iDataClient; 
+                if (!(dataClient.Flags() & TCFClientType::EActive))
                     {
 #ifndef __GCCXML__
-					//If the dataclient managed to report idle in the mean time, have him destroyed
-                    RClientInterface::OpenPostMessageClose(iNode.Id(), iDataClients[i].iDataClient.RecipientId(), TEChild::TDestroy().CRef());
+                    //If the dataclient managed to report idle in the mean time, have him destroyed
+                    RClientInterface::OpenPostMessageClose(iNode.Id(), dataClient.RecipientId(), TEChild::TDestroy().CRef());
+                    dataClient.SetFlags(TCFClientType::ELeaving);
 #endif
                     }
-                iDataClients[i].iDataClient.ClearFlags(TCFClientType::EActivating);
+                dataClient.ClearFlags(TCFClientType::EActivating);
 #ifndef __GCCXML__
                 //Simulate client leaving on the new owner.
-                RClientInterface::OpenPostMessageClose(iDataClients[i].iDataClient.RecipientId(), iDataClients[i].iNewOwner,
-                	TEChild::TLeft().CRef());
+                RClientInterface::OpenPostMessageClose(dataClient.RecipientId(), iDataClients[i].iNewOwner,
+                        TEChild::TLeft().CRef());
 #endif
                 }
             }
@@ -1711,19 +1849,23 @@
 
     intf->SendCustomFlowProvision();
 	}
-
+    
 EXPORT_DEFINE_SMELEMENT(CCommsBinderActivity::TAwaitingBindToComplete, NetStateMachine::MState, PRStates::TContext)
 EXPORT_C TBool CCommsBinderActivity::TAwaitingBindToComplete::Accept()
-	{
-	CoreNetStates::TAwaitingBindToComplete awaitingBindToComplete(iContext);
-	if (awaitingBindToComplete.Accept())
-		{
+	{   
+	TCFServiceProvider::TBindToComplete* bindToComplete = message_cast<TCFServiceProvider::TBindToComplete>(&iContext.iMessage); 
+	if (bindToComplete) 
+	    { 
+	    __ASSERT_DEBUG(iContext.iNodeActivity, User::Panic(KCorePrPanic, KPanicNoActivity)); 
+	    iContext.iNodeActivity->SetError(bindToComplete->iValue); 
+	    
 	    CCommsBinderActivity* binderActivity = reinterpret_cast<CCommsBinderActivity*>(iContext.iNodeActivity->FetchExtInterface(CCommsBinderActivity::KInterfaceId));
 	    __ASSERT_DEBUG(binderActivity, User::Panic(KSpecAssert_ESockCrStaCPRAC, 30));
 	    binderActivity->BindToComplete();
-		iContext.Node().DestroyOrphanedDataClients();
-		return ETrue;
-		}
+	    iContext.Node().DestroyOrphanedDataClients();
+	    return ETrue; 
+	    }
+
 	return EFalse;
 	}
 
@@ -1911,7 +2053,7 @@
                     TClientType(TCFClientType::ECtrl), TClientType(0, TCFClientType::ELeaving));
             RNodeInterface* ctrlClient = NULL;
 
-            while ( (ctrlClient = iter++) )
+            while ( (ctrlClient = iter++) != NULL )
                 {
                 // Let control clients know the node has gone down, other than those that originated Start (they will be errored by ~CNodeActivityBase)...
                 if (FindOriginator(*ctrlClient) >= 0)
--- a/datacommsserver/esockserver/core_states/ss_corepractivities.h	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/core_states/ss_corepractivities.h	Mon Mar 15 12:45:15 2010 +0200
@@ -14,7 +14,6 @@
 // Core PR Activities
 //
 //
-
 /**
  @file
  @internalComponent
@@ -27,12 +26,12 @@
 #include <comms-infras/ss_mmnode.h>
 #include <comms-infras/ss_nodemessages_internal.h>
 #include <comms-infras/ss_nodemessages_legacy.h>
+#include <comms-infras/ss_internal_activities.h>
 
 #include <elements/mm_states.h>
 #include <comms-infras/ss_parameterfamilybundle.h>
 #include <elements/nm_messages_internal.h>
 
-
 namespace CoreErrorActivity
 { //If found in node activity map is ran by the MM whenewer an error is received
   //and not processed by its target activity
@@ -54,6 +53,11 @@
 	DECLARE_EXPORT_NODEACTIVITY(PRClientLeave)
 }
 
+namespace PRClientLeftActivity
+{ //This activity does not need the activity object
+	DECLARE_EXPORT_NODEACTIVITY(PRClientLeft)
+}
+
 namespace PRDataClientIdleActivity
 { //TAwaitingDataClientIdle will only accept if no more clients joined to the node
 	static const TInt KDataClientNotStarted = 1;		// idle data client is not started
@@ -172,9 +176,8 @@
     IMPORT_C static MeshMachine::CNodeActivityBase* New(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode);
 
 protected:
-	CDestroyActivity(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode);
-	virtual void Destroy();
-	virtual TBool Next(MeshMachine::TNodeContextBase& aContext);
+    CDestroyActivity(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode);
+    virtual void Destroy();
 
 //States, StateForks & StateTransitions
 protected:
@@ -197,7 +200,7 @@
 		CoreNetStates::TSendLeaveCompleteIfRequest
 		)
 
-	typedef MeshMachine::TActivitiesIdMutex<ESock::ECFActivityStop, ESock::ECFActivityStopDataClient, ESock::ECFActivityDataClientGoneDown, ESock::ECFActivityGoneDown> TAllStopActivityMutex;
+	typedef MeshMachine::TActivitiesIdMutex<ESock::ECFActivityStop, ESock::ECFActivityStopDataClient, ESock::ECFActivityDataClientGoneDown, ESock::ECFActivityGoneDown, ESock::ECFActivityDestroyOrphans> TAllStopActivityMutex;
 	typedef MeshMachine::TActivityIdMutex<ESock::ECFActivityClientLeave> TClientLeaveMutex;
     typedef MeshMachine::TClientMutex<Messages::TDefaultClientMatchPolicy, ESock::TCFClientType::EData, ESock::TCFClientType::ELeaving> TLeavingDataClientMutex;
 	typedef MeshMachine::TAggregatedMutex_OR<TAllStopActivityMutex, TLeavingDataClientMutex> TAllStopActivityOrLeavingDataClientMutex;
@@ -216,6 +219,47 @@
     static MeshMachine::CNodeActivityBase* NewL(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode);
 	};
 
+//-=========================================================
+//
+// DestroyOrphans Activity - will delete the node when destructed
+// if TMarkNodeForDestruction tuple has been called.
+//
+//-=========================================================
+
+NONSHARABLE_CLASS(CDestroyOrphansActivity) : public MeshMachine::CNodeActivityBase, protected MeshMachine::APreallocatedOriginators<1>
+    {
+public:
+    typedef PRStates::TContext TContext;
+
+    static CNodeActivityBase* New( const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode );
+    void SetDestroyFlag();
+    TBool DestroyFlag() const;
+
+    DECLARE_SMELEMENT_HEADER( TMarkNodeForDestruction, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, TContext )
+        virtual void DoL();
+    DECLARE_SMELEMENT_FOOTER( TMarkNodeForDestruction )
+
+    DECLARE_SMELEMENT_HEADER( TNoTagOrNoTagBackwards, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, TContext )
+        virtual TInt TransitionTag();
+    DECLARE_SMELEMENT_FOOTER( TNoTagOrNoTagBackwards )
+
+    DECLARE_SMELEMENT_HEADER( TNoTagOrNoClients, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, TContext )
+        virtual TInt TransitionTag();
+    DECLARE_SMELEMENT_FOOTER( TNoTagOrNoClients )
+
+    DECLARE_SMELEMENT_HEADER( TControlProviderNoTagOrNoClients, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, TContext )
+        virtual TInt TransitionTag();
+    DECLARE_SMELEMENT_FOOTER( TControlProviderNoTagOrNoClients )
+
+    ~CDestroyOrphansActivity();
+
+protected:
+    explicit CDestroyOrphansActivity(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode);
+    virtual void Destroy();
+
+private:
+    TBool iDestroyFlag;         // whether to destroy node on destruction of activity
+    };
 
 //-=========================================================
 //
@@ -287,9 +331,13 @@
 //-=========================================================
 class ABindingActivity
 /*
-The interface must be implemented by activities featuring (using) PRStates::TSendBindToComplete.
-ABindingActivity can store the activityId and the originator expecting intermediate
-TBindToComplete. The originator might have sent either a TBindTo or TCommsBinderResponse.
+ABindingActivity is a helper class for activities requesting binders (sending TCFServiceProvider::TCommsBinderRequest) and, 
+following consumption of the binder, needing to respond to the recipient of TCFServiceProvider::TCommsBinderRequest with 
+TCFServiceProvider::TBindToComplete as implied by the TCFServiceProvider::TCommsBinderRequest protocol. Such activities, 
+after they receive TCFServiceProvider::TCommsBinderResponse need to remember the TNodeCtxId of the sender in order to 
+correctly respond with TCFServiceProvider::TBindToComplete. They can remember the sender of 
+TCFServiceProvider::TCommsBinderResponse by calling ABindingActivity::StoreOriginator and subsequently respond by using 
+ABindingActivity::TSendBindToComplete.
 */
 	{
 public:
@@ -323,16 +371,7 @@
     EXPORT_DECLARE_SMELEMENT_HEADER( TSendBindToComplete, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, TContext )
     	IMPORT_C virtual void DoL();
     DECLARE_SMELEMENT_FOOTER( TSendBindToComplete )
-
-    EXPORT_DECLARE_SMELEMENT_HEADER( TSendBindToCompleteIfExpected, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, TContext )
-    	IMPORT_C virtual void DoL();
-    DECLARE_SMELEMENT_FOOTER( TSendBindToCompleteIfExpected )
-
-    DECLARE_AGGREGATED_TRANSITION2(
-        TSendBindToCompleteAndRequestCommsBinder,
-        TSendBindToComplete,
-        CoreNetStates::TRequestCommsBinder
-        )
+    
 	};
 
 } //namespace CoreActivities
--- a/datacommsserver/esockserver/core_states/ss_coreprstates.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/core_states/ss_coreprstates.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -79,6 +79,8 @@
 using namespace MeshMachine;
 using namespace Factories;
 
+const TUint32 KOrphanExcludeFlags = TCFClientType::EActive|TCFClientType::EActivating|TCFClientType::ELeaving|TCFClientType::EStarted|TCFClientType::EStarting;
+
 //-=========================================================
 //
 // Panics
@@ -393,8 +395,7 @@
 EXPORT_DEFINE_SMELEMENT(TAwaitingClientLeave, NetStateMachine::MState, CoreStates::TContext)
 EXPORT_C TBool TAwaitingClientLeave::Accept()
 	{
-	return iContext.iMessage.IsMessage<TEChild::TLeft>()
-		|| iContext.iMessage.IsMessage<TEPeer::TLeaveRequest>();
+	return iContext.iMessage.IsMessage<TEPeer::TLeaveRequest>() || iContext.iMessage.IsMessage<TEChild::TLeft>();
 	}
 
 EXPORT_DEFINE_SMELEMENT(TDestroyOrphanedDataClients, NetStateMachine::MStateTransition, PRStates::TContext)
@@ -520,7 +521,6 @@
 	__ASSERT_DEBUG(iContext.iPeer, User::Panic(KSpecAssert_ESockCrStaCPRSC, 13));
 	__ASSERT_DEBUG(iContext.iPeer->Type()==TCFClientType::EData, User::Panic(KSpecAssert_ESockCrStaCPRSC, 14));
 
-	__CFLOG_VAR((KCoreProviderStatesTag, KCoreProviderStatesSubTag, _L8("TSendDestroyToSendingDataClient::DoL - iContext.iPeer->Flags(): %x"), iContext.iPeer->Flags()));
 	if (!(iContext.iPeer->Flags() &
 			(TCFClientType::EActivating|TCFClientType::EStarting|TCFClientType::ELeaving|TCFClientType::EStarted)))
     	{
@@ -529,7 +529,8 @@
       		   iContext.Node().CountClients<TDefaultClientMatchPolicy>(TClientType(TCFClientType::EData),
       		                                                           TClientType(0, TCFClientType::EDefault)) > 0))
       		{
-	    	iContext.iPeer->PostMessage(iContext.NodeId(), TEChild::TDestroy().CRef());
+			// Send from null activity so no cancel message can ever get at it.
+			iContext.iPeer->PostMessage(Messages::TNodeCtxId(MeshMachine::KActivityNull, iContext.NodeId()), TEChild::TDestroy().CRef());
 	    	iContext.iPeer->SetFlags(TClientType::ELeaving);
 	    	}
 	    else
@@ -687,7 +688,7 @@
     	}
 	if (iContext.iPeer)
 		{
-		iContext.iPeer->ClearFlags(TCFClientType::EStopping); 
+		iContext.iPeer->ClearFlags(TCFClientType::EStarted | TCFClientType::EStopping); 
 		}
 	if (iContext.Node().CountClients<TDefaultClientMatchPolicy>(TClientType(TCFClientType::EData, TCFClientType::EStopping)))  
 		{
@@ -909,7 +910,7 @@
    	if (cl)
    		{
 		__ASSERT_DEBUG(iContext.iNodeActivity, CorePrPanic(KPanicNoActivity));
-   		cl->PostMessage(TNodeCtxId(iContext.ActivityId(), iContext.NodeId()), TEChild::TLeft().CRef());
+   		iContext.iNodeActivity->PostToOriginators(TEChild::TLeft().CRef());
    		iContext.Node().RemoveClient(cl->RecipientId(),iContext);
    		__ASSERT_DEBUG(iter[1] == NULL, User::Panic(KSpecAssert_ESockCrStaCPRSC, 19)); //But it is not possible to have two Control Providers!
    		}
@@ -1359,7 +1360,7 @@
 EXPORT_C void TSendBindToComplete::DoL()
 	{
 	__ASSERT_DEBUG(iContext.iNodeActivity, CorePrPanic(KPanicNoActivity));
-	iContext.iNodeActivity->PostToOriginators(TCFDataClient::TBindToComplete(iContext.iNodeActivity->Error()).CRef());
+	iContext.iNodeActivity->PostToOriginators(TCFDataClient::TBindToComplete().CRef());
 	}
 
 EXPORT_DEFINE_SMELEMENT(TBindSelfToPresentBearer, NetStateMachine::MStateTransition, CoreNetStates::TContext)
@@ -1506,18 +1507,7 @@
 EXPORT_DEFINE_SMELEMENT(TAwaitingBindTo, NetStateMachine::MState, CoreStates::TContext)
 EXPORT_C TBool TAwaitingBindTo::Accept()
 	{
-	const TCFDataClient::TBindTo* bindToMessage = message_cast<TCFDataClient::TBindTo>(&iContext.iMessage);
-	if (bindToMessage)
-    	{
-    	//TBindTo is always a response. there's gotta be an activity.
-    	if (iContext.iNodeActivity && iContext.iNodeActivity->SupportsExtInterface(ABindingActivity::KInterfaceId))
-        	{
-        	ABindingActivity* bindingActivity = reinterpret_cast<ABindingActivity*>(iContext.iNodeActivity->FetchExtInterface(ABindingActivity::KInterfaceId));
-       	    bindingActivity->StoreOriginator(iContext.iSender);
-        	}
-        return ETrue;
-    	}
-    return EFalse;
+	return iContext.iMessage.IsMessage<TCFDataClient::TBindTo>();
 	}
 
 EXPORT_DEFINE_SMELEMENT(TAwaitingBindToOrCancel, NetStateMachine::MState, CoreStates::TContext)
@@ -1612,14 +1602,7 @@
 EXPORT_DEFINE_SMELEMENT(CoreNetStates::TAwaitingBindToComplete, NetStateMachine::MState, CoreNetStates::TContext)
 EXPORT_C TBool CoreNetStates::TAwaitingBindToComplete::Accept()
 	{
-	TCFDataClient::TBindToComplete* bindToComplete = message_cast<TCFDataClient::TBindToComplete>(&iContext.iMessage);
-	if (bindToComplete)
-    	{
-    	__ASSERT_DEBUG(iContext.iNodeActivity, CorePrPanic(KPanicNoActivity));
-	    iContext.iNodeActivity->SetError(bindToComplete->iValue);
-		return ETrue;
-    	}
-    return EFalse;
+	return iContext.iMessage.IsMessage<TCFDataClient::TBindToComplete>();
 	}
 
 EXPORT_DEFINE_SMELEMENT(TAwaitingProvision, NetStateMachine::MState, PRStates::TContext)
@@ -1867,7 +1850,7 @@
 EXPORT_DEFINE_SMELEMENT(TNoTagOrNoClients, NetStateMachine::MStateFork, CoreNetStates::TContext)
 TInt TNoTagOrNoClients::TransitionTag()
 /**
-Returns KNoTag uif sender is marked EDefault, else CoreNetStates::KNonDefault.
+Return KNoTag if there are data or control clients, else return KNoClients.
 */
     {
     return iContext.Node().CountClients<TDefaultClientMatchPolicy>(TClientType(TCFClientType::EData | TCFClientType::ECtrl))? KNoTag : KNoClients;
@@ -2185,3 +2168,128 @@
 		}
 	}
 
+//-=========================================================
+//
+//  PRDestroyOrphans and PRDestroy
+//
+//-=========================================================
+
+void DestroyFirstClient(PRStates::TContext& aContext, const TClientType& aIncClientType, const TClientType& aExcClientType = TClientType::NullType())
+/**
+Send a TDestroy to the first non-default data client, or to the default data client if there
+are no non-default data clients.  We need to destroy the non-default data clients before the default data
+client because there can be internal references from non-default clients to the default data client.  
+
+The include and exclude iteration parameters are used to narrow the data client list as the caller requires.
+*/
+    {
+    TClientIter<TDefaultClientMatchPolicy> iter = aContext.Node().GetClientIter<TDefaultClientMatchPolicy>(aIncClientType, aExcClientType);
+
+    RNodeInterface* client = NULL;
+    RNodeInterface* defaultClient = NULL;
+    while ((client = iter++) != NULL)
+        {
+        if (!(client->Flags() & TCFClientType::EDefault))
+            {
+            // Found a non-default data client, so destroy it.
+            break;
+            }
+        else
+            {
+            // Remember default data client.  Destroy it only if no non-default data clients.
+            if (defaultClient == NULL)
+                {
+                defaultClient = client;
+                }
+            }
+        }
+    
+    if (client == NULL)
+        {
+        client = defaultClient;
+        }
+    // Should we panic if client is NULL?
+    if (client)
+        {
+        aContext.iNodeActivity->PostRequestTo(*client, TEChild::TDestroy().CRef());
+        client->SetFlags(TClientType::ELeaving);
+        }
+     }
+
+DEFINE_SMELEMENT(TDestroyFirstOrphan, NetStateMachine::MStateTransition, PRStates::TContext)
+void TDestroyFirstOrphan::DoL()
+/**
+Destroy first orphan data client
+*/
+    {
+    DestroyFirstClient(iContext, TClientType(TCFClientType::EData), TClientType(0, KOrphanExcludeFlags));
+    }
+
+DEFINE_SMELEMENT(TDestroyFirstClient, NetStateMachine::MStateTransition, PRStates::TContext)
+void TDestroyFirstClient::DoL()
+/**
+Destroy first data client
+*/
+    {
+    DestroyFirstClient(iContext, TClientType(TCFClientType::EData), TClientType(0, TCFClientType::ELeaving));
+    }
+
+DEFINE_SMELEMENT(TOrphansOrNoTag, NetStateMachine::MStateFork, PRStates::TContext)
+TInt TOrphansOrNoTag::TransitionTag()
+/**
+If there are orphan data clients present, return KOrphans, else return KNoTag
+*/
+    {
+    if (iContext.Node().CountClients<TDefaultClientMatchPolicy>(
+            TClientType(TCFClientType::EData), TClientType(0, KOrphanExcludeFlags)))
+        {
+        return KOrphans;
+        }
+    return KNoTag;
+    }
+
+DEFINE_SMELEMENT(TOrphansBackwardsOrNoTag, NetStateMachine::MStateFork, PRStates::TContext)
+TInt TOrphansBackwardsOrNoTag::TransitionTag()
+/**
+If there are orphan data clients present, return KOrphans|EBackward, else return KNoTag
+*/
+    {
+    TOrphansOrNoTag orphansOrNoTag(iContext);
+    TInt tag = orphansOrNoTag.TransitionTag();
+    if (tag == KOrphans)
+        {
+        tag = KOrphans | NetStateMachine::EBackward;
+        }
+    return tag;
+    }
+
+DEFINE_SMELEMENT(TNoTagBackwardsOrNoClients, NetStateMachine::MStateFork, PRStates::TContext)
+TInt TNoTagBackwardsOrNoClients::TransitionTag()
+/**
+If there are (non-leaving) data clients present, return KNoTag|EBackward, else return KNoClients
+*/
+    {
+    TNonLeavingNoTagOrNoClients nonLeavingNoTagOrNoClients(iContext);
+    TInt tag = nonLeavingNoTagOrNoClients.TransitionTag();
+    if (tag == KNoTag)
+        {
+        tag = KNoTag | NetStateMachine::EBackward;
+        }
+    return tag;
+    }
+
+
+DEFINE_SMELEMENT(TNonLeavingNoTagOrNoClients, NetStateMachine::MStateFork, PRStates::TContext)
+TInt TNonLeavingNoTagOrNoClients::TransitionTag()
+/**
+If there are (non-leaving) data clients left, return KNoTag, else return KNoClients
+*/
+    {
+    if (iContext.Node().CountClients<TDefaultClientMatchPolicy>(
+            TClientType(TCFClientType::EData), TClientType(0, TCFClientType::ELeaving)))
+        {
+        return KNoTag;
+        }
+
+    return KNoClients;
+    }
--- a/datacommsserver/esockserver/core_states/ss_coreprstates.h	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/core_states/ss_coreprstates.h	Mon Mar 15 12:45:15 2010 +0200
@@ -797,6 +797,8 @@
 //
 //-=========================================================
 const TInt KParamsPresent                      = 4000;
+const TInt KOrphans                            = 4001;
+const TInt KContinue                           = 4002;
 
 //-=========================================================
 //
@@ -817,6 +819,22 @@
 //
 //-=========================================================
 
+DECLARE_SMELEMENT_HEADER( TOrphansOrNoTag, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, TContext)
+    virtual TInt TransitionTag();
+DECLARE_SMELEMENT_FOOTER( TOrphansOrNoTag )
+
+DECLARE_SMELEMENT_HEADER( TOrphansBackwardsOrNoTag, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, TContext)
+    virtual TInt TransitionTag();
+DECLARE_SMELEMENT_FOOTER( TOrphansBackwardsOrNoTag )
+
+DECLARE_SMELEMENT_HEADER( TNoTagBackwardsOrNoClients, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, TContext)
+    virtual TInt TransitionTag();
+DECLARE_SMELEMENT_FOOTER( TNoTagBackwardsOrNoClients )
+
+DECLARE_SMELEMENT_HEADER( TNonLeavingNoTagOrNoClients, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, TContext)
+    virtual TInt TransitionTag();
+DECLARE_SMELEMENT_FOOTER( TNonLeavingNoTagOrNoClients )
+
 //-=========================================================
 //
 //State Transitions
@@ -871,6 +889,13 @@
 	CoreNetStates::TSendDataClientIdleIfNoClients
 	)
 
+DECLARE_AGGREGATED_TRANSITION3(
+	TProcessClientLeft,
+	MeshMachine::TRemoveClient,
+	PRStates::TDestroyOrphanedDataClients,
+	CoreNetStates::TSendDataClientIdleIfNoClients
+	)
+
 DECLARE_AGGREGATED_TRANSITION4(
 	TProcessDestroy,
 	CoreStates::TAbortAllActivitiesNodeDeletion,
@@ -960,6 +985,15 @@
 	CoreStates::TPostToOriginators
 	)
 
+void DestroyFirstClient(const Messages::TClientType& aIncClientType, const Messages::TClientType& aExcClientType = Messages::TClientType::NullType());
+
+DECLARE_SMELEMENT_HEADER( TDestroyFirstOrphan, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, TContext)
+    virtual void DoL();
+DECLARE_SMELEMENT_FOOTER( TDestroyFirstOrphan )
+
+DECLARE_SMELEMENT_HEADER( TDestroyFirstClient, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, TContext)
+    virtual void DoL();
+DECLARE_SMELEMENT_FOOTER( TDestroyFirstClient )
 } //namespace PRStates
 
 #endif //SYMBIAN_SS_COREPRSTATES_H
--- a/datacommsserver/esockserver/csock/CS_CLI.CPP	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/csock/CS_CLI.CPP	Mon Mar 15 12:45:15 2010 +0200
@@ -158,14 +158,19 @@
     {
     }
 
-EXPORT_C TInt RSocketServ::Connect(TUint aMessageSlots /* =8 */)
+EXPORT_C TInt RSocketServ::Connect(TUint aAsyncMessageSlots /* = (TUint) -1 */)
 /** Opens a session to the socket server.
 
-The number of message slots indicates how many asychronous operations are 
-allowed to be uncompleted at any one time by the combined resources opened 
-on the session. The result of having too few slots is not fatal. However, 
-operations may return KErrServerBusy indicating that no message slot was 
-available after a small time trying.
+Each outstanding asynchronous request made upon the session (typically via
+a subsession such as RSocket) requires a message slot. If there is no free slot
+the request is immediately completed with KErrServerBusy. If a client specifies
+a fixed number of slots then they form an inelastic pool exclusive to the 
+session. Alternatively a client can specify -1 to use the global free message
+pool, which can grow upon demand but has poorer time bounds and can in principle
+fail any request. For most clients the global pool will be appropriate since it 
+removes the need to accurately determine the worst case size.
+
+Note that in previous releases the default value was KESockDefaultMessageSlots (8).
 
 RHandleBase::Close() should be called once the session is no longer required. 
 All resources which are opened using the session will be automatically closed 
@@ -174,7 +179,8 @@
 When the last session which has open resources for a protocol is closed a 
 protocol module will be unloaded automatically by the socket server.
 
-@param aMessageSlots The number of message slots required. If not specified, 8.
+@param aAsyncMessageSlots The number of message slots required. If not specified then -1 to
+use the global pool of free messages.
 @return KErrNone if successful, otherwise another of the system-wide error 
 codes. */
 	{
@@ -184,7 +190,7 @@
 #endif
 	
 	TSessionPref pref;
-	TInt r = Connect(pref, aMessageSlots);
+	TInt r = Connect(pref, aAsyncMessageSlots);
 
    // Because ESock is now loaded by the Comms Root Server which is generally started during
 	// the boot this should commonly succeed; however for test code this is still a possibility
@@ -194,7 +200,7 @@
 		r=StartC32();
 		if (r==KErrNone || r==KErrAlreadyExists)
 			{
-			r = Connect(pref, aMessageSlots);
+			r = Connect(pref, aAsyncMessageSlots);
 			}
 		}
 
@@ -215,17 +221,25 @@
     iReserved4(0)
     {}
 
-EXPORT_C TInt RSocketServ::Connect(const TSessionPref& aPref, TUint aMessageSlots)
+EXPORT_C TInt RSocketServ::Connect(const TSessionPref& aPref, TUint aMessageSlots /* = (TUint) -1 */)
 /** Opens a session to the socket server.
 
-The session prefs provides a hint to the server of which protocol the client intend to use.
-This might result in better performance for the connection.
+By providing session prefs the client states what services they require of the server. This
+allows the server to configure the client connection in an optimal manner. Such a 
+configuration may not support all normal abilities of a session. For example a connection
+opened specifying KAfInet for the address family will be able to create TCP sockets but
+might not be able to create SMS sockets.
 
-The number of message slots indicates how many asychronous operations are
-allowed to be uncompleted at any one time by the combined resources opened
-on the session. The result of having too few slots is not fatal. However,
-operations may return KErrServerBusy indicating that no message slot was
-available after a small time trying.
+Each outstanding asynchronous request made upon the session (typically via
+a subsession such as RSocket) requires a message slot. If there is no free slot
+the request is immediately completed with KErrServerBusy. If a client specifies
+a fixed number of slots then they form an inelastic pool exclusive to the 
+session. Alternatively a client can specify -1 to use the global free message
+pool, which can grow upon demand but has poorer time bounds and can in principle
+fail any request. For most clients the global pool will be appropriate since it 
+removes the need to accurately determine the worst case size.
+
+Note that in previous releases the default value was KESockDefaultMessageSlots (8).
 
 RHandleBase::Close() should be called once the session is no longer required.
 All resources which are opened using the session will be automatically closed
@@ -235,7 +249,8 @@
 protocol module will be unloaded automatically by the socket server.
 
 @param aPrefs Hint for server to create most optimal connection possible.
-@param aMessageSlots The number of message slots required. If not specified, 8.
+@param aAsyncMessageSlots The number of message slots required. If not specified then -1 to
+use the global pool of free messages.
 @return KErrNone if successful, otherwise another of the system-wide error
 codes. */
 	{
--- a/datacommsserver/esockserver/eabi/esocksvrU.DEF	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/eabi/esocksvrU.DEF	Mon Mar 15 12:45:15 2010 +0200
@@ -330,7 +330,7 @@
 	_ZTVN14CoreActivities16CDestroyActivity37TMakeClientsLeaveOrProcessClientLeaveE @ 329 NONAME
 	_ZTVN14CoreActivities16CDestroyActivity22TNoTagOrNoTagBackwardsE @ 330 NONAME
 	_ZTVN14CoreActivities16ABindingActivityE @ 331 NONAME
-	_ZTVN14CoreActivities16ABindingActivity29TSendBindToCompleteIfExpectedE @ 332 NONAME
+	_ZTVN14CoreActivities16ABindingActivity29TSendBindToCompleteIfExpectedE @ 332 NONAME ABSENT
 	_ZN21CCommsMobilitySrvResp16NewCarrierActiveERPS_16TAccessPointInfoi @ 333 NONAME
 	_ZN21CCommsMobilitySrvResp25PreferredCarrierAvailableERPS_16TAccessPointInfoS2_ii @ 334 NONAME
 	_ZTVN14CoreActivities16ABindingActivity19TSendBindToCompleteE @ 335 NONAME
@@ -607,8 +607,8 @@
 	_ZN14CoreActivities16ABindingActivity17ReplyToOriginatorEi @ 606 NONAME
 	_ZN14CoreActivities16ABindingActivity19TSendBindToComplete12GetVTablePtrER6TDesC8Pv @ 607 NONAME
 	_ZN14CoreActivities16ABindingActivity19TSendBindToComplete3DoLEv @ 608 NONAME
-	_ZN14CoreActivities16ABindingActivity29TSendBindToCompleteIfExpected12GetVTablePtrER6TDesC8Pv @ 609 NONAME
-	_ZN14CoreActivities16ABindingActivity29TSendBindToCompleteIfExpected3DoLEv @ 610 NONAME
+	_ZN14CoreActivities16ABindingActivity29TSendBindToCompleteIfExpected12GetVTablePtrER6TDesC8Pv @ 609 NONAME ABSENT
+	_ZN14CoreActivities16ABindingActivity29TSendBindToCompleteIfExpected3DoLEv @ 610 NONAME ABSENT
 	_ZN14CoreActivities16ABindingActivityD0Ev @ 611 NONAME
 	_ZN14CoreActivities16ABindingActivityD1Ev @ 612 NONAME
 	_ZN14CoreActivities16ABindingActivityD2Ev @ 613 NONAME
@@ -1374,7 +1374,7 @@
 	_ZTIN14CoreActivities14CErrorActivity21TSendErrorRecoveryReqE @ 1373 NONAME
 	_ZTIN14CoreActivities14CErrorActivityE @ 1374 NONAME
 	_ZTIN14CoreActivities16ABindingActivity19TSendBindToCompleteE @ 1375 NONAME
-	_ZTIN14CoreActivities16ABindingActivity29TSendBindToCompleteIfExpectedE @ 1376 NONAME
+	_ZTIN14CoreActivities16ABindingActivity29TSendBindToCompleteIfExpectedE @ 1376 NONAME ABSENT
 	_ZTIN14CoreActivities16ABindingActivityE @ 1377 NONAME
 	_ZTIN14CoreActivities16CDestroyActivity22TNoTagOrNoTagBackwardsE @ 1378 NONAME
 	_ZTIN14CoreActivities16CDestroyActivity37TMakeClientsLeaveOrProcessClientLeaveE @ 1379 NONAME
@@ -1945,6 +1945,6 @@
 	_ZTVN13CoreNetStates12TCancelStartE @ 1944 NONAME
 	_ZN10CoreStates37TNoTagOrRecoverableErrorTagOrErrorTag13TransitionTagEv @ 1945 NONAME
 	_ZNK5ESock25RCFParameterFamilyBundleC18CountParameterSetsEv @ 1946 NONAME
-
+	_ZN20PRClientLeftActivity12PRClientLeft11FirstTripleEv @ 1947 NONAME
+	_ZN20PRClientLeftActivity12PRClientLeft4SelfEv @ 1948 NONAME
 
-
--- a/datacommsserver/esockserver/group/BLD.INF	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/group/BLD.INF	Mon Mar 15 12:45:15 2010 +0200
@@ -74,7 +74,8 @@
 ../inc/ES_SOCK.H SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(es_sock.h)	
 ../inc/ES_SOCK.INL SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(es_sock.inl)	
 ../inc/ES_VER.H SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(es_ver.h)
-../inc/ss_activities.h							SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(comms-infras/ss_activities.h)
+../inc/ss_activities.h				SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(comms-infras/ss_activities.h)
+../inc/ss_internal_activities.h			SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(comms-infras/ss_internal_activities.h)
 ../inc/ss_common.h                              SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(comms-infras/ss_common.h)
 ../inc/ss_commsprov.h	                        SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(comms-infras/ss_commsprov.h)
 ../inc/ss_commsprov_internal.h	                SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(comms-infras/ss_commsprov_internal.h)
--- a/datacommsserver/esockserver/group/backup_registration.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/group/backup_registration.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -4,7 +4,7 @@
  Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
--- a/datacommsserver/esockserver/inc/ES_SOCK.H	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/inc/ES_SOCK.H	Mon Mar 15 12:45:15 2010 +0200
@@ -707,8 +707,8 @@
 	{
 public:
     IMPORT_C RSocketServ();
-	IMPORT_C TInt Connect(TUint aMessageSlots=KESockDefaultMessageSlots);
-	IMPORT_C TInt Connect(const TSessionPref& aPref, TUint aMessageSlots=KESockDefaultMessageSlots);
+	IMPORT_C TInt Connect(TUint aMessageSlots = (TUint) -1);
+	IMPORT_C TInt Connect(const TSessionPref& aPref, TUint aMessageSlots = (TUint) -1);
 	IMPORT_C TVersion Version() const;
 	IMPORT_C TInt NumProtocols(TUint& aCount);
 	IMPORT_C TInt GetProtocolInfo(TUint anIndex,TProtocolDesc& aProtocol);
--- a/datacommsserver/esockserver/inc/ss_activities.h	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/inc/ss_activities.h	Mon Mar 15 12:45:15 2010 +0200
@@ -71,9 +71,8 @@
 
 	ECFActivityGoneUp                   = 25,
 	ECFActivityAny			    = 26,
-
+	ECFActivityClientLeft       = 27,
 
-	//spare = 27,
 	//spare = 28,
 	//spare = 29,
 	//spare = 30,
--- a/datacommsserver/esockserver/inc/ss_connstates.h	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/inc/ss_connstates.h	Mon Mar 15 12:45:15 2010 +0200
@@ -422,6 +422,10 @@
 		virtual void DoL();
 	DECLARE_SMELEMENT_FOOTER( TSubscribeForAvailability )
 
+	DECLARE_SMELEMENT_HEADER( TSetIdleIfStopOutstanding, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, TContext)
+		virtual void DoL();
+	DECLARE_SMELEMENT_FOOTER( TSetIdleIfStopOutstanding )
+
 	DECLARE_SMELEMENT_HEADER(TAwaitingSelectCompleteOrError, MeshMachine::TState<TContext>, NetStateMachine::MState, TContext)
 		virtual TBool Accept();
 	DECLARE_SMELEMENT_FOOTER(TAwaitingSelectCompleteOrError)
--- a/datacommsserver/esockserver/inc/ss_flowrequeststates.h	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/inc/ss_flowrequeststates.h	Mon Mar 15 12:45:15 2010 +0200
@@ -24,6 +24,7 @@
 
 #include <comms-infras/ss_coreprstates.h>
 #include <comms-infras/ss_corepractivities.h>
+#include "ss_nodemessages_dataclient.h"
 
 #include "ss_flowrequest.h"
 
@@ -99,6 +100,9 @@
 	virtual void DoL();
 DECLARE_SMELEMENT_FOOTER( TLeaveSubConnection )
 
+DECLARE_SMELEMENT_HEADER( TSendClientLeavingAndRemoveControlProvider, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, TContext )
+	virtual void DoL();
+DECLARE_SMELEMENT_FOOTER( TSendClientLeavingAndRemoveControlProvider )
 
 
 //
@@ -146,6 +150,13 @@
 
 	virtual ~CFlowRequestActivity()
 		{
+		if( !iBindToSender.IsNull() )
+		    {
+		    TInt err = Error() ? Error() : KErrAbort;
+		    Messages::RNodeInterface::OpenPostMessageClose(Messages::TNodeCtxId(ActivityId(), iNode.Id()),
+		            iBindToSender, Messages::TEBase::TError(ESock::TCFDataClient::TBindToComplete::Id(), err).CRef());
+		    }
+		
 		static_cast<ESock::CFlowRequest&>(iNode).iFlowParameters.Close();
 		__ASSERT_DEBUG(iNode.CountAllActivities()==0, User::Panic(KSpecAssert_ESocksflwrqststs, 1));
 #ifndef __GCCXML__
@@ -153,12 +164,27 @@
 			iNode.Id(), Messages::TEChild::TDestroy().CRef());
 #endif
 		}
+	
+public:
+    /* A node that has sent TCFDataClient::TBindTo. The response TCFDataClient::TBindToComplete
+     * must be sent to this node. 
+     */ 
+    Messages::TNodeCtxId iBindToSender;
 
 public:
 	typedef MeshMachine::TNodeContext<ESock::CFlowRequest, CoreStates::TContext> TContext;
+	
+DECLARE_SMELEMENT_HEADER( TAwaitingBindTo, MeshMachine::TState<TContext>, NetStateMachine::MState, TContext )
+    virtual TBool Accept();
+DECLARE_SMELEMENT_FOOTER( TAwaitingBindTo )
+	
 DECLARE_SMELEMENT_HEADER( TStoreFlowParams, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, TContext )
 	virtual void DoL();
 DECLARE_SMELEMENT_FOOTER( TStoreFlowParams )
+
+DECLARE_SMELEMENT_HEADER( TSendBindToComplete, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, TContext )
+    virtual void DoL();
+DECLARE_SMELEMENT_FOOTER( TSendBindToComplete )
 	};
 
 class CFlowRequestDestroyActivity : public MeshMachine::CNodeActivityBase, protected MeshMachine::APreallocatedOriginators<1>
--- a/datacommsserver/esockserver/inc/ss_internal_activities.h	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/inc/ss_internal_activities.h	Mon Mar 15 12:45:15 2010 +0200
@@ -83,7 +83,7 @@
 	ECFActivityImplicitFlow				= 112,
 	ECFActivityConnectionFlow			= 113,
 	ECFActivitySubConnectionFlow		= 114,
-	// spare = 115,
+	ECFActivityDestroyOrphans           = 115,
 
 	//CSubConnection / SCPR specific activities (could be reuse when other IDs exhausted)
 	ECFActivityGetParamLength			= 116,
--- a/datacommsserver/esockserver/inc/ss_nodemessages_dataclient.h	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/inc/ss_nodemessages_dataclient.h	Mon Mar 15 12:45:15 2010 +0200
@@ -107,7 +107,7 @@
 				      TBindTo sender may roll back a transaction by cancelling the reuqest (TCancel).
 	*/
     typedef Messages::TMessageSigNodeIdNumberDefault<ECFBindTo,  TCFDataClient::ERealmId> TBindTo;
-    typedef Messages::TMessageSigNumberDefault<ECFBindToComplete, TCFDataClient::ERealmId> TBindToComplete;
+    typedef Messages::TMessageSigVoid<ECFBindToComplete, TCFDataClient::ERealmId> TBindToComplete;
     typedef Messages::TMessageSigVoid<ECFCommitBindTo, TCFDataClient::ERealmId> TCommitBindTo;
 
 	/**
--- a/datacommsserver/esockserver/inc/ss_nodemessages_internal.h	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/inc/ss_nodemessages_internal.h	Mon Mar 15 12:45:15 2010 +0200
@@ -232,7 +232,8 @@
 	
 	ECFTransportNotification		= 100,  // For SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW
 	
-    ECFProvisionConnectionInfo      = 101
+    ECFProvisionConnectionInfo      = 101,
+	ECFDestroyOrphans               = 102
 	};
 protected:
 	friend class ::CSockManData;
@@ -351,6 +352,8 @@
 	    fact until it is requested to do something (e.g.: TCFDataClient::Start)
 	    */
 	    typedef TMessageSigConnectionInfoPtr<ECFProvisionConnectionInfo, TCFMessage::ERealmId> TProvisionConnectionInfo;
+
+	  typedef Messages::TMessageSigVoid <ECFDestroyOrphans, TCFMessage::ERealmId> TDestroyOrphans;
 	};
 } //namespace ESock
 
--- a/datacommsserver/esockserver/inc/ss_nodemessages_serviceprovider.h	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/inc/ss_nodemessages_serviceprovider.h	Mon Mar 15 12:45:15 2010 +0200
@@ -40,67 +40,61 @@
 	ECFStopped               		= 4,
 	ECFCommsBinderRequest			= 5,
 	ECFCommsBinderResponse			= 6,
+    ECFCommsBindToComplete          = 7,
 	};
 protected:
 
 public:
     enum { ERealmId = 0x10285F4F }; //UID allocated on 4/6/08 from KUidNodeMessageRealms 
-    /*==========================================================================
-    [Name]:      TCommsBinderRequest
-    [Semantics]: A request for a dataclient. Recipient has to respond with TCommsBinderResponse carrying
-                 one of its dataclients.
+    /**
+    A request for a dataclient. The recipient of TCommsBinderRequest has to respond with 
+    TCommsBinderResponse carrying one of its data clients. Once the requestor (control client) 
+    consumes the data client, the consumption is acknowledged back to the servicing node with 
+    TCFServiceProvider::TBindToComplete.            
+    
+    @li Type:      Request for TCommsBinderResponse
+    @li Fallible:  Yes
 
-    [Type]:      Request for TCommsBinderResponse.
-    [Fallible]:  Yes.
-
-    [Structure]:
-    param: iValue       - the semantics of this parameter depends on the recipient's plane:
+    @param iValue  The semantics of this parameter depends on the recipient's plane:
                           CPR : - dataclient type, i.e.: EAttachToDefault/ECreateNew/EWaitForIncoming
                           SCPR: - protocol Id - could be left blank when not needed
                           MCPR: - attach flags (normal/monitor) 0 for start only
-			iFamilyBundle - parameters to assist the finding/creation of dataclient
-    ===========================================================================*/
+    @param iFamilyBundle parameters to assist the finding/creation of dataclient
+    */
     typedef TMessageSigNumberDefaultFamilyBundleDefaultToNull<ECFCommsBinderRequest, TCFServiceProvider::ERealmId> TCommsBinderRequest;
-
-    /*==========================================================================
-    [Name]:      TCommsBinderResponse
-    [Semantics]: Sent to the control client as a response to TCommsBinderRequest and
-                 as a request for TBindToComplete
-
-    [Type]:      Request for TBindToComplete.
-                 Response to TCommsBinderRequest.
-    [Fallible]:  Yes.
+    
+    /**
+    @li Type:       Request for TCFServiceProvider::TBindToComplete
+                    Response to TCFServiceProvider::TCommsBinderRequest
+    @li Fallible:   Yes
+    @param iNodeId  The requested binder
+    
+    */
+    typedef Messages::TMessageSigNodeId<ECFCommsBinderResponse, TCFServiceProvider::ERealmId> TCommsBinderResponse;   
+    
+    /**
+    Response to TCommsBinderResponse. 
+    @li Type:       Response to TCommsBinderResponse
+    @param iValue   Result of data client consumption
+    */
+    typedef Messages::TMessageSigNumberDefault<ECFCommsBindToComplete, TCFServiceProvider::ERealmId> TBindToComplete;
 
-    [Structure]:
-    param: iNodeId - the requested binder
-    ===========================================================================*/
-
-    typedef Messages::TMessageSigNodeId<ECFCommsBinderResponse, TCFServiceProvider::ERealmId> TCommsBinderResponse;
-
-    /*==========================================================================
-    [Name]:      TStart
-    [Semantics]: Request to start the stack. The recipient should start the stack below it
-                 and start its own layer.
-
-    [Type]:      Request for TStarted.
-    [Fallible]:  Yes.
-
-    [Structure]:
-    ===========================================================================*/
+    /**
+    Request to start the stack. The recipient should start the stack below it and start its own layer.
+    @li Type:      Request for TStarted.
+    @li Fallible:  Yes
+    */
     typedef Messages::TMessageSigVoid<ECFStart,   TCFServiceProvider::ERealmId> TStart;
     typedef Messages::TMessageSigVoid<ECFStarted, TCFServiceProvider::ERealmId> TStarted;
 
-    /*==========================================================================
-    [Name]:      TStop
-    [Semantics]: Request to stop the stack. The recipient should stop its own layer
-                 and subsequently stop the stack below it.
+    /**
+    Request to stop the stack. The recipient should stop its own layer and subsequently stop the stack below it.
 
-    [Type]:      Request for TStopped.
-    [Fallible]:  No.
+    @li Type:      Request for TStopped.
+    @li Fallible:  No
 
-    [Structure]:
-    param: iValue - stop code (reason).
-    ===========================================================================*/
+    @param: iValue - stop code (reason).
+    */
     typedef Messages::TMessageSigNumber<ECFStop,    TCFServiceProvider::ERealmId> TStop;
     typedef Messages::TMessageSigNumber<ECFStopped, TCFServiceProvider::ERealmId> TStopped;
 	};
@@ -117,28 +111,24 @@
 public:
     enum { ERealmId = 0x10285F3F }; //UID allocated on 4/6/08 from KUidNodeMessageRealms
 
-    /*==========================================================================
-    [Name]:      TGoneDown
-    [Semantics]: Notification about the stack below gone down. This is an equivallent of
-                 of an unsolicited TStopped (i.e.: the stack below is notionally stopped).
+    /**
+    Notification about the stack below gone down. This is an equivallent of of an 
+    unsolicited TStopped (i.e.: the stack below is notionally stopped).
 
-    [Type]:      Notification
+    @li Type:      Notification
 
-    [Structure]:
-    param        iValue1 - reason for going down.
+    @param       iValue1 - reason for going down.
                  iValue2 - Access Point id as provisioned with CAccessPointConfig::ProviderInfo()::APId()
-    ===========================================================================*/
+    */
     typedef Messages::TMessageSigNumberDefaultNumberDefault<ECFGoneDown, TCFControlClient::ERealmId> TGoneDown;
-  /*==========================================================================
-    [Name]:      TGoneUp
-    [Semantics]: Notification about the stack below gone up. This is an equivallent of
-                 of an unsolicited TStarted  (i.e.: the stack below is notionally started).
+    
+    /**
+    Notification about the stack below gone up. This is an equivallent of of an unsolicited 
+    TStarted  (i.e.: the stack below is notionally started).
 
-    [Type]:      Notification
+    @li Type:      Notification
 
-    [Structure]:
-    param        None
-    ===========================================================================*/
+    */
 	typedef Messages::TMessageSigVoid<ECFGoneUp, TCFControlClient::ERealmId> TGoneUp;
 	};
 
--- a/datacommsserver/esockserver/ssock/SS_RSLV.CPP	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/ssock/SS_RSLV.CPP	Mon Mar 15 12:45:15 2010 +0200
@@ -162,10 +162,16 @@
 			TRAP(err,BindToL(bindToMsg));
 			}
 
-		TCFDataClient::TBindToComplete bindCompleteMsg(err);
-		RClientInterface::OpenPostMessageClose(Id(), aSender,
-			bindCompleteMsg);
+        if(err == KErrNone)
+            {
+            RClientInterface::OpenPostMessageClose(Id(), aSender, TCFDataClient::TBindToComplete().CRef());
+            }
+        else
+            {
+            RClientInterface::OpenPostMessageClose(Id(), aSender, TEBase::TError(aMessage.MessageId(), err).CRef());
+            }
 
+        
 		CompleteFlowRequestMessage(err);
 
 		if (IsClosing())
--- a/datacommsserver/esockserver/ssock/ss_conn.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/ssock/ss_conn.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -146,6 +146,10 @@
 #ifdef SYMBIAN_NETWORKING_UPS
 	THROUGH_NODEACTIVITY_ENTRY(CStartAttachActivity::KUpsErrorTag, TDoNothing, MeshMachine::TErrorTag)
 #endif
+
+	// If there is a stop activity outstanding (it should be waiting for this activity to complete) then we will leave that to decide the fate of our service providers
+	THROUGH_NODEACTIVITY_ENTRY(KErrorTag, ConnActivities::CStartAttachActivity::TSetIdleIfStopOutstanding, MeshMachine::TErrorTag)
+
 	NODEACTIVITY_ENTRY(KErrorTag, CoreNetStates::TSendClientLeavingRequestToServiceProviders, MeshMachine::TAwaitingLeaveComplete, MeshMachine::TNoTag)
 	NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSetIdleIfNoServiceProviders, MeshMachine::TAwaitingLeaveComplete, ConnectionCleanupActivities::TNoTagOrNoTagBackwards)
 	LAST_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing)
--- a/datacommsserver/esockserver/ssock/ss_connLegacy.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/ssock/ss_connLegacy.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -168,6 +168,9 @@
 		User::Leave(error);
 		}
 
+	// Make sure the MCPR knows that the CPR has a new control client
+	ipProtoCpr->ControlProvider()->PostMessage(ipProtoCpr->Id(), TCFControlProvider::TActive().CRef());
+
 	iConnection.ServiceProvider()->SetFlags(TCFClientType::EStarted);
 	}
 
--- a/datacommsserver/esockserver/ssock/ss_connprov.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/ssock/ss_connprov.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -143,6 +143,18 @@
 	return provider ? provider : CreateL(aQuery);		
 	}
 
+LOCAL_C void RemoveClientAndDestroy(TAny* aConnProvider)
+    {
+    CConnectionProviderBase* connProv = static_cast<CConnectionProviderBase*>(aConnProvider);
+    Messages::RNodeInterface* cntrProv = connProv->ControlProvider();
+    if(cntrProv != NULL)
+        {
+        connProv->RemoveClient(cntrProv->RecipientId());
+        }
+    
+    // cast needed because CConnectionProviderBase destructor is protected
+    delete static_cast<CCommsProviderBase*>(aConnProvider);
+    }
 
 EXPORT_C ACommsFactoryNodeId* CConnectionProviderFactoryBase::CreateL(TFactoryQueryBase& aQuery)
 /**	Create a new instance of connection provider
@@ -150,8 +162,7 @@
 @return Pointer to the created connection provider or NULL if there's a failure */
 	{
 	CConnectionProviderBase* provider = static_cast<CConnectionProviderBase*>(DoCreateObjectL(aQuery));
-	CleanupStack::PushL(provider);
-
+	CleanupStack::PushL(TCleanupItem(RemoveClientAndDestroy, provider));
 	const TDefaultConnectionFactoryQuery& query = static_cast<const TDefaultConnectionFactoryQuery&>(aQuery);
 	provider->AddClientL(address_cast<TNodeId>(query.iMCprId), TClientType(TCFClientType::ECtrlProvider));
 
--- a/datacommsserver/esockserver/ssock/ss_connselect.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/ssock/ss_connselect.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -104,13 +104,23 @@
 			break;
 		case TEBase::TError::EId:
 			{
+			TEBase::TError& error = message_cast<TEBase::TError>(aCFMessage);
 			if (iSelectionStatus==ERequestingCommsBinder)
-				{
-				CommsBinderRequestError(aSender, message_cast<TEBase::TError>(aCFMessage));
-				}
+			    {
+			    CommsBinderRequestError(aSender,error);
+			    }
+			else if(error.iMsgId == TCFDataClient::TBindToComplete::Id())
+			    {
+			    if (KErrNone==iOriginalError)
+			        {
+			        iOriginalError = error.iValue;
+			        }
+	            // Send TCFServiceProvider::TBindToComplete to complete BinderRequest
+	            __ASSERT_DEBUG(!iTopMcprId.IsNull(), User::Panic(KSpecAssert_ESockSSockscnslc, 43)); //iTopMcprId must be selected by now!
+	            RNodeInterface::OpenPostMessageClose(Id(), iTopMcprId, TCFServiceProvider::TBindToComplete(error.iValue).CRef());
+			    }
 			else
-				{
-				TEBase::TError& error = message_cast<TEBase::TError>(aCFMessage);
+			    {
 				if (error.iMsgId == TCFSelector::TSimpleSelect::Id()
 					|| error.iMsgId == TCFSelector::TSelect::Id())
 					{
@@ -206,10 +216,13 @@
 		}
 	else if ( aCFMessage.IsMessage<TCFDataClient::TBindToComplete>() )
 		{
-		__ASSERT_DEBUG(KErrNone==message_cast<TCFDataClient::TBindToComplete>(aCFMessage).iValue || iRequestingNode==aSender, User::Panic(KSpecAssert_ESockSSockscnslc, 12));
-		__ASSERT_DEBUG(KErrNone==message_cast<TCFDataClient::TBindToComplete>(aCFMessage).iValue || iSelectionStatus==ERequestingCommsBinder || iSelectionStatus==EIdle, User::Panic(KSpecAssert_ESockSSockscnslc, 13));
-		__ASSERT_DEBUG(KErrNone==message_cast<TCFDataClient::TBindToComplete>(aCFMessage).iValue || !iTopMcprId.IsNull(), User::Panic(KSpecAssert_ESockSSockscnslc, 14)); //iTopMcprId must be selected by now!
-		RNodeInterface::OpenPostMessageClose(Id(), iTopMcprId, aCFMessage);
+		__ASSERT_DEBUG(iRequestingNode==aSender, User::Panic(KSpecAssert_ESockSSockscnslc, 12));
+		__ASSERT_DEBUG(iSelectionStatus==ERequestingCommsBinder || iSelectionStatus==EIdle, User::Panic(KSpecAssert_ESockSSockscnslc, 13));
+		__ASSERT_DEBUG(!iTopMcprId.IsNull(), User::Panic(KSpecAssert_ESockSSockscnslc, 14)); //iTopMcprId must be selected by now!
+
+		// Notify the service provider to complete binding activity (TCFServiceProvider::TCommsBinderRequest)
+		RNodeInterface::OpenPostMessageClose(Id(), iTopMcprId, TCFServiceProvider::TBindToComplete().CRef());
+
 		}
 	else if ( aCFMessage.IsMessage<TCFMessage::TStateChange>() )
 		{
--- a/datacommsserver/esockserver/ssock/ss_connstates.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/ssock/ss_connstates.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -1029,6 +1029,20 @@
 	return EFalse;
 	}
 
+DEFINE_SMELEMENT(CStartAttachActivity::TSetIdleIfStopOutstanding, NetStateMachine::MStateTransition, TContext)
+void CStartAttachActivity::TSetIdleIfStopOutstanding::DoL()
+	{
+	__ASSERT_DEBUG(iContext.iNodeActivity, ConnPanic(KPanicNoActivity));
+	ConnActivities::CStartAttachActivity& activity = static_cast<ConnActivities::CStartAttachActivity&>(*iContext.iNodeActivity);
+
+	// If there is a stop activity outstanding then we set this start activity idle
+	TInt numRunningStopActivities = iContext.Node().CountActivities(ESock::ECFActivityStop);
+	if (numRunningStopActivities > 0)
+		{
+		activity.SetIdle();
+		}
+	}
+
 
 #ifdef SYMBIAN_NETWORKING_UPS
 
--- a/datacommsserver/esockserver/ssock/ss_flowrequest.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/ssock/ss_flowrequest.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -53,7 +53,7 @@
 	FIRST_NODEACTIVITY_ENTRY(MeshMachine::TAwaitingDestroy, MeshMachine::TNoTag)
 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TRemoveRequestor, MeshMachine::TNoTag)
 	//TCFSubConnFlowRequest adds subconnection as a control provider so remove if necessary
-	THROUGH_NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSendClientLeavingAndRemoveControlProvider, MeshMachine::TNoTag)
+	THROUGH_NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TSendClientLeavingAndRemoveControlProvider, MeshMachine::TNoTag)
 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TLeaveServiceProvidersOrSetIdle, MeshMachine::TNoTag)
 	//TDestroyAwaitingLeaveCompleteLoop loops back to its own triple if more SPs
 	NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSetIdleIfNoServiceProviders, MeshMachine::TAwaitingLeaveComplete, CoreActivities::CDestroyActivity::TNoTagOrNoTagBackwards)
@@ -67,13 +67,14 @@
 	FIRST_NODEACTIVITY_ENTRY(FlowRequestStates::TAwaitingImplicitFlowRequest, MeshMachine::TNoTag)
 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, CFlowRequestActivity::TStoreFlowParams, MeshMachine::TNoTag)
 	NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TRequestCSRCreation, CoreNetStates::TAwaitingCSRCreated, MeshMachine::TNoTag)
-	NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TSelectMetaPlane, CoreNetStates::TAwaitingBindTo, MeshMachine::TNoTag)
+	NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TSelectMetaPlane, CFlowRequestActivity::TAwaitingBindTo, MeshMachine::TNoTag)
 	NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSendControlClientJoinRequest, CoreStates::TAwaitingJoinComplete, MeshMachine::TNoTag)
-	NODEACTIVITY_ENTRY(KNoTag, CoreActivities::ABindingActivity::TSendBindToCompleteAndRequestCommsBinder, CoreNetStates::TAwaitingBinderResponse,MeshMachine::TNoTag)
+	THROUGH_NODEACTIVITY_ENTRY(KNoTag, CFlowRequestActivity::TSendBindToComplete,MeshMachine::TNoTag)
+	NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TRequestCommsBinder, CoreNetStates::TAwaitingBinderResponse,MeshMachine::TNoTag)
 	NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TJoinReceivedSCpr, CoreStates::TAwaitingJoinComplete, MeshMachine::TNoTag)
 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, CoreActivities::ABindingActivity::TSendBindToComplete, MeshMachine::TNoTag)
 	NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TRequestCommsBinderFromSCpr, CoreNetStates::TAwaitingBinderResponse, MeshMachine::TNoTag)
-	NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSendBindTo, CoreNetStates::TAwaitingBindToComplete, MeshMachine::TNoTag)
+	NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSendBindTo, TAcceptErrorState<CoreNetStates::TAwaitingBindToComplete>, MeshMachine::TNoTag)
 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, CoreActivities::ABindingActivity::TSendBindToComplete, MeshMachine::TNoTag)
 	//Cleanup
 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TRemoveRequestor, MeshMachine::TNoTag)
@@ -93,7 +94,7 @@
 	NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TJoinReceivedSCpr, CoreStates::TAwaitingJoinComplete, MeshMachine::TNoTag)
 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, CoreActivities::ABindingActivity::TSendBindToComplete, MeshMachine::TNoTag)
 	NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TRequestCommsBinderFromSCpr, CoreNetStates::TAwaitingBinderResponse, MeshMachine::TNoTag)
-	NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSendBindTo, CoreNetStates::TAwaitingBindToComplete,MeshMachine::TNoTag)
+	NODEACTIVITY_ENTRY(KNoTag, CoreNetStates::TSendBindTo, TAcceptErrorState<CoreNetStates::TAwaitingBindToComplete>,MeshMachine::TNoTag)
 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, CoreActivities::ABindingActivity::TSendBindToComplete, MeshMachine::TNoTag)
 	//Cleanup
 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TRemoveRequestor, MeshMachine::TNoTag)
@@ -111,13 +112,13 @@
 	// Send TNoBearer to CSubConnection and wait for TBindTo?
 	THROUGH_NODEACTIVITY_ENTRY(KNoTag, CFlowRequestActivity::TStoreFlowParams, MeshMachine::TNoTag)
 	NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TJoinSubConnection, CoreStates::TAwaitingJoinComplete, MeshMachine::TNoTag)
-	NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TSendNoBearer, MeshMachine::TAcceptErrorState<CoreNetStates::TAwaitingBindTo>, MeshMachine::TNoTagOrErrorTag)
+	NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TSendNoBearer, MeshMachine::TAcceptErrorState<CFlowRequestActivity::TAwaitingBindTo>, MeshMachine::TNoTagOrErrorTag)
 
         // NoBearer Succeeded
         // Forward TBindTo to the socket itself. After all it is the one to do the binding
-        NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TForwardBindToMsgToOriginator, CoreNetStates::TAwaitingBindToComplete, MeshMachine::TNoTag)
+        NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TForwardBindToMsgToOriginator, TAcceptErrorState<CoreNetStates::TAwaitingBindToComplete>, MeshMachine::TNoTag)
         THROUGH_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TClearError, MeshMachine::TNoTag) // The socket will error the client. Allow the BindToComplete to finish naturally.
-        THROUGH_NODEACTIVITY_ENTRY(KNoTag, CoreActivities::ABindingActivity::TSendBindToComplete, MeshMachine::TNoTag)
+        THROUGH_NODEACTIVITY_ENTRY(KNoTag, CFlowRequestActivity::TSendBindToComplete, MeshMachine::TNoTag)
     
         // Cleanup
         THROUGH_NODEACTIVITY_ENTRY(KNoTag, FlowRequestStates::TRemoveRequestor, MeshMachine::TNoTag)
--- a/datacommsserver/esockserver/ssock/ss_flowrequeststates.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/ssock/ss_flowrequeststates.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -158,6 +158,32 @@
 	CleanupStack::Pop(params);
 	}
 
+DEFINE_SMELEMENT(FlowRequestActivities::CFlowRequestActivity::TSendBindToComplete, NetStateMachine::MStateTransition, TContext)
+void FlowRequestActivities::CFlowRequestActivity::TSendBindToComplete::DoL()
+    {
+    __ASSERT_DEBUG(iContext.iNodeActivity, User::Panic(KCFlowRequestPanic, KPanicNoActivity));
+    CFlowRequestActivity& activity = static_cast<CFlowRequestActivity&>(*iContext.iNodeActivity);
+    __ASSERT_DEBUG(!activity.iBindToSender.IsNull(), User::Panic(KSpecAssert_ESockSSockFlwRqS, 2)); 
+    RClientInterface::OpenPostMessageClose(iContext.Node().Id(), activity.iBindToSender, TCFDataClient::TBindToComplete().CRef());
+    activity.iBindToSender.SetNull();
+    }
+
+DEFINE_SMELEMENT(FlowRequestActivities::CFlowRequestActivity::TAwaitingBindTo, NetStateMachine::MState, TContext)
+TBool FlowRequestActivities::CFlowRequestActivity::TAwaitingBindTo::Accept()
+    {
+    TBool accept(EFalse);     
+    if(iContext.iMessage.IsMessage<TCFDataClient::TBindTo>()) 
+        { 
+        // store the node to which we send the response later on.
+        __ASSERT_DEBUG(iContext.iNodeActivity, User::Panic(KCFlowRequestPanic, KPanicNoActivity));
+        CFlowRequestActivity& activity = static_cast<CFlowRequestActivity&>(*iContext.iNodeActivity);
+        __ASSERT_DEBUG(activity.iBindToSender.IsNull(), User::Panic(KSpecAssert_ESockSSockFlwRqS, 3));
+        activity.iBindToSender = iContext.iSender;
+        accept = ETrue;
+        } 
+    
+    return accept;
+    }
 
 DEFINE_SMELEMENT(FlowRequestStates::TSendNoBearer, NetStateMachine::MStateTransition, FlowRequestStates::TContext)
 void FlowRequestStates::TSendNoBearer::DoL()
@@ -255,3 +281,18 @@
 	}
 
 
+
+DEFINE_SMELEMENT(FlowRequestStates::TSendClientLeavingAndRemoveControlProvider, NetStateMachine::MStateTransition, FlowRequestStates::TContext)
+void FlowRequestStates::TSendClientLeavingAndRemoveControlProvider::DoL()
+	{
+   	TClientIter<TDefaultClientMatchPolicy> iter = iContext.Node().GetClientIter<TDefaultClientMatchPolicy>(TClientType(TCFClientType::ECtrlProvider));
+   	RNodeInterface* cl = iter[0];
+   	//It is perfectly possible that there is no Control Provider at all.
+   	if (cl)
+   		{
+		__ASSERT_DEBUG(iContext.iNodeActivity, User::Panic(KCFlowRequestPanic, KPanicNoActivity));
+		cl->PostMessage(TNodeCtxId(iContext.ActivityId(), iContext.NodeId()), TEChild::TLeft().CRef());
+   		iContext.Node().RemoveClient(cl->RecipientId(),iContext);
+   		__ASSERT_DEBUG(iter[1] == NULL, User::Panic(KCFlowRequestPanic, KPanicNoControlProvider)); //But it is not possible to have two Control Providers!
+   		}
+	}
--- a/datacommsserver/esockserver/ssock/ss_intsock.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/ssock/ss_intsock.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -113,9 +113,17 @@
 			{
 			TRAP(err,BindToL(bindToMsg));
 			}
-
-		RClientInterface::OpenPostMessageClose(Id(), aSender, TCFDataClient::TBindToComplete(err).CRef());
-
+		
+		if(err == KErrNone)
+		    {
+		    RClientInterface::OpenPostMessageClose(Id(), aSender, TCFDataClient::TBindToComplete().CRef());
+		    }
+		else
+		    {
+		    RClientInterface::OpenPostMessageClose(Id(), aSender, TEBase::TError(aMessage.MessageId(), err).CRef());
+		    }
+		
+		
 		CompleteFlowRequestMessage(err);
 		SetFlowRequestPending(EFalse);
 
--- a/datacommsserver/esockserver/ssock/ss_mmcommsprov.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/ssock/ss_mmcommsprov.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -19,7 +19,9 @@
 
 #include "ss_mmcommsprov.h"
 #include <elements/nm_messages_child.h>
-
+#include <elements/mm_activities.h> 
+#include "ss_nodemessages_internal.h"
+#include "ss_internal_activities.h"
 
 #ifdef _DEBUG
 // Panic category for "absolutely impossible!" vanilla ASSERT()-type panics from this module
@@ -112,17 +114,19 @@
 
 void CMMCommsProviderBase::DestroyOrphanedDataClients()
 	{
-	//Destroy orphaned data clients
-	RNodeInterface* dc;
-	TClientIter<TDefaultClientMatchPolicy> iter = GetClientIter<TDefaultClientMatchPolicy>(TClientType(TCFClientType::EData));
-	while ((dc = iter++) != NULL)
+    // Note: If PRDataClientStopActivity is running, it will call PRStates::TDestroyOrphanedDataClients
+    // once it has stopped the data clients, so we don't need to start PRDestroyOrphans activity here.
+    // What was happening before was that we were destroying the Default data client before one or more
+    // non-Default clients.  This causes problems due to internal references between some non-Default
+    // and Default data client types.
+	if (CountClients<TDefaultClientMatchPolicy>(
+	        TClientType(TCFClientType::EData),
+	        TClientType(0, TCFClientType::EActive|TCFClientType::EActivating|TCFClientType::ELeaving|TCFClientType::EStarted|TCFClientType::EStarting))
+		&& CountActivities(ECFActivityDestroyOrphans) == 0
+		&& CountActivities(ECFActivityDestroy) == 0
+	    && CountActivities(ECFActivityStopDataClient) == 0)
 		{
-		if (!(dc->Flags()&(TCFClientType::EActive|TCFClientType::EActivating|TCFClientType::ELeaving|TCFClientType::EStarted|TCFClientType::EStarting)))
-			{
-			//AbortActivitiesOriginatedBy(dc->RecipientId(),aContext);
-			dc->PostMessage(Id(), TEChild::TDestroy().CRef());
-			dc->SetFlags(TClientType::ELeaving);
-			}
+		RNodeInterface::OpenPostMessageClose(Id(), Id(), TCFMessage::TDestroyOrphans().CRef());
 		}
 	}
 
--- a/datacommsserver/esockserver/ssock/ss_sapshim.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/ssock/ss_sapshim.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -1089,7 +1089,7 @@
     	//before break, hence it tries to apply the new owner, during which time the new
     	//owner starts and hence attempts to TBindTo his new child. The child hates it
     	//as it arrives from an unknown node. The rejoin protocol needs rethinking.
-		RClientInterface::OpenPostMessageClose(Id(), aSender, TCFDataClient::TBindToComplete(KErrNone).CRef());
+		RClientInterface::OpenPostMessageClose(Id(), aSender, TCFDataClient::TBindToComplete().CRef());
     	return;
     	}
     CNetworkFlow::ReceivedL(aSender, aRecipient, aMessage);
@@ -1161,7 +1161,16 @@
 			TRAPD(err,BindToL(bindToMsg));
 			// Ensure that TBindToComplete message gets sent before TIdle so that it gets to the destination
 			// before destroy processing.
-			RClientInterface::OpenPostMessageClose(Id(), aSender, TCFDataClient::TBindToComplete(err).CRef());
+			if(err == KErrNone)
+			    {
+			    RClientInterface::OpenPostMessageClose(Id(), aSender, TCFDataClient::TBindToComplete().CRef());
+			    }
+			else
+			    {
+			    RClientInterface::OpenPostMessageClose(Id(), aSender, TEBase::TError(aMessage.MessageId(), err).CRef());
+			    }
+			
+			
 			ProcessDCIdleState();	// in case we were waiting to send idle
 			//If we have received TDataClientStart before (when we did not yet have a bearer),
 			//we complete the start here as well
@@ -1809,7 +1818,7 @@
 				}
 	        PostNoBearer();
 		    }
-
+		ClearUseBearerErrors();
 		ClearDataClientRoutedGuard();
 		}
 	else
--- a/datacommsserver/esockserver/ssock/ss_subconn.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/ssock/ss_subconn.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -301,6 +301,7 @@
 	ACTIVITY_MAP_ENTRY(SubConnectionNoBearer, SubConnNoBearer)
     ACTIVITY_MAP_ENTRY(SubConnectionLegacyRMessage2Activity, SubConnectionLegacyRMessage2)
 	ACTIVITY_MAP_ENTRY(PRDataClientJoinActivity, PRDataClientJoin)
+	ACTIVITY_MAP_ENTRY(PRClientLeftActivity, PRClientLeft)
 	ACTIVITY_MAP_ENTRY(PRClientLeaveActivity, PRClientLeave)
 ACTIVITY_MAP_END()
 }
--- a/datacommsserver/esockserver/test/CapTests/Connection/Common/Te_Cap_RConnDHCP.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/CapTests/Connection/Common/Te_Cap_RConnDHCP.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/CapTests/Resolver/Common/Te_Cap_RES.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/CapTests/Resolver/Common/Te_Cap_RES.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/CapTests/Socket/Common/Te_Cap_Esock.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/CapTests/Socket/Common/Te_Cap_Esock.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File for GT0233 PREQ398 Raw IP NIF testing.
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/CapTests/Socket_transfer/Config/TE_Cap_Esock_transfer.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/CapTests/Socket_transfer/Config/TE_Cap_Esock_transfer.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_ESock/scriptfiles/te_esock.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_ESock/scriptfiles/te_esock.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_ESock/scriptfiles/te_esock_ethernet_MOMAP16xx.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_ESock/scriptfiles/te_esock_ethernet_MOMAP16xx.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_ESock/scriptfiles/te_esock_ethernet_wins.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_ESock/scriptfiles/te_esock_ethernet_wins.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_Ini/testdata/te_ini.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_Ini/testdata/te_ini.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnection/configs/DataMonitoring/DataMonitoring.ced.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnection/configs/DataMonitoring/DataMonitoring.ced.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/RConnectionNTRAS_Bad.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/RConnectionNTRAS_Bad.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,10 +3,9 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
-
  Initial Contributors:
  Nokia Corporation - initial contribution.
 
@@ -14,7 +13,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/ainethernet_MOMAP16xx.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/ainethernet_MOMAP16xx.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/ainethernet_emulator.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/ainethernet_emulator.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/ainntras.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/ainntras.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/ainudp.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/ainudp.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/def143083.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/def143083.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectioncmm.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectioncmm.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectioncmm_ethernet_MOMAP16xx.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectioncmm_ethernet_MOMAP16xx.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectioncmm_ethernet_emulator.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectioncmm_ethernet_emulator.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,10 +3,9 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
-
  Initial Contributors:
  Nokia Corporation - initial contribution.
 
@@ -14,7 +13,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionconfigdaemon_MOMAP16xx.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionconfigdaemon_MOMAP16xx.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,10 +3,9 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
-
  Initial Contributors:
  Nokia Corporation - initial contribution.
 
@@ -14,7 +13,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionconfigdaemon_emulator.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionconfigdaemon_emulator.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionethernet_MOMAP16xx.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionethernet_MOMAP16xx.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionethernet_emulator.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionethernet_emulator.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,10 +3,9 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
-
  Initial Contributors:
  Nokia Corporation - initial contribution.
 
@@ -14,7 +13,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionethernet_emulator_test202_204.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionethernet_emulator_test202_204.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,10 +3,9 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
-
  Initial Contributors:
  Nokia Corporation - initial contribution.
 
@@ -14,7 +13,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionntras.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionntras.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionudp.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionudp.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,8 +14,7 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
-
+ 
 -->
 
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionudp_ethernet_MOMAP16xx.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionudp_ethernet_MOMAP16xx.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionudp_ethernet_emulator.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionudp_ethernet_emulator.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,10 +3,9 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
-
  Initial Contributors:
  Nokia Corporation - initial contribution.
 
@@ -14,7 +13,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TE_RConnectionSuite/src/TE_AllInterfaceNotification.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/src/TE_AllInterfaceNotification.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -1770,6 +1770,7 @@
     
     // PASS
     SetTestStepResult(EPass);
+    return EPass;
     }
 
 TVerdict TE_RConnectionTestAllInterfaceNot210::doTestStepPreambleL()
@@ -1810,11 +1811,12 @@
 
     dummyNifEnableProperty.Set(0); // Dummy NIF not available - Start should fail
     dummyNifEnableProperty.Close();
+    return EPass;
     }
 
 TVerdict TE_RConnectionTestAllInterfaceNot210::doTestStepPostambleL()
     {
-    
+    return EPass;
     }
 
 TE_RConnectionTestAllInterfaceNot210::~TE_RConnectionTestAllInterfaceNot210()
--- a/datacommsserver/esockserver/test/TE_Socket/SocketTestSection1.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_Socket/SocketTestSection1.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -12,7 +12,7 @@
 //
 // Description:
 // This contains ESock Test cases from section 1
-// 
+//
 //
 
 // EPOC includes
@@ -59,8 +59,8 @@
 
 	CleanupStack::Pop();
 	ss.Close();
- 
- 	SetTestStepResult(verdict);   
+
+ 	SetTestStepResult(verdict);
 	return verdict;
 	}
 
@@ -71,7 +71,7 @@
 	_LIT(ret,"Test1.2");
 	return ret;
 	}
-	
+
 enum TVerdict CSocketTest1_2::InternalDoTestStepL( void )
 	{
 	TVerdict verdict = EPass;
@@ -91,7 +91,7 @@
 //	ss.__DbgMarkHeap();		// in ESOCKMT leak checking is best done by shutting down the server
 	TUint numProtocols;
 	ret = ss.NumProtocols(numProtocols);
-	Logger().WriteFormat(_L("NumProtocols returned %S, number %d"), 
+	Logger().WriteFormat(_L("NumProtocols returned %S, number %d"),
 			&EpocErrorToText(ret), numProtocols);
 	TESTL(KErrNone == ret);
 
@@ -101,10 +101,10 @@
 	RSocket sock1;
 	TInt pdummyIndex = -1;
  	Logger().WriteFormat(_L("Trying GetProtocolInfo until Dummy Protocol 1 is found"));
-	for (aIndex=1;aIndex<=numProtocols;aIndex++) 
+	for (aIndex=1;aIndex<=numProtocols;aIndex++)
 		{
 		ret = ss.GetProtocolInfo(aIndex, protoInfo);
-		Logger().WriteFormat(_L("GetProtocolInfo returned %S"), &EpocErrorToText(ret));	
+		Logger().WriteFormat(_L("GetProtocolInfo returned %S"), &EpocErrorToText(ret));
 		TESTL(KErrNone == ret || KErrCannotFindProtocol == ret);
 		Logger().WriteFormat(_L("Protocol Index %d corresponds to %S"), aIndex, &protoInfo.iName);
 		if (protoInfo.iName == KDummyProtocol1Name())
@@ -122,7 +122,7 @@
 
 	Logger().WriteFormat(_L("Opening Socket for Family: %d, Sock: %d, protocol: %d"),
 			protoInfo.iAddrFamily, protoInfo.iSockType, protoInfo.iProtocol);
-		
+
 	ret=sock1.Open(ss, protoInfo.iAddrFamily, protoInfo.iSockType, protoInfo.iProtocol);
 	Logger().WriteFormat(_L("Open returned %S"), &EpocErrorToText(ret));
 	TESTL(KErrNone == ret);
@@ -196,7 +196,7 @@
 
 	Logger().WriteFormat(_L("Attempting to create bad socket type"));
 	RSocket sock;
-	ret = sock.Open(ss, 0, 0, 0); 
+	ret = sock.Open(ss, 0, 0, 0);
 	Logger().WriteFormat(_L("Open returned %S"), &EpocErrorToText(ret));
 	TESTL(KErrBadName == ret);
 
@@ -213,7 +213,7 @@
 	_LIT(ret,"Test1.4");
 	return ret;
 	}
-	
+
 enum TVerdict CSocketTest1_4::InternalDoTestStepL( void )
 	{
 	TVerdict verdict = EPass;
@@ -238,7 +238,7 @@
 	ret = ss.FindProtocol(KDummyProtocol1Name(), protoInfo);
 	Logger().WriteFormat(_L("FindProtocol returned %S"), &EpocErrorToText(ret));
 	TESTL(KErrNone == ret);
-	
+
 	CleanupStack::Pop(&ss);
 	ss.Close();
 	SetTestStepResult(verdict);
@@ -268,7 +268,7 @@
 	a.iNumSockets = KNumTestSockets;
 	//Need to share logger across different threads
 	Logger().ShareAuto();
-	t.Create(_L("SocketThread1"), SocketThread, 
+	t.Create(_L("SocketThread1"), SocketThread,
 			 KDefaultStackSize, KDefaultHeapSize, KDefaultHeapSize, &a);
 	t.Resume();
 	s.Wait();
@@ -287,7 +287,7 @@
 	_LIT(ret,"Test1.6");
 	return ret;
 	}
-	
+
 enum TVerdict CSocketTest1_6::InternalDoTestStepL( void )
 	{
 	TVerdict verdict = EPass;
@@ -308,11 +308,11 @@
 	_LIT(ret,"Test1.7");
 	return ret;
 	}
-	
+
 enum TVerdict CSocketTest1_7::InternalDoTestStepL( void )
 	{
 	TVerdict verdict = EPass;
-	
+
 	TInt numExhaustiveSockets = iNormalTest ? KNumExhaustiveSockets : 10;
 	iNormalTest = EFalse; // normal test is only run once, the rest are OOM tests
 
@@ -350,7 +350,7 @@
 	ret = KErrNone;
 	while (KErrNone==ret && sockNum<numExhaustiveSockets)
 		{
-		ret = socks[sockNum].Open(ss, protoInfo.iAddrFamily, 
+		ret = socks[sockNum].Open(ss, protoInfo.iAddrFamily,
 								  protoInfo.iSockType, protoInfo.iProtocol);
 		sockNum++;
 		}
@@ -359,14 +359,14 @@
 		sockNum--;
 		}
 	Logger().WriteFormat(_L("Created %d sockets"), sockNum);
-	
+
 	Logger().WriteFormat(_L("Freeing sockets in creation order"));
 	TInt i;
 	for (i=0; i<sockNum; i++)
 		{
 		socks[i].Close();
 		}
-		
+
 
 #if defined (_DEBUG_SOCKET_FUNCTIONS)
 
@@ -376,7 +376,7 @@
 	sockNum = 0;
 	while (ret==KErrNone && sockNum<numExhaustiveSockets)
 		{
-		ret=socks[sockNum].Open(ss, protoInfo.iAddrFamily, 
+		ret=socks[sockNum].Open(ss, protoInfo.iAddrFamily,
 								protoInfo.iSockType,protoInfo.iProtocol);
 		sockNum++;
 		}
@@ -384,8 +384,8 @@
 		{
 		sockNum--;
 		}
-	Logger().WriteFormat(_L("Created %d sockets, expected %d sockets"), sockNum, sockCount1);
-	TESTL(sockCount1 == sockNum);
+	Logger().WriteFormat(_L("Created %d sockets, expected at least %d sockets"), sockNum, sockCount1);
+	TESTL(sockNum >= sockCount1);
 
 	Logger().WriteFormat(_L("Freeing sockets in creation order"));
 	for (i=0; i<sockNum; i++)
@@ -402,14 +402,14 @@
 	SetTestStepResult(verdict);
 	return verdict;
 	}
-	
+
 // Test step 1.8
 const TDesC& CSocketTest1_8::GetTestName()
 	{
 	_LIT(ret,"Test1.8");
 	return ret;
 	}
-	
+
 enum TVerdict CSocketTest1_8::InternalDoTestStepL( void )
 	{
 	TVerdict verdict = EPass;
@@ -427,7 +427,7 @@
 	Logger().WriteFormat(_L("Try NumProtocols"));
 	TUint numProtocols;
 	ret = ss.NumProtocols(numProtocols);
-	Logger().WriteFormat(_L("NumProtocols returned %S, number %d"), 
+	Logger().WriteFormat(_L("NumProtocols returned %S, number %d"),
 			&EpocErrorToText(ret), numProtocols);
 	TESTL(KErrNone == ret);
 
@@ -435,10 +435,10 @@
 	TUint aIndex;
 	TInt pdummyIndex = -1;
  	Logger().WriteFormat(_L("Trying GetProtocolInfo on each protocol"));
-	for (aIndex=1;aIndex<=numProtocols;aIndex++) 
+	for (aIndex=1;aIndex<=numProtocols;aIndex++)
 		{
 		ret = ss.GetProtocolInfo(aIndex, protoInfo);
-		Logger().WriteFormat(_L("GetProtocolInfo returned %S"), &EpocErrorToText(ret));	
+		Logger().WriteFormat(_L("GetProtocolInfo returned %S"), &EpocErrorToText(ret));
 		TESTL(KErrNone == ret);
 		Logger().WriteFormat(_L("Protocol Index %d corresponds to %S"), aIndex, &protoInfo.iName);
 		if (protoInfo.iName ==KDummyProtocol1Name())
@@ -454,7 +454,7 @@
 		verdict = EFail;
 		}
 	verdict = EPass;
-	
+
 	SetTestStepResult(verdict);
 	return verdict;
 	}
@@ -471,12 +471,12 @@
 	_LIT(ret,"Test1.9");
 	return ret;
 	}
-	
-	
+
+
 enum TVerdict CSocketTest1_9::InternalDoTestStepL( void )
 	{
 
-	// Create socket, shutdown socket then connect 
+	// Create socket, shutdown socket then connect
 	TVerdict verdict = EPass;
 	Logger().WriteFormat(_L("Test Purpose: Connect Socket, then Shutdown"));
 
@@ -486,11 +486,11 @@
 	TInt ret = ss.Connect();
 	Logger().WriteFormat(_L("Connect returned %S"), &EpocErrorToText(ret));
 	TESTL(KErrNone == ret);
-	CleanupClosePushL(ss); 
+	CleanupClosePushL(ss);
 
 	// Create and open RConnection
 	Logger().WriteFormat(_L("Creating RConnection"));
-	RConnection conn; 
+	RConnection conn;
 	ret = conn.Open(ss);
 	Logger().WriteFormat(_L("Connection Open returned %S"), &EpocErrorToText(ret));
 	TESTL(KErrNone == ret);
@@ -498,21 +498,21 @@
 
 	// Create and open socket on TCP protocol
 	RSocket socket1;
-	
-	
+
+
 	TProtocolDesc protoInfo;
-	
+
 	TUint numProtocols;
 	ret = ss.NumProtocols(numProtocols);
-	Logger().WriteFormat(_L("NumProtocols returned %S, number %d"), 
+	Logger().WriteFormat(_L("NumProtocols returned %S, number %d"),
 			&EpocErrorToText(ret), numProtocols);
 	TESTL(KErrNone == ret);
 
-	
-	for (TInt index=1;index<=numProtocols;index++) 
+
+	for (TInt index=1;index<=numProtocols;index++)
 		{
 		ret = ss.GetProtocolInfo(index, protoInfo);
-		Logger().WriteFormat(_L("GetProtocolInfo returned %S"), &EpocErrorToText(ret));	
+		Logger().WriteFormat(_L("GetProtocolInfo returned %S"), &EpocErrorToText(ret));
 		TESTL(KErrNone == ret || KErrCannotFindProtocol == ret);
 		Logger().WriteFormat(_L("Protocol Index %d corresponds to %S"), index, &protoInfo.iName);
 		if (protoInfo.iName == KDummyProtocol1Name())
@@ -520,14 +520,14 @@
 			break;
 			}
 		}
-	
-	
-	
+
+
+
 	Logger().WriteFormat(_L("Opening Socket 1"));
 	ret = socket1.Open(ss, protoInfo.iAddrFamily, protoInfo.iSockType, protoInfo.iProtocol /*KAfInet, KSockStream, KProtocolInetTcp, conn*/);
-	Logger().WriteFormat(_L("Socket 1 Open returned %S"), &EpocErrorToText(ret)); 
+	Logger().WriteFormat(_L("Socket 1 Open returned %S"), &EpocErrorToText(ret));
 	TESTL(KErrNone == ret);
-	CleanupClosePushL(socket1); 
+	CleanupClosePushL(socket1);
 
 	// Create Ports for Socket and socket to connect to
 	const TInt KSocket1Port = 3441;
@@ -541,7 +541,7 @@
 	socket1Addr.Input(KLocal);
 	ret = socket1.Bind(socket1Addr);
 
-	// Set remote address for socket 
+	// Set remote address for socket
 	TInetAddr socket2Addr;
 	socket2Addr.SetPort(KSocket2Port);
 	socket2Addr.Input(KLoopback);
@@ -550,9 +550,9 @@
 	Logger().WriteFormat(_L("Shutting down Connection on Socket1"));
 	TRequestStatus shutdownStatus;
 	_LIT8(desOut, "Some test stuff to send to protocol");
-	
+
 	TBuf8<50> desIn;
-	
+
 	socket1.Shutdown(RSocket::EImmediate,desOut,desIn, shutdownStatus);
 	User::WaitForRequest(shutdownStatus);
 	Logger().WriteFormat(_L("Socket 1 shutdown returned %S"), &EpocErrorToText(shutdownStatus.Int()));
@@ -568,7 +568,7 @@
 		{
 		verdict = EFail;
 		}
-	
+
 	CleanupStack::PopAndDestroy(); //socket
 	CleanupStack::PopAndDestroy(); //conn
 	CleanupStack::PopAndDestroy(); //ss
--- a/datacommsserver/esockserver/test/TE_Socket/SocketTestSection31.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_Socket/SocketTestSection31.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -634,3 +634,85 @@
     return TestStepResult();
     }
 
+
+// Test step 31.5
+// Using fixed async request slot pool and system free request pool connections
+// 
+const TDesC& CSocketTest31_5::GetTestName()
+    {
+    _LIT(ret,"Test31.5");
+    return ret;
+    }
+
+
+CSocketTest31_5::CSockReq* CSocketTest31_5::CSockReq::NewLC()
+    {
+    CSockReq* sockReq = new(ELeave) CSockReq;
+    CleanupStack::PushL(sockReq);
+    return sockReq;
+    }
+
+CSocketTest31_5::CSockReq::~CSockReq()
+    {
+    TInt ret = iReq.Int();
+    iSock.Close();
+    if(ret == KRequestPending)
+        {
+        User::WaitForRequest(iReq);
+        }
+    }
+
+TInt CSocketTest31_5::MakePendingRequestL()
+    {
+    CSockReq* req = CSockReq::NewLC();
+    iSocks.AppendL(req);
+    CleanupStack::Pop(req);
+    
+    TInt idx = iSocks.Count() - 1;
+    TInt ret = req->iSock.Open(iSess, KDummyAddrFamily, KSockDatagram, KDummyOne);
+    Logger().WriteFormat(_L("sock[%d].Open() returned %S"), idx, &EpocErrorToText(ret));
+    TESTL(KErrNone == ret);
+    req->iSock.Read(req->iData, req->iReq);
+    User::After(250 * 1000);    // short delay to allow for almost-instant failure
+    Logger().WriteFormat(_L("sock[%d].Read() status %S"), idx, &EpocErrorToText(req->iReq.Int()));
+    return req->iReq.Int();
+    }
+
+enum TVerdict CSocketTest31_5::InternalDoTestStepL( void )
+    {
+    TVerdict verdict = EPass;
+
+    Logger().WriteFormat(_L("Test Purpose: Test bounded and unbounded (default) async request slot pool."));
+
+    Logger().WriteFormat(_L("Trying %d pending requests against default (unbounded pool) connection"), KESockDefaultMessageSlots + 1);
+    TInt ret = iSess.Connect();
+    CleanupClosePushL(iSess);
+    Logger().WriteFormat(_L("Connect returned %S"), &EpocErrorToText(ret));
+    TESTL(KErrNone == ret);
+    for(TInt sockNum = 0; sockNum <= KESockDefaultMessageSlots; ++sockNum)
+        {
+        ret = MakePendingRequestL();
+        TESTL(ret == KRequestPending);
+        }
+    iSocks.ResetAndDestroy();
+    CleanupStack::PopAndDestroy(&iSess);
+
+    Logger().WriteFormat(_L("Trying %d pending requests against old default (KESockDefaultMessageSlots pool) connection"), KESockDefaultMessageSlots + 1);
+    ret = iSess.Connect(KESockDefaultMessageSlots);
+    CleanupClosePushL(iSess);
+    Logger().WriteFormat(_L("Connect returned %S"), &EpocErrorToText(ret));
+    TESTL(KErrNone == ret);
+    for(TInt sockNum = 0; sockNum < KESockDefaultMessageSlots; ++sockNum)
+        {
+        ret = MakePendingRequestL();
+        TESTL(ret == KRequestPending);
+        }
+    ret = MakePendingRequestL();
+    TESTL(ret == KErrServerBusy);
+    iSocks.ResetAndDestroy();
+    CleanupStack::PopAndDestroy(&iSess);
+
+    SetTestStepResult(EPass);
+    return TestStepResult();
+    }
+
--- a/datacommsserver/esockserver/test/TE_Socket/SocketTestSection31.h	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_Socket/SocketTestSection31.h	Mon Mar 15 12:45:15 2010 +0200
@@ -49,6 +49,28 @@
         virtual enum TVerdict InternalDoTestStepL( void );
     };
 
+class CSocketTest31_5 : public CTestStepSocket
+    {
+public:
+    static const TDesC &GetTestName();
+    virtual enum TVerdict InternalDoTestStepL( void );
+private:
+    TInt MakePendingRequestL();
+    
+    // Member data largely as convenience; not cleaned up by destructor
+    RSocketServ iSess;
+    class CSockReq : public CBase
+        {
+    public:
+        static CSockReq* NewLC();
+        ~CSockReq();
+    public:
+        RSocket iSock;
+        TRequestStatus iReq;
+        TBuf8<20> iData;
+        };
+    RPointerArray<CSockReq> iSocks;
+    };
 
 #endif //__SOCKETTEST_31_H__
 
--- a/datacommsserver/esockserver/test/TE_Socket/TestSuiteSocket.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_Socket/TestSuiteSocket.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -232,6 +232,7 @@
 		ADD_TEST_STEP(CSocketTest31_2)
 		ADD_TEST_STEP(CSocketTest31_3)
 		ADD_TEST_STEP(CSocketTest31_4)
+		ADD_TEST_STEP(CSocketTest31_5)
 	END_TEST_STEP_LIST
 	}
 
--- a/datacommsserver/esockserver/test/TE_Socket/scriptfiles/te_socket_tests.script	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TE_Socket/scriptfiles/te_socket_tests.script	Mon Mar 15 12:45:15 2010 +0200
@@ -568,3 +568,19 @@
 RUN_TEST_STEP 100 TE_Socket Test31.4
 TEST_COMPLETE
 END_TESTCASE			COMINF-ESOCK-Socket-0175
+
+START_TESTCASE			COMINF-ESOCK-Socket-0176
+//! @SYMTestCaseID		COMINF-ESOCK-Socket-0176
+//! @SYMTestCaseDesc    	Creating socket sessions with limited and unlimited (default) request slot pools
+//! @SYMTestActions    		RSocketServ::Connect
+//! @SYMTestExpectedResults     pass
+//! @SYMTestPriority  		Critical 
+//! @SYMTestType 		CT
+//! @SYMComponent   		comms-infras_esock
+//! @SYMDEF				
+// run test 31.5
+PRINT
+RUN_TEST_STEP 100 TE_Socket Test31.5
+TEST_COMPLETE
+END_TESTCASE			COMINF-ESOCK-Socket-0176
+
--- a/datacommsserver/esockserver/test/TS_MultiHoming/ScriptFiles/ESock_TS_MultiHoming_3_Connection.script.assabet	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TS_MultiHoming/ScriptFiles/ESock_TS_MultiHoming_3_Connection.script.assabet	Mon Mar 15 12:45:15 2010 +0200
@@ -1,7 +1,7 @@
 // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
 // All rights reserved.
 // This component and the accompanying materials are made available
-// under the terms of the License "Eclipse Public License v1.0"
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
--- a/datacommsserver/esockserver/test/TS_MultiHoming/ScriptFiles/TS_MultiHoming_Test18_ced.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TS_MultiHoming/ScriptFiles/TS_MultiHoming_Test18_ced.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TS_MultiHoming/ScriptFiles/TS_MultiHoming_Test21_ced.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TS_MultiHoming/ScriptFiles/TS_MultiHoming_Test21_ced.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TS_MultiHoming/ScriptFiles/TS_MultiHoming_net0.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TS_MultiHoming/ScriptFiles/TS_MultiHoming_net0.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/TS_MultiHoming/ScriptFiles/TS_MultiHoming_net1.xml	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/TS_MultiHoming/ScriptFiles/TS_MultiHoming_net1.xml	Mon Mar 15 12:45:15 2010 +0200
@@ -3,7 +3,7 @@
  Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
  All rights reserved.
  This component and the accompanying materials are made available
- under the terms of the License "Eclipse Public License v1.0"
+ under the terms of "Eclipse Public License v1.0"
  which accompanies this distribution, and is available
  at the URL "http://www.eclipse.org/legal/epl-v10.html".
 
@@ -14,7 +14,6 @@
 
  Description:
  CommDB Settings File
- All Rights Reserved
 
 -->
 
--- a/datacommsserver/esockserver/test/providers/dummy/src/dummypr_extended_subconnprov.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/providers/dummy/src/dummypr_extended_subconnprov.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -158,7 +158,7 @@
 	__ASSERT_DEBUG(iContext.iNodeActivity, User::Panic(KSpecAssert_ESockTestdmyprxt, 2));
 	CDummyBuildStackActivity* act = static_cast<CDummyBuildStackActivity*>(iContext.iNodeActivity);
 
-	RClientInterface::OpenPostMessageClose(iContext.Node().Id(), act->iBinderSource, TCFDataClient::TBindToComplete().CRef());
+	RClientInterface::OpenPostMessageClose(iContext.Node().Id(), act->iBinderSource, TCFServiceProvider::TBindToComplete().CRef());
 	}
 
 DEFINE_SMELEMENT(TCreateDataClient, NetStateMachine::MStateTransition, DummyExtendedSCPRStates::TContext)
--- a/datacommsserver/esockserver/test/providers/dummy/src/dummypr_network_flow.cpp	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/esockserver/test/providers/dummy/src/dummypr_network_flow.cpp	Mon Mar 15 12:45:15 2010 +0200
@@ -332,7 +332,16 @@
 			TCFDataClient::TBindTo& bindToMsg(static_cast<TCFDataClient::TBindTo&>(aMessage));
 			TRAPD(err,BindToL(bindToMsg));
 			ProcessDCIdleState();	// in case we were waiting to send idle
-			RClientInterface::OpenPostMessageClose(Id(), aSender, TCFDataClient::TBindToComplete(err).CRef());
+
+	        if(err == KErrNone)
+	            {
+	            RClientInterface::OpenPostMessageClose(Id(), aSender, TCFDataClient::TBindToComplete().CRef());
+	            }
+	        else
+	            {
+	            RClientInterface::OpenPostMessageClose(Id(), aSender, TEBase::TError(aMessage.MessageId(), err).CRef());
+	            }
+	        
 			//If we have received TCDDataClient::TStart before (when we did not yet have a bearer),
 			//we complete the start here as well
 			if (iIsStarting)
--- a/datacommsserver/networkingdialogapi/src/ND_DLGSL.CPP	Fri Mar 12 15:49:41 2010 +0200
+++ b/datacommsserver/networkingdialogapi/src/ND_DLGSL.CPP	Mon Mar 15 12:45:15 2010 +0200
@@ -311,6 +311,7 @@
 		}
 
 	TBuf<KCommsDbSvrDefaultTextFieldLength> tmpBuffer;
+    // coverity[var_deref_model] - ptrIapRecord guaranteed initialised by RecordFactoryL
 	tmpBuffer = ptrIapRecord->iRecordName;
 	iAgentDialogInput.iLabel.Format(KSelectPrompt,&tmpBuffer);
 	iAgentDialogInput.iDialog = ENoYesDialog;