diff --git a/campcaster/src/products/gLiveSupport/src/LiveModeWindow.cxx b/campcaster/src/products/gLiveSupport/src/LiveModeWindow.cxx
index 909819b4b..e2df3e1a0 100644
--- a/campcaster/src/products/gLiveSupport/src/LiveModeWindow.cxx
+++ b/campcaster/src/products/gLiveSupport/src/LiveModeWindow.cxx
@@ -101,7 +101,6 @@ LiveModeWindow :: LiveModeWindow (Ptr<GLiveSupport>::Ref    gLiveSupport,
     // Add the TreeView's view columns:
     try {
         treeView->appendLineNumberColumn("", 2 /* offset */, 50);
-//        treeView->appendColumn("", WidgetConstants::hugePlayButton, 82);
         treeView->appendColumn("", modelColumns.infoColumn, 200);
     } catch (std::invalid_argument &e) {
         std::cerr << e.what() << std::endl;
@@ -125,15 +124,24 @@ LiveModeWindow :: LiveModeWindow (Ptr<GLiveSupport>::Ref    gLiveSupport,
     scrolledWindow.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
 
     // Create the play etc buttons:
-    Gtk::HBox *         buttonBox = Gtk::manage(new Gtk::HBox);
+    Gtk::HBox *         topButtonBox = Gtk::manage(new Gtk::HBox);
+    Gtk::HButtonBox *   bottomButtonBox = Gtk::manage(new Gtk::HButtonBox);
+    
     ImageButton *       outputPlayButton = Gtk::manage(wf->createButton(
                                         WidgetConstants::hugePlayButton ));
+    Button *            clearListButton;
+    Button *            removeButton;
+    
     Gtk::VBox *         cueAudioBox = Gtk::manage(new Gtk::VBox);
     Gtk::HBox *         cueAudioLabelBox = Gtk::manage(new Gtk::HBox);
     Gtk::Label *        cueAudioLabel;
     try {
         cueAudioLabel = Gtk::manage(new Gtk::Label(
-                                    *getResourceUstring("cuePlayerLabel") ));
+                                *getResourceUstring("cuePlayerLabel") ));
+        clearListButton = Gtk::manage(wf->createButton(
+                                *getResourceUstring("clearListButtonLabel")));
+        removeButton = Gtk::manage(wf->createButton(
+                                *getResourceUstring("removeButtonLabel")));
     } catch (std::invalid_argument &e) {
         std::cerr << e.what() << std::endl;
         std::exit(1);
@@ -141,21 +149,32 @@ LiveModeWindow :: LiveModeWindow (Ptr<GLiveSupport>::Ref    gLiveSupport,
     Gtk::HBox *         cueAudioButtonsBox = Gtk::manage(new Gtk::HBox);
     cueAudioButtons = Gtk::manage(new CuePlayer(
                                     gLiveSupport, treeView, modelColumns ));
-    buttonBox->pack_start(*outputPlayButton, Gtk::PACK_EXPAND_PADDING, 10);
-    buttonBox->pack_start(*cueAudioBox,      Gtk::PACK_EXPAND_PADDING, 10);
+    
+    topButtonBox->pack_start(*outputPlayButton,  Gtk::PACK_EXPAND_PADDING, 10);
+    topButtonBox->pack_start(*cueAudioBox,       Gtk::PACK_EXPAND_PADDING, 10);
     cueAudioBox->pack_start(*cueAudioLabelBox,   Gtk::PACK_SHRINK, 6);
     cueAudioLabelBox->pack_start(*cueAudioLabel, Gtk::PACK_EXPAND_PADDING, 1);
     cueAudioBox->pack_start(*cueAudioButtonsBox, Gtk::PACK_SHRINK, 0);
     cueAudioButtonsBox->pack_start(*cueAudioButtons, 
                                                  Gtk::PACK_EXPAND_PADDING, 1);
-
-    vBox.pack_start(*buttonBox,     Gtk::PACK_SHRINK, 5);
-    vBox.pack_start(scrolledWindow, Gtk::PACK_EXPAND_WIDGET, 5);
+    
+    bottomButtonBox->set_layout(Gtk::BUTTONBOX_END);
+    bottomButtonBox->set_spacing(5);
+    bottomButtonBox->pack_start(*clearListButton);
+    bottomButtonBox->pack_start(*removeButton);
+    
+    vBox.pack_start(*topButtonBox,      Gtk::PACK_SHRINK, 5);
+    vBox.pack_start(scrolledWindow,     Gtk::PACK_EXPAND_WIDGET, 5);
+    vBox.pack_start(*bottomButtonBox,   Gtk::PACK_SHRINK, 5);
     add(vBox);
 
-    // connect the signal handler for the output play button
+    // connect the signal handlers for the buttons
     outputPlayButton->signal_clicked().connect(sigc::mem_fun(*this,
-                                            &LiveModeWindow::onOutputPlay ));
+                                &LiveModeWindow::onOutputPlay ));
+    clearListButton->signal_clicked().connect(sigc::mem_fun(*this,
+                                &LiveModeWindow::onClearListButtonClicked));
+    removeButton->signal_clicked().connect(sigc::mem_fun(*this,
+                                &LiveModeWindow::onRemoveItemButtonClicked));
 
     // create the right-click context menus
     audioClipContextMenu = constructAudioClipContextMenu();
@@ -610,6 +629,26 @@ LiveModeWindow :: constructPlaylistContextMenu(void)            throw ()
 }    
 
 
+/*------------------------------------------------------------------------------
+ *  Event handler for the clear list button getting clicked.
+ *----------------------------------------------------------------------------*/
+void
+LiveModeWindow :: onClearListButtonClicked (void)                   throw ()
+{
+    treeModel->clear();
+}
+
+
+/*------------------------------------------------------------------------------
+ *  Event handler for the Remove menu button getting clicked.
+ *----------------------------------------------------------------------------*/
+void
+LiveModeWindow :: onRemoveItemButtonClicked(void)                   throw ()
+{
+    treeView->onRemoveMenuOption();
+}
+
+
 /*------------------------------------------------------------------------------
  *  Event handler called when the the window gets hidden.
  *----------------------------------------------------------------------------*/
diff --git a/campcaster/src/products/gLiveSupport/src/LiveModeWindow.h b/campcaster/src/products/gLiveSupport/src/LiveModeWindow.h
index f7e3c6992..984a6e4ac 100644
--- a/campcaster/src/products/gLiveSupport/src/LiveModeWindow.h
+++ b/campcaster/src/products/gLiveSupport/src/LiveModeWindow.h
@@ -267,7 +267,19 @@ class LiveModeWindow : public GuiWindow
          */
         virtual void
         onUploadToHub(void)                                     throw ();
-        
+
+        /**
+         *  Signal handler for the clear list button clicked.
+         */
+        virtual void
+        onClearListButtonClicked(void)                          throw ();
+
+        /**
+         *  Signal handler for the remove item button clicked.
+         */
+        virtual void
+        onRemoveItemButtonClicked(void)                         throw ();
+
         /**
          *  Event handler called when the the window gets hidden.
          *
diff --git a/campcaster/src/products/gLiveSupport/var/root.txt b/campcaster/src/products/gLiveSupport/var/root.txt
index a995b0e7d..c811efec8 100644
--- a/campcaster/src/products/gLiveSupport/var/root.txt
+++ b/campcaster/src/products/gLiveSupport/var/root.txt
@@ -261,6 +261,9 @@ root:table
 
         cuePlayerLabel:string       { "Preview" }
 
+        clearListButtonLabel:string { "Clear list" }
+        removeButtonLabel:string    { "Remove item(s)" }
+
         cannotEditPlaylistMsg:string
                                     { "Could not open playlist for editing." }
     }