diff --git a/mongoose.c b/mongoose.c
index 60e5b6ee0c6b91bdceddb1d1979d09c45cc43c32..b56a0c08b6c85b1af24df08b97f7f29226e2bec4 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -100,7 +100,6 @@ typedef unsigned __int64 uint64_t;
 typedef __int64   int64_t;
 typedef SOCKET sock_t;
 #else
-#include <dlfcn.h>
 #include <errno.h>
 #include <fcntl.h>
 #include <netdb.h>
@@ -1317,45 +1316,6 @@ static int mg_open(const char *path, int flag) {
 }
 #endif // _WIN32 && !MONGOOSE_NO_FILESYSTEM
 
-#ifndef MONGOOSE_NO_DL
-void *mg_open_dll(const char *dll_name) {
-#ifdef _WIN32
-  wchar_t wbuf[MAX_PATH_SIZE];
-  to_wchar(dll_name, wbuf, ARRAY_SIZE(wbuf));
-  return LoadLibraryW(wbuf);
-#else
-  return dlopen(dll_name, RTLD_LAZY);
-#endif
-}
-
-void *mg_find_dll_sym(void *dll_handle, const char *name) {
-#ifdef _WIN32
-  return GetProcAddress((HINSTANCE) dll_handle, name);
-#else
-  return dlsym(dll_handle, name);
-#endif
-}
-
-const char *mg_load_dll(const char *dll_name, struct mg_dll_symbol *syms) {
-  void *dll_handle;
-  int i;
-
-  if ((dll_handle = mg_open_dll(dll_name)) == NULL) {
-    return dll_name;
-  } else {
-    for (i = 0; syms != NULL && syms[i].symbol_name != NULL; i++) {
-      syms[i].symbol_address.ptr = mg_find_dll_sym(dll_handle,
-                                                   syms[i].symbol_name);
-      if (syms[i].symbol_address.ptr == NULL) {
-        return syms[i].symbol_name;
-      }
-    }
-  }
-
-  return NULL;
-}
-#endif
-
 // A helper function for traversing a comma separated list of values.
 // It returns a list pointer shifted to the next value, or NULL if the end
 // of the list found.
diff --git a/mongoose.h b/mongoose.h
index d2f04113feef1ccf86c24ba9aea6bd0ca3d2e5ee..3d9e38d12e6ec4a4331b8b9910772814b0b1c730 100644
--- a/mongoose.h
+++ b/mongoose.h
@@ -113,21 +113,6 @@ void *mg_start_thread(void *(*func)(void *), void *param);
 char *mg_md5(char buf[33], ...);
 int mg_authorize_digest(struct mg_connection *c, FILE *fp);
 
-struct mg_dll_symbol {
-  const char *symbol_name;
-  union { void *ptr; void (*func_ptr)(void); } symbol_address;
-};
-const char *mg_load_dll(const char *dll_path, struct mg_dll_symbol *symbols);
-
-// Lua utility functions
-#ifdef MONGOOSE_USE_LUA
-#include <lua.h>
-#include <lauxlib.h>
-void reg_string(lua_State *L, const char *name, const char *val);
-void reg_int(lua_State *L, const char *name, int val);
-void reg_function(lua_State *L, const char *,
-                         lua_CFunction, struct mg_connection *);
-#endif
 
 #ifdef __cplusplus
 }