Index: src/update-manager.in
===================================================================
RCS file: /cvs/gnome/update-manager/src/update-manager.in,v
retrieving revision 1.10
diff -u -3 -p -u -r1.10 update-manager.in
--- src/update-manager.in	13 Apr 2005 14:22:39 -0000	1.10
+++ src/update-manager.in	19 Apr 2005 12:11:16 -0000
@@ -108,6 +108,14 @@ class UpdateList:
     self.pkgs = []
     self.num_updates = 0
 
+  def exec_synaptic(self, widget):
+    if not os.fork():
+      os.execl("/usr/sbin/synaptic", "/usr/sbin/synaptic")
+
+    # Wait some time before synaptic starts
+    time.sleep(1)
+    sys.exit(0)
+
   def update(self, cache, records, depcache):
     held_back = []
     broken = []
@@ -143,11 +151,11 @@ class UpdateList:
         _("It is not possible to upgrade all packages."),
         _("This means that besides the actual upgrade of the "
           "packages some further action (such as installing or removing "
-          "packages) is required. Please use Synaptic \"Smart Upgrade\" "
+          "packages) is required. You may want to use Synaptic \"Smart Upgrade\" "
           "or \"apt-get dist-upgrade\" to fix the situation."))
            )
       
-      dialog = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO, gtk.BUTTONS_OK,"")
+      dialog = gtk.MessageDialog(None, 0, gtk.MESSAGE_INFO, gtk.BUTTONS_CLOSE,"")
       dialog.set_markup(msg)
       dialog.vbox.set_spacing(6)
       label = gtk.Label(_("The following packages are not upgraded: "))
@@ -167,6 +175,10 @@ class UpdateList:
       scroll.add(text)
       dialog.vbox.pack_start(scroll)
       scroll.show_all()
+      button_synaptic = gtk.Button(_("Run synaptic now"))
+      button_synaptic.connect("clicked", self.exec_synaptic)
+      dialog.vbox.pack_start(button_synaptic)
+      button_synaptic.show_all()
       dialog.run()
       dialog.destroy()
 
