diff --git a/libgnomekbd/gkbd-keyboard-drawing.c b/libgnomekbd/gkbd-keyboard-drawing.c
index a6f4ebe..61c4d74 100644
--- a/libgnomekbd/gkbd-keyboard-drawing.c
+++ b/libgnomekbd/gkbd-keyboard-drawing.c
@@ -44,6 +44,21 @@ enum {
 	NUM_SIGNALS
 };
 
+static GdkRectangle lir;
+static void
+paint_lir(cairo_t *cr)
+{
+	static GdkColor black;
+
+	gdk_cairo_set_source_color (cr, &black);
+	cairo_move_to (cr, lir.x, lir.y);
+	cairo_line_to (cr, lir.x+lir.width, lir.y);
+	cairo_line_to (cr, lir.x+lir.width, lir.y+lir.height);
+	cairo_line_to (cr, lir.x, lir.y+lir.height);
+	cairo_close_path (cr);
+	cairo_fill (cr);
+}
+
 static guint gkbd_keyboard_drawing_signals[NUM_SIGNALS] = { 0 };
 
 static void gkbd_keyboard_drawing_set_mods (GkbdKeyboardDrawing * drawing,
@@ -1126,6 +1141,10 @@ invalidate_region (GkbdKeyboardDrawing * drawing,
 	    xkb_to_pixmap_coord (drawing->renderContext,
 				 y_max - y_min) + 12;
 
+lir.x = x;
+lir.y = y;
+lir.width = width;
+lir.height = height;
 	gtk_widget_queue_draw_area (GTK_WIDGET (drawing), x, y, width,
 				    height);
 }
@@ -1448,6 +1467,7 @@ draw (GtkWidget * widget, cairo_t * cr, GkbdKeyboardDrawing * drawing)
 				 allocation.height);
 	}
 
+	paint_lir (cr);
 	return FALSE;
 }
 
