diff --git a/src/processor.cc b/src/processor.cc
index 70914d0f3ab570b3252e8fd56d1632167ca8071b..621c018687e18b05156118139d74d8e62bdd8316 100644
--- a/src/processor.cc
+++ b/src/processor.cc
@@ -256,6 +256,7 @@ void StreamProcessor::process(Slice& input, Slice& out)
 	uint32_t counts = 0;
 	bool endofpacket = false;
 	uint32_t orbit_per_packet_count = 0;
+	bool firstOrbit = true;
 	StreamProcessor::fillOrbitMetadata meta{0,0,};
 	if (processorType == ProcessorType::PASS_THROUGH) {
 		memcpy(wr_ptr,rd_ptr,input.size());
@@ -301,7 +302,10 @@ void StreamProcessor::process(Slice& input, Slice& out)
 		}
 		rd_ptr+= 32 + bx_vect.size()*sizeof(blockMuon) + constants::orbit_trailer_size; // 32 for orbit header, + nBXs + orbit trailer
 		counts += orbitCount;
+		if(firstOrbit){
 		out.set_firstOrbitN(meta.orbit);
+		firstOrbit = false;
+		};
 		bx_vect.clear();
 
 		if(rd_ptr < input.end()){