diff --git a/honoka/src/honoka_imengine.cpp b/honoka/src/honoka_imengine.cpp
index f10e48f..44970f0 100644
--- a/honoka/src/honoka_imengine.cpp
+++ b/honoka/src/honoka_imengine.cpp
@@ -203,7 +203,10 @@
                 void* plugin = dlopen(d.c_str(), RTLD_LAZY);
                 if (!plugin) continue;
                 createInstanceFunc *getInstance = (createInstanceFunc *)dlsym(plugin,"getHonokaPluginInstance");
-                if (!getInstance) continue;
+                if (!getInstance) {
+                    dlclose(plugin);
+                    continue;
+                }
                 convertors.push_back(static_cast<Convertor *>(getInstance(_scim_config)));
             }
         }