diff --git a/src/core.cc b/src/core.cc
index 54a30a13720305bea7b87c6ff5810ab9c06aece5..c90f39ccdf5c5d55bb488ad055a864f6ea365ff6 100644
--- a/src/core.cc
+++ b/src/core.cc
@@ -164,8 +164,26 @@ IPCCore::extractOptions( int & argc, char ** argv )
     }
     catch (const omni::orbOptions::BadParam& ex)
     {
-	throw daq::ipc::BadOptionValue( ERS_HERE, (const char *)ex.key,
-	        (const char *)ex.value, (const char *)ex.why );
+	throw daq::ipc::BadOptionValue( ERS_HERE, (const char *)ex.key, (const char *)ex.value, (const char *)ex.why );
+    }
+
+    omni::orbOptions::sequenceString_var newOpts;
+    newOpts = omni::orbOptions::singleton().dumpSpecified();
+    
+    for (CORBA::ULong i = 0; i < newOpts->length(); i++)
+    {
+	string option = (const char*)newOpts[i];
+	string::size_type pos = option.find( '=' );
+	
+	string key = option.substr(0,pos);
+	key.erase( key.find_last_not_of( ' ' ) + 1 );
+	string val;
+	if ( pos != string::npos )
+	{
+	    val = option.substr(pos+1);
+	    val.erase( 0, val.find_first_not_of( ' ' ) );
+	}
+	opt.push_back( make_pair( key, val ) );
     }
     return opt;
 }