diff --git a/core/src/cz/nic/tablexia/TablexiaApplication.java b/core/src/cz/nic/tablexia/TablexiaApplication.java
index d1fcc66fc92c72d096315dab19addd3a8d265bbc..080318baf09769f0d3f23837183f81578b154ed4 100644
--- a/core/src/cz/nic/tablexia/TablexiaApplication.java
+++ b/core/src/cz/nic/tablexia/TablexiaApplication.java
@@ -334,21 +334,7 @@ public abstract class TablexiaApplication implements ApplicationListener {
     }
 
 
-//////////////////////////// SCREEN QUIT DIALOG
-
-    private void showQuitConfirmDialog(final Runnable newScreenAction) {
-        TablexiaComponentDialogFactory.getInstance().createWarningYesNoDialog(
-                ApplicationTextManager.getInstance().getText(screen.prepareQuitConfirmDialogText()),
-                new ClickListener() {
-                    @Override
-                    public void clicked(InputEvent event, float x, float y) {
-                        super.clicked(event, x, y);
-                        newScreenAction.run();
-                    }
-                }, true).show(TablexiaComponentDialogFactory.WARNING_DIALOG_WIDTH, TablexiaComponentDialogFactory.WARNING_DIALOG_HEIGHT);
-        ApplicationBus.getInstance().post(new MenuControlEvent(MainMenu.class, AbstractMenu.MenuAction.OPEN, true)).asynchronously();
-    }
-
+//////////////////////////// SCREEN LOADER
 
     private void prepareScreenLoaderMouse() {
         screenLoaderMouse = new AnimatedImage(
@@ -578,7 +564,7 @@ public abstract class TablexiaApplication implements ApplicationListener {
      */
     public void setScreenIfIsDifferent(AbstractTablexiaScreen<?> newScreen, ScreenTransaction screenTransaction) {
         if (newScreen != null) {
-            if (getScreen() == null || getScreen().getClass() != newScreen.getClass()) {
+            if (getActualScreen() == null || getActualScreen().getClass() != newScreen.getClass()) {
                 setScreen(newScreen, screenTransaction);
             }
         }
@@ -656,40 +642,29 @@ public abstract class TablexiaApplication implements ApplicationListener {
     }
 
     private void performNewScreenAction(final AbstractTablexiaScreen<?> newScreen, final Runnable newScreenAction) {
-        if(newScreen.isSoundMandatory() && TablexiaSettings.getInstance().isSoundMuted()) {
-            showSoundMutedDialog(newScreen, newScreenAction);
-        }
-        else if(screen.hasQuitConfirmDialog()){
-            showQuitConfirmDialog(newScreenAction);
-        }
-        else {
-            newScreenAction.run();
-        }
-    }
-
-    private void showSoundMutedDialog(final AbstractTablexiaScreen<?> newScreen, final Runnable newScreenAction) {
-        TablexiaComponentDialogFactory.getInstance().createWarningYesNoDialog(
-            ApplicationTextManager.getInstance().getText(newScreen.prepareSoundMutedQuestion()),
-            new ClickListener() {
-                @Override
-                public void clicked(InputEvent event, float x, float y) {
-                    TablexiaSettings.getInstance().toggleSoundMute();
+        final Runnable soundConfirmationCheck = new Runnable() {
+            @Override
+            public void run() {
+                if(newScreen.isSoundMandatory() && TablexiaSettings.getInstance().isSoundMuted()) {
+                    showSoundMutedDialog(newScreen.prepareSoundMutedQuestion(), newScreenAction);
+                } else {
+                    newScreenAction.run();
+                }
+            }
+        };
 
-                    if(screen.hasQuitConfirmDialog()) showQuitConfirmDialog(newScreenAction);
-                    else newScreenAction.run();
+        Runnable quitConfirmationCheck = new Runnable() {
+            @Override
+            public void run() {
+                if(screen.hasQuitConfirmDialog()){
+                    showQuitConfirmDialog(screen.prepareQuitConfirmDialogText(), soundConfirmationCheck);
+                } else {
+                    soundConfirmationCheck.run();
                 }
-            },
-            true
-        ).show(TablexiaComponentDialogFactory.WARNING_DIALOG_WIDTH, TablexiaComponentDialogFactory.WARNING_DIALOG_HEIGHT);
-    }
+            }
+        };
 
-    /**
-     * Return current screen
-     *
-     * @return current screen
-     */
-    public AbstractTablexiaScreen<?> getScreen() {
-        return screen;
+        quitConfirmationCheck.run();
     }
 
     @SuppressWarnings("unchecked")
@@ -763,6 +738,36 @@ public abstract class TablexiaApplication implements ApplicationListener {
     }
 
 
+//////////////////////////// SCREEN SWITCH DIALOGS
+
+    private void showSoundMutedDialog(final String dialogText, final Runnable newScreenAction) {
+        TablexiaComponentDialogFactory.getInstance().createWarningYesNoDialog(
+                ApplicationTextManager.getInstance().getText(dialogText),
+                new ClickListener() {
+                    @Override
+                    public void clicked(InputEvent event, float x, float y) {
+                        TablexiaSettings.getInstance().toggleSoundMute();
+                        newScreenAction.run();
+                    }
+                },
+                true
+        ).show(TablexiaComponentDialogFactory.WARNING_DIALOG_WIDTH, TablexiaComponentDialogFactory.WARNING_DIALOG_HEIGHT);
+    }
+
+    private void showQuitConfirmDialog(final String dialogText, final Runnable nextAction) {
+        TablexiaComponentDialogFactory.getInstance().createWarningYesNoDialog(
+                ApplicationTextManager.getInstance().getText(dialogText),
+                new ClickListener() {
+                    @Override
+                    public void clicked(InputEvent event, float x, float y) {
+                        super.clicked(event, x, y);
+                        nextAction.run();
+                    }
+                }, true).show(TablexiaComponentDialogFactory.WARNING_DIALOG_WIDTH, TablexiaComponentDialogFactory.WARNING_DIALOG_HEIGHT);
+        ApplicationBus.getInstance().post(new MenuControlEvent(MainMenu.class, AbstractMenu.MenuAction.OPEN, true)).asynchronously();
+    }
+
+
 //////////////////////////// SCREEN TRANSACTIONS
 
     public enum ScreenTransaction {
diff --git a/core/src/cz/nic/tablexia/TablexiaSettings.java b/core/src/cz/nic/tablexia/TablexiaSettings.java
index 688523201fff23560b8c831e316cfdf70e69ecc1..890a56768e0165c4fe9ca88a2d49ca34e4422e30 100644
--- a/core/src/cz/nic/tablexia/TablexiaSettings.java
+++ b/core/src/cz/nic/tablexia/TablexiaSettings.java
@@ -255,7 +255,7 @@ public class TablexiaSettings {
     public boolean isSoundMuted() { return soundMuted; }
 
     public void toggleSoundMute() {
-        this.soundMuted = !soundMuted;
+        this.soundMuted = !this.soundMuted;
         ApplicationBus.getInstance().publishAsync(new SoundMuteEvent(soundMuted));
     }
 
diff --git a/core/src/cz/nic/tablexia/menu/game/GameMenuDefinition.java b/core/src/cz/nic/tablexia/menu/game/GameMenuDefinition.java
index 8e55f1590350e8e7762b0c77258978ea9014b2bd..50a6923e2953d1e60d5775f3f993568ec6a452ee 100644
--- a/core/src/cz/nic/tablexia/menu/game/GameMenuDefinition.java
+++ b/core/src/cz/nic/tablexia/menu/game/GameMenuDefinition.java
@@ -82,8 +82,6 @@ public enum GameMenuDefinition implements ApplicationBus.ApplicationEvent, IMenu
         }
     }
 
-
-
     public static GameMenuDefinition getGameMenuDefinitionForGameDefinition(GameDefinition gameDefinition) {
         for (GameMenuDefinition gameMenuDefinition : GameMenuDefinition.values()) {
             if (gameDefinition == gameMenuDefinition.gameDefinition) {
diff --git a/core/src/cz/nic/tablexia/menu/game/GameMenuItemGroup.java b/core/src/cz/nic/tablexia/menu/game/GameMenuItemGroup.java
index 4797713ea091ea1ace9523e31df53ca10c88dfc1..14d2dcf00bcdaafab0b5ec0e27aff7653944b4a2 100644
--- a/core/src/cz/nic/tablexia/menu/game/GameMenuItemGroup.java
+++ b/core/src/cz/nic/tablexia/menu/game/GameMenuItemGroup.java
@@ -57,8 +57,8 @@ public class GameMenuItemGroup extends Container<Table> {
     private Class<? extends AbstractTablexiaGame> abstractTablexiaGameClass;
     private GameMenuScreen.GameMenuPageDefinition gameMenuPageDefinition;
 
-    public GameMenuItemGroup(final IMenuItem menuItem, float width) {
-        this.abstractTablexiaGameClass = ((GameMenuDefinition)menuItem).getGameDefinition().getScreenClass();
+    public GameMenuItemGroup(IMenuItem menuItem, float width) {
+        this.abstractTablexiaGameClass = ((GameMenuDefinition) menuItem).getGameDefinition().getScreenClass();
         this.gameMenuPageDefinition = GameMenuScreen.GameMenuPageDefinition.getGameMenuPageForGameDefinition(GameDefinition.getGameDefinitionForClass(abstractTablexiaGameClass));
 
         padLeft(LEFT_PADDING);
diff --git a/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java b/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java
index 66d1c0f73f65381c7e6a11564840754ff661b763..867faca89a52ff11659699eb445f582cede1a642 100644
--- a/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java
+++ b/core/src/cz/nic/tablexia/screen/AbstractTablexiaScreen.java
@@ -158,7 +158,7 @@ public abstract class AbstractTablexiaScreen<T> extends ScreenAdapter {
 
         @Handler
         public void handleSoundMuteEvent(TablexiaSettings.SoundMuteEvent soundMuteEvent) {
-            if(isPlaying()) updateVolume();
+            updateVolume();
         }
     }