diff --git a/pycardium/modules/sys_display.c b/pycardium/modules/sys_display.c
index eedeb705e12531d3ddf46a153abafbe8adebca0a..37011cae8bc7ccf389815cf5dfacd5bccfbc0b4b 100644
--- a/pycardium/modules/sys_display.c
+++ b/pycardium/modules/sys_display.c
@@ -150,7 +150,8 @@ static mp_obj_t mp_display_blit(size_t n_args, const mp_obj_t *args)
 		res = epic_disp_blit(pos_x, pos_y, width, height, buf, NULL);
 	}
 
-	if (buf) {
+	if (!rgb565) {
+		/* Do not free rgb565 data. It is owned by the caller */
 		m_free(buf);
 	}