diff --git a/gajim/common/dbus/music_track.py b/gajim/common/dbus/music_track.py
index 87d68007562ea71315444e4fb0b675cc30cc0f21..d9b2d02915ca8f4d2d82649c066f99ba76717f03 100644
--- a/gajim/common/dbus/music_track.py
+++ b/gajim/common/dbus/music_track.py
@@ -93,9 +93,7 @@ def start(self):
                 self._add_player(name)
 
         for name in list(self.players):
-            info = self._get_playing_track(name)
-            if info is not None:
-                self._emit(info)
+            self._get_playing_track(name)
 
     def stop(self):
         for name in list(self.players):
@@ -154,10 +152,7 @@ def _signal_received(self,
         '''Signal handler for PropertiesChanged event'''
 
         log.info('Signal received: %s - %s', interface_name, parameters)
-
-        info = self._get_playing_track(user_data[0])
-
-        self._emit(info)
+        self._get_playing_track(user_data[0])
 
     @staticmethod
     def _get_music_info(properties):
@@ -189,18 +184,23 @@ def _get_playing_track(self, name):
             'org.freedesktop.DBus.Properties',
             None)
 
-        try:
-            result = proxy.call_sync(
-                "GetAll",
-                GLib.Variant('(s)', ('org.mpris.MediaPlayer2.Player',)),
-                Gio.DBusCallFlags.NONE,
-                -1,
-                None)
-        except GLib.Error as error:
-            log.debug("Could not enable music listener: %s", error.message)
-            return None
+        def proxy_call_finished(proxy, res):
+            try:
+                result = proxy.call_finish(res)
+            except GLib.Error as error:
+                log.debug("Could not enable music listener: %s", error.message)
+                return
+
+            info = self._get_music_info(result[0])
+            if info is not None:
+                self._emit(info)
 
-        return self._get_music_info(result[0])
+        proxy.call("GetAll",
+                   GLib.Variant('(s)', ('org.mpris.MediaPlayer2.Player',)),
+                   Gio.DBusCallFlags.NONE,
+                   -1,
+                   None,
+                   proxy_call_finished)
 
 
 def enable():