Index: Core/guilib/Action.cs
===================================================================
--- Core/guilib/Action.cs	(revision 26558)
+++ Core/guilib/Action.cs	(working copy)
@@ -181,6 +181,8 @@
       ACTION_MOUSE_DOUBLECLICK = 2002,
       ACTION_PREV_BOOKMARK = 140,
       ACTION_NEXT_BOOKMARK = 141,
+      ACTION_LASTFM_LOVE = 800,
+      ACTION_LASTFM_BAN = 801,
       ACTION_REMOTE_RED_BUTTON = 9975,
       ACTION_REMOTE_GREEN_BUTTON = 9976,
       ACTION_REMOTE_YELLOW_BUTTON = 9977,
Index: Core/guilib/GUIWindow.cs
===================================================================
--- Core/guilib/GUIWindow.cs	(revision 26558)
+++ Core/guilib/GUIWindow.cs	(working copy)
@@ -109,6 +109,7 @@
       WINDOW_MUSIC_COVERART_GRABBER_PROGRESS = 509,
       WINDOW_MUSIC_PLAYING_NOW = 510,
       WINDOW_FULLSCREEN_MUSIC = 511, //SV Added by SteveV 2006-09-07
+      WINDOW_DIALOG_LASTFM = 512,
       WINDOW_TVGUIDE = 600,
       WINDOW_SCHEDULER = 601,
       WINDOW_TVFULLSCREEN = 602,
Index: Dialogs/Dialogs.csproj
===================================================================
--- Dialogs/Dialogs.csproj	(revision 26558)
+++ Dialogs/Dialogs.csproj	(working copy)
@@ -145,6 +145,7 @@
     <Compile Include="Dialogs\GUIDialogMenu.cs">
       <SubType>Code</SubType>
     </Compile>
+    <Compile Include="Dialogs\GUIDialogNotifyLastFM.cs" />
     <Compile Include="Dialogs\GUIDialogPlayStop.cs" />
     <Compile Include="Dialogs\GUIDialogDateTime.cs">
       <SubType>Code</SubType>
Index: MediaPortal.Base/keymap.xml
===================================================================
--- MediaPortal.Base/keymap.xml	(revision 26558)
+++ MediaPortal.Base/keymap.xml	(working copy)
@@ -200,7 +200,7 @@
       <sound>click.wav</sound>
       <description>volume up</description>
     </action>
-	<action>
+    <action>
       <id>103</id>
       <key>+</key>
       <sound>click.wav</sound>
@@ -1335,4 +1335,20 @@
       <description>BlueButton</description>
     </action>
   </window>
+  <window>
+    <id>510</id>
+    <description>My Music Now Playing</description>
+    <action>
+      <id>800</id>
+      <key>L</key>
+      <sound />
+      <description>LastFM Love</description>
+    </action>
+    <action>
+      <id>801</id>
+      <key>K</key>
+      <sound />
+      <description>LastFM Ban</description>
+    </action>
+  </window>
 </keymap>
\ No newline at end of file
Index: RemotePlugins/InputMapper/InputMappingForm.cs
===================================================================
--- RemotePlugins/InputMapper/InputMappingForm.cs	(revision 26558)
+++ RemotePlugins/InputMapper/InputMappingForm.cs	(working copy)
@@ -218,6 +218,7 @@
             case (int)GUIWindow.Window.WINDOW_DIALOG_TVGUIDE:
             case (int)GUIWindow.Window.WINDOW_DIALOG_YES_NO:
             case (int)GUIWindow.Window.WINDOW_DIALOG_PLAY_STOP:
+            case (int)GUIWindow.Window.WINDOW_DIALOG_LASTFM:
             case (int)GUIWindow.Window.WINDOW_INVALID:
             case (int)GUIWindow.Window.WINDOW_MINI_GUIDE:
             case (int)GUIWindow.Window.WINDOW_TV_CROP_SETTINGS:
Index: WindowPlugins/GUIMusic/GUIMusicPlayingNow.cs
===================================================================
--- WindowPlugins/GUIMusic/GUIMusicPlayingNow.cs	(revision 26558)
+++ WindowPlugins/GUIMusic/GUIMusicPlayingNow.cs	(working copy)
@@ -83,6 +83,9 @@
 
       BEST_TAG_TRACKS = 28,
       BEST_ALBUM_TRACKS = 29,
+      
+      BTN_LASTFM_LOVE = 30,
+      BTN_LASTFM_BAN = 31,
 
       LIST_TAG_INFO = 155,
       LIST_ALBUM_INFO = 166,
@@ -149,6 +152,8 @@
     [SkinControl((int)ControlIDs.VUMETER_LEFT)] protected GUIImage VUMeterLeft = null;
     [SkinControl((int)ControlIDs.VUMETER_RIGHT)] protected GUIImage VUMeterRight = null;
     [SkinControl((int)ControlIDs.LBL_FORCE_FOCUS)] protected GUILabelControl lblForceFocus = null;
+    [SkinControl((int)ControlIDs.BTN_LASTFM_LOVE)] protected GUIButtonControl btnLastFMLove = null;
+    [SkinControl((int)ControlIDs.BTN_LASTFM_BAN)] protected GUIButtonControl btnLastFMBan = null;
 
     #endregion
 
@@ -193,6 +198,7 @@
     private bool _doArtistLookups = true;
     private bool _doAlbumLookups = true;
     private bool _doTrackTagLookups = true;
+    private bool _audioscrobblerEnabled = false;
     private bool _usingBassEngine = false;
     private bool _showVisualization = false;
     private bool _enqueueDefault = true;
@@ -237,6 +243,18 @@
         _doTrackTagLookups = xmlreader.GetValueAsBool("musicmisc", "fetchlastfmtracktags", true);
         _enqueueDefault = xmlreader.GetValueAsBool("musicmisc", "enqueuenext", true);
         _vuMeter = xmlreader.GetValueAsString("musicmisc", "vumeter", "none");
+        
+                
+        _audioscrobblerEnabled = xmlreader.GetValueAsBool("plugins","Audioscrobbler",false);
+        
+        if (btnLastFMLove != null)
+        {
+          btnLastFMLove.Label = GUILocalizeStrings.Get(34010); // love
+        }
+        if (btnLastFMBan != null)
+        {
+          btnLastFMBan.Label = GUILocalizeStrings.Get(34011); // ban
+        }
 
         if (ShowViz && VizName != "None")
         {
@@ -485,6 +503,14 @@
               //  break;
           }
           break;
+          
+        case Action.ActionType.ACTION_LASTFM_LOVE:
+          doLastFMLove();
+          break;
+
+        case Action.ActionType.ACTION_LASTFM_BAN:
+          doLastFMBan();
+          break;          
       }
     }
 
@@ -669,6 +695,18 @@
         UpdateTrackInfo();
       }
     }
+    
+    protected override void OnClicked(int controlId, GUIControl control, Action.ActionType actionType)
+    {
+      if(control == btnLastFMLove)
+      {
+        doLastFMLove();
+      }
+      if(control == btnLastFMBan)
+      {
+        doLastFMBan();
+      }
+    }    
 
     protected override void OnShowContextMenu()
     {
@@ -702,6 +740,12 @@
       {
         dlg.AddLocalizedString(33040); // copy IRC spam
       }
+      
+      if (_audioscrobblerEnabled)
+      {
+        dlg.AddLocalizedString(34010); // love
+        dlg.AddLocalizedString(34011); // ban
+      }
 
       dlg.DoModal(GetID);
 
@@ -835,6 +879,13 @@
                       ex.Message);
           }
           break;
+
+        case 34010: //love 
+          doLastFMLove();
+          break;
+        case 34011: //ban
+          doLastFMBan();
+          break;
       }
     }
 
@@ -2242,6 +2293,34 @@
         Log.Warn("GUIMusicPlayingNow: Could not toggle rating stars - {0}", ex.Message);
       }
     }
+    
+    private void doLastFMLove()
+    {
+      if (_audioscrobblerEnabled)
+      {
+        AudioscrobblerBase.DoLoveTrackNow();
+        GUIDialogNotifyLastFM dlgNotifyLastFM = (GUIDialogNotifyLastFM)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_NOTIFY);
+        dlgNotifyLastFM.SetHeading(GUILocalizeStrings.Get(34000)); // last.FM
+        string dlgText = GUILocalizeStrings.Get(34010)+" : " + AudioscrobblerBase.CurrentPlayingSong.Title;
+        dlgNotifyLastFM.SetText(dlgText);
+        dlgNotifyLastFM.TimeOut = 2;
+        dlgNotifyLastFM.DoModal(GetID);
+      }
+    }
+    
+    private void doLastFMBan()
+    {
+      if (_audioscrobblerEnabled)
+      {
+        AudioscrobblerBase.DoBanTrackNow();
+        GUIDialogNotifyLastFM dlgNotifyLastFM = (GUIDialogNotifyLastFM)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_NOTIFY);
+        dlgNotifyLastFM.SetHeading(GUILocalizeStrings.Get(34000)); // last.FM
+        string dlgText = GUILocalizeStrings.Get(34011)+" : " + AudioscrobblerBase.CurrentPlayingSong.Title;
+        dlgNotifyLastFM.SetText(dlgText);
+        dlgNotifyLastFM.TimeOut = 2;
+        dlgNotifyLastFM.DoModal(GetID);
+      }
+    }    
 
     #endregion
   }
