diff --git a/loader/loader.c b/loader/loader.c
index 6d87795..46a7bfc 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -807,12 +807,13 @@
     while (pCi) {
         if (pCi->sType == XGL_STRUCTURE_TYPE_LAYER_CREATE_INFO) {
             const char *name;
-            uint32_t len;
+            uint32_t len, j = 0;
             for (uint32_t i = env_layer_count; i < (env_layer_count + pCi->layerCount); i++) {
                 const char * lib_name = NULL;
-                name = *(pCi->ppActiveLayerNames + i);
-                if (!find_layer_name(icd, gpu_index, name, &lib_name))
-                    return loader_get_layer_env(icd, gpu_index, layerNames);
+                name = *(pCi->ppActiveLayerNames + j);
+                if (!find_layer_name(icd, gpu_index, name, &lib_name)) {
+                    return i;
+                }
                 len = (uint32_t) strlen(name);
                 layerNames[i].layer_name = malloc(len + 1);
                 if (!layerNames[i].layer_name)
@@ -820,12 +821,13 @@
                 strncpy((char *) layerNames[i].layer_name, name, len);
                 layerNames[i].layer_name[len] = '\0';
                 layerNames[i].lib_name = lib_name;
+                j++;
             }
-            return pCi->layerCount + loader_get_layer_env(icd, gpu_index, layerNames);
+            return pCi->layerCount + env_layer_count;
         }
         pCi = pCi->pNext;
     }
-    return loader_get_layer_env(icd, gpu_index, layerNames);
+    return env_layer_count;
 }
 
 static void loader_deactivate_layer(const struct loader_instance *instance)
