Index: glib/garray.c
===================================================================
--- glib/garray.c	(revision 5437)
+++ glib/garray.c	(working copy)
@@ -436,8 +436,14 @@
        * to make it really portable. Remember (void*)NULL needn't be
        * bitwise zero. It of course is silly not to use memset (..,0,..).
        */
+#if NULL == 0
+      memset (array->pdata + array->len, 0,
+		      sizeof (gpointer) * (length - array->len));
+#else
       for (i = array->len; i < length; i++)
 	array->pdata[i] = NULL;
+#endif
+      
     }
   if (G_UNLIKELY (g_mem_gc_friendly) && length < array->len)
     {
