diff --git a/LCS/Transport/include/Transport/TH_MPI.h b/LCS/Transport/include/Transport/TH_MPI.h
index f6d9e423a9c3adc6735eb3026fc88b7ccf018c8d..314af9d4a3b6aac5551e05479bc2f5ad8bb326df 100644
--- a/LCS/Transport/include/Transport/TH_MPI.h
+++ b/LCS/Transport/include/Transport/TH_MPI.h
@@ -103,7 +103,7 @@ public:
   // Resets all members which are source or destination specific.
   void reset();
 
-  static void initMPI (int argc, const char *argv[]);
+  static void initMPI (int& argc, char**&argv);
   static void finalize();
   static void waitForBroadCast();
   static void waitForBroadCast (unsigned long& aVar);
diff --git a/LCS/Transport/src/TH_MPI.cc b/LCS/Transport/src/TH_MPI.cc
index bfb5806073d0dcabc5d869403d211d6958bf2293..844a8412ea4c16a8de4f88fde44bf5ab4fd0740d 100644
--- a/LCS/Transport/src/TH_MPI.cc
+++ b/LCS/Transport/src/TH_MPI.cc
@@ -215,7 +215,7 @@ int TH_MPI::getNumberOfNodes()
   return size;
 }
 
-void TH_MPI::initMPI(int argc, const char *argv[])
+void TH_MPI::initMPI(int& argc, char **&argv)
 {
   LOG_TRACE_RTTI( "TH_MPI init()" );
   int initialized = 0;
@@ -224,7 +224,7 @@ void TH_MPI::initMPI(int argc, const char *argv[])
   MPI_Initialized(&initialized);
   if (!initialized)
   {
-    MPI_Init (&argc,(char***)&argv);
+    MPI_Init (&argc,&argv);
   }
 }