diff --git a/src/plugin/pluginmanager.cpp b/src/plugin/pluginmanager.cpp
index eb99d226356fbec5b3b3398373d7087226bdcf59..d00bf5db407134a80eefde4bb5e6d7ad9ca2bdd9 100644
--- a/src/plugin/pluginmanager.cpp
+++ b/src/plugin/pluginmanager.cpp
@@ -51,8 +51,8 @@ bool
 PluginManager::load(const std::string& path)
 {
     auto it = dynPluginMap_.find(path);
-    if (it != dynPluginMap_.end() && !it->second.second) {
-        dynPluginMap_.erase(it);
+    if (it != dynPluginMap_.end()) {
+        unload(path);
     }
 
     std::string error;