diff --git a/ide/vs2022/mimalloc-test-stress.vcxproj b/ide/vs2022/mimalloc-test-stress.vcxproj
index d6af71ce..128a4ff6 100644
--- a/ide/vs2022/mimalloc-test-stress.vcxproj
+++ b/ide/vs2022/mimalloc-test-stress.vcxproj
@@ -282,8 +282,8 @@
-
- {abb5eae7-b3e6-432e-b636-333449892ea6}
+
+ {abb5eae7-b3e6-432e-b636-333449892ea7}
diff --git a/include/mimalloc/prim.h b/include/mimalloc/prim.h
index b0ddc2d0..a722d721 100644
--- a/include/mimalloc/prim.h
+++ b/include/mimalloc/prim.h
@@ -208,7 +208,7 @@ static inline void mi_prim_tls_slot_set(size_t slot, void* value) mi_attr_noexce
#elif _WIN32 && MI_WIN_USE_FIXED_TLS && !defined(MI_WIN_USE_FLS)
// On windows we can store the thread-local heap at a fixed TLS slot to avoid
-// thread-local initialization checks in the fast path.
+// thread-local initialization checks in the fast path.
// We always use the second user TLS slot (the first one is always allocated already),
// and at initialization (`windows/prim.c`) we call TlsAlloc and verify
// we indeed get the second slot (and fail otherwise).
@@ -270,6 +270,9 @@ static inline void mi_prim_tls_slot_set(size_t slot, void* value) mi_attr_noexce
// defined in `init.c`; do not use these directly
+#ifdef _MSC_VER
+__declspec(selectany) // make it part of the comdat section to have faster TLS access (issue #1078)
+#endif
extern mi_decl_thread mi_heap_t* _mi_heap_default; // default heap to allocate from
extern bool _mi_process_is_initialized; // has mi_process_init been called?