diff --git a/src/META-INF/explorviz.live_trace_processing.default.properties b/src/META-INF/explorviz.live_trace_processing.default.properties
index c92159f13cca0262ac8fc793c8b59e77eacb9169..e879ca2007bb380d2ac105634684c07b5a17f7b7 100644
--- a/src/META-INF/explorviz.live_trace_processing.default.properties
+++ b/src/META-INF/explorviz.live_trace_processing.default.properties
@@ -40,5 +40,6 @@ explorviz.live_trace_processing.tcp_reader_disruptor_size=16384
 
 explorviz.live_trace_processing.trace_reconstruction_disruptor_size=256
 explorviz.live_trace_processing.trace_reconstruction_buffer_initial_size=128
+explorviz.live_trace_processing.trace_reconstruction_timeout_in_sec=4
 
 explorviz.live_trace_processing.trace_summarization_disruptor_size=64
diff --git a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java
index 9d40ff37c70f61946ebeadd2d626aea64d219785..1523531545a0cba108f79d6f185e38d5b49a0d93 100644
--- a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java
+++ b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBuffer.java
@@ -15,17 +15,21 @@ import explorviz.live_trace_processing.record.trace.RuntimeStatisticInformation;
 import explorviz.live_trace_processing.record.trace.Trace;
 
 class TraceReconstructionBuffer {
-	private static final int TIMEOUT_IN_SECONDS = 4;
-
 	private final List<AbstractEventRecord> events = new ArrayList<AbstractEventRecord>(
 			Constants.TRACE_RECONSTRUCTION_BUFFER_INITIAL_SIZE);
 
 	private int openEvents;
 
-	private int updatedInThisPeriodCounter = TIMEOUT_IN_SECONDS;
+	private final int TIMEOUT_IN_SECONDS;
+	private int updatedInThisPeriodCounter;
 
 	private int maxOrderIndex = -1;
 
+	public TraceReconstructionBuffer(final int traceTimeoutInSec) {
+		TIMEOUT_IN_SECONDS = traceTimeoutInSec;
+		updatedInThisPeriodCounter = TIMEOUT_IN_SECONDS;
+	}
+
 	public final void insertEvent(final AbstractEventRecord event) {
 		resetTimeoutCounter();
 		setMaxOrderIndex(event);
diff --git a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java
index 2a874a2fe7ffbd89bf78bb65251e76ef3ecb249d..b99d5cad33327529ec9f382f865eb6f5c785cbb4 100644
--- a/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java
+++ b/src/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionFilter.java
@@ -23,10 +23,13 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R
 
 	private final PipesMerger<IRecord> traceReconstructionMerger;
 
+	private final int traceTimeoutInSec;
+
 	public TraceReconstructionFilter(final PipesMerger<IRecord> traceReconstructionMerger,
-			final Queue<IRecord> receiverQueue) {
+			final Queue<IRecord> receiverQueue, final int traceTimeoutInSec) {
 		super(receiverQueue, "Reconstructed traces/sec", 1000);
 		this.traceReconstructionMerger = traceReconstructionMerger;
+		this.traceTimeoutInSec = traceTimeoutInSec;
 	}
 
 	@Override
@@ -61,7 +64,7 @@ public final class TraceReconstructionFilter extends AbstractFilter implements R
 	private final TraceReconstructionBuffer getBufferForRecord(final AbstractEventRecord record) {
 		TraceReconstructionBuffer traceBuffer = traceIdAndHost2trace.get(record);
 		if (traceBuffer == null) {
-			traceBuffer = new TraceReconstructionBuffer();
+			traceBuffer = new TraceReconstructionBuffer(traceTimeoutInSec);
 			traceIdAndHost2trace.put(record, traceBuffer);
 		}
 		return traceBuffer;
diff --git a/src/explorviz/live_trace_processing/main/FilterConfiguration.java b/src/explorviz/live_trace_processing/main/FilterConfiguration.java
index 477640b87b549cbf54bafaeb72436d3accad4550..50d9c7982612307404f3ff8d31203eda260d2416 100644
--- a/src/explorviz/live_trace_processing/main/FilterConfiguration.java
+++ b/src/explorviz/live_trace_processing/main/FilterConfiguration.java
@@ -26,7 +26,8 @@ public class FilterConfiguration {
 				Constants.TCP_READER_DISRUPTOR_SIZE);
 
 		new TraceReconstructionFilter(traceReconstructionMerger,
-				traceReductionConnector.registerProducer()).start();
+				traceReductionConnector.registerProducer(),
+				Constants.TRACE_RECONSTRUCTION_TIMEOUT_IN_SEC).start();
 
 		new TCPReader(configuration.getIntProperty(ConfigurationFactory.READER_LISTENING_PORT,
 				10133), traceReconstructionMerger).read();
diff --git a/test/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBufferTest.java b/test/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBufferTest.java
index 8af6f34a0ac38434dff6f30c50dcd58604abd8c2..ba9f9aef839b93b10fbc2d1eb78a33ac5bd64fe8 100644
--- a/test/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBufferTest.java
+++ b/test/explorviz/live_trace_processing/filter/reconstruction/TraceReconstructionBufferTest.java
@@ -11,7 +11,7 @@ public class TraceReconstructionBufferTest {
 
 	@Test
 	public void testInsertEvent() throws Exception {
-		final TraceReconstructionBuffer traceReconstructionBuffer = new TraceReconstructionBuffer();
+		final TraceReconstructionBuffer traceReconstructionBuffer = new TraceReconstructionBuffer(5);
 		traceReconstructionBuffer.insertEvent(new BeforeOperationEventRecord(1, 0, 0, "test",
 				"TestClazz", "", new HostApplicationMetaDataRecord("testSystem", "testIp",
 						"testHost", "testApp", "Java")));