diff --git a/src/orbit_processor.cc b/src/orbit_processor.cc
index 566225137b15b0d6251eec496a65eb9b3d235342..e9bbbf94de3d512c3bb05c3a9d1666620d21e8e7 100644
--- a/src/orbit_processor.cc
+++ b/src/orbit_processor.cc
@@ -104,9 +104,11 @@ OrbitProcessor::FillOrbitMetadata OrbitProcessor::FillOrbit(orbit_trailer *trail
                                                             char *wr_ptr, const char *rd_end_ptr,
                                                             const char *wr_end_ptr,
                                                             bool is_dropped_orbit) {
-  std::pair<uint32_t, bool> orbit_header = std::pair<uint32_t, bool>{ProcessOrbitHeader(rd_ptr)};
-  uint32_t orbit = uint32_t{orbit_header.first};
-  if (orbit <= 0) return {0, 0, 0};
+  std::pair<uint32_t, bool> orbit_header = ProcessOrbitHeader(rd_ptr);
+  auto orbit = static_cast<int>(orbit_header.first);
+  if (orbit <= 0) {
+    return {0, 0, 0};
+  }
   //.second is the warning test enable bit
   rd_ptr += 32;  // +32 to account for orbit header
   if (cmsswHeaders) {
@@ -141,7 +143,7 @@ OrbitProcessor::FillOrbitMetadata OrbitProcessor::FillOrbit(orbit_trailer *trail
     WriteMemRegion writeable_block(&wr_ptr, wr_end_ptr);
     assert(writeable_block.CheckBounds(GetPacketSize()));  // Max size a decoded block can use
 
-    BxMetadata meta{orbit_header.second, bx, orbit};
+    BxMetadata meta{orbit_header.second, static_cast<uint32_t>(bx), orbit};
 
     const int ret_counts = ProcessBlock(readable_block, writeable_block, meta);
     if (ret_counts == -1) {
diff --git a/src/orbit_processor.h b/src/orbit_processor.h
index 8702bda3df638f80cfd54fa3c5b5d4138a46c1a6..e984426519bdc6885b475e2734861112360df643 100644
--- a/src/orbit_processor.h
+++ b/src/orbit_processor.h
@@ -1,6 +1,8 @@
 #ifndef ORBIT_PROCESSOR_H
 #define ORBIT_PROCESSOR_H
 
+#include <cassert>
+
 #include "config.h"
 #include "controls.h"
 #include "format.h"
@@ -42,7 +44,7 @@ class OrbitProcessor : public Processor {
  protected:
   struct FillOrbitMetadata {
     uint32_t counts;
-    uint32_t orbit;
+    int orbit;
     uint32_t filled_bxs;
   };
 
@@ -67,7 +69,7 @@ class OrbitProcessor : public Processor {
   struct BxMetadata {
     uint32_t header;
     uint32_t bx;
-    uint32_t orbit;
+    int orbit;
   };
 
   template <typename T, uint32_t N>