diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index 2e2e316ee589e2492e7e4d7a82d18f14a3c4e2c6..9559cb8a41a788ba219d2c5019c641df76defa31 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -528,6 +528,7 @@ if(PKG_USER-SCAFACOS)
 endif()
 
 if(PKG_USER-PLUMED)
+  find_package(GSL REQUIRED)
   option(DOWNLOAD_PLUMED "Download Plumed (instead of using the system's one)" OFF)
   if(DOWNLOAD_PLUMED)
     include(ExternalProject)
@@ -540,12 +541,14 @@ if(PKG_USER-PLUMED)
     ExternalProject_get_property(plumed_build INSTALL_DIR)
     set(PLUMED_INSTALL_DIR ${INSTALL_DIR})
     list(APPEND LAMMPS_DEPS plumed_build)
-    list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/libplumedWrapper.a ${CMAKE_DL_LIBS})
+    list(APPEND LAMMPS_LINK_LIBS ${PLUMED_INSTALL_DIR}/lib/plumed/obj/kernel.o
+      ${PLUMED_INSTALL_DIR}/lib/plumed/obj/PlumedStatic.o ${GSL_LIBRARIES} ${CMAKE_DL_LIBS})
     set(PLUMED_INCLUDE_DIRS "${PLUMED_INSTALL_DIR}/include")
   else()
     find_package(PkgConfig REQUIRED)
-    pkg_check_modules(PLUMED plumedWrapper REQUIRED)
-    list(APPEND LAMMPS_LINK_LIBS ${PLUMED_LDFLAGS})
+    pkg_check_modules(PLUMED plumed REQUIRED)
+    include(${PLUMED_LIBDIR}/plumed/src/lib/Plumed.cmake.static)
+    list(APPEND LAMMPS_LINK_LIBS ${PLUMED_LOAD})
   endif()
   include_directories(${PLUMED_INCLUDE_DIRS})
 endif()