Index: /trunk/disassembler.c
===================================================================
--- /trunk/disassembler.c	(revision 199)
+++ /trunk/disassembler.c	(revision 200)
@@ -51,5 +51,5 @@
 			buf = erealloc(buf, bufsize);
 		}
-		memcpy(buf, BUCKET_KEY(b), keysize);
+		memcpy(buf, BUCKET_KEY_S(b), keysize);
 		buf[keysize - 2] = buf[keysize - 1] = ""[0];
 		keysize = b->nKeyLength;
Index: /trunk/processor/hashtable.m4
===================================================================
--- /trunk/processor/hashtable.m4	(revision 199)
+++ /trunk/processor/hashtable.m4	(revision 200)
@@ -45,5 +45,5 @@
 					buf = erealloc(buf, bufsize);
 				}
-				memcpy(buf, BUCKET_KEY(b), keysize);
+				memcpy(buf, BUCKET_KEY_S(b), keysize);
 				buf[keysize - 2] = buf[keysize - 1] = ""[0];
 				keysize = b->nKeyLength;
Index: /trunk/processor/head.m4
===================================================================
--- /trunk/processor/head.m4	(revision 199)
+++ /trunk/processor/head.m4	(revision 200)
@@ -252,5 +252,5 @@
 	if (src->parent) {
 		zval **srczv;
-		if (zend_hash_quick_find(CE_STATIC_MEMBERS(src), b->arKey, b->nKeyLength, b->h, (void **) &srczv) == SUCCESS) {
+		if (zend_u_hash_quick_find(CE_STATIC_MEMBERS(src), BUCKET_KEY_TYPE(b), ZSTR(BUCKET_KEY_S(b)), b->nKeyLength, b->h, (void **) &srczv) == SUCCESS) {
 			zval **zv = (zval **) b->pData;
 			if (*srczv == *zv) {
Index: /trunk/processor/processor.m4
===================================================================
--- /trunk/processor/processor.m4	(revision 199)
+++ /trunk/processor/processor.m4	(revision 200)
@@ -57,5 +57,7 @@
 DEF_STRUCT_P_FUNC(`zend_brk_cont_element', , `
 #ifdef ZEND_ENGINE_2_2
+#ifndef IS_UNICODE
 	DISPATCH(int, start)
+#endif
 #endif
 	DISPATCH(int, cont)
Index: /trunk/utils.c
===================================================================
--- /trunk/utils.c	(revision 199)
+++ /trunk/utils.c	(revision 200)
@@ -411,5 +411,5 @@
 		zend_constant *c = (zend_constant*) b->pData;
 		xc_install_constant(sandbox->filename, c,
-				BUCKET_KEY_TYPE(b), ZSTR(BUCKET_KEY(b)), b->nKeyLength TSRMLS_CC);
+				BUCKET_KEY_TYPE(b), ZSTR(BUCKET_KEY_S(b)), b->nKeyLength TSRMLS_CC);
 		b = b->pListNext;
 	}
@@ -421,5 +421,5 @@
 		zend_function *func = (zend_function*) b->pData;
 		xc_install_function(sandbox->filename, func,
-				BUCKET_KEY_TYPE(b), ZSTR(BUCKET_KEY(b)), b->nKeyLength TSRMLS_CC);
+				BUCKET_KEY_TYPE(b), ZSTR(BUCKET_KEY_S(b)), b->nKeyLength TSRMLS_CC);
 		b = b->pListNext;
 	}
@@ -429,5 +429,5 @@
 	while (b != NULL) {
 		xc_install_class(sandbox->filename, (xc_cest_t*)b->pData,
-				BUCKET_KEY_TYPE(b), ZSTR(BUCKET_KEY(b)), b->nKeyLength TSRMLS_CC);
+				BUCKET_KEY_TYPE(b), ZSTR(BUCKET_KEY_S(b)), b->nKeyLength TSRMLS_CC);
 		b = b->pListNext;
 	}
Index: /trunk/xcache.c
===================================================================
--- /trunk/xcache.c	(revision 199)
+++ /trunk/xcache.c	(revision 200)
@@ -951,8 +951,8 @@
 		UNISW(NOTHING, data->type = b->key.type;)             \
 		if (UNISW(1, b->key.type == IS_STRING)) {             \
-			ZSTR_S(data->key)      = BUCKET_KEY(b);           \
+			ZSTR_S(data->key)      = BUCKET_KEY_S(b);          \
 		}                                                     \
 		else {                                                \
-			ZSTR_U(data->key)      = BUCKET_UKEY(b);          \
+			ZSTR_U(data->key)      = BUCKET_KEY_U(b);         \
 		}                                                     \
 		data->key_size   = b->nKeyLength;                     \
Index: /trunk/xcache.h
===================================================================
--- /trunk/xcache.h	(revision 199)
+++ /trunk/xcache.h	(revision 200)
@@ -48,7 +48,7 @@
 				: b->nKeyLength \
 				))
-#define BUCKET_KEY(b)  (UNISW((b)->arKey, (b)->key.arKey.s))
-#define BUCKET_UKEY(b) (UNISW((b)->arKey, (b)->key.arKey.u))
-#define BUCKET_KEY_TYPE(b) (UNISW(0, (b)->key.type))
+#define BUCKET_KEY_S(b)    (UNISW((b)->arKey, (b)->key.arKey.s))
+#define BUCKET_KEY_U(b)    (UNISW((b)->arKey, (b)->key.arKey.u))
+#define BUCKET_KEY_TYPE(b) (UNISW(IS_STRING,  (b)->key.type))
 #ifdef IS_UNICODE
 #	define BUCKET_HEAD_SIZE(b) XtOffsetOf(Bucket, key.arKey)
@@ -95,4 +95,7 @@
  	   zend_hash_find(ht, arKey, nKeyLength, pData)
 
+#	define zend_u_hash_quick_find(ht, type, arKey, nKeyLength, h, pData) \
+ 	   zend_hash_quick_find(ht, arKey, nKeyLength, h, pData)
+
 #	define add_u_assoc_zval_ex(arg, type, key, key_len, value) \
 		add_assoc_zval_ex(arg, key, key_len, value)
