diff --git a/api/media_annotation.go b/api/media_annotation.go
index 7e9c92a0d..5e9deec2f 100644
--- a/api/media_annotation.go
+++ b/api/media_annotation.go
@@ -30,6 +30,13 @@ func (c *MediaAnnotationController) Scrobble() {
 			c.SendError(responses.ERROR_GENERIC, "Internal error")
 		}
 		beego.Info(fmt.Sprintf(`Scrobbled (%s) "%s" at %v`, id, mf.Title, time))
+	} else {
+		mf, err := c.scrobbler.NowPlaying(id)
+		if err != nil {
+			beego.Error("Error setting", id, "as current song:", err)
+			c.SendError(responses.ERROR_GENERIC, "Internal error")
+		}
+		beego.Info(fmt.Sprintf(`Current Song (%s) "%s" at %v`, id, mf.Title, time))
 	}
 
 	response := c.NewEmpty()
diff --git a/engine/mock_nowplaying_repo.go b/engine/mock_nowplaying_repo.go
index 290538bcb..ef1ce5b8b 100644
--- a/engine/mock_nowplaying_repo.go
+++ b/engine/mock_nowplaying_repo.go
@@ -6,7 +6,7 @@ import (
 )
 
 func CreateMockNowPlayingRepo() *MockNowPlaying {
-	return &MockNowPlaying{data: make(map[string]time.Time)}
+	return &MockNowPlaying{}
 }
 
 type MockNowPlaying struct {
@@ -20,7 +20,7 @@ func (m *MockNowPlaying) SetError(err bool) {
 	m.err = err
 }
 
-func (m *MockNowPlaying) Add(id string) error {
+func (m *MockNowPlaying) Set(id string) error {
 	if m.err {
 		return errors.New("Error!")
 	}
@@ -28,3 +28,7 @@ func (m *MockNowPlaying) Add(id string) error {
 	m.start = time.Now()
 	return nil
 }
+
+func (m *MockNowPlaying) Current() (string, time.Time) {
+	return m.id, m.start
+}
diff --git a/engine/nowplaying.go b/engine/nowplaying.go
index 65d7acb60..3c624b674 100644
--- a/engine/nowplaying.go
+++ b/engine/nowplaying.go
@@ -10,5 +10,5 @@ type NowPlayingInfo struct {
 }
 
 type NowPlayingRepository interface {
-	Add(trackId string) error
+	Set(trackId string) error
 }
diff --git a/engine/scrobbler.go b/engine/scrobbler.go
index feb240f6c..5474a2062 100644
--- a/engine/scrobbler.go
+++ b/engine/scrobbler.go
@@ -41,5 +41,14 @@ func (s *scrobbler) Register(id string, playDate time.Time) (*domain.MediaFile,
 }
 
 func (s *scrobbler) NowPlaying(id string) (*domain.MediaFile, error) {
-	return nil, errors.New("Not implemented")
+	mf, err := s.mfRepo.Get(id)
+	if err != nil {
+		return nil, err
+	}
+
+	if mf == nil {
+		return nil, errors.New(fmt.Sprintf(`Id "%s" not found`, id))
+	}
+
+	return mf, s.npRepo.Set(id)
 }
diff --git a/engine/scrobbler_test.go b/engine/scrobbler_test.go
index 48017efe4..ec4dd74e0 100644
--- a/engine/scrobbler_test.go
+++ b/engine/scrobbler_test.go
@@ -53,6 +53,29 @@ func TestScrobbler(t *testing.T) {
 			})
 		})
 
+		Convey("When I inform the song that is now playing", func() {
+			mf, err := scrobbler.NowPlaying("2")
+
+			Convey("Then I get the song for that id back", func() {
+				So(err, ShouldBeNil)
+				So(mf.Title, ShouldEqual, "Hands Of Time")
+			})
+
+			Convey("And it saves the song as the one current playing", func() {
+				id, start := npRepo.Current()
+				So(id, ShouldEqual, "2")
+				So(start, ShouldHappenBefore, time.Now())
+			})
+
+			Convey("And iTunes is not notified", func() {
+				So(itCtrl.played, ShouldNotContainKey, "2")
+			})
+		})
+
+		Reset(func() {
+			itCtrl.played = make(map[string]time.Time)
+		})
+
 	})
 
 }
diff --git a/persistence/nowplaying_repository.go b/persistence/nowplaying_repository.go
index 507539005..83d336216 100644
--- a/persistence/nowplaying_repository.go
+++ b/persistence/nowplaying_repository.go
@@ -22,7 +22,7 @@ func NewNowPlayingRepository() engine.NowPlayingRepository {
 	return r
 }
 
-func (r *nowPlayingRepository) Add(id string) error {
+func (r *nowPlayingRepository) Set(id string) error {
 	if id == "" {
 		return errors.New("Id is required")
 	}
@@ -32,12 +32,7 @@ func (r *nowPlayingRepository) Add(id string) error {
 	if err != nil {
 		return err
 	}
-	err = Db().Set(nowPlayingKeyName, []byte(h))
-	if err != nil {
-		return err
-	}
-	_, err = Db().Expire(nowPlayingKeyName, int64(engine.NowPlayingExpire.Seconds()))
-	return err
+	return Db().SetEX(nowPlayingKeyName, int64(engine.NowPlayingExpire.Seconds()), []byte(h))
 }
 
 var _ engine.NowPlayingRepository = (*nowPlayingRepository)(nil)