diff --git a/lib/plumed/.gitignore b/lib/plumed/.gitignore
index c17bb18bf0648bbfeeb62e4d18b8c18f7dd2c395..d79d6d441387238a9d77b0108363233830bced76 100644
--- a/lib/plumed/.gitignore
+++ b/lib/plumed/.gitignore
@@ -1,3 +1,4 @@
 /plumed2*
 /includelink
 /liblink
+/plumed-*
diff --git a/lib/plumed/Install.py b/lib/plumed/Install.py
index 98827a3fda5f4bea158e6f0bb579f0a2174e3fd1..29b9136ccf9e3cb3a3b27f1515a775c8084420b2 100644
--- a/lib/plumed/Install.py
+++ b/lib/plumed/Install.py
@@ -156,7 +156,6 @@ if buildflag:
     if not checkmd5sum(checksums[version],filename):
       error("Checksum for plumed2 library does not match")
 
-
   print("Unpacking plumed2 tarball ...")
   if os.path.exists("%s/plumed2-%s" % (homepath,version)):
     cmd = 'rm -rf "%s/plumed2-%s"' % (homepath,version)
@@ -188,3 +187,7 @@ if linkflag:
   subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
   cmd = 'ln -s "%s/plumed2/lib" liblink' % homepath
   subprocess.check_output(cmd,stderr=subprocess.STDOUT,shell=True)
+  if os.path.isfile("Makefile.lammps.static"):
+    print("Creating Makefile.lammps")
+    cmd = 'cat liblink/plumed/src/lib/Plumed.inc.static Makefile.lammps.static > Makefile.lammps'
+
diff --git a/lib/plumed/Makefile.lammps.static b/lib/plumed/Makefile.lammps.static
new file mode 100644
index 0000000000000000000000000000000000000000..860202a6f2bd4b304c7cf6e83ea4dc3ad84cc701
--- /dev/null
+++ b/lib/plumed/Makefile.lammps.static
@@ -0,0 +1,5 @@
+# Settings that the LAMMPS build will import when this package library is used
+
+plumed_SYSINC = 
+plumed_SYSLIB = $(PLUMED_LOAD)
+plumed_SYSPATH = 
diff --git a/src/USER-PLUMED/Install.sh b/src/USER-PLUMED/Install.sh
index 20215e4c99408141383a1768bc311e90485c15b7..f879d42feb0f6ceb065cda1a2fedd07d79f4895b 100755
--- a/src/USER-PLUMED/Install.sh
+++ b/src/USER-PLUMED/Install.sh
@@ -1,45 +1,65 @@
 # Install/unInstall package files in LAMMPS
-# edit 2 Makefile.package files to include/exclude ATC info
+# mode = 0/1/2 for uninstall/install/update
+
+mode=$1
+
+# enforce using portable C locale
+LC_ALL=C
+export LC_ALL
+
+# arg1 = file, arg2 = file it depends on
+
+action () {
+  if (test $mode = 0) then
+    rm -f ../$1
+  elif (! cmp -s $1 ../$1) then
+    if (test -z "$2" || test -e ../$2) then
+      cp $1 ..
+      if (test $mode = 2) then
+        echo "  updating src/$1"
+      fi
+    fi
+  elif (test -n "$2") then
+    if (test ! -e ../$2) then
+      rm -f ../$1
+    fi
+  fi
+}
+
+# all package files with no dependencies
+
+for file in *.cpp *.h; do
+  test -f ${file} && action $file
+done
+
+# edit 2 Makefile.package files to include/exclude package info
 
 if (test $1 = 1) then
 
   if (test -e ../Makefile.package) then
-    sed -i -e 's|^PKG_LIB =[ \t]*|& -lplumedWrapper -ldl |' ../Makefile.package
-    if ( ! test -e ../../lib/plumed/liblink/plumed/src/lib/Plumed.inc.static ) then
-        sed -i -e 's|^PKG_SYSINC =[ \t]*|& -D__PLUMED_HAS_DLOPEN |' ../Makefile.package
-    fi
+    sed -i -e 's/[^ \t]*plumed[^ \t]* //' ../Makefile.package
     sed -i -e 's|^PKG_INC =[ \t]*|&-I../../lib/plumed/includelink |' ../Makefile.package
-    sed -i -e 's|^PKG_PATH =[ \t]*|&-L../../lib/plumed/liblink |' ../Makefile.package
+    sed -i -e 's|^PKG_SYSINC =[ \t]*|&$(plumed_SYSINC) |' ../Makefile.package
+    sed -i -e 's|^PKG_SYSLIB =[ \t]*|&$(plumed_SYSLIB) |' ../Makefile.package
+    sed -i -e 's|^PKG_SYSPATH =[ \t]*|&$(plumed_SYSPATH) |' ../Makefile.package
   fi
 
   if (test -e ../Makefile.package.settings) then
-    # This is for statically linking plumed2
-    if ( test -e ../../lib/plumed/liblink/src/lib/Plumed.inc.static ) then  
-       fname=../../lib/plumed/liblink/src/lib/Plumed.inc.static 
-       sed -i -e '4 i \
-include '$fname'
-' ../Makefile.package.settings
-    # This is for linking plumed2 as a runtime library  -- this is the default behavior
-    else 
+    sed -i -e '/^include.*plumed.*$/d' ../Makefile.package.settings
     # multiline form needed for BSD sed on Macs
-       sed -i -e '4 i \
-PLUMED_LOAD=-ldl
+    sed -i -e '4 i \
+include ..\/..\/lib\/plumed\/Makefile.lammps
 ' ../Makefile.package.settings
-    fi
   fi
 
-  cp fix_plumed.cpp ..
-  cp fix_plumed.h ..
-
 elif (test $1 = 0) then
 
   if (test -e ../Makefile.package) then
-    sed -i -e 's/[^ \t]*-lplumedWrapper -ldl[^ \t]* //' ../Makefile.package
-    sed -i -e 's/[^ \t]*-D__PLUMED_HAS_DLOPEN[^ \t]* //' ../Makefile.package
-    sed -i -e 's|[^ \t]*-I../../lib/plumed/includelink[^ \t]* ||' ../Makefile.package
-    sed -i -e 's|[^ \t]*-L../../lib/plumed/liblink[^ \t]* ||' ../Makefile.package
+    sed -i -e 's/[^ \t]*plumed[^ \t]* //' ../Makefile.package
+  fi
+
+  if (test -e ../Makefile.package.settings) then
+    sed -i -e '/^include.*plumed.*$/d' ../Makefile.package.settings
   fi
 
-  rm -f ../fix_plumed.cpp
-  rm -f ../fix_plumed.h
 fi