diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py
index b562ab3..ac8ce58 100644
--- a/Lib/webbrowser.py
+++ b/Lib/webbrowser.py
@@ -135,6 +135,33 @@
         self.open(url, 1)
 
 
+class Galeon:
+    """Launcher class for Galeon browsers."""
+    def __init__(self, name):
+        self.name = name
+        self.basename = os.path.basename(name)
+
+    def _remote(self, action, autoraise):
+        raise_opt = ("--noraise", "")[autoraise]
+        cmd = "%s %s %s >/dev/null 2>&1" % (self.name, raise_opt, action)
+        rc = os.system(cmd)
+        if rc:
+            import time
+            os.system("%s >/dev/null 2>&1 &" % self.name)
+            time.sleep(PROCESS_CREATION_DELAY)
+            rc = os.system(cmd)
+        return not rc
+
+    def open(self, url, new=0, autoraise=1):
+        if new:
+            self._remote("-w '%s'" % url, autoraise)
+        else:
+            self._remote("-n '%s'" % url, autoraise)
+
+    def open_new(self, url):
+        self.open(url, 1)
+
+
 class Konqueror:
     """Controller for the KDE File Manager (kfm, or Konqueror).
 
@@ -234,7 +261,8 @@
 # the TERM and DISPLAY cases, because we might be running Python from inside
 # an xterm.
 if os.environ.get("TERM") or os.environ.get("DISPLAY"):
-    _tryorder = ["mozilla","netscape","kfm","grail","links","lynx","w3m"]
+    _tryorder = ["galeon", "mozilla", "netscape", "kfm",
+                 "grail", "links", "lynx", "w3m",]
 
     # Easy cases first -- register console browsers if we have them.
     if os.environ.get("TERM"):
@@ -261,6 +289,10 @@
             register("mosaic", None, GenericBrowser(
                 "mosaic '%s' >/dev/null &"))
 
+        # Gnome's Galeon
+        if _iscommand("galeon"):
+            register("galeon", None, Galeon("galeon"))
+
         # Konqueror/kfm, the KDE browser.
         if _iscommand("kfm") or _iscommand("konqueror"):
             register("kfm", Konqueror, Konqueror())
