--- mythgallery/mythgallery/iconview.cpp	2009-12-10 13:06:09.246650771 +0100
+++ mythgallery/mythgallery/iconview.cpp	2009-12-23 10:57:15.898745992 +0100
@@ -789,11 +789,17 @@
             switch (buttonnum)
             {
                 case 0:
-                    HandleClearMarked();
+                    HandleSelectOne();
                     break;
                 case 1:
+                    HandleClearOneMarked();
+                    break;
+                case 2:
                     HandleSelectAll();
                     break;
+                case 3:
+                    HandleClearMarked();
+                    break;
             }
         }
         else if (resultid == "filemenu")
@@ -893,8 +899,10 @@
 
     m_menuPopup->SetReturnEvent(this, "markingmenu");
 
-    m_menuPopup->AddButton(tr("Clear Marked"));
+    m_menuPopup->AddButton(tr("Select One"));
+    m_menuPopup->AddButton(tr("Clear One Marked"));
     m_menuPopup->AddButton(tr("Select All"));
+    m_menuPopup->AddButton(tr("Clear Marked"));
 }
 
 void IconView::HandleSubMenuFile(void)
@@ -1189,6 +1197,22 @@
     }
 }
 
+void IconView::HandleClearOneMarked(void)
+{
+    MythUIButtonListItem *item = m_imageList->GetItemCurrent();
+    if (!item)
+        return;
+    item->setChecked(MythUIButtonListItem::NotChecked);
+}
+
+void IconView::HandleSelectOne(void)
+{
+    MythUIButtonListItem *item = m_imageList->GetItemCurrent();
+    if (!item)
+        return;
+    item->setChecked(MythUIButtonListItem::FullChecked);
+}
+
 void IconView::HandleClearMarked(void)
 {
     m_itemMarked.clear();
--- mythgallery/mythgallery/iconview.h	2009-12-10 13:06:09.264654014 +0100
+++ mythgallery/mythgallery/iconview.h	2009-12-23 10:55:51.560787473 +0100
@@ -93,7 +93,9 @@
     void HandleDelete(void);
     void HandleDeleteMarked(void);
     void HandleClearMarked(void);
+    void HandleClearOneMarked(void);
     void HandleSelectAll(void);
+    void HandleSelectOne(void);
     void HandleMkDir(void);
     void HandleRename(void);
 
