Index: mythtv/libs/libmythtv/guidegrid.cpp
===================================================================
--- mythtv/libs/libmythtv/guidegrid.cpp	(revision 15397)
+++ mythtv/libs/libmythtv/guidegrid.cpp	(working copy)
@@ -423,7 +423,7 @@
                 jumpToChannelDeleteLastDigit();
             else if (action == "NEXTFAV" || action == "4")
                 toggleGuideListing();
-            else if (action == "6")
+            else if (action == "FINDER" || action == "6")
                 showProgFinder();
             else if (action == "MENU")
                 enter();                    
Index: mythtv/libs/libmythtv/tv_play.cpp
===================================================================
--- mythtv/libs/libmythtv/tv_play.cpp	(revision 15397)
+++ mythtv/libs/libmythtv/tv_play.cpp	(working copy)
@@ -272,6 +272,8 @@
             "favorite", "?");
     REG_KEY("TV Frontend", "TOGGLEEPGORDER", "Reverse the channel order "
             "in the program guide", "0");
+    REG_KEY("TV Frontend", "FINDER", "Show the Program Finder", "#");
+    REG_KEY("TV Frontend", "GUIDE", "Show the Program Guide", "S");
 
     REG_KEY("TV Frontend", "NEXTFAV", "Toggle showing all channels or just "
             "favorites in the program guide.", "/");
Index: mythtv/libs/libmythtv/progfind.cpp
===================================================================
--- mythtv/libs/libmythtv/progfind.cpp	(revision 15397)
+++ mythtv/libs/libmythtv/progfind.cpp	(working copy)
@@ -208,7 +208,7 @@
             escape();
         else if (action == "TOGGLERECORD")
             quickRecord();
-        else if (action == "4")
+        else if (action == "GUIDE" || action == "4")
             showGuide();
         else
             handled = false;
Index: mythtv/libs/libmythui/mythmainwindow.cpp
===================================================================
--- mythtv/libs/libmythui/mythmainwindow.cpp	(revision 15397)
+++ mythtv/libs/libmythui/mythmainwindow.cpp	(working copy)
@@ -760,6 +760,66 @@
     if (allowJumps && 
         d->jumpMap.count(keynum) > 0 && d->exitmenucallback == NULL)
     {
+        JumpData *jd = d->jumpMap[keynum];
+        QString destination = jd->destination;
+
+        QWidget *current = currentWidget();
+        if (current)
+        {
+            QString origin = current->name();
+
+            cerr << "*** origin: " << origin << " destination: " << destination << endl;
+
+            if (origin == "video playback window")
+            {
+                // Demote jump point - use local binding
+                if (destination == "Program Finder")
+                {
+                    actions = QString("FINDER");
+                    return true;
+                }
+
+                // Demote jump point - use local binding
+                if (destination == "Program Guide")
+                {
+                    actions = QString("GUIDE");
+                    return true;
+                }
+            }
+
+            if (origin == "guidegrid")
+            {
+                // Squash jumpoint - already there
+                if (destination == "Program Guide")
+                {
+                    return false;
+                }
+
+                // Demote jump point - use toggle
+                if (destination == "Program Finder")
+                {
+                    actions = QString("FINDER");
+                    return true;
+                }
+            }
+
+            if (origin == "program finder")
+            {
+                // Squash jumpoint - already there
+                if (destination == "Program Finder")
+                {
+                    return false;
+                }
+
+                // Demote jump point - use toggle
+                if (destination == "Program Guide")
+                {
+                    actions = QString("GUIDE");
+                    return true;
+                }
+            }
+        }
+
         d->exitingtomain = true;
         d->exitmenucallback = d->jumpMap[keynum]->callback;
         QApplication::postEvent(this, new ExitToMainMenuEvent());
