diff --git a/common.h b/common.h
index 520f577..6b238ad 100644
--- a/common.h
+++ b/common.h
@@ -22,16 +22,22 @@
 
 // Magic header that resides in the AllocatorState so that GWP-ASan bugreports
 // can be understood by tools at different versions. Out-of-process crash
-// handlers, like crashpad on Fuchsia, take the raw conents of the
+// handlers, like crashpad on Fuchsia, take the raw contents of the
 // AllocationMetatada array and the AllocatorState, and shove them into the
 // minidump. Online unpacking of these structs needs to know from which version
-// of GWP-ASan its extracting the information, as the structures are not stable.
+// of GWP-ASan it's extracting the information, as the structures are not
+// stable.
 struct AllocatorVersionMagic {
-  const uint8_t Magic[4] = {'A', 'S', 'A', 'N'};
+  // The values are copied into the structure at runtime, during
+  // `GuardedPoolAllocator::init()` so that GWP-ASan remains completely in the
+  // `.bss` segment.
+  static constexpr uint8_t kAllocatorVersionMagic[4] = {'A', 'S', 'A', 'N'};
+  uint8_t Magic[4] = {};
   // Update the version number when the AllocatorState or AllocationMetadata
   // change.
-  const uint16_t Version = 1;
-  const uint16_t Reserved = 0;
+  static constexpr uint16_t kAllocatorVersion = 1;
+  uint16_t Version = 0;
+  uint16_t Reserved = 0;
 };
 
 enum class Error : uint8_t {
@@ -99,7 +105,7 @@
 // set of information required for understanding a GWP-ASan crash.
 struct AllocatorState {
   constexpr AllocatorState() {}
-  const AllocatorVersionMagic VersionMagic{};
+  AllocatorVersionMagic VersionMagic{};
 
   // Returns whether the provided pointer is a current sampled allocation that
   // is owned by this pool.
diff --git a/guarded_pool_allocator.cpp b/guarded_pool_allocator.cpp
index 8ce5fc9..7096b42 100644
--- a/guarded_pool_allocator.cpp
+++ b/guarded_pool_allocator.cpp
@@ -59,6 +59,13 @@
   SingletonPtr = this;
   Backtrace = Opts.Backtrace;
 
+  State.VersionMagic = {{AllocatorVersionMagic::kAllocatorVersionMagic[0],
+                         AllocatorVersionMagic::kAllocatorVersionMagic[1],
+                         AllocatorVersionMagic::kAllocatorVersionMagic[2],
+                         AllocatorVersionMagic::kAllocatorVersionMagic[3]},
+                        AllocatorVersionMagic::kAllocatorVersion,
+                        0};
+
   State.MaxSimultaneousAllocations = Opts.MaxSimultaneousAllocations;
 
   const size_t PageSize = getPlatformPageSize();
