diff --git a/emper/UnboundedBlockingMpscQueue.hpp b/emper/UnboundedBlockingMpscQueue.hpp
index 5b2c8534b212fe41b53f4726405503a3a8f2a2b1..81c8a2ff4bcdf68462f2205ab8a8c5fe1f1d0d75 100644
--- a/emper/UnboundedBlockingMpscQueue.hpp
+++ b/emper/UnboundedBlockingMpscQueue.hpp
@@ -33,13 +33,14 @@ class UnboundedBlockingMpscQueue : public Blockable<LogSubsystem::U_B_MPSC_Q> {
 		// Therefore if we tryToGet a new 't' while 't' is available the current 't'
 		// would be overridden and dropped.
 		assert(!tPopped);
+
 		std::lock_guard<std::mutex> lock(queueMutex);
-		if (!mpscQueue.empty()) {
-			t = mpscQueue.front();
-			mpscQueue.pop();
-			tPopped = true;
-			postRetrieve();
-		}
+		if (mpscQueue.empty()) return;
+
+		t = mpscQueue.front();
+		mpscQueue.pop();
+		tPopped = true;
+		postRetrieve();
 	}
 
  public: