--- /dev/null
+diff -urN libggi-2.1.1.orig/display/lcd823/visual.c libggi-2.1.1/display/lcd823/visual.c
+--- libggi-2.1.1.orig/display/lcd823/visual.c 2006-06-03 07:46:42.000000000 +0200
++++ libggi-2.1.1/display/lcd823/visual.c 2006-06-03 07:55:37.000000000 +0200
+@@ -106,7 +106,10 @@
+
+ GGIDPRINT("display-lcd823: GGIopen start.\n");
+
+- LCD823_PRIV(vis) = priv = malloc(sizeof(ggi_lcd823_priv));
++
++ LCD823_PRIV(vis) = priv = (ggi_lcd823_priv *)malloc(sizeof(ggi_lcd823_priv));
++
++
+ if (priv == NULL) {
+ return GGI_ENOMEM;
+ }
+diff -urN libggi-2.1.1.orig/include/ggi/display/lcd823.h libggi-2.1.1/include/ggi/display/lcd823.h
+--- libggi-2.1.1.orig/include/ggi/display/lcd823.h 2006-06-03 07:46:42.000000000 +0200
++++ libggi-2.1.1/include/ggi/display/lcd823.h 2006-06-03 07:54:28.000000000 +0200
+@@ -50,6 +50,6 @@
+ long frame_size;
+ } ggi_lcd823_priv;
+
+-#define LCD823_PRIV(vis) ((ggi_lcd823_priv *)LIBGGI_PRIVATE(vis))
++#define LCD823_PRIV(vis) (LIBGGI_PRIVATE(vis))
+
+ #endif /* _GGI_DISPLAY_LCD823_H */
--- /dev/null
+--- default/fbdev/ati/mach64/visual.c~ 2004-09-13 18:19:19.000000000 +0200
++++ default/fbdev/ati/mach64/visual.c 2005-07-19 10:39:28.000000000 +0200
+@@ -281,7 +281,7 @@
+ }*/
+
+ free(priv);
+- ATI_MACH64_PRIV(vis) = NULL;
++ LIBGGI_PRIVATE(vis) = NULL;
+
+ ggUnregisterCleanup((ggcleanup_func *)do_cleanup, vis);
+
+@@ -313,7 +313,7 @@
+ if (priv == NULL) {
+ return GGI_ENOMEM;
+ }
+- ATI_MACH64_PRIV(vis) = priv;
++ LIBGGI_PRIVATE(vis) = priv;
+
+
+ fbdevpriv->mmioaddr = mmap(NULL, fbdevpriv->orig_fix.mmio_len,
+--- default/fbdev/mga/g400/visual.c~ 2004-09-13 18:20:44.000000000 +0200
++++ default/fbdev/mga/g400/visual.c 2005-07-19 10:38:28.000000000 +0200
+@@ -117,7 +117,7 @@
+ }
+
+ free(priv);
+- MGA_G400_PRIV(vis) = NULL;
++ LIBGGI_PRIVATE(vis) = NULL;
+
+ ggUnregisterCleanup((ggcleanup_func *)do_cleanup, vis);
+
+@@ -259,7 +259,7 @@
+ /* vis->opdraw->crossblit = GGI_mga_g400_crossblit; */
+ }
+
+- MGA_G400_PRIV(vis) = priv;
++ LIBGGI_PRIVATE(vis) = priv;
+
+ /* Register cleanup handler */
+ ggRegisterCleanup((ggcleanup_func *)do_cleanup, vis);
+--- default/fbdev/mga/2164w/visual.c~ 2004-09-13 18:19:59.000000000 +0200
++++ default/fbdev/mga/2164w/visual.c 2005-07-19 10:37:13.000000000 +0200
+@@ -111,7 +111,7 @@
+ }
+
+ free(priv);
+- M2164W_PRIV(vis) = NULL;
++ LIBGGI_PRIVATE(vis) = NULL;
+
+ ggUnregisterCleanup((ggcleanup_func *)do_cleanup, vis);
+
+@@ -253,7 +253,7 @@
+ vis->opdraw->crossblit = GGI_m2164w_crossblit;
+ }
+
+- M2164W_PRIV(vis) = priv;
++ LIBGGI_PRIVATE(vis) = priv;
+
+ /* Register cleanup handler */
+ ggRegisterCleanup((ggcleanup_func *)do_cleanup, vis);
+--- display/vcsa/visual.c~ 2004-11-14 01:41:44.000000000 +0100
++++ display/vcsa/visual.c 2005-07-19 10:34:02.000000000 +0200
+@@ -124,7 +124,7 @@
+ }
+ }
+
+- priv = VCSA_PRIV(vis) = malloc(sizeof(ggi_vcsa_priv));
++ priv = LIBGGI_PRIVATE(vis) = malloc(sizeof(ggi_vcsa_priv));
+ if (priv == NULL) return GGI_ENOMEM;
+
+ LIBGGI_GC(vis) = malloc(sizeof(ggi_gc));