--- mythbrowser/mythbrowser/main.cpp.orig	2010-04-29 15:22:01.300794990 +0200
+++ mythbrowser/mythbrowser/main.cpp	2010-04-29 15:24:02.023693275 +0200
@@ -42,6 +42,17 @@
     return 0;
 }
 
+void runBookmarkManager()
+{
+    mythplugin_run();
+}
+
+void runHomepage()
+{
+    QString homepage = gContext->GetSetting("WebBrowserHomepage");
+    handleMedia( homepage, "", "", "", "", 0, 0, 0, "");
+}
+
 void setupKeys(void)
 {
     REG_KEY("Browser", "NEXTTAB", QT_TRANSLATE_NOOP("MythControls",
@@ -49,6 +60,11 @@
     REG_KEY("Browser", "PREVTAB", QT_TRANSLATE_NOOP("MythControls",
         "Move to previous browser tab"), "");
 
+    REG_JUMP("Bookmarks", QT_TRANSLATE_NOOP("MythControls",
+        "Show the bookmark manager"), "", runBookmarkManager);
+    REG_JUMP("Homepage", QT_TRANSLATE_NOOP("MythControls",
+        "Show the webbrowser homepage"), "", runHomepage);
+    
     REG_MEDIAPLAYER("WebBrowser", QT_TRANSLATE_NOOP("MythControls",
         "Internal Web Browser"), handleMedia);
 }
@@ -69,6 +85,9 @@
     if (gContext->GetSetting("WebBrowserZoomLevel").isEmpty())
         gContext->SaveSetting("WebBrowserZoomLevel", "1.4");
 
+    if (gContext->GetSetting("WebBrowserHomepage").isEmpty())
+        gContext->SaveSetting("WebBrowserHomepage", "http://www.mythtv.org");
+    
     gContext->ActivateSettingsCache(true);
 
     setupKeys();
--- ../mythplugins/mythbrowser/mythbrowser/browserdbutil.cpp	2010-04-08 13:11:13.956770213 +0200
+++ mythbrowser/mythbrowser/browserdbutil.cpp	2010-04-29 20:08:50.681697173 +0200
@@ -9,7 +9,7 @@
 #include "browserdbutil.h"
 #include "bookmarkmanager.h"
 
-const QString currentDatabaseVersion = "1002";
+const QString currentDatabaseVersion = "1003";
 
 static bool UpdateDBVersionNumber(const QString &newnumber)
 {
@@ -110,6 +110,17 @@
             return false;
     }
 
+    if (dbver == "1002")
+    {
+        const QString updates[] =
+        {
+            "INSERT INTO settings VALUES ('WebBrowserHomepage', 'www.mythtv.org', NULL);",
+            ""
+        };
+        if (!performActualUpdate(updates, "1003", dbver))
+            return false;
+    }
+
     return true;
 }
 
--- mythbrowser/mythbrowser/bookmarkmanager.h	2010-04-08 13:11:13.953769471 +0200
+++ mythbrowser/mythbrowser/bookmarkmanager.h	2010-04-29 20:12:32.672571469 +0200
@@ -50,6 +50,7 @@
 
   private:
     MythUITextEdit   *m_commandEdit;
+    MythUITextEdit   *m_homepageEdit;
     MythUITextEdit   *m_zoomEdit;
 
     MythUIText       *m_descriptionText;
--- mythbrowser/theme/default-wide/browser-ui.xml	2010-04-08 13:11:13.904522336 +0200
+++ mythbrowser/theme/default-wide/browser-ui.xml	2010-04-29 20:23:06.818946947 +0200
@@ -278,6 +278,18 @@
             <position>445,140</position>
         </textedit>
 
+        <textarea name="homepagelabel" from="basetextarea">
+            <area>130,200,300,30</area>
+            <align>right,vcenter</align>
+            <value>Browser Command:</value>
+        </textarea>
+
+        <textedit name="homepage" from="basetextedit">
+            <position>445,190</position>
+        </textedit>
+
+        <textarea name="zoomlabel" from="basetextarea">
+            <area>130,250,300,30</area>
         <textarea name="zoomlabel" from="basetextarea">
             <area>130,250,300,30</area>
             <align>right,vcenter</align>
--- mythbrowser/mythbrowser/bookmarkmanager.cpp	2010-04-08 13:11:13.949520029 +0200
+++ mythbrowser/mythbrowser/bookmarkmanager.cpp	2010-04-29 20:35:16.092686931 +0200
@@ -21,6 +21,7 @@
 BrowserConfig::BrowserConfig(MythScreenStack *parent, const char *name)
     : MythScreenType(parent, name),
       m_commandEdit(NULL),     m_zoomEdit(NULL),
+      m_homepageEdit(NULL),
       m_descriptionText(NULL), m_titleText(NULL),
       m_okButton(NULL),        m_cancelButton(NULL)
 {
@@ -42,6 +43,7 @@
           m_titleText->SetText(tr("MythBrowser Settings"));
 
     m_commandEdit = dynamic_cast<MythUITextEdit *> (GetChild("command"));
+    m_homepageEdit = dynamic_cast<MythUITextEdit *> (GetChild("homepage"));
     m_zoomEdit = dynamic_cast<MythUITextEdit *> (GetChild("zoom"));
 
     m_descriptionText = dynamic_cast<MythUIText *> (GetChild("description"));
@@ -58,12 +60,16 @@
     m_commandEdit->SetText(gContext->GetSetting("WebBrowserCommand",
                            "Internal"));
 
+    m_homepageEdit->SetText(gContext->GetSetting("WebBrowserHomepage",
+                           "http://www.mythtv.org"));
+
     m_zoomEdit->SetText(gContext->GetSetting("WebBrowserZoomLevel", "1.4"));
 
     connect(m_okButton, SIGNAL(Clicked()), this, SLOT(slotSave()));
     connect(m_cancelButton, SIGNAL(Clicked()), this, SLOT(Close()));
 
     connect(m_commandEdit,  SIGNAL(TakingFocus()), SLOT(slotFocusChanged()));
+    connect(m_homepageEdit,  SIGNAL(TakingFocus()), SLOT(slotFocusChanged()));
     connect(m_zoomEdit   ,  SIGNAL(TakingFocus()), SLOT(slotFocusChanged()));
     connect(m_okButton,     SIGNAL(TakingFocus()), SLOT(slotFocusChanged()));
     connect(m_cancelButton, SIGNAL(TakingFocus()), SLOT(slotFocusChanged()));
@@ -89,6 +95,8 @@
     gContext->SaveSetting("WebBrowserZoomLevel", QString("%1").arg(zoom));
     gContext->SaveSetting("WebBrowserCommand", m_commandEdit->GetText());
 
+    gContext->SaveSetting("WebBrowserHomepage", m_homepageEdit->GetText());
+
     Close();
 }
 
@@ -120,6 +128,9 @@
                  "for the Internal browser are from 0.3 to 5.0 with 1.0 being "
                  "normal size less than 1 is smaller and greater than 1 is "
                  "larger than normal size.");
+    else if (GetFocusWidget() == m_homepageEdit)
+        msg = tr("This is the default homepage that will be used if the webbrowser "
+                 "is called without an url or if the bookmark editor was not selected.");
     else if (GetFocusWidget() == m_cancelButton)
         msg = tr("Exit without saving settings");
     else if (GetFocusWidget() == m_okButton)
