diff --git a/Control/keystore.c b/Control/keystore.c
index 8b12945197058539de93eb5cb75c70529963ae3a..126dc2e861175d40280298181bd2b35667c95f35 100644
--- a/Control/keystore.c
+++ b/Control/keystore.c
@@ -201,10 +201,11 @@ uint8_t keystore_enable_slot(uint16_t index){
 uint8_t keystore_read_slot_status(uint16_t index){
 	uint8_t key_status = KEYSLOT_ERROR;
 	uint8_t ret;
-	ret = i2c_master_read(KEY_MAIN_EEPROM, EEPROM_TABLE_OFFSET + index, &key_status, 1);
+	i2c_master_set_speed(I2C_BITRATE_REG_1M);
+	ret = i2c_master_read(KEY_MAIN_EEPROM, EEPROM_TABLE_OFFSET + index, sizeof(uint16_t), &key_status, sizeof(uint8_t));
 	if (ret != I2C_SUCCESS) {
 		printf_P(PSTR("Key status read error %02x, retry...\n"), ret);
-		ret = i2c_master_read(KEY_MAIN_EEPROM, EEPROM_TABLE_OFFSET + index , &key_status, 1);
+		ret = i2c_master_read(KEY_MAIN_EEPROM, EEPROM_TABLE_OFFSET + index, sizeof(uint16_t), &key_status, sizeof(uint8_t));
 		if (ret != I2C_SUCCESS) printf_P(PSTR("Key status read error %02x (fatal)\n"), ret);
 	}
 	return (ret == I2C_SUCCESS) ? key_status : KEYSLOT_ERROR;
@@ -214,10 +215,11 @@ uint8_t keystore_write_slot_status(uint16_t index, uint8_t key_status){
 	uint8_t ret;
 	EEPROM_WRITE_PROTECT_PORT &= ~EEPROM_WRITE_PROTECT_MAIN;
 	
-	ret = i2c_master_write(KEY_MAIN_EEPROM, EEPROM_TABLE_OFFSET + index, &key_status, 1);
+	i2c_master_set_speed(I2C_BITRATE_REG_1M);
+	ret = i2c_master_write(KEY_MAIN_EEPROM, EEPROM_TABLE_OFFSET + index, sizeof(uint16_t), &key_status, sizeof(uint8_t));
 	if (ret != 0) {
 		printf_P(PSTR("Key status write error %02x, retry...\n"), ret);
-		ret = i2c_master_write(KEY_MAIN_EEPROM, EEPROM_TABLE_OFFSET + index , &key_status, 1);
+		ret = i2c_master_write(KEY_MAIN_EEPROM, EEPROM_TABLE_OFFSET + index, sizeof(uint16_t), &key_status, 1);
 		if (ret != I2C_SUCCESS) printf_P(PSTR("Key status write error %02x (fatal)\n"), ret);
 	}
 	
@@ -228,10 +230,11 @@ uint8_t keystore_write_slot_status(uint16_t index, uint8_t key_status){
 
 uint8_t keystore_read_key(uint16_t index, KEY key){
 	uint8_t ret;
-	ret = i2c_master_read(KEY_MAIN_EEPROM, EEPROM_KEY_OFFSET + (index * sizeof(KEY)), key, sizeof(KEY));
+	i2c_master_set_speed(I2C_BITRATE_REG_1M);
+	ret = i2c_master_read(KEY_MAIN_EEPROM, EEPROM_KEY_OFFSET + (index * sizeof(KEY)), sizeof(uint16_t), key, sizeof(KEY));
 	if (ret != I2C_SUCCESS) {
 		printf_P(PSTR("Key read error %02x, retry...\n"), ret);
-		ret = i2c_master_read(KEY_MAIN_EEPROM, EEPROM_KEY_OFFSET + (index * sizeof(KEY)), key, sizeof(KEY));
+		ret = i2c_master_read(KEY_MAIN_EEPROM, EEPROM_KEY_OFFSET + (index * sizeof(KEY)), sizeof(uint16_t), key, sizeof(KEY));
 		if (ret != I2C_SUCCESS) printf_P(PSTR("Key read error %02x (fatal)\n"), ret);
 	}
 	return (ret == I2C_SUCCESS);
@@ -241,10 +244,11 @@ uint8_t keystore_write_key(uint16_t index, KEY key){
 	uint8_t ret;
 	EEPROM_WRITE_PROTECT_PORT &= ~EEPROM_WRITE_PROTECT_MAIN;
 	
-	ret = i2c_master_write(KEY_MAIN_EEPROM, EEPROM_KEY_OFFSET + (index * sizeof(KEY)), key, sizeof(KEY));
+	i2c_master_set_speed(I2C_BITRATE_REG_1M);
+	ret = i2c_master_write(KEY_MAIN_EEPROM, EEPROM_KEY_OFFSET + (index * sizeof(KEY)), sizeof(uint16_t), key, sizeof(KEY));
 	if (ret != I2C_SUCCESS) {
 		printf_P(PSTR("Key write error %02x, retry...\n"), ret);
-		ret = i2c_master_write(KEY_MAIN_EEPROM, EEPROM_KEY_OFFSET + (index * sizeof(KEY)), key, sizeof(KEY));
+		ret = i2c_master_write(KEY_MAIN_EEPROM, EEPROM_KEY_OFFSET + (index * sizeof(KEY)), sizeof(uint16_t), key, sizeof(KEY));
 		if (ret != I2C_SUCCESS) printf_P(PSTR("Key write error %02x (fatal)\n"), ret);
 	}