Index: libcfa/src/concurrency/locks.hfa
===================================================================
--- libcfa/src/concurrency/locks.hfa	(revision 9e3d123983541be9dd31f15c5ba4910a68e3f200)
+++ libcfa/src/concurrency/locks.hfa	(revision 76a798d60267d1ba1ad46d084a0f9edf5f2b02fc)
@@ -126,7 +126,8 @@
 static inline void lock(mcs_spin_lock & l, mcs_spin_node & n) {
 	mcs_spin_node * prev = __atomic_exchange_n(&l.queue.tail, &n, __ATOMIC_SEQ_CST);
+	n.locked = true;
 	if(prev == 0p) return;
 	prev->next = &n;
-	while(__atomic_load_n(&n.locked, __ATOMIC_SEQ_CST)) Pause();
+	while(__atomic_load_n(&n.locked, __ATOMIC_RELAXED)) Pause();
 }
 
@@ -134,5 +135,5 @@
 	mcs_spin_node * n_ptr = &n;
 	if (__atomic_compare_exchange_n(&l.queue.tail, &n_ptr, 0p, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST)) return;
-	while (__atomic_load_n(&n.next, __ATOMIC_SEQ_CST) == 0p) {}
+	while (__atomic_load_n(&n.next, __ATOMIC_RELAXED) == 0p) {}
 	n.next->locked = false;
 }
