Index: /trunk/xcache.c
===================================================================
--- /trunk/xcache.c	(revision 832)
+++ /trunk/xcache.c	(revision 840)
@@ -146,5 +146,5 @@
 	xc_entry_data_php_t *p;
 	for (p = php->cache->phps[php->hvalue]; p; p = p->next) {
-		if (memcmp(php->md5, p->md5, sizeof(php->md5)) == 0) {
+		if (memcmp(&php->md5, &p->md5, sizeof(php->md5)) == 0) {
 			p->hits ++;
 			return p;
@@ -170,5 +170,5 @@
 		xc_entry_data_php_t *p;
 		for (p = *pp; p; pp = &(p->next), p = p->next) {
-			if (memcmp(php->md5, p->md5, sizeof(php->md5)) == 0) {
+			if (memcmp(&php->md5, &p->md5, sizeof(php->md5)) == 0) {
 				/* unlink */
 				*pp = p->next;
@@ -1088,5 +1088,5 @@
 static inline xc_hash_value_t xc_php_hash_md5(xc_entry_data_php_t *php TSRMLS_DC) /* {{{ */
 {
-	return HASH_STR_S(php->md5, sizeof(php->md5));
+	return HASH_STR_S(&php->md5, sizeof(php->md5));
 }
 /* }}} */
@@ -1109,5 +1109,5 @@
 		PHP_MD5Update(&context, buf, n);
 	}
-	PHP_MD5Final((unsigned char *) php->md5, &context);
+	PHP_MD5Final((unsigned char *) php->md5.digest, &context);
 
 	php_stream_close(stream);
Index: /trunk/processor/dispatch.m4
===================================================================
--- /trunk/processor/dispatch.m4	(revision 662)
+++ /trunk/processor/dispatch.m4	(revision 840)
@@ -24,5 +24,5 @@
 	, `$1', `xc_entry_type_t',  `PROC_INT(`$2', `d',  `$1')'
 	, `$1', `xc_hash_value_t',  `PROC_INT(`$2', `lu', `$1')'
-	, `$1', `xc_md5sum_t',      `/* is copying enough? */COPY(`$2')'
+	, `$1', `xc_md5sum_t',      `COPY(`$2')'
 	, `', `', `m4_errprint(`Unknown type "$1"')'
 	)
@@ -39,5 +39,5 @@
 				ifelse(
 					`$2', `zend_bool', `add_assoc_bool_ex(arr, ZEND_STRS("$3"), src->$3[i] ? 1 : 0);'
-				, `', `', `add_assoc_long_ex(arr, ZEND_STRS("$3"), src->$3[i]);')
+				, `', `', `add_next_index_long(arr, src->$3[i]);')
 			}
 			add_assoc_zval_ex(dst, ZEND_STRS("$3"), arr);
Index: /trunk/xcache.h
===================================================================
--- /trunk/xcache.h	(revision 832)
+++ /trunk/xcache.h	(revision 840)
@@ -343,5 +343,7 @@
 #endif
 typedef enum { XC_TYPE_PHP, XC_TYPE_VAR } xc_entry_type_t;
-typedef char xc_md5sum_t[16];
+typedef struct {
+	char digest[16];
+} xc_md5sum_t;
 /* {{{ xc_compilererror_t */
 typedef struct {
