Index: programs/mythfrontend/playbackbox.h
===================================================================
--- programs/mythfrontend/playbackbox.h	(revision 9302)
+++ programs/mythfrontend/playbackbox.h	(working copy)
@@ -237,6 +237,7 @@
     void promptEndOfRecording(ProgramInfo *);
     void showDeletePopup(ProgramInfo *, deletePopupType);
     void showActionPopup(ProgramInfo *program);
+    void showFileNotFoundActionPopup(ProgramInfo *program);
     void initPopup(MythPopupBox *popup, ProgramInfo *program, 
                    QString message, QString message2);
     void cancelPopup();
Index: programs/mythfrontend/playbackbox.cpp
===================================================================
--- programs/mythfrontend/playbackbox.cpp	(revision 9302)
+++ programs/mythfrontend/playbackbox.cpp	(working copy)
@@ -1247,10 +1247,10 @@
         paintSkipUpdate = false;
         update(drawTotalBounds);
     }
+    else if (arrowAccel)
+        showActionsSelected();
     else if (curitem && curitem->availableStatus != asAvailable)
         showAvailablePopup(curitem);
-    else if (arrowAccel)
-        showActionsSelected();    
 }
 
 void PlaybackBox::cursorDown(bool page, bool newview)
@@ -1863,7 +1863,8 @@
     if (inTitle && haveGroupInfoSet)
         return;
 
-    if (curitem->availableStatus != asAvailable)
+    if ((curitem->availableStatus != asAvailable) &&
+        (curitem->availableStatus != asFileNotFound))
         showAvailablePopup(curitem);
     else
         showActions(curitem);
@@ -2049,7 +2050,22 @@
 
     delitem = new ProgramInfo(*toExp);
 
-    if (delitem->availableStatus != asAvailable)
+    if (fileExists(delitem) == false)
+    {
+        QString msg =
+            QString("PlaybackBox::showActions(): Error, %1 file not found")
+            .arg(delitem->pathname);
+        VERBOSE(VB_IMPORTANT, msg);
+
+        ProgramInfo *tmpItem = findMatchingProg(delitem);
+        if (tmpItem)
+        {
+            tmpItem->availableStatus = asFileNotFound;
+            showFileNotFoundActionPopup(delitem);
+        }
+
+    }
+    else if (delitem->availableStatus != asAvailable)
         showAvailablePopup(delitem);
     else
         showActionPopup(delitem);
@@ -2628,6 +2644,34 @@
     expectingPopup = true;
 }
 
+void PlaybackBox::showFileNotFoundActionPopup(ProgramInfo *program)
+{
+    if (!curitem || !program)
+        return;
+
+    popup = new MythPopupBox(gContext->GetMainWindow(), drawPopupSolid,
+                             drawPopupFgColor, drawPopupBgColor,
+                             drawPopupSelColor, "action popup");
+
+    QString msg = QObject::tr("Recording Unavailable") + "\n";
+    msg += QObject::tr("The file for this recording can "
+                       "not be found") + "\n";
+
+    initPopup(popup, program, "", msg);
+
+    QButton *detailsButton;
+    detailsButton = popup->addButton(tr("Show Program Details"), this,
+                                     SLOT(showProgramDetails()));
+
+    popup->addButton(tr("Delete"), this, SLOT(askDelete()));
+
+    popup->ShowPopup(this, SLOT(doCancel()));
+
+    detailsButton->setFocus();
+
+    expectingPopup = true;
+}
+
 void PlaybackBox::initPopup(MythPopupBox *popup, ProgramInfo *program,
                             QString message, QString message2)
 {
