Index: /branches/1.3/Makefile.frag
===================================================================
--- /branches/1.3/Makefile.frag	(revision 619)
+++ /branches/1.3/Makefile.frag	(revision 620)
@@ -32,6 +32,6 @@
 disassembler.lo: $(XCACHE_PROC_H) $(srcdir)/processor.c
 
-$(builddir)/xcache.lo: $(XCACHE_PROC_H) $(srcdir)/xc_shm.h $(srcdir)/stack.h $(srcdir)/xcache_globals.h $(srcdir)/xcache.c $(srcdir)/foreachcoresig.h
-xcache.lo: $(XCACHE_PROC_H) $(srcdir)/xc_shm.h $(srcdir)/stack.h $(srcdir)/xcache_globals.h $(srcdir)/xcache.c $(srcdir)/foreachcoresig.h
+$(builddir)/xcache.lo: $(XCACHE_PROC_H) $(srcdir)/xc_shm.h $(srcdir)/stack.h $(srcdir)/xcache_globals.h $(srcdir)/xcache.c $(srcdir)/foreachcoresig.h $(srcdir)/utils.h
+xcache.lo: $(XCACHE_PROC_H) $(srcdir)/xc_shm.h $(srcdir)/stack.h $(srcdir)/xcache_globals.h $(srcdir)/xcache.c $(srcdir)/foreachcoresig.h $(srcdir)/utils.h
 
 xcachesvnclean: clean
Index: /branches/1.3/xcache.c
===================================================================
--- /branches/1.3/xcache.c	(revision 619)
+++ /branches/1.3/xcache.c	(revision 620)
@@ -1286,7 +1286,7 @@
 	if (op_array->arg_info) {
 		for (i = 0; i < op_array->num_args; i++) {
-			efree((char*)op_array->arg_info[i].name);
-			if (op_array->arg_info[i].class_name) {
-				efree((char*)op_array->arg_info[i].class_name);
+			efree((char *) ZSTR_V(op_array->arg_info[i].name));
+			if (ZSTR_V(op_array->arg_info[i].class_name)) {
+				efree((char *) ZSTR_V(op_array->arg_info[i].class_name));
 			}
 		}
@@ -1434,5 +1434,4 @@
 		xc_php_caches = NULL;
 	}
-	xc_php_hcache.size = 0;
 
 	if (xc_var_caches) {
@@ -1440,5 +1439,4 @@
 		xc_var_caches = NULL;
 	}
-	xc_var_hcache.size = 0;
 
 	if (shm) {
@@ -1518,5 +1516,5 @@
 	}
 
-	if (xc_var_hcache.size && !XG(var_holds)) {
+	if (xc_initized && xc_var_hcache.size && !XG(var_holds)) {
 		XG(var_holds) = calloc(xc_var_hcache.size, sizeof(xc_stack_t));
 		for (i = 0; i < xc_var_hcache.size; i ++) {
