diff --git a/patches/namd-2.9.config b/patches/namd-2.12.config
similarity index 100%
rename from patches/namd-2.9.config
rename to patches/namd-2.12.config
diff --git a/patches/namd-2.9.diff b/patches/namd-2.12.diff
similarity index 88%
rename from patches/namd-2.9.diff
rename to patches/namd-2.12.diff
index 8b41a153d5f04ee425e86845c116c6f86c9bdd54..f24360157cbc5135ddfce9e69304306a3e687d59 100644
--- a/patches/namd-2.9.diff
+++ b/patches/namd-2.12.diff
@@ -1,31 +1,37 @@
 patch -u -l -b -F 5 -N --suffix=.preplumed "./Makefile" << \EOF_EOF
 --- ./Makefile.preplumed
 +++ ./Makefile
-@@ -359,10 +359,12 @@
- CXXBASEFLAGS = $(COPTI)$(CHARMINC) $(COPTI)$(SRCDIR) $(COPTI)$(INCDIR) $(DPMTA) $(DPME) $(COPTI)$(PLUGININCDIR) $(COPTD)STATIC_PLUGIN $(TCL) $(FFT) $(CUDA) $(MEMOPT) $(CCS) $(RELEASE) $(EXTRADEFINES) $(TRACEOBJDEF) $(EXTRAINCS) $(MSA)
+@@ -359,13 +359,15 @@
+ CXXBASEFLAGS = $(COPTI)$(CHARMINC) $(COPTI)$(SRCDIR) $(COPTI)$(INCDIR) $(DPMTA) $(DPME) $(FMM) $(COPTI)$(PLUGININCDIR) $(COPTD)STATIC_PLUGIN $(TCL) $(PYTHON) $(FFT) $(CUDA) $(MIC) $(MEMOPT) $(CCS) $(RELEASE) $(EXTRADEFINES) $(TRACEOBJDEF) $(EXTRAINCS) $(MSA) $(CKLOOP)
  CXXFLAGS = $(CXXBASEFLAGS) $(CXXOPTS)
+ CXXMICFLAGS = $(CXXBASEFLAGS) $(CXXOPTS) $(CXXMICOPTS)
  CXXTHREADFLAGS = $(CXXBASEFLAGS) $(CXXTHREADOPTS)
  CXXSIMPARAMFLAGS = $(CXXBASEFLAGS) $(CXXSIMPARAMOPTS)
  CXXNOALIASFLAGS = $(CXXBASEFLAGS) $(CXXNOALIASOPTS)
 +include .rootdir/Plumed.inc
 +
+ CXXCOLVARFLAGS = $(CXXBASEFLAGS) $(CXXCOLVAROPTS)
  GXXFLAGS = $(CXXBASEFLAGS) -DNO_STRSTREAM_H
  CFLAGS = $(COPTI)$(SRCDIR) $(TCL) $(COPTS) $(RELEASE) $(EXTRADEFINES) $(TRACEOBJDEF)
  PLUGINGCCFLAGS = $(COPTI)$(PLUGINSRCDIR) $(COPTI)$(PLUGININCDIR) $(COPTD)STATIC_PLUGIN
  PLUGINCFLAGS = $(PLUGINGCCFLAGS) $(COPTS)
  SBCFLAGS = $(COPTI)$(SBSRCDIR) $(COPTI)$(PLUGININCDIR) $(COPTD)STATIC_PLUGIN -DPSFGEN_USEPLUGINS $(TCL) $(COPTS) $(RELEASE) $(EXTRADEFINES) $(TRACEOBJDEF)
-@@ -394,10 +396,11 @@
- 	$(CUDAOBJS) \
- 	$(CUDALIB) \
- 	$(DPMTALIB) \
- 	$(DPMELIB) \
- 	$(TCLLIB) \
+ SBGCCFLAGS = $(COPTI)$(SBSRCDIR) $(COPTI)$(PLUGININCDIR) $(COPTD)STATIC_PLUGIN -DPSFGEN_USEPLUGINS $(TCL) $(RELEASE) $(EXTRADEFINES) $(TRACEOBJDEF)
+@@ -394,13 +396,14 @@
+	$(CUDAOBJS) \
+	$(CUDALIB) \
+	$(DPMTALIB) \
+	$(DPMELIB) \
+	$(FMMLIB) \
+	$(TCLLIB) \
 +        $(PLUMED_LOAD) \
- 	$(FFTLIB) \
- 	$(PLUGINLIB) \
- 	$(CHARMOPTS) \
- 	$(EXTRALINKLIBS) \
- 	-lm -o namd2
+	$(PYTHONLIB) \
+	$(FFTLIB) \
+	$(PLUGINLIB) \
+	$(SBLIB) \
+	$(CHARMOPTS) \
+	$(EXTRALINKLIBS) \
+	-lm -o namd2
 EOF_EOF
 patch -u -l -b -F 5 --suffix=.preplumed "./src/ComputeMgr.C" << \EOF_EOF
 --- ./src/ComputeMgr.C.preplumed
@@ -204,16 +210,17 @@ patch -u -l -b -F 5 --suffix=.preplumed "./src/SimParameters.C" << \EOF_EOF
     opts.optional("GBIS", "intrinsicRadiusOffset",
        "Coulomb Radius Offset", &coulomb_radius_offset, 0.09);
     opts.optional("GBIS", "ionConcentration",
-@@ -4299,11 +4306,11 @@
+@@ -4299,12 +4307,12 @@
     }
-    
+
     // Global forces configuration
- 
+
     globalForcesOn = ( tclForcesOn || freeEnergyOn || miscForcesOn ||
--                      (IMDon && ! IMDignore) || SMDOn || TMDOn || colvarsOn || symmetryOn );
-+                      (IMDon && ! IMDignore) || SMDOn || TMDOn || colvarsOn || symmetryOn || plumedOn );
- 
- 
+                       (IMDon && ! IMDignore) || SMDOn || TMDOn || 
+-                      colvarsOn || symmetryOn || qmForcesOn );
++                      colvarsOn || symmetryOn || qmForcesOn || plumedOn );
+
+
     if (tclForcesOn)
     {
       iout << iINFO << "TCL GLOBAL FORCES ACTIVE\n";
diff --git a/patches/namd-2.8.config b/patches/namd-2.13.config
similarity index 99%
rename from patches/namd-2.8.config
rename to patches/namd-2.13.config
index 12035dda6680a2925bd28b1e20efd1bd31b6fd36..352a7ba8b562a7499a13de23ac7d68fba3c662dc 100644
--- a/patches/namd-2.8.config
+++ b/patches/namd-2.13.config
@@ -27,3 +27,4 @@ EOF
 }
 
 plumed_ignore_mpi=yes
+
diff --git a/patches/namd-2.8.diff b/patches/namd-2.13.diff
similarity index 76%
rename from patches/namd-2.8.diff
rename to patches/namd-2.13.diff
index d1c4f0df25bf5181dc8d643ba53dc7c05649f8f8..656bd2c9fbccf5bf66f120d4f5f5674acb94cc6e 100644
--- a/patches/namd-2.8.diff
+++ b/patches/namd-2.13.diff
@@ -1,36 +1,47 @@
 patch -u -l -b -F 5 -N --suffix=.preplumed "./Makefile" << \EOF_EOF
 --- ./Makefile.preplumed
 +++ ./Makefile
-@@ -358,10 +358,12 @@
- 	cat $(BUILDINFO).C; \
- 	$(CXX) $(CXXFLAGS) $(COPTO)$(BUILDINFO).o $(COPTC) $(BUILDINFO).C
- 
- all:	$(BINARIES) $(LIBCUDARTSO)
- 
+@@ -359,16 +359,18 @@
+ CXXBASEFLAGS = $(COPTI)$(CHARMINC) $(COPTI)$(SRCDIR) $(COPTI)$(INCDIR) $(DPMTA) $(DPME) $(FMM) $(COPTI)$(PLUGININCDIR) $(COPTI)$(COLVARSINCDIR) $(COPTD)STATIC_PLUGIN $(TCL) $(PYTHON) $(FFT) $(CUDA) $(MIC) $(MEMOPT) $(CCS) $(RELEASE) $(EXTRADEFINES) $(TRACEOBJDEF) $(EXTRAINCS) $(MSA) $(CKLOOP)
+ CXXFLAGS = $(CXXBASEFLAGS) $(CXXOPTS)
+ CXXMICFLAGS = $(CXXBASEFLAGS) $(CXXOPTS) $(CXXMICOPTS)
+ CXXTHREADFLAGS = $(CXXBASEFLAGS) $(CXXTHREADOPTS)
+ CXXSIMPARAMFLAGS = $(CXXBASEFLAGS) $(CXXSIMPARAMOPTS)
+ CXXNOALIASFLAGS = $(CXXBASEFLAGS) $(CXXNOALIASOPTS)
 +include .rootdir/Plumed.inc
 +
- namd2:	$(INCDIR) $(DSTDIR) $(OBJS) $(LIBS)
- 	$(MAKEBUILDINFO)
- 	$(CHARMC) -verbose -ld++-option \
- 	"$(COPTI)$(CHARMINC) $(COPTI)$(INCDIR) $(COPTI)$(SRCDIR) $(CXXOPTS)" \
- 	-module NeighborLB -module HybridLB -module RefineLB -module GreedyLB -language charm++ \
-@@ -371,10 +373,11 @@
- 	$(CUDALIB) \
- 	$(DPMTALIB) \
- 	$(DPMELIB) \
- 	$(TCLLIB) \
- 	$(FFTLIB) \
+ COLVARSCXXFLAGS = $(CXXBASEFLAGS) $(CXXCOLVAROPTS) $(COPTI)$(LEPTONINCDIR) -DLEPTON -DLEPTON_USE_STATIC_LIBRARIES
+ GXXFLAGS = $(CXXBASEFLAGS) -DNO_STRSTREAM_H
+ CFLAGS = $(COPTI)$(SRCDIR) $(TCL) $(COPTS) $(RELEASE) $(EXTRADEFINES) $(TRACEOBJDEF)
+ PLUGINGCCFLAGS = $(COPTI)$(PLUGINSRCDIR) $(COPTI)$(PLUGININCDIR) $(COPTD)STATIC_PLUGIN
+ PLUGINCFLAGS = $(PLUGINGCCFLAGS) $(COPTS)
+ SBCFLAGS = $(COPTI)$(SBSRCDIR) $(COPTI)$(PLUGININCDIR) $(COPTD)STATIC_PLUGIN -DPSFGEN_USEPLUGINS $(TCL) $(COPTS) $(RELEASE) $(EXTRADEFINES) $(TRACEOBJDEF)
+ SBGCCFLAGS = $(COPTI)$(SBSRCDIR) $(COPTI)$(PLUGININCDIR) $(COPTD)STATIC_PLUGIN -DPSFGEN_USEPLUGINS $(TCL) $(RELEASE) $(EXTRADEFINES) $(TRACEOBJDEF)
+ COLVARSGXXFLAGS= $(GXXFLAGS)
+ LEPTONGCCFLAGS= $(COPTI)$(LEPTONINCDIR)
+ LEPTONCXXFLAGS=$(CXXBASEFLAGS) $(COPTI)$(LEPTONINCDIR) -DLEPTON_BUILDING_STATIC_LIBRARY
+@@ -394,15 +396,16 @@
+	$(CUDAOBJS) \
+	$(CUDALIB) \
+	$(DPMTALIB) \
+	$(DPMELIB) \
+	$(FMMLIB) \
+	$(TCLLIB) \
 +        $(PLUMED_LOAD) \
- 	$(PLUGINLIB) \
- 	$(CHARMOPTS) \
- 	$(EXTRALINKLIBS) \
- 	-lm -o namd2
- 
+	$(PYTHONLIB) \
+	$(FFTLIB) \
+	$(PLUGINLIB) \
+	$(SBLIB) \
+	$(COLVARSLIB) \
+	$(LEPTONOBJS) \
+	$(CHARMOPTS) \
+	$(EXTRALINKLIBS) \
+	$(MATHLIBS) -o namd2
 EOF_EOF
 patch -u -l -b -F 5 --suffix=.preplumed "./src/ComputeMgr.C" << \EOF_EOF
 --- ./src/ComputeMgr.C.preplumed
 +++ ./src/ComputeMgr.C
-@@ -77,13 +77,137 @@
+@@ -80,12 +80,135 @@
  #include "GlobalMasterSMD.h"
  #include "GlobalMasterTMD.h"
  #include "GlobalMasterSymmetry.h"
@@ -41,7 +52,6 @@ patch -u -l -b -F 5 --suffix=.preplumed "./src/ComputeMgr.C" << \EOF_EOF
 +// END PLUMED
  #include "GlobalMasterFreeEnergy.h"
  #include "GlobalMasterColvars.h"
- 
 +class GlobalMasterPlumed:
 +  public  GlobalMasterEasy,
 +  private PLMD::Plumed
@@ -162,13 +172,12 @@ patch -u -l -b -F 5 --suffix=.preplumed "./src/ComputeMgr.C" << \EOF_EOF
 + 
 +  }
 +};
-+
+ 
  ComputeMgr::ComputeMgr()
  {
      CkpvAccess(BOCclass_group).computeMgr = thisgroup;
      computeGlobalObject = 0;
-     computeDPMEObject = 0;
-@@ -743,10 +867,15 @@
+@@ -785,10 +908,15 @@
              masterServerObject->addClient(new GlobalMasterSymmetry());    
          if (simParams->TMDOn)
              masterServerObject->addClient(new GlobalMasterTMD());
@@ -188,7 +197,7 @@ EOF_EOF
 patch -u -l -b -F 5 --suffix=.preplumed "./src/SimParameters.C" << \EOF_EOF
 --- ./src/SimParameters.C.preplumed
 +++ ./src/SimParameters.C
-@@ -1231,10 +1231,17 @@
+@@ -1324,10 +1324,17 @@
     opts.optionalB("main", "GBIS", "Use GB implicit solvent?",
        &GBISOn, FALSE);
     opts.optionalB("main", "GBISSer", "Use GB implicit solvent?",
@@ -206,20 +215,21 @@ patch -u -l -b -F 5 --suffix=.preplumed "./src/SimParameters.C" << \EOF_EOF
     opts.optional("GBIS", "intrinsicRadiusOffset",
        "Coulomb Radius Offset", &coulomb_radius_offset, 0.09);
     opts.optional("GBIS", "ionConcentration",
-@@ -4103,11 +4110,11 @@
+@@ -4299,12 +4307,12 @@
     }
-    
+
     // Global forces configuration
- 
+
     globalForcesOn = ( tclForcesOn || freeEnergyOn || miscForcesOn ||
--                      (IMDon) || SMDOn || TMDOn || colvarsOn || symmetryOn );
-+                       (IMDon) || SMDOn || TMDOn || colvarsOn || symmetryOn || plumedOn );
- 
- 
+                       (IMDon && ! (IMDignore || IMDignoreForces)) || SMDOn || TMDOn ||
+-                      colvarsOn || symmetryOn || qmForcesOn );
++                      colvarsOn || symmetryOn || qmForcesOn || plumedOn );
+
+
     if (tclForcesOn)
     {
       iout << iINFO << "TCL GLOBAL FORCES ACTIVE\n";
-@@ -4188,10 +4195,25 @@
+@@ -4384,10 +4391,25 @@
       }
  
       iout << endi;
@@ -249,7 +259,7 @@ EOF_EOF
 patch -u -l -b -F 5 --suffix=.preplumed "./src/SimParameters.h" << \EOF_EOF
 --- ./src/SimParameters.h.preplumed
 +++ ./src/SimParameters.h
-@@ -401,10 +401,13 @@
+@@ -430,10 +430,13 @@
  	char tclBCArgs[128];		//  Extra args for calcforces command
  	Bool freeEnergyOn;		//  Doing free energy perturbation?
  	Bool miscForcesOn;		//  Using misc forces?