diff --git a/src/mol-io/writer/cif/encoder.ts b/src/mol-io/writer/cif/encoder.ts
index 7a2daef680edb8af901975ee41afcd589a0bd9d1..c8fa5f8ee870bee444154c2a594d90d7a277a4c2 100644
--- a/src/mol-io/writer/cif/encoder.ts
+++ b/src/mol-io/writer/cif/encoder.ts
@@ -152,6 +152,11 @@ export namespace Category {
             const list = d.behavior === 'whitelist' ? (field ? field_whitelist : cat_whitelist) : (field ? field_blacklist : cat_blacklist);
 
             list[list.length] = name;
+
+            // ensure categories are aware about whitelisted columns
+            if (field && !cat_whitelist.includes(d.categoryName)) {
+                cat_whitelist[cat_whitelist.length] = d.categoryName;
+            }
         }
 
         const wlcatcol = field_whitelist.map(it => it.split('.')[0]);