Index: Configuration/Sections/Music.cs
===================================================================
--- Configuration/Sections/Music.cs	(revision 27949)
+++ Configuration/Sections/Music.cs	(working copy)
@@ -159,10 +159,7 @@
     private MPButton playlistButton;
     private MPTextBox playlistFolderTextBox;
     private MPLabel label1;
-    private TabPage MiscTabPg;
-    private GroupBox groupBox2;
-    private ComboBox PlayNowJumpToCmbBox;
-    private Label label8;
+    private TabPage PlaySettingsTabPg;
     private CheckBox GaplessPlaybackChkBox;
     private HScrollBar hScrollBarCrossFade;
     private HScrollBar hScrollBarBuffering;
@@ -184,12 +181,15 @@
     private MPRadioButton radioButtonVUAnalog;
     private MPRadioButton radioButtonVUNone;
     private MPRadioButton radioButtonVULed;
+    private CheckBox chkAddAllTracks;
+    private ComboBox cmbSelectOption;
+    private GroupBox grpSelectOptions;
+    private GroupBox groupBox3;
+    private ComboBox PlayNowJumpToCmbBox;
+    private Label label8;
+    private CheckBox checkBox2;
+    private MPCheckBox PlaylistCurrentCheckBox;
     private MPCheckBox checkBoxSwitchArtistOnLastFMSubmit;
-    private GroupBox groupBoxPlayBehaviour;
-    private RadioButton radioPlaylist;
-    private RadioButton radioPlay;
-    private Label lblPlayMode;
-    private CheckBox checkBoxAddAll;
 
     #endregion
 
@@ -360,20 +360,14 @@
 
         SavePlaylistOnExitChkBox.Checked = xmlreader.GetValueAsBool("musicfiles", "savePlaylistOnExit", true);
         ResumePlaylistChkBox.Checked = xmlreader.GetValueAsBool("musicfiles", "resumePlaylistOnMusicEnter", true);
+        PlaylistCurrentCheckBox.Checked = xmlreader.GetValueAsBool("musicfiles", "playlistIsCurrent", true);
 
-        String strPlayMode = xmlreader.GetValueAsString("musicfiles", "playmode", "play");
-        if (strPlayMode == "playlist")
-        {
-          radioPlaylist.Checked = true;
-        }
-        else
-        {
-          radioPlay.Checked = true;
-        }
-        checkBoxAddAll.Checked = xmlreader.GetValueAsBool("musicfiles", "addall", true);
+        String strSelectOption = xmlreader.GetValueAsString("musicfiles", "selectOption", "play");
+        cmbSelectOption.Text = strSelectOption == "play" ? "Play" : "Queue";
+        chkAddAllTracks.Checked = xmlreader.GetValueAsBool("musicfiles", "addall", true);
 
         // Misc Settings
-        string playNowJumpTo = xmlreader.GetValueAsString("musicmisc", "playnowjumpto", JumpToValue3);
+        string playNowJumpTo = xmlreader.GetValueAsString("musicmisc", "playnowjumpto", JumpToValue0);
 
         switch (playNowJumpTo)
         {
@@ -527,21 +521,12 @@
         xmlwriter.SetValueAsBool("musicfiles", "autoshuffle", autoShuffleCheckBox.Checked);
         xmlwriter.SetValueAsBool("musicfiles", "savePlaylistOnExit", SavePlaylistOnExitChkBox.Checked);
         xmlwriter.SetValueAsBool("musicfiles", "resumePlaylistOnMusicEnter", ResumePlaylistChkBox.Checked);
+        xmlwriter.SetValueAsBool("musicfiles", "playlistIsCurrent", PlaylistCurrentCheckBox.Checked);
 
         //Play behaviour
-        String strPlayMode;
-        if (radioPlay.Checked)
-        {
-          strPlayMode = "play";
-        }
-        else
-        {
-          strPlayMode = "playlist";
-        }
-        xmlwriter.SetValue("musicfiles", "playmode", strPlayMode);
-        xmlwriter.SetValueAsBool("musicfiles", "addall", checkBoxAddAll.Checked);
+        xmlwriter.SetValue("musicfiles", "selectOption", cmbSelectOption.Text.ToLower());
+        xmlwriter.SetValueAsBool("musicfiles", "addall", chkAddAllTracks.Checked);
 
-
         // Misc Settings
         string playNowJumpTo = string.Empty;
 
@@ -700,31 +685,13 @@
       this.soundDeviceComboBox = new MediaPortal.UserInterface.Controls.MPComboBox();
       this.label2 = new MediaPortal.UserInterface.Controls.MPLabel();
       this.audioPlayerComboBox = new MediaPortal.UserInterface.Controls.MPComboBox();
-      this.VisualizationsTabPg = new System.Windows.Forms.TabPage();
-      this.mpGroupBox3 = new MediaPortal.UserInterface.Controls.MPGroupBox();
-      this.groupBoxWinampVis = new MediaPortal.UserInterface.Controls.MPGroupBox();
-      this.btWinampConfig = new MediaPortal.UserInterface.Controls.MPButton();
-      this.EnableStatusOverlaysChkBox = new MediaPortal.UserInterface.Controls.MPCheckBox();
-      this.ShowTrackInfoChkBox = new MediaPortal.UserInterface.Controls.MPCheckBox();
-      this.label11 = new System.Windows.Forms.Label();
-      this.label10 = new System.Windows.Forms.Label();
-      this.VizPresetsCmbBox = new System.Windows.Forms.ComboBox();
-      this.VisualizationsCmbBox = new System.Windows.Forms.ComboBox();
-      this.label7 = new System.Windows.Forms.Label();
-      this.label5 = new System.Windows.Forms.Label();
-      this.VisualizationFpsNud = new System.Windows.Forms.NumericUpDown();
-      this.PlaylistTabPg = new System.Windows.Forms.TabPage();
-      this.groupBoxPlayBehaviour = new System.Windows.Forms.GroupBox();
-      this.radioPlaylist = new System.Windows.Forms.RadioButton();
-      this.radioPlay = new System.Windows.Forms.RadioButton();
-      this.groupBox1 = new MediaPortal.UserInterface.Controls.MPGroupBox();
-      this.autoShuffleCheckBox = new MediaPortal.UserInterface.Controls.MPCheckBox();
-      this.ResumePlaylistChkBox = new MediaPortal.UserInterface.Controls.MPCheckBox();
-      this.SavePlaylistOnExitChkBox = new MediaPortal.UserInterface.Controls.MPCheckBox();
-      this.repeatPlaylistCheckBox = new MediaPortal.UserInterface.Controls.MPCheckBox();
-      this.playlistButton = new MediaPortal.UserInterface.Controls.MPButton();
-      this.playlistFolderTextBox = new MediaPortal.UserInterface.Controls.MPTextBox();
-      this.label1 = new MediaPortal.UserInterface.Controls.MPLabel();
+      this.PlaySettingsTabPg = new System.Windows.Forms.TabPage();
+      this.groupBox3 = new System.Windows.Forms.GroupBox();
+      this.PlayNowJumpToCmbBox = new System.Windows.Forms.ComboBox();
+      this.label8 = new System.Windows.Forms.Label();
+      this.grpSelectOptions = new System.Windows.Forms.GroupBox();
+      this.cmbSelectOption = new System.Windows.Forms.ComboBox();
+      this.chkAddAllTracks = new System.Windows.Forms.CheckBox();
       this.tabPageNowPlaying = new System.Windows.Forms.TabPage();
       this.groupBoxVUMeter = new MediaPortal.UserInterface.Controls.MPGroupBox();
       this.radioButtonVULed = new MediaPortal.UserInterface.Controls.MPRadioButton();
@@ -739,47 +706,64 @@
       this.ShowVizInNowPlayingChkBox = new MediaPortal.UserInterface.Controls.MPCheckBox();
       this.ShowLyricsCmbBox = new System.Windows.Forms.ComboBox();
       this.label9 = new System.Windows.Forms.Label();
-      this.MiscTabPg = new System.Windows.Forms.TabPage();
-      this.groupBox2 = new System.Windows.Forms.GroupBox();
-      this.PlayNowJumpToCmbBox = new System.Windows.Forms.ComboBox();
-      this.label8 = new System.Windows.Forms.Label();
+      this.PlaylistTabPg = new System.Windows.Forms.TabPage();
+      this.groupBox1 = new MediaPortal.UserInterface.Controls.MPGroupBox();
+      this.autoShuffleCheckBox = new MediaPortal.UserInterface.Controls.MPCheckBox();
+      this.ResumePlaylistChkBox = new MediaPortal.UserInterface.Controls.MPCheckBox();
+      this.SavePlaylistOnExitChkBox = new MediaPortal.UserInterface.Controls.MPCheckBox();
+      this.repeatPlaylistCheckBox = new MediaPortal.UserInterface.Controls.MPCheckBox();
+      this.playlistButton = new MediaPortal.UserInterface.Controls.MPButton();
+      this.playlistFolderTextBox = new MediaPortal.UserInterface.Controls.MPTextBox();
+      this.label1 = new MediaPortal.UserInterface.Controls.MPLabel();
+      this.VisualizationsTabPg = new System.Windows.Forms.TabPage();
+      this.mpGroupBox3 = new MediaPortal.UserInterface.Controls.MPGroupBox();
+      this.groupBoxWinampVis = new MediaPortal.UserInterface.Controls.MPGroupBox();
+      this.btWinampConfig = new MediaPortal.UserInterface.Controls.MPButton();
+      this.EnableStatusOverlaysChkBox = new MediaPortal.UserInterface.Controls.MPCheckBox();
+      this.ShowTrackInfoChkBox = new MediaPortal.UserInterface.Controls.MPCheckBox();
+      this.label11 = new System.Windows.Forms.Label();
+      this.label10 = new System.Windows.Forms.Label();
+      this.VizPresetsCmbBox = new System.Windows.Forms.ComboBox();
+      this.VisualizationsCmbBox = new System.Windows.Forms.ComboBox();
+      this.label7 = new System.Windows.Forms.Label();
+      this.label5 = new System.Windows.Forms.Label();
+      this.VisualizationFpsNud = new System.Windows.Forms.NumericUpDown();
       this.label4 = new MediaPortal.UserInterface.Controls.MPLabel();
-      this.checkBoxAddAll = new System.Windows.Forms.CheckBox();
-      this.lblPlayMode = new System.Windows.Forms.Label();
+      this.checkBox2 = new System.Windows.Forms.CheckBox();
+      this.PlaylistCurrentCheckBox = new MediaPortal.UserInterface.Controls.MPCheckBox();
       this.MusicSettingsTabCtl.SuspendLayout();
       this.PlayerTabPg.SuspendLayout();
       this.PlaybackSettingsGrpBox.SuspendLayout();
       ((System.ComponentModel.ISupportInitialize)(this.StreamOutputLevelNud)).BeginInit();
       this.mpGroupBox1.SuspendLayout();
-      this.VisualizationsTabPg.SuspendLayout();
-      this.mpGroupBox3.SuspendLayout();
-      this.groupBoxWinampVis.SuspendLayout();
-      ((System.ComponentModel.ISupportInitialize)(this.VisualizationFpsNud)).BeginInit();
-      this.PlaylistTabPg.SuspendLayout();
-      this.groupBoxPlayBehaviour.SuspendLayout();
-      this.groupBox1.SuspendLayout();
+      this.PlaySettingsTabPg.SuspendLayout();
+      this.groupBox3.SuspendLayout();
+      this.grpSelectOptions.SuspendLayout();
       this.tabPageNowPlaying.SuspendLayout();
       this.groupBoxVUMeter.SuspendLayout();
       this.groupBoxDynamicContent.SuspendLayout();
       this.groupBoxVizOptions.SuspendLayout();
-      this.MiscTabPg.SuspendLayout();
-      this.groupBox2.SuspendLayout();
+      this.PlaylistTabPg.SuspendLayout();
+      this.groupBox1.SuspendLayout();
+      this.VisualizationsTabPg.SuspendLayout();
+      this.mpGroupBox3.SuspendLayout();
+      this.groupBoxWinampVis.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.VisualizationFpsNud)).BeginInit();
       this.SuspendLayout();
       // 
       // MusicSettingsTabCtl
       // 
       this.MusicSettingsTabCtl.Controls.Add(this.PlayerTabPg);
-      this.MusicSettingsTabCtl.Controls.Add(this.VisualizationsTabPg);
-      this.MusicSettingsTabCtl.Controls.Add(this.PlaylistTabPg);
+      this.MusicSettingsTabCtl.Controls.Add(this.PlaySettingsTabPg);
       this.MusicSettingsTabCtl.Controls.Add(this.tabPageNowPlaying);
-      this.MusicSettingsTabCtl.Controls.Add(this.MiscTabPg);
+      this.MusicSettingsTabCtl.Controls.Add(this.PlaylistTabPg);
+      this.MusicSettingsTabCtl.Controls.Add(this.VisualizationsTabPg);
       this.MusicSettingsTabCtl.Location = new System.Drawing.Point(0, 8);
       this.MusicSettingsTabCtl.Name = "MusicSettingsTabCtl";
       this.MusicSettingsTabCtl.SelectedIndex = 0;
       this.MusicSettingsTabCtl.Size = new System.Drawing.Size(472, 400);
       this.MusicSettingsTabCtl.TabIndex = 1;
-      this.MusicSettingsTabCtl.SelectedIndexChanged +=
-        new System.EventHandler(this.MusicSettingsTabCtl_SelectedIndexChanged);
+      this.MusicSettingsTabCtl.SelectedIndexChanged += new System.EventHandler(this.MusicSettingsTabCtl_SelectedIndexChanged);
       // 
       // PlayerTabPg
       // 
@@ -828,10 +812,8 @@
       // 
       // hScrollBarBuffering
       // 
-      this.hScrollBarBuffering.Anchor =
-        ((System.Windows.Forms.AnchorStyles)
-         (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-           | System.Windows.Forms.AnchorStyles.Right)));
+      this.hScrollBarBuffering.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
       this.hScrollBarBuffering.LargeChange = 500;
       this.hScrollBarBuffering.Location = new System.Drawing.Point(91, 161);
       this.hScrollBarBuffering.Maximum = 8499;
@@ -845,10 +827,8 @@
       // 
       // hScrollBarCrossFade
       // 
-      this.hScrollBarCrossFade.Anchor =
-        ((System.Windows.Forms.AnchorStyles)
-         (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-           | System.Windows.Forms.AnchorStyles.Right)));
+      this.hScrollBarCrossFade.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
       this.hScrollBarCrossFade.LargeChange = 500;
       this.hScrollBarCrossFade.Location = new System.Drawing.Point(91, 137);
       this.hScrollBarCrossFade.Maximum = 16499;
@@ -895,13 +875,11 @@
       this.StreamOutputLevelNud.Name = "StreamOutputLevelNud";
       this.StreamOutputLevelNud.Size = new System.Drawing.Size(52, 20);
       this.StreamOutputLevelNud.TabIndex = 1;
-      this.StreamOutputLevelNud.Value = new decimal(new int[]
-                                                      {
-                                                        85,
-                                                        0,
-                                                        0,
-                                                        0
-                                                      });
+      this.StreamOutputLevelNud.Value = new decimal(new int[] {
+            85,
+            0,
+            0,
+            0});
       // 
       // FadeOnStartStopChkbox
       // 
@@ -943,10 +921,8 @@
       // 
       // mpGroupBox1
       // 
-      this.mpGroupBox1.Anchor =
-        ((System.Windows.Forms.AnchorStyles)
-         (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-           | System.Windows.Forms.AnchorStyles.Right)));
+      this.mpGroupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
       this.mpGroupBox1.Controls.Add(this.mpLabel2);
       this.mpGroupBox1.Controls.Add(this.soundDeviceComboBox);
       this.mpGroupBox1.Controls.Add(this.label2);
@@ -970,10 +946,8 @@
       // 
       // soundDeviceComboBox
       // 
-      this.soundDeviceComboBox.Anchor =
-        ((System.Windows.Forms.AnchorStyles)
-         (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-           | System.Windows.Forms.AnchorStyles.Right)));
+      this.soundDeviceComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
       this.soundDeviceComboBox.BorderColor = System.Drawing.Color.Empty;
       this.soundDeviceComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
       this.soundDeviceComboBox.Location = new System.Drawing.Point(91, 51);
@@ -992,330 +966,92 @@
       // 
       // audioPlayerComboBox
       // 
-      this.audioPlayerComboBox.Anchor =
-        ((System.Windows.Forms.AnchorStyles)
-         (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-           | System.Windows.Forms.AnchorStyles.Right)));
+      this.audioPlayerComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
       this.audioPlayerComboBox.BorderColor = System.Drawing.Color.Empty;
       this.audioPlayerComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-      this.audioPlayerComboBox.Items.AddRange(new object[]
-                                                {
-                                                  "Internal dshow player",
-                                                  "BASS engine"
-                                                });
+      this.audioPlayerComboBox.Items.AddRange(new object[] {
+            "Internal dshow player",
+            "BASS engine"});
       this.audioPlayerComboBox.Location = new System.Drawing.Point(91, 24);
       this.audioPlayerComboBox.Name = "audioPlayerComboBox";
       this.audioPlayerComboBox.Size = new System.Drawing.Size(289, 21);
       this.audioPlayerComboBox.TabIndex = 1;
-      this.audioPlayerComboBox.SelectedIndexChanged +=
-        new System.EventHandler(this.audioPlayerComboBox_SelectedIndexChanged);
+      this.audioPlayerComboBox.SelectedIndexChanged += new System.EventHandler(this.audioPlayerComboBox_SelectedIndexChanged);
       // 
-      // VisualizationsTabPg
+      // PlaySettingsTabPg
       // 
-      this.VisualizationsTabPg.Controls.Add(this.mpGroupBox3);
-      this.VisualizationsTabPg.Location = new System.Drawing.Point(4, 22);
-      this.VisualizationsTabPg.Name = "VisualizationsTabPg";
-      this.VisualizationsTabPg.Size = new System.Drawing.Size(464, 374);
-      this.VisualizationsTabPg.TabIndex = 4;
-      this.VisualizationsTabPg.Text = "Visualizations";
-      this.VisualizationsTabPg.UseVisualStyleBackColor = true;
+      this.PlaySettingsTabPg.Controls.Add(this.groupBox3);
+      this.PlaySettingsTabPg.Controls.Add(this.grpSelectOptions);
+      this.PlaySettingsTabPg.Location = new System.Drawing.Point(4, 22);
+      this.PlaySettingsTabPg.Name = "PlaySettingsTabPg";
+      this.PlaySettingsTabPg.Size = new System.Drawing.Size(464, 374);
+      this.PlaySettingsTabPg.TabIndex = 3;
+      this.PlaySettingsTabPg.Text = "Play Settings";
+      this.PlaySettingsTabPg.UseVisualStyleBackColor = true;
       // 
-      // mpGroupBox3
-      // 
-      this.mpGroupBox3.Controls.Add(this.groupBoxWinampVis);
-      this.mpGroupBox3.Controls.Add(this.EnableStatusOverlaysChkBox);
-      this.mpGroupBox3.Controls.Add(this.ShowTrackInfoChkBox);
-      this.mpGroupBox3.Controls.Add(this.label11);
-      this.mpGroupBox3.Controls.Add(this.label10);
-      this.mpGroupBox3.Controls.Add(this.VizPresetsCmbBox);
-      this.mpGroupBox3.Controls.Add(this.VisualizationsCmbBox);
-      this.mpGroupBox3.Controls.Add(this.label7);
-      this.mpGroupBox3.Controls.Add(this.label5);
-      this.mpGroupBox3.Controls.Add(this.VisualizationFpsNud);
-      this.mpGroupBox3.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
-      this.mpGroupBox3.Location = new System.Drawing.Point(16, 16);
-      this.mpGroupBox3.Name = "mpGroupBox3";
-      this.mpGroupBox3.Size = new System.Drawing.Size(432, 343);
-      this.mpGroupBox3.TabIndex = 0;
-      this.mpGroupBox3.TabStop = false;
-      this.mpGroupBox3.Text = "Visualization settings";
-      // 
-      // groupBoxWinampVis
-      // 
-      this.groupBoxWinampVis.Controls.Add(this.btWinampConfig);
-      this.groupBoxWinampVis.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
-      this.groupBoxWinampVis.Location = new System.Drawing.Point(91, 86);
-      this.groupBoxWinampVis.Name = "groupBoxWinampVis";
-      this.groupBoxWinampVis.Size = new System.Drawing.Size(289, 56);
-      this.groupBoxWinampVis.TabIndex = 11;
-      this.groupBoxWinampVis.TabStop = false;
-      this.groupBoxWinampVis.Text = "Winamp Vis.";
-      // 
-      // btWinampConfig
-      // 
-      this.btWinampConfig.Location = new System.Drawing.Point(6, 24);
-      this.btWinampConfig.Name = "btWinampConfig";
-      this.btWinampConfig.Size = new System.Drawing.Size(75, 23);
-      this.btWinampConfig.TabIndex = 4;
-      this.btWinampConfig.Text = "Config";
-      this.btWinampConfig.UseVisualStyleBackColor = true;
-      this.btWinampConfig.Click += new System.EventHandler(this.btWinampConfig_Click);
-      // 
-      // EnableStatusOverlaysChkBox
-      // 
-      this.EnableStatusOverlaysChkBox.AutoSize = true;
-      this.EnableStatusOverlaysChkBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
-      this.EnableStatusOverlaysChkBox.Location = new System.Drawing.Point(91, 246);
-      this.EnableStatusOverlaysChkBox.Name = "EnableStatusOverlaysChkBox";
-      this.EnableStatusOverlaysChkBox.Size = new System.Drawing.Size(299, 17);
-      this.EnableStatusOverlaysChkBox.TabIndex = 9;
-      this.EnableStatusOverlaysChkBox.Text = "Enable status display in fullscreen mode (fast systems only)";
-      this.EnableStatusOverlaysChkBox.UseVisualStyleBackColor = true;
-      this.EnableStatusOverlaysChkBox.CheckedChanged +=
-        new System.EventHandler(this.EnableStatusOverlaysChkBox_CheckedChanged);
-      // 
-      // ShowTrackInfoChkBox
-      // 
-      this.ShowTrackInfoChkBox.AutoSize = true;
-      this.ShowTrackInfoChkBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
-      this.ShowTrackInfoChkBox.Location = new System.Drawing.Point(110, 267);
-      this.ShowTrackInfoChkBox.Name = "ShowTrackInfoChkBox";
-      this.ShowTrackInfoChkBox.Size = new System.Drawing.Size(178, 17);
-      this.ShowTrackInfoChkBox.TabIndex = 10;
-      this.ShowTrackInfoChkBox.Text = "Show song info on track change";
-      this.ShowTrackInfoChkBox.UseVisualStyleBackColor = true;
-      // 
-      // label11
-      // 
-      this.label11.AutoSize = true;
-      this.label11.Location = new System.Drawing.Point(45, 54);
-      this.label11.Name = "label11";
-      this.label11.Size = new System.Drawing.Size(40, 13);
-      this.label11.TabIndex = 2;
-      this.label11.Text = "Preset:";
-      // 
-      // label10
-      // 
-      this.label10.AutoSize = true;
-      this.label10.Location = new System.Drawing.Point(17, 27);
-      this.label10.Name = "label10";
-      this.label10.Size = new System.Drawing.Size(68, 13);
-      this.label10.TabIndex = 0;
-      this.label10.Text = "Visualization:";
-      // 
-      // VizPresetsCmbBox
-      // 
-      this.VizPresetsCmbBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-      this.VizPresetsCmbBox.FormattingEnabled = true;
-      this.VizPresetsCmbBox.Location = new System.Drawing.Point(91, 51);
-      this.VizPresetsCmbBox.Name = "VizPresetsCmbBox";
-      this.VizPresetsCmbBox.Size = new System.Drawing.Size(289, 21);
-      this.VizPresetsCmbBox.TabIndex = 3;
-      this.VizPresetsCmbBox.SelectedIndexChanged += new System.EventHandler(this.VizPresetsCmbBox_SelectedIndexChanged);
-      // 
-      // VisualizationsCmbBox
-      // 
-      this.VisualizationsCmbBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-      this.VisualizationsCmbBox.FormattingEnabled = true;
-      this.VisualizationsCmbBox.Location = new System.Drawing.Point(91, 24);
-      this.VisualizationsCmbBox.Name = "VisualizationsCmbBox";
-      this.VisualizationsCmbBox.Size = new System.Drawing.Size(289, 21);
-      this.VisualizationsCmbBox.TabIndex = 1;
-      this.VisualizationsCmbBox.SelectedIndexChanged +=
-        new System.EventHandler(this.VisualizationsCmbBox_SelectedIndexChanged);
-      // 
-      // label7
-      // 
-      this.label7.AutoSize = true;
-      this.label7.Location = new System.Drawing.Point(149, 220);
-      this.label7.Name = "label7";
-      this.label7.Size = new System.Drawing.Size(166, 13);
-      this.label7.TabIndex = 8;
-      this.label7.Text = "(use lower value for slow systems)";
-      // 
-      // label5
-      // 
-      this.label5.AutoSize = true;
-      this.label5.Location = new System.Drawing.Point(21, 220);
-      this.label5.Name = "label5";
-      this.label5.Size = new System.Drawing.Size(64, 13);
-      this.label5.TabIndex = 6;
-      this.label5.Text = "Target FPS:";
-      // 
-      // VisualizationFpsNud
-      // 
-      this.VisualizationFpsNud.Location = new System.Drawing.Point(91, 218);
-      this.VisualizationFpsNud.Maximum = new decimal(new int[]
-                                                       {
-                                                         50,
-                                                         0,
-                                                         0,
-                                                         0
-                                                       });
-      this.VisualizationFpsNud.Minimum = new decimal(new int[]
-                                                       {
-                                                         5,
-                                                         0,
-                                                         0,
-                                                         0
-                                                       });
-      this.VisualizationFpsNud.Name = "VisualizationFpsNud";
-      this.VisualizationFpsNud.Size = new System.Drawing.Size(52, 20);
-      this.VisualizationFpsNud.TabIndex = 7;
-      this.VisualizationFpsNud.Value = new decimal(new int[]
-                                                     {
-                                                       30,
-                                                       0,
-                                                       0,
-                                                       0
-                                                     });
-      this.VisualizationFpsNud.ValueChanged += new System.EventHandler(this.VisualizationFpsNud_ValueChanged);
-      // 
-      // PlaylistTabPg
-      // 
-      this.PlaylistTabPg.Controls.Add(this.groupBoxPlayBehaviour);
-      this.PlaylistTabPg.Controls.Add(this.groupBox1);
-      this.PlaylistTabPg.Location = new System.Drawing.Point(4, 22);
-      this.PlaylistTabPg.Name = "PlaylistTabPg";
-      this.PlaylistTabPg.Size = new System.Drawing.Size(464, 374);
-      this.PlaylistTabPg.TabIndex = 2;
-      this.PlaylistTabPg.Text = "Playlist settings";
-      this.PlaylistTabPg.UseVisualStyleBackColor = true;
-      // 
       // groupBox3
       // 
-      this.groupBoxPlayBehaviour.Controls.Add(this.lblPlayMode);
-      this.groupBoxPlayBehaviour.Controls.Add(this.checkBoxAddAll);
-      this.groupBoxPlayBehaviour.Controls.Add(this.radioPlaylist);
-      this.groupBoxPlayBehaviour.Controls.Add(this.radioPlay);
-      this.groupBoxPlayBehaviour.Location = new System.Drawing.Point(16, 210);
-      this.groupBoxPlayBehaviour.Name = "groupBox3";
-      this.groupBoxPlayBehaviour.Size = new System.Drawing.Size(432, 143);
-      this.groupBoxPlayBehaviour.TabIndex = 1;
-      this.groupBoxPlayBehaviour.TabStop = false;
-      this.groupBoxPlayBehaviour.Text = "Playlist Behaviour";
+      this.groupBox3.Controls.Add(this.PlayNowJumpToCmbBox);
+      this.groupBox3.Controls.Add(this.label8);
+      this.groupBox3.Location = new System.Drawing.Point(14, 128);
+      this.groupBox3.Name = "groupBox3";
+      this.groupBox3.Size = new System.Drawing.Size(432, 74);
+      this.groupBox3.TabIndex = 7;
+      this.groupBox3.TabStop = false;
+      this.groupBox3.Text = "Jump To Behaviour";
       // 
-      // radioPlaylist
+      // PlayNowJumpToCmbBox
       // 
-      this.radioPlaylist.AutoSize = true;
-      this.radioPlaylist.Location = new System.Drawing.Point(136, 67);
-      this.radioPlaylist.Name = "radioPlaylist";
-      this.radioPlaylist.Size = new System.Drawing.Size(87, 17);
-      this.radioPlaylist.TabIndex = 1;
-      this.radioPlaylist.Text = "Playlist Mode";
-      this.radioPlaylist.UseVisualStyleBackColor = true;
+      this.PlayNowJumpToCmbBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.PlayNowJumpToCmbBox.FormattingEnabled = true;
+      this.PlayNowJumpToCmbBox.Location = new System.Drawing.Point(124, 27);
+      this.PlayNowJumpToCmbBox.Name = "PlayNowJumpToCmbBox";
+      this.PlayNowJumpToCmbBox.Size = new System.Drawing.Size(293, 21);
+      this.PlayNowJumpToCmbBox.TabIndex = 7;
       // 
-      // radioPlay
+      // label8
       // 
-      this.radioPlay.AutoSize = true;
-      this.radioPlay.Checked = true;
-      this.radioPlay.Location = new System.Drawing.Point(17, 67);
-      this.radioPlay.Name = "radioPlay";
-      this.radioPlay.Size = new System.Drawing.Size(75, 17);
-      this.radioPlay.TabIndex = 0;
-      this.radioPlay.TabStop = true;
-      this.radioPlay.Text = "Play Mode";
-      this.radioPlay.UseVisualStyleBackColor = true;
+      this.label8.AutoSize = true;
+      this.label8.Location = new System.Drawing.Point(16, 31);
+      this.label8.Name = "label8";
+      this.label8.Size = new System.Drawing.Size(106, 13);
+      this.label8.TabIndex = 6;
+      this.label8.Text = "Jump on \"Play now\":";
+      this.label8.TextAlign = System.Drawing.ContentAlignment.TopRight;
       // 
-      // groupBox1
+      // grpSelectOptions
       // 
-      this.groupBox1.Anchor =
-        ((System.Windows.Forms.AnchorStyles)
-         (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-           | System.Windows.Forms.AnchorStyles.Right)));
-      this.groupBox1.Controls.Add(this.autoShuffleCheckBox);
-      this.groupBox1.Controls.Add(this.ResumePlaylistChkBox);
-      this.groupBox1.Controls.Add(this.SavePlaylistOnExitChkBox);
-      this.groupBox1.Controls.Add(this.repeatPlaylistCheckBox);
-      this.groupBox1.Controls.Add(this.playlistButton);
-      this.groupBox1.Controls.Add(this.playlistFolderTextBox);
-      this.groupBox1.Controls.Add(this.label1);
-      this.groupBox1.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
-      this.groupBox1.Location = new System.Drawing.Point(16, 16);
-      this.groupBox1.Name = "groupBox1";
-      this.groupBox1.Size = new System.Drawing.Size(432, 174);
-      this.groupBox1.TabIndex = 0;
-      this.groupBox1.TabStop = false;
-      this.groupBox1.Text = "Playlist settings";
+      this.grpSelectOptions.Controls.Add(this.cmbSelectOption);
+      this.grpSelectOptions.Controls.Add(this.chkAddAllTracks);
+      this.grpSelectOptions.Location = new System.Drawing.Point(14, 17);
+      this.grpSelectOptions.Name = "grpSelectOptions";
+      this.grpSelectOptions.Size = new System.Drawing.Size(432, 74);
+      this.grpSelectOptions.TabIndex = 6;
+      this.grpSelectOptions.TabStop = false;
+      this.grpSelectOptions.Text = "OK / Enter / Select Button";
       // 
-      // autoShuffleCheckBox
+      // cmbSelectOption
       // 
-      this.autoShuffleCheckBox.AutoSize = true;
-      this.autoShuffleCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
-      this.autoShuffleCheckBox.Location = new System.Drawing.Point(91, 84);
-      this.autoShuffleCheckBox.Name = "autoShuffleCheckBox";
-      this.autoShuffleCheckBox.Size = new System.Drawing.Size(180, 17);
-      this.autoShuffleCheckBox.TabIndex = 4;
-      this.autoShuffleCheckBox.Text = "Auto shuffle playlists after loading";
-      this.autoShuffleCheckBox.UseVisualStyleBackColor = true;
+      this.cmbSelectOption.FormattingEnabled = true;
+      this.cmbSelectOption.Items.AddRange(new object[] {
+            "Play",
+            "Queue"});
+      this.cmbSelectOption.Location = new System.Drawing.Point(15, 31);
+      this.cmbSelectOption.Name = "cmbSelectOption";
+      this.cmbSelectOption.Size = new System.Drawing.Size(211, 21);
+      this.cmbSelectOption.TabIndex = 3;
       // 
-      // ResumePlaylistChkBox
+      // chkAddAllTracks
       // 
-      this.ResumePlaylistChkBox.AutoSize = true;
-      this.ResumePlaylistChkBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
-      this.ResumePlaylistChkBox.Location = new System.Drawing.Point(91, 130);
-      this.ResumePlaylistChkBox.Name = "ResumePlaylistChkBox";
-      this.ResumePlaylistChkBox.Size = new System.Drawing.Size(229, 17);
-      this.ResumePlaylistChkBox.TabIndex = 5;
-      this.ResumePlaylistChkBox.Text = "Load default playlist on MediaPortal startup ";
-      this.ResumePlaylistChkBox.UseVisualStyleBackColor = true;
+      this.chkAddAllTracks.AutoSize = true;
+      this.chkAddAllTracks.Location = new System.Drawing.Point(259, 33);
+      this.chkAddAllTracks.Name = "chkAddAllTracks";
+      this.chkAddAllTracks.Size = new System.Drawing.Size(95, 17);
+      this.chkAddAllTracks.TabIndex = 4;
+      this.chkAddAllTracks.Text = "Add All Tracks";
+      this.chkAddAllTracks.UseVisualStyleBackColor = true;
       // 
-      // SavePlaylistOnExitChkBox
-      // 
-      this.SavePlaylistOnExitChkBox.AutoSize = true;
-      this.SavePlaylistOnExitChkBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
-      this.SavePlaylistOnExitChkBox.Location = new System.Drawing.Point(91, 107);
-      this.SavePlaylistOnExitChkBox.Name = "SavePlaylistOnExitChkBox";
-      this.SavePlaylistOnExitChkBox.Size = new System.Drawing.Size(293, 17);
-      this.SavePlaylistOnExitChkBox.TabIndex = 5;
-      this.SavePlaylistOnExitChkBox.Text = "Save current playlist as default when leaving MediaPortal";
-      this.SavePlaylistOnExitChkBox.UseVisualStyleBackColor = true;
-      // 
-      // repeatPlaylistCheckBox
-      // 
-      this.repeatPlaylistCheckBox.AutoSize = true;
-      this.repeatPlaylistCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
-      this.repeatPlaylistCheckBox.Location = new System.Drawing.Point(91, 61);
-      this.repeatPlaylistCheckBox.Name = "repeatPlaylistCheckBox";
-      this.repeatPlaylistCheckBox.Size = new System.Drawing.Size(219, 17);
-      this.repeatPlaylistCheckBox.TabIndex = 3;
-      this.repeatPlaylistCheckBox.Text = "Repeat/loop music playlists (m3u, b4, pls)";
-      this.repeatPlaylistCheckBox.UseVisualStyleBackColor = true;
-      // 
-      // playlistButton
-      // 
-      this.playlistButton.Anchor =
-        ((System.Windows.Forms.AnchorStyles)
-         ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-      this.playlistButton.Location = new System.Drawing.Point(365, 22);
-      this.playlistButton.Name = "playlistButton";
-      this.playlistButton.Size = new System.Drawing.Size(61, 22);
-      this.playlistButton.TabIndex = 2;
-      this.playlistButton.Text = "Browse";
-      this.playlistButton.UseVisualStyleBackColor = true;
-      this.playlistButton.Click += new System.EventHandler(this.playlistButton_Click);
-      // 
-      // playlistFolderTextBox
-      // 
-      this.playlistFolderTextBox.Anchor =
-        ((System.Windows.Forms.AnchorStyles)
-         (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
-           | System.Windows.Forms.AnchorStyles.Right)));
-      this.playlistFolderTextBox.BorderColor = System.Drawing.Color.Empty;
-      this.playlistFolderTextBox.Location = new System.Drawing.Point(91, 24);
-      this.playlistFolderTextBox.Name = "playlistFolderTextBox";
-      this.playlistFolderTextBox.Size = new System.Drawing.Size(268, 20);
-      this.playlistFolderTextBox.TabIndex = 1;
-      // 
-      // label1
-      // 
-      this.label1.AutoSize = true;
-      this.label1.Location = new System.Drawing.Point(14, 27);
-      this.label1.Name = "label1";
-      this.label1.Size = new System.Drawing.Size(71, 13);
-      this.label1.TabIndex = 0;
-      this.label1.Text = "Playlist folder:";
-      // 
       // tabPageNowPlaying
       // 
       this.tabPageNowPlaying.Controls.Add(this.groupBoxVUMeter);
@@ -1398,8 +1134,7 @@
       this.checkBoxSwitchArtistOnLastFMSubmit.Name = "checkBoxSwitchArtistOnLastFMSubmit";
       this.checkBoxSwitchArtistOnLastFMSubmit.Size = new System.Drawing.Size(404, 17);
       this.checkBoxSwitchArtistOnLastFMSubmit.TabIndex = 13;
-      this.checkBoxSwitchArtistOnLastFMSubmit.Text =
-        "Switch artist on internet lookup. i.e. LastName, Firstname -> FirstName LastName";
+      this.checkBoxSwitchArtistOnLastFMSubmit.Text = "Switch artist on internet lookup. i.e. LastName, Firstname -> FirstName LastName";
       this.checkBoxSwitchArtistOnLastFMSubmit.UseVisualStyleBackColor = true;
       // 
       // checkBoxDisableTagLookups
@@ -1482,46 +1217,263 @@
       this.label9.TextAlign = System.Drawing.ContentAlignment.TopRight;
       this.label9.Visible = false;
       // 
-      // MiscTabPg
+      // PlaylistTabPg
       // 
-      this.MiscTabPg.Controls.Add(this.groupBox2);
-      this.MiscTabPg.Location = new System.Drawing.Point(4, 22);
-      this.MiscTabPg.Name = "MiscTabPg";
-      this.MiscTabPg.Size = new System.Drawing.Size(464, 374);
-      this.MiscTabPg.TabIndex = 3;
-      this.MiscTabPg.Text = "Misc settings";
-      this.MiscTabPg.UseVisualStyleBackColor = true;
+      this.PlaylistTabPg.Controls.Add(this.groupBox1);
+      this.PlaylistTabPg.Location = new System.Drawing.Point(4, 22);
+      this.PlaylistTabPg.Name = "PlaylistTabPg";
+      this.PlaylistTabPg.Size = new System.Drawing.Size(464, 374);
+      this.PlaylistTabPg.TabIndex = 2;
+      this.PlaylistTabPg.Text = "Playlist settings";
+      this.PlaylistTabPg.UseVisualStyleBackColor = true;
       // 
-      // groupBox2
+      // groupBox1
       // 
-      this.groupBox2.Controls.Add(this.PlayNowJumpToCmbBox);
-      this.groupBox2.Controls.Add(this.label8);
-      this.groupBox2.Location = new System.Drawing.Point(14, 13);
-      this.groupBox2.Name = "groupBox2";
-      this.groupBox2.Size = new System.Drawing.Size(432, 64);
-      this.groupBox2.TabIndex = 1;
-      this.groupBox2.TabStop = false;
-      this.groupBox2.Text = "Play now behavior";
+      this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.groupBox1.Controls.Add(this.PlaylistCurrentCheckBox);
+      this.groupBox1.Controls.Add(this.autoShuffleCheckBox);
+      this.groupBox1.Controls.Add(this.ResumePlaylistChkBox);
+      this.groupBox1.Controls.Add(this.SavePlaylistOnExitChkBox);
+      this.groupBox1.Controls.Add(this.repeatPlaylistCheckBox);
+      this.groupBox1.Controls.Add(this.playlistButton);
+      this.groupBox1.Controls.Add(this.playlistFolderTextBox);
+      this.groupBox1.Controls.Add(this.label1);
+      this.groupBox1.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
+      this.groupBox1.Location = new System.Drawing.Point(16, 16);
+      this.groupBox1.Name = "groupBox1";
+      this.groupBox1.Size = new System.Drawing.Size(432, 222);
+      this.groupBox1.TabIndex = 0;
+      this.groupBox1.TabStop = false;
+      this.groupBox1.Text = "Playlist settings";
       // 
-      // PlayNowJumpToCmbBox
+      // autoShuffleCheckBox
       // 
-      this.PlayNowJumpToCmbBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
-      this.PlayNowJumpToCmbBox.FormattingEnabled = true;
-      this.PlayNowJumpToCmbBox.Location = new System.Drawing.Point(114, 23);
-      this.PlayNowJumpToCmbBox.Name = "PlayNowJumpToCmbBox";
-      this.PlayNowJumpToCmbBox.Size = new System.Drawing.Size(293, 21);
-      this.PlayNowJumpToCmbBox.TabIndex = 1;
+      this.autoShuffleCheckBox.AutoSize = true;
+      this.autoShuffleCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
+      this.autoShuffleCheckBox.Location = new System.Drawing.Point(91, 84);
+      this.autoShuffleCheckBox.Name = "autoShuffleCheckBox";
+      this.autoShuffleCheckBox.Size = new System.Drawing.Size(180, 17);
+      this.autoShuffleCheckBox.TabIndex = 4;
+      this.autoShuffleCheckBox.Text = "Auto shuffle playlists after loading";
+      this.autoShuffleCheckBox.UseVisualStyleBackColor = true;
       // 
-      // label8
+      // ResumePlaylistChkBox
       // 
-      this.label8.AutoSize = true;
-      this.label8.Location = new System.Drawing.Point(6, 27);
-      this.label8.Name = "label8";
-      this.label8.Size = new System.Drawing.Size(106, 13);
-      this.label8.TabIndex = 0;
-      this.label8.Text = "Jump on \"Play now\":";
-      this.label8.TextAlign = System.Drawing.ContentAlignment.TopRight;
+      this.ResumePlaylistChkBox.AutoSize = true;
+      this.ResumePlaylistChkBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
+      this.ResumePlaylistChkBox.Location = new System.Drawing.Point(91, 130);
+      this.ResumePlaylistChkBox.Name = "ResumePlaylistChkBox";
+      this.ResumePlaylistChkBox.Size = new System.Drawing.Size(229, 17);
+      this.ResumePlaylistChkBox.TabIndex = 5;
+      this.ResumePlaylistChkBox.Text = "Load default playlist on MediaPortal startup ";
+      this.ResumePlaylistChkBox.UseVisualStyleBackColor = true;
       // 
+      // SavePlaylistOnExitChkBox
+      // 
+      this.SavePlaylistOnExitChkBox.AutoSize = true;
+      this.SavePlaylistOnExitChkBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
+      this.SavePlaylistOnExitChkBox.Location = new System.Drawing.Point(91, 107);
+      this.SavePlaylistOnExitChkBox.Name = "SavePlaylistOnExitChkBox";
+      this.SavePlaylistOnExitChkBox.Size = new System.Drawing.Size(293, 17);
+      this.SavePlaylistOnExitChkBox.TabIndex = 5;
+      this.SavePlaylistOnExitChkBox.Text = "Save current playlist as default when leaving MediaPortal";
+      this.SavePlaylistOnExitChkBox.UseVisualStyleBackColor = true;
+      // 
+      // repeatPlaylistCheckBox
+      // 
+      this.repeatPlaylistCheckBox.AutoSize = true;
+      this.repeatPlaylistCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
+      this.repeatPlaylistCheckBox.Location = new System.Drawing.Point(91, 61);
+      this.repeatPlaylistCheckBox.Name = "repeatPlaylistCheckBox";
+      this.repeatPlaylistCheckBox.Size = new System.Drawing.Size(219, 17);
+      this.repeatPlaylistCheckBox.TabIndex = 3;
+      this.repeatPlaylistCheckBox.Text = "Repeat/loop music playlists (m3u, b4, pls)";
+      this.repeatPlaylistCheckBox.UseVisualStyleBackColor = true;
+      // 
+      // playlistButton
+      // 
+      this.playlistButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+      this.playlistButton.Location = new System.Drawing.Point(365, 22);
+      this.playlistButton.Name = "playlistButton";
+      this.playlistButton.Size = new System.Drawing.Size(61, 22);
+      this.playlistButton.TabIndex = 2;
+      this.playlistButton.Text = "Browse";
+      this.playlistButton.UseVisualStyleBackColor = true;
+      this.playlistButton.Click += new System.EventHandler(this.playlistButton_Click);
+      // 
+      // playlistFolderTextBox
+      // 
+      this.playlistFolderTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+      this.playlistFolderTextBox.BorderColor = System.Drawing.Color.Empty;
+      this.playlistFolderTextBox.Location = new System.Drawing.Point(91, 24);
+      this.playlistFolderTextBox.Name = "playlistFolderTextBox";
+      this.playlistFolderTextBox.Size = new System.Drawing.Size(268, 20);
+      this.playlistFolderTextBox.TabIndex = 1;
+      // 
+      // label1
+      // 
+      this.label1.AutoSize = true;
+      this.label1.Location = new System.Drawing.Point(14, 27);
+      this.label1.Name = "label1";
+      this.label1.Size = new System.Drawing.Size(71, 13);
+      this.label1.TabIndex = 0;
+      this.label1.Text = "Playlist folder:";
+      // 
+      // VisualizationsTabPg
+      // 
+      this.VisualizationsTabPg.Controls.Add(this.mpGroupBox3);
+      this.VisualizationsTabPg.Location = new System.Drawing.Point(4, 22);
+      this.VisualizationsTabPg.Name = "VisualizationsTabPg";
+      this.VisualizationsTabPg.Size = new System.Drawing.Size(464, 374);
+      this.VisualizationsTabPg.TabIndex = 4;
+      this.VisualizationsTabPg.Text = "Visualizations";
+      this.VisualizationsTabPg.UseVisualStyleBackColor = true;
+      // 
+      // mpGroupBox3
+      // 
+      this.mpGroupBox3.Controls.Add(this.groupBoxWinampVis);
+      this.mpGroupBox3.Controls.Add(this.EnableStatusOverlaysChkBox);
+      this.mpGroupBox3.Controls.Add(this.ShowTrackInfoChkBox);
+      this.mpGroupBox3.Controls.Add(this.label11);
+      this.mpGroupBox3.Controls.Add(this.label10);
+      this.mpGroupBox3.Controls.Add(this.VizPresetsCmbBox);
+      this.mpGroupBox3.Controls.Add(this.VisualizationsCmbBox);
+      this.mpGroupBox3.Controls.Add(this.label7);
+      this.mpGroupBox3.Controls.Add(this.label5);
+      this.mpGroupBox3.Controls.Add(this.VisualizationFpsNud);
+      this.mpGroupBox3.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
+      this.mpGroupBox3.Location = new System.Drawing.Point(16, 16);
+      this.mpGroupBox3.Name = "mpGroupBox3";
+      this.mpGroupBox3.Size = new System.Drawing.Size(432, 343);
+      this.mpGroupBox3.TabIndex = 0;
+      this.mpGroupBox3.TabStop = false;
+      this.mpGroupBox3.Text = "Visualization settings";
+      // 
+      // groupBoxWinampVis
+      // 
+      this.groupBoxWinampVis.Controls.Add(this.btWinampConfig);
+      this.groupBoxWinampVis.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
+      this.groupBoxWinampVis.Location = new System.Drawing.Point(91, 86);
+      this.groupBoxWinampVis.Name = "groupBoxWinampVis";
+      this.groupBoxWinampVis.Size = new System.Drawing.Size(289, 56);
+      this.groupBoxWinampVis.TabIndex = 11;
+      this.groupBoxWinampVis.TabStop = false;
+      this.groupBoxWinampVis.Text = "Winamp Vis.";
+      // 
+      // btWinampConfig
+      // 
+      this.btWinampConfig.Location = new System.Drawing.Point(6, 24);
+      this.btWinampConfig.Name = "btWinampConfig";
+      this.btWinampConfig.Size = new System.Drawing.Size(75, 23);
+      this.btWinampConfig.TabIndex = 4;
+      this.btWinampConfig.Text = "Config";
+      this.btWinampConfig.UseVisualStyleBackColor = true;
+      this.btWinampConfig.Click += new System.EventHandler(this.btWinampConfig_Click);
+      // 
+      // EnableStatusOverlaysChkBox
+      // 
+      this.EnableStatusOverlaysChkBox.AutoSize = true;
+      this.EnableStatusOverlaysChkBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
+      this.EnableStatusOverlaysChkBox.Location = new System.Drawing.Point(91, 246);
+      this.EnableStatusOverlaysChkBox.Name = "EnableStatusOverlaysChkBox";
+      this.EnableStatusOverlaysChkBox.Size = new System.Drawing.Size(299, 17);
+      this.EnableStatusOverlaysChkBox.TabIndex = 9;
+      this.EnableStatusOverlaysChkBox.Text = "Enable status display in fullscreen mode (fast systems only)";
+      this.EnableStatusOverlaysChkBox.UseVisualStyleBackColor = true;
+      this.EnableStatusOverlaysChkBox.CheckedChanged += new System.EventHandler(this.EnableStatusOverlaysChkBox_CheckedChanged);
+      // 
+      // ShowTrackInfoChkBox
+      // 
+      this.ShowTrackInfoChkBox.AutoSize = true;
+      this.ShowTrackInfoChkBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
+      this.ShowTrackInfoChkBox.Location = new System.Drawing.Point(110, 267);
+      this.ShowTrackInfoChkBox.Name = "ShowTrackInfoChkBox";
+      this.ShowTrackInfoChkBox.Size = new System.Drawing.Size(178, 17);
+      this.ShowTrackInfoChkBox.TabIndex = 10;
+      this.ShowTrackInfoChkBox.Text = "Show song info on track change";
+      this.ShowTrackInfoChkBox.UseVisualStyleBackColor = true;
+      // 
+      // label11
+      // 
+      this.label11.AutoSize = true;
+      this.label11.Location = new System.Drawing.Point(45, 54);
+      this.label11.Name = "label11";
+      this.label11.Size = new System.Drawing.Size(40, 13);
+      this.label11.TabIndex = 2;
+      this.label11.Text = "Preset:";
+      // 
+      // label10
+      // 
+      this.label10.AutoSize = true;
+      this.label10.Location = new System.Drawing.Point(17, 27);
+      this.label10.Name = "label10";
+      this.label10.Size = new System.Drawing.Size(68, 13);
+      this.label10.TabIndex = 0;
+      this.label10.Text = "Visualization:";
+      // 
+      // VizPresetsCmbBox
+      // 
+      this.VizPresetsCmbBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.VizPresetsCmbBox.FormattingEnabled = true;
+      this.VizPresetsCmbBox.Location = new System.Drawing.Point(91, 51);
+      this.VizPresetsCmbBox.Name = "VizPresetsCmbBox";
+      this.VizPresetsCmbBox.Size = new System.Drawing.Size(289, 21);
+      this.VizPresetsCmbBox.TabIndex = 3;
+      this.VizPresetsCmbBox.SelectedIndexChanged += new System.EventHandler(this.VizPresetsCmbBox_SelectedIndexChanged);
+      // 
+      // VisualizationsCmbBox
+      // 
+      this.VisualizationsCmbBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+      this.VisualizationsCmbBox.FormattingEnabled = true;
+      this.VisualizationsCmbBox.Location = new System.Drawing.Point(91, 24);
+      this.VisualizationsCmbBox.Name = "VisualizationsCmbBox";
+      this.VisualizationsCmbBox.Size = new System.Drawing.Size(289, 21);
+      this.VisualizationsCmbBox.TabIndex = 1;
+      this.VisualizationsCmbBox.SelectedIndexChanged += new System.EventHandler(this.VisualizationsCmbBox_SelectedIndexChanged);
+      // 
+      // label7
+      // 
+      this.label7.AutoSize = true;
+      this.label7.Location = new System.Drawing.Point(149, 220);
+      this.label7.Name = "label7";
+      this.label7.Size = new System.Drawing.Size(166, 13);
+      this.label7.TabIndex = 8;
+      this.label7.Text = "(use lower value for slow systems)";
+      // 
+      // label5
+      // 
+      this.label5.AutoSize = true;
+      this.label5.Location = new System.Drawing.Point(21, 220);
+      this.label5.Name = "label5";
+      this.label5.Size = new System.Drawing.Size(64, 13);
+      this.label5.TabIndex = 6;
+      this.label5.Text = "Target FPS:";
+      // 
+      // VisualizationFpsNud
+      // 
+      this.VisualizationFpsNud.Location = new System.Drawing.Point(91, 218);
+      this.VisualizationFpsNud.Maximum = new decimal(new int[] {
+            50,
+            0,
+            0,
+            0});
+      this.VisualizationFpsNud.Minimum = new decimal(new int[] {
+            5,
+            0,
+            0,
+            0});
+      this.VisualizationFpsNud.Name = "VisualizationFpsNud";
+      this.VisualizationFpsNud.Size = new System.Drawing.Size(52, 20);
+      this.VisualizationFpsNud.TabIndex = 7;
+      this.VisualizationFpsNud.Value = new decimal(new int[] {
+            30,
+            0,
+            0,
+            0});
+      this.VisualizationFpsNud.ValueChanged += new System.EventHandler(this.VisualizationFpsNud_ValueChanged);
+      // 
       // label4
       // 
       this.label4.Location = new System.Drawing.Point(0, 0);
@@ -1529,26 +1481,26 @@
       this.label4.Size = new System.Drawing.Size(100, 23);
       this.label4.TabIndex = 0;
       // 
-      // checkBoxAddAll
+      // checkBox2
       // 
-      this.checkBoxAddAll.AutoSize = true;
-      this.checkBoxAddAll.Checked = true;
-      this.checkBoxAddAll.CheckState = System.Windows.Forms.CheckState.Checked;
-      this.checkBoxAddAll.Location = new System.Drawing.Point(17, 101);
-      this.checkBoxAddAll.Name = "checkBoxAddAll";
-      this.checkBoxAddAll.Size = new System.Drawing.Size(136, 17);
-      this.checkBoxAddAll.TabIndex = 2;
-      this.checkBoxAddAll.Text = "Add all tracks to playlist";
-      this.checkBoxAddAll.UseVisualStyleBackColor = true;
+      this.checkBox2.AutoSize = true;
+      this.checkBox2.Location = new System.Drawing.Point(259, 21);
+      this.checkBox2.Name = "checkBox2";
+      this.checkBox2.Size = new System.Drawing.Size(95, 17);
+      this.checkBox2.TabIndex = 6;
+      this.checkBox2.Text = "Add All Tracks";
+      this.checkBox2.UseVisualStyleBackColor = true;
       // 
-      // label3
+      // PlaylistCurrentCheckBox
       // 
-      this.lblPlayMode.Location = new System.Drawing.Point(14, 22);
-      this.lblPlayMode.Name = "label3";
-      this.lblPlayMode.Size = new System.Drawing.Size(329, 42);
-      this.lblPlayMode.TabIndex = 3;
-      this.lblPlayMode.Text = "These options determine how the play and enter/ok buttons behave.  See the Wiki f" +
-                              "or details";
+      this.PlaylistCurrentCheckBox.AutoSize = true;
+      this.PlaylistCurrentCheckBox.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
+      this.PlaylistCurrentCheckBox.Location = new System.Drawing.Point(91, 153);
+      this.PlaylistCurrentCheckBox.Name = "PlaylistCurrentCheckBox";
+      this.PlaylistCurrentCheckBox.Size = new System.Drawing.Size(194, 17);
+      this.PlaylistCurrentCheckBox.TabIndex = 7;
+      this.PlaylistCurrentCheckBox.Text = "Playlist screen shows current playlist";
+      this.PlaylistCurrentCheckBox.UseVisualStyleBackColor = true;
       // 
       // Music
       // 
@@ -1562,16 +1514,11 @@
       ((System.ComponentModel.ISupportInitialize)(this.StreamOutputLevelNud)).EndInit();
       this.mpGroupBox1.ResumeLayout(false);
       this.mpGroupBox1.PerformLayout();
-      this.VisualizationsTabPg.ResumeLayout(false);
-      this.mpGroupBox3.ResumeLayout(false);
-      this.mpGroupBox3.PerformLayout();
-      this.groupBoxWinampVis.ResumeLayout(false);
-      ((System.ComponentModel.ISupportInitialize)(this.VisualizationFpsNud)).EndInit();
-      this.PlaylistTabPg.ResumeLayout(false);
-      this.groupBoxPlayBehaviour.ResumeLayout(false);
-      this.groupBoxPlayBehaviour.PerformLayout();
-      this.groupBox1.ResumeLayout(false);
-      this.groupBox1.PerformLayout();
+      this.PlaySettingsTabPg.ResumeLayout(false);
+      this.groupBox3.ResumeLayout(false);
+      this.groupBox3.PerformLayout();
+      this.grpSelectOptions.ResumeLayout(false);
+      this.grpSelectOptions.PerformLayout();
       this.tabPageNowPlaying.ResumeLayout(false);
       this.groupBoxVUMeter.ResumeLayout(false);
       this.groupBoxVUMeter.PerformLayout();
@@ -1579,10 +1526,16 @@
       this.groupBoxDynamicContent.PerformLayout();
       this.groupBoxVizOptions.ResumeLayout(false);
       this.groupBoxVizOptions.PerformLayout();
-      this.MiscTabPg.ResumeLayout(false);
-      this.groupBox2.ResumeLayout(false);
-      this.groupBox2.PerformLayout();
+      this.PlaylistTabPg.ResumeLayout(false);
+      this.groupBox1.ResumeLayout(false);
+      this.groupBox1.PerformLayout();
+      this.VisualizationsTabPg.ResumeLayout(false);
+      this.mpGroupBox3.ResumeLayout(false);
+      this.mpGroupBox3.PerformLayout();
+      this.groupBoxWinampVis.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.VisualizationFpsNud)).EndInit();
       this.ResumeLayout(false);
+
     }
 
     #endregion
Index: MediaPortal.Base/language/strings_en.xml
===================================================================
--- MediaPortal.Base/language/strings_en.xml	(revision 27942)
+++ MediaPortal.Base/language/strings_en.xml	(working copy)
@@ -1010,6 +1010,8 @@
     <String id="1222">Groups</String>
     <String id="1223">Existing Playlist Detected</String>
     <String id="1224">Do you want to clear the current playlist?</String>
+    <String id="1225">Queue item</String>
+    <String id="1226">Queue all items</String>
     <String id="1230">Date added:</String>
     <String id="1231">Last played:</String>
     <String id="1300" prefix="My ">TV Shows</String>
Index: WindowPlugins/GUIMusic/GUIMusicBaseWindow.cs
===================================================================
--- WindowPlugins/GUIMusic/GUIMusicBaseWindow.cs	(revision 27942)
+++ WindowPlugins/GUIMusic/GUIMusicBaseWindow.cs	(working copy)
@@ -106,8 +106,10 @@
     protected PlayNowJumpToType PlayNowJumpTo = PlayNowJumpToType.None;
     protected bool UsingInternalMusicPlayer = false;
 
-    protected bool PlayAllOnSingleItemPlayNow = true;
     protected string _currentPlaying = string.Empty;
+    protected string _selectOption = string.Empty;
+    protected bool _addAllOnSelect;
+    protected bool _playlistIsCurrent;
     
     protected static BackgroundWorker bw;
     protected static bool defaultPlaylistLoaded = false;
@@ -199,18 +201,10 @@
         _createMissingFolderThumbs = xmlreader.GetValueAsBool("musicfiles", "createMissingFolderThumbs", false);
         _useFolderThumbs = xmlreader.GetValueAsBool("musicfiles", "useFolderThumbs", true);
 
-        String strPlayMode = xmlreader.GetValueAsString("musicfiles", "playmode", "play");
-        if (strPlayMode == "playlist")
-        {
-          MusicState.CurrentPlayMode = MusicState.PlayMode.PLAYLIST_MODE;
-        }
-        else
-        {
-          MusicState.CurrentPlayMode = MusicState.PlayMode.PLAY_MODE;
-        }
+        _selectOption = xmlreader.GetValueAsString("musicfiles", "selectOption", "play");
+        _addAllOnSelect = xmlreader.GetValueAsBool("musicfiles", "addall", true);
+        _playlistIsCurrent = xmlreader.GetValueAsBool("musicfiles", "playlistIsCurrent", true);
 
-        PlayAllOnSingleItemPlayNow = xmlreader.GetValueAsBool("musicfiles", "addall", true);
-
         for (int i = 0; i < _sortModes.Length; ++i)
         {
           _sortTags1[i] = xmlreader.GetValueAsString("mymusic", _sortModes[i] + "1", _defaultSortTags1[i]);
@@ -359,11 +353,7 @@
       if (action.wID == Action.ActionType.ACTION_QUEUE_ITEM)
       {
         // when adding item only add a single item
-        // so override add all setting
-        bool existingPlayAll = PlayAllOnSingleItemPlayNow;
-        PlayAllOnSingleItemPlayNow = false;
-        AddSelectionToPlaylist(false);
-        PlayAllOnSingleItemPlayNow = existingPlayAll;
+        AddSelectionToCurrentPlaylist(false, false);
         return;
       }
       base.OnAction(action);
@@ -1969,19 +1959,27 @@
     /// what tracks need to be added to the playlist
     /// </summary>
     /// <param name="clearPlaylist">If True then current playlist will be cleared</param>
-    protected virtual void AddSelectionToPlaylist(bool clearPlaylist) {}
+    /// <param name="addAllTracks">Whether to add all tracks in folder</param>
+    protected virtual void AddSelectionToCurrentPlaylist(bool clearPlaylist, bool addAllTracks) {}
 
     /// <summary>
+    /// Adds songs to the playlist without affecting what is playing
+    /// </summary>
+    protected virtual void AddSelectionToPlaylist() {}
+
+
+    /// <summary>
     /// Just helper method to turn the enum in MusicState into
     /// an actual PlayListType
     /// </summary>
     /// <returns></returns>
     protected PlayListType GetPlayListType()
     {
-      // we used to also use PLAYLIST_MUSIC_TEMP
-      // this method is here incase we want to implement
-      // multiple playlists again
-      return PlayListType.PLAYLIST_MUSIC;
+      if (_playlistIsCurrent)
+      {
+        return PlayListType.PLAYLIST_MUSIC;
+      }
+      return PlayListType.PLAYLIST_MUSIC_TEMP;
     }
 
     /// <summary>
@@ -1991,7 +1989,8 @@
     /// </summary>
     /// <param name="pItems">A list of PlayListItem to be added</param>
     /// <param name="clearPlaylist">If True then current playlist will be cleared</param>
-    protected void AddItemsToPlaylist(List<PlayListItem> pItems, bool clearPlaylist)
+    /// <param name="addAllTracks">Whether to add all tracks in folder to playlist</param>
+    protected void AddItemsToCurrentPlaylist(List<PlayListItem> pItems, bool clearPlaylist, bool addAllTracks)
     {
       PlayList pl = playlistPlayer.GetPlaylist(GetPlayListType());
       playlistPlayer.CurrentPlaylistType = GetPlayListType();
@@ -2008,37 +2007,6 @@
       //then start at the end of the playlist
       int iCurrentItemCount = pl.Count;
 
-      if (!(g_Player.Playing && g_Player.IsMusic))
-      {
-        // nothing is playing or something other than music is playing
-        // and we are in playlist mode so may want to just add tracks to existing
-        // playlist but start from the track we have just added
-        if (iCurrentItemCount > 0)
-        {
-          // we are in playlist mode (play mode will have cleared list already)
-          // and playlist has existing items but is not playing
-          // so check with user if they want to clear the current playlist
-          GUIDialogYesNo dlgYesNo = (GUIDialogYesNo)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_YES_NO);
-          if (dlgYesNo != null)
-          {
-            dlgYesNo.SetHeading(GUILocalizeStrings.Get(1223));  // Existing Playlist detected
-            dlgYesNo.SetLine(1, GUILocalizeStrings.Get(1224));  // Do you want to clear the current playlist?
-            dlgYesNo.DoModal(GetID);
-            if (dlgYesNo.IsConfirmed)
-            {
-              // clear playlist as requested by user
-              pl.Clear();
-              playlistPlayer.Reset();
-            }
-            else
-            {
-              // start from end of playlist
-              iStartFrom = iCurrentItemCount;
-            }
-          }
-        }
-      }
-
       foreach (PlayListItem pItem in pItems)
       {
         // actually add items to the playlist
@@ -2052,7 +2020,7 @@
         // if playlist has been cleared before calling this
         // or there is nothing in existing playlist then
         // start playback
-        if (!facadeLayout.SelectedListItem.IsFolder && PlayAllOnSingleItemPlayNow)
+        if (!facadeLayout.SelectedListItem.IsFolder && pItems.Count > 1)
         {
           // we are here is we are in tracks listing and playlist was empty
           // we are adding multiple tracks to playlist so need to ensure
@@ -2083,6 +2051,24 @@
       DoPlayNowJumpTo(pItems.Count);
     }
 
+    /// <summary>
+    /// When playlist is not current playlist (current tracks are added to TEMP playlist)
+    /// Then allow users to add tracks to the playlist without affecting playback
+    /// </summary>
+    /// <param name="pItems">Items to add to the playlist</param>
+    protected void AddItemsToPlaylist(List<PlayListItem> pItems)
+    {
+      PlayList pl = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC);
+
+      foreach (PlayListItem pItem in pItems)
+      {
+        // actually add items to the playlist
+        pl.Add(pItem);
+      }
+
+      DoPlayNowJumpTo(pItems.Count);
+    }
+
     protected void InsertItemsToPlaylist(List<PlayListItem> pItems)
     {
       PlayList pl = playlistPlayer.GetPlaylist(GetPlayListType());
@@ -2092,38 +2078,6 @@
       //then start at the end of the playlist
       int iCurrentItemCount = pl.Count;
 
-
-      if (!(g_Player.Playing && g_Player.IsMusic))
-      {
-        // nothing is playing or something other than music is playing
-        if (iCurrentItemCount > 0)
-        {
-          // we are in playlist mode (play mode will have cleared list already)
-          // and playlist has existing items but is not playing
-          // so check with user if they want to clear the current playlist
-          GUIDialogYesNo dlgYesNo = (GUIDialogYesNo)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_YES_NO);
-          if (dlgYesNo != null)
-          {
-            // need localised strings here
-            dlgYesNo.SetHeading("Existing Playlist Detected");
-            dlgYesNo.SetLine(1, "Do you want to clear the current playlist?");
-            dlgYesNo.DoModal(GetID);
-            if (dlgYesNo.IsConfirmed)
-            {
-              // clear playlist as requested by user
-              pl.Clear();
-              playlistPlayer.Reset();
-              iStartFrom = 0;
-            }
-            else
-            {
-              iStartFrom = iCurrentItemCount;
-            }
-          }
-        }
-      }
-
-
       int index = Math.Max(playlistPlayer.CurrentSong, 0);
       for (int i = 0; i < pItems.Count; i++)
       {
Index: WindowPlugins/GUIMusic/GUIMusicFiles.cs
===================================================================
--- WindowPlugins/GUIMusic/GUIMusicFiles.cs	(revision 27942)
+++ WindowPlugins/GUIMusic/GUIMusicFiles.cs	(working copy)
@@ -214,7 +214,7 @@
 
         if (GetFocusControlId() == facadeLayout.GetID)
         {
-          AddSelectionToPlaylist(true);
+          AddSelectionToCurrentPlaylist(true, false);
         }
       }
     }
@@ -240,8 +240,26 @@
         _virtualDirectory.Clear();
         foreach (Share share in _shareList)
         {
-          if (share.Name.Length > 0)
+          if (!string.IsNullOrEmpty(share.Name))
           {
+            if (strDefault == share.Name)
+            {
+              share.Default = true;
+              if (string.IsNullOrEmpty(currentFolder))
+              {
+                if (share.IsFtpShare)
+                {
+                  //remote:hostname?port?login?password?folder
+                  currentFolder = _virtualDirectory.GetShareRemoteURL(share);
+                  _startDirectory = currentFolder;
+                }
+                else
+                {
+                  currentFolder = share.Path;
+                  _startDirectory = share.Path;
+                }
+              }
+            }
             _virtualDirectory.Add(share);
           }
           else
@@ -532,28 +550,6 @@
           PlayCD(message.Label);
           break;
 
-        case GUIMessage.MessageType.GUI_MSG_CD_REMOVED:
-          MusicCD = null;
-          if (g_Player.Playing && Util.Utils.IsCDDA(g_Player.CurrentFile) &&
-              message.Label.Equals(g_Player.CurrentFile.Substring(0, 2), StringComparison.InvariantCultureIgnoreCase))
-            // test if it is our drive
-          {
-            g_Player.Stop();
-          }
-          if (GUIWindowManager.ActiveWindow == GetID)
-          {
-            if (Util.Utils.IsDVD(currentFolder))
-            {
-              currentFolder = string.Empty;
-              LoadDirectory(currentFolder);
-            }
-          }
-          break;
-
-        case GUIMessage.MessageType.GUI_MSG_AUTOPLAY_VOLUME:
-          PlayCD(message.Label);
-          break;
-
         case GUIMessage.MessageType.GUI_MSG_FILE_DOWNLOADING:
           facadeLayout.OnMessage(message);
           break;
@@ -608,10 +604,6 @@
       _selectedListItem = item;
       int itemNo = facadeLayout.SelectedListItemIndex;
 
-      // when handling add to playlist items we need to override the
-      // play all setting to use this to enable us to reset it
-      bool existingPlayAll;
-
       if (item == null)
       {
         return;
@@ -639,16 +631,22 @@
         {
           if (!isUpFolder)
           {
-            dlg.AddLocalizedString(926); // Add to playlist
-            if (!item.IsFolder)
-            {
-              dlg.AddLocalizedString(4557); // Add all to playlist
-            }
             dlg.AddLocalizedString(4552); // Play now
             if (!item.IsFolder && g_Player.Playing && g_Player.IsMusic)
             {
               dlg.AddLocalizedString(4551); // Play next
             }
+            dlg.AddLocalizedString(1225); // Queue item
+            if (!item.IsFolder)
+            {
+              dlg.AddLocalizedString(1226); // Queue all items
+            }
+
+            if (!_playlistIsCurrent)
+            {
+              dlg.AddLocalizedString(926); // add to playlist
+            }
+
             if (!item.IsFolder && !item.IsRemote)
             {
               dlg.AddLocalizedString(930); //Add to favorites
@@ -674,7 +672,7 @@
           }
           else // ".."
           {
-            dlg.AddLocalizedString(4557); // Add all to playlist
+            dlg.AddLocalizedString(1226); // Queue all items
             dlg.AddLocalizedString(102); //Scan
           }
         }
@@ -720,28 +718,26 @@
           OnInfo(itemNo);
           break;
 
-        case 926: // add to playlist
-          existingPlayAll = base.PlayAllOnSingleItemPlayNow;
-          base.PlayAllOnSingleItemPlayNow = false;
-          AddSelectionToPlaylist(false);
-          base.PlayAllOnSingleItemPlayNow = existingPlayAll;
+        case 1225: // Queue item
+          AddSelectionToCurrentPlaylist(false, false);
           break;
 
-        case 4557: // add all items in current list to end of playlist
-          existingPlayAll = base.PlayAllOnSingleItemPlayNow;
-          base.PlayAllOnSingleItemPlayNow = true;
-          AddSelectionToPlaylist(false);
-          base.PlayAllOnSingleItemPlayNow = existingPlayAll;
+        case 1226: // Queue all items
+          AddSelectionToCurrentPlaylist(false, true);
           break;
 
         case 4551: // Play next
-          InsertSelectionToPlaylist();
+          InsertSelectionToPlaylist(false);
           break;
 
         case 4552: // Play now
-          AddSelectionToPlaylist(true);
+          AddSelectionToCurrentPlaylist(true, false);
           break;
 
+        case 926: // add to playlist
+          AddSelectionToPlaylist();
+          break;
+
         case 136: // show playlist
           _selectedItem = facadeLayout.SelectedListItemIndex;
           SaveFolderSettings(currentFolder);
@@ -924,12 +920,11 @@
         }
 
         bool clearPlaylist = false;
-        if (MusicState.CurrentPlayMode == MusicState.PlayMode.PLAY_MODE)
+        if (_selectOption == "play"  || !g_Player.Playing || !g_Player.IsMusic)
         {
-          // if in play mode then clear playlist
           clearPlaylist = true;
         }
-        AddSelectionToPlaylist(clearPlaylist);
+        AddSelectionToCurrentPlaylist(clearPlaylist, _addAllOnSelect);
       }
     }
 
@@ -1511,7 +1506,8 @@
     /// Will add the current folder (and any sub-folders) to playlist
     /// </summary>
     /// <param name="clearPlaylist">If True then current playlist will be cleared</param>
-    protected override void AddSelectionToPlaylist(bool clearPlaylist)
+    /// <param name="addAllTracks">Whether to add all tracks in folder</param>
+    protected override void AddSelectionToCurrentPlaylist(bool clearPlaylist, bool addAllTracks)
     {
       GUIListItem selectedItem = facadeLayout.SelectedListItem;
 
@@ -1524,7 +1520,7 @@
       }
 
       List<PlayListItem> pl = new List<PlayListItem>();
-      AddFolderToPlaylist(selectedItem, ref pl, false);
+      AddFolderToPlaylist(selectedItem, ref pl, false, addAllTracks);
 
       // only apply further sort if a folder has been selected
       // if user has selected a track then add in order displayed
@@ -1532,16 +1528,35 @@
       {
         pl.Sort(new TrackComparer());
       }
-      base.AddItemsToPlaylist(pl, clearPlaylist);
+      base.AddItemsToCurrentPlaylist(pl, clearPlaylist, addAllTracks);
     }
 
-    private void InsertSelectionToPlaylist()
+    /// <summary>
+    /// Add tracks to playlist without affecting what is playing
+    /// </summary>
+    protected override void AddSelectionToPlaylist()
     {
+      GUIListItem selectedItem = facadeLayout.SelectedListItem;
+
       List<PlayListItem> pl = new List<PlayListItem>();
-      AddFolderToPlaylist(facadeLayout.SelectedListItem, ref pl, false);
+      AddFolderToPlaylist(selectedItem, ref pl, false, false);
 
       // only apply further sort if a folder has been selected
       // if user has selected a track then add in order displayed
+      if (selectedItem.IsFolder)
+      {
+        pl.Sort(new TrackComparer());
+      }
+      base.AddItemsToPlaylist(pl);
+    }
+
+    private void InsertSelectionToPlaylist(bool addAllTracks)
+    {
+      List<PlayListItem> pl = new List<PlayListItem>();
+      AddFolderToPlaylist(facadeLayout.SelectedListItem, ref pl, false, addAllTracks);
+
+      // only apply further sort if a folder has been selected
+      // if user has selected a track then add in order displayed
       GUIListItem selectedItem = facadeLayout.SelectedListItem;
       if (selectedItem.IsFolder)
       {
@@ -1555,8 +1570,9 @@
     /// </summary>
     /// <param name="item">GUIListItem to be added to playlist</param>
     /// <param name="pl">Playlist to be added to</param>
-    /// <param name="playCd">Determines is whole CD playback has been requested</param>
-    private void AddFolderToPlaylist(GUIListItem item, ref List<PlayListItem> pl, bool playCD)
+    /// <param name="playCD">Determines is whole CD playback has been requested</param>
+    /// <param name="addAllTracks">Whether to add all tracks in folder</param>
+    private void AddFolderToPlaylist(GUIListItem item, ref List<PlayListItem> pl, bool playCD, bool addAllTracks)
     {
       if (item.Label == "..")
       {
@@ -1570,13 +1586,13 @@
         GetTagInfo(ref subFolders);
         foreach (GUIListItem subItem in subFolders)
         {
-          AddFolderToPlaylist(subItem, ref pl, playCD);
+          AddFolderToPlaylist(subItem, ref pl, playCD, addAllTracks);
         }
       }
       else
       {
         // add tracks
-        if (PlayAllOnSingleItemPlayNow)
+        if (addAllTracks)
         {
           GUIListItem selectedItem = null;
           if (facadeLayout != null)
@@ -1703,11 +1719,11 @@
         GUIListItem item = new GUIListItem("CD_ROOT_FOLDER");
         item.IsFolder = true;
         item.Path = strDrive;
-        AddFolderToPlaylist(item, ref pl, true);
+        AddFolderToPlaylist(item, ref pl, true, true);
 
         pl.Sort(new TrackComparer());
 
-        base.AddItemsToPlaylist(pl, true);
+        base.AddItemsToCurrentPlaylist(pl, true, true);
       }
     }
 
Index: WindowPlugins/GUIMusic/GUIMusicGenres.cs
===================================================================
--- WindowPlugins/GUIMusic/GUIMusicGenres.cs	(revision 27942)
+++ WindowPlugins/GUIMusic/GUIMusicGenres.cs	(working copy)
@@ -138,7 +138,7 @@
         if (GetFocusControlId() == facadeLayout.GetID)
         {
           // only start something is facade is focused
-          AddSelectionToPlaylist(true);
+          AddSelectionToCurrentPlaylist(true, false);
         }
       }
     }
@@ -630,12 +630,11 @@
         // we have selected an item at the bottom level of the view
         // so play what is selected
         bool clearPlaylist = false;
-        if (MusicState.CurrentPlayMode == MusicState.PlayMode.PLAY_MODE)
+        if (_selectOption == "play" || !g_Player.Playing || !g_Player.IsMusic)
         {
-          // if in play mode then clear playlist
           clearPlaylist = true;
         }
-        AddSelectionToPlaylist(clearPlaylist);
+        AddSelectionToCurrentPlaylist(clearPlaylist, _addAllOnSelect);
       }
     }
 
@@ -643,10 +642,6 @@
     {
       GUIListItem item = facadeLayout.SelectedListItem;
 
-      // when handling add to playlist items we need to override the
-      // play all setting to use this to enable us to reset it
-      bool existingPlayAll;
-
       if (item == null)
       {
         return;
@@ -662,16 +657,20 @@
       dlg.Reset();
       dlg.SetHeading(498); // menu
 
-      dlg.AddLocalizedString(926); // Add to playlist
-      if (!item.IsFolder)
-      {
-        dlg.AddLocalizedString(4557); // Add all to playlist
-      }
       dlg.AddLocalizedString(4552); // Play now
       if (g_Player.Playing && g_Player.IsMusic)
       {
         dlg.AddLocalizedString(4551); // Play next
       }
+      dlg.AddLocalizedString(1225); // queue items
+      if (!item.IsFolder)
+      {
+        dlg.AddLocalizedString(1226); // queue all items
+      }
+      if (!_playlistIsCurrent)
+      {
+        dlg.AddLocalizedString(926); // add to playlist
+      }
       dlg.AddLocalizedString(4521); // Show Album Info
       dlg.AddLocalizedString(4553); // Show playlist
 
@@ -701,27 +700,25 @@
           break;
 
         case 4552: // Play now (clear playlist, play, and jump to Now playing)
-          AddSelectionToPlaylist(true);
+          AddSelectionToCurrentPlaylist(true, false);
           break;
 
         case 4551: // Play next (insert after current song)
-          InsertSelectionToPlaylist();
+          InsertSelectionToPlaylist(false);
           break;
 
-        case 926: // add to playlist (add to end of playlist)
-          existingPlayAll = PlayAllOnSingleItemPlayNow;
-          PlayAllOnSingleItemPlayNow = false;
-          AddSelectionToPlaylist(false);
-          PlayAllOnSingleItemPlayNow = existingPlayAll;
+        case 1225: // queue item at end of current playlist
+          AddSelectionToCurrentPlaylist(false, false);
           break;
 
-        case 4557: // add all items in current list to end of playlist
-          existingPlayAll = PlayAllOnSingleItemPlayNow;
-          PlayAllOnSingleItemPlayNow = true;
-          AddSelectionToPlaylist(false);
-          PlayAllOnSingleItemPlayNow = existingPlayAll;
+        case 1226: // queue all items at end of current playlist
+          AddSelectionToCurrentPlaylist(false, true);
           break;
 
+        case 926:  // add to playlist
+          AddSelectionToPlaylist();
+          break;
+
           //case 136: // show playlist
         case 4553: // show playlist
           GUIWindowManager.ActivateWindow((int)Window.WINDOW_MUSIC_PLAYLIST);
@@ -1086,9 +1083,10 @@
     /// what tracks need to be added to the playlist
     /// </summary>
     /// <param name="clearPlaylist">If True then current playlist will be cleared</param>
-    protected override void AddSelectionToPlaylist(bool clearPlaylist)
+    /// <param name="addAllTracks">Whether to add all tracks in the current folder</param>
+    protected override void AddSelectionToCurrentPlaylist(bool clearPlaylist, bool addAllTracks)
     {
-      List<Song> songs = GetSongsForSelection();
+      List<Song> songs = GetSongsForSelection(addAllTracks);
       List<PlayListItem> pl = ConvertSongsToPlaylist(songs);
 
       // only apply further sort if a folder has been selected
@@ -1098,16 +1096,35 @@
       {
         pl.Sort(new TrackComparer());
       }
-      base.AddItemsToPlaylist(pl, clearPlaylist);
+      base.AddItemsToCurrentPlaylist(pl, clearPlaylist, addAllTracks);
     }
 
     /// <summary>
+    /// Add songs to playlist without affecting what is playing
+    /// </summary>
+    protected override void AddSelectionToPlaylist()
+    {
+      List<Song> songs = GetSongsForSelection(false);
+      List<PlayListItem> pl = ConvertSongsToPlaylist(songs);
+
+      // only apply further sort if a folder has been selected
+      // if user has selected a track then add in order displayed
+      GUIListItem selectedItem = facadeLayout.SelectedListItem;
+      if (selectedItem.IsFolder)
+      {
+        pl.Sort(new TrackComparer());
+      }
+      base.AddItemsToPlaylist(pl);
+    }
+
+    /// <summary>
     /// Inserts the songs for selected GUIListItem and determines
     /// what tracks need to be inserted into the playlist
     /// </summary>
-    private void InsertSelectionToPlaylist()
+    /// <param name="addAllTracks">Whether to insert all tracks in folder</param>
+    private void InsertSelectionToPlaylist(bool addAllTracks)
     {
-      List<Song> songs = GetSongsForSelection();
+      List<Song> songs = GetSongsForSelection(addAllTracks);
       List<PlayListItem> pl = ConvertSongsToPlaylist(songs);
 
       // only apply further sort if a folder has been selected
@@ -1124,7 +1141,8 @@
     /// Return a list of songs for the current selected item
     /// </summary>
     /// <returns>A list of songs</returns>
-    private List<Song> GetSongsForSelection()
+    /// <param name="addAllTracks">Whether to add all tracks</param>
+    private List<Song> GetSongsForSelection(bool addAllTracks)
     {
       List<Song> songs = new List<Song>();
       GUIListItem pItem;
@@ -1142,7 +1160,7 @@
         // normally we will only add the selected track but
         int itemsToAdd = 1;
 
-        if (PlayAllOnSingleItemPlayNow)
+        if (addAllTracks)
         {
           // PlayAllOnSingleItemPlayNow allows for whole folder to be added so loop over all items
           itemsToAdd = facadeLayout.Count;
Index: WindowPlugins/GUIMusic/GUIMusicPlayingNow.cs
===================================================================
--- WindowPlugins/GUIMusic/GUIMusicPlayingNow.cs	(revision 27942)
+++ WindowPlugins/GUIMusic/GUIMusicPlayingNow.cs	(working copy)
@@ -1377,42 +1377,22 @@
     {
       try
       {
-        PlayList currentPlaylist = PlaylistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC);
-        if (currentPlaylist.Count > 0)
-        {
-          MusicDatabase mdb = MusicDatabase.Instance;
-          Song addSong = new Song();
-          MusicTag tempTag = new MusicTag();
-          tempTag = (MusicTag)chosenTrack_.MusicTag;
+        MusicDatabase mdb = MusicDatabase.Instance;
+        Song addSong = new Song();
+        MusicTag tempTag = new MusicTag();
+        tempTag = (MusicTag)chosenTrack_.MusicTag;
 
-          if (mdb.GetSongByMusicTagInfo(tempTag.Artist, tempTag.Album, tempTag.Title, true, ref addSong))
+        if (mdb.GetSongByMusicTagInfo(tempTag.Artist, tempTag.Album, tempTag.Title, true, ref addSong))
+        {
+          if (AddSongToPlaylist(ref addSong, _enqueueDefault))
           {
-            if (AddSongToPlaylist(ref addSong, _enqueueDefault))
-            {
-              Log.Info("GUIMusicPlayingNow: Song inserted: {0} - {1}", addSong.Artist, addSong.Title);
-            }
+            Log.Info("GUIMusicPlayingNow: Song inserted: {0} - {1}", addSong.Artist, addSong.Title);
           }
-          else
-          {
-            Log.Info("GUIMusicPlayingNow: DB lookup for Artist: {0} Title: {1} unsuccessful", tempTag.Artist,
-                     tempTag.Title);
-          }
         }
         else
-          // not using playlists here...
         {
-          Log.Warn("GUIMusicPlayingNow: You have to use a playlist to add songs to it - Press PLAY on a song or folder!");
-          GUIDialogOK dlg = (GUIDialogOK)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_OK);
-          if (dlg == null)
-          {
-            return;
-          }
-          //dlg. Reset();
-          dlg.SetHeading(502); // Unable to complete action
-          dlg.SetLine(2, 33008); // There is no playlist active 
-          dlg.SetLine(3, 33009); // to insert or add the track!
-
-          dlg.DoModal(GetID);
+          Log.Info("GUIMusicPlayingNow: DB lookup for Artist: {0} Title: {1} unsuccessful", tempTag.Artist,
+                   tempTag.Title);
         }
       }
       catch (Exception ex)
@@ -1943,7 +1923,16 @@
     /// <returns>if the action was successful</returns>
     private bool AddSongToPlaylist(ref Song song, bool enqueueNext_)
     {
-      PlayList playlist = PlaylistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC);
+      PlayList playlist;
+      if (PlaylistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_MUSIC_TEMP)
+      {
+        playlist = PlaylistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC_TEMP);
+      }
+      else
+      {
+        playlist = PlaylistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC);
+      }
+      
       if (playlist == null)
       {
         return false;
@@ -1967,11 +1956,11 @@
 
       if (enqueueNext_)
       {
-        PlaylistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC).Insert(playlistItem, PlaylistPlayer.CurrentSong);
+        playlist.Insert(playlistItem, PlaylistPlayer.CurrentSong);
       }
       else
       {
-        PlaylistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC).Add(playlistItem);
+        playlist.Add(playlistItem);
       }
 
       OnSongInserted();
Index: WindowPlugins/GUIMusic/GUIMusicPlaylist.cs
===================================================================
--- WindowPlugins/GUIMusic/GUIMusicPlaylist.cs	(revision 27942)
+++ WindowPlugins/GUIMusic/GUIMusicPlaylist.cs	(working copy)
@@ -166,7 +166,7 @@
       {
           Log.Info("Playlist: Saving default playlist {0}", _defaultPlaylist);
           IPlayListIO saver = new PlayListM3uIO();
-          PlayList playlist = playlistPlayer.GetPlaylist(GetPlayListType());
+          PlayList playlist = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC);
           PlayList playlistTmp = new PlayList();
           // Sort out Playlist Items residing on a CD, as they are gonna most likely to change
           foreach (PlayListItem item in playlist)
@@ -227,9 +227,9 @@
           {
             if (GetFocusControlId() == facadeLayout.GetID)
             {
-              if (playlistPlayer.CurrentPlaylistType != GetPlayListType())
+              if (playlistPlayer.CurrentPlaylistType != PlayListType.PLAYLIST_MUSIC)
               {
-                playlistPlayer.CurrentPlaylistType = GetPlayListType();
+                playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC;
               }
 
               playlistPlayer.Play(facadeLayout.SelectedListItemIndex);
@@ -276,13 +276,13 @@
                || action.wID == Action.ActionType.ACTION_PREV_ITEM
         )
       {
-        if (playlistPlayer.CurrentPlaylistType != GetPlayListType())
+        if (playlistPlayer.CurrentPlaylistType != PlayListType.PLAYLIST_MUSIC)
         {
-          playlistPlayer.CurrentPlaylistType = GetPlayListType();
+          playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC;
 
           if (string.IsNullOrEmpty(g_Player.CurrentFile))
           {
-            PlayList playList = playlistPlayer.GetPlaylist(GetPlayListType());
+            PlayList playList = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC);
 
             if (playList != null && playList.Count > 0)
             {
@@ -612,7 +612,7 @@
       }
 
       string strPath = item.Path;
-      playlistPlayer.CurrentPlaylistType = GetPlayListType();
+      playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC;
       playlistPlayer.Reset();
       playlistPlayer.Play(iItem);
       SelectCurrentPlayingSong();
@@ -650,14 +650,14 @@
 
           //special case for when the next button is pressed - stopping the prev song does not cause a Playback_Ended event
         case GUIMessage.MessageType.GUI_MSG_PLAYBACK_STARTED:
-          if (playlistPlayer.CurrentPlaylistType == GetPlayListType() && playlistPlayer.CurrentSong != 0)
+          if (playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_MUSIC && playlistPlayer.CurrentSong != 0)
           {
             //
           }
           break;
           // delaying internet lookups for smooth playback start
         case GUIMessage.MessageType.GUI_MSG_PLAYING_10SEC:
-          if (playlistPlayer.CurrentPlaylistType == GetPlayListType() && ScrobblerOn && _enableScrobbling)
+          if (playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_MUSIC && ScrobblerOn && _enableScrobbling)
             // && playlistPlayer.CurrentSong != 0)
           {
             DoScrobbleLookups();
@@ -669,8 +669,7 @@
     private void LoadFacade()
     {
       TimeSpan totalPlayingTime = new TimeSpan();
-      PlayList pl = playlistPlayer.GetPlaylist(GetPlayListType());
-      playlistPlayer.CurrentPlaylistType = GetPlayListType();
+      PlayList pl = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC);
 
       if (facadeLayout != null)
       {
@@ -758,7 +757,7 @@
 
     private void SelectCurrentPlayingSong()
     {
-      if (g_Player.Playing && playlistPlayer.CurrentPlaylistType == GetPlayListType())
+      if (g_Player.Playing && playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_MUSIC)
       {
         if (GUIWindowManager.ActiveWindow == (int)Window.WINDOW_MUSIC_PLAYLIST)
         {
@@ -835,8 +834,8 @@
     private void ClearPlayList()
     {
       ClearFileItems();
-      playlistPlayer.GetPlaylist(GetPlayListType()).Clear();
-      if (playlistPlayer.CurrentPlaylistType == GetPlayListType())
+      playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC).Clear();
+      if (playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_MUSIC)
       {
         playlistPlayer.Reset();
       }
@@ -861,7 +860,7 @@
       }
       string strFileName = pItem.Path;
 
-      playlistPlayer.Remove(GetPlayListType(), strFileName);
+      playlistPlayer.Remove(PlayListType.PLAYLIST_MUSIC, strFileName);
 
       LoadFacade();
       UpdateButtonStates();
@@ -872,7 +871,7 @@
     private void ShufflePlayList()
     {
       ClearFileItems();
-      PlayList playlist = playlistPlayer.GetPlaylist(GetPlayListType());
+      PlayList playlist = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC);
 
       if (playlist.Count <= 0)
       {
@@ -881,14 +880,14 @@
       string strFileName = string.Empty;
       if (playlistPlayer.CurrentSong >= 0)
       {
-        if (g_Player.Playing && playlistPlayer.CurrentPlaylistType == GetPlayListType())
+        if (g_Player.Playing && playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_MUSIC)
         {
           PlayListItem item = playlist[playlistPlayer.CurrentSong];
           strFileName = item.FileName;
         }
       }
       playlist.Shuffle();
-      if (playlistPlayer.CurrentPlaylistType == GetPlayListType())
+      if (playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_MUSIC)
       {
         playlistPlayer.Reset();
       }
@@ -951,10 +950,10 @@
     {
       if (playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_NONE)
       {
-        playlistPlayer.CurrentPlaylistType = GetPlayListType();
+        playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC;
       }
 
-      if (playlistPlayer.CurrentPlaylistType != GetPlayListType()
+      if (playlistPlayer.CurrentPlaylistType != PlayListType.PLAYLIST_MUSIC
           || facadeLayout.CurrentLayout != GUIFacadeControl.Layout.Playlist
           || facadeLayout.PlayListLayout == null)
       {
@@ -963,7 +962,7 @@
 
       int iItem = facadeLayout.SelectedListItemIndex;
 
-      PlayList playList = playlistPlayer.GetPlaylist(GetPlayListType());
+      PlayList playList = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC);
       playList.MovePlayListItemUp(iItem);
       int selectedIndex = facadeLayout.MoveItemUp(iItem, true);
 
@@ -980,10 +979,10 @@
     {
       if (playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_NONE)
       {
-        playlistPlayer.CurrentPlaylistType = GetPlayListType();
+        playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC;
       }
 
-      if (playlistPlayer.CurrentPlaylistType != GetPlayListType()
+      if (playlistPlayer.CurrentPlaylistType != PlayListType.PLAYLIST_MUSIC
           || facadeLayout.CurrentLayout != Layout.Playlist
           || facadeLayout.PlayListLayout == null)
       {
@@ -991,7 +990,7 @@
       }
 
       int iItem = facadeLayout.SelectedListItemIndex;
-      PlayList playList = playlistPlayer.GetPlaylist(GetPlayListType());
+      PlayList playList = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC);
 
       playList.MovePlayListItemDown(iItem);
       int selectedIndex = facadeLayout.MoveItemDown(iItem, true);
@@ -1008,10 +1007,10 @@
     {
       if (playlistPlayer.CurrentPlaylistType == PlayListType.PLAYLIST_NONE)
       {
-        playlistPlayer.CurrentPlaylistType = GetPlayListType();
+        playlistPlayer.CurrentPlaylistType = PlayListType.PLAYLIST_MUSIC;
       }
 
-      if (playlistPlayer.CurrentPlaylistType != GetPlayListType()
+      if (playlistPlayer.CurrentPlaylistType != PlayListType.PLAYLIST_MUSIC
           || facadeLayout.CurrentLayout != Layout.Playlist
           || facadeLayout.PlayListLayout == null)
       {
@@ -1130,7 +1129,7 @@
     {
       if (ScrobblerOn)
       {
-        PlayList playList = playlistPlayer.GetPlaylist(GetPlayListType());
+        PlayList playList = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC);
 
         if (playList != null)
         {
@@ -1211,7 +1210,7 @@
 
     private void DoScrobbleLookups()
     {
-      PlayList currentPlaylist = playlistPlayer.GetPlaylist(GetPlayListType());
+      PlayList currentPlaylist = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC);
 
       MusicDatabase dbs = MusicDatabase.Instance;
       Song current10SekSong = new Song();
@@ -1432,7 +1431,7 @@
     private bool ScrobbleSimilarArtists(string Artist_)
     {
       MusicDatabase dbs = MusicDatabase.Instance;
-      PlayList list = playlistPlayer.GetPlaylist(GetPlayListType());
+      PlayList list = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC);
       List<Song> songList = new List<Song>();
       double avgPlayCount = 0;
       int songsAdded = 0;
@@ -1586,7 +1585,7 @@
     private bool AddRandomSongToPlaylist(ref Song song)
     {
       //check duplication
-      PlayList playlist = playlistPlayer.GetPlaylist(GetPlayListType());
+      PlayList playlist = playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC);
       for (int i = 0; i < playlist.Count; i++)
       {
         PlayListItem item = playlist[i];
@@ -1615,7 +1614,7 @@
 
       playlistItem.MusicTag = tag;
 
-      playlistPlayer.GetPlaylist(GetPlayListType()).Add(playlistItem);
+      playlistPlayer.GetPlaylist(PlayListType.PLAYLIST_MUSIC).Add(playlistItem);
       return true;
     }
 
Index: WindowPlugins/GUIMusic/MusicState.cs
===================================================================
--- WindowPlugins/GUIMusic/MusicState.cs	(revision 27942)
+++ WindowPlugins/GUIMusic/MusicState.cs	(working copy)
@@ -28,31 +28,11 @@
   /// </summary>
   public class MusicState : StateBase
   {
-    private static PlayMode m_playMode = PlayMode.PLAY_MODE;
 
     static MusicState()
     {
       m_iStartWindow = (int)GUIWindow.Window.WINDOW_MUSIC_FILES;
     }
 
-    public enum PlayMode
-    {
-      PLAY_MODE,
-      PLAYLIST_MODE,
-    }
-
-    /// <summary>
-    /// This property controls how pressing enter/ok are handled 
-    /// when viewing music tracks
-    /// in PLAY_MODE enter/ok will do the same as play (clear playlist
-    /// then start selected track)
-    /// in PLAYLIST_MODE enter/ok will add the selected track to the 
-    /// current playlist
-    /// </summary>    
-    public static PlayMode CurrentPlayMode
-    {
-      get { return m_playMode; }
-      set { m_playMode = value; }
-    }
   }
 }
\ No newline at end of file
