Index: /trunk/xcache.c
===================================================================
--- /trunk/xcache.c	(revision 655)
+++ /trunk/xcache.c	(revision 656)
@@ -1629,5 +1629,5 @@
 	gc_op_array.arg_info = op_array->arg_info;
 #ifdef ZEND_ENGINE_2
-	zend_hash_next_index_insert(&XG(gc_op_arrays), (void *) &gc_op_array, sizeof(gc_op_array), NULL);
+	zend_llist_add_element(&XG(gc_op_arrays), (void *) &gc_op_array);
 #endif
 }
@@ -1892,5 +1892,5 @@
 
 #ifdef ZEND_ENGINE_2
-	zend_hash_init(&XG(gc_op_arrays), 32, NULL, xc_gc_op_array, 0);
+	zend_llist_init(&XG(gc_op_arrays), sizeof(xc_gc_op_array_t), xc_gc_op_array, 0);
 #endif
 
@@ -1910,5 +1910,5 @@
 	xc_entry_unholds(TSRMLS_C);
 #ifdef ZEND_ENGINE_2
-	zend_hash_destroy(&XG(gc_op_arrays));
+	zend_llist_destroy(&XG(gc_op_arrays));
 #endif
 	xc_gc_expires_php(TSRMLS_C);
Index: /trunk/xcache_globals.h
===================================================================
--- /trunk/xcache_globals.h	(revision 655)
+++ /trunk/xcache_globals.h	(revision 656)
@@ -19,5 +19,5 @@
 
 #ifdef ZEND_ENGINE_2
-	HashTable gc_op_arrays;
+	zend_llist gc_op_arrays;
 #endif
 
