Index: /components/Modulator/trunk/Modulator/main.cpp
===================================================================
--- /components/Modulator/trunk/Modulator/main.cpp	(revision 2576)
+++ /components/Modulator/trunk/Modulator/main.cpp	(revision 4404)
@@ -32,29 +32,23 @@
 
 {
+    ossieDebugLevel = 3;
+
     ossieSupport::ORB *orb = new ossieSupport::ORB;
     omni_mutex component_running_mutex;
     omni_condition *component_running = new omni_condition(&component_running_mutex);
 
-    ossieDebugLevel = 3;
-
-    if (argc != 3) {
-	std::cout << argv[0] << " <id> <usage name> " << std::endl;
-	exit (-1);
-    }
-
-    char *uuid = argv[1];
-    char *label = argv[2];
-
-    DEBUG(3, Modulator, "Identifier - " << uuid << "  Label - " << label)
+    ossieSupport::ossieComponent modulator(orb, argc, argv);
 
     Modulator_i* modulator_servant;
     CF::Resource_var modulator_var;
 
-    // Create the modulator component servant and object reference
+    // Create the randombits component servant and object reference
 
-    modulator_servant = new Modulator_i(uuid, component_running);
+    modulator_servant = new Modulator_i(modulator.getUuid(), component_running);
     modulator_var = modulator_servant->_this();
 
-    orb->bind_object_to_name((CORBA::Object_ptr) modulator_var, label);
+    PortableServer::ObjectId_var servantId = orb->poa->reference_to_id(modulator_var);
+
+    modulator.bind(modulator_var);
 
     // This bit is ORB specific
@@ -64,5 +58,14 @@
 
     component_running->wait();
-    orb->unbind_name(label);
+
+    modulator.unbind();
+
+    DEBUG(4, Modulator, "Deactivate object.");
+    orb->poa->deactivate_object(servantId);
+
+    DEBUG(4, Modulator, "Destroy POA.");
+    orb->poa->destroy(false, false);
+
+    DEBUG(4, Modulator, "Shutdown orb.");
     orb->orb->shutdown(0);
 
