diff --git a/saqc/flagger/baseflagger.py b/saqc/flagger/baseflagger.py
index dd3016de9ee711cd7a763f71c10ba18e6fd0148c..be0b547ea74090410ffc640245fc55d16becbfee 100644
--- a/saqc/flagger/baseflagger.py
+++ b/saqc/flagger/baseflagger.py
@@ -64,14 +64,16 @@ class BaseFlagger(ABC):
         if data is not None:
             if not isinstance(data, diosT):
                 data = dios.DictOfSeries(data)
-            flags = data.copy()
-            flags[:] = self.UNFLAGGED
+
+            flags = dios.DictOfSeries(columns=data.columns)
+            for c in flags.columns:
+                flags[c] = pd.Series(self.UNFLAGGED, index=data[c].index)
+            flags = flags.astype(self.dtype)
         else:
             if not isinstance(data, diosT):
                 flags = dios.DictOfSeries(flags)
 
-        newflagger = self.copy()
-        newflagger._flags = flags.astype(self.dtype)
+        newflagger = self.copy(flags=flags)
         return newflagger
 
     def rename(self, field: str, new_name: str):