diff --git a/src/egl_context.c b/src/egl_context.c
index 8915a6e1..a0743f3d 100644
--- a/src/egl_context.c
+++ b/src/egl_context.c
@@ -399,6 +399,8 @@ GLFWbool _glfwInitEGL(void)
         extensionSupportedEGL("EGL_KHR_create_context_no_error");
     _glfw.egl.KHR_gl_colorspace =
         extensionSupportedEGL("EGL_KHR_gl_colorspace");
+    _glfw.egl.KHR_get_all_proc_addresses =
+        extensionSupportedEGL("EGL_KHR_get_all_proc_addresses");
 
     return GLFW_TRUE;
 }
@@ -583,6 +585,7 @@ GLFWbool _glfwCreateContextEGL(_GLFWwindow* window,
     window->context.egl.config = config;
 
     // Load the appropriate client library
+    if (!_glfw.egl.KHR_get_all_proc_addresses)
     {
         int i;
         const char** sonames;
diff --git a/src/egl_context.h b/src/egl_context.h
index 39bd575f..dbe99340 100644
--- a/src/egl_context.h
+++ b/src/egl_context.h
@@ -176,6 +176,7 @@ typedef struct _GLFWlibraryEGL
     GLFWbool        KHR_create_context;
     GLFWbool        KHR_create_context_no_error;
     GLFWbool        KHR_gl_colorspace;
+    GLFWbool        KHR_get_all_proc_addresses;
 
     void*           handle;