diff -urN DirectFB-examples-1.2.0.orig/src/df_andi.c DirectFB-examples-1.2.0/src/df_andi.c
--- DirectFB-examples-1.2.0.orig/src/df_andi.c	2008-07-30 13:04:53.000000000 +0100
+++ DirectFB-examples-1.2.0/src/df_andi.c	2008-07-30 13:06:07.000000000 +0100
@@ -474,16 +474,9 @@
      /* get the primary surface, i.e. the surface of the primary layer we have
         exclusive access to */
      dsc.flags = DSDESC_CAPS;
-     dsc.caps = DSCAPS_PRIMARY | DSCAPS_TRIPLE;
-
-     err = dfb->CreateSurface( dfb, &dsc, &primary );
-     if (err) {
-          dsc.caps = DSCAPS_PRIMARY | DSCAPS_DOUBLE;
-
-          DFBCHECK(dfb->CreateSurface( dfb, &dsc, &primary ));
-     }
-     else
-          triple = true;
+     dsc.caps = DSCAPS_PRIMARY | DSCAPS_DOUBLE;
+	
+     DFBCHECK(dfb->CreateSurface( dfb, &dsc, &primary ));
 
      DFBCHECK(primary->GetSize( primary, &xres, &yres ));
 
@@ -517,7 +510,7 @@
                                         &provider ));
 
      DFBCHECK (provider->GetSurfaceDescription (provider, &dsc));
-     dsc.flags = DSDESC_WIDTH | DSDESC_HEIGHT;
+     dsc.flags |= DSDESC_WIDTH | DSDESC_HEIGHT;
      dsc.width = xres;
      dsc.height = yres;
      DFBCHECK(dfb->CreateSurface( dfb, &dsc, &background ));
diff -urN DirectFB-examples-1.2.0.orig/src/df_dok.c DirectFB-examples-1.2.0/src/df_dok.c
--- DirectFB-examples-1.2.0.orig/src/df_dok.c	2008-07-30 13:04:53.000000000 +0100
+++ DirectFB-examples-1.2.0/src/df_dok.c	2008-07-30 13:05:25.000000000 +0100
@@ -1478,7 +1478,7 @@
      primary->Clear( primary, 0, 0, 0, 0x80 );
 
      if (do_offscreen) {
-          dsc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT | DSDESC_CAPS;
+          dsc.flags |= DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT | DSDESC_CAPS;
           dsc.width = SW;
           dsc.height = SH;
           dsc.pixelformat = pixelformat;
@@ -1573,7 +1573,7 @@
                                         &provider ));
      DFBCHECK(provider->GetSurfaceDescription( provider, &dsc ));
 
-     dsc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
+     dsc.flags |= DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
      dsc.width = SX*2;
      dsc.height = SY*2;
      dsc.pixelformat = pixelformat;
@@ -1588,7 +1588,7 @@
                                         &provider ));
      DFBCHECK(provider->GetSurfaceDescription( provider, &dsc ));
 
-     dsc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
+     dsc.flags |= DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
      dsc.width = SX;
      dsc.height = SY;
      dsc.pixelformat = pixelformat;
@@ -1610,7 +1610,7 @@
                                         &provider ));
      DFBCHECK(provider->GetSurfaceDescription( provider, &dsc ));
 
-     dsc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
+     dsc.flags |= DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
      dsc.width = SX;
      dsc.height = SY;
      dsc.pixelformat = pixelformat;
diff -urN DirectFB-examples-1.2.0.orig/src/df_input.c DirectFB-examples-1.2.0/src/df_input.c
--- DirectFB-examples-1.2.0.orig/src/df_input.c	2008-07-30 13:04:53.000000000 +0100
+++ DirectFB-examples-1.2.0/src/df_input.c	2008-07-30 13:05:25.000000000 +0100
@@ -565,7 +565,7 @@
      }
 
      provider->GetSurfaceDescription( provider, &dsc );
-     dsc.flags = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
+     dsc.flags |= DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT;
      dsc.pixelformat = DSPF_ARGB;
      if (dfb->CreateSurface( dfb, &dsc, &tmp ) == DFB_OK)
           provider->RenderTo( provider, tmp, NULL );
diff -urN DirectFB-examples-1.2.0.orig/src/df_stress.c DirectFB-examples-1.2.0/src/df_stress.c
--- DirectFB-examples-1.2.0.orig/src/df_stress.c	2008-07-30 13:04:53.000000000 +0100
+++ DirectFB-examples-1.2.0/src/df_stress.c	2008-07-30 13:05:25.000000000 +0100
@@ -83,7 +83,7 @@
 
      provider->GetSurfaceDescription (provider, &dsc);
 
-     dsc.flags = DSDESC_WIDTH | DSDESC_HEIGHT;
+     dsc.flags |= DSDESC_WIDTH | DSDESC_HEIGHT;
 
      for (i=0; i<SURFACEMANAGER_TEST_SURFACES; i++) {
           dsc.width = rand()%500 + 100;
diff -urN DirectFB-examples-1.2.0.orig/src/df_window.c DirectFB-examples-1.2.0/src/df_window.c
--- DirectFB-examples-1.2.0.orig/src/df_window.c	2008-07-30 13:04:53.000000000 +0100
+++ DirectFB-examples-1.2.0/src/df_window.c	2008-07-30 13:05:25.000000000 +0100
@@ -131,7 +131,7 @@
           desc.flags  = DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_CAPS;
           desc.width  = layer_config.width;
           desc.height = layer_config.height;
-          desc.caps   = DSCAPS_SHARED;
+          desc.caps  = DSCAPS_VIDEOONLY;
 
           DFBCHECK(dfb->CreateSurface( dfb, &desc, &bgsurface ) );
 
@@ -174,10 +174,11 @@
 
           if (!video_provider) {
                desc.caps = DWCAPS_ALPHACHANNEL;
-               desc.flags |= DWDESC_CAPS;
+               desc.flags |= DWDESC_CAPS | DWDESC_SURFACE_CAPS;
 
                sdsc.width  = 300;
                sdsc.height = 200;
+	       desc.surface_caps = DSCAPS_VIDEOONLY;
           }
           else {
                video_provider->GetSurfaceDescription( video_provider, &sdsc );
@@ -224,12 +225,13 @@
           DFBWindowDescription desc;
 
           desc.flags  = ( DWDESC_POSX | DWDESC_POSY |
-                          DWDESC_WIDTH | DWDESC_HEIGHT | DWDESC_CAPS );
+                          DWDESC_WIDTH | DWDESC_HEIGHT | DWDESC_CAPS | DWDESC_SURFACE_CAPS);
           desc.posx   = 200;
           desc.posy   = 200;
           desc.width  = 512;
           desc.height = 145;
           desc.caps   = DWCAPS_ALPHACHANNEL;
+	  desc.surface_caps = DSCAPS_VIDEOONLY;
 
           DFBCHECK(layer->CreateWindow( layer, &desc, &window1 ) );
           window1->GetSurface( window1, &window_surface1 );
