Index: trunk/utils.c
===================================================================
--- trunk/utils.c	(revision 393)
+++ trunk/utils.c	(revision 405)
@@ -624,5 +624,5 @@
 }
 /* }}} */
-static void xc_sandbox_install(xc_sandbox_t *sandbox TSRMLS_DC) /* {{{ */
+static void xc_sandbox_install(xc_sandbox_t *sandbox, xc_install_action_t install TSRMLS_DC) /* {{{ */
 {
 	int i;
@@ -668,7 +668,9 @@
 #endif
 
-	xc_undo_pass_two(CG(active_op_array) TSRMLS_CC);
-	xc_foreach_early_binding_class(CG(active_op_array), xc_early_binding_cb, (void *) sandbox TSRMLS_CC);
-	xc_redo_pass_two(CG(active_op_array) TSRMLS_CC);
+	if (install != XC_InstallNoBinding) {
+		xc_undo_pass_two(CG(active_op_array) TSRMLS_CC);
+		xc_foreach_early_binding_class(CG(active_op_array), xc_early_binding_cb, (void *) sandbox TSRMLS_CC);
+		xc_redo_pass_two(CG(active_op_array) TSRMLS_CC);
+	}
 
 	i = 1;
@@ -676,5 +678,5 @@
 }
 /* }}} */
-void xc_sandbox_free(xc_sandbox_t *sandbox, int install TSRMLS_DC) /* {{{ */
+void xc_sandbox_free(xc_sandbox_t *sandbox, xc_install_action_t install TSRMLS_DC) /* {{{ */
 {
 	/* restore first first install function/class */
@@ -689,9 +691,9 @@
 #endif
 
-	if (install) {
+	if (install != XC_NoInstall) {
 		CG(in_compilation)    = 1;
 		CG(compiled_filename) = sandbox->filename;
 		CG(zend_lineno)       = 0;
-		xc_sandbox_install(sandbox TSRMLS_CC);
+		xc_sandbox_install(sandbox, install TSRMLS_CC);
 		CG(in_compilation)    = 0;
 		CG(compiled_filename) = NULL;
