diff --git a/src/netcode/d_netcmd.c b/src/netcode/d_netcmd.c
index 5afa955610a6aee452790fe0ca74b13fc7007d86..52df53b5a06cedd0f5be26cbe0b1a2ef2d0f4351 100644
--- a/src/netcode/d_netcmd.c
+++ b/src/netcode/d_netcmd.c
@@ -1241,7 +1241,7 @@ static void SetColorLocal(INT32 playernum, UINT16 color)
 //
 static void SendNameAndColor(void)
 {
-	char buf[MAXPLAYERNAME+6];
+	char buf[MAXPLAYERNAME+7];
 	char *p;
 
 	p = buf;
diff --git a/src/p_saveg.c b/src/p_saveg.c
index faecd13770b3d81b992017af51b4b663487aa50d..4aa2318fd2902d172c7a35a82a1c9d54dcf113ad 100644
--- a/src/p_saveg.c
+++ b/src/p_saveg.c
@@ -175,7 +175,7 @@ static void P_NetArchivePlayers(void)
 		WRITEUINT16(save_p, players[i].flashpal);
 		WRITEUINT16(save_p, players[i].flashcount);
 
-		WRITEUINT8(save_p, players[i].skincolor);
+		WRITEUINT16(save_p, players[i].skincolor);
 		WRITEINT32(save_p, players[i].skin);
 		WRITEUINT32(save_p, players[i].availabilities);
 		WRITEUINT32(save_p, players[i].score);
@@ -404,7 +404,7 @@ static void P_NetUnArchivePlayers(void)
 		players[i].flashpal = READUINT16(save_p);
 		players[i].flashcount = READUINT16(save_p);
 
-		players[i].skincolor = READUINT8(save_p);
+		players[i].skincolor = READUINT16(save_p);
 		players[i].skin = READINT32(save_p);
 		players[i].availabilities = READUINT32(save_p);
 		players[i].score = READUINT32(save_p);