diff --git a/src/d_clisrv.c b/src/d_clisrv.c
index 61c59cdc..873bca5b 100644
--- a/src/d_clisrv.c
+++ b/src/d_clisrv.c
@@ -1559,7 +1559,7 @@ static void SV_SavedGame(void)
 {
 	size_t length;
 	UINT8 *savebuffer;
-	XBOXSTATIC char tmpsave[256];
+	XBOXSTATIC char tmpsave[264];
 
 	if (!cv_dumpconsistency.value)
 		return;
@@ -1601,7 +1601,7 @@ static void CL_LoadReceivedSavegame(void)
 {
 	UINT8 *savebuffer = NULL;
 	size_t length, decompressedlen;
-	XBOXSTATIC char tmpsave[256];
+	XBOXSTATIC char tmpsave[264];
 
 	sprintf(tmpsave, "%s" PATHSEP TMPSAVENAME, srb2home);
 
@@ -2062,7 +2062,7 @@ static void CL_ConnectToServer(boolean viams)
 	tic_t asksent;
 #endif
 #ifdef JOININGAME
-	XBOXSTATIC char tmpsave[256];
+	XBOXSTATIC char tmpsave[264];
 
 	sprintf(tmpsave, "%s" PATHSEP TMPSAVENAME, srb2home);
 #endif
diff --git a/src/d_main.h b/src/d_main.h
index 6dc273b1..88387a57 100644
--- a/src/d_main.h
+++ b/src/d_main.h
@@ -41,7 +41,7 @@ void D_SRB2Main(void);
 // Called by IO functions when input is detected.
 void D_PostEvent(const event_t *ev);
 #ifndef DOXYGEN
-FUNCMATH void D_PostEvent_end(void);    // delimiter for locking memory
+void D_PostEvent_end(void);    // delimiter for locking memory
 #endif
 
 void D_ProcessEvents(void);
diff --git a/src/d_netcmd.c b/src/d_netcmd.c
index 2db1ad04..6b30f530 100644
--- a/src/d_netcmd.c
+++ b/src/d_netcmd.c
@@ -3894,7 +3894,7 @@ static void Got_RequestAddfilecmd(UINT8 **cp, INT32 playernum)
 
 	if (ncs != FS_FOUND || toomany)
 	{
-		char message[256];
+		char message[275];
 
 		if (toomany)
 			sprintf(message, M_GetText("Too many files loaded to add %s\n"), filename);
@@ -5211,24 +5211,24 @@ static void BaseNumLaps_OnChange(void)
 
 static void KartFrantic_OnChange(void)
 {
-	if (cv_kartfrantic.value != franticitems && gamestate == GS_LEVEL)
+	if ((boolean)cv_kartfrantic.value != franticitems && gamestate == GS_LEVEL)
 		CONS_Printf(M_GetText("Frantic items will be turned %s next round.\n"), cv_kartfrantic.value ? M_GetText("on") : M_GetText("off"));
 }
 
 static void KartSpeed_OnChange(void)
 {
-	if (cv_kartspeed.value != gamespeed && G_RaceGametype() && gamestate == GS_LEVEL)
+	if ((UINT8)cv_kartspeed.value != gamespeed && G_RaceGametype() && gamestate == GS_LEVEL)
 		CONS_Printf(M_GetText("Game speed will be changed to \"%s\" next round.\n"), cv_kartspeed.string);
 }
 
 static void KartMirror_OnChange(void)
 {
-	if (cv_kartmirror.value != mirrormode && G_RaceGametype() && gamestate == GS_LEVEL)
+	if ((boolean)cv_kartmirror.value != mirrormode && G_RaceGametype() && gamestate == GS_LEVEL)
 		CONS_Printf(M_GetText("Mirror Mode will be turned %s next round.\n"), cv_kartmirror.value ? M_GetText("on") : M_GetText("off"));
 }
 
 static void KartComeback_OnChange(void)
 {
-	if (cv_kartcomeback.value != comeback && G_BattleGametype() && gamestate == GS_LEVEL)
+	if ((boolean)cv_kartcomeback.value != comeback && G_BattleGametype() && gamestate == GS_LEVEL)
 		CONS_Printf(M_GetText("Karma Comeback will be turned %s next round.\n"), cv_kartcomeback.value ? M_GetText("on") : M_GetText("off"));
 }
\ No newline at end of file
diff --git a/src/dehacked.c b/src/dehacked.c
index 1214f299..93d39ba9 100644
--- a/src/dehacked.c
+++ b/src/dehacked.c
@@ -3082,10 +3082,11 @@ static void readmaincfg(MYFILE *f)
 
 				// Also save a time attack folder
 				filenamelen = strlen(gamedatafilename)-4;  // Strip off the extension
-				strncpy(timeattackfolder, gamedatafilename, min(filenamelen, sizeof (timeattackfolder)));
+				filenamelen = min(filenamelen, sizeof (timeattackfolder));
+				strncpy(timeattackfolder, gamedatafilename, filenamelen);
 				timeattackfolder[min(filenamelen, sizeof (timeattackfolder) - 1)] = '\0';
 
-				strncpy(savegamename, timeattackfolder, sizeof (timeattackfolder));
+				strncpy(savegamename, timeattackfolder, filenamelen);
 				strlcat(savegamename, "%u.ssg", sizeof(savegamename));
 				// can't use sprintf since there is %u in savegamename
 				strcatbf(savegamename, srb2home, PATHSEP);
@@ -8511,7 +8512,7 @@ fixed_t get_number(const char *word)
 #endif
 }
 
-void FUNCMATH DEH_Check(void)
+void DEH_Check(void)
 {
 #if defined(_DEBUG) || defined(PARANOIA)
 	const size_t dehstates = sizeof(STATE_LIST)/sizeof(const char*);
diff --git a/src/f_finale.c b/src/f_finale.c
index 6e84bd70..dfca2df6 100644
--- a/src/f_finale.c
+++ b/src/f_finale.c
@@ -1058,7 +1058,7 @@ void F_StartWaitingPlayers(void)
 	}
 }
 
-void F_WaitingPlayersTicker()
+void F_WaitingPlayersTicker(void)
 {
 	finalecount++;
 
diff --git a/src/f_finale.h b/src/f_finale.h
index 46375b6e..1eb9fb33 100644
--- a/src/f_finale.h
+++ b/src/f_finale.h
@@ -35,7 +35,7 @@ void F_CutsceneTicker(void);
 void F_TitleDemoTicker(void);
 
 // Called by main loop.
-FUNCMATH void F_GameEndDrawer(void);
+void F_GameEndDrawer(void);
 void F_IntroDrawer(void);
 void F_TitleScreenDrawer(void);
 
diff --git a/src/g_game.c b/src/g_game.c
index fe568e19..b653d259 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -2978,12 +2978,11 @@ void G_ExitLevel(void)
 boolean G_IsSpecialStage(INT32 mapnum)
 {
 #if 0
-	if (gametype == GT_COOP && modeattacking != ATTACKING_RECORD && mapnum >= sstage_start && mapnum <= sstage_end)
-		return true;
+	return (gametype == GT_COOP && modeattacking != ATTACKING_RECORD && mapnum >= sstage_start && mapnum <= sstage_end);
 #else
 	(void)mapnum;
-#endif
 	return false;
+#endif
 }
 
 //
diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c
index 54691872..4b088dfd 100644
--- a/src/hardware/hw_main.c
+++ b/src/hardware/hw_main.c
@@ -582,7 +582,7 @@ static void HWR_RenderPlane(sector_t *sector, extrasubsector_t *xsub, boolean is
 	if (nrPlaneVerts < 3)   //not even a triangle ?
 		return;
 
-	if (nrPlaneVerts > UINT16_MAX) // FIXME: exceeds plVerts size
+	if ((UINT32)nrPlaneVerts > UINT16_MAX) // FIXME: exceeds plVerts size
 	{
 		CONS_Debug(DBG_RENDER, "polygon size of %d exceeds max value of %d vertices\n", nrPlaneVerts, UINT16_MAX);
 		return;
diff --git a/src/hardware/hw_md2.c b/src/hardware/hw_md2.c
index f8bca56e..087718e2 100644
--- a/src/hardware/hw_md2.c
+++ b/src/hardware/hw_md2.c
@@ -1024,13 +1024,13 @@ static void HWR_CreateBlendedTexture(GLPatch_t *gpatch, GLPatch_t *blendgpatch,
 				colorbright = (blendcolor.s.red+blendcolor.s.green+blendcolor.s.blue)/3;
 
 				tempcolor = (finalbright*blendcolor.s.red)/colorbright;
-				tempcolor = min(255, max(0, tempcolor));
+				tempcolor = min(255, tempcolor);
 				cur->s.red = (UINT8)tempcolor;
 				tempcolor = (finalbright*blendcolor.s.green)/colorbright;
-				tempcolor = min(255, max(0, tempcolor));
+				tempcolor = min(255, tempcolor);
 				cur->s.green = (UINT8)tempcolor;
 				tempcolor = (finalbright*blendcolor.s.blue)/colorbright;
-				tempcolor = min(255, max(0, tempcolor));
+				tempcolor = min(255, tempcolor);
 				cur->s.blue = (UINT8)tempcolor;
 				cur->s.alpha = image->s.alpha;
 			}
diff --git a/src/hu_stuff.h b/src/hu_stuff.h
index 1f4bc519..fc32e645 100644
--- a/src/hu_stuff.h
+++ b/src/hu_stuff.h
@@ -95,7 +95,7 @@ void HU_Init(void);
 void HU_LoadGraphics(void);
 
 // reset heads up when consoleplayer respawns.
-FUNCMATH void HU_Start(void);
+void HU_Start(void);
 
 boolean HU_Responder(event_t *ev);
 
diff --git a/src/i_addrinfo.c b/src/i_addrinfo.c
index eb29e360..4dafd8f8 100644
--- a/src/i_addrinfo.c
+++ b/src/i_addrinfo.c
@@ -86,10 +86,10 @@ static HMODULE WS_getfunctions(HMODULE tmp)
 {
 	if (tmp != NULL)
 	{
-		WS_getaddrinfo = (p_getaddrinfo)GetProcAddress(tmp, "getaddrinfo");
+		WS_getaddrinfo = (p_getaddrinfo)((void *)GetProcAddress(tmp, "getaddrinfo"));
 		if (WS_getaddrinfo == NULL)
 			return NULL;
-		WS_freeaddrinfo = (p_freeaddrinfo)GetProcAddress(tmp, "freeaddrinfo");
+		WS_freeaddrinfo = (p_freeaddrinfo)((void *)GetProcAddress(tmp, "freeaddrinfo"));
 		if (WS_freeaddrinfo == NULL)
 		{
 			WS_getaddrinfo = NULL;
diff --git a/src/k_kart.c b/src/k_kart.c
index 72099614..a02e204e 100644
--- a/src/k_kart.c
+++ b/src/k_kart.c
@@ -1821,9 +1821,9 @@ void K_SpawnMineExplosion(mobj_t *source, UINT8 color)
 	mobj_t *smoldering = P_SpawnMobj(source->x, source->y, source->z, MT_SMOLDERING);
 	mobj_t *dust;
 	mobj_t *truc;
-	smoldering->tics = TICRATE*3;
 	INT32 speed, speed2;
 
+	smoldering->tics = TICRATE*3;
 	radius = source->radius>>FRACBITS;
 	height = source->height>>FRACBITS;
 
@@ -4108,11 +4108,14 @@ void K_LoadKartHUDGraphics(void)
 	kp_startcountdown[7] = 		W_CachePatchName("K_CNTGOB", PU_HUDGFX);
 
 	// Position numbers
+	sprintf(buffer, "K_POSNxx");
 	for (i = 0; i < NUMPOSNUMS; i++)
 	{
+		buffer[6] = '0'+i;
 		for (j = 0; j < NUMPOSFRAMES; j++)
 		{
-			sprintf(buffer, "K_POSN%d%d", i, j);
+			//sprintf(buffer, "K_POSN%d%d", i, j);
+			buffer[7] = '0'+j;
 			kp_positionnum[i][j] = (patch_t *) W_CachePatchName(buffer, PU_HUDGFX);
 		}
 	}
@@ -5089,16 +5092,19 @@ static void K_drawKartMinimapHead(mobj_t *mo, INT32 x, INT32 y, INT32 flags, pat
 
 	UINT8 skin = 0;
 
-	if (mo->skin)
-		skin = ((skin_t*)mo->skin)-skins;
-
-	fixed_t amnumxpos;
-	fixed_t amnumypos;
-	INT32 amxpos;
-	INT32 amypos;
+	fixed_t amnumxpos, amnumypos;
+	INT32 amxpos, amypos;
 
 	node_t *bsp = &nodes[numnodes-1];
 	fixed_t maxx, minx, maxy, miny;
+
+	fixed_t mapwidth, mapheight;
+	fixed_t xoffset, yoffset;
+	fixed_t xscale, yscale, zoom;
+
+	if (mo->skin)
+		skin = ((skin_t*)mo->skin)-skins;
+
 	maxx = maxy = INT32_MAX;
 	minx = miny = INT32_MIN;
 	minx = bsp->bbox[0][BOXLEFT];
@@ -5124,16 +5130,16 @@ static void K_drawKartMinimapHead(mobj_t *mo, INT32 x, INT32 y, INT32 flags, pat
 	miny >>= FRACBITS;
 	maxy >>= FRACBITS;
 
-	fixed_t mapwidth = maxx - minx;
-	fixed_t mapheight = maxy - miny;
+	mapwidth = maxx - minx;
+	mapheight = maxy - miny;
 
 	// These should always be small enough to be bitshift back right now
-	fixed_t xoffset = (minx + mapwidth/2)<<FRACBITS;
-	fixed_t yoffset = (miny + mapheight/2)<<FRACBITS;
+	xoffset = (minx + mapwidth/2)<<FRACBITS;
+	yoffset = (miny + mapheight/2)<<FRACBITS;
 
-	fixed_t xscale = FixedDiv(AutomapPic->width, mapwidth);
-	fixed_t yscale = FixedDiv(AutomapPic->height, mapheight);
-	fixed_t zoom = FixedMul(min(xscale, yscale), FRACUNIT-FRACUNIT/20);
+	xscale = FixedDiv(AutomapPic->width, mapwidth);
+	yscale = FixedDiv(AutomapPic->height, mapheight);
+	zoom = FixedMul(min(xscale, yscale), FRACUNIT-FRACUNIT/20);
 
 	amnumxpos = (FixedMul(mo->x, zoom) - FixedMul(xoffset, zoom));
 	amnumypos = -(FixedMul(mo->y, zoom) - FixedMul(yoffset, zoom));
diff --git a/src/m_misc.c b/src/m_misc.c
index 5727067c..766db72d 100644
--- a/src/m_misc.c
+++ b/src/m_misc.c
@@ -56,7 +56,9 @@ typedef off_t off64_t;
 #endif
 #endif
 
-#if defined (_WIN32)
+#if defined(__MINGW32__) && ((__GNUC__ > 7) || (__GNUC__ == 6 && __GNUC_MINOR__ >= 3))
+#define PRIdS "u"
+#elif defined (_WIN32) 
 #define PRIdS "Iu"
 #elif defined (_PSP) || defined (_arch_dreamcast) || defined (DJGPP) || defined (_WII) || defined (_NDS) || defined (_PS3)
 #define PRIdS "u"
diff --git a/src/p_mobj.h b/src/p_mobj.h
index 096c7762..50645e4b 100644
--- a/src/p_mobj.h
+++ b/src/p_mobj.h
@@ -450,7 +450,7 @@ boolean P_SupermanLook4Players(mobj_t *actor);
 void P_DestroyRobots(void);
 void P_SnowThinker(precipmobj_t *mobj);
 void P_RainThinker(precipmobj_t *mobj);
-FUNCMATH void P_NullPrecipThinker(precipmobj_t *mobj);
+void P_NullPrecipThinker(precipmobj_t *mobj);
 void P_RemovePrecipMobj(precipmobj_t *mobj);
 void P_SetScale(mobj_t *mobj, fixed_t newscale);
 void P_XYMovement(mobj_t *mo);
diff --git a/src/p_setup.c b/src/p_setup.c
index e36a9c82..4e763254 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -2996,15 +2996,15 @@ boolean P_SetupLevel(boolean skipprecip)
 		if (G_BattleGametype())
 			gamespeed = 0;
 		else
-			gamespeed = cv_kartspeed.value;
+			gamespeed = (UINT8)cv_kartspeed.value;
 
 		if (G_BattleGametype())
 			mirrormode = false;
 		else
-			mirrormode = cv_kartmirror.value;
+			mirrormode = (boolean)cv_kartmirror.value;
 
-		franticitems = cv_kartfrantic.value;
-		comeback = cv_kartcomeback.value;
+		franticitems = (boolean)cv_kartfrantic.value;
+		comeback = (boolean)cv_kartcomeback.value;
 	}
 
 	for (i = 0; i < 4; i++)
diff --git a/src/r_main.c b/src/r_main.c
index 62dd76e1..5990224c 100644
--- a/src/r_main.c
+++ b/src/r_main.c
@@ -213,7 +213,6 @@ void SplitScreen_OnChange(void)
 	}
 	else
 	{
-		INT32 i;
 		secondarydisplayplayer = consoleplayer;
 		thirddisplayplayer = consoleplayer;
 		fourthdisplayplayer = consoleplayer;
diff --git a/src/r_plane.c b/src/r_plane.c
index 3ec97efb..92e0cacb 100644
--- a/src/r_plane.c
+++ b/src/r_plane.c
@@ -714,6 +714,7 @@ void R_DrawPlanes(void)
 					if (dc_yl <= dc_yh)
 					{
 						angle = (pl->viewangle + xtoviewangle[x])>>ANGLETOSKYSHIFT;
+						dc_iscale = FixedMul(skyscale, FINECOSINE(xtoviewangle[x]>>ANGLETOFINESHIFT));
 						dc_x = x;
 						dc_source =
 							R_GetColumn(skytexture,
diff --git a/src/r_plane.h b/src/r_plane.h
index 16c8c12a..dff58669 100644
--- a/src/r_plane.h
+++ b/src/r_plane.h
@@ -87,7 +87,7 @@ extern lighttable_t **planezlight;
 extern fixed_t *yslope;
 extern fixed_t distscale[MAXVIDWIDTH];
 
-FUNCMATH void R_InitPlanes(void);
+void R_InitPlanes(void);
 void R_PortalStoreClipValues(INT32 start, INT32 end, INT16 *ceil, INT16 *floor, fixed_t *scale);
 void R_PortalRestoreClipValues(INT32 start, INT32 end, INT16 *ceil, INT16 *floor, fixed_t *scale);
 void R_ClearPlanes(void);
diff --git a/src/r_segs.c b/src/r_segs.c
index b997c2a8..025c920c 100644
--- a/src/r_segs.c
+++ b/src/r_segs.c
@@ -2674,22 +2674,28 @@ void R_StoreWallRange(INT32 start, INT32 stop)
 	worldbottomslope >>= 4;
 #endif
 
-	topstep = -FixedMul (rw_scalestep, worldtop);
-	topfrac = (centeryfrac>>4) - FixedMul (worldtop, rw_scale);
+	if (linedef->special == 41) { // HORIZON LINES
+		topstep = bottomstep = 0;
+		topfrac = bottomfrac = (centeryfrac>>4);
+		topfrac++; // Prevent 1px HOM
+	} else {
+		topstep = -FixedMul (rw_scalestep, worldtop);
+		topfrac = (centeryfrac>>4) - FixedMul (worldtop, rw_scale);
 
-	bottomstep = -FixedMul (rw_scalestep,worldbottom);
-	bottomfrac = (centeryfrac>>4) - FixedMul (worldbottom, rw_scale);
+		bottomstep = -FixedMul (rw_scalestep,worldbottom);
+		bottomfrac = (centeryfrac>>4) - FixedMul (worldbottom, rw_scale);
 
 #ifdef ESLOPE
-	if (frontsector->c_slope) {
-		fixed_t topfracend = (centeryfrac>>4) - FixedMul (worldtopslope, ds_p->scale2);
-		topstep = (topfracend-topfrac)/(range);
-	}
-	if (frontsector->f_slope) {
-		fixed_t bottomfracend = (centeryfrac>>4) - FixedMul (worldbottomslope, ds_p->scale2);
-		bottomstep = (bottomfracend-bottomfrac)/(range);
-	}
+		if (frontsector->c_slope) {
+			fixed_t topfracend = (centeryfrac>>4) - FixedMul (worldtopslope, ds_p->scale2);
+			topstep = (topfracend-topfrac)/(range);
+		}
+		if (frontsector->f_slope) {
+			fixed_t bottomfracend = (centeryfrac>>4) - FixedMul (worldbottomslope, ds_p->scale2);
+			bottomstep = (bottomfracend-bottomfrac)/(range);
+		}
 #endif
+	}
 
 	dc_numlights = 0;
 
diff --git a/src/r_splats.h b/src/r_splats.h
index c0ba6881..24cfcd13 100644
--- a/src/r_splats.h
+++ b/src/r_splats.h
@@ -64,7 +64,7 @@ fixed_t P_SegLength(seg_t *seg);
 
 // call at P_SetupLevel()
 #if !(defined (WALLSPLATS) || defined (FLOORSPLATS))
-FUNCMATH void R_ClearLevelSplats(void);
+void R_ClearLevelSplats(void);
 #else
 void R_ClearLevelSplats(void);
 #endif
diff --git a/src/r_things.c b/src/r_things.c
index 524be5a4..ae935897 100644
--- a/src/r_things.c
+++ b/src/r_things.c
@@ -2496,9 +2496,9 @@ static void Sk_SetDefaultValue(skin_t *skin)
 
 	strcpy(skin->realname, "Someone");
 	strcpy(skin->hudname, "???");
-	strncpy(skin->charsel, "CHRSONIC", 8);
-	strncpy(skin->face, "MISSING", 8);
-	strncpy(skin->superface, "MISSING", 8);
+	strncpy(skin->charsel, "CHRSONIC", 9);
+	strncpy(skin->face, "MISSING", 9);
+	strncpy(skin->superface, "MISSING", 9);
 
 	skin->starttranscolor = 160;
 	skin->prefcolor = SKINCOLOR_GREEN;
@@ -2530,7 +2530,7 @@ static void Sk_SetDefaultValue(skin_t *skin)
 	for (i = 0; i < sfx_skinsoundslot0; i++)
 		if (S_sfx[i].skinsound != -1)
 			skin->soundsid[S_sfx[i].skinsound] = i;
-	strncpy(skin->iconprefix, "SONICICN", 8);
+	strncpy(skin->iconprefix, "SONICICN", 9);
 }
 
 //
@@ -2563,9 +2563,9 @@ void R_InitSkins(void)
 	strcpy(skin->realname,   "Sonic");
 	strcpy(skin->hudname,    "SONIC");
 
-	strncpy(skin->charsel,   "CHRSONIC", 8);
-	strncpy(skin->face,      "LIVSONIC", 8);
-	strncpy(skin->superface, "LIVSUPER", 8);
+	strncpy(skin->charsel,   "CHRSONIC", 9);
+	strncpy(skin->face,      "LIVSONIC", 9);
+	strncpy(skin->superface, "LIVSUPER", 9);
 	skin->prefcolor = SKINCOLOR_BLUE;
 
 	skin->ability =   CA_THOK;
@@ -2585,7 +2585,7 @@ void R_InitSkins(void)
 	skin->spritedef.numframes = sprites[SPR_PLAY].numframes;
 	skin->spritedef.spriteframes = sprites[SPR_PLAY].spriteframes;
 	ST_LoadFaceGraphics(skin->face, skin->superface, 0);
-	strncpy(skin->iconprefix, "SONICICN", 8);
+	strncpy(skin->iconprefix, "SONICICN", 9);
 	K_LoadIconGraphics(skin->iconprefix, 0);
 
 	//MD2 for sonic doesn't want to load in Linux.
diff --git a/src/r_things.h b/src/r_things.h
index bd734ddd..a037b873 100644
--- a/src/r_things.h
+++ b/src/r_things.h
@@ -81,7 +81,7 @@ typedef struct
 
 	char realname[SKINNAMESIZE+1]; // Display name for level completion.
 	char hudname[SKINNAMESIZE+1]; // HUD name to display (officially exactly 5 characters long)
-	char charsel[8], face[8], superface[8]; // Arbitrarily named patch lumps
+	char charsel[9], face[9], superface[9]; // Arbitrarily named patch lumps
 
 	UINT8 ability; // ability definition
 	UINT8 ability2; // secondary ability definition
diff --git a/src/screen.c b/src/screen.c
index 2780edb6..61ac821f 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -71,7 +71,7 @@ consvar_t cv_scr_depth = {"scr_depth", "16 bits", CV_SAVE, scr_depth_cons_t, NUL
 consvar_t cv_renderview = {"renderview", "On", 0, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
 
 #ifdef DIRECTFULLSCREEN
-static FUNCMATH void SCR_ChangeFullscreen (void);
+static void SCR_ChangeFullscreen (void);
 #else
 static void SCR_ChangeFullscreen (void);
 #endif
diff --git a/src/sdl/i_cdmus.c b/src/sdl/i_cdmus.c
index 3105f512..5d086e73 100644
--- a/src/sdl/i_cdmus.c
+++ b/src/sdl/i_cdmus.c
@@ -12,19 +12,19 @@ consvar_t cd_volume = {"cd_volume","31",CV_SAVE,soundvolume_cons_t, NULL, 0, NUL
 consvar_t cdUpdate  = {"cd_update","1",CV_SAVE, NULL, NULL, 0, NULL, NULL, 0, 0, NULL};
 
 
-FUNCMATH void I_InitCD(void){}
+void I_InitCD(void){}
 
-FUNCMATH void I_StopCD(void){}
+void I_StopCD(void){}
 
-FUNCMATH void I_PauseCD(void){}
+void I_PauseCD(void){}
 
-FUNCMATH void I_ResumeCD(void){}
+void I_ResumeCD(void){}
 
-FUNCMATH void I_ShutdownCD(void){}
+void I_ShutdownCD(void){}
 
-FUNCMATH void I_UpdateCD(void){}
+void I_UpdateCD(void){}
 
-FUNCMATH void I_PlayCD(UINT8 track, UINT8 looping)
+void I_PlayCD(UINT8 track, UINT8 looping)
 {
 	(void)track;
 	(void)looping;
diff --git a/src/sdl/i_system.c b/src/sdl/i_system.c
index 3575afa8..05371282 100644
--- a/src/sdl/i_system.c
+++ b/src/sdl/i_system.c
@@ -2552,28 +2552,28 @@ void I_StartupMouse2(void)
 //
 // I_Tactile
 //
-FUNCMATH void I_Tactile(FFType pFFType, const JoyFF_t *FFEffect)
+void I_Tactile(FFType pFFType, const JoyFF_t *FFEffect)
 {
 	// UNUSED.
 	(void)pFFType;
 	(void)FFEffect;
 }
 
-FUNCMATH void I_Tactile2(FFType pFFType, const JoyFF_t *FFEffect)
+void I_Tactile2(FFType pFFType, const JoyFF_t *FFEffect)
 {
 	// UNUSED.
 	(void)pFFType;
 	(void)FFEffect;
 }
 
-FUNCMATH void I_Tactile3(FFType pFFType, const JoyFF_t *FFEffect)
+void I_Tactile3(FFType pFFType, const JoyFF_t *FFEffect)
 {
 	// UNUSED.
 	(void)pFFType;
 	(void)FFEffect;
 }
 
-FUNCMATH void I_Tactile4(FFType pFFType, const JoyFF_t *FFEffect)
+void I_Tactile4(FFType pFFType, const JoyFF_t *FFEffect)
 {
 	// UNUSED.
 	(void)pFFType;
@@ -2705,7 +2705,7 @@ tic_t I_GetTime (void)
 //
 //I_StartupTimer
 //
-FUNCMATH void I_StartupTimer(void)
+void I_StartupTimer(void)
 {
 #ifdef _WIN32
 	// for win2k time bug
@@ -2805,11 +2805,11 @@ void I_WaitVBL(INT32 count)
 	SDL_Delay(count);
 }
 
-FUNCMATH void I_BeginRead(void)
+void I_BeginRead(void)
 {
 }
 
-FUNCMATH void I_EndRead(void)
+void I_EndRead(void)
 {
 }
 
@@ -3557,5 +3557,5 @@ const CPUInfoFlags *I_CPUInfo(void)
 }
 
 // note CPUAFFINITY code used to reside here
-FUNCMATH void I_RegisterSysCommands(void) {}
+void I_RegisterSysCommands(void) {}
 #endif
diff --git a/src/sdl/mixer_sound.c b/src/sdl/mixer_sound.c
index 71832459..3126643c 100644
--- a/src/sdl/mixer_sound.c
+++ b/src/sdl/mixer_sound.c
@@ -124,7 +124,7 @@ void I_ShutdownSound(void)
 #endif
 }
 
-FUNCMATH void I_UpdateSound(void)
+void I_UpdateSound(void)
 {
 }
 
@@ -462,7 +462,7 @@ static void mix_gme(void *udata, Uint8 *stream, int len)
 }
 #endif
 
-FUNCMATH void I_InitMusic(void)
+void I_InitMusic(void)
 {
 }
 
@@ -767,7 +767,7 @@ boolean I_SetSongTrack(int track)
 // MIDI Music
 //
 
-FUNCMATH void I_InitMIDIMusic(void)
+void I_InitMIDIMusic(void)
 {
 }
 
diff --git a/src/st_stuff.h b/src/st_stuff.h
index 63bb89a1..d0528e0a 100644
--- a/src/st_stuff.h
+++ b/src/st_stuff.h
@@ -24,7 +24,7 @@
 //
 
 // Called by main loop.
-FUNCMATH void ST_Ticker(void);
+void ST_Ticker(void);
 
 // Called by main loop.
 void ST_Drawer(void);
diff --git a/src/y_inter.c b/src/y_inter.c
index d46f1351..06f2e2da 100644
--- a/src/y_inter.c
+++ b/src/y_inter.c
@@ -118,7 +118,7 @@ typedef union
 		patch_t *blueflag;
 		patch_t *redflag; // int_ctf uses this struct too.
 		INT32 numplayers; // Number of players being displayed
-		char levelstring[40]; // holds levelnames up to 32 characters
+		char levelstring[62]; // holds levelnames up to 32 characters
 		// SRB2kart
 		int increase[MAXPLAYERS]; //how much did the score increase by?
 		int time[MAXPLAYERS]; //Tournament Time
@@ -173,7 +173,7 @@ static void Y_UnloadData(void);
 // Level images
 typedef struct
 {
-	char str[40];
+	char str[62];
 	UINT8 gtc;
 	const char *gts;
 	patch_t *pic;