diff --git a/app/src/main/java/audio/funkwhale/ffa/activities/LoginActivity.kt b/app/src/main/java/audio/funkwhale/ffa/activities/LoginActivity.kt
index 914be0f4b5cc1d899400fa0a4da9d980bf558a95..0ac66dfc650a00a7baae8444d7e0bb816152eab8 100644
--- a/app/src/main/java/audio/funkwhale/ffa/activities/LoginActivity.kt
+++ b/app/src/main/java/audio/funkwhale/ffa/activities/LoginActivity.kt
@@ -1,9 +1,11 @@
 package audio.funkwhale.ffa.activities
 
+import android.content.Context
 import android.content.Intent
 import android.content.res.Configuration
 import android.net.Uri
 import android.os.Bundle
+import android.text.Editable
 import android.view.ViewGroup
 import androidx.activity.result.contract.ActivityResultContracts.StartActivityForResult
 import androidx.appcompat.app.AppCompatActivity
@@ -64,6 +66,13 @@ class LoginActivity : AppCompatActivity() {
   override fun onResume() {
     super.onResume()
     with(binding) {
+      val preferences = getPreferences(Context.MODE_PRIVATE)
+      val hn = preferences?.getString("hostname", "")
+      if (hn != null && !hn.isEmpty()) {
+        hostname.text = Editable.Factory.getInstance().newEditable(hn)
+      }
+      cleartext.setChecked(preferences?.getBoolean("cleartext", false) ?: false)
+      anonymous.setChecked(preferences?.getBoolean("anonymous", false) ?: false)
       login.setOnClickListener {
         var hostname = hostname.text.toString().trim().trim('/')
 
@@ -96,6 +105,12 @@ class LoginActivity : AppCompatActivity() {
 
           hostnameField.error = message
         }
+        if (hostnameField.error == null) {
+          val preferences = getPreferences(Context.MODE_PRIVATE)
+          preferences?.edit()?.putString("hostname", hostname)?.commit()
+          preferences?.edit()?.putBoolean("cleartext", cleartext.isChecked)?.commit()
+          preferences?.edit()?.putBoolean("anonymous", anonymous.isChecked)?.commit()
+        }
       }
     }
   }
diff --git a/changes/changelog.d/detect-authorization-expiration.bugfix b/changes/changelog.d/detect-authorization-expiration.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..76801e93ef4038fa94cecf5c3411baa2d3d8fadc
--- /dev/null
+++ b/changes/changelog.d/detect-authorization-expiration.bugfix
@@ -0,0 +1 @@
+Log user out when authorization token expires (#154)
diff --git a/changes/changelog.d/login-remember-form.enhancement b/changes/changelog.d/login-remember-form.enhancement
new file mode 100644
index 0000000000000000000000000000000000000000..34ee7afb0796e6d454e579fb9d092ee708b26139
--- /dev/null
+++ b/changes/changelog.d/login-remember-form.enhancement
@@ -0,0 +1 @@
+Remember server settings in login dialog (#154)