diff --git a/src/main/java/org/primefaces/component/api/FilterableTable.java b/src/main/java/org/primefaces/component/api/FilterableTable.java
index <HASH>..<HASH> 100644
--- a/src/main/java/org/primefaces/component/api/FilterableTable.java
+++ b/src/main/java/org/primefaces/component/api/FilterableTable.java
@@ -165,10 +165,12 @@ public interface FilterableTable extends ColumnHolder {
         else {
             UIColumn column = filterMeta.getColumn();
             UIComponent filterFacet = column.getFacet("filter");
-            boolean hasCustomFilter = ComponentUtils.shouldRenderFacet(filterFacet);
+            boolean hasCustomFilter = filterFacet != null;
             if (column instanceof DynamicColumn) {
                 if (hasCustomFilter) {
                     ((DynamicColumn) column).applyModel();
+                    // UIColumn#rendered might change after restoring p:columns state at the right index
+                    hasCustomFilter = ComponentUtils.shouldRenderFacet(filterFacet);
                 }
                 else {
                     ((DynamicColumn) column).applyStatelessModel();
Fix #<I> - Datatable: filter facet does not work with p:columns