diff --git a/mlair/helpers/filter.py b/mlair/helpers/filter.py
index 2e42d4c058c51f02ca3e65ebdcd92140e286da4b..2231fcd25afdc70669b473d4d7be6fef4e66b4f1 100644
--- a/mlair/helpers/filter.py
+++ b/mlair/helpers/filter.py
@@ -55,7 +55,7 @@ class FIRFilter:
             h.append(hi)
 
             # visualization
-            plot_data.extend(self.create_visualization(fi, input_data, plot_dates, self.time_dim, self.fs, hi,
+            plot_data.append(self.create_visualization(fi, input_data, plot_dates, self.time_dim, self.fs, hi,
                                                        self.minimum_length, self.order, i, self.offset, self.var_dim))
             # calculate residuum
             input_data = input_data - fi
@@ -260,7 +260,7 @@ class ClimateFIRFilter(FIRFilter):
                 input_data = self._shift_data(input_data, coord_range, self.time_dim, new_dim) - fi
 
             # create new apriori information for next iteration if no further apriori is provided
-            if len(apriori_list) <= i + 1:
+            if len(apriori_list) < len(self.order):  #TODO: is this true? or should it be < i+1 resp. <= i
                 logging.info(f"{self.station_name}: create diurnal_anomalies")
                 if self.apriori_diurnal is True and sampling == "1H":
                     diurnal_anomalies = self.create_seasonal_hourly_mean(input_data.sel({new_dim: 0}, drop=True),
diff --git a/mlair/plotting/data_insight_plotting.py b/mlair/plotting/data_insight_plotting.py
index 581a30b16680f1faa8a13a96a6632f642370375e..1eee96623d4fed6fcfb23fd1438a954a4aca230f 100644
--- a/mlair/plotting/data_insight_plotting.py
+++ b/mlair/plotting/data_insight_plotting.py
@@ -1187,22 +1187,23 @@ class PlotFirFilter(AbstractPlotClass):  # pragma: no cover
     def _prepare_data(self, data):
         """Restructure plot data."""
         plot_dict = {}
-        for i in range(len(data)):
-            plot_data = data[i]
-            t0 = plot_data.get("t0")
-            filter_input = plot_data.get("filter_input")
-            filtered = plot_data.get("filtered")
-            var_dim = plot_data.get("var_dim")
-            time_dim = plot_data.get("time_dim")
-            for var in filtered.coords[var_dim].values:
-                plot_dict_var = plot_dict.get(var, {})
-                plot_dict_t0 = plot_dict_var.get(t0, {})
-                plot_dict_order = {"filter_input": filter_input.sel({var_dim: var}, drop=True),
-                                   "filtered": filtered.sel({var_dim: var}, drop=True),
-                                   "time_dim": time_dim}
-                plot_dict_t0[i] = plot_dict_order
-                plot_dict_var[t0] = plot_dict_t0
-                plot_dict[var] = plot_dict_var
+        for i in range(len(data)):  # filter component
+            for j in range(len(data[i])):  # t0 counter
+                plot_data = data[i][j]
+                t0 = plot_data.get("t0")
+                filter_input = plot_data.get("filter_input")
+                filtered = plot_data.get("filtered")
+                var_dim = plot_data.get("var_dim")
+                time_dim = plot_data.get("time_dim")
+                for var in filtered.coords[var_dim].values:
+                    plot_dict_var = plot_dict.get(var, {})
+                    plot_dict_t0 = plot_dict_var.get(t0, {})
+                    plot_dict_order = {"filter_input": filter_input.sel({var_dim: var}, drop=True),
+                                       "filtered": filtered.sel({var_dim: var}, drop=True),
+                                       "time_dim": time_dim}
+                    plot_dict_t0[i] = plot_dict_order
+                    plot_dict_var[t0] = plot_dict_t0
+                    plot_dict[var] = plot_dict_var
         return plot_dict
 
     def _plot(self, plot_dict):