RichFaces + Ajax

Boa tarde, pessoal.

Já faz algum tempo que estou com o seguinte problema e não consigo resolver.

Tenho o seguinte trecho de código no jsp:

                    <t:panelGroup>
                        <t:outputText value="* " styleClass="requiredField" />
                        <t:outputLabel for="cod_contrato" value="Código do Contrato" styleClass="label" />
                    </t:panelGroup>
                    <t:panelGroup colspan="3">
                        <t:outputText value="* " styleClass="requiredField" />
                        <t:outputLabel for="titular_contrato" value="Titular do Contrato" styleClass="label" />
                    </t:panelGroup>

                    <t:panelGroup>
                        <h:inputText id="cod_contrato" value="#{ReservaMB.obj.idContrato.idTitBanstur}" binding="#{ReservaMB.uiContrato}"
                                     styleClass="textField" size="10" maxlength="10" required="false" />
                        <a4j:commandButton image="images/refresh.gif" actionListener="#{ReservaMB.qryContratoByCodigo}" immediate="true" reRender="cod_contrato,titular_contrato,nomeUsuario" />
                        <rich:message for="cod_contrato" styleClass="msgError" />
                    </t:panelGroup>
                    <t:panelGroup colspan="3">
                        <h:inputText id="titular_contrato" value="#{ReservaMB.obj.idContrato.idCliente.nome}" styleClass="textField" size="50" maxlength="50" readonly="true" />
                        <h:commandButton image="images/find.gif" action="#{ReservaMB.selectContrato}" immediate="true" />
                    </t:panelGroup>

                    <t:panelGroup colspan="4" >
                        <h:outputText value="* " styleClass="requiredField" />
                        <h:outputLabel for="nomeUsuario" value="Usuario" styleClass="label" />
                    </t:panelGroup>
                    <t:panelGroup colspan="4" >
                        <h:inputText id="nomeUsuario" value="#{ReservaMB.obj.nomeUsuario}" styleClass="textField" size="80" maxlength="80" required="false"
                                     onkeyup="this.value = this.value.toUpperCase()" />
                        <h:message for="nomeUsuario" styleClass="msgError"/>
                    </t:panelGroup>

e no MBean :

    public void qryContratoByCodigo(ActionEvent evt) {
        try {
            Integer codContrato = Integer.valueOf((String)uiContrato.getSubmittedValue());
            this.getObj().setIdContrato(ContratoDAO.findByIdTitBanstur(null, codContrato));
            this.getObj().setNomeUsuario(this.getObj().getIdContrato().getIdCliente().getNome());
            JSFHelper.addMessage("cod_contrato", "Hotel encontrado !");
        } catch (SystemException e) {
            String msgError = "Erro ocorrido ao consultar Contrato por código.";
            JSFHelper.setSessionAttribute("session.SystemException", new SystemException(msgError, e));
            JSFHelper.addMessage("cod_contrato", "Hotel nao encontrado !");
        }
    }

O problema é que o ajax somente esta redenizando corretamente o inputText titular_contrato.
E o rich:message for=“cod_contrato” e o h:inputText id=“nomeUsuario” não estão sendo atualizados, embora na depuração constatei que a propriedade nomeUsuario foi atualizada corretamente, mas na visão o ajax não esta atualizando.
Não estou conseguindo descobrir o que pode ser.

OBS.: se no h:inputText id=“nomeUsuario” acrecentar a propriedade readonly=“true” dai o ajax funciona.