diff --git a/mongoose.c b/mongoose.c
index bbfa99ab4a1aa27de0a34b6ae7d78ebd0cb399b8..180b9611b07d0aa8e8b7dc2acd508b0d82e4a33c 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -1993,7 +1993,7 @@ static void write_to_socket(struct connection *conn) {
   }
 }
 
-const char *mg_get_mime_type(const char *path) {
+const char *mg_get_mime_type(const char *path, const char *default_mime_type) {
   const char *ext;
   size_t i, path_len;
 
@@ -2007,7 +2007,7 @@ const char *mg_get_mime_type(const char *path) {
     }
   }
 
-  return "text/plain";
+  return default_mime_type;
 }
 
 static struct uri_handler *find_uri_handler(struct mg_server *server,
@@ -2093,7 +2093,7 @@ static void get_mime_type(const struct mg_server *server, const char *path,
     }
   }
 
-  vec->ptr = mg_get_mime_type(path);
+  vec->ptr = mg_get_mime_type(path, "text/plain");
   vec->len = strlen(vec->ptr);
 }
 
diff --git a/mongoose.h b/mongoose.h
index 7121f998821f031e29f0269170a90f2a9ceea47a..c8d8de315f52910c6be9f12c66c2388ccdb857b3 100644
--- a/mongoose.h
+++ b/mongoose.h
@@ -86,7 +86,7 @@ int mg_printf(struct mg_connection *conn, const char *fmt, ...);
 
 
 const char *mg_get_header(const struct mg_connection *, const char *name);
-const char *mg_get_mime_type(const char *file_name);
+const char *mg_get_mime_type(const char *file_name, const char *default_mime_type);
 int mg_get_var(const struct mg_connection *conn, const char *var_name,
                char *buf, size_t buf_len);
 int mg_parse_header(const char *hdr, const char *var_name, char *buf, size_t);