diff --git a/patches/amber14.diff/AmberTools/src/sander/runmd.F90 b/patches/amber14.diff/AmberTools/src/sander/runmd.F90
index 2a3721300ac615c73951a2a1b6d45abea48dfd4f..af3bc6f6f8c57c788754fafe769faa48d8ed1d73 100644
--- a/patches/amber14.diff/AmberTools/src/sander/runmd.F90
+++ b/patches/amber14.diff/AmberTools/src/sander/runmd.F90
@@ -327,7 +327,7 @@ subroutine runmd(xx,ix,ih,ipairs,x,winv,amass,f, &
 
 ! variables for plumed
    _REAL_ :: plumed_box(3,3),plumed_virial(3,3), plumed_kbt
-   integer :: plumed_version,plumed_stopflag
+   integer :: plumed_version,plumed_stopflag,plumed_ms
    _REAL_ :: plumed_energyUnits,plumed_timeUnits,plumed_lengthUnits
 
    !==========================================================================
@@ -761,10 +761,21 @@ subroutine runmd(xx,ix,ih,ipairs,x,winv,amass,f, &
      call plumed_f_gcmd("setMDTimeUnits"//char(0),plumed_timeUnits)
      call plumed_f_gcmd("setPlumedDat"//char(0),trim(adjustl(plumedfile))//char(0))
      call plumed_f_gcmd("setNatoms"//char(0),nr)
-     call plumed_f_gcmd("setMDEngine"//char(0),"amber");
-     call plumed_f_gcmd("setTimestep"//char(0),dt);
+     call plumed_f_gcmd("setMDEngine"//char(0),"amber")
+     call plumed_f_gcmd("setTimestep"//char(0),dt)
 #  ifdef MPI
      call plumed_f_gcmd("setMPIFComm"//char(0),commsander)
+     if(master)then
+       call mpi_comm_size(commmaster,plumed_ms,ierr)
+     endif
+     call mpi_bcast(plumed_ms,1,MPI_INTEGER,0,commsander,ierr)
+     if(plumed_ms>1)then
+       call plumed_f_gcmd("GREX setMPIFIntracomm"//char(0),commsander)
+       if(master) then
+         call plumed_f_gcmd("GREX setMPIFIntercomm"//char(0),commmaster)
+       endif
+       call plumed_f_gcmd("GREX init"//char(0),0)
+     endif
 #  endif
 
      call plumed_f_gcmd("init"//char(0),0);