diff --git a/mongoose.c b/mongoose.c
index b1006b04311ad3c6253d1c01981871c0dd8f7cdf..92222e6162e807e27871285784c17a2f90d6323d 100644
--- a/mongoose.c
+++ b/mongoose.c
@@ -1196,6 +1196,7 @@ enum {
 #ifndef MONGOOSE_NO_DIRECTORY_LISTING
   ENABLE_DIRECTORY_LISTING,
 #endif
+  ENABLE_PROXY,
 #endif
   EXTRA_MIME_TYPES,
 #if !defined(MONGOOSE_NO_FILESYSTEM) && !defined(MONGOOSE_NO_AUTH)
@@ -1238,6 +1239,7 @@ static const char *static_config_options[] = {
 #ifndef MONGOOSE_NO_DIRECTORY_LISTING
   "enable_directory_listing", "yes",
 #endif
+  "enable_proxy", NULL,
 #endif
   "extra_mime_types", NULL,
 #if !defined(MONGOOSE_NO_FILESYSTEM) && !defined(MONGOOSE_NO_AUTH)
@@ -4198,6 +4200,7 @@ static void open_local_endpoint(struct connection *conn, int skip_user) {
   file_stat_t st;
   int exists = 0;
 #endif
+  const char *pxy = conn->server->config_options[ENABLE_PROXY];
 
   // If EP_USER was set in a prev call, reset it
   conn->endpoint_type = EP_NONE;
@@ -4226,8 +4229,9 @@ static void open_local_endpoint(struct connection *conn, int skip_user) {
     return;
   }
 
-  if (strcmp(conn->mg_conn.request_method, "CONNECT") == 0 ||
-      memcmp(conn->mg_conn.uri, "http", 4) == 0) {
+  if (pxy != NULL && !strcmp(pxy, "yes") &&
+      (strcmp(conn->mg_conn.request_method, "CONNECT") == 0 ||
+       memcmp(conn->mg_conn.uri, "http", 4) == 0)) {
     proxify_connection(conn);
     return;
   }