diff --git a/lib/fuse.c b/lib/fuse.c
index 2a88918..34a46c3 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -242,50 +242,7 @@ static void fuse_unregister_module(struct fuse_module *m)
 
 static int fuse_load_so_module(const char *module)
 {
-	int ret = -1;
-	char *tmp;
-	struct fusemod_so *so;
-	fuse_module_factory_t *factory;
-
-	tmp = malloc(strlen(module) + 64);
-	if (!tmp) {
-		fuse_log(FUSE_LOG_ERR, "fuse: memory allocation failed\n");
-		return -1;
-	}
-	sprintf(tmp, "libfusemod_%s.so", module);
-	so = calloc(1, sizeof(struct fusemod_so));
-	if (!so) {
-		fuse_log(FUSE_LOG_ERR, "fuse: failed to allocate module so\n");
-		goto out;
-	}
-
-	so->handle = dlopen(tmp, RTLD_NOW);
-	if (so->handle == NULL) {
-		fuse_log(FUSE_LOG_ERR, "fuse: dlopen(%s) failed: %s\n",
-			tmp, dlerror());
-		goto out_free_so;
-	}
-
-	sprintf(tmp, "fuse_module_%s_factory", module);
-	factory = (fuse_module_factory_t*)dlsym(so->handle, tmp);
-	if (factory == NULL) {
-		fuse_log(FUSE_LOG_ERR, "fuse: symbol <%s> not found in module: %s\n",
-			tmp, dlerror());
-		goto out_dlclose;
-	}
-	ret = fuse_register_module(module, *factory, so);
-	if (ret)
-		goto out_dlclose;
-
-out:
-	free(tmp);
-	return ret;
-
-out_dlclose:
-	dlclose(so->handle);
-out_free_so:
-	free(so);
-	goto out;
+	return -1;
 }
 
 static struct fuse_module *fuse_find_module(const char *module)
@@ -335,7 +292,6 @@ static void fuse_put_module(struct fuse_module *m)
 				else
 					mp = &(*mp)->next;
 			}
-			dlclose(so->handle);
 			free(so);
 		}
 	} else if (!m->ctr) {