diff --git a/src/muon_orbit_processor.cc b/src/muon_orbit_processor.cc
index 8b14375d70c30bf6ef93f9256cab50f84c5af150..b11ba85efd6c5bdd03274215fca519b8409f7fb1 100644
--- a/src/muon_orbit_processor.cc
+++ b/src/muon_orbit_processor.cc
@@ -25,12 +25,14 @@ int MuonOrbitProcessor::ProcessBlock(MemRegion &readable_block, WriteMemRegion &
     const auto pt1 = uint32_t{(bl->mu1f[i] >> shifts::pt) & masks::pt};
     const auto pt2 = uint32_t{(bl->mu2f[i] >> shifts::pt) & masks::pt};
 
-    // mu.extra is a copy of bl->bx
+    // mu.extra is a copy of bl->bx with a change to the first bit.
     if (((pt1 > 0) || (doZS == 0))) {
-      bx_data_1.Add({bl->mu1f[i], bl->mu1s[i], bl->bx[i]});
+      // set bit0 to "0" for first muon
+      bx_data_1.Add({bl->mu1f[i], bl->mu1s[i], bl->bx[i] &= ~0x1});
     }
     if (((pt2 > 0) || (doZS == 0))) {
-      bx_data_2.Add({bl->mu2f[i], bl->mu2s[i], bl->bx[i]});
+      // set bit0 to "1" for second muon
+      bx_data_2.Add({bl->mu2f[i], bl->mu2s[i], bl->bx[i] |= 0x1});
     }
   }