diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/SlideFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/SlideFragment.kt
index 96d5c5ef00a648116d1d1ad6fe314b27be530cff..4ba2821e0630a50f36ffdb4cd396f72c941a0034 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/SlideFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/SlideFragment.kt
@@ -40,6 +40,8 @@ abstract class SlideFragment : DaggerFragment() {
 
   protected abstract fun isValid(): Boolean
 
+  private var initialized = false
+
   val valid = object : MutableLiveData<Boolean>() {
     override fun observe(owner: LifecycleOwner, observer: Observer<in Boolean>) {
       super.observe(owner, observer)
@@ -67,6 +69,8 @@ abstract class SlideFragment : DaggerFragment() {
       resources.getString(title)
     view.findViewById<TextView>(R.id.description).setText(description)
 
+    initialized = true
+
     initData?.let(this::setData)
     savedInstanceState?.let(this::setData)
     updateValidity()
@@ -76,16 +80,25 @@ abstract class SlideFragment : DaggerFragment() {
 
   override fun onSaveInstanceState(outState: Bundle) {
     super.onSaveInstanceState(outState)
-    getData(outState)
+    if (initialized) getData(outState)
   }
 
   override fun onViewStateRestored(savedInstanceState: Bundle?) {
     super.onViewStateRestored(savedInstanceState)
-    updateValidity()
+    if (initialized) updateValidity()
+  }
+
+  protected abstract fun setData(data: Bundle)
+  protected abstract fun getData(data: Bundle)
+
+  fun save(data: Bundle) {
+    if (initialized) getData(data)
+  }
+
+  fun load(data: Bundle) {
+    if (initialized) setData(data)
   }
 
-  abstract fun setData(data: Bundle)
-  abstract fun getData(data: Bundle)
   var initData: Bundle? = null
 
   fun requestFocus() {
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/SlidePagerAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/SlidePagerAdapter.kt
index 8f2365995bdbc557f23f4077c4ba7911e2c57e6e..01f2b9aed25c170326583a078de071f4381091bd 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/SlidePagerAdapter.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/SlidePagerAdapter.kt
@@ -33,7 +33,7 @@ class SlidePagerAdapter(private val fragmentManager: FragmentManager) :
   val result = Bundle()
     get() {
       (0 until retainedFragments.size()).map(retainedFragments::valueAt).forEach {
-        it.getData(field)
+        it.save(field)
       }
       return field
     }
@@ -62,7 +62,7 @@ class SlidePagerAdapter(private val fragmentManager: FragmentManager) :
   }
 
   override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
-    retainedFragments.get(position)?.getData(result)
+    retainedFragments.get(position)?.save(result)
     retainedFragments.remove(position)
     super.destroyItem(container, position, `object`)
   }
@@ -97,9 +97,9 @@ class SlidePagerAdapter(private val fragmentManager: FragmentManager) :
   }
 
   fun hasChanged(index: Int, fragment: SlideFragment) {
-    fragment.getData(result)
+    fragment.save(result)
     if (index > -1 && (index + 1) < totalCount) {
-      getItem(index + 1).setData(result)
+      getItem(index + 1).save(result)
     }
   }
 }
diff --git a/malheur/src/main/java/de/kuschku/malheur/CrashHandler.kt b/malheur/src/main/java/de/kuschku/malheur/CrashHandler.kt
index c3de2421d8ab1360ec3c5f18847db350098a1f20..231b36736fe468e3990a3ef0879f11a874f89dcd 100644
--- a/malheur/src/main/java/de/kuschku/malheur/CrashHandler.kt
+++ b/malheur/src/main/java/de/kuschku/malheur/CrashHandler.kt
@@ -97,18 +97,14 @@ object CrashHandler {
     }
 
     Thread.setDefaultUncaughtExceptionHandler { currentThread, throwable ->
-      Thread {
-        myHandler?.invoke(currentThread, throwable)
-        originalHandler?.uncaughtException(currentThread, throwable)
-      }.start()
+      myHandler?.invoke(currentThread, throwable)
+      originalHandler?.uncaughtException(currentThread, throwable)
     }
 
     val oldHandler = Thread.currentThread().uncaughtExceptionHandler
     Thread.currentThread().setUncaughtExceptionHandler { currentThread, throwable ->
-      Thread {
-        myHandler?.invoke(currentThread, throwable)
-        oldHandler?.uncaughtException(currentThread, throwable)
-      }.start()
+      myHandler?.invoke(currentThread, throwable)
+      oldHandler?.uncaughtException(currentThread, throwable)
     }
   }