Index: /ossiedev/trunk/platform/nodes/default_ml403_node/DeviceManager.dcd.xml
===================================================================
--- /ossiedev/trunk/platform/nodes/default_ml403_node/DeviceManager.dcd.xml	(revision 8759)
+++ /ossiedev/trunk/platform/nodes/default_ml403_node/DeviceManager.dcd.xml	(revision 8772)
@@ -15,5 +15,6 @@
     <partitioning>
         <componentplacement>
-            <componentfileref refid="GPP1_915e9e4e-fc5b-11dd-9115-001d092f0ea2"/>
+            <deployondevice refid="DCE:4b08ce96-fc5c-11dd-9347-001d092f0ea2"/>
+	    <componentfileref refid="GPP1_915e9e4e-fc5b-11dd-9115-001d092f0ea2"/>
             <devicepkgfile type="DPD"> 
                 <localfile name="/ml403.dpd.xml"/>
Index: /ossiedev/trunk/system/ossie/include/ossie/DCDComponentPlacement.h
===================================================================
--- /ossiedev/trunk/system/ossie/include/ossie/DCDComponentPlacement.h	(revision 8743)
+++ /ossiedev/trunk/system/ossie/include/ossie/DCDComponentPlacement.h	(revision 8772)
@@ -42,5 +42,5 @@
     ~DCDComponentPlacement();
 
-    const char* getDMDFile();
+    const char* getDMDFile(); // ?? Where do you get this in ComponentPlacement ??
     const char* getDeployOnDeviceID();
     const char* getCompositePartOfDeviceID();
Index: /ossiedev/trunk/system/ossie/parser/DCDComponentPlacement.cpp
===================================================================
--- /ossiedev/trunk/system/ossie/parser/DCDComponentPlacement.cpp	(revision 8759)
+++ /ossiedev/trunk/system/ossie/parser/DCDComponentPlacement.cpp	(revision 8772)
@@ -32,8 +32,7 @@
 
 // the ifDeployOn initialization has been set from FALSE to true
-DCDComponentPlacement::DCDComponentPlacement(TiXmlElement *elem) : ComponentPlacement(elem), ifDeployOn(/*true*/false), ifCompositePartOf(false), ifDomainManager(false)
+DCDComponentPlacement::DCDComponentPlacement(TiXmlElement *elem) : ComponentPlacement(elem), ifDeployOn(false), ifCompositePartOf(false), ifDomainManager(false)
 {
     DEBUG(4, DCDComponentPlacement, "In constructor.");
-//    DEBUG(4, DCDComponentPlacement, "WARNING: ifDeployOn is initalized to TRUE");
 
     parseDeployOnDevice(elem);
@@ -59,5 +58,8 @@
 
     if(deploy) {
+	ifDeployOn = true;
         deployOnDeviceID = deploy->Attribute("refid");
+    } else {
+	DEBUG(4, DCDComponentPlacement, "deployondevice NOT found")
     }
 }
@@ -71,4 +73,5 @@
 
     if (composite) {
+	ifCompositePartOf = true;
         compositePartOfDeviceID = composite->Attribute("refid");
     }
Index: /ossiedev/trunk/system/ossie/framework/DeviceManager_impl.cpp
===================================================================
--- /ossiedev/trunk/system/ossie/framework/DeviceManager_impl.cpp	(revision 8759)
+++ /ossiedev/trunk/system/ossie/framework/DeviceManager_impl.cpp	(revision 8772)
@@ -177,4 +177,14 @@
 //Parse local componenents from DCD files
      std::vector <componentPlacement> componentPlacements = _DCDParser.getComponentPlacements ();
+     if( componentPlacements.size() == 0 )
+     {
+      for( unsigned int i = 0; i < _DCDParser.getDeployOnComponents()->size(); i++ )
+      {
+       componentPlacements.push_back(componentPlacement(
+	(*_DCDParser.getDeployOnComponents())[i]->getFileRefId(),
+	(*_DCDParser.getDeployOnComponents())[i]->getInstantiationId(),
+	(*_DCDParser.getDeployOnComponents())[i]->getUsageName() ));
+      }
+     }
      DEBUG(2, DevMgr, "ComponentPlacement size is" << componentPlacements.size())
      for (unsigned int i = 0; i < componentPlacements.size(); i++)
@@ -209,14 +219,18 @@
       for( unsigned int j = 0; j < _implementations->size(); j++ )
       {
-       std::cout << "[DeviceManager::post_ctor] Checking idx: " << j << std::endl;
+       std::cout << "[DeviceManager::post_ctor] Checking idx: " << j << " of " << _implementations->size() << std::endl;
        std::vector< std::string > _devprocessors = (*_implementations)[j]->getProcessors();
-       std::vector< std::string > _devmgrprocessors = (*_devmgrspdimpl)[j]->getProcessors();
+       std::vector< std::string > _devmgrprocessors = (*_devmgrspdimpl)[0]->getProcessors();
 	// Assume only one processor per implementation
 	// -- test if the target processor matches; if not, get next implementation
+       DEBUG(4, DevMgr, "Comparing processors")
        if( _devprocessors[0] != _devmgrprocessors[0] ) continue;
+       DEBUG(4, DevMgr, "Device processor matches DeviceManager processor")
        OSAttributes _devosattr = (*_implementations)[j]->getOperatingSystem();
-       OSAttributes _devmgrosattr = (*_devmgrspdimpl)[j]->getOperatingSystem();
+       OSAttributes _devmgrosattr = (*_devmgrspdimpl)[0]->getOperatingSystem();
 	// -- test if the target OS matches; if not, get next implementation
-       if( strcmp( _devosattr.getOSName(), _devmgrosattr.getOSName() ) != 0 ) continue;
+       DEBUG(4, DevMgr, "Comparing OSes")
+       if( strcmp( _devosattr.getOSName(), _devmgrosattr.getOSName() ) < 0 ) continue;
+       DEBUG(4, DevMgr, "Device OS matches DeviceManager OS")
        _implIdx = j;
        break;
@@ -236,5 +250,5 @@
       int myPid2;
 
-      DEBUG(2, DevMgr, "Launching Device file " << (*_implementations)[_implIdx]->getCodeFile () << " Usage name " << componentPlacements[_implIdx].usageName())
+      DEBUG(2, DevMgr, "Launching Device file " << (*_implementations)[_implIdx]->getCodeFile () << " Usage name " << componentPlacements[i].usageName())
 
       if ((myPid2 = fork()) < 0) std::cout << "Fork Error" << std::endl;
