diff --git a/mongoose.c b/mongoose.c
index 1d51e86c568bd4215304800a0b10d7c6eee0aa09..7c22ae9ff8f90edf09eb8aed31b6e3057da7cbd2 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -3704,19 +3704,19 @@ static void *mmap(void *addr, int64_t len, int prot, int flags, int fd,
 #include <sys/mman.h>
 #endif
 
-static void reg_string(struct lua_State *L, const char *name, const char *val) {
+void reg_string(struct lua_State *L, const char *name, const char *val) {
   lua_pushstring(L, name);
   lua_pushstring(L, val);
   lua_rawset(L, -3);
 }
 
-static void reg_int(struct lua_State *L, const char *name, int val) {
+void reg_int(struct lua_State *L, const char *name, int val) {
   lua_pushstring(L, name);
   lua_pushinteger(L, val);
   lua_rawset(L, -3);
 }
 
-static void reg_function(struct lua_State *L, const char *name,
+void reg_function(struct lua_State *L, const char *name,
                          lua_CFunction func, struct mg_connection *conn) {
   lua_pushstring(L, name);
   lua_pushlightuserdata(L, conn);
diff --git a/mongoose.h b/mongoose.h
index afde089daad03bc3f1272cee6d18e3aae701b2cc..3ac824f99e21fb32a902aa6012b64020f5aea82a 100644
--- a/mongoose.h
+++ b/mongoose.h
@@ -112,6 +112,14 @@ 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);
 
+// Lua utility functions
+#ifdef MONGOOSE_USE_LUA
+static void reg_string(struct lua_State *L, const char *name, const char *val);
+static void reg_int(struct lua_State *L, const char *name, int val);
+static void reg_function(struct lua_State *L, const char *name,
+                         lua_CFunction func, struct mg_connection *conn);
+#endif
+
 #ifdef __cplusplus
 }
 #endif // __cplusplus