diff --git a/platforms/eeprom.h b/platforms/eeprom.h
index 8e69eecc4c..067fa01616 100644
--- a/platforms/eeprom.h
+++ b/platforms/eeprom.h
@@ -22,9 +22,14 @@ void     eeprom_update_dword(uint32_t *__p, uint32_t __value);
 void     eeprom_update_block(const void *__src, void *__dst, size_t __n);
 #endif
 
-static inline void eeprom_write_qword(uint64_t *__p, uint64_t __value) {
-    eeprom_update_block(&__value, __p, sizeof(uint64_t));
-}
+// While newer avr-libc versions may have an implementation
+//   use preprocessor as to not cause conflicts
+#undef eeprom_write_qword
+#define eeprom_write_qword(__p, __value)                  \
+    do {                                                  \
+        uint64_t tmp = __value;                           \
+        eeprom_update_block(&tmp, __p, sizeof(uint64_t)); \
+    } while (0)
 
 #if defined(EEPROM_CUSTOM)
 #    ifndef EEPROM_SIZE