Index: src/libcfa/concurrency/invoke.h
===================================================================
--- src/libcfa/concurrency/invoke.h	(revision 513daecfd75605c6a42d821f2b9893c3f2cb260c)
+++ src/libcfa/concurrency/invoke.h	(revision c1a9c86b33a7a40edb9fb80f386caddc59c72d52)
@@ -66,5 +66,5 @@
 	struct coStack_t {
 		// size of stack
-		unsigned int size;
+		size_t size;
 
 		// pointer to stack
@@ -85,5 +85,4 @@
 		// whether or not the user allocated the stack
 		bool userStack;
-
 	};
 
@@ -118,5 +117,5 @@
 
 		// number of acceptable functions
-		short size;
+		__lock_size_t size;
 	};
 
@@ -149,8 +148,8 @@
 
 		// number of currently held monitors
-		short                  size;
+		__lock_size_t size;
 
 		// last function that acquired monitors
-		fptr_t                 func;
+		fptr_t func;
 	};
 
@@ -168,5 +167,4 @@
 		// monitors currently held by this thread
 		struct __monitor_group_t monitors;
-
 
 		// Link lists fields
Index: src/libcfa/concurrency/monitor
===================================================================
--- src/libcfa/concurrency/monitor	(revision 513daecfd75605c6a42d821f2b9893c3f2cb260c)
+++ src/libcfa/concurrency/monitor	(revision c1a9c86b33a7a40edb9fb80f386caddc59c72d52)
@@ -43,5 +43,5 @@
 	int count;
 	monitor_desc ** prev_mntrs;
-	unsigned short  prev_count;
+	__lock_size_t   prev_count;
 	fptr_t          prev_func;
 };
@@ -53,5 +53,5 @@
 	monitor_desc * m;
 	monitor_desc ** prev_mntrs;
-	unsigned short  prev_count;
+	__lock_size_t   prev_count;
 	fptr_t          prev_func;
 };
@@ -81,5 +81,4 @@
 	// Intrusive linked list Next field
 	__condition_criterion_t * next;
-
 };
 
@@ -92,5 +91,5 @@
 
 	// Number of criterions in the criteria
-	unsigned short count;
+	__lock_size_t count;
 
 	// Intrusive linked list Next field
@@ -99,5 +98,4 @@
 	// Custom user info accessible before signalling
 	uintptr_t user_info;
-
 };
 
@@ -123,6 +121,5 @@
 
 	// Number of monitors in the array
-	unsigned short monitor_count;
-
+	__lock_size_t monitor_count;
 };
 
Index: src/libcfa/concurrency/monitor.c
===================================================================
--- src/libcfa/concurrency/monitor.c	(revision 513daecfd75605c6a42d821f2b9893c3f2cb260c)
+++ src/libcfa/concurrency/monitor.c	(revision c1a9c86b33a7a40edb9fb80f386caddc59c72d52)
@@ -296,12 +296,8 @@
 
 	// Save previous thread context
-	this.prev_mntrs = this_thread->monitors.list;
-	this.prev_count = this_thread->monitors.size;
-	this.prev_func  = this_thread->monitors.func;
+	this.[prev_mntrs, prev_count, prev_func] = this_thread->monitors.[list, size, func];
 
 	// Update thread context (needed for conditions)
-	this_thread->monitors.list = m;
-	this_thread->monitors.size = count;
-	this_thread->monitors.func = func;
+	this_thread->monitors.[list, size, func] = [m, count, func];
 
 	// LIB_DEBUG_PRINT_SAFE("MGUARD : enter %d\n", count);
@@ -325,7 +321,5 @@
 
 	// Restore thread context
-	this_thread->monitors.list = this.prev_mntrs;
-	this_thread->monitors.size = this.prev_count;
-	this_thread->monitors.func = this.prev_func;
+	this_thread->monitors.[list, size, func] = this.[prev_mntrs, prev_count, prev_func];
 }
 
@@ -337,12 +331,8 @@
 
 	// Save previous thread context
-	this.prev_mntrs = this_thread->monitors.list;
-	this.prev_count = this_thread->monitors.size;
-	this.prev_func  = this_thread->monitors.func;
+	this.[prev_mntrs, prev_count, prev_func] = this_thread->monitors.[list, size, func];
 
 	// Update thread context (needed for conditions)
-	this_thread->monitors.list = m;
-	this_thread->monitors.size = 1;
-	this_thread->monitors.func = func;
+	this_thread->monitors.[list, size, func] = [m, 1, func];
 
 	__enter_monitor_dtor( this.m, func );
@@ -355,7 +345,5 @@
 
 	// Restore thread context
-	this_thread->monitors.list = this.prev_mntrs;
-	this_thread->monitors.size = this.prev_count;
-	this_thread->monitors.func = this.prev_func;
+	this_thread->monitors.[list, size, func] = this.[prev_mntrs, prev_count, prev_func];
 }
 
