diff --git a/Source/Core/Common/BitField.h b/Source/Core/Common/BitField.h
index 5832fbcc3f..c8a81a092a 100644
--- a/Source/Core/Common/BitField.h
+++ b/Source/Core/Common/BitField.h
@@ -136,7 +136,7 @@ public:
 
   __forceinline BitField& operator=(T val)
   {
-    storage = (storage & ~GetMask()) | ((val << position) & GetMask());
+    storage = (storage & ~GetMask()) | ((static_cast<StorageType>(val) << position) & GetMask());
     return *this;
   }