Botão cadastrar apagando atributo

Beleza
Pessoal eu estou usando primefaces e tenho um p:edialog que tem uma tabela quando essa tabela é selecionada o valor deve ser setado no Bean isso acontece corretamente, o valor aparece em um campo de feedback na tela principal blz, só que quando eu clico em cadastrar o valor chega nulo.
Alguem tem alguma ideia do que pode ser?

verifica se o componente esta dentro de um form

Sim tanto o botão cadastrar como o dialogo estão dentro de forms

Fidle seria possivel vc postar seu codigo!
Vlw

Muito obrigado pela ajuda a código é o seguinte

página principal

<h:body>
     <h:form prependId="false">
          <p:panel id="panel0" header="Caregamento">
                 <p:panel id="panel1">
                         <h:panelGrid columns="2">
                                <h:outputLabel value="Nome:" />
                                <h:inputText value="#{MBean.usuario.nome}"/><br/>
			        <p:commandButton onclick="usuarios.show()" value="Selecionar Usuario"/>
                          </h:panelGrid>
                 </p:panel>

                 <p:panel id="panel2">
                      <h:panelGrid columns="2">
                              <h:outputLabel value="Cidade:"/>
                              <h:selectOneMenu value="#{MBean.idCidade}">
                                     <f:selectItems value="#{MBean.cidades}" />
                              </h:selectOneMenu>                                         
                       </h:panelGrid>
                 </p:panel>

                <p:panel id="panel3">
                      <h:panelGrid columns="2">
		           <h:outputLabel value="Carga: "/>
                           <h:inputText id="cargaNome" value="#{MBean.carga.nome}"/><br/>
                           <p:commandButton onclick="cargas.show()" value="Selecionar Carga"/>
                      </h:panelGrid>
                 </p:panel>
                    <p:commandButton value="Salvar" actionListener="#{MBean.registrar}" immediate="true" update="panel0"/>
	   </p:panel>		
     </h:form>
</h:body>

Dialog

<h:body>
    <h:form id="formCarga" prependId="false">
            <p:dialog header="Selecionar Carga" modal="true" widgetVar="pegarCarga" height="800" width="800">
                <p:dataTable id="tabela" var="carga" value="#{MBean.cargas}"
                             selection="#{MBean.carga}" selectionMode="single" onRowSelectStart="pegarCarga.hide();" onRowSelectUpdate="panel3">
					<p:column>
                        <f:facet name="header">
                            <h:outputLabel value="Numero"/>
                        </f:facet>
                        <h:outputText value="#{carga.id}"/>
                    </p:column>
                    <p:column>
                        <f:facet name="header">
                            <h:outputLabel value="Nome"/>
                        </f:facet>
                        <h:outputText value="#{carga.nome}"/>
                    </p:column>
                </p:dataTable>
            </p:dialog>
        </h:form>
</h:body>

Bem pessoal o bean é sessionscoped e se eu colocar o dialog na página principal ele funciona corretamente, sera que pode ser alguma coisa com o facelets do jsf 2

Fidle da uma olhada como o pessoal do primefaces cria o dialog
http://www.primefaces.org/showcase/ui/dialog.jsf
Vlw

Sim eu criei o dialog com base nisso mas em páginas separadas utilizando o facelets do jsf , acredito que o problema não seja esse, debugando eu notei que os dados são setados no método set do Mbean mas quando esse valor é chamado no método de cadastro chega null.

Fidle, qual o escopo do seu bean?
view
request
session
aplication

o bean tem o escopo session cara eu acredito que o problema é em uma das fases do jsf.

Fidle, vou debugar seu codigo e respondo a noite?
Blz