diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py
index 72ba1ac..d25c2e6 100644
--- a/Lib/webbrowser.py
+++ b/Lib/webbrowser.py
@@ -600,9 +600,35 @@
             rc = osapipe.close()
             return not rc
 
+    class MacOSXOSAScript(BaseBrowser):
+        def __init__(self, name):
+            self._name = name
+
+        def open(self, url, new=0, autoraise=True):
+            if self._name == 'default':
+                script = 'open location "%s"' % url.replace('"', '%22') # opens in default browser
+            else:
+                script = '''
+                   tell application "%s"
+                       activate
+                       open location "%s"
+                   end
+                   '''%(self._name, url.replace('"', '%22'))
+
+            osapipe = os.popen("osascript", "w")
+            if osapipe is None:
+                return False
+
+            osapipe.write(script)
+            rc = osapipe.close()
+            return not rc
+
+
     # Don't clear _tryorder or _browsers since OS X can use above Unix support
     # (but we prefer using the OS X specific stuff)
-    register("MacOSX", None, MacOSX('default'), -1)
+    register("safari", None, MacOSXOSAScript('safari'), -1)
+    register("firefox", None, MacOSXOSAScript('firefox'), -1)
+    register("MacOSX", None, MacOSXOSAScript('default'), -1)
 
 
 #
diff --git a/Misc/NEWS b/Misc/NEWS
index f935480..e30315a 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -345,6 +345,9 @@
 Library
 -------
 
+- Issue #7192: webbrowser.get("firefox") now wors on Mac OS X, as does
+  webbrowser.get("safari").
+
 - Issue #8464: tarfile no longer creates files with execute permissions set
   when mode="w|" is used.
 
