diff --git a/epicardium/modules/display.c b/epicardium/modules/display.c
index 8d3091697102fb4a7d473a80b1f3c94b24faf698..f8c34ea74349b1e5fe7072fbe05865179ec56f56 100644
--- a/epicardium/modules/display.c
+++ b/epicardium/modules/display.c
@@ -3,6 +3,7 @@
 #include "FreeRTOS.h"
 #include "LCD_Driver.h"
 #include "epicardium.h"
+#include "framebuffer.h"
 #include "gfx.h"
 #include "gpio.h"
 #include "task.h"
@@ -181,6 +182,15 @@ int epic_disp_circ(
 
 void compositor()
 {
+	/* Check that BPP is 2 for everything */
+	const size_t bpp_app  = fb_bytes_per_pixel(application_screen.fb);
+	const size_t bpp_ovl  = fb_bytes_per_pixel(overlay_screen.fb);
+	const size_t bpp_disp = fb_bytes_per_pixel(overlay_screen.fb);
+
+	if ((bpp_app != 2) || (bpp_ovl != 2) || (bpp_disp != 2))
+		return;
+
+	/* Compose overlay on application */
 	for (int y = 0; y < display_screen.height; y++) {
 		for (int x = 0; x < display_screen.width; x++) {
 			uint8_t *overlay_pixel =