diff --git a/mongoose.c b/mongoose.c
index 0ba8b935514cc61465c55aa4c832b1ce60903398..93cac26e58799a47b5f84c0e8427b960bd5504eb 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -1994,7 +1994,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;
 
@@ -2008,7 +2008,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,
@@ -2094,7 +2094,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 85b6056e76686f1c2e327daee6d0b956433839d5..459bf73bd7ee140bddb87e72f29944d7a90b28ca 100644
--- a/mongoose.h
+++ b/mongoose.h
@@ -87,7 +87,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);