diff --git a/src/sbbs3/scfglib2.c b/src/sbbs3/scfglib2.c
index 443fd95ece1bff37cc7d54eed7b702045e1d5394..3a9afe472fb403da4351edbc01e36c75d4496ffa 100644
--- a/src/sbbs3/scfglib2.c
+++ b/src/sbbs3/scfglib2.c
@@ -581,7 +581,7 @@ BOOL read_xtrn_cfg(scfg_t* cfg, char* error, size_t maxerrlen)
 			return allocerr(error, maxerrlen, fname, "hotkey", sizeof(hotkey_t));
 		memset(cfg->hotkey[i],0,sizeof(hotkey_t));
 
-		cfg->hotkey[i]->key = list[i][7];
+		cfg->hotkey[i]->key = atoi(list[i] + 7);
 		SAFECOPY(cfg->hotkey[i]->cmd, iniGetString(ini, section, "cmd", "", value));
 	}
 	iniFreeStringList(list);
diff --git a/src/sbbs3/scfgsave.c b/src/sbbs3/scfgsave.c
index 8d43ec5ba83edda19d8d092ac3f72ab6a06e16d7..6c31edb64195c1a8c4977769093c31c8c3513000 100644
--- a/src/sbbs3/scfgsave.c
+++ b/src/sbbs3/scfgsave.c
@@ -923,7 +923,7 @@ BOOL write_xtrn_cfg(scfg_t* cfg, int backup_level)
 	}
 
 	for(uint i=0; i<cfg->total_hotkeys; i++) {
-		SAFEPRINTF(name, "hotkey:%c", cfg->hotkey[i]->key);
+		SAFEPRINTF(name, "hotkey:%u", cfg->hotkey[i]->key);
 		iniSetString(&ini, name, "cmd", cfg->hotkey[i]->cmd, NULL);
 	}