diff --git a/src/lua-factory/sources/grl-lastfm-cover.lua b/src/lua-factory/sources/grl-lastfm-cover.lua
index fe24fde..14b46da 100644
--- a/src/lua-factory/sources/grl-lastfm-cover.lua
+++ b/src/lua-factory/sources/grl-lastfm-cover.lua
@@ -78,10 +78,24 @@ function fetch_page_cb(result, userdata)
   end
 
   userdata.media.thumbnail = {}
-  for k, v in string.gmatch(result, '<image size="(.-)">(.-)</image>') do
-    grl.debug ('Image size ' .. k .. ' = ' .. v)
-    table.insert(userdata.media.thumbnail, v)
+  local image_sizes = { "mega", "extralarge", "large", "medium", "small" }
+
+  for _, size in pairs(image_sizes) do
+    local url
+
+    url = string.match(result, '<image size="' .. size .. '">(.-)</image>')
+
+    if url ~= nil and url ~= '' then
+      grl.debug ('Image size ' .. size .. ' = ' .. url)
+      if v ~= '' then
+        table.insert(userdata.media.thumbnail, url)
+      end
+    end
   end
 
-  userdata.callback(userdata.media, 0)
+  if #userdata.media.thumbnail == 0 then
+    userdata.callback()
+  else
+    userdata.callback(userdata.media, 0)
+  end
 end
