diff --git a/src/command.c b/src/command.c
index 33d8ead96a24fc326777f5dd5aeab2f3bcd68c61..889ea3f02ab90041071ff8b6fd3185741849ed58 100644
--- a/src/command.c
+++ b/src/command.c
@@ -2060,7 +2060,12 @@ void CV_SaveVariables(FILE *f)
 
 			// Silly hack for Min/Max vars
 			if (!strcmp(cvar->string, "MAX") || !strcmp(cvar->string, "MIN"))
-				sprintf(stringtowrite, "%d", cvar->value);
+			{
+				if (cvar->flags & CV_FLOAT)
+					sprintf(stringtowrite, "%f", FIXED_TO_FLOAT(cvar->value));
+				else
+					sprintf(stringtowrite, "%d", cvar->value);
+			}
 			else
 				strcpy(stringtowrite, cvar->string);