diff --git a/core/src/cz/nic/tablexia/Tablexia.java b/core/src/cz/nic/tablexia/Tablexia.java
index 2522f289792eee982550d8b6ae216cbc8b9a8e7d..12e7a497cbacc5622574b21e4e16dc0f1425dc3d 100644
--- a/core/src/cz/nic/tablexia/Tablexia.java
+++ b/core/src/cz/nic/tablexia/Tablexia.java
@@ -233,6 +233,7 @@ public class Tablexia extends TablexiaApplication {
     public void dispose() {
         super.dispose();
         TablexiaStorage.getInstance().dispose();
+        TablexiaSettings.getInstance().dispose();
         clearLoadedData();
     }
 
diff --git a/core/src/cz/nic/tablexia/TablexiaSettings.java b/core/src/cz/nic/tablexia/TablexiaSettings.java
index 2e1b580d57029650d19222e51a475be0374d5e99..d675ed733af94228870cf2ce57044bfbb0c105d5 100644
--- a/core/src/cz/nic/tablexia/TablexiaSettings.java
+++ b/core/src/cz/nic/tablexia/TablexiaSettings.java
@@ -95,7 +95,7 @@ public class TablexiaSettings {
         private final String localeKey;
         private final String descriptionKey;
 
-        private LocaleDefinition(Locale locale, String localeKey, String descriptionKey) {
+        LocaleDefinition(Locale locale, String localeKey, String descriptionKey) {
             this.locale = locale;
             this.localeKey = localeKey;
             this.descriptionKey = descriptionKey;
@@ -157,15 +157,15 @@ public class TablexiaSettings {
         return instance;
     }
 
-    public static void init(boolean debug, Locale systemLocale, String versionName) {
+    static void init(boolean debug, Locale systemLocale, String versionName) {
         TablexiaSettings.init(debug ? BuildType.DEBUG : BuildType.RELEASE, systemLocale, versionName);
     }
 
-    public static void init(String buildTypeKey, Locale systemLocale, String versionName) {
+    static void init(String buildTypeKey, Locale systemLocale, String versionName) {
         TablexiaSettings.init(BuildType.getBuildTypeForKey(buildTypeKey), systemLocale, versionName);
     }
 
-    public static void init(BuildType buildType, Locale systemLocale, String versionName) {
+    static void init(BuildType buildType, Locale systemLocale, String versionName) {
         if (instance != null) {
             String exceptionMessage = "Tablexia settings already initialized!";
             Log.err(TablexiaSettings.class, exceptionMessage);
@@ -175,6 +175,10 @@ public class TablexiaSettings {
         instance = new TablexiaSettings(buildType, systemLocale, versionName);
     }
 
+    void dispose() {
+        instance = null;
+    }
+
 
 //////////////////////////// LIBGDX PREFERENCES
 
diff --git a/core/src/cz/nic/tablexia/TablexiaStorage.java b/core/src/cz/nic/tablexia/TablexiaStorage.java
index addb3f1e3e56d75d26226899eb9f62b1bce8c796..022afd9ee80755087091dbfcab7b34516416ef4c 100644
--- a/core/src/cz/nic/tablexia/TablexiaStorage.java
+++ b/core/src/cz/nic/tablexia/TablexiaStorage.java
@@ -55,6 +55,7 @@ public class TablexiaStorage {
         } else {
             throw new IllegalStateException("Data storage is not initialized or already closed!");
         }
+        instance = null;
     }
 
     public static TablexiaStorage getInstance() {