diff --git a/src/META-INF/explorviz.live_trace_processing.default.properties b/src/META-INF/explorviz.live_trace_processing.default.properties
index f50fe0b871801200a9e1ed3cd1fef8d2a6634206..2ca95e1d69462fe7c1b198208f4956725055f361 100644
--- a/src/META-INF/explorviz.live_trace_processing.default.properties
+++ b/src/META-INF/explorviz.live_trace_processing.default.properties
@@ -17,7 +17,7 @@ explorviz.live_trace_processing.tcp_reader_disruptor_size=32
 explorviz.live_trace_processing.trace_reconstruction_output_buffer_size=512
 explorviz.live_trace_processing.trace_reconstruction_disruptor_size=32
 
-explorviz.live_trace_processing.trace_reconstruction_buffer_initial_size=128
+explorviz.live_trace_processing.trace_reconstruction_buffer_initial_size=1024
 
 explorviz.live_trace_processing.trace_summarization_output_buffer_size=64
 explorviz.live_trace_processing.trace_summarization_disruptor_size=16
diff --git a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java
index 57675813c5a832602ec2221635c3ea01ffeccd09..ebb21e48ab9e1300e225981fdb4deddae3f9c549 100644
--- a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java
+++ b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java
@@ -30,6 +30,14 @@ class TraceReconstructionBuffer {
 
 		if (event instanceof AbstractBeforeEventRecord) {
 			openEvents++;
+			final AbstractBeforeEventRecord beforeEvent = (AbstractBeforeEventRecord) event;
+			beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1, -1, -1)); // TODO
+																									// if
+																									// invalid
+																									// trace
+																									// would
+																									// be
+																									// null...
 		} else if ((event instanceof AbstractAfterFailedEventRecord)
 				|| (event instanceof AbstractAfterEventRecord)) {
 			openEvents--;
@@ -75,8 +83,6 @@ class TraceReconstructionBuffer {
 		for (final AbstractEventRecord event : events) {
 			if (event instanceof AbstractBeforeEventRecord) {
 				final AbstractBeforeEventRecord beforeEvent = (AbstractBeforeEventRecord) event;
-				beforeEvent.setRuntimeStatisticInformation(new RuntimeStatisticInformation(1, -1,
-						-1)); // TODO if invalid trace would be null...
 				stack.push(beforeEvent);
 			} else if ((event instanceof AbstractAfterEventRecord)
 					|| (event instanceof AbstractAfterFailedEventRecord)) {
@@ -90,6 +96,6 @@ class TraceReconstructionBuffer {
 				}
 			}
 		}
-		return new Trace(events, valid);
+		return new Trace(new ArrayList<AbstractEventRecord>(events), valid);
 	}
 }
diff --git a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java
index d3498437ad165c21f997309d7fb91e966ba60b40..9dce7c921118e3cb2d5c787cc80568d65d817fbc 100644
--- a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java
+++ b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java
@@ -39,8 +39,9 @@ public final class TraceReconstructionFilter extends AbstractFilter implements I
 			traceBuffer.insertEvent(abstractOperationEvent);
 
 			if (traceBuffer.isFinished()) {
-				traceId2trace.remove(traceId);
 				deliver(traceBuffer.toTrace(true));
+
+				traceId2trace.remove(traceId);
 			}
 		} else if (record instanceof Trace) {
 			final Trace trace = (Trace) record;
@@ -88,7 +89,7 @@ public final class TraceReconstructionFilter extends AbstractFilter implements I
 			}
 		}
 
-		for (final Long traceIdToRemove : traceIdsToRemove) {
+		for (final long traceIdToRemove : traceIdsToRemove) {
 			traceId2trace.remove(traceIdToRemove);
 		}
 	}
diff --git a/src/explorviz/live_trace_processing/filter/reduction/summarization/TracePatternSummarizationFilter.java b/src/explorviz/live_trace_processing/filter/reduction/summarization/TracePatternSummarizationFilter.java
index 6683064f919c951f22771d9201214c861df47545..90b0fbed77f77d200e3298df6071cd7ea4278cde 100644
--- a/src/explorviz/live_trace_processing/filter/reduction/summarization/TracePatternSummarizationFilter.java
+++ b/src/explorviz/live_trace_processing/filter/reduction/summarization/TracePatternSummarizationFilter.java
@@ -22,6 +22,8 @@ public class TracePatternSummarizationFilter extends AbstractFilter implements I
 	private final Map<Trace, TracePatternSummarizationBuffer> trace2buffer = new ConcurrentSkipListMap<Trace, TracePatternSummarizationBuffer>(
 			new TraceComperator());
 
+	// TODO cache for buffer objects
+
 	public TracePatternSummarizationFilter(final long maxCollectionDuration,
 			final IPipeReceiver sinkReceiver) {
 		super(sinkReceiver, Constants.TRACE_SUMMARIZATION_DISRUPTOR_SIZE,