diff --git a/src/ByteStream.cpp b/src/ByteStream.cpp
index 14615e6fbe9e37912b30eede5c65ed63a5fd44fe..95ab024795e8a06e45a99476d0fad046b853cb13 100644
--- a/src/ByteStream.cpp
+++ b/src/ByteStream.cpp
@@ -177,10 +177,14 @@ ByteStreamPtr PacketLib::ByteStream::decompress(enum CompressionAlgorithms algor
 			int buffsize = LZ4_decompress_safe((const char*)stream, (char*)tmpbuff, size(), dmax);
 			if(!buffsize)
 			{
-				cout << "LZ4 decompression error" << endl;
 				delete tmpbuff;
+				throw new PacketException("LZ4 decompression error");
 				return 0;
 			}
+			if(buffsize < 0) {
+				delete tmpbuff;
+				throw new PacketException("LZ4 decompression error: the source stream is malformed");
+			}
 			byte* decompbuff = new byte[buffsize];
 			memcpy(decompbuff, tmpbuff, buffsize);
 			b = ByteStreamPtr(new ByteStream(decompbuff, buffsize, bigendian));