diff -burN DirectFB-1.4.2.orig/lib/direct/interface.c DirectFB-1.4.2/lib/direct/interface.c --- DirectFB-1.4.2.orig/lib/direct/interface.c 2013-01-29 13:57:25.000000000 +0100 +++ DirectFB-1.4.2/lib/direct/interface.c 2013-01-29 13:59:37.000000000 +0100 @@ -74,7 +74,7 @@ } DirectInterfaceImplementation; static pthread_mutex_t implementations_mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; -static DirectLink *implementations = NULL; +static DirectLink * volatile implementations = NULL; /**************************************************************************************************/ @@ -96,7 +96,7 @@ D_DEBUG_AT( Direct_Interface, " -> %s | %s\n", impl->type, impl->implementation ); pthread_mutex_lock( &implementations_mutex ); - direct_list_prepend( &implementations, &impl->link ); + direct_list_prepend( (DirectLink**)&implementations, &impl->link ); pthread_mutex_unlock( &implementations_mutex ); } @@ -111,7 +111,7 @@ D_MAGIC_ASSERT( impl, DirectInterfaceImplementation ); if (impl->funcs == funcs) { - direct_list_remove( &implementations, &impl->link ); + direct_list_remove( (DirectLink**)&implementations, &impl->link ); break; }