Index: Core/guilib/Action.cs
===================================================================
--- Core/guilib/Action.cs	(revision 26509)
+++ 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: MediaPortal.Base/keymap.xml
===================================================================
--- MediaPortal.Base/keymap.xml	(revision 26509)
+++ 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: WindowPlugins/GUIMusic/GUIMusicPlayingNow.cs
===================================================================
--- WindowPlugins/GUIMusic/GUIMusicPlayingNow.cs	(revision 26509)
+++ 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,
@@ -146,6 +149,8 @@
     [SkinControl((int)ControlIDs.IMGLIST_FAMOUS_TRACK3)] protected GUIImageList ImgListFamousTrack3 = null;
     [SkinControl((int)ControlIDs.VUMETER_LEFT)] protected GUIImage VUMeterLeft = null;
     [SkinControl((int)ControlIDs.VUMETER_RIGHT)] protected GUIImage VUMeterRight = 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 _usingBassEngine = false;
     private bool _showVisualization = false;
     private bool _enqueueDefault = true;
+    private bool _audioscrobblerEnabled = false;
     private object _imageMutex = null;
     private string _vuMeter = "none";
 
@@ -240,6 +246,17 @@
         _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")
         {
@@ -460,7 +477,15 @@
           UpdateTagInfo();
           FlipPictures();
           break;
+          
+        case Action.ActionType.ACTION_LASTFM_LOVE:
+          doLastFMLove();
+          break;
 
+        case Action.ActionType.ACTION_LASTFM_BAN:
+          doLastFMBan();
+          break;          
+
         case Action.ActionType.ACTION_KEY_PRESSED:
           switch (action.m_key.KeyChar)
           {
@@ -647,6 +672,18 @@
 
       base.OnPageDestroy(new_windowId);
     }
+    
+    protected override void OnClicked(int controlId, GUIControl control, Action.ActionType actionType)
+    {
+      if(control == btnLastFMLove)
+      {
+        doLastFMLove();
+      }
+      if(control == btnLastFMBan)
+      {
+        doLastFMBan();
+      }
+    }
 
     public override void Render(float timePassed)
     {
@@ -698,6 +735,12 @@
       {
         dlg.AddLocalizedString(33040); // copy IRC spam
       }
+      
+      if (_audioscrobblerEnabled)
+      {
+        dlg.AddLocalizedString(34010); // love
+        dlg.AddLocalizedString(34011); // ban
+      }
 
       dlg.DoModal(GetID);
 
@@ -831,7 +874,12 @@
                       ex.Message);
           }
           break;
-      }
+        case 34010: //love
+          doLastFMLove();
+          break;
+        case 34011: //ban
+          doLastFMBan();
+          break;      }
     }
 
     #endregion
@@ -2225,6 +2273,35 @@
         Log.Warn("GUIMusicPlayingNow: Could not toggle rating stars - {0}", ex.Message);
       }
     }
+    
+    private void doLastFMLove()
+    {
+      if (_audioscrobblerEnabled)
+      {
+        AudioscrobblerBase.DoLoveTrackNow();
+      }
+      GUIDialogNotify dlgNotify = (GUIDialogNotify)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_NOTIFY);
+      dlgNotify.SetHeading(GUILocalizeStrings.Get(34000)); // last.FM
+      string dlgText = GUILocalizeStrings.Get(34010)+" : " + AudioscrobblerBase.CurrentPlayingSong.Title;
+      dlgNotify.SetText(dlgText);
+      dlgNotify.TimeOut = 2;
+      dlgNotify.DoModal(GetID);
+      
+    }
+    
+    private void doLastFMBan()
+    {
+      if (_audioscrobblerEnabled)
+      {
+        AudioscrobblerBase.DoBanTrackNow();
+      }
+      GUIDialogNotify dlgNotify = (GUIDialogNotify)GUIWindowManager.GetWindow((int)Window.WINDOW_DIALOG_NOTIFY);
+      dlgNotify.SetHeading(GUILocalizeStrings.Get(34000)); // last.FM
+      string dlgText = GUILocalizeStrings.Get(34011)+" : " + AudioscrobblerBase.CurrentPlayingSong.Title;
+      dlgNotify.SetText(dlgText);
+      dlgNotify.TimeOut = 2;
+      dlgNotify.DoModal(GetID);
+    }
 
     #endregion
   }
