Index: /trunk/xcache.c
===================================================================
--- /trunk/xcache.c	(revision 553)
+++ /trunk/xcache.c	(revision 556)
@@ -834,5 +834,5 @@
 
 #define HASH(i) (i)
-#define HASH_USTR_L(t, s, l) HASH(zend_u_inline_hash_func(t, s, (l + 1) * sizeof(UChar)))
+#define HASH_ZSTR_L(t, s, l) HASH(zend_u_inline_hash_func(t, s, (l + 1) * sizeof(UChar)))
 #define HASH_STR_S(s, l) HASH(zend_inline_hash_func(s, l))
 #define HASH_STR_L(s, l) HASH_STR_S(s, l + 1)
@@ -851,5 +851,5 @@
 static inline xc_hash_value_t xc_entry_hash_name(xc_entry_t *xce TSRMLS_DC) /* {{{ */
 {
-	return UNISW(NOTHING, UG(unicode) ? HASH_USTR_L(xce->name_type, xce->name.uni.val, xce->name.uni.len) :)
+	return UNISW(NOTHING, UG(unicode) ? HASH_ZSTR_L(xce->name_type, xce->name.uni.val, xce->name.uni.len) :)
 		HASH_STR_L(xce->name.str.val, xce->name.str.len);
 }
@@ -870,8 +870,8 @@
 #ifdef IS_UNICODE
 	if (UG(unicode) && xce->name_type == IS_UNICODE) {
-		UChar *basename;
+		zstr basename;
 		int basename_len;
-		php_u_basename(xce->name.uni.val, xce->name.uni.len, NULL_ZSTR, 0, &basename, &basename_len TSRMLS_CC);
-		return HASH_USTR_L(IS_UNICODE, basename, basename_len);
+		php_u_basename(xce->name.ustr.val, xce->name.ustr.len, NULL, 0, &basename.u, &basename_len TSRMLS_CC);
+		return HASH_ZSTR_L(IS_UNICODE, basename, basename_len);
 	}
 	else
