Index: branches/1.0/xcache.c
===================================================================
--- branches/1.0/xcache.c	(revision 143)
+++ branches/1.0/xcache.c	(revision 160)
@@ -504,5 +504,5 @@
 }
 /* }}} */
-static int xc_entry_init_key_php(xc_entry_t *xce, char *filename TSRMLS_DC) /* {{{ */
+static int xc_entry_init_key_php(xc_entry_t *xce, char *filename, char *opened_path_buffer TSRMLS_DC) /* {{{ */
 {
 	struct stat buf, *pbuf;
@@ -540,4 +540,12 @@
 		return 0;
 	}
+
+#ifndef HAVE_INODE
+	/* hash on filename, let's expand it to real path */
+	filename = expand_filepath(filename, opened_path_buffer TSRMLS_CC);
+	if (filename == NULL) {
+		return 0;
+	}
+#endif
 
 	UNISW(NOTHING, xce->name_type = IS_STRING;)
@@ -574,4 +582,5 @@
 	zend_bool catched = 0;
 	char *filename;
+	char opened_path_buffer[MAXPATHLEN];
 
 	if (!xc_initized) {
@@ -598,5 +607,5 @@
 	filename = h->opened_path ? h->opened_path : h->filename;
 	xce.data.php = &php;
-	if (!xc_entry_init_key_php(&xce, filename TSRMLS_CC)) {
+	if (!xc_entry_init_key_php(&xce, filename, opened_path_buffer TSRMLS_CC)) {
 		return origin_compile_file(h, type TSRMLS_CC);
 	}
@@ -670,8 +679,10 @@
 
 	filename = h->opened_path ? h->opened_path : h->filename;
+#ifdef HAVE_INODE
 	if (xce.name.str.val != filename) {
 		xce.name.str.val = filename;
 		xce.name.str.len = strlen(filename);
 	}
+#endif
 
 #ifdef HAVE_XCACHE_OPTIMIZER
Index: branches/1.0/xcache.h
===================================================================
--- branches/1.0/xcache.h	(revision 155)
+++ branches/1.0/xcache.h	(revision 160)
@@ -2,5 +2,5 @@
 #define __XCACHE_H
 #define XCACHE_NAME       "XCache"
-#define XCACHE_VERSION    "1.0.1"
+#define XCACHE_VERSION    "1.0.1-r1"
 #define XCACHE_AUTHOR     "mOo"
 #define XCACHE_COPYRIGHT  "Copyright (c) 2005-2006"
