Datatable Primefaces Enviando Objeto Null Com Filtro

Galera, boa noite, tenho um datatable com primefaces. Nele possui colunas com os dados do Tipo Documento e uma coluna chamado Ações, que tem botão Editar e Excluir. Está funcionando 100%, seta o Objeto no Bean e faz o que tem fazer, alterar e excluir. Porém quando utilizo o Filtro do Primefaces, filtro alguma coisa, ele envia o objeto Null pro Bean. Alguma sugestão? Segue meu código.

<p:layoutUnit position="center" header="Sistema" scrollable="true">


				<h:form id="frmTipoDocumento">
					<p:fieldset legend="Gerenciamento de Tipo de Documentos" toggleable="true">
						<p:messages id="messages" showDetail="true" autoUpdate="true" closable="true" />

						<h:panelGrid columns="2"  id="pnTipoDocumento" style="font-family: Verdana;" >
							
							<h:outputLabel id="lbNome" value="*Nome:" for="nome"
								style="float: right;" />
							<p:inputText id="nome" size="50"
								value="#{tipodocumentoBean.tipoDocumento.nome}" required="true"
								requiredMessage="Campo [Nome] é obrigatório." />
							
							<h:outputLabel id="lbDepartamento" value="*Departamento: " for="departamento"
								style="float: right;" />
							<h:selectOneMenu id="departamento" value="#{tipodocumentoBean.departamentoID}"
								required="true" requiredMessage="Campo [Departamento] é obrigatório.">
							<f:selectItem itemLabel="-- Selecione --" itemValue="" />
							<f:selectItems value="#{departamentoBean.listDepartamento}" var="d"
							itemLabel="#{d.nome}" itemValue="#{d.id_departamento}" />
							</h:selectOneMenu>

							<h:inputHidden id="id_tipodoc"
								value="#{tipodocumentoBean.tipoDocumento.id_tipodoc}" />
						</h:panelGrid>

						<h:panelGrid columns="3"
							style="font-size: 12px; font-weight: bold;" >
							<p:commandButton value="Gravar" action="#{tipodocumentoBean.gravar()}"
								update="frmTipoDocumento, messages, dtTipoDocumentos" />
							<p:commandButton value="Limpar" update="frmTipoDocumento"
								process="@this" immediate="true"
								action="#{tipodocumentoBean.limpar()}" />
						</h:panelGrid>
						
						<br></br>

						<p:spacer height="10" />

						<p:dataTable id="dtTipoDocumentos"
							emptyMessage="Nenhum registro encontrado."
							value="#{tipodocumentoBean.listTipoDocumento}" var="t"
							style="text-align: center; font-size: 12px;" paginator="true"
							rows="10"
							paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
							rowsPerPageTemplate="10,20,50">

							<f:facet name="header">
								<h:outputText value="Registro de Tipo de Documentos" />
							</f:facet>

							<p:column id="nomeColumn" filterBy="#{t.nome}" filterMatchMode="contains">
								<f:facet name="header">
									<h:outputText value="Nome" />
								</f:facet>
								<h:outputText value="#{t.nome}" />
							</p:column>

							<p:column>
								<f:facet name="header">
									<h:outputText value="Departamento" />
								</f:facet>
								<h:outputText value="#{t.departamento.nome}" />
							</p:column>

							<p:column>
								<f:facet name="header">
									<h:outputText value="Ações" />
								</f:facet>
								<h:commandLink>
									<h:graphicImage title="Editar" url="images/edite.png"
										value="Editar" height="16px" width="16px" />									
										<p:ajax event="click"
										listener="#{tipodocumentoBean.preparaEditar(t)}" update="@form" />
								</h:commandLink>
								<t></t>
								<p:commandLink actionListener="#{tipodocumentoBean.setTipoDocumento(t)}"
									onclick="confirm.show()" immediate="true">
									<h:graphicImage value="images/delete.png" alt="Excluir"
										title="Excluir" style="border: none" height="16px"
										width="16px" />
								</p:commandLink>
							</p:column>

							<f:facet name="footer">
								<h:outputText
									value="Há um total de #{tipodocumentoBean.count} Tipo de Documento(s) cadastrado(s) no sistema." />
							</f:facet>
						</p:dataTable>
					</p:fieldset>
				</h:form>
				<h:form>
					<p:confirmDialog
						message="Tem certeza que deseja excluir este Tipo de Documento?"
						header="Excluir Tipo Documento" severity="alert" widgetVar="confirm"
						modal="true" appendToBody="true">
						<p:commandButton value="Sim"
							actionListener="#{tipodocumentoBean.excluir(t)}"
							onclick="confirm.hide()" immediate="true"
							update="frmTipoDocumento, messages, dtTipoDocumentos">
						</p:commandButton>
						<p:commandButton value="Não" onclick="confirm.hide();" />
					</p:confirmDialog>
				</h:form>
			</p:layoutUnit>

O mais inacreditável, que possuo uma página parecida do controle de usuário, e está funcionando 100% para ambas ocasiões, tanto sem filtro ou com filtro. Lembrando que os métodos “preparaEditar” que serve para alterar, é exatamente igual, tanto pro Tipo Documento quanto pro Usuário. Meu código:

<p:layoutUnit position="center" header="Sistema" scrollable="true">


				<h:form id="frmUsuario">
					<p:fieldset legend="Gerenciamento de Usuários" toggleable="true">
						<p:messages id="messages" showDetail="true" autoUpdate="true" closable="true" />

						<h:panelGrid columns="4" id="pnUsuário"	style="font-family: Verdana;"
							rendered="#{facesContext.externalContext.isUserInRole('PERM_ADMIN')}">
							
							<h:outputLabel id="lbLogin" value="*Login:" for="login"
								style="float: right;" />
							<p:inputText id="login" size="20" maxlength="15"
								value="#{usuarioBean.usuario.login}" required="true"
								requiredMessage="Campo [Login] é obrigatório."
								disabled="#{usuarioBean.alteracaoLogin()}" />

							<h:outputLabel id="lbNome" value="*Nome:" for="nome"
								style="float: right;" />
							<p:inputText id="nome" size="50"
								value="#{usuarioBean.usuario.nome}" required="true"
								requiredMessage="Campo [Nome] é obrigatório." />
								
							<h:outputLabel id="lbSenha" value="*Senha: " for="senha"
								style="float: right;" />
							<p:password id="senha" size="20" maxlength="6"
								value="#{usuarioBean.usuario.senha}" required="true"
								requiredMessage="Campo [Senha] é obrigatório." />

							<h:outputLabel id="lbAtivo" value="*Ativo: " for="ativo"
								style="float: right;" />
							<h:selectOneRadio id="ativo" value="#{usuarioBean.usuario.ativo}"
								required="true" requiredMessage="Campo [Ativo] é obrigatório.">
								<f:selectItem itemLabel="Sim" itemValue="1" />
								<f:selectItem itemLabel="Não" itemValue="0" />
							</h:selectOneRadio>
							
							<h:outputLabel id="lbRg" value="RG:" for="rg"
								style="float: right;" />
							<p:inputText id="rg" size="20" maxlength="15"
								value="#{usuarioBean.usuario.rg}" />

							<h:outputLabel id="lbPerfil" value="*Perfil: " for="perfil"
								style="float: right;" />
							<h:selectOneRadio id="perfil"
								value="#{usuarioBean.usuario.perfil}" required="true"
								requiredMessage="Campo [Perfil] é obrigatório.">
								<f:selectItem itemLabel="Administrador"	itemValue="Administrador" />
								<f:selectItem itemLabel="Usuário" itemValue="Usuário" />
							</h:selectOneRadio>

							<h:outputLabel id="lbCpf" value="CPF:" for="cpf"
								style="float: right;" />
							<p:inputMask mask="999.999.999-99" id="cpf" size="20"
								value="#{usuarioBean.usuario.cpf}" />

							<h:inputHidden id="id_usuario"
								value="#{usuarioBean.usuario.id_usuario}" />
						</h:panelGrid>

						<h:panelGrid columns="3"
							style="font-size: 12px; font-weight: bold;"
							rendered="#{facesContext.externalContext.isUserInRole('PERM_ADMIN')}">
							<p:commandButton value="Gravar" action="#{usuarioBean.gravar()}"
								update="frmUsuario, messages, dtUsuarios" />
							<p:commandButton value="Limpar" update="frmUsuario"
								process="@this" immediate="true"
								action="#{usuarioBean.limpar()}" />
						</h:panelGrid>

						<br></br>

						<p:spacer height="10" />

						<p:dataTable id="dtUsuarios"
							emptyMessage="Nenhum registro encontrado."
							value="#{usuarioBean.listUsuario}" var="u"
							style="text-align: center; font-size: 12px;" paginator="true"
							rows="10"
							paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
							rowsPerPageTemplate="10,20,50">

							<f:facet name="header">
								<h:outputText value="Registro de Usuários" />
							</f:facet>

							<p:column id="nomeColumn" filterBy="#{u.nome}"
								headerText="Filtrar por nome" filterMatchMode="contains">
								<f:facet name="header">
									<h:outputText value="Nome" />
								</f:facet>
								<h:outputText value="#{u.nome}" />
							</p:column>

							<p:column id="loginColumn" filterBy="#{u.login}"
								headerText="Filtrar por login" filterMatchMode="contains">
								<f:facet name="header">
									<h:outputText value="Login" />
								</f:facet>
								<h:outputText value="#{u.login}" />
							</p:column>

							<p:column>
								<f:facet name="header">
									<h:outputText value="Perfil" />
								</f:facet>
								<h:outputText value="#{u.perfil}" />
							</p:column>

							<p:column>
								<f:facet name="header">
									<h:outputText value="Ativo" />
								</f:facet>
								<h:outputText value="#{u.ativo}" />
							</p:column>

							<p:column>
								<f:facet name="header">
									<h:outputText value="RG" />
								</f:facet>
								<h:outputText value="#{u.rg}" />
							</p:column>

							<p:column>
								<f:facet name="header">
									<h:outputText value="CPF" />
								</f:facet>
								<h:outputText value="#{u.cpf}" />
							</p:column>

							<p:column>
								<f:facet name="header">
									<h:outputText value="Ações" />
								</f:facet>
								<h:commandLink>
									<h:graphicImage title="Editar" url="images/edite.png"
										value="Editar" height="16px" width="16px" />
									<p:ajax event="click"
										listener="#{usuarioBean.preparaEditar(u)}" update="@form" />
								</h:commandLink>
								<t></t>
								<p:commandLink actionListener="#{usuarioBean.setUsuario(u)}"
									onclick="confirm.show()" immediate="true">
									<h:graphicImage value="images/delete.png" alt="Excluir"
										title="Excluir" style="border: none" height="16px"
										width="16px" />
								</p:commandLink>
							</p:column>

							<f:facet name="footer">
								<h:outputText
									value="Há um total de #{usuarioBean.count} Usuário(s) cadastrado(s) no sistema." />
							</f:facet>
						</p:dataTable>
					</p:fieldset>
				</h:form>
				<h:form>
					<p:confirmDialog
						message="Tem certeza que deseja excluir este usuário?"
						header="Excluir registro" severity="alert" widgetVar="confirm"
						modal="true" appendToBody="true">
						<p:commandButton value="Sim"
							actionListener="#{usuarioBean.excluir(u)}"
							onclick="confirm.hide()" immediate="true"
							update="frmUsuario, messages, dtUsuarios">
						</p:commandButton>
						<p:commandButton value="Não" onclick="confirm.hide();" />
					</p:confirmDialog>
				</h:form>
			</p:layoutUnit>

Olá…

Estou exatamente com o mesmo problema…

O dataTable exibe e envia para o bean os dados desejados quando clico em uma linha, porém ao utilizar o filtro é enviado um objeto NULL para o bean…

Alguém tem idéia de como resolver?

Também estou com o mesmo problema…