diff --git a/trainer.h b/trainer.h
index 92286b2c46bfbae887effa67086bf3d659a6eb77..3f3e2eec460ceac70aa004db8cf6da3ee5503918 100644
--- a/trainer.h
+++ b/trainer.h
@@ -69,7 +69,7 @@ extern "C" void pdgemv_(char* transa, int* m, int* n, double* alpha, double* a,
 
 class MPI_Trainer: public Trainer {
   public:
-    int status;
+    MPI_Status &status;
     int worker;
     int tag;
     int context1,      context2;
@@ -93,7 +93,7 @@ class MPI_Trainer: public Trainer {
     size_t phi_row = 0; // next row to be filled in the local phi array
     MPI_Datatype rowvec, rowvecs;
 
-    MPI_Trainer(Config &c, int &status):
+    MPI_Trainer(Config &c, MPI_Status &status):
       Trainer(c),
       status(status)
   {}