Index: python/genericio.py
===================================================================
--- python/genericio.py	(revision 7889dc4f4d0ec777a3e8a60215f5edfdd6b470fe)
+++ python/genericio.py	(revision 7ecb2a85c806f94abd91c3b52fe4d4dbe325b36f)
@@ -52,26 +52,26 @@
 
 libpygio.get_variable_type.restype=ct.c_int
-libpygio.get_variable_type.argtypes=[ct.c_char_p,ct.c_char_p]
+libpygio.get_variable_type.argtypes=[ct.c_int,ct.c_char_p,ct.c_char_p]
 
 libpygio.get_variable_field_count.restype=ct.c_int
-libpygio.get_variable_field_count.argtypes=[ct.c_char_p,ct.c_char_p]
+libpygio.get_variable_field_count.argtypes=[ct.c_int,ct.c_char_p,ct.c_char_p]
 
 libpygio.read_gio_uint16.restype=None
-libpygio.read_gio_uint16.argtypes=[ct.c_char_p,ct.c_char_p,ct.POINTER(ct.c_uint16),ct.c_int]
+libpygio.read_gio_uint16.argtypes=[ct.c_int,ct.c_char_p,ct.c_char_p,ct.POINTER(ct.c_uint16),ct.c_int]
 
 libpygio.read_gio_int32.restype=None
-libpygio.read_gio_int32.argtypes=[ct.c_char_p,ct.c_char_p,ct.POINTER(ct.c_int),ct.c_int]
+libpygio.read_gio_int32.argtypes=[ct.c_int,ct.c_char_p,ct.c_char_p,ct.POINTER(ct.c_int),ct.c_int]
 
 libpygio.read_gio_int64.restype=None
-libpygio.read_gio_int64.argtypes=[ct.c_char_p,ct.c_char_p,ct.POINTER(ct.c_int64),ct.c_int]
+libpygio.read_gio_int64.argtypes=[ct.c_int,ct.c_char_p,ct.c_char_p,ct.POINTER(ct.c_int64),ct.c_int]
 
 libpygio.read_gio_float.restype=None
-libpygio.read_gio_float.argtypes=[ct.c_char_p,ct.c_char_p,ct.POINTER(ct.c_float),ct.c_int]
+libpygio.read_gio_float.argtypes=[ct.c_int,ct.c_char_p,ct.c_char_p,ct.POINTER(ct.c_float),ct.c_int]
 
 libpygio.read_gio_double.restype=None
-libpygio.read_gio_double.argtypes=[ct.c_char_p,ct.c_char_p,ct.POINTER(ct.c_double),ct.c_int]
+libpygio.read_gio_double.argtypes=[ct.c_int,ct.c_char_p,ct.c_char_p,ct.POINTER(ct.c_double),ct.c_int]
 
 libpygio.inspect_gio.restype=None
-libpygio.inspect_gio.argtypes=[ct.c_char_p]
+libpygio.inspect_gio.argtypes=[ct.c_int,ct.c_char_p]
 
 def gio_read_(comm,file_name,var_name):
Index: python/lib/gio.cxx
===================================================================
--- python/lib/gio.cxx	(revision d409b8cca24c589136321db366285d0ba0d55735)
+++ python/lib/gio.cxx	(revision 7ecb2a85c806f94abd91c3b52fe4d4dbe325b36f)
@@ -43,21 +43,21 @@
 #include <iostream>
 
-  void read_gio_float(const MPI_Comm &C, char* file_name, char* var_name, float* data, int field_count){
+  void read_gio_float(const MPI_Comm C, char* file_name, char* var_name, float* data, int field_count){
     read_gio<float>(C, file_name,var_name,data,field_count);
   }
-  void read_gio_double(const MPI_Comm &C, char* file_name, char* var_name, double* data, int field_count){
+  void read_gio_double(const MPI_Comm C, char* file_name, char* var_name, double* data, int field_count){
     read_gio<double>(C, file_name,var_name,data,field_count);
   }
-  void read_gio_uint16(const MPI_Comm &C, char* file_name, char* var_name, uint16_t* data, int field_count){
+  void read_gio_uint16(const MPI_Comm C, char* file_name, char* var_name, uint16_t* data, int field_count){
     read_gio<uint16_t>(C, file_name,var_name,data,field_count);
   }
-  void read_gio_int32(const MPI_Comm &C, char* file_name, char* var_name, int* data, int field_count){
+  void read_gio_int32(const MPI_Comm C, char* file_name, char* var_name, int* data, int field_count){
     read_gio<int>(C, file_name,var_name,data,field_count);
   }
-  void read_gio_int64(const MPI_Comm &C, char* file_name, char* var_name, int64_t* data, int field_count){
+  void read_gio_int64(const MPI_Comm C, char* file_name, char* var_name, int64_t* data, int field_count){
     read_gio<int64_t>(C, file_name,var_name,data,field_count);
   }
   
-  int64_t get_elem_num(const MPI_Comm &C, char* file_name){
+  int64_t get_elem_num(const MPI_Comm C, char* file_name){
     gio::GenericIO reader(C, file_name);
     reader.openAndReadHeader(gio::GenericIO::MismatchAllowed);
@@ -70,5 +70,5 @@
   }
 
-  var_type get_variable_type(const MPI_Comm &C, char* file_name,char* var_name){
+  var_type get_variable_type(const MPI_Comm C, char* file_name,char* var_name){
    gio::GenericIO reader(C, file_name);
    std::vector<gio::GenericIO::VariableInfo> VI;
@@ -98,5 +98,5 @@
   }
 
-  int get_variable_field_count(const MPI_Comm &C, char* file_name,char* var_name){
+  int get_variable_field_count(const MPI_Comm C, char* file_name,char* var_name){
    gio::GenericIO reader(C, file_name);
    std::vector<gio::GenericIO::VariableInfo> VI;
@@ -115,8 +115,8 @@
 
 #ifndef GENERICIO_NO_MPI
-extern "C" void inspect_gio(const MPI_Comm &C, char* file_name){
+extern "C" void inspect_gio(const MPI_Comm C, char* file_name){
   gio::GenericIO reader(C, file_name);
 #else
-extern "C" void inspect_gio(const MPI_Comm &C, char* file_name){
+extern "C" void inspect_gio(const MPI_Comm C, char* file_name){
   gio::GenericIO reader(C, file_name);
 #endif
Index: python/lib/gio.h
===================================================================
--- python/lib/gio.h	(revision 7889dc4f4d0ec777a3e8a60215f5edfdd6b470fe)
+++ python/lib/gio.h	(revision 7ecb2a85c806f94abd91c3b52fe4d4dbe325b36f)
@@ -47,5 +47,5 @@
 template <class T>
 #ifndef GENERICIO_NO_MPI
-void read_gio(const MPI_Comm &C, char* file_name, std::string var_name, T*& data, int field_count){
+void read_gio(const MPI_Comm C, char* file_name, std::string var_name, T*& data, int field_count){
   gio::GenericIO reader(C, file_name);
 #else
@@ -74,11 +74,11 @@
   reader.close();
 }
-extern "C" int64_t get_elem_num(const MPI_Comm &c, char* file_name);
+extern "C" int64_t get_elem_num(const MPI_Comm C, char* file_name);
 
-extern "C" void read_gio_float (const MPI_Comm &C, char* file_name, char* var_name, float* data, int field_count);
-extern "C" void read_gio_double(const MPI_Comm &C, char* file_name, char* var_name, double* data, int field_count);
-extern "C" void read_gio_uint16 (const MPI_Comm &C, char* file_name, char* var_name, uint16_t* data, int field_count); 
-extern "C" void read_gio_int32 (const MPI_Comm &C, char* file_name, char* var_name, int* data, int field_count); 
-extern "C" void read_gio_int64 (const MPI_Comm &C, char* file_name, char* var_name, int64_t* data, int field_count);
+extern "C" void read_gio_float (const MPI_Comm C, char* file_name, char* var_name, float* data, int field_count);
+extern "C" void read_gio_double(const MPI_Comm C, char* file_name, char* var_name, double* data, int field_count);
+extern "C" void read_gio_uint16 (const MPI_Comm C, char* file_name, char* var_name, uint16_t* data, int field_count); 
+extern "C" void read_gio_int32 (const MPI_Comm C, char* file_name, char* var_name, int* data, int field_count); 
+extern "C" void read_gio_int64 (const MPI_Comm C, char* file_name, char* var_name, int64_t* data, int field_count);
 enum var_type{
   float_type=0,
@@ -90,5 +90,5 @@
   var_not_found=10
 };
-extern "C" var_type get_variable_type(const MPI_Comm &C, char* file_name,char* var_name);
-extern "C" int get_variable_field_count(const MPI_Comm &C, char* file_name,char* var_name);
-extern "C" void inspect_gio(const MPI_Comm &C, char* file_name);
+extern "C" var_type get_variable_type(const MPI_Comm C, char* file_name,char* var_name);
+extern "C" int get_variable_field_count(const MPI_Comm C, char* file_name,char* var_name);
+extern "C" void inspect_gio(const MPI_Comm C, char* file_name);
