  				opline->op2 = *class_name;
  				break;
  		}
-@@ -1861,7 +2002,8 @@
+@@ -1355,6 +1497,7 @@
+ 	}
+ 	opline->result.u.var = get_temporary_variable(CG(active_op_array));
+ 	opline->result.op_type = IS_CONST; /* FIXME: Hack so that INIT_FCALL_BY_NAME still knows this is a class */
++
+ 	*result = opline->result;
+ }
+ 
+@@ -1385,7 +1528,7 @@
+ 	opline->opcode = ZEND_INIT_STATIC_METHOD_CALL;
+ 	opline->op1 = *class_name;
+ 	opline->op2 = *method_name;
+-
++	
+ 	if (opline->op2.op_type == IS_CONST) {
+ 		if ((sizeof(ZEND_CONSTRUCTOR_FUNC_NAME)-1) == Z_STRLEN(opline->op2.u.constant) &&
+ 		    memcmp(Z_STRVAL(opline->op2.u.constant), ZEND_CONSTRUCTOR_FUNC_NAME, sizeof(ZEND_CONSTRUCTOR_FUNC_NAME)-1) == 0) {
+@@ -1861,7 +2004,8 @@
  		return 1; /* method doesn't exist in child, copy from parent */
  	}
  

 		&& parent->common.scope != (child->common.prototype ? child->common.prototype->common.scope : child->common.scope)
 		&& child->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_IMPLEMENTED_ABSTRACT)) {
 		zend_error(E_COMPILE_ERROR, "Can't inherit abstract function %s::%s() (previously declared abstract in %s)", 
@@ -2268,7 +2410,7 @@
 			/* We currently don't early-bind classes that implement interfaces */
 			return;
 		default:

 	} else {
 		cur_arg_info->class_name = NULL;
 		cur_arg_info->class_name_len = 0;
@@ -1337,7 +1478,7 @@
 	CG(catch_begin) = fetch_class_op_number;
 	if (class_name->op_type == IS_CONST) {
 		int fetch_type;
-
+		
 		fetch_type = zend_get_class_fetch_type(class_name->u.constant.value.str.val, class_name->u.constant.value.str.len);
 		switch (fetch_type) {
 			case ZEND_FETCH_CLASS_SELF:
@@ -1347,6 +1488,7 @@
 				zval_dtor(&class_name->u.constant);
 				break;
 			default:
