diff --git a/src/load-graph.cpp b/src/load-graph.cpp
index 79700d4..c558f57 100644
--- a/src/load-graph.cpp
+++ b/src/load-graph.cpp
@@ -191,10 +191,6 @@ load_graph_configure (GtkWidget *widget,
 
 	g->clear_background();
 
-	if (g->gc == NULL) {
-		g->gc = gdk_gc_new (GDK_DRAWABLE (gtk_widget_get_window (widget)));
-	}
-
 	load_graph_draw (g);
 
 	return TRUE;
@@ -212,19 +208,14 @@ load_graph_expose (GtkWidget *widget,
 	guint i, j;
 	gdouble sample_width, x_offset;
 
+	window = gtk_widget_get_window (g->disp);
+	gtk_widget_get_allocation (g->disp, &allocation);
+
 	if (g->background == NULL) {
 		draw_background(g);
+		gdk_window_set_back_pixmap (window, g->background, FALSE);
 	}
 
-	window = gtk_widget_get_window (g->disp);
-	gtk_widget_get_allocation (g->disp, &allocation);
-	gdk_draw_drawable (window,
-			   g->gc,
-			   g->background,
-			   0, 0, 0, 0, 
-			   allocation.width,
-			   allocation.height);
-
 	/* Number of pixels wide for one graph point */
 	sample_width = (float)(g->draw_width - g->rmargin - g->indent) / (float)LoadGraph::NUM_POINTS;
 	/* General offset */
@@ -619,7 +610,6 @@ LoadGraph::LoadGraph(guint type)
     graph_buffer_offset(0),
     main_widget(NULL),
     disp(NULL),
-    gc(NULL),
     background(NULL),
     timer_index(0),
     draw(FALSE),
diff --git a/src/load-graph.h b/src/load-graph.h
index 6111c78..2dc2b10 100644
--- a/src/load-graph.h
+++ b/src/load-graph.h
@@ -66,7 +66,6 @@ struct LoadGraph {
 	GtkWidget *main_widget;
 	GtkWidget *disp;
 
-	GdkGC *gc;
 	GdkDrawable *background;
 
 	guint timer_index;
