diff --git a/src/explorviz/live_trace_processing/filter/counting/RecordCountingFilter.java b/src/explorviz/live_trace_processing/filter/counting/RecordCountingFilter.java
index f7a60a17d41b392402cb92baa5c912913e39966c..64fda9405fc50ba69810b580d3686ef1a2d6503f 100644
--- a/src/explorviz/live_trace_processing/filter/counting/RecordCountingFilter.java
+++ b/src/explorviz/live_trace_processing/filter/counting/RecordCountingFilter.java
@@ -5,6 +5,8 @@ import explorviz.live_trace_processing.filter.IPipeReceiver;
 import explorviz.live_trace_processing.record.IRecord;
 import explorviz.live_trace_processing.record.event.AbstractBeforeEventRecord;
 import explorviz.live_trace_processing.record.event.AbstractEventRecord;
+import explorviz.live_trace_processing.record.misc.TerminateRecord;
+import explorviz.live_trace_processing.record.misc.TimedPeriodRecord;
 import explorviz.live_trace_processing.record.trace.Trace;
 
 public class RecordCountingFilter extends AbstractFilter implements IRecordCounting {
@@ -25,10 +27,22 @@ public class RecordCountingFilter extends AbstractFilter implements IRecordCount
 							.getRuntimeStatisticInformation().getCount());
 				}
 			}
+			deliver(record);
 		} else if (record instanceof AbstractBeforeEventRecord) {
 			counter.inputObjectsCount(1);
+			deliver(record);
+		} else if (record instanceof TimedPeriodRecord) {
+			periodicFlush(record);
+			// deliver(record);
+		} else if (record instanceof TerminateRecord) {
+			terminate();
+			deliver(record);
+		} else {
+			deliver(record);
 		}
+	}
+
+	private void terminate() {
 
-		deliver(record);
 	}
 }