Index: mythvideo/videotree.cpp
===================================================================
--- mythvideo/videotree.cpp	(revision 6847)
+++ mythvideo/videotree.cpp	(working copy)
@@ -79,7 +79,12 @@
         handled = true;
 
         if (action == "SELECT")
-            video_tree_list->select();
+        {
+            if (curitem)
+                video_tree_list->select();
+            else
+                video_tree_list->pushDown();
+	}
         else if (action == "UP")
             video_tree_list->moveUp();
         else if (action == "DOWN")
@@ -96,7 +101,18 @@
             doMenu(true);            
         else if (action == "MENU")
             doMenu(false);
+        else if (action == "ESCAPE")
+	{
+	    unsigned int distanceFromRoot=0;
+            for (GenericTree* it = video_tree_list->getCurrentNode() ; it ; distanceFromRoot++)
+               it = it->getParent();
 
+            if (distanceFromRoot - video_tree_list->getActiveBin() >= 2)
+                video_tree_list->popUp();
+            else
+                handled = false;
+	}
+
         else if (action == "1" || action == "2" || action == "3" ||
                  action == "4")
         {
@@ -106,7 +122,7 @@
             handled = false;
     }
 
-        if (!handled)
+    if (!handled)
     {
     
     gContext->GetMainWindow()->TranslateKeyPress("TV Frontend", e, actions);
@@ -316,6 +332,8 @@
         //  (no video file here, just a directory)
         //
         
+        curitem = NULL;
+
         video_title->SetText("");
         video_file->SetText("");
         video_player->SetText(""); 
