diff -BbtwNaur --exclude grip-2.2.pot grip-3.2.0-redhat/pixmaps/load.xpm grip-3.2.0/pixmaps/load.xpm
--- grip-3.2.0-redhat/pixmaps/load.xpm	1970-01-01 01:00:00.000000000 +0100
+++ grip-3.2.0/pixmaps/load.xpm	2007-04-07 10:16:08.000000000 +0100
@@ -0,0 +1,20 @@
+/* XPM */
+static char * load_xpm[] = {
+"16 15 2 1",
+"       c None",
+".      c #FFFFFF",
+"            .   ",
+"           ...  ",
+"          ..... ",
+"           ...  ",
+"           ...  ",
+" ....      ...  ",
+" .  .......     ",
+" .        .     ",
+" .        .     ",
+" .   .........  ",
+" .  .       .   ",
+" . .       .    ",
+" ..........     ",
+"                ",
+"                "};
diff -BbtwNaur --exclude grip-2.2.pot grip-3.2.0-redhat/src/discedit.c grip-3.2.0/src/discedit.c
--- grip-3.2.0-redhat/src/discedit.c	2004-04-15 19:23:46.000000000 +0100
+++ grip-3.2.0/src/discedit.c	2007-04-07 10:50:45.000000000 +0100
@@ -28,6 +28,7 @@
 #include "discedit.h"
 
 static void SaveDiscInfo(GtkWidget *widget,gpointer data);
+static void LoadDiscInfo(GtkWidget *widget,gpointer data);
 static void TitleEditChanged(GtkWidget *widget,gpointer data);
 static void ArtistEditChanged(GtkWidget *widget,gpointer data);
 static void YearEditChanged(GtkWidget *widget,gpointer data);
@@ -264,6 +265,15 @@
   gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0);
   gtk_widget_show(button);
 
+  button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->load_image);
+  gtk_widget_set_style(button,uinfo->style_dark_grey);
+  gtk_signal_connect(GTK_OBJECT(button),"clicked",
+                     GTK_SIGNAL_FUNC(LoadDiscInfo),(gpointer)ginfo);
+  gtk_tooltips_set_tip(MakeToolTip(),button,
+                       _("Load disc info"),NULL);
+  gtk_box_pack_start(GTK_BOX(hbox),button,FALSE,FALSE,0);
+  gtk_widget_show(button);
+
   button=ImageButton(GTK_WIDGET(uinfo->app),uinfo->mail_image);
   gtk_widget_set_style(button,uinfo->style_dark_grey);
   gtk_signal_connect(GTK_OBJECT(button),"clicked",
@@ -389,6 +399,21 @@
   else DisplayMsg(_("No disc present"));
 }
 
+static void LoadDiscInfo( GtkWidget *widget, gpointer data )
+{
+  GripInfo *ginfo;
+
+  ginfo=(GripInfo *)data;
+
+  if(ginfo->have_disc) {
+    if(DiscDBReadDiscData(&(ginfo->disc),&(ginfo->ddata)) < 0 )
+      DisplayMsg(_("Error loading disc data\n" ));
+    else
+      ginfo->update_required = TRUE;
+  }
+  else DisplayMsg(_("No disc present"));
+}
+
 static void TitleEditChanged(GtkWidget *widget,gpointer data)
 {
   GripInfo *ginfo;
diff -BbtwNaur --exclude grip-2.2.pot grip-3.2.0-redhat/src/grip.c grip-3.2.0/src/grip.c
--- grip-3.2.0-redhat/src/grip.c	2007-04-07 10:13:41.000000000 +0100
+++ grip-3.2.0/src/grip.c	2007-04-07 10:37:32.000000000 +0100
@@ -631,6 +631,7 @@
   uinfo->progtrack_image=Loadxpm(uinfo->app,progtrack_xpm);
   uinfo->mail_image=Loadxpm(uinfo->app,mail_xpm);
   uinfo->save_image=Loadxpm(uinfo->app,save_xpm);
+  uinfo->load_image=Loadxpm(uinfo->app,load_xpm);
 
   uinfo->empty_image=NewBlankPixmap(uinfo->app);
 
diff -BbtwNaur --exclude grip-2.2.pot grip-3.2.0-redhat/src/grip.h grip-3.2.0/src/grip.h
--- grip-3.2.0-redhat/src/grip.h	2004-04-15 18:51:47.000000000 +0100
+++ grip-3.2.0/src/grip.h	2007-04-07 10:37:48.000000000 +0100
@@ -169,6 +169,7 @@
   GtkWidget *progtrack_image;
   GtkWidget *mail_image;
   GtkWidget *save_image;
+  GtkWidget *load_image;
   GtkWidget *empty_image;
 
   GtkWidget *discdb_pix[2];
diff -BbtwNaur --exclude grip-2.2.pot grip-3.2.0-redhat/src/xpm.h grip-3.2.0/src/xpm.h
--- grip-3.2.0-redhat/src/xpm.h	2004-04-15 18:51:47.000000000 +0100
+++ grip-3.2.0/src/xpm.h	2007-04-07 10:16:39.000000000 +0100
@@ -49,6 +49,7 @@
 #include "../pixmaps/progtrack.xpm"
 #include "../pixmaps/mail.xpm"
 #include "../pixmaps/save.xpm"
+#include "../pixmaps/load.xpm"
 
 #ifndef GRIPCD
 #include "../pixmaps/grip.xpm"
