diff --git a/SConstruct b/SConstruct
index 76ada41..83c29c0 100644
--- a/SConstruct
+++ b/SConstruct
@@ -31,7 +31,7 @@
 # Configuration options
 
 default_statetrackers = 'mesa'
-default_targets = 'none'
+default_targets = 'graw-null'
 
 if common.default_platform in ('linux', 'freebsd', 'darwin'):
 	default_drivers = 'softpipe,failover,svga,i915,i965,trace,identity,llvmpipe'
@@ -69,6 +69,7 @@
 		       'egl-swrast',
 		       'egl-vmwgfx',
 		       'graw-xlib',
+		       'graw-null',
 		       'libgl-gdi',
 		       'libgl-xlib',
 		       'xorg-i915',
diff --git a/src/gallium/SConscript b/src/gallium/SConscript
index c0d48a8..3c17155 100644
--- a/src/gallium/SConscript
+++ b/src/gallium/SConscript
@@ -27,4 +27,4 @@
 
 if platform != 'embedded':
 	SConscript('tests/unit/SConscript')
-	#SConscript('tests/graw/SConscript')
+	SConscript('tests/graw/SConscript')
diff --git a/src/gallium/targets/SConscript b/src/gallium/targets/SConscript
index b61a485..9718703 100644
--- a/src/gallium/targets/SConscript
+++ b/src/gallium/targets/SConscript
@@ -14,7 +14,7 @@
 			'libgl-gdi/SConscript',
 		])
 
-if not 'graw-xlib' in env['targets'] and not env['msvc']:
+if not 'graw-xlib' in env['targets'] and not 'graw-null' in env['targets'] and not env['msvc']:
         # XXX: disable until MSVC can link correctly
         SConscript('graw-null/SConscript')
 
diff --git a/src/gallium/targets/graw-null/SConscript b/src/gallium/targets/graw-null/SConscript
index 106dcd9..3416989 100644
--- a/src/gallium/targets/graw-null/SConscript
+++ b/src/gallium/targets/graw-null/SConscript
@@ -25,6 +25,7 @@
 
 sources = [
     'graw_null.c',
+    '../graw-xlib/graw_util.c',
 ]
 
 if True:
diff --git a/src/gallium/targets/graw-null/graw_null.c b/src/gallium/targets/graw-null/graw_null.c
index 6965f58..5939a5a 100644
--- a/src/gallium/targets/graw-null/graw_null.c
+++ b/src/gallium/targets/graw-null/graw_null.c
@@ -3,6 +3,8 @@
 #include "util/u_memory.h"
 #include "target-helpers/wrap_screen.h"
 #include "sw/null/null_sw_winsys.h"
+#include "os/os_time.h"
+#include "state_tracker/graw.h"
 
 #ifdef GALLIUM_SOFTPIPE
 #include "softpipe/sp_public.h"
@@ -21,13 +23,26 @@
 #include <stdio.h>
 
 
+static struct {
+   void (*draw)(void);
+} graw;
+
+
+
 struct pipe_screen *
-graw_init( void )
+graw_create_window_and_screen( int x,
+                               int y,
+                               unsigned width,
+                               unsigned height,
+                               enum pipe_format format,
+                               void **handle)
 {
    const char *default_driver;
    const char *driver;
    struct pipe_screen *screen = NULL;
    struct sw_winsys *winsys = NULL;
+   static int dummy;
+
 
    /* Create the underlying winsys, which performs presents to Xlib
     * drawables:
@@ -56,26 +71,25 @@
       screen = softpipe_create_screen( winsys );
 #endif
 
+   *handle = &dummy;
+
    /* Inject any wrapping layers we want to here:
     */
    return gallium_wrap_screen( screen );
 }
 
 
-void *
-graw_create_window( int x,
-                    int y,
-                    unsigned width,
-                    unsigned height,
-                    enum pipe_format format )
+
+void 
+graw_set_display_func( void (*draw)( void ) )
 {
-   static int dummy;
-   return &dummy;
+   graw.draw = draw;
 }
 
 
 void
-graw_destroy_window( void *window )
+graw_main_loop( void )
 {
+   graw.draw();
+   os_time_sleep(100000);
 }
-
