Index: trunk/xcache/xc_extension.c
===================================================================
--- trunk/xcache/xc_extension.c	(revision 1045)
+++ trunk/xcache/xc_extension.c	(revision 1047)
@@ -5,5 +5,5 @@
 
 
-int xcache_zend_extension_prepend(zend_extension *new_extension) /* {{{ */
+int xcache_zend_extension_add(zend_extension *new_extension, zend_bool prepend) /* {{{ */
 {
 	zend_extension extension;
@@ -14,6 +14,11 @@
 	zend_extension_dispatch_message(ZEND_EXTMSG_NEW_EXTENSION, &extension);
 
-	zend_llist_prepend_element(&zend_extensions, &extension);
-	TRACE("%s", "prepended");
+	if (prepend) {
+		zend_llist_prepend_element(&zend_extensions, &extension);
+	}
+	else {
+		zend_llist_add_element(&zend_extensions, &extension);
+	}
+	TRACE("%s", "registered");
 	return SUCCESS;
 }
@@ -51,42 +56,4 @@
 /* }}} */
 
-int xcache_zend_extension_count_by_prefix(zend_llist *l, const char *extension_name_prefix) /* {{{ */
-{
-	zend_llist_element *element;
-	size_t n = strlen(extension_name_prefix);
-	int count = 0;
-
-	for (element = zend_extensions.head; element; element = element->next) {
-		zend_extension *extension = (zend_extension *) element->data;
-
-		if (strncmp(extension->name, extension_name_prefix, n) == 0) {
-			++count;
-		}
-	}
-	return count;
-}
-/* }}} */
-void xcache_zend_extension_unlink_by_prefix(xc_stack_t *linked, zend_llist *l, const char *extension_name_prefix) /* {{{ */
-{
-	size_t n = strlen(extension_name_prefix);
-	zend_llist_element *unlinked = NULL;
-	zend_llist_element *element, *next;
-
-	for (element = zend_extensions.head; element; element = next) {
-		zend_extension *extension = (zend_extension *) element->data;
-		next = element->next;
-
-		if (strncmp(extension->name, extension_name_prefix, n) == 0) {
-			xcache_llist_unlink(l, element);
-			xc_stack_push(linked, element);
-		}
-	}
-
-	for (element = zend_extensions.head; element; element = next) {
-		zend_extension *extension = (zend_extension *) element->data;
-		next = element->next;
-	}
-}
-/* }}} */
 void xcache_llist_prepend(zend_llist *l, zend_llist_element *element) /* {{{ */
 {
