diff --git a/src/v_video.c b/src/v_video.c
index 931ec711f627762b0a8454ede5d510d1e4b114e7..b2ba0a40e835aa6539c2c4bca15724459cd3782e 100644
--- a/src/v_video.c
+++ b/src/v_video.c
@@ -106,20 +106,20 @@ static boolean InitCube(void)
 		{
 			{
 				{0.0, 0.0, 0.0}, // black corner
-				{1.0, 0.0, 0.0}  // red corner
+				{0.0, 0.0, 1.0}  // blue corner
 			},
 			{
-				{0.0, 1.0, 0.0}, // green corner
-				{1.0, 1.0, 0.0}  // yellow corner
+				{0.0, 1.0, 0.0}, // greem corner
+				{0.0, 1.0, 1.0}  // cyan corner
 			}
 		},
 		{
 			{
-				{0.0, 0.0, 1.0}, // blue corner
+				{1.0, 0.0, 0.0}, // red corner
 				{1.0, 0.0, 1.0}  // magenta corner
 			},
 			{
-				{0.0, 1.0, 1.0}, // cyan corner
+				{1.0, 1.0, 0.0}, // yellow corner
 				{1.0, 1.0, 1.0}  // white corner
 			}
 		}
@@ -250,15 +250,9 @@ static void LoadPalette(const char *lumpname)
 			}
 #undef dowork
 
-			/*
-			I don't know what I messed up such that red takes index 2 and blue takes index 0.
-			It should be the other way around, but I've just got this working after spending
-			hours on it and I'm not going to look a gift ho(rse/t)fix in the mouth.
-			toast 18/04/17
-			*/
-			pLocalPalette[i].s.red = (UINT8)(working[0][2]);
+			pLocalPalette[i].s.red = (UINT8)(working[0][0]);
 			pLocalPalette[i].s.green = (UINT8)(working[0][1]);
-			pLocalPalette[i].s.blue = (UINT8)(working[0][0]);
+			pLocalPalette[i].s.blue = (UINT8)(working[0][2]);
 		}
 	}
 }