Index: libcfa/src/bits/locks.hfa
===================================================================
--- libcfa/src/bits/locks.hfa	(revision 3e2b9c93dff631bddb430d876a83bcc3bafe9d16)
+++ libcfa/src/bits/locks.hfa	(revision 95789be69da1e578ec7ea697904a12ffc63b0263)
@@ -130,5 +130,5 @@
 		pthread_mutex_init(&lock, &mattr);
 
-		pthread_cond_init (&cond, 0p);
+		pthread_cond_init (&cond, (const pthread_condattr_t *)0p);  // workaround trac#208: cast should not be required
 		val = 0;
 	}
Index: libcfa/src/concurrency/kernel.cfa
===================================================================
--- libcfa/src/concurrency/kernel.cfa	(revision 3e2b9c93dff631bddb430d876a83bcc3bafe9d16)
+++ libcfa/src/concurrency/kernel.cfa	(revision 95789be69da1e578ec7ea697904a12ffc63b0263)
@@ -519,5 +519,5 @@
 
 void kernel_abort_msg( void * kernel_data, char * abort_text, int abort_text_size ) {
-	$thread * thrd = kernel_data;
+	$thread * thrd = ( $thread * ) kernel_data;
 
 	if(thrd) {
Index: libcfa/src/concurrency/preemption.cfa
===================================================================
--- libcfa/src/concurrency/preemption.cfa	(revision 3e2b9c93dff631bddb430d876a83bcc3bafe9d16)
+++ libcfa/src/concurrency/preemption.cfa	(revision 95789be69da1e578ec7ea697904a12ffc63b0263)
@@ -482,5 +482,5 @@
 	sigset_t oldset;
 	int ret;
-	ret = pthread_sigmask(0, 0p, &oldset);
+	ret = pthread_sigmask(0, ( const sigset_t * ) 0p, &oldset);  // workaround trac#208: cast should be unnecessary
 	if(ret != 0) { abort("ERROR sigprocmask returned %d", ret); }
 
Index: libcfa/src/containers/list.hfa
===================================================================
--- libcfa/src/containers/list.hfa	(revision 3e2b9c93dff631bddb430d876a83bcc3bafe9d16)
+++ libcfa/src/containers/list.hfa	(revision 95789be69da1e578ec7ea697904a12ffc63b0263)
@@ -22,5 +22,5 @@
 \
 static inline NODE& $tempcv_e2n(ELEM &node) { \
-	return node; \
+	return ( NODE & ) node; \
 } \
 \
@@ -187,5 +187,5 @@
 		$next_link(singleton_to_insert) = $next_link(list_pos);
 		if ($next_link(list_pos).is_terminator) {
-			dlist(Tnode, Telem) *list = $next_link(list_pos).terminator;
+			dlist(Tnode, Telem) *list = ( dlist(Tnode, Telem) * ) $next_link(list_pos).terminator;
 			$dlinks(Telem) *list_links = & list->$links;
 			$mgd_link(Telem) *list_last = & list_links->prev;
@@ -210,5 +210,5 @@
 		$prev_link(singleton_to_insert) = $prev_link(list_pos);
 		if ($prev_link(list_pos).is_terminator) {
-			dlist(Tnode, Telem) *list = $prev_link(list_pos).terminator;
+			dlist(Tnode, Telem) *list = ( dlist(Tnode, Telem) * ) $prev_link(list_pos).terminator;
 			$dlinks(Telem) *list_links = & list->$links;
 			$mgd_link(Telem) *list_first = & list_links->next;
@@ -275,5 +275,5 @@
 
 		if ( $prev_link(list_pos).is_terminator ) {
-			dlist(Tnode, Telem) * tgt_before = $prev_link(list_pos).terminator;
+			dlist(Tnode, Telem) * tgt_before = ( dlist(Tnode, Telem) * ) $prev_link(list_pos).terminator;
 			$dlinks(Telem) * links_before = & tgt_before->$links;
 			&incoming_from_prev = & links_before->next;
@@ -285,5 +285,5 @@
 
 		if ( $next_link(list_pos).is_terminator ) {
-			dlist(Tnode, Telem) * tgt_after = $next_link(list_pos).terminator;
+			dlist(Tnode, Telem) * tgt_after = ( dlist(Tnode, Telem) * ) $next_link(list_pos).terminator;
 			$dlinks(Telem) * links_after = & tgt_after->$links;
 			&incoming_from_next = & links_after->prev;
Index: libcfa/src/heap.cfa
===================================================================
--- libcfa/src/heap.cfa	(revision 3e2b9c93dff631bddb430d876a83bcc3bafe9d16)
+++ libcfa/src/heap.cfa	(revision 95789be69da1e578ec7ea697904a12ffc63b0263)
@@ -10,6 +10,6 @@
 // Created On       : Tue Dec 19 21:58:35 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Jul 20 23:00:32 2020
-// Update Count     : 808
+// Last Modified On : Mon Jul 27 23:16:18 2020
+// Update Count     : 815
 //
 
@@ -805,4 +805,5 @@
 	// address of header from malloc
 	HeapManager.Storage.Header * realHeader = headerAddr( addr );
+	realHeader->kind.real.size = size;					// correct size to eliminate above alignment offset
 	// address of fake header * before* the alignment location
 	HeapManager.Storage.Header * fakeHeader = headerAddr( user );
Index: libcfa/src/iostream.hfa
===================================================================
--- libcfa/src/iostream.hfa	(revision 3e2b9c93dff631bddb430d876a83bcc3bafe9d16)
+++ libcfa/src/iostream.hfa	(revision 95789be69da1e578ec7ea697904a12ffc63b0263)
@@ -363,5 +363,5 @@
 	_Istream_Cstr excl( const char scanset[], char * s ) { return (_Istream_Cstr){ s, scanset, -1, { .flags.inex : true } }; }
 	_Istream_Cstr & excl( const char scanset[], _Istream_Cstr & fmt ) { fmt.scanset = scanset; fmt.flags.inex = true; return fmt; }
-	_Istream_Cstr ignore( const char s[] ) { return (_Istream_Cstr)@{ s, 0p, -1, { .flags.ignore : true } }; }
+	_Istream_Cstr ignore( char s[] ) { return (_Istream_Cstr)@{ s, 0p, -1, { .flags.ignore : true } }; }
 	_Istream_Cstr & ignore( _Istream_Cstr & fmt ) { fmt.flags.ignore = true; return fmt; }
 	_Istream_Cstr wdi( unsigned int w, char s[] ) { return (_Istream_Cstr)@{ s, 0p, w, { .all : 0 } }; }
Index: libcfa/src/stdlib.hfa
===================================================================
--- libcfa/src/stdlib.hfa	(revision 3e2b9c93dff631bddb430d876a83bcc3bafe9d16)
+++ libcfa/src/stdlib.hfa	(revision 95789be69da1e578ec7ea697904a12ffc63b0263)
@@ -232,5 +232,5 @@
 		size_t osize = malloc_size( ptr );				// current allocation
 		size_t nsize = dim * sizeof(T);					// new allocation
-		T * nptr = realloc( ptr, align, nsize );		// CFA realloc
+		T * nptr = alloc_align( ptr, align, nsize );	// CFA alloc_align
 		if ( nsize > osize ) {							// larger ?
 			memset( (char *)nptr + osize, (int)fill, nsize - osize ); // initialize added storage
@@ -243,5 +243,5 @@
 		size_t nsize = dim * sizeof(T);					// new allocation
 		size_t ndim = nsize / sizeof(T);				// new dimension
-		T * nptr = realloc( ptr, align, nsize );		// CFA realloc
+		T * nptr = alloc_align( ptr, align, nsize );		// CFA alloc_align
 		if ( ndim > odim ) {							// larger ?
 			for ( i; odim ~ ndim ) {
