diff --git a/projects/mesh_shader/resources/shaders/shader.mesh b/projects/mesh_shader/resources/shaders/shader.mesh
index f26cef3d850835b0c6a57c4b25a4279c2906570f..e92874393bf075d270e57c5eb4db080e4d79fe25 100644
--- a/projects/mesh_shader/resources/shaders/shader.mesh
+++ b/projects/mesh_shader/resources/shaders/shader.mesh
@@ -63,7 +63,7 @@ void main()	{
     
         gl_MeshVerticesNV[workIndex].gl_Position    = mvp * vec4(vertex.position, 1);
         passNormal[workIndex]                       = vertex.normal;
-        // passTaskIndex[workIndex]                    = IN.meshletIndex;
+        passTaskIndex[workIndex]                    = IN.meshletIndex;
     }
     
     // set local indices
diff --git a/projects/mesh_shader/src/main.cpp b/projects/mesh_shader/src/main.cpp
index 699c40263ffb9a9d3e1e07ce95b9a636fa564ebd..b53c9758e27f955332f79d8db821f80d4c21227e 100644
--- a/projects/mesh_shader/src/main.cpp
+++ b/projects/mesh_shader/src/main.cpp
@@ -80,7 +80,8 @@ MeshShaderModelData createMeshShaderModelData(
 		meshlet.indexOffset  = data.localIndices.size();
 		meshlet.vertexOffset = data.vertices.size();
 
-        std::map<uint32_t, uint32_t> globalToLocalIndexMap;
+		std::map<uint32_t, uint32_t> globalToLocalIndexMap;
+		std::vector<uint32_t> globalIndicesOrdered;
 
 		while (true) {
 
@@ -119,6 +120,7 @@ MeshShaderModelData createMeshShaderModelData(
 				else {
 					localIndex = globalToLocalIndexMap.size();
 					globalToLocalIndexMap[globalIndex] = localIndex;
+					globalIndicesOrdered.push_back(globalIndex);
 				}
 
 				data.localIndices.push_back(localIndex);
@@ -129,10 +131,7 @@ MeshShaderModelData createMeshShaderModelData(
 			meshlet.vertexCount += vertexCountToAdd;
 		}
 
-		for (const auto& iterator : globalToLocalIndexMap) {
-			const uint32_t globalIndex = iterator.first;
-			const uint32_t localIndex  = iterator.second;
-
+		for (const uint32_t globalIndex : globalIndicesOrdered) {
 			const Vertex v = inVertices[globalIndex];
 			data.vertices.push_back(v);
 		}
@@ -405,7 +404,7 @@ int main(int argc, const char** argv) {
 				renderPass,
 				meshShaderPipeline,
 				pushConstantData,
-				{ vkcv::MeshShaderDrawcall({descriptorUsage}, meshShaderModelData.meshlets.size()) },
+				{ vkcv::MeshShaderDrawcall({descriptorUsage}, meshShaderModelData.meshlets.size())},
 				{ renderTargets });
 		}
 		else {