--- /dev/null
+Index: glib/gthread.c
+===================================================================
+--- glib/gthread.c (revision 5636)
++++ glib/gthread.c (revision 5639)
+@@ -223,11 +223,11 @@
+ g_once_init_leave (volatile gsize *value_location,
+ gsize initialization_value)
+ {
+- g_return_if_fail (g_atomic_pointer_get (value_location) == 0);
++ g_return_if_fail (g_atomic_pointer_get ((void**) value_location) == 0);
+ g_return_if_fail (initialization_value != 0);
+ g_return_if_fail (g_once_init_list != NULL);
+
+- g_atomic_pointer_set (value_location, initialization_value);
++ g_atomic_pointer_set ((void**) value_location, (void*) initialization_value);
+ g_mutex_lock (g_once_mutex);
+ g_once_init_list = g_slist_remove (g_once_init_list, (void*) value_location);
+ g_cond_broadcast (g_once_cond);
+@@ -255,7 +255,7 @@
+ g_mutex_lock (g_once_mutex);
+
+ if (!(*mutex))
+- g_atomic_pointer_set (mutex, g_mutex_new());
++ g_atomic_pointer_set ((void**) mutex, g_mutex_new());
+
+ g_mutex_unlock (g_once_mutex);
+
+Index: glib/gthread.h
+===================================================================
+--- glib/gthread.h (revision 5636)
++++ glib/gthread.h (revision 5639)
+@@ -332,7 +332,7 @@
+ G_INLINE_FUNC gboolean
+ g_once_init_enter (volatile gsize *value_location)
+ {
+- if G_LIKELY (g_atomic_pointer_get (value_location) !=0)
++ if G_LIKELY (g_atomic_pointer_get ((void**) value_location) !=0)
+ return FALSE;
+ else
+ return g_once_init_enter_impl (value_location);