rem: if (*pCode = 'PUSH')
add: if (*pCode == 'PUSH')
context: static status_t handle_reply(port_id   reply_port,                             int32*    pCode,                             bigtime_t timeout,                             BMessage* reply){	status_t err;	do	{		err = port_buffer_size_etc(reply_port, 8, timeout);	} while (err == B_INTERRUPTED);	if (err < 0)	{		return err;	}	// The API lied. It really isn't an error code, but the message size...	char* pAllocd = NULL;	char* pMem    = NULL;	char tmp[0x800];	if (err < 0x800)	{		pMem = tmp;	}	else	{		pAllocd = new char[0x800];		pMem = pAllocd;	}	do	{		err = read_port(reply_port, pCode, pMem, err);	} while (err == B_INTERRUPTED);	if (err < 0)	{		return err;	}	if (*pCode = 'PUSH')	{		return B_ERROR;	}	if (*pCode != 'pjpp')	{		return B_OK;	}	err = reply->Unflatten(pMem);	// There seems to be a bug in the original Be implementation.	// It never free'd pAllocd !	if (pAllocd)	{		delete[] pAllocd;	}	return err;}