Index: libs/libmythtv/tv_play.h
===================================================================
--- libs/libmythtv/tv_play.h	(revision 15240)
+++ libs/libmythtv/tv_play.h	(working copy)
@@ -208,12 +208,6 @@
     void TreeMenuSelected(OSDListTreeType *tree, OSDGenericTree *item);
 
   protected:
-    void doEditSchedule(int editType = kScheduleProgramGuide);
-    static void *EPGMenuHandler(void *param);
-    static void *FinderMenuHandler(void *param);
-    static void *ScheduleMenuHandler(void *param);
-    static void *RecordedShowMenuHandler(void *param);
-
     void RunTV(void);
     static void *EventThread(void *param);
 
Index: libs/libmythtv/tv_play.cpp
===================================================================
--- libs/libmythtv/tv_play.cpp	(revision 15240)
+++ libs/libmythtv/tv_play.cpp	(working copy)
@@ -2041,12 +2041,7 @@
         case QEvent::KeyPress:
         {
             QKeyEvent *k = new QKeyEvent(*(QKeyEvent *)e);
-  
-            // can't process these events in the Qt event loop. 
-            keyListLock.lock();
-            keyList.append(k);
-            keyListLock.unlock();
-
+            ProcessKeypress(k);
             return true;
         }
         case QEvent::Paint:
@@ -5104,12 +5099,12 @@
         nvp->DrawUnusedRects(sync);
 }
 
-void TV::doEditSchedule(int editType)
+void TV::EditSchedule(int editType)
 {
     if (!playbackinfo)
     {
         VERBOSE(VB_IMPORTANT,
-                LOC_ERR + "doEditSchedule(): no active playbackinfo.");
+                LOC_ERR + "EditSchedule(): no active playbackinfo.");
         return;
     }
 
@@ -5148,7 +5143,7 @@
                     allowsecondary = nvp->getVideoOutput()->AllowPreviewEPG();
 
                 // Start up EPG
-                changeChannel = RunProgramGuide(chanid, channum, true, this, allowsecondary);
+                changeChannel = RunProgramGuide(chanid, channum, false, this, allowsecondary);
                 break;
             }
             case kPlaybackBox:
@@ -5190,7 +5185,7 @@
         {
             default:
             case kScheduleProgramGuide:
-                RunProgramGuide(chanid, channum, true);
+                RunProgramGuide(chanid, channum, false);
                 break;
             case kScheduleProgramFinder:
                 RunProgramFind(true, false);
@@ -5258,68 +5253,6 @@
     menurunning = false;
 }
 
-void *TV::EPGMenuHandler(void *param)
-{
-    TV *obj = (TV *)param;
-    obj->doEditSchedule(kScheduleProgramGuide);
-
-    return NULL;
-}
-
-void *TV::FinderMenuHandler(void *param)
-{
-    TV *obj = (TV *)param;
-    obj->doEditSchedule(kScheduleProgramFinder);
-
-    return NULL;
-}
-
-void *TV::ScheduleMenuHandler(void *param)
-{
-    TV *obj = (TV *)param;
-    obj->doEditSchedule(kScheduledRecording);
-
-    return NULL;
-}
-
-void *TV::RecordedShowMenuHandler(void *param)
-{
-    TV *obj = (TV *)param;
-    obj->doEditSchedule(kPlaybackBox);
-
-    return NULL;
-}
-
-void TV::EditSchedule(int editType)
-{
-    if (menurunning == true)
-        return;
-    menurunning = true;
-    pthread_t tid;
-    pthread_attr_t attr;
-    pthread_attr_init(&attr);
-    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-
-    switch (editType)
-    {
-        default:
-        case kScheduleProgramGuide:
-                pthread_create(&tid, &attr, TV::EPGMenuHandler, this);
-                break;
-        case kScheduleProgramFinder:
-                pthread_create(&tid, &attr, TV::FinderMenuHandler, this);
-                break;
-        case kScheduledRecording:
-                pthread_create(&tid, &attr, TV::ScheduleMenuHandler, this);
-                break;
-        case kPlaybackBox:
-                pthread_create(&tid, &attr, TV::RecordedShowMenuHandler, this);
-                break;
-    }
-
-    pthread_attr_destroy(&attr);
-}
-
 void TV::ChangeVolume(bool up)
 {
     AudioOutput *aud = nvp->getAudioOutput();
