diff --git a/src/command.c b/src/command.c
index 861a1f82829f6ef757c87ea27ba439f4f169d7b3..40efa1eeea78c54bca70c12e115cf413f2889a42 100644
--- a/src/command.c
+++ b/src/command.c
@@ -106,7 +106,7 @@ static vsbuf_t com_text; // variable sized buffer
   *
   * \param s The text.
   * \param np Optionally a pointer to fill with the new string length.
-  * \return The new length.
+  * \return The text.
   * \sa COM_ExecuteString
   */
 static char *
@@ -427,16 +427,17 @@ static void COM_TokenizeString(char *ptext)
 
 	com_argc = 0;
 	com_args = NULL;
-	com_flags = 0;
 
-	while (com_argc < MAX_ARGS)
+	if (ptext[0] == '\033')
 	{
-		if (ptext[0] == '\033')
-		{
-			com_flags = (unsigned)ptext[1];
-			ptext += 2;
-		}
+		com_flags = (unsigned)ptext[1];
+		ptext += 2;
+	}
+	else
+		com_flags = 0;
 
+	while (com_argc < MAX_ARGS)
+	{
 		// Skip whitespace up to a newline.
 		while (*ptext != '\0' && *ptext <= ' ' && *ptext != '\n')
 			ptext++;
diff --git a/src/screen.c b/src/screen.c
index 4aac27c01873995e8b0e4c0a9a648b1661b7a5fb..94b6c2454a12d26856163cd986845ed35f6473a6 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -65,7 +65,7 @@ consvar_t cv_renderview = {"renderview", "On", 0, CV_OnOff, NULL, 0, NULL, NULL,
 
 static void SCR_ActuallyChangeRenderer(void);
 static CV_PossibleValue_t cv_renderer_t[] = {{1, "Software"}, {2, "OpenGL"}, {0, NULL}};
-consvar_t cv_renderer = {"renderer", "Software", CV_NOLUA|CV_CALL, cv_renderer_t, SCR_ChangeRenderer, 0, NULL, NULL, 0, 0, NULL};
+consvar_t cv_renderer = {"renderer", "Software", CV_SAVE|CV_NOLUA|CV_CALL, cv_renderer_t, SCR_ChangeRenderer, 0, NULL, NULL, 0, 0, NULL};
 
 static void SCR_ChangeFullscreen(void);