diff --git a/src/explorviz/live_trace_processing/filter/counting/RecordCountingFilter.java b/src/explorviz/live_trace_processing/filter/counting/RecordCountingFilter.java
index 64fda9405fc50ba69810b580d3686ef1a2d6503f..06034c7f0551768beb0d8b12abac3e30662b687b 100644
--- a/src/explorviz/live_trace_processing/filter/counting/RecordCountingFilter.java
+++ b/src/explorviz/live_trace_processing/filter/counting/RecordCountingFilter.java
@@ -3,7 +3,7 @@ package explorviz.live_trace_processing.filter.counting;
 import explorviz.live_trace_processing.filter.AbstractFilter;
 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.AbstractBeforeOperationEventRecord;
 import explorviz.live_trace_processing.record.event.AbstractEventRecord;
 import explorviz.live_trace_processing.record.misc.TerminateRecord;
 import explorviz.live_trace_processing.record.misc.TimedPeriodRecord;
@@ -21,14 +21,14 @@ public class RecordCountingFilter extends AbstractFilter implements IRecordCount
 		if (record instanceof Trace) {
 			final Trace trace = (Trace) record;
 			for (final AbstractEventRecord event : trace.getTraceEvents()) {
-				if (event instanceof AbstractBeforeEventRecord) {
-					final AbstractBeforeEventRecord abstractBeforeEventRecord = (AbstractBeforeEventRecord) event;
+				if (event instanceof AbstractBeforeOperationEventRecord) {
+					final AbstractBeforeOperationEventRecord abstractBeforeEventRecord = (AbstractBeforeOperationEventRecord) event;
 					counter.inputObjectsCount(abstractBeforeEventRecord
 							.getRuntimeStatisticInformation().getCount());
 				}
 			}
 			deliver(record);
-		} else if (record instanceof AbstractBeforeEventRecord) {
+		} else if (record instanceof AbstractBeforeOperationEventRecord) {
 			counter.inputObjectsCount(1);
 			deliver(record);
 		} else if (record instanceof TimedPeriodRecord) {
diff --git a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java
index 0bd59fc30ce011c2588e94ef9eac2bf6aeaae344..7ce0d52b169a05aa689f7b63c20d4ce6722e7f81 100644
--- a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java
+++ b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java
@@ -8,9 +8,7 @@ import explorviz.live_trace_processing.Constants;
 import explorviz.live_trace_processing.reader.TimeProvider;
 import explorviz.live_trace_processing.record.event.AbstractAfterEventRecord;
 import explorviz.live_trace_processing.record.event.AbstractAfterFailedEventRecord;
-import explorviz.live_trace_processing.record.event.AbstractAfterRemoteEventRecord;
 import explorviz.live_trace_processing.record.event.AbstractBeforeEventRecord;
-import explorviz.live_trace_processing.record.event.AbstractBeforeRemoteEventRecord;
 import explorviz.live_trace_processing.record.event.AbstractEventRecord;
 import explorviz.live_trace_processing.record.trace.RuntimeStatisticInformation;
 import explorviz.live_trace_processing.record.trace.Trace;
@@ -36,11 +34,8 @@ class TraceReconstructionBuffer {
 			beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1, -1, -1));
 			// TODO if invalid, trace would be null...
 		} else if ((event instanceof AbstractAfterFailedEventRecord)
-				|| (event instanceof AbstractAfterEventRecord)
-				|| (event instanceof AbstractAfterRemoteEventRecord)) {
+				|| (event instanceof AbstractAfterEventRecord)) {
 			openEvents--;
-		} else if ((event instanceof AbstractBeforeRemoteEventRecord)) {
-			openEvents++;
 		}
 
 		events.add(event);
diff --git a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java
index d08597277d8089e262574f9c5ee66fbe82a3d051..cb5a78a41ad4c02dc82d1523cefa413a4904e673 100644
--- a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java
+++ b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java
@@ -4,7 +4,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
-import java.util.concurrent.ConcurrentSkipListMap;
+import java.util.TreeMap;
 
 import explorviz.live_trace_processing.Constants;
 import explorviz.live_trace_processing.filter.AbstractFilter;
@@ -19,7 +19,7 @@ import explorviz.live_trace_processing.record.trace.Trace;
 public final class TraceReconstructionFilter extends AbstractFilter implements ITraceReconstruction {
 	private final long maxTraceTimeout;
 
-	private final Map<Long, TraceReconstructionBuffer> traceId2trace = new ConcurrentSkipListMap<Long, TraceReconstructionBuffer>();
+	private final Map<Long, TraceReconstructionBuffer> traceId2trace = new TreeMap<Long, TraceReconstructionBuffer>();
 
 	public TraceReconstructionFilter(final long maxTraceTimeout,
 			final ITraceReduction traceReduction) {
diff --git a/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationBuffer.java b/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationBuffer.java
index 5f1cbf414b8e40d707810aa7d86a9ce31dcd6a06..f276652826e996263fe7906389d7109dd9b55a5b 100644
--- a/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationBuffer.java
+++ b/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationBuffer.java
@@ -3,6 +3,7 @@ package explorviz.live_trace_processing.filter.reduction;
 import java.util.List;
 
 import explorviz.live_trace_processing.record.event.AbstractBeforeEventRecord;
+import explorviz.live_trace_processing.record.event.AbstractBeforeOperationEventRecord;
 import explorviz.live_trace_processing.record.event.AbstractEventRecord;
 import explorviz.live_trace_processing.record.trace.Trace;
 
@@ -38,9 +39,17 @@ class TracesSummarizationBuffer {
 					final AbstractBeforeEventRecord abstractBeforeEventRecord2 = (AbstractBeforeEventRecord) records
 							.get(i);
 
-					abstractBeforeEventRecord.getRuntimeStatisticInformation().merge(
-							abstractBeforeEventRecord2.getRuntimeStatisticInformation(),
-							abstractBeforeEventRecord2.getObjectId());
+					if (abstractBeforeEventRecord2 instanceof AbstractBeforeOperationEventRecord) {
+						final AbstractBeforeOperationEventRecord abstractBeforeOperationEventRecord = (AbstractBeforeOperationEventRecord) abstractBeforeEventRecord2;
+						abstractBeforeEventRecord
+								.getRuntimeStatisticInformation()
+								.merge(abstractBeforeOperationEventRecord
+										.getRuntimeStatisticInformation(),
+										abstractBeforeOperationEventRecord.getObjectId());
+					} else {
+						abstractBeforeEventRecord.getRuntimeStatisticInformation().merge(
+								abstractBeforeEventRecord2.getRuntimeStatisticInformation(), 0);
+					}
 				}
 			}
 		}
diff --git a/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java b/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java
index 711f320bac23a6d8b1370d9cd8c3ef684a721302..0f56a6e3a7f592e9b7d7ee5d4a19ebd3491beeb3 100644
--- a/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java
+++ b/src/explorviz/live_trace_processing/filter/reduction/TracesSummarizationFilter.java
@@ -3,7 +3,7 @@ package explorviz.live_trace_processing.filter.reduction;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.ConcurrentSkipListMap;
+import java.util.TreeMap;
 
 import explorviz.live_trace_processing.Constants;
 import explorviz.live_trace_processing.filter.AbstractFilter;
@@ -11,6 +11,7 @@ import explorviz.live_trace_processing.filter.IPipeReceiver;
 import explorviz.live_trace_processing.reader.TimeProvider;
 import explorviz.live_trace_processing.record.IRecord;
 import explorviz.live_trace_processing.record.event.AbstractBeforeEventRecord;
+import explorviz.live_trace_processing.record.event.AbstractBeforeOperationEventRecord;
 import explorviz.live_trace_processing.record.event.AbstractEventRecord;
 import explorviz.live_trace_processing.record.misc.TerminateRecord;
 import explorviz.live_trace_processing.record.misc.TimedPeriodRecord;
@@ -20,7 +21,7 @@ import explorviz.live_trace_processing.record.trace.TraceComperator;
 public class TracesSummarizationFilter extends AbstractFilter implements ITraceReduction {
 	private final long maxCollectionDuration;
 
-	private final Map<Trace, TracesSummarizationBuffer> trace2buffer = new ConcurrentSkipListMap<Trace, TracesSummarizationBuffer>(
+	private final Map<Trace, TracesSummarizationBuffer> trace2buffer = new TreeMap<Trace, TracesSummarizationBuffer>(
 			new TraceComperator());
 
 	public TracesSummarizationFilter(final long maxCollectionDuration,
@@ -71,8 +72,16 @@ public class TracesSummarizationFilter extends AbstractFilter implements ITraceR
 			final AbstractEventRecord event = trace.getTraceEvents().get(i);
 			if (event instanceof AbstractBeforeEventRecord) {
 				final AbstractBeforeEventRecord abstractBeforeEventRecord = (AbstractBeforeEventRecord) event;
-				abstractBeforeEventRecord.getRuntimeStatisticInformation().makeAccumulator(
-						abstractBeforeEventRecord.getObjectId());
+
+				if (abstractBeforeEventRecord instanceof AbstractBeforeOperationEventRecord) {
+					final AbstractBeforeOperationEventRecord abstractBeforeOperationEventRecord = (AbstractBeforeOperationEventRecord) abstractBeforeEventRecord;
+
+					abstractBeforeOperationEventRecord.getRuntimeStatisticInformation()
+							.makeAccumulator(abstractBeforeOperationEventRecord.getObjectId());
+				} else {
+					abstractBeforeEventRecord.getRuntimeStatisticInformation().makeAccumulator(0);
+
+				}
 			}
 		}
 	}