diff --git a/addon.xml b/addon.xml
index c2cf51553cb019268847e25692828398fa8b6a28..4ebd63b09e8128d71454c6740d62897d50a87380 100644
--- a/addon.xml
+++ b/addon.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <addon id="script.spotify.screensaver"
     name="Spotify Screensaver"
-    version="0.0.12"
+    version="0.0.13"
     provider-name="Benoît Harrault">
     <requires>
         <import addon="xbmc.python" version="2.25.0"/>
diff --git a/gui.py b/gui.py
index ca0fc98a1f8732b81227bf5341823ee2fecc8e62..1960744541726e19960af083f0dd797dfb700667 100644
--- a/gui.py
+++ b/gui.py
@@ -154,7 +154,7 @@ class GUI(xbmcgui.WindowXMLDialog):
         self.log('load images for track: ' + track_id)
         self.PanelItems = self.getControl(101)
         self.PanelItems.reset()
-        self.PanelItems.addItems(self._get_track_data(track_id))
+        self.PanelItems.addItems(self._build_items_list(track_id))
 
     def _remove_images(self):
         self.log('no played track. remove images')
@@ -165,7 +165,7 @@ class GUI(xbmcgui.WindowXMLDialog):
         self.log('track_id: [' + str(track_id) + ']')
         self.log('(try: ' + str(try_count) + ')')
 
-        imageLST = []
+        track_data = {}
 
         headers = {
             'Authorization': 'Bearer {token}'.format(
@@ -180,7 +180,7 @@ class GUI(xbmcgui.WindowXMLDialog):
             )
             data = response.json()
 
-            track_name = data.get('name', '')
+            track_data['track_name'] = data.get('name', '')
 
             # album/track image
             album = data.get('album')
@@ -212,20 +212,38 @@ class GUI(xbmcgui.WindowXMLDialog):
                     else:
                         self.log('ok got image from API')
                         self.log(json.dumps(image))
-                        image_url = image.get('url')
-                        if image_url is None:
-                            self.log('failed to get image_url from API', xbmc.LOGERROR)
+                        track_image_url = image.get('url')
+                        if track_image_url is None:
+                            self.log(
+                                'failed to get track_image_url from API',
+                                xbmc.LOGERROR)
                             self.log(json.dumps(image), xbmc.LOGERROR)
                         else:
-                            self.log('ok got image_url from API')
-                            self.log(image_url)
-                            imageLST.append(
-                                xbmcgui.ListItem(
-                                    track_name, thumbnailImage=image_url)
-                            )
+                            self.log('ok got track_image_url from API')
+                            self.log(track_image_url)
+                            track_data['track_image_url'] = track_image_url
         except Exception as e:
             self.log('failed to get track data ' + str(e), xbmc.LOGERROR)
 
+        return track_data
+
+    def _build_items_list(self, track_id):
+        imageLST = []
+
+        track_data = self._get_track_data(track_id)
+        track_name = track_data.get('track_name')
+        track_image_url = track_data.get('track_image_url')
+
+        if (track_name is None) or (track_image_url is None):
+            self.log('failed to get track data', xbmc.LOGERROR)
+        else:
+            imageLST.append(
+                xbmcgui.ListItem(
+                    track_name,
+                    thumbnailImage=track_image_url
+                )
+            )
+
         return imageLST
 
     def onFocus(self, controlId):