diff --git a/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java b/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java
index 6b45af9c22ff262ac73ff8fa20b5059d656d77e3..8387ced464fe92c1479904219b44c8e6b7f0e714 100644
--- a/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java
+++ b/src/explorviz/live_trace_processing/reader/TCPReaderOneClient.java
@@ -163,7 +163,7 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
 					return;
 				}
 				case Trace.CLAZZ_ID: {
-					if (buffer.remaining() >= 9) {
+					if (buffer.remaining() >= Trace.BYTE_LENGTH) {
 						final byte validByte = buffer.get();
 						boolean valid = true;
 						if (validByte == (byte) 0) {
@@ -171,15 +171,13 @@ public class TCPReaderOneClient extends Thread implements IPeriodicTimeSignalRec
 						}
 						final int eventsLength = buffer.getInt();
 						final int byteLength = buffer.getInt();
-						if (buffer.remaining() >= byteLength) {
+						if ((buffer.remaining() >= byteLength) && (eventsLength > 0)) {
 							final List<AbstractEventRecord> events = new ArrayList<AbstractEventRecord>(
 									eventsLength);
 							for (int i = 0; i < eventsLength; i++) {
-								AbstractEventRecord eventRecord;
 								try {
-									eventRecord = AbstractEventRecord.createFromByteBuffer(buffer,
-											stringRegistry);
-									events.add(eventRecord);
+									events.add(AbstractEventRecord.createFromByteBuffer(buffer,
+											stringRegistry));
 								} catch (final IdNotAvailableException e) {
 									// should not happen
 									e.printStackTrace();