--- ./fb_display.c.00	2008-01-07 11:55:29.000000000 +0100
+++ ./fb_display.c	2008-01-07 11:55:40.000000000 +0100
@@ -310,7 +310,7 @@
 {
     unsigned long i;
     void *fbbuff = NULL;
-	u_int8_t  *c_fbbuff;
+    u_int8_t  *c_fbbuff;
     u_int16_t *s_fbbuff;
     u_int32_t *i_fbbuff;
 
@@ -338,6 +338,16 @@
 	    fbbuff = (void *) s_fbbuff;
 	    break;
 	case 24:
+	    *cpp = 3;
+	    c_fbbuff = (unsigned char *) malloc(count * 3 * sizeof(unsigned char));
+	    for(i = 0; i < (3 * count); i += 3) {
+		/* Big endian framebuffer. */
+		c_fbbuff[i] = rgbbuff[i+2];
+		c_fbbuff[i+1] = rgbbuff[i+1];
+		c_fbbuff[i+2] = rgbbuff[i];
+	    }
+	    fbbuff = (void *) c_fbbuff;
+	    break;
 	case 32:
 	    *cpp = 4;
 	    i_fbbuff = (unsigned int *) malloc(count * sizeof(unsigned int));
