diff --git a/loader/loader.c b/loader/loader.c
index a5b8e48..1f7adc1 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -1381,9 +1381,10 @@
         return addr;
 
     /* return any extension global entrypoints */
-    addr = wsi_lunarg_GetInstanceProcAddr(instance, pName);
+    bool wsi_enabled;
+    addr = wsi_lunarg_GetInstanceProcAddr(instance, pName, &wsi_enabled);
     if (addr)
-        return addr;
+        return (wsi_enabled) ? addr : NULL;
 
     /* return the instance dispatch table entrypoint for extensions */
     const VkLayerInstanceDispatchTable *disp_table = * (VkLayerInstanceDispatchTable **) instance;
@@ -1413,9 +1414,10 @@
     }
 
     /* return any extension device entrypoints the loader knows about */
-    addr = wsi_lunarg_GetDeviceProcAddr(device, pName);
+    bool wsi_enabled;
+    addr = wsi_lunarg_GetDeviceProcAddr(device, pName, &wsi_enabled);
     if (addr)
-        return addr;
+        return (wsi_enabled) ? addr : NULL;
 
     /* return the dispatch table entrypoint for the fastest case */
     const VkLayerDispatchTable *disp_table = * (VkLayerDispatchTable **) device;
diff --git a/loader/wsi_lunarg.c b/loader/wsi_lunarg.c
index 14e3cb9..31f6985 100644
--- a/loader/wsi_lunarg.c
+++ b/loader/wsi_lunarg.c
@@ -156,13 +156,13 @@
 
 void *wsi_lunarg_GetInstanceProcAddr(
         VkInstance                              instance,
-        const char*                             pName)
+        const char*                             pName,
+        bool                                    *enabled)
 {
     if (instance == VK_NULL_HANDLE)
         return NULL;
 
-    if (wsi_enabled == false)
-	return NULL;
+    *enabled = wsi_enabled;
 
     /* since two of these entrypoints must be loader handled will report all */
     if (!strcmp(pName, "vkGetDisplayInfoWSI"))
@@ -181,13 +181,13 @@
 
 void *wsi_lunarg_GetDeviceProcAddr(
         VkDevice                                device,
-        const char*                             name)
+        const char*                             name,
+        bool                                    *enabled)
 {
     if (device == VK_NULL_HANDLE)
         return NULL;
 
-    if (wsi_enabled == false)
-	    return NULL;
+    *enabled = wsi_enabled;
 
     /* only handle device entrypoints that are loader special cases */
     if (!strcmp(name, "vkCreateSwapChainWSI"))
diff --git a/loader/wsi_lunarg.h b/loader/wsi_lunarg.h
index fd1b6da..02ff37e 100644
--- a/loader/wsi_lunarg.h
+++ b/loader/wsi_lunarg.h
@@ -39,8 +39,10 @@
 
 void *wsi_lunarg_GetInstanceProcAddr(
         VkInstance                              instance,
-        const char*                             pName);
+        const char*                             pName,
+        bool*                                   enabled);
 
 void *wsi_lunarg_GetDeviceProcAddr(
         VkDevice                                device,
-        const char*                             pName);
+        const char*                             pName,
+        bool*                                   enabled);
