Index: cpukit/libnetworking/rtems/rtems_glue.c
===================================================================
--- cpukit/libnetworking/rtems/rtems_glue.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/libnetworking/rtems/rtems_glue.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -376,5 +376,5 @@
 		rtems_panic ("rtems-net: network sema obtain: network not initialised\n");
 	_Thread_queue_Context_initialize(&queue_context);
-	_ISR_lock_ISR_disable(&queue_context.Lock_context);
+	_ISR_lock_ISR_disable(&queue_context.Lock_context.Lock_context);
 	_Thread_queue_Context_set_no_timeout( &queue_context );
 	status = _CORE_recursive_mutex_Seize (
@@ -410,5 +410,5 @@
 		rtems_panic ("rtems-net: network sema obtain: network not initialised\n");
 	_Thread_queue_Context_initialize(&queue_context);
-	_ISR_lock_ISR_disable(&queue_context.Lock_context);
+	_ISR_lock_ISR_disable(&queue_context.Lock_context.Lock_context);
 	status = _CORE_recursive_mutex_Surrender(
 		&the_networkSemaphore->Core_control.Mutex.Recursive,
Index: cpukit/posix/include/rtems/posix/barrierimpl.h
===================================================================
--- cpukit/posix/include/rtems/posix/barrierimpl.h	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/posix/include/rtems/posix/barrierimpl.h	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -72,5 +72,5 @@
   return (POSIX_Barrier_Control *) _Objects_Get(
     (Objects_Id) *barrier,
-    &queue_context->Lock_context,
+    &queue_context->Lock_context.Lock_context,
     &_POSIX_Barrier_Information
   );
Index: cpukit/posix/include/rtems/posix/mqueueimpl.h
===================================================================
--- cpukit/posix/include/rtems/posix/mqueueimpl.h	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/posix/include/rtems/posix/mqueueimpl.h	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -115,5 +115,5 @@
   return (POSIX_Message_queue_Control *) _Objects_Get(
     id,
-    &queue_context->Lock_context,
+    &queue_context->Lock_context.Lock_context,
     &_POSIX_Message_queue_Information
   );
Index: cpukit/posix/include/rtems/posix/posixapi.h
===================================================================
--- cpukit/posix/include/rtems/posix/posixapi.h	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/posix/include/rtems/posix/posixapi.h	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -106,6 +106,9 @@
     return NULL; \
   } \
-  the_object = \
-    _Objects_Get( (Objects_Id) *id, &queue_context->Lock_context, info ); \
+  the_object = _Objects_Get( \
+    (Objects_Id) *id, \
+    &queue_context->Lock_context.Lock_context, \
+    info \
+  ); \
   if ( the_object == NULL ) { \
     _Once_Lock(); \
@@ -114,6 +117,9 @@
     } \
     _Once_Unlock(); \
-    the_object = \
-      _Objects_Get( (Objects_Id) *id, &queue_context->Lock_context, info ); \
+    the_object = _Objects_Get( \
+      (Objects_Id) *id, \
+      &queue_context->Lock_context.Lock_context, \
+      info \
+    ); \
   } \
   return (type *) the_object
Index: cpukit/posix/include/rtems/posix/semaphoreimpl.h
===================================================================
--- cpukit/posix/include/rtems/posix/semaphoreimpl.h	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/posix/include/rtems/posix/semaphoreimpl.h	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -65,5 +65,5 @@
   return (POSIX_Semaphore_Control *) _Objects_Get(
     (Objects_Id) *id,
-    &queue_context->Lock_context,
+    &queue_context->Lock_context.Lock_context,
     &_POSIX_Semaphore_Information
   );
Index: cpukit/posix/src/condwaitsupp.c
===================================================================
--- cpukit/posix/src/condwaitsupp.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/posix/src/condwaitsupp.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -93,5 +93,7 @@
   the_cond->mutex = *mutex;
 
-  cpu_self = _Thread_Dispatch_disable_critical( &queue_context.Lock_context );
+  cpu_self = _Thread_Dispatch_disable_critical(
+    &queue_context.Lock_context.Lock_context
+  );
   executing = _Per_CPU_Get_executing( cpu_self );
 
Index: cpukit/posix/src/mqueuerecvsupp.c
===================================================================
--- cpukit/posix/src/mqueuerecvsupp.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/posix/src/mqueuerecvsupp.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -59,10 +59,10 @@
 
   if ( ( the_mq->oflag & O_ACCMODE ) == O_WRONLY ) {
-    _ISR_lock_ISR_enable( &queue_context.Lock_context );
+    _ISR_lock_ISR_enable( &queue_context.Lock_context.Lock_context );
     rtems_set_errno_and_return_minus_one( EBADF );
   }
 
   if ( msg_len < the_mq->Message_queue.maximum_message_size ) {
-    _ISR_lock_ISR_enable( &queue_context.Lock_context );
+    _ISR_lock_ISR_enable( &queue_context.Lock_context.Lock_context );
     rtems_set_errno_and_return_minus_one( EMSGSIZE );
   }
Index: cpukit/posix/src/mqueuesendsupp.c
===================================================================
--- cpukit/posix/src/mqueuesendsupp.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/posix/src/mqueuesendsupp.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -66,5 +66,5 @@
 
   if ( ( the_mq->oflag & O_ACCMODE ) == O_RDONLY ) {
-    _ISR_lock_ISR_enable( &queue_context.Lock_context );
+    _ISR_lock_ISR_enable( &queue_context.Lock_context.Lock_context );
     rtems_set_errno_and_return_minus_one( EBADF );
   }
Index: cpukit/posix/src/pthreadgetschedparam.c
===================================================================
--- cpukit/posix/src/pthreadgetschedparam.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/posix/src/pthreadgetschedparam.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -46,5 +46,5 @@
   }
 
-  the_thread = _Thread_Get( thread, &queue_context.Lock_context );
+  the_thread = _Thread_Get( thread, &queue_context.Lock_context.Lock_context );
 
   if ( the_thread == NULL ) {
Index: cpukit/posix/src/pthreadjoin.c
===================================================================
--- cpukit/posix/src/pthreadjoin.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/posix/src/pthreadjoin.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -42,5 +42,5 @@
   _Thread_queue_Context_set_expected_level( &queue_context, 1 );
   _Thread_queue_Context_set_no_timeout( &queue_context );
-  the_thread = _Thread_Get( thread, &queue_context.Lock_context );
+  the_thread = _Thread_Get( thread, &queue_context.Lock_context.Lock_context );
 
   if ( the_thread == NULL ) {
@@ -52,12 +52,15 @@
 
   if ( executing == the_thread ) {
-    _ISR_lock_ISR_enable( &queue_context.Lock_context );
+    _ISR_lock_ISR_enable( &queue_context.Lock_context.Lock_context );
     return EDEADLK;
   }
 
-  _Thread_State_acquire_critical( the_thread, &queue_context.Lock_context );
+  _Thread_State_acquire_critical(
+    the_thread,
+    &queue_context.Lock_context.Lock_context
+  );
 
   if ( !_Thread_Is_joinable( the_thread ) ) {
-    _Thread_State_release( the_thread, &queue_context.Lock_context );
+    _Thread_State_release( the_thread, &queue_context.Lock_context.Lock_context );
     return EINVAL;
   }
@@ -66,6 +69,9 @@
     value = the_thread->Life.exit_value;
     _Thread_Clear_state_locked( the_thread, STATES_WAITING_FOR_JOIN_AT_EXIT );
-    _Thread_Dispatch_disable_with_CPU( cpu_self, &queue_context.Lock_context );
-    _Thread_State_release( the_thread, &queue_context.Lock_context );
+    _Thread_Dispatch_disable_with_CPU(
+      cpu_self,
+      &queue_context.Lock_context.Lock_context
+    );
+    _Thread_State_release( the_thread, &queue_context.Lock_context.Lock_context );
     _Thread_Dispatch_enable( cpu_self );
   } else {
Index: cpukit/posix/src/semunlink.c
===================================================================
--- cpukit/posix/src/semunlink.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/posix/src/semunlink.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -41,5 +41,5 @@
   _POSIX_Semaphore_Namespace_remove( the_semaphore );
 
-  _ISR_lock_ISR_disable( &queue_context.Lock_context );
+  _ISR_lock_ISR_disable( &queue_context.Lock_context.Lock_context );
   _CORE_semaphore_Acquire_critical( &the_semaphore->Semaphore, &queue_context );
   the_semaphore->linked = false;
Index: cpukit/rtems/include/rtems/rtems/barrierimpl.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/barrierimpl.h	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/rtems/include/rtems/rtems/barrierimpl.h	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -76,6 +76,9 @@
 {
   _Thread_queue_Context_initialize( queue_context );
-  return (Barrier_Control *)
-    _Objects_Get( id, &queue_context->Lock_context, &_Barrier_Information );
+  return (Barrier_Control *) _Objects_Get(
+    id,
+    &queue_context->Lock_context.Lock_context,
+    &_Barrier_Information
+  );
 }
 
Index: cpukit/rtems/include/rtems/rtems/messageimpl.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/messageimpl.h	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/rtems/include/rtems/rtems/messageimpl.h	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -96,5 +96,5 @@
   return (Message_queue_Control *) _Objects_Get(
     id,
-    &queue_context->Lock_context,
+    &queue_context->Lock_context.Lock_context,
     &_Message_queue_Information
   );
Index: cpukit/rtems/include/rtems/rtems/semimpl.h
===================================================================
--- cpukit/rtems/include/rtems/rtems/semimpl.h	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/rtems/include/rtems/rtems/semimpl.h	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -100,5 +100,5 @@
   return (Semaphore_Control *) _Objects_Get(
     id,
-    &queue_context->Lock_context,
+    &queue_context->Lock_context.Lock_context,
     &_Semaphore_Information
   );
Index: cpukit/rtems/src/semcreate.c
===================================================================
--- cpukit/rtems/src/semcreate.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/rtems/src/semcreate.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -172,5 +172,5 @@
 
           _Thread_queue_Context_initialize( &queue_context );
-          _ISR_lock_ISR_disable( &queue_context.Lock_context );
+          _ISR_lock_ISR_disable( &queue_context.Lock_context.Lock_context );
           _CORE_mutex_Acquire_critical(
             &the_semaphore->Core_control.Mutex.Recursive.Mutex,
Index: cpukit/rtems/src/tasksetscheduler.c
===================================================================
--- cpukit/rtems/src/tasksetscheduler.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/rtems/src/tasksetscheduler.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -46,5 +46,5 @@
 
   _Thread_queue_Context_initialize( &queue_context );
-  the_thread = _Thread_Get( task_id, &queue_context.Lock_context );
+  the_thread = _Thread_Get( task_id, &queue_context.Lock_context.Lock_context );
 
   if ( the_thread == NULL ) {
@@ -58,5 +58,7 @@
   }
 
-  cpu_self = _Thread_Dispatch_disable_critical( &queue_context.Lock_context );
+  cpu_self = _Thread_Dispatch_disable_critical(
+    &queue_context.Lock_context.Lock_context
+  );
 
   _Thread_Wait_acquire_critical( the_thread, &queue_context );
Index: cpukit/score/include/rtems/score/coremuteximpl.h
===================================================================
--- cpukit/score/include/rtems/score/coremuteximpl.h	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/include/rtems/score/coremuteximpl.h	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -409,5 +409,7 @@
   }
 
-  cpu_self = _Thread_Dispatch_disable_critical( &queue_context->Lock_context );
+  cpu_self = _Thread_Dispatch_disable_critical(
+    &queue_context->Lock_context.Lock_context
+  );
   _CORE_mutex_Release( &the_mutex->Recursive.Mutex, queue_context );
   _Thread_Raise_priority( owner, priority_ceiling );
@@ -525,5 +527,5 @@
       &the_mutex->Recursive.Mutex.Wait_queue.Queue,
       new_owner,
-      &queue_context->Lock_context
+      &queue_context->Lock_context.Lock_context
     );
   } else {
Index: cpukit/score/include/rtems/score/mrspimpl.h
===================================================================
--- cpukit/score/include/rtems/score/mrspimpl.h	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/include/rtems/score/mrspimpl.h	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -127,5 +127,7 @@
   _Scheduler_Thread_change_help_state( new_owner, SCHEDULER_HELP_ACTIVE_OWNER );
 
-  cpu_self = _Thread_Dispatch_disable_critical( &queue_context->Lock_context );
+  cpu_self = _Thread_Dispatch_disable_critical(
+    &queue_context->Lock_context.Lock_context
+  );
   _MRSP_Release( mrsp, queue_context );
 
@@ -208,5 +210,5 @@
 
   _Thread_queue_Context_initialize( &queue_context );
-  _ISR_lock_ISR_disable( &queue_context.Lock_context );
+  _ISR_lock_ISR_disable( &queue_context.Lock_context.Lock_context );
   _MRSP_Acquire_critical( mrsp, &queue_context );
 
@@ -271,5 +273,7 @@
   _MRSP_Giant_release( &giant_lock_context );
 
-  cpu_self = _Thread_Dispatch_disable_critical( &queue_context->Lock_context );
+  cpu_self = _Thread_Dispatch_disable_critical(
+    &queue_context->Lock_context.Lock_context
+  );
   _MRSP_Release( mrsp, queue_context );
 
@@ -331,5 +335,5 @@
 
   if ( !priority_ok) {
-    _ISR_lock_ISR_enable( &queue_context->Lock_context );
+    _ISR_lock_ISR_enable( &queue_context->Lock_context.Lock_context );
     return STATUS_MUTEX_CEILING_VIOLATED;
   }
@@ -378,5 +382,5 @@
 
   if ( _Resource_Get_owner( &mrsp->Resource ) != &executing->Resource_node ) {
-    _ISR_lock_ISR_enable( &queue_context->Lock_context );
+    _ISR_lock_ISR_enable( &queue_context->Lock_context.Lock_context );
     return STATUS_NOT_OWNER;
   }
@@ -388,5 +392,5 @@
     )
   ) {
-    _ISR_lock_ISR_enable( &queue_context->Lock_context );
+    _ISR_lock_ISR_enable( &queue_context->Lock_context.Lock_context );
     return STATUS_RELEASE_ORDER_VIOLATION;
   }
@@ -429,5 +433,7 @@
   _MRSP_Giant_release( &giant_lock_context );
 
-  cpu_self = _Thread_Dispatch_disable_critical( &queue_context->Lock_context );
+  cpu_self = _Thread_Dispatch_disable_critical(
+    &queue_context->Lock_context.Lock_context
+  );
   _MRSP_Release( mrsp, queue_context );
 
Index: cpukit/score/include/rtems/score/threadimpl.h
===================================================================
--- cpukit/score/include/rtems/score/threadimpl.h	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/include/rtems/score/threadimpl.h	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -1032,14 +1032,14 @@
 #if defined(RTEMS_SMP)
 #define THREAD_QUEUE_CONTEXT_OF_REQUEST( node ) \
-  RTEMS_CONTAINER_OF( node, Thread_queue_Context, Wait.Gate.Node )
+  RTEMS_CONTAINER_OF( node, Thread_queue_Context, Lock_context.Wait.Gate.Node )
 
 RTEMS_INLINE_ROUTINE void _Thread_Wait_remove_request_locked(
-  Thread_Control       *the_thread,
-  Thread_queue_Context *queue_context
+  Thread_Control            *the_thread,
+  Thread_queue_Lock_context *queue_lock_context
 )
 {
   Chain_Node *first;
 
-  _Chain_Extract_unprotected( &queue_context->Wait.Gate.Node );
+  _Chain_Extract_unprotected( &queue_lock_context->Wait.Gate.Node );
   first = _Chain_First( &the_thread->Wait.Lock.Pending_requests );
 
@@ -1050,6 +1050,6 @@
 
 RTEMS_INLINE_ROUTINE void _Thread_Wait_acquire_queue_critical(
-  Thread_queue_Queue   *queue,
-  Thread_queue_Context *queue_context
+  Thread_queue_Queue        *queue,
+  Thread_queue_Lock_context *queue_lock_context
 )
 {
@@ -1057,16 +1057,16 @@
     queue,
     &_Thread_Executing->Potpourri_stats,
-    &queue_context->Lock_context
+    &queue_lock_context->Lock_context
   );
 }
 
 RTEMS_INLINE_ROUTINE void _Thread_Wait_release_queue_critical(
-  Thread_queue_Queue   *queue,
-  Thread_queue_Context *queue_context
+  Thread_queue_Queue        *queue,
+  Thread_queue_Lock_context *queue_lock_context
 )
 {
   _Thread_queue_Queue_release_critical(
     queue,
-    &queue_context->Lock_context
+    &queue_lock_context->Lock_context
   );
 }
@@ -1093,28 +1093,34 @@
   _Thread_Wait_acquire_default_critical(
     the_thread,
-    &queue_context->Lock_context
+    &queue_context->Lock_context.Lock_context
   );
 
   queue = the_thread->Wait.queue;
-  queue_context->Wait.queue = queue;
+  queue_context->Lock_context.Wait.queue = queue;
 
   if ( queue != NULL ) {
     _Thread_queue_Gate_add(
       &the_thread->Wait.Lock.Pending_requests,
-      &queue_context->Wait.Gate
+      &queue_context->Lock_context.Wait.Gate
     );
     _Thread_Wait_release_default_critical(
       the_thread,
-      &queue_context->Lock_context
+      &queue_context->Lock_context.Lock_context
     );
-    _Thread_Wait_acquire_queue_critical( queue, queue_context );
-
-    if ( queue_context->Wait.queue == NULL ) {
-      _Thread_Wait_release_queue_critical( queue, queue_context );
+    _Thread_Wait_acquire_queue_critical( queue, &queue_context->Lock_context );
+
+    if ( queue_context->Lock_context.Wait.queue == NULL ) {
+      _Thread_Wait_release_queue_critical(
+        queue,
+        &queue_context->Lock_context
+      );
       _Thread_Wait_acquire_default_critical(
+        the_thread,
+        &queue_context->Lock_context.Lock_context
+      );
+      _Thread_Wait_remove_request_locked(
         the_thread,
         &queue_context->Lock_context
       );
-      _Thread_Wait_remove_request_locked( the_thread, queue_context );
       _Assert( the_thread->Wait.queue == NULL );
     }
@@ -1139,5 +1145,5 @@
 {
   _Thread_queue_Context_initialize( queue_context );
-  _ISR_lock_ISR_disable( &queue_context->Lock_context );
+  _ISR_lock_ISR_disable( &queue_context->Lock_context.Lock_context );
   _Thread_Wait_acquire_critical( the_thread, queue_context );
 }
@@ -1161,19 +1167,23 @@
   Thread_queue_Queue *queue;
 
-  queue = queue_context->Wait.queue;
+  queue = queue_context->Lock_context.Wait.queue;
 
   if ( queue != NULL ) {
-    _Thread_Wait_release_queue_critical( queue, queue_context );
+    _Thread_Wait_release_queue_critical(
+      queue, &queue_context->Lock_context
+    );
     _Thread_Wait_acquire_default_critical(
+      the_thread,
+      &queue_context->Lock_context.Lock_context
+    );
+    _Thread_Wait_remove_request_locked(
       the_thread,
       &queue_context->Lock_context
     );
-
-    _Thread_Wait_remove_request_locked( the_thread, queue_context );
   }
 
   _Thread_Wait_release_default_critical(
     the_thread,
-    &queue_context->Lock_context
+    &queue_context->Lock_context.Lock_context
   );
 #else
@@ -1197,5 +1207,5 @@
 {
   _Thread_Wait_release_critical( the_thread, queue_context );
-  _ISR_lock_ISR_enable( &queue_context->Lock_context );
+  _ISR_lock_ISR_enable( &queue_context->Lock_context.Lock_context );
 }
 
@@ -1244,10 +1254,10 @@
  *
  * @param[in] the_thread The thread.
- * @param[in] queue_context The thread queue context used for corresponding
- *   _Thread_Wait_acquire().
+ * @param[in] queue_lock_context The thread queue lock context used for
+ *   corresponding _Thread_Wait_acquire().
  */
 RTEMS_INLINE_ROUTINE void _Thread_Wait_remove_request(
-  Thread_Control       *the_thread,
-  Thread_queue_Context *queue_context
+  Thread_Control            *the_thread,
+  Thread_queue_Lock_context *queue_lock_context
 )
 {
@@ -1256,9 +1266,9 @@
 
   _Thread_Wait_acquire_default( the_thread, &lock_context );
-  _Thread_Wait_remove_request_locked( the_thread, queue_context );
+  _Thread_Wait_remove_request_locked( the_thread, queue_lock_context );
   _Thread_Wait_release_default( the_thread, &lock_context );
 #else
   (void) the_thread;
-  (void) queue_context;
+  (void) queue_lock_context;
 #endif
 }
@@ -1295,5 +1305,5 @@
 
       queue_context = THREAD_QUEUE_CONTEXT_OF_REQUEST( node );
-      queue_context->Wait.queue = NULL;
+      queue_context->Lock_context.Wait.queue = NULL;
 
       node = _Chain_Next( node );
@@ -1364,5 +1374,5 @@
 #if defined(RTEMS_SMP)
   if ( queue != NULL ) {
-    _Assert( queue_context->Wait.queue == queue );
+    _Assert( queue_context->Lock_context.Wait.queue == queue );
 #endif
 
@@ -1371,6 +1381,6 @@
 
 #if defined(RTEMS_SMP)
-    _Assert( queue_context->Wait.queue == NULL );
-    queue_context->Wait.queue = queue;
+    _Assert( queue_context->Lock_context.Wait.queue == NULL );
+    queue_context->Lock_context.Wait.queue = queue;
   }
 #endif
Index: cpukit/score/include/rtems/score/threadq.h
===================================================================
--- cpukit/score/include/rtems/score/threadq.h	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/include/rtems/score/threadq.h	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -96,9 +96,4 @@
 #endif
 
-/**
- * @brief Thread queue context for the thread queue methods.
- *
- * @see _Thread_queue_Context_initialize().
- */
 typedef struct {
   /**
@@ -107,48 +102,4 @@
    */
   ISR_lock_Context Lock_context;
-
-  /**
-   * @brief The expected thread dispatch disable level for
-   * _Thread_queue_Enqueue_critical().
-   *
-   * In case the actual thread dispatch disable level is not equal to the
-   * expected level, then a fatal error occurs.
-   */
-  uint32_t expected_thread_dispatch_disable_level;
-
-  /**
-   * @brief The clock discipline for the interval timeout.
-   * Use WATCHDOG_NO_TIMEOUT to block indefinitely.
-   */
-  Watchdog_Discipline timeout_discipline;
-
-  /**
-   * @brief Interval to wait.
-   */
-  uint64_t timeout;
-
-  /**
-   * @brief Invoked in case of a detected deadlock.
-   *
-   * Must be initialized for _Thread_queue_Enqueue_critical() in case the
-   * thread queue may have an owner, e.g. for mutex objects.
-   *
-   * @see _Thread_queue_Context_set_deadlock_callout().
-   */
-  Thread_queue_Deadlock_callout deadlock_callout;
-
-#if defined(RTEMS_MULTIPROCESSING)
-  /**
-   * @brief Callout to unblock the thread in case it is actually a thread
-   * proxy.
-   *
-   * This field is only used on multiprocessing configurations.  Used by
-   * thread queue extract and unblock methods for objects with multiprocessing
-   * (MP) support.
-   *
-   * @see _Thread_queue_Context_set_MP_callout().
-   */
-  Thread_queue_MP_callout mp_callout;
-#endif
 
 #if defined(RTEMS_SMP)
@@ -170,5 +121,5 @@
   } Wait;
 #endif
-} Thread_queue_Context;
+} Thread_queue_Lock_context;
 
 #if defined(RTEMS_SMP)
@@ -206,10 +157,67 @@
 
   /**
-   * @brief The queue context used to acquire the thread wait lock of the
+   * @brief The queue lock context used to acquire the thread wait lock of the
    * owner.
    */
-  Thread_queue_Context Queue_context;
+  Thread_queue_Lock_context Lock_context;
 } Thread_queue_Link;
 #endif
+
+/**
+ * @brief Thread queue context for the thread queue methods.
+ *
+ * @see _Thread_queue_Context_initialize().
+ */
+typedef struct {
+  /**
+   * @brief The lock context for the thread queue acquire and release
+   * operations.
+   */
+  Thread_queue_Lock_context Lock_context;
+
+  /**
+   * @brief The expected thread dispatch disable level for
+   * _Thread_queue_Enqueue_critical().
+   *
+   * In case the actual thread dispatch disable level is not equal to the
+   * expected level, then a fatal error occurs.
+   */
+  uint32_t expected_thread_dispatch_disable_level;
+
+  /**
+   * @brief The clock discipline for the interval timeout.
+   * Use WATCHDOG_NO_TIMEOUT to block indefinitely.
+   */
+  Watchdog_Discipline timeout_discipline;
+
+  /**
+   * @brief Interval to wait.
+   */
+  uint64_t timeout;
+
+  /**
+   * @brief Invoked in case of a detected deadlock.
+   *
+   * Must be initialized for _Thread_queue_Enqueue_critical() in case the
+   * thread queue may have an owner, e.g. for mutex objects.
+   *
+   * @see _Thread_queue_Context_set_deadlock_callout().
+   */
+  Thread_queue_Deadlock_callout deadlock_callout;
+
+#if defined(RTEMS_MULTIPROCESSING)
+  /**
+   * @brief Callout to unblock the thread in case it is actually a thread
+   * proxy.
+   *
+   * This field is only used on multiprocessing configurations.  Used by
+   * thread queue extract and unblock methods for objects with multiprocessing
+   * (MP) support.
+   *
+   * @see _Thread_queue_Context_set_MP_callout().
+   */
+  Thread_queue_MP_callout mp_callout;
+#endif
+} Thread_queue_Context;
 
 /**
Index: cpukit/score/include/rtems/score/threadqimpl.h
===================================================================
--- cpukit/score/include/rtems/score/threadqimpl.h	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/include/rtems/score/threadqimpl.h	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -373,5 +373,5 @@
   _Thread_queue_Do_acquire_critical(
     the_thread_queue,
-    &queue_context->Lock_context
+    &queue_context->Lock_context.Lock_context
   );
 }
@@ -382,5 +382,5 @@
 )
 {
-  _ISR_lock_ISR_disable( &queue_context->Lock_context );
+  _ISR_lock_ISR_disable( &queue_context->Lock_context.Lock_context );
   _Thread_queue_Acquire_critical( the_thread_queue, queue_context );
 }
@@ -423,5 +423,5 @@
   _Thread_queue_Do_release_critical(
     the_thread_queue,
-    &queue_context->Lock_context
+    &queue_context->Lock_context.Lock_context
   );
 }
@@ -433,5 +433,5 @@
 {
   _Thread_queue_Release_critical( the_thread_queue, queue_context );
-  _ISR_lock_ISR_enable( &queue_context->Lock_context );
+  _ISR_lock_ISR_enable( &queue_context->Lock_context.Lock_context );
 }
 
@@ -512,5 +512,5 @@
  *
  *   _Thread_queue_Context_initialize( &queue_context );
- *   _Thread_queue_Acquire( &mutex->Queue, &queue_context.Lock_context );
+ *   _Thread_queue_Acquire( &mutex->Queue, queue_context );
  *
  *   executing = _Thread_Executing;
@@ -518,5 +518,5 @@
  *   if ( mutex->owner == NULL ) {
  *     mutex->owner = executing;
- *     _Thread_queue_Release( &mutex->Queue, &queue_context.Lock_context );
+ *     _Thread_queue_Release( &mutex->Queue, queue_context );
  *   } else {
  *     _Thread_queue_Context_set_expected_level( &queue_context, 1 );
Index: cpukit/score/src/apimutexlock.c
===================================================================
--- cpukit/score/src/apimutexlock.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/src/apimutexlock.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -33,5 +33,5 @@
 
   _Thread_queue_Context_initialize( &queue_context );
-  _ISR_lock_ISR_disable( &queue_context.Lock_context );
+  _ISR_lock_ISR_disable( &queue_context.Lock_context.Lock_context );
   _Thread_queue_Context_set_no_timeout( &queue_context );
   _CORE_recursive_mutex_Seize(
Index: cpukit/score/src/apimutexunlock.c
===================================================================
--- cpukit/score/src/apimutexunlock.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/src/apimutexunlock.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -33,5 +33,5 @@
 
   _Thread_queue_Context_initialize( &queue_context );
-  _ISR_lock_ISR_disable( &queue_context.Lock_context );
+  _ISR_lock_ISR_disable( &queue_context.Lock_context.Lock_context );
   _CORE_recursive_mutex_Surrender(
     &the_mutex->Mutex,
Index: cpukit/score/src/condition.c
===================================================================
--- cpukit/score/src/condition.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/src/condition.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -64,5 +64,5 @@
     &condition->Queue.Queue,
     &executing->Potpourri_stats,
-    &queue_context->Lock_context
+    &queue_context->Lock_context.Lock_context
   );
 
@@ -77,5 +77,5 @@
   _Thread_queue_Queue_release(
     &condition->Queue.Queue,
-    &queue_context->Lock_context
+    &queue_context->Lock_context.Lock_context
   );
 }
@@ -92,5 +92,7 @@
   condition = _Condition_Get( _condition );
   executing = _Condition_Queue_acquire_critical( condition, queue_context );
-  cpu_self = _Thread_Dispatch_disable_critical( &queue_context->Lock_context );
+  cpu_self = _Thread_Dispatch_disable_critical(
+    &queue_context->Lock_context.Lock_context
+  );
 
   _Thread_queue_Context_set_expected_level( queue_context, 2 );
@@ -115,5 +117,5 @@
 
   _Thread_queue_Context_initialize( &queue_context );
-  _ISR_lock_ISR_disable( &queue_context.Lock_context );
+  _ISR_lock_ISR_disable( &queue_context.Lock_context.Lock_context );
   _Thread_queue_Context_set_no_timeout( &queue_context );
   cpu_self = _Condition_Do_wait(
@@ -140,13 +142,13 @@
 
   _Thread_queue_Context_initialize( &queue_context );
-  _ISR_lock_ISR_disable( &queue_context.Lock_context );
+  _ISR_lock_ISR_disable( &queue_context.Lock_context.Lock_context );
 
   switch ( _TOD_Absolute_timeout_to_ticks( abstime, CLOCK_REALTIME, &ticks ) ) {
     case TOD_ABSOLUTE_TIMEOUT_INVALID:
-      _ISR_lock_ISR_enable( &queue_context.Lock_context );
+      _ISR_lock_ISR_enable( &queue_context.Lock_context.Lock_context );
       return EINVAL;
     case TOD_ABSOLUTE_TIMEOUT_IS_IN_PAST:
     case TOD_ABSOLUTE_TIMEOUT_IS_NOW:
-      _ISR_lock_ISR_enable( &queue_context.Lock_context );
+      _ISR_lock_ISR_enable( &queue_context.Lock_context.Lock_context );
       return ETIMEDOUT;
     default:
@@ -176,5 +178,5 @@
 
   _Thread_queue_Context_initialize( &queue_context );
-  _ISR_lock_ISR_disable( &queue_context.Lock_context );
+  _ISR_lock_ISR_disable( &queue_context.Lock_context.Lock_context );
   _Thread_queue_Context_set_no_timeout( &queue_context );
   cpu_self = _Condition_Do_wait( _condition, &queue_context );
@@ -202,13 +204,13 @@
 
   _Thread_queue_Context_initialize( &queue_context );
-  _ISR_lock_ISR_disable( &queue_context.Lock_context );
+  _ISR_lock_ISR_disable( &queue_context.Lock_context.Lock_context );
 
   switch ( _TOD_Absolute_timeout_to_ticks( abstime, CLOCK_REALTIME, &ticks ) ) {
     case TOD_ABSOLUTE_TIMEOUT_INVALID:
-      _ISR_lock_ISR_enable( &queue_context.Lock_context );
+      _ISR_lock_ISR_enable( &queue_context.Lock_context.Lock_context );
       return EINVAL;
     case TOD_ABSOLUTE_TIMEOUT_IS_IN_PAST:
     case TOD_ABSOLUTE_TIMEOUT_IS_NOW:
-      _ISR_lock_ISR_enable( &queue_context.Lock_context );
+      _ISR_lock_ISR_enable( &queue_context.Lock_context.Lock_context );
       return ETIMEDOUT;
     default:
@@ -262,5 +264,5 @@
   condition = _Condition_Get( _condition );
   _Thread_queue_Context_initialize( &context.Base );
-  _ISR_lock_ISR_disable( &context.Base.Lock_context );
+  _ISR_lock_ISR_disable( &context.Base.Lock_context.Lock_context );
   _Condition_Queue_acquire_critical( condition, &context.Base );
 
Index: cpukit/score/src/coremsgbroadcast.c
===================================================================
--- cpukit/score/src/coremsgbroadcast.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/src/coremsgbroadcast.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -34,5 +34,5 @@
 
   if ( size > the_message_queue->maximum_message_size ) {
-    _ISR_lock_ISR_enable( &queue_context->Lock_context );
+    _ISR_lock_ISR_enable( &queue_context->Lock_context.Lock_context );
     return STATUS_MESSAGE_INVALID_SIZE;
   }
Index: cpukit/score/src/coremutexseize.c
===================================================================
--- cpukit/score/src/coremutexseize.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/src/coremutexseize.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -58,5 +58,5 @@
   _Thread_queue_Context_set_expected_level( queue_context, 1 );
 #else
-  _ISR_lock_ISR_disable( &queue_context->Lock_context );
+  _ISR_lock_ISR_disable( &queue_context->Lock_context.Lock_context );
   _CORE_mutex_Acquire_critical( the_mutex, queue_context );
   _Thread_queue_Context_set_expected_level( queue_context, 2 );
Index: cpukit/score/src/futex.c
===================================================================
--- cpukit/score/src/futex.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/src/futex.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -56,10 +56,10 @@
   Thread_Control *executing;
 
-  _ISR_lock_ISR_disable( &queue_context->Lock_context );
+  _ISR_lock_ISR_disable( &queue_context->Lock_context.Lock_context );
   executing = _Thread_Executing;
   _Thread_queue_Queue_acquire_critical(
     &futex->Queue.Queue,
     &executing->Potpourri_stats,
-    &queue_context->Lock_context
+    &queue_context->Lock_context.Lock_context
   );
 
@@ -74,5 +74,5 @@
   _Thread_queue_Queue_release(
     &futex->Queue.Queue,
-    &queue_context->Lock_context
+    &queue_context->Lock_context.Lock_context
   );
 }
Index: cpukit/score/src/mpci.c
===================================================================
--- cpukit/score/src/mpci.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/src/mpci.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -336,5 +336,5 @@
     executing->receive_packet = NULL;
 
-    _ISR_lock_ISR_disable( &queue_context.Lock_context );
+    _ISR_lock_ISR_disable( &queue_context.Lock_context.Lock_context );
     _CORE_semaphore_Seize(
       &_MPCI_Semaphore,
@@ -376,5 +376,5 @@
   Thread_queue_Context queue_context;
 
-  _ISR_lock_ISR_disable( &queue_context.Lock_context );
+  _ISR_lock_ISR_disable( &queue_context.Lock_context.Lock_context );
   (void) _CORE_semaphore_Surrender(
     &_MPCI_Semaphore,
Index: cpukit/score/src/mutex.c
===================================================================
--- cpukit/score/src/mutex.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/src/mutex.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -79,10 +79,10 @@
   Thread_Control *executing;
 
-  _ISR_lock_ISR_disable( &queue_context->Lock_context );
+  _ISR_lock_ISR_disable( &queue_context->Lock_context.Lock_context );
   executing = _Thread_Executing;
   _Thread_queue_Queue_acquire_critical(
     &mutex->Queue.Queue,
     &executing->Potpourri_stats,
-    &queue_context->Lock_context
+    &queue_context->Lock_context.Lock_context
   );
 
@@ -97,5 +97,5 @@
   _Thread_queue_Queue_release(
     &mutex->Queue.Queue,
-    &queue_context->Lock_context
+    &queue_context->Lock_context.Lock_context
   );
 }
Index: cpukit/score/src/semaphore.c
===================================================================
--- cpukit/score/src/semaphore.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/src/semaphore.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -63,10 +63,10 @@
   Thread_Control *executing;
 
-  _ISR_lock_ISR_disable( &queue_context->Lock_context );
+  _ISR_lock_ISR_disable( &queue_context->Lock_context.Lock_context );
   executing = _Thread_Executing;
   _Thread_queue_Queue_acquire_critical(
     &sem->Queue.Queue,
     &executing->Potpourri_stats,
-    &queue_context->Lock_context
+    &queue_context->Lock_context.Lock_context
   );
 
@@ -81,5 +81,5 @@
   _Thread_queue_Queue_release(
     &sem->Queue.Queue,
-    &queue_context->Lock_context
+    &queue_context->Lock_context.Lock_context
   );
 }
Index: cpukit/score/src/threadqenqueue.c
===================================================================
--- cpukit/score/src/threadqenqueue.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/src/threadqenqueue.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -185,8 +185,8 @@
     link = THREAD_QUEUE_LINK_OF_PATH_NODE( node );
 
-    if ( link->Queue_context.Wait.queue == NULL ) {
+    if ( link->Lock_context.Wait.queue == NULL ) {
       _Thread_Wait_release_default_critical(
         link->owner,
-        &link->Queue_context.Lock_context
+        &link->Lock_context.Lock_context
       );
 
@@ -200,12 +200,12 @@
       /* The other links have an owner which waits on a thread queue */
       link = THREAD_QUEUE_LINK_OF_PATH_NODE( node );
-      _Assert( link->Queue_context.Wait.queue != NULL );
+      _Assert( link->Lock_context.Wait.queue != NULL );
 
       _Thread_queue_Link_remove( link );
       _Thread_Wait_release_queue_critical(
-        link->Queue_context.Wait.queue,
-        &link->Queue_context
+        link->Lock_context.Wait.queue,
+        &link->Lock_context
       );
-      _Thread_Wait_remove_request( link->owner, &link->Queue_context );
+      _Thread_Wait_remove_request( link->owner, &link->Lock_context );
 
       node = _Chain_Previous( node );
@@ -254,5 +254,5 @@
   _RBTree_Initialize_node( &path->Start.Registry_node );
   _Chain_Initialize_node( &path->Start.Path_node );
-  _Thread_queue_Context_initialize( &path->Start.Queue_context );
+  _Chain_Initialize_node( &path->Start.Lock_context.Wait.Gate.Node );
   link = &path->Start;
 
@@ -263,9 +263,9 @@
     _Thread_Wait_acquire_default_critical(
       owner,
-      &link->Queue_context.Lock_context
+      &link->Lock_context.Lock_context
     );
 
     target = owner->Wait.queue;
-    link->Queue_context.Wait.queue = target;
+    link->Lock_context.Wait.queue = target;
 
     if ( target != NULL ) {
@@ -273,25 +273,25 @@
         _Thread_queue_Gate_add(
           &owner->Wait.Lock.Pending_requests,
-          &link->Queue_context.Wait.Gate
+          &link->Lock_context.Wait.Gate
         );
         _Thread_Wait_release_default_critical(
           owner,
-          &link->Queue_context.Lock_context
+          &link->Lock_context.Lock_context
         );
-        _Thread_Wait_acquire_queue_critical( target, &link->Queue_context );
-
-        if ( link->Queue_context.Wait.queue == NULL ) {
+        _Thread_Wait_acquire_queue_critical( target, &link->Lock_context );
+
+        if ( link->Lock_context.Wait.queue == NULL ) {
           _Thread_queue_Link_remove( link );
-          _Thread_Wait_release_queue_critical( target, &link->Queue_context );
+          _Thread_Wait_release_queue_critical( target, &link->Lock_context );
           _Thread_Wait_acquire_default_critical(
             owner,
-            &link->Queue_context.Lock_context
+            &link->Lock_context.Lock_context
           );
-          _Thread_Wait_remove_request_locked( owner, &link->Queue_context );
+          _Thread_Wait_remove_request_locked( owner, &link->Lock_context );
           _Assert( owner->Wait.queue == NULL );
           return true;
         }
       } else {
-        link->Queue_context.Wait.queue = NULL;
+        link->Lock_context.Wait.queue = NULL;
         _Thread_queue_Path_release( path );
         return false;
@@ -360,5 +360,5 @@
   if ( !_Thread_queue_Path_acquire( the_thread, queue, &path ) ) {
     _Thread_Wait_restore_default( the_thread );
-    _Thread_queue_Queue_release( queue, &queue_context->Lock_context );
+    _Thread_queue_Queue_release( queue, &queue_context->Lock_context.Lock_context );
     _Thread_Wait_tranquilize( the_thread );
     ( *queue_context->deadlock_callout )( the_thread );
@@ -372,6 +372,8 @@
   the_thread->Wait.return_code = STATUS_SUCCESSFUL;
   _Thread_Wait_flags_set( the_thread, THREAD_QUEUE_INTEND_TO_BLOCK );
-  cpu_self = _Thread_Dispatch_disable_critical( &queue_context->Lock_context );
-  _Thread_queue_Queue_release( queue, &queue_context->Lock_context );
+  cpu_self = _Thread_Dispatch_disable_critical(
+    &queue_context->Lock_context.Lock_context
+  );
+  _Thread_queue_Queue_release( queue, &queue_context->Lock_context.Lock_context );
 
   if (
@@ -545,5 +547,5 @@
     queue,
     the_thread,
-    &queue_context->Lock_context
+    &queue_context->Lock_context.Lock_context
   );
 }
@@ -562,5 +564,5 @@
     bool unblock;
 
-    _Thread_Wait_remove_request( the_thread, &queue_context );
+    _Thread_Wait_remove_request( the_thread, &queue_context.Lock_context );
     _Thread_queue_Context_set_MP_callout(
       &queue_context,
@@ -577,5 +579,5 @@
       queue,
       the_thread,
-      &queue_context.Lock_context
+      &queue_context.Lock_context.Lock_context
     );
   } else {
@@ -613,8 +615,8 @@
       queue,
       new_owner,
-      &queue_context->Lock_context
+      &queue_context->Lock_context.Lock_context
     );
   } else {
-    _Thread_queue_Queue_release( queue, &queue_context->Lock_context );
+    _Thread_queue_Queue_release( queue, &queue_context->Lock_context.Lock_context );
   }
 
Index: cpukit/score/src/threadqflush.c
===================================================================
--- cpukit/score/src/threadqflush.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/src/threadqflush.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -110,7 +110,7 @@
 
     cpu_self = _Thread_Dispatch_disable_critical(
-      &queue_context->Lock_context
+      &queue_context->Lock_context.Lock_context
     );
-    _Thread_queue_Queue_release( queue, &queue_context->Lock_context );
+    _Thread_queue_Queue_release( queue, &queue_context->Lock_context.Lock_context );
 
     do {
@@ -127,5 +127,5 @@
     _Thread_Dispatch_enable( cpu_self );
   } else {
-    _Thread_queue_Queue_release( queue, &queue_context->Lock_context );
+    _Thread_queue_Queue_release( queue, &queue_context->Lock_context.Lock_context );
   }
 
Index: cpukit/score/src/threadrestart.c
===================================================================
--- cpukit/score/src/threadrestart.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ cpukit/score/src/threadrestart.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -537,5 +537,5 @@
   _Thread_queue_Context_set_expected_level( &queue_context, 2 );
   _Thread_queue_Context_set_no_timeout( &queue_context );
-  _Thread_State_acquire( the_thread, &queue_context.Lock_context );
+  _Thread_State_acquire( the_thread, &queue_context.Lock_context.Lock_context );
   _Thread_Join(
     the_thread,
Index: testsuites/sptests/spintrcritical22/init.c
===================================================================
--- testsuites/sptests/spintrcritical22/init.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ testsuites/sptests/spintrcritical22/init.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -39,5 +39,5 @@
   sem = _Semaphore_Get(id, &queue_context);
   rtems_test_assert(sem != NULL);
-  _ISR_lock_ISR_enable(&queue_context.Lock_context);
+  _ISR_lock_ISR_enable(&queue_context.Lock_context.Lock_context);
 
   return sem;
Index: testsuites/tmtests/tm26/task1.c
===================================================================
--- testsuites/tmtests/tm26/task1.c	(revision 114e40880bb56186d06fc81da29a889d9f2171a5)
+++ testsuites/tmtests/tm26/task1.c	(revision e41308eab8ae4505844d8e499664424f8c7f2bd1)
@@ -516,5 +516,5 @@
     for ( index=1 ; index <= OPERATION_COUNT ; index++ ) {
       (void) _Semaphore_Get( Semaphore_id, &queue_context );
-      _ISR_lock_ISR_enable( &queue_context.Lock_context );
+      _ISR_lock_ISR_enable( &queue_context.Lock_context.Lock_context );
     }
   semaphore_get_time = benchmark_timer_read();
