diff -abBru orocos-rtt-1.10.4.orig/src/corba/ApplicationServer.cpp orocos-rtt-1.10.4.mod/src/corba/ApplicationServer.cpp --- orocos-rtt-1.10.4.orig/src/corba/ApplicationServer.cpp 2009-09-10 14:29:07.000000000 +0200 +++ orocos-rtt-1.10.4.mod/src/corba/ApplicationServer.cpp 2010-08-19 11:46:25.923660248 +0200 @@ -53,9 +53,6 @@ PortableServer::POA_var ApplicationServer::rootPOA; bool ApplicationServer::InitOrb(int argc, char* argv[], Seconds timeout ) { - if ( !CORBA::is_nil(orb) ) - return false; - try { // First initialize the ORB, that will remove some arguments... orb = Only in orocos-rtt-1.10.4.mod/src/corba: ApplicationServer.cpp~ diff -abBru orocos-rtt-1.10.4.orig/src/corba/ControlTaskProxy.cpp orocos-rtt-1.10.4.mod/src/corba/ControlTaskProxy.cpp --- orocos-rtt-1.10.4.orig/src/corba/ControlTaskProxy.cpp 2009-11-05 13:26:04.000000000 +0100 +++ orocos-rtt-1.10.4.mod/src/corba/ControlTaskProxy.cpp 2010-08-19 15:37:39.323145085 +0200 @@ -422,11 +422,11 @@ try { // Destroy the POA, waiting until the destruction terminates //poa->destroy (1, 1); - orb->destroy(); + CORBA::release(orb); std::cerr <<"Orb destroyed."<