Index: mythmusic/mythmusic/playbackbox.cpp
===================================================================
--- mythmusic/mythmusic/playbackbox.cpp	(revision 14675)
+++ mythmusic/mythmusic/playbackbox.cpp	(working copy)
@@ -464,7 +464,7 @@
     else if (keyboard_accelerators)
     {
         for (unsigned int i = 0; i < actions.size() && !handled; i++)
-        {
+        {   
             QString action = actions[i];
             handled = true;
 
@@ -627,7 +627,11 @@
         playlist_popup->addButton(tr("Tracks from current Genre"), this,
                                   SLOT(byGenre()));
         playlist_popup->addButton(tr("Tracks from current Year"), this,
-                                  SLOT(byYear()));
+                                  SLOT(byYear()));                                  
+        playlist_popup->addButton(tr("Add playing to active play queue"), this,
+                                  SLOT(addPlayingtoActive()));
+        playlist_popup->addButton(tr("Add selected to active play queue"), this,
+                                  SLOT(addSelectedtoActive()));
     }
     
     playlist_popup->ShowPopup(this, SLOT(closePlaylistPopup()));
@@ -750,6 +754,40 @@
     updatePlaylistFromQuickPlaylist(whereClause);
 }
 
+void PlaybackBoxMusic::addPlayingtoActive()
+// adds the currently playing track to the active play queue
+{
+    if (!playlist_popup || !curMeta)
+        return;
+
+    QString value = formattedFieldValue(curMeta->ID());
+    QString whereClause = "WHERE song_id = " + value;
+    closePlaylistPopup();
+    updatePlaylistFromQuickPlaylist(whereClause);
+}
+
+void PlaybackBoxMusic::addSelectedtoActive()
+// adds the currently selected track to the active play queue
+// stores the currently selected track and reselects it afterwards
+{
+    if (!playlist_popup || !curMeta)
+        return;
+
+    // store path to current selection
+    QStringList branches_to_current_node;
+    branches_to_current_node = music_tree_list->getRouteToCurrent();
+               
+    GenericTree *node = music_tree_list->getCurrentNode();
+    Metadata *selectedMeta = all_music->getMetadata( node->getInt() );
+
+    QString value = formattedFieldValue(selectedMeta->ID());
+    QString whereClause = "WHERE song_id = " + value;
+    closePlaylistPopup();
+    updatePlaylistFromQuickPlaylist(whereClause);
+    
+    music_tree_list->tryToSetCurrent(branches_to_current_node);
+}
+
 void PlaybackBoxMusic::updatePlaylistFromQuickPlaylist(QString whereClause)
 {
     doUpdatePlaylist(whereClause);
@@ -1817,6 +1855,7 @@
     playlist_tree->setAttribute(1, 0);
     playlist_tree->setAttribute(2, 0);
     playlist_tree->setAttribute(3, 0);
+    playlist_tree->setAttribute(4, 0);
 
     // We ask the playlist object to write out the whole tree (all playlists 
     // and all music). It will set attributes for nodes in the tree, such as 
Index: mythmusic/mythmusic/playbackbox.h
===================================================================
--- mythmusic/mythmusic/playbackbox.h	(revision 14675)
+++ mythmusic/mythmusic/playbackbox.h	(working copy)
@@ -89,6 +89,8 @@
     void byAlbum();
     void byGenre();
     void byYear();
+    void addPlayingtoActive();
+    void addSelectedtoActive();
     void fromCD();
     void showSmartPlaylistDialog();
     void showSearchDialog();
