diff --git a/mp.cabal b/mp.cabal
--- a/mp.cabal
+++ b/mp.cabal
@@ -1,5 +1,5 @@
 name:               mp
-version:            1.0.1
+version:            1.0.2
 cabal-version:      >=1.22
 build-type:         Simple
 author:             Piotr Borek <piotrborek@op.pl>
diff --git a/src/Mp/UI/QueuePage.hs b/src/Mp/UI/QueuePage.hs
--- a/src/Mp/UI/QueuePage.hs
+++ b/src/Mp/UI/QueuePage.hs
@@ -28,9 +28,10 @@
     queuePageNew
 ) where
 
-import           Control.Lens     (ix, makeLensesFor, (.=), (^.), (^?))
+import           Control.Lens        (ix, makeLensesFor, (.=), (^.), (^?))
 import           Control.Monad
-import qualified Graphics.Vty     as Vty
+import           Control.Monad.Catch
+import qualified Graphics.Vty        as Vty
 import           Simple.UI.All
 
 import           Mp.Player.Client
@@ -157,11 +158,20 @@
 
     return queue
   where
-    readFullStatusFromServer queuePage = catchIgnoreAll $ do
-        items <- clientSendGetPlaylist
-        index <- clientSendGetPlaying
-        set queuePage _queuePageSongIndex index
-        mpSongInit items
+    readFullStatusFromServer = readFullStatusFromServer' (100 :: Int)
+
+    readFullStatusFromServer' 0 _ = return ()
+    readFullStatusFromServer' counter queuePage =
+        catchAll
+            (do
+                items <- clientSendGetPlaylist
+                index <- clientSendGetPlaying
+                set queuePage _queuePageSongIndex index
+                mpSongInit items)
+            (\_ -> do
+                mpData <- view appUserData
+                mainScheduleAfter 100 $
+                    liftUIApp mpData $ readFullStatusFromServer' (counter - 1) queuePage)
 
     scheduleIndexFromServer queuePage = mainScheduleRepeat 200 $
         catchIgnoreAll $ do
