diff --git a/browser/components/feeds/src/FeedConverter.js b/browser/components/feeds/src/FeedConverter.js
index e9531d44ef9fe9c59d994114e8d61b4ddfdb444a..cd192906f223cdac6250fc5b84ae4bf4ff5cdb8f 100644
--- a/browser/components/feeds/src/FeedConverter.js
+++ b/browser/components/feeds/src/FeedConverter.js
@@ -447,10 +447,22 @@ var FeedResultService = {
       else
         spec = "feed:" + spec;
 
-      var ss = 
-          Cc["@mozilla.org/browser/shell-service;1"].
-          getService(Ci.nsIShellService);
-      ss.openApplicationWithURI(clientApp, spec);
+      // Retrieving the shell service might fail on some systems, most
+      // notably systems where GNOME is not installed.
+      try {
+        var ss =
+            Cc["@mozilla.org/browser/shell-service;1"].
+            getService(Ci.nsIShellService);
+        ss.openApplicationWithURI(clientApp, spec);
+      } catch(e) {
+        // If we couldn't use the shell service, fallback to using a
+        // nsIProcess instance
+        var p =
+            Cc["@mozilla.org/process/util;1"].
+            createInstance(Ci.nsIProcess);
+        p.init(clientApp);
+        p.run(false, [spec], 1);
+      }
       break;
 
     default: