diff --git a/firmware/baseband/baseband_thread.cpp b/firmware/baseband/baseband_thread.cpp
index 223a762e5..d1a2e30c8 100644
--- a/firmware/baseband/baseband_thread.cpp
+++ b/firmware/baseband/baseband_thread.cpp
@@ -98,20 +98,22 @@ void BasebandThread::run() {
 	while(true) {
 		// TODO: Place correct sampling rate into buffer returned here:
 		const auto buffer_tmp = baseband::dma::wait_for_rx_buffer();
-		buffer_c8_t buffer {
-			buffer_tmp.p, buffer_tmp.count, baseband_configuration.sampling_rate
-		};
+		if( buffer_tmp ) {
+			buffer_c8_t buffer {
+				buffer_tmp.p, buffer_tmp.count, baseband_configuration.sampling_rate
+			};
 
-		if( baseband_processor ) {
-			baseband_processor->execute(buffer);
-		}
-
-		stats.process(buffer,
-			[](const BasebandStatistics& statistics) {
-				const BasebandStatisticsMessage message { statistics };
-				shared_memory.application_queue.push(message);
+			if( baseband_processor ) {
+				baseband_processor->execute(buffer);
 			}
-		);
+
+			stats.process(buffer,
+				[](const BasebandStatistics& statistics) {
+					const BasebandStatisticsMessage message { statistics };
+					shared_memory.application_queue.push(message);
+				}
+			);
+		}
 	}
 
 	delete baseband_buffer;
diff --git a/firmware/common/buffer.hpp b/firmware/common/buffer.hpp
index da7e70a78..2b3d71707 100644
--- a/firmware/common/buffer.hpp
+++ b/firmware/common/buffer.hpp
@@ -92,6 +92,10 @@ struct buffer_t {
 		timestamp { timestamp }
 	{
 	}
+
+	operator bool() const {
+		return (p != nullptr);
+	}
 };
 
 #endif/*__BUFFER_H__*/