Index: include/ManagementObjects/DevDetail.h
===================================================================
--- include/ManagementObjects/DevDetail.h	(revision 21)
+++ include/ManagementObjects/DevDetail.h	(working copy)
@@ -58,7 +58,8 @@
 		String m_FwV;
 		String m_SwV;
 		String m_HwV;
-		size_t m_LrgObj;
+//		size_t m_LrgObj;
+		bool m_LrgObj;
 
 	public:
 		virtual bool Serialize(IMOTreeManager& treeManager) const;
Index: include/ManagementObjects/DevInfo.h
===================================================================
--- include/ManagementObjects/DevInfo.h	(revision 21)
+++ include/ManagementObjects/DevInfo.h	(working copy)
@@ -45,7 +45,7 @@
 		e_DevId = 0,
 		e_Man,
 		e_Mod,
-		e_Dmv,
+		e_DmV,
 		e_Lang
 	};
 
@@ -57,7 +57,7 @@
 		String m_DevId;
 		String m_Man;
 		String m_Mod;
-		String m_Dmv;
+		String m_DmV;
 		String m_Lang;
 
 	public:
Index: include/ManagementObjects/TNDSMgmtTree/TNDSCreator.h
===================================================================
--- include/ManagementObjects/TNDSMgmtTree/TNDSCreator.h	(revision 21)
+++ include/ManagementObjects/TNDSMgmtTree/TNDSCreator.h	(working copy)
@@ -46,6 +46,7 @@
 		~TNDSCreator();
 
 		void Append(const String& path, const String& name, const String& value);
+        void Append(const String& path, const String& name, bool value);
 		void Append(const String& path, const String& name, size_t value);
 		void Append(const String& path, const String& nodeName); // append node
 		void Get(String& xml);
Index: include/ManagementObjects/TNDSMgmtTree/TNDSExtractor.h
===================================================================
--- include/ManagementObjects/TNDSMgmtTree/TNDSExtractor.h	(revision 21)
+++ include/ManagementObjects/TNDSMgmtTree/TNDSExtractor.h	(working copy)
@@ -46,6 +46,7 @@
 	public:
 		TNDSExtractor(const String& xml);
 		void GetValue(const String& name, String& value);
+        void GetValue(const String& name, bool& value);
 		void GetValue(const String& name, size_t& value);
 		void GetValue(const String& name, int& value);
 		void GetValue(const String& name, unsigned char& value);
Index: include/serverexchange/CommandStorage.h
===================================================================
--- include/serverexchange/CommandStorage.h	(revision 21)
+++ include/serverexchange/CommandStorage.h	(working copy)
@@ -54,9 +54,14 @@
 			void Remove(const char * msgid, const char * cmdid, const char *cmdname);
 			int  Size();
 
+/******* 2011.05.11
 			bool Lock()    { m_sc.Lock(); return true; }
 			int  TryLock() { return m_sc.TryLock(); }
 			void Unlock()  { m_sc.Unlock(); }
+*******/
+			bool Lock();
+			int  TryLock();
+			void Unlock();
 
 			NS_SyncMLCommand::SCommandPtr operator[] (unsigned int);
 
Index: include/serverexchange/SendingStrategy.h
===================================================================
--- include/serverexchange/SendingStrategy.h	(revision 21)
+++ include/serverexchange/SendingStrategy.h	(working copy)
@@ -48,9 +48,9 @@
 		{
 		public:
 			typedef enum {
-				SendingSucceded,
-				NoResponseFromServer,
-				NeedToSendLO
+				SendingSucceded = 1,
+				NoResponseFromServer = 2,
+				NeedToSendLO = 3
 			} Status;
 
 		public:
Index: include/serverexchange/wrappers/SCommandAdapter.h
===================================================================
--- include/serverexchange/wrappers/SCommandAdapter.h	(revision 21)
+++ include/serverexchange/wrappers/SCommandAdapter.h	(working copy)
@@ -54,7 +54,6 @@
 #include <vector>
 #include "commontypes.h"
 
-
 namespace NS_DM_Client
 {
 	/// Shared pointer to message
@@ -95,6 +94,7 @@
 			SCommandAdapter(const char *msgid, AbstractCommandPtr origcmd);
 			virtual ~SCommandAdapter();
 
+
 			/// Get the SyncML string of the message
 			///
 			/// Returned StringBuffer instance should be deleted by the caller
Index: src/ClientAdapter/clientadapterproxy/ClientAdapterProxy.cpp
===================================================================
--- src/ClientAdapter/clientadapterproxy/ClientAdapterProxy.cpp	(revision 21)
+++ src/ClientAdapter/clientadapterproxy/ClientAdapterProxy.cpp	(working copy)
@@ -589,6 +589,8 @@
 		{
 			String xmlData;
 			BytesToString(response.m_data, xmlData);
+			//// debug 2011.05.04
+			LOG_ERROR_(m_logger, "ClientAdapterProxy::handleGetResponse(): xmlDtata");
 			res = mgmtObject->Deserialize(xmlData);
 			if (res)
 			{
Index: src/ClientAdapter/TestClientAdapter/TestClientAdapter.cpp
===================================================================
--- src/ClientAdapter/TestClientAdapter/TestClientAdapter.cpp	(revision 21)
+++ src/ClientAdapter/TestClientAdapter/TestClientAdapter.cpp	(working copy)
@@ -134,7 +134,7 @@
 	deviceInfo.m_DevId = "devId";
 	deviceInfo.m_Man = "Man";
 	deviceInfo.m_Mod = "Mod";
-	deviceInfo.m_Dmv = "Dmv";
+	deviceInfo.m_DmV = "DmV";
 	deviceInfo.m_Lang = "Lang";
 }
 //-------------------------------------------------------------------------------------------
@@ -149,7 +149,7 @@
 	deviceDetail.m_FwV = "test FwV";
 	deviceDetail.m_SwV = "test SwV";
 	deviceDetail.m_HwV = "test Hwv";
-	deviceDetail.m_LrgObj = 25;
+	deviceDetail.m_LrgObj = true;
 }
 //-------------------------------------------------------------------------------------------
 
Index: src/ClientAdapter/UTestClientAdapter/main.cpp
===================================================================
--- src/ClientAdapter/UTestClientAdapter/main.cpp	(revision 21)
+++ src/ClientAdapter/UTestClientAdapter/main.cpp	(working copy)
@@ -184,11 +184,11 @@
 		"</Node>"
 
 		"<Node>"
-		"<NodeName>Dmv</NodeName>\n"
+		"<NodeName>DmV</NodeName>\n"
 		"<Path>./DevInfo/</Path>\n"
 		"<RTProperties>"
 		"<Format>chr</Format>\n"
-		"<Value>Dmv</Value>\n"
+		"<Value>DmV</Value>\n"
 		"</RTProperties>"
 		"</Node>"
 
Index: src/ClientAdapter/UTestClientAdapter/TestClientAdapterProxy.cpp
===================================================================
--- src/ClientAdapter/UTestClientAdapter/TestClientAdapterProxy.cpp	(revision 21)
+++ src/ClientAdapter/UTestClientAdapter/TestClientAdapterProxy.cpp	(working copy)
@@ -212,7 +212,7 @@
   	deviceInfo.m_DevId = "devId1";
   	deviceInfo.m_Man = "Man1";
   	deviceInfo.m_Mod = "Mod1";
-  	deviceInfo.m_Dmv = "Dmv1";
+  	deviceInfo.m_DmV = "DmV1";
   	deviceInfo.m_Lang = "Lang1";
   	std::string deviceInfoXml;
   	deviceInfo.Serialize(deviceInfoXml);
@@ -230,7 +230,7 @@
   	BOOST_CHECK(realDeviceInfo.m_DevId == deviceInfo.m_DevId);
   	BOOST_CHECK(realDeviceInfo.m_Man == deviceInfo.m_Man);
   	BOOST_CHECK(realDeviceInfo.m_Mod == deviceInfo.m_Mod);
-  	BOOST_CHECK(realDeviceInfo.m_Dmv == deviceInfo.m_Dmv);
+  	BOOST_CHECK(realDeviceInfo.m_DmV == deviceInfo.m_DmV);
   	BOOST_CHECK(realDeviceInfo.m_Lang == deviceInfo.m_Lang);
   
   	clientAdapterProxy->Release();
@@ -302,7 +302,7 @@
   	deviceInfo.m_DevId = "devId";
   	deviceInfo.m_Man = "Man";
   	deviceInfo.m_Mod = "Mod";
-  	deviceInfo.m_Dmv = "Dmv";
+  	deviceInfo.m_DmV = "DmV";
   	deviceInfo.m_Lang = "Lang";
   
   	SynchRunThread runThread(*clientAdapterProxy, NS_DM_Client::e_set, NS_DM_Client::e_devInfo, &deviceInfo);
Index: src/ClientAdapter/UTestClientAdapter/TestClientAdapterStub.cpp
===================================================================
--- src/ClientAdapter/UTestClientAdapter/TestClientAdapterStub.cpp	(revision 21)
+++ src/ClientAdapter/UTestClientAdapter/TestClientAdapterStub.cpp	(working copy)
@@ -233,7 +233,7 @@
 	deviceInfo.m_DevId = "devId";
 	deviceInfo.m_Man = "Man";
 	deviceInfo.m_Mod = "Mod";
-	deviceInfo.m_Dmv = "Dmv";
+	deviceInfo.m_DmV = "DmV";
 	deviceInfo.m_Lang = "Lang";
 	std::string deviceInfoXml;
 	deviceInfo.Serialize(deviceInfoXml);
Index: src/common/windows/CondVariable.cpp
===================================================================
--- src/common/windows/CondVariable.cpp	(revision 21)
+++ src/common/windows/CondVariable.cpp	(working copy)
@@ -35,7 +35,8 @@
 /* $Id$ */
 
 #pragma once
-
+
+#define _WIN32_WINNT 0x0501 // 2011.04.19 C3861 SignalObjectandWait
 #include <windows.h>
 #include "CondVariable.h"
 #include "CritSection.h"
Index: src/DeviceAdapter/Beceem/BeceemAdapter.cpp
===================================================================
--- src/DeviceAdapter/Beceem/BeceemAdapter.cpp	(revision 21)
+++ src/DeviceAdapter/Beceem/BeceemAdapter.cpp	(working copy)
@@ -191,7 +191,7 @@
 			copyToString(deviceInfo.m_DevId, devInfo->DevId, DEVICE_ID_LEAF_SIZE);
 			copyToString(deviceInfo.m_Man, devInfo->Man, MANUFATURER_NAME_LEAF_SIZE);
 			copyToString(deviceInfo.m_Mod, devInfo->Mod, MODEL_NUMBER_LEAF_SIZE);
-			copyToString(deviceInfo.m_Dmv, devInfo->Dmv, OMA_DM_CLIENT_VERSION_LEAF_SIZE);
+			copyToString(deviceInfo.m_DmV, devInfo->DmV, OMA_DM_CLIENT_VERSION_LEAF_SIZE);
 			copyToString(deviceInfo.m_Lang, devInfo->Lang, LANGUAGE_LEAF_SIZE);
 		}
 		return res;
@@ -782,7 +782,7 @@
 			POMADM_OBJECT_INFO OMADMObject = (POMADM_OBJECT_INFO)requestMessage.szData;
 			ST_DevInfo* devInfo = (ST_DevInfo*)OMADMObject->au8OMADMObjVal;
 			memcpy(devInfo->DevId, deviceInfo.m_DevId.c_str(), deviceInfo.m_DevId.size());
-			memcpy(devInfo->Dmv, deviceInfo.m_Dmv.c_str(), deviceInfo.m_Dmv.size());
+			memcpy(devInfo->DmV, deviceInfo.m_DmV.c_str(), deviceInfo.m_DmV.size());
 			memcpy(devInfo->Man, deviceInfo.m_Man.c_str(), deviceInfo.m_Man.size());
 			memcpy(devInfo->Mod, deviceInfo.m_Mod.c_str(), deviceInfo.m_Mod.size());
 			memcpy(devInfo->Lang, deviceInfo.m_Lang.c_str(), deviceInfo.m_Lang.size());
Index: src/DeviceAdapter/Beceem/UTestBeceemAdapter/main.cpp
===================================================================
--- src/DeviceAdapter/Beceem/UTestBeceemAdapter/main.cpp	(revision 21)
+++ src/DeviceAdapter/Beceem/UTestBeceemAdapter/main.cpp	(working copy)
@@ -91,7 +91,7 @@
 	BOOST_CHECK(!deviceInfo.m_DevId.empty());
 	BOOST_CHECK(!deviceInfo.m_Man.empty());
 	BOOST_CHECK(!deviceInfo.m_Mod.empty());
-	BOOST_CHECK(!deviceInfo.m_Dmv.empty());
+	BOOST_CHECK(!deviceInfo.m_DmV.empty());
 	BOOST_CHECK(!deviceInfo.m_Lang.empty());
 	S_beceemAdapter->Close();
 }
Index: src/DeviceAdapter/DummyDeviceAdapter/CreateDeviceAdapter.cpp
===================================================================
--- src/DeviceAdapter/DummyDeviceAdapter/CreateDeviceAdapter.cpp	(revision 21)
+++ src/DeviceAdapter/DummyDeviceAdapter/CreateDeviceAdapter.cpp	(working copy)
@@ -33,7 +33,7 @@
  */
 
 #include "DeviceAdapter/DummyDeviceAdapter.h"
-
+
 extern "C" NS_DM_Client::IDeviceAdapter* CreateDeviceAdapter(void* param)
 {
 	return new NS_DM_Client::DummyDeviceAdapter();
Index: src/DeviceAdapter/ManagementObjects/DevDetail.cpp
===================================================================
--- src/DeviceAdapter/ManagementObjects/DevDetail.cpp	(revision 21)
+++ src/DeviceAdapter/ManagementObjects/DevDetail.cpp	(working copy)
@@ -36,6 +36,7 @@
 #include "Common.h"
 #include "TNDSMgmtTree/TNDSCreator.h"
 #include "TNDSMgmtTree/TNDSExtractor.h"
+#include "Logger.h"
 
 namespace NS_DM_Client
 {
@@ -128,6 +129,7 @@
 
 	bool DevDetail::Deserialize(const String& xml)
 	{
+		String value;
 		TNDSExtractor extractor(xml);
 		extractor.GetValue(DevDetailFieldName[e_URI_MaxDepth], m_URI.m_MaxDepth);
 		extractor.GetValue(DevDetailFieldName[e_URI_MaxTotLen], m_URI.m_MaxTotLen);
Index: src/DeviceAdapter/ManagementObjects/DevInfo.cpp
===================================================================
--- src/DeviceAdapter/ManagementObjects/DevInfo.cpp	(revision 21)
+++ src/DeviceAdapter/ManagementObjects/DevInfo.cpp	(working copy)
@@ -54,7 +54,7 @@
 		"DevId",
 		"Man",
 		"Mod",
-		"Dmv",
+		"DmV",
 		"Lang"
 	};
 
@@ -65,7 +65,7 @@
 		bool res = NS_DM_Client::Serialize(DevInfoFieldPath[e_DevId] + DevInfoFieldName[e_DevId], m_DevId, treeManager);
 		res &= NS_DM_Client::Serialize(DevInfoFieldPath[e_Man] + DevInfoFieldName[e_Man], m_Man, treeManager);
 		res &= NS_DM_Client::Serialize(DevInfoFieldPath[e_Mod] + DevInfoFieldName[e_Mod], m_Mod, treeManager);
-		res &= NS_DM_Client::Serialize(DevInfoFieldPath[e_Dmv] + DevInfoFieldName[e_Dmv], m_Dmv, treeManager);
+		res &= NS_DM_Client::Serialize(DevInfoFieldPath[e_DmV] + DevInfoFieldName[e_DmV], m_DmV, treeManager);
 		res &= NS_DM_Client::Serialize(DevInfoFieldPath[e_Lang] + DevInfoFieldName[e_Lang], m_Lang, treeManager);
 		return res;
 	}
@@ -76,7 +76,7 @@
 		bool res = NS_DM_Client::Deserialize(DevInfoFieldPath[e_DevId] + DevInfoFieldName[e_DevId], m_DevId, treeManager);
 		res &= NS_DM_Client::Deserialize(DevInfoFieldPath[e_Man] + DevInfoFieldName[e_Man], m_Man, treeManager);
 		res &= NS_DM_Client::Deserialize(DevInfoFieldPath[e_Mod] + DevInfoFieldName[e_Mod], m_Mod, treeManager);
-		res &= NS_DM_Client::Deserialize(DevInfoFieldPath[e_Dmv] + DevInfoFieldName[e_Dmv], m_Dmv, treeManager);
+		res &= NS_DM_Client::Deserialize(DevInfoFieldPath[e_DmV] + DevInfoFieldName[e_DmV], m_DmV, treeManager);
 		res &= NS_DM_Client::Deserialize(DevInfoFieldPath[e_Lang] + DevInfoFieldName[e_Lang], m_Lang, treeManager);
 
 		return true; // for tests only
@@ -91,7 +91,7 @@
 		tree.Append(DevInfoFieldPath[e_DevId], DevInfoFieldName[e_DevId], m_DevId);
 		tree.Append(DevInfoFieldPath[e_Man], DevInfoFieldName[e_Man], m_Man);
 		tree.Append(DevInfoFieldPath[e_Mod], DevInfoFieldName[e_Mod], m_Mod);
-		tree.Append(DevInfoFieldPath[e_Dmv], DevInfoFieldName[e_Dmv], m_Dmv);
+		tree.Append(DevInfoFieldPath[e_DmV], DevInfoFieldName[e_DmV], m_DmV);
 		tree.Append(DevInfoFieldPath[e_Lang], DevInfoFieldName[e_Lang], m_Lang);
 
 		tree.Get(xml);
@@ -105,7 +105,7 @@
 		extractor.GetValue(DevInfoFieldName[e_DevId], m_DevId);
 		extractor.GetValue(DevInfoFieldName[e_Man], m_Man);
 		extractor.GetValue(DevInfoFieldName[e_Mod], m_Mod);
-		extractor.GetValue(DevInfoFieldName[e_Dmv], m_Dmv);
+		extractor.GetValue(DevInfoFieldName[e_DmV], m_DmV);
 		extractor.GetValue(DevInfoFieldName[e_Lang], m_Lang);
 
 		return true;
Index: src/DeviceAdapter/ManagementObjects/TNDSMgmtTree/TNDSCreator.cpp
===================================================================
--- src/DeviceAdapter/ManagementObjects/TNDSMgmtTree/TNDSCreator.cpp	(revision 21)
+++ src/DeviceAdapter/ManagementObjects/TNDSMgmtTree/TNDSCreator.cpp	(working copy)
@@ -66,6 +66,14 @@
 		append(path, name, S_formatLeaf, value);
 	}
 	//-------------------------------------------------------------------------------------------
+//// 2011.05.02
+	void TNDSCreator::Append(const String& path, const String& name, bool value)
+	{
+		String tmpValue = "false";
+		if(value) tmpValue = "true";
+		append(path, name, S_boolFormat, (String &)tmpValue);
+	}
+	//-------------------------------------------------------------------------------------------
 
 	void TNDSCreator::append(const String& path, const String& name, const String& format, const String& value/* = ""*/)
 	{
Index: src/DeviceAdapter/ManagementObjects/TNDSMgmtTree/TNDSExtractor.cpp
===================================================================
--- src/DeviceAdapter/ManagementObjects/TNDSMgmtTree/TNDSExtractor.cpp	(revision 21)
+++ src/DeviceAdapter/ManagementObjects/TNDSMgmtTree/TNDSExtractor.cpp	(working copy)
@@ -76,6 +76,39 @@
 		}
 	}
 	//-------------------------------------------------------------------------------------------
+//// 2011.05.02
+	void TNDSExtractor::GetValue(const String& name, bool& value)
+	{
+		size_t pos = 0;
+		unsigned int curPos = 0;
+		unsigned int start = 0;
+		unsigned int end = 0;
+		const char* node = Funambol::XMLProcessor::getElementContent(m_buffer.c_str(), S_node.c_str(), 0, &start, &end);
+
+		while (node)
+		{
+			curPos += end;
+			node = Funambol::XMLProcessor::copyContent(&m_buffer.c_str()[pos], start, end);
+			Funambol::XMLProcessor::getElementContent(node, S_nodeName.c_str(), 0, &start, &end);
+			const char* nodeName = Funambol::XMLProcessor::copyContent(node, start, end);
+			if (name == nodeName)
+			{
+				Funambol::XMLProcessor::getElementContent(node, S_value.c_str(), 0, &start, &end);
+				char* tmpValue = Funambol::XMLProcessor::copyContent(node, start, end);
+                (bool&)value = false;
+				if(strcmp(tmpValue, "true") == 0) (bool&)value = true;
+				delete [] tmpValue;
+				delete [] nodeName;
+				delete [] node;
+				break;
+			}
+			pos = curPos;
+			delete [] nodeName;
+			delete [] node;
+			node = Funambol::XMLProcessor::getElementContent(&m_buffer.c_str()[curPos], S_node.c_str(), 0, &start, &end);
+		}
+	}
+	//-------------------------------------------------------------------------------------------
 
 	void TNDSExtractor::GetValue(const String& path, const String& name, String& value)
 	{
@@ -114,8 +147,9 @@
 			node = Funambol::XMLProcessor::getElementContent(&m_buffer.c_str()[curPos], S_node.c_str(), 0, &start, &end);
 		}
 	}
+
+
 	//-------------------------------------------------------------------------------------------
-
 	void TNDSExtractor::GetChildren(const String& parent, Children& children)
 	{
 		size_t pos = 0;
Index: src/DeviceAdapter/ManagementObjects/WiMAX_Diagnostics.cpp
===================================================================
--- src/DeviceAdapter/ManagementObjects/WiMAX_Diagnostics.cpp	(revision 21)
+++ src/DeviceAdapter/ManagementObjects/WiMAX_Diagnostics.cpp	(working copy)
@@ -677,7 +677,7 @@
 		tree.Append(basePathName, GenericFieldName[e_TimeActive], ToString(m_TimeActive));
 		tree.Append(basePathName, GenericFieldName[e_TimeIdle], ToString(m_TimeIdle));
 		tree.Append(basePathName, GenericFieldName[e_TimeSleep], ToString(m_TimeSleep));
-		tree.Append(basePathName, GenericFieldName[e_LastRebootCause], e_TimeSleep);
+		tree.Append(basePathName, GenericFieldName[e_LastRebootCause], (size_t)e_TimeSleep);
 		tree.Append(basePathName, GenericFieldName[e_DeviceTemp], ToString(m_DeviceTemp));
 		tree.Append(basePathName, GenericFieldName[e_SupVolt], ToString(m_SupVolt));
 		tree.Append(basePathName, GenericFieldName[e_BatteryCap], ToString(m_BatteryCap));
Index: src/DeviceAdapter/ManagementObjects/WiMAXSupp.cpp
===================================================================
--- src/DeviceAdapter/ManagementObjects/WiMAXSupp.cpp	(revision 21)
+++ src/DeviceAdapter/ManagementObjects/WiMAXSupp.cpp	(working copy)
@@ -568,7 +568,7 @@
 		tree.Append(basePathName, EAPFieldName[e_PROVISIONED_PSEUDO_IDENTITY], m_PROVISIONED_PSEUDO_IDENTITY);
 		tree.Append(basePathName, EAPFieldName[e_PASSWORD], m_PASSWORD);
 		tree.Append(basePathName, EAPFieldName[e_REALM], m_REALM);
-		tree.Append(basePathName, EAPFieldName[e_USE_PRIVACY], m_USE_PRIVACY);
+		tree.Append(basePathName, EAPFieldName[e_USE_PRIVACY], (size_t)m_USE_PRIVACY);
 		tree.Append(basePathName, EAPFieldName[e_ENCAPS], m_ENCAPS);
 		tree.Append(basePathName, EAPFieldName[e_VFY_SERVER_REALM], m_VFY_SERVER_REALM);
 		for (size_t i = 0; i != m_SERVER_REALMS.size(); ++i)
Index: src/DeviceAdapter/UTestDeviceAdapter/TestDevDetail.cpp
===================================================================
--- src/DeviceAdapter/UTestDeviceAdapter/TestDevDetail.cpp	(revision 21)
+++ src/DeviceAdapter/UTestDeviceAdapter/TestDevDetail.cpp	(working copy)
@@ -54,7 +54,7 @@
 	devDetail.m_FwV = "FwV";
 	devDetail.m_SwV = "SwV";
 	devDetail.m_HwV = "HwV";
-	devDetail.m_LrgObj = 0;
+	devDetail.m_LrgObj = true;
 }
 //-------------------------------------------------------------------------------------------
 
@@ -88,7 +88,8 @@
 	BOOST_CHECK(newDeviceDetail.m_FwV == "FwV");
 	BOOST_CHECK(newDeviceDetail.m_SwV == "SwV");
 	BOOST_CHECK(newDeviceDetail.m_HwV == "HwV");
-	BOOST_CHECK(newDeviceDetail.m_LrgObj == 0);
+	std::cout << newDeviceDetail.m_LrgObj << std::endl;
+	BOOST_CHECK(newDeviceDetail.m_LrgObj);
 
 
 	fs::remove_all(NS_DM_Client::NS_DataStorage::S_workingDirectory);
@@ -183,8 +184,8 @@
 		"<NodeName>LrgObj</NodeName>\n"
 		"<Path>./DevDetail/</Path>\n"
 		"<RTProperties>"
-		"<Format>chr</Format>\n"
-		"<Value>0</Value>\n"
+		"<Format>bool</Format>\n"
+		"<Value>true</Value>\n"
 		"</RTProperties>"
 		"</Node>"
 
@@ -270,7 +271,7 @@
 		"<NodeName>LrgObj</NodeName>\n"
 		"<Path>./DevDetail/</Path>\n"
 		"<RTProperties>"
-		"<Value>0</Value>\n"
+		"<Value>true</Value>\n"
 		"</RTProperties>"
 		"</Node>"
 
@@ -289,7 +290,7 @@
 	BOOST_CHECK(devDetail.m_FwV == "FwV");
 	BOOST_CHECK(devDetail.m_SwV == "SwV");
 	BOOST_CHECK(devDetail.m_HwV == "HwV");
-	BOOST_CHECK(devDetail.m_LrgObj == 0);
+	BOOST_CHECK(devDetail.m_LrgObj == true);
 }
 //-------------------------------------------------------------------------------------------
 
Index: src/DeviceAdapter/UTestDeviceAdapter/TestDevInfo.cpp
===================================================================
--- src/DeviceAdapter/UTestDeviceAdapter/TestDevInfo.cpp	(revision 21)
+++ src/DeviceAdapter/UTestDeviceAdapter/TestDevInfo.cpp	(working copy)
@@ -50,7 +50,7 @@
 	devInfo.m_DevId = "DevId";
 	devInfo.m_Man = "Man";
 	devInfo.m_Mod = "Mod";
-	devInfo.m_Dmv = "Dmv";
+	devInfo.m_DmV = "DmV";
 	devInfo.m_Lang = "Lang";
 }
 //-------------------------------------------------------------------------------------------
@@ -79,7 +79,7 @@
 	BOOST_CHECK(newDevInfo.m_DevId == "DevId");
 	BOOST_CHECK(newDevInfo.m_Man == "Man");
 	BOOST_CHECK(newDevInfo.m_Mod == "Mod");
-	BOOST_CHECK(newDevInfo.m_Dmv == "Dmv");
+	BOOST_CHECK(newDevInfo.m_DmV == "DmV");
 	BOOST_CHECK(newDevInfo.m_Lang == "Lang");
 
 
@@ -105,7 +105,7 @@
 	deviceInfo.m_DevId = "DevId";
 	deviceInfo.m_Man = "Man";
 	deviceInfo.m_Mod = "Mod";
-	deviceInfo.m_Dmv = "Dmv";
+	deviceInfo.m_DmV = "DmV";
 	deviceInfo.m_Lang = "Lang";
 	std::string deviceInfoXml;
 	BOOST_CHECK(deviceInfo.Serialize(deviceInfoXml));
@@ -141,11 +141,11 @@
 		"</Node>"
 
 		"<Node>"
-		"<NodeName>Dmv</NodeName>\n"
+		"<NodeName>DmV</NodeName>\n"
 		"<Path>./DevInfo/</Path>\n"
 		"<RTProperties>"
 		"<Format>chr</Format>\n"
-		"<Value>Dmv</Value>\n"
+		"<Value>DmV</Value>\n"
 		"</RTProperties>"
 		"</Node>"
 
@@ -197,10 +197,10 @@
 		"</Node>"
 
 		"<Node>"
-		"<NodeName>Dmv</NodeName>\n"
+		"<NodeName>DmV</NodeName>\n"
 		"<Path>./DevInfo/</Path>\n"
 		"<RTProperties>"
-		"<Value>Dmv</Value>\n"
+		"<Value>DmV</Value>\n"
 		"</RTProperties>"
 		"</Node>"
 
@@ -221,7 +221,7 @@
 	BOOST_CHECK(deviceInfo.m_DevId == "DevId");
 	BOOST_CHECK(deviceInfo.m_Man == "Man");
 	BOOST_CHECK(deviceInfo.m_Mod == "Mod");
-	BOOST_CHECK(deviceInfo.m_Dmv == "Dmv");
+	BOOST_CHECK(deviceInfo.m_DmV == "DmV");
 	BOOST_CHECK(deviceInfo.m_Lang == "Lang");
 }
 //-------------------------------------------------------------------------------------------
Index: src/Jamroot
===================================================================
--- src/Jamroot	(revision 21)
+++ src/Jamroot	(working copy)
@@ -47,18 +47,25 @@
 	<os>MACOSX:<library-path>/usr/lib/
 	<os>MACOSX:<include>$(BOOST_ROOT)
 	<os>LINUX:<library-path>/usr/include/boost/ 
-	<os>NT:<library-path>$(BOOST_ROOT)/build/win32/ 
+###	<os>NT:<library-path>$(BOOST_ROOT)/build/win32/
+###	<os>NT:<library-path>$(BOOST_ROOT)/lib/
+	<os>NT:<library-path>$(BOOST_ROOT)/stage/lib/
 	<os>NT:<include>$(BOOST_ROOT)
 
 	<os>NT:<define>WIN32 
 	<os>NT:<define>_CRT_SECURE_NO_WARNINGS
 	#<os>NT:<define>LOGGER_EXPORTS 
 	<define>ENABLE_FUNAMBOL_NAMESPACE
-	<define>_WINSOCKAPI_
+###	<define>_WINSOCKAPI_
+	<os>NT:<define>_WINSOCKAPI_
 	<os>MACOSX:<define>BOOST_TEST_DYN_LINK
 	<os>LINUX:<linkflags>"-lpthread -lrt -lresolv"
 	<os>NT:<linkflags>"User32.lib Dnsapi.lib Psapi.lib"
-	<os>MACOSX:<linkflags>"-lpthread -lresolv -framework AppKit -framework CoreFoundation"
+	<os>MACOSX:<linkflags>" -lpthread -lresolv -framework AppKit -framework CoreFoundation"
+####	<os>NT:<define>BOOST_ALL_NO_LIB=1
+	<os>NT:<define>_SCL_SECURE_NO_DEPRECATE
+###	<os>NT:<variant>debug:<linkflags>"/NODEFAULTLIB:libc.lib /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib"
+###	<os>NT:<linkflags>"/MT"
 
 ## curl
 	<os>NT:<include>$(CURL_INCLUDE)
Index: src/Logger/stdafx.h
===================================================================
--- src/Logger/stdafx.h	(revision 21)
+++ src/Logger/stdafx.h	(working copy)
@@ -51,7 +51,7 @@
 
 #define WIN32_LEAN_AND_MEAN		// Exclude rarely-used stuff from Windows headers
 
-#define _CRT_SECURE_NO_WARNINGS // to supress warnings about old conventions
+//#define _CRT_SECURE_NO_WARNINGS // to supress warnings about old conventions
 
 
 
Index: src/Logger/windows/CreateStream.cpp
===================================================================
--- src/Logger/windows/CreateStream.cpp	(revision 21)
+++ src/Logger/windows/CreateStream.cpp	(working copy)
@@ -69,7 +69,7 @@
 		int processID = ::GetCurrentProcessId();
 		const int maxSize = 1024;
 		char buffer[maxSize] = {0};
-		itoa(processID, buffer, 10);
+		_itoa(processID, buffer, 10);
 		std::string processName = GetCurrentProcessName();
 
 		stream->Open((logFilePath + processName + S_slash + buffer + S_ext).c_str());
Index: src/NotificationListener/WSPPushDecoder.cpp
===================================================================
--- src/NotificationListener/WSPPushDecoder.cpp	(revision 21)
+++ src/NotificationListener/WSPPushDecoder.cpp	(working copy)
@@ -193,7 +193,7 @@
 
 /*
 Value Interpretation of First Octet
-0-30    This octet is followed by the indicated number (0 –30) of data octets
+0-30    This octet is followed by the indicated number (0 - 30) of data octets
 31      This octet is followed by a uintvar, which indicates the number of data octets after it
 32-127  The value is a text string, terminated by a zero octet (NUL character)
 28-255  It is an encoded 7-bit value; this header has no more data
Index: src/serverexchange/CommandStorage.cpp
===================================================================
--- src/serverexchange/CommandStorage.cpp	(revision 21)
+++ src/serverexchange/CommandStorage.cpp	(working copy)
@@ -42,8 +42,8 @@
 
 
 using namespace NS_DM_Client::NS_SyncMLCommand;
+using namespace NS_DM_Client::NS_Common;
 
-
 const char * s_cStorage = "CommandStorage";
 
 CommandStorage::CommandStorage()
@@ -123,3 +123,20 @@
 		return NS_SyncMLCommand::SCommandPtr();
 	}
 }
+
+//// 2011.05.11
+bool CommandStorage::Lock()
+{
+	m_sc.Lock();
+	return true;
+}
+
+int  CommandStorage::TryLock()
+{
+	return m_sc.TryLock();
+}
+
+void CommandStorage::Unlock()
+{
+	m_sc.Unlock();
+}
Index: src/serverexchange/ResponseProcessor.cpp
===================================================================
--- src/serverexchange/ResponseProcessor.cpp	(revision 21)
+++ src/serverexchange/ResponseProcessor.cpp	(working copy)
@@ -104,7 +104,8 @@
 
 
 ResponseProcessor::ProcessingStatus ResponseProcessor::Process(const char * xmlresponse, bool sumode)
-{
+{
+GDLDEBUG("Start ResponseProcessor::Process");
 	if (!xmlresponse) return PS_InvalidParam;
 
 	ProcessingStatus result = PS_Successful;
@@ -219,7 +220,8 @@
 		}
 	} while (0);
 
-	SAFE_DELETE(m_pSyncML);
+	SAFE_DELETE(m_pSyncML);
+GDLDEBUG("End ResponseProcessor::Process");
 	return result;
 }
 
@@ -276,7 +278,8 @@
 
 
 void ResponseProcessor::processCommand(Funambol::AbstractCommand *cmd)
-{
+{
+GDLDEBUG("Start ResponseProcessor::processCommand");
 	if (!cmd) return;
 	
 	const char *name = cmd->getName();
@@ -348,12 +351,14 @@
 	else if (name && !strcmp(name, SEQUENCE_COMMAND_NAME))
 	{
 		processSequence(dynamic_cast<Funambol::Sequence*>(cmd));
-	}
+	}
+GDLDEBUG("End ResponseProcessor::processCommand");
 }
 
 
 void ResponseProcessor::processAlert(Funambol::Alert *cmd)
-{
+{
+GDLDEBUG("Start ResponseProcessor::processAlert");
 	if (!cmd) return;
 
 	int data = cmd->getData();
@@ -376,7 +381,8 @@
 		ActionCommand *pAlertCmd = new AlertCommand(m_pPCH, ptrAlert,
 													m_pConnInfo->LastServerMessageID(), m_cServerID);
 		enqueueExCommand(*pAlertCmd);
-	}
+	}
+GDLDEBUG("End ResponseProcessor::processAlert");
 }
 
 
@@ -439,14 +445,16 @@
 
 
 void ResponseProcessor::processGet(Funambol::Get *cmd)
-{
+{
+GDLDEBUG("Start ResponseProcessor::processGet");
 	if (!cmd) return;
 
 	GetPtr ptrGet((Funambol::Get*)cmd->clone());
 	MOTreeGetCommand *pGetCmd = new MOTreeGetCommand(m_pPCH, ptrGet,
 											 m_pConnInfo->LastServerMessageID(), m_cServerID);
 	pGetCmd->SetMaxObjSize(m_pConnInfo->settings.MaxObjSize);
-	enqueueExCommand(*pGetCmd);
+	enqueueExCommand(*pGetCmd);
+GDLDEBUG("End ResponseProcessor::processGet");
 }
 
 
@@ -642,7 +650,8 @@
 
 
 void ResponseProcessor::initProcessing(bool sumode, int commandsCount)
-{
+{
+GDLDEBUG("Start ResponseProcessor::initProcessing");
 	SAFE_DELETE_ARR(m_cServerID);
 	// if su mode, leave server id = NULL
 	if (!sumode)
@@ -650,6 +659,7 @@
 		m_pConnInfo->msgState.SetCommandsCount(commandsCount);
 		m_cServerID = Funambol::stringdup(m_pConnInfo->GetServerID());
 	}
-	m_responseCommandsCount = commandsCount;
+	m_responseCommandsCount = commandsCount;
+GDLDEBUG("End ResponseProcessor::initProcessing");
 }
 
Index: src/serverexchange/session/Session.cpp
===================================================================
--- src/serverexchange/session/Session.cpp	(revision 21)
+++ src/serverexchange/session/Session.cpp	(working copy)
@@ -1,35 +1,35 @@
-/*
- * Copyright (C) 2009 - 2010 Funambol, Inc.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Affero General Public License version 3 as published by
- * the Free Software Foundation with the addition of the following permission
- * added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
- * WORK IN WHICH THE COPYRIGHT IS OWNED BY FUNAMBOL, FUNAMBOL DISCLAIMS THE
- * WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program; if not, see http://www.gnu.org/licenses or write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA.
- *
- * You can contact Funambol, Inc. headquarters at 643 Bair Island Road, Suite
- * 305, Redwood City, CA 94063, USA, or at email address info@funambol.com.
- *
- * The interactive user interfaces in modified source and object code versions
- * of this program must display Appropriate Legal Notices, as required under
- * Section 5 of the GNU Affero General Public License version 3.
- *
- * In accordance with Section 7(b) of the GNU Affero General Public License
- * version 3, these Appropriate Legal Notices must retain the display of the
- * "Powered by Funambol" logo. If the display of the logo is not reasonably
- * feasible for technical reasons, the Appropriate Legal Notices must display
- * the words "Powered by Funambol".
+/*
+ * Copyright (C) 2009 - 2010 Funambol, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Affero General Public License version 3 as published by
+ * the Free Software Foundation with the addition of the following permission
+ * added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
+ * WORK IN WHICH THE COPYRIGHT IS OWNED BY FUNAMBOL, FUNAMBOL DISCLAIMS THE
+ * WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program; if not, see http://www.gnu.org/licenses or write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA.
+ *
+ * You can contact Funambol, Inc. headquarters at 643 Bair Island Road, Suite
+ * 305, Redwood City, CA 94063, USA, or at email address info@funambol.com.
+ *
+ * The interactive user interfaces in modified source and object code versions
+ * of this program must display Appropriate Legal Notices, as required under
+ * Section 5 of the GNU Affero General Public License version 3.
+ *
+ * In accordance with Section 7(b) of the GNU Affero General Public License
+ * version 3, these Appropriate Legal Notices must retain the display of the
+ * "Powered by Funambol" logo. If the display of the logo is not reasonably
+ * feasible for technical reasons, the Appropriate Legal Notices must display
+ * the words "Powered by Funambol".
  */
 
 /* $Id$ */
@@ -117,8 +117,12 @@
 		// insert Alert, Replace
 		if (semcommands.Size() || m_pLOStrategy)
 		{
+			m_commands.Lock(); //// 2011.05.27
 			for (int i=0; i<semcommands.Size(); ++i)
+			{
 				m_commands.Add(semcommands[i]);
+			}
+			m_commands.Unlock();
 			semcommands.Clear();
 		}
 		semcommands.Unlock();
@@ -141,8 +145,12 @@
 					GDLDEBUG("LO sending finished; delete LOStrategy");
 					SAFE_DELETE(m_pLOStrategy);
 					m_connectionInfo.hasToSendNextChunk = false;
+					m_commands.Lock(); //// 2011.05.27
 					m_commands.Clear();
+					m_commands.Unlock();
+					m_commandsToSend.Lock(); //// 2011.05.27
 					m_commandsToSend.Clear();
+					m_commandsToSend.Unlock();
 				}
 			}
 			else
@@ -156,8 +164,12 @@
 		else
 		{
 			insertSessionInitiationCommands(m_state.InitialAlertCode);
+			m_commandsToSend.Lock(); //// 2011.05.27
 			for (int i=0; i<m_commands.Size(); ++i)
+			{
 				m_commandsToSend.Add(m_commands[i]);
+			}
+			m_commandsToSend.Unlock();
 
 			SendingStrategy strategy(m_connectionInfo, *this);
 			SendingStrategy::Status status;
@@ -179,19 +191,34 @@
 					semcommands.Add(m_commands[i]);
 					GDLDEBUG("\t%s", m_commands[i]->Internal()->getName());
 				}
+GDLDEBUG("Begin m_commands.Clear() #1");
+GDLDEBUG("m_commands.Size()= %d", m_commands.Size());
+				m_commands.Lock(); //// 2011.05.27
 				m_commands.Clear();
+				m_commands.Unlock();
+GDLDEBUG("End m_commands.Clear() #1");				
+				m_commandsToSend.Lock(); //// 2011.05.27
 				m_commandsToSend.Clear();
+				m_commandsToSend.Unlock(); //// 2011.05.27
 			}
 
 			m_commandsAreResent = m_connectionInfo.hasToResendLastCommands;
 			if (SendingStrategy::NeedToSendLO != status)
 			{
+GDLDEBUG("Begin m_commands.Clear() #2");
+GDLDEBUG("m_commands.Size()= %d", m_commands.Size());
+				m_commands.Lock(); //// 2011.05.27
 				m_commands.Clear();
+				m_commands.Unlock();
+GDLDEBUG("End m_commands.Clear() #2");
+				m_commandsToSend.Lock(); //// 2011.05.27
 				m_commandsToSend.Clear();
+				m_commandsToSend.Unlock(); //// 2011.05.27
+GDLDEBUG("End m_commands.Clear() #2");
 			}
-		
+GDLDEBUG("Begin semcommands.Unlock()");		
 			semcommands.Unlock();
-			
+GDLDEBUG("End semcommands.Unlock()");		
 			if (SendingStrategy::NeedToSendLO == status)
 			{
 				m_pLOStrategy = new LOSendingStrategy(m_connectionInfo, m_commands, *this);
@@ -391,19 +418,26 @@
 // 		SCommandPtr ptrAlert
 // 		SCommandFactory::CreateAlert(AC_GENERIC_ALERT, NULL, const char *reqtype, int data)
 		SCommandPtr ptrAlert(new SAlertCommand(code));
+		m_commandsToSend.Lock(); //// 2011.05.27
 		m_commandsToSend.InsertFirst(ptrReplaceDevInf);
 		m_commandsToSend.InsertFirst(ptrAlert);
+		m_commandsToSend.Unlock();
+GDLDEBUG("ptrReplaceDevInf : %p",ptrReplaceDevInf);
 	}
 	else
 	{
+		m_commandsToSend.Lock(); //// 2011.05.27
 		m_commandsToSend.Add(ptrReplaceDevInf);
+		m_commandsToSend.Unlock();
 	}
 }
 
 
 void Session::processResponse()
 {
-	const char * mime   = m_pTransportAgent->getResponseMime();
+GDLDEBUG("Start Session::processResponse()");
+	const char * mime   = m_pTransportAgent->getResponseProperty(PROPERTY_CONTENT_TYPE);
+GDLDEBUG("mime :%s", mime);
 	int resplength      = m_pTransportAgent->getResponseSize();
 	
 	if (resplength == 0 || m_responseMsg == NULL || m_responseMsg[0] == '\0')
@@ -456,7 +490,8 @@
 	checkAcceptTypes();
 	
 	SAFE_DELETE_ARR(m_responseMsg);
-	SAFE_DELETE_ARR(mime);
+//	SAFE_DELETE_ARR(mime);
+GDLDEBUG("End Session::processResponse()");
 }
 
 
Index: src/serverexchange/WIBConnector.cpp
===================================================================
--- src/serverexchange/WIBConnector.cpp	(revision 21)
+++ src/serverexchange/WIBConnector.cpp	(working copy)
@@ -1,35 +1,35 @@
-/*
- * Copyright (C) 2009 - 2010 Funambol, Inc.
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU Affero General Public License version 3 as published by
- * the Free Software Foundation with the addition of the following permission
- * added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
- * WORK IN WHICH THE COPYRIGHT IS OWNED BY FUNAMBOL, FUNAMBOL DISCLAIMS THE
- * WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program; if not, see http://www.gnu.org/licenses or write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301 USA.
- *
- * You can contact Funambol, Inc. headquarters at 643 Bair Island Road, Suite
- * 305, Redwood City, CA 94063, USA, or at email address info@funambol.com.
- *
- * The interactive user interfaces in modified source and object code versions
- * of this program must display Appropriate Legal Notices, as required under
- * Section 5 of the GNU Affero General Public License version 3.
- *
- * In accordance with Section 7(b) of the GNU Affero General Public License
- * version 3, these Appropriate Legal Notices must retain the display of the
- * "Powered by Funambol" logo. If the display of the logo is not reasonably
- * feasible for technical reasons, the Appropriate Legal Notices must display
- * the words "Powered by Funambol".
+/*
+ * Copyright (C) 2009 - 2010 Funambol, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU Affero General Public License version 3 as published by
+ * the Free Software Foundation with the addition of the following permission
+ * added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
+ * WORK IN WHICH THE COPYRIGHT IS OWNED BY FUNAMBOL, FUNAMBOL DISCLAIMS THE
+ * WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program; if not, see http://www.gnu.org/licenses or write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA.
+ *
+ * You can contact Funambol, Inc. headquarters at 643 Bair Island Road, Suite
+ * 305, Redwood City, CA 94063, USA, or at email address info@funambol.com.
+ *
+ * The interactive user interfaces in modified source and object code versions
+ * of this program must display Appropriate Legal Notices, as required under
+ * Section 5 of the GNU Affero General Public License version 3.
+ *
+ * In accordance with Section 7(b) of the GNU Affero General Public License
+ * version 3, these Appropriate Legal Notices must retain the display of the
+ * "Powered by Funambol" logo. If the display of the logo is not reasonably
+ * feasible for technical reasons, the Appropriate Legal Notices must display
+ * the words "Powered by Funambol".
  */
 
 /* $Id$ */
@@ -593,21 +593,21 @@
 	}
 
 #else
-	StringBuffer accept = "Accept: application/vnd.wmf.bootstrap";
-	ArrayList httpHeaders;
-	httpHeaders.add(accept);
-	char *responseMsg = m_pTransportAgent->query(httpHeaders, &result_code);
+	StringBuffer accept = "Accept: application/vnd.wmf.bootstrap";
+	ArrayList httpHeaders;
+	httpHeaders.add(accept);
+	char *responseMsg = m_pTransportAgent->query(httpHeaders, &result_code);
 #endif // PLATFORM_WINDOWS
 	std::auto_ptr<char> responseMsgHolder(responseMsg);
 
 	result_code = m_pTransportAgent->getResponseCode();
 	resp_code = (EnumWIBQueryResponseCode)result_code;
 
-	const char* mimeType = m_pTransportAgent->getResponseMime();
+	const char* mimeType = m_pTransportAgent->getResponseProperty("Content-Type");
 	int resplength = m_pTransportAgent->getResponseSize();
 
 	resp_type = (mimeType) ? mimeType : "";
-	delete [] mimeType;
+//	delete [] mimeType;
 
 	response.resize(resplength);
 	if (resplength > 0)
Index: src/serverexchange/wrappers/SCommandFactory.cpp
===================================================================
--- src/serverexchange/wrappers/SCommandFactory.cpp	(revision 21)
+++ src/serverexchange/wrappers/SCommandFactory.cpp	(working copy)
@@ -234,7 +234,9 @@
 	{
 		Funambol::ArrayList		items;
 		addItem(items, DI_DEVID, devInf.getDevID());
-		addItem(items, DI_DMV,   devInf.getLang());
+//// 2011.05.24
+////		addItem(items, DI_DMV,   devInf.getLang());
+		addItem(items, DI_DMV,   devInf.getDmV());
 		addItem(items, DI_LANG,  devInf.getLang());
 		addItem(items, DI_MAN,   devInf.getMan());
 		addItem(items, DI_MOD,   devInf.getMod());
