diff --git a/gl/gl_mgr.sv b/gl/gl_mgr.sv
index 73f6eaa1def2b390ee7764065a4f7888fe0449f0..ee158e61105f5516938e68ffb66c6984220493f4 100644
--- a/gl/gl_mgr.sv
+++ b/gl/gl_mgr.sv
@@ -57,14 +57,14 @@ module gl_mgr (
 	// Redraw cache instance
 	logic [19:0] rc_addr1, rc_addr2;
 	logic rc_data_in1, rc_data_in2;
-	logic rc_we1, rc_we2;
+	logic rc_we1, rc_we2, rc_we1_san;
 	logic rc_data_out1, rc_data_out2;
 	gl_redraw_cache redraw_cache(
 		.addr1    (rc_addr1),
 		.addr2    (rc_addr2),
 		.data_in1 (rc_data_in1),
 		.data_in2 (rc_data_in2),
-		.we1      (rc_we1),
+		.we1      (rc_we1_san),
 		.we2      (rc_we2),
 		.clk      (CLOCK),
 		.data_out1(rc_data_out1),
@@ -109,8 +109,11 @@ module gl_mgr (
 	logic [9:0] fb_PAINT_X_san, fb_PAINT_Y_san;
 	logic [15:0] fb_PAINT_RGB16;
 	logic fb_PAINT_READY;
-	assign fb_PAINT_X_san = (fb_PAINT_X>10'd639) ? 10'd639 : fb_PAINT_X;
-	assign fb_PAINT_Y_san = (fb_PAINT_Y>10'd479) ? 10'd479 : fb_PAINT_Y;
+	logic paint_invalid;
+	assign paint_invalid = (fb_PAINT_X>10'd639) || (fb_PAINT_Y>10'd479);
+	assign fb_PAINT_X_san = paint_invalid ? 10'd639 : fb_PAINT_X;
+	assign fb_PAINT_Y_san = paint_invalid ? 10'd479 : fb_PAINT_Y;
+	assign rc_we1_san = paint_invalid ? 1'b0 : rc_we1;
 	gl_frame_buffer frame_buffer(
 		.CLK          (CLOCK),
 		.RESET        (RESET),