diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatListBaseFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatListBaseFragment.kt
index 63a3430ae2d1649c0e7a267c77a257ddcd8730ba..557b87499ccc6ef4de92bb0e3ac89da4b8b73ea9 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatListBaseFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/ChatListBaseFragment.kt
@@ -110,7 +110,7 @@ abstract class ChatListBaseFragment(private val initDefault: Boolean) :
     ))
     minimumActivity.adapter = minimumActivityAdapter
 
-    val networkAdapter = NetworkAdapter()
+    val networkAdapter = NetworkAdapter(R.string.settings_chatlist_network_all)
     networkId.adapter = networkAdapter
 
     viewModel.networks.switchMap {
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/NetworkAdapter.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/NetworkAdapter.kt
index d37d27bb4f8c1ae204037832d9c9eb2acd0da693..2c3a3b4082ccd11ee2c9387dafc27e6558fa0529 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/NetworkAdapter.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/chatlist/NetworkAdapter.kt
@@ -23,6 +23,7 @@ import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import android.widget.TextView
+import androidx.annotation.StringRes
 import androidx.appcompat.widget.ThemedSpinnerAdapter
 import androidx.recyclerview.widget.RecyclerView
 import butterknife.BindView
@@ -33,8 +34,8 @@ import de.kuschku.quasseldroid.R
 import de.kuschku.quasseldroid.util.ui.ContextThemeWrapper
 import de.kuschku.quasseldroid.util.ui.RecyclerSpinnerAdapter
 
-class NetworkAdapter : RecyclerSpinnerAdapter<NetworkAdapter.NetworkViewHolder>(),
-                       ThemedSpinnerAdapter {
+class NetworkAdapter(@StringRes private val fallbackName: Int) : RecyclerSpinnerAdapter<NetworkAdapter.NetworkViewHolder>(),
+  ThemedSpinnerAdapter {
   var data = listOf<INetwork.NetworkInfo?>(null)
 
   fun submitList(list: List<INetwork.NetworkInfo?>) {
@@ -56,9 +57,7 @@ class NetworkAdapter : RecyclerSpinnerAdapter<NetworkAdapter.NetworkViewHolder>(
         parent.context
     )
     val view = inflater.inflate(R.layout.widget_spinner_item_inline, parent, false)
-    return NetworkViewHolder(
-      view
-    )
+    return NetworkViewHolder(fallbackName, view)
   }
 
   fun indexOf(id: NetworkId): Int? {
@@ -74,7 +73,7 @@ class NetworkAdapter : RecyclerSpinnerAdapter<NetworkAdapter.NetworkViewHolder>(
   override fun getItemId(position: Int) = getItem(position)?.networkId?.toLong() ?: -1
   override fun hasStableIds() = true
   override fun getCount() = data.size
-  class NetworkViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+  class NetworkViewHolder(@StringRes private val fallbackName: Int, itemView: View) : RecyclerView.ViewHolder(itemView) {
     @BindView(android.R.id.text1)
     lateinit var text: TextView
 
@@ -83,7 +82,7 @@ class NetworkAdapter : RecyclerSpinnerAdapter<NetworkAdapter.NetworkViewHolder>(
     }
 
     fun bind(network: INetwork.NetworkInfo?) {
-      text.text = network?.networkName ?: itemView.context.getString(R.string.settings_chatlist_network_all)
+      text.text = network?.networkName ?: itemView.context.getString(fallbackName)
     }
   }
 }
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/network/NetworkSetupNetworkSlide.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/network/NetworkSetupNetworkSlide.kt
index 2a0d41763b82b42fe400aa55194048da5110180d..8a4f50b8a9e3d31d3569800cd7724194f05a42b9 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/setup/network/NetworkSetupNetworkSlide.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/setup/network/NetworkSetupNetworkSlide.kt
@@ -79,7 +79,7 @@ class NetworkSetupNetworkSlide : ServiceBoundSlideFragment() {
   lateinit var sslEnabled: SwitchCompat
 
   private val identityAdapter = IdentityAdapter()
-  private val networkAdapter = NetworkAdapter()
+  private val networkAdapter = NetworkAdapter(R.string.settings_chatlist_network_create)
 
   override fun isValid(): Boolean {
     return (this.network.selectedItemPosition != -1 &&
@@ -188,9 +188,13 @@ class NetworkSetupNetworkSlide : ServiceBoundSlideFragment() {
       }
     })
 
-    viewModel.networks.toLiveData().observe(this, Observer {
+    viewModel.networks.switchMap {
+      combineLatest(it.values.map(Network::liveNetworkInfo)).map {
+        it.sortedWith(compareBy(String.CASE_INSENSITIVE_ORDER, INetwork.NetworkInfo::networkName))
+      }
+    }.toLiveData().observe(this, Observer {
       if (it != null) {
-        this.networks = it.values.map(Network::networkInfo)
+        this.networks = it
         update()
       }
     })
diff --git a/app/src/main/res/values/strings_settings.xml b/app/src/main/res/values/strings_settings.xml
index 7bd017251231e281ab7b94878f62396aa5fd787d..dcbc6845a3fb65aebe041dc1786bfdf5a4d880e0 100644
--- a/app/src/main/res/values/strings_settings.xml
+++ b/app/src/main/res/values/strings_settings.xml
@@ -84,6 +84,7 @@
   <string name="settings_chatlist_add_new_buffers_automatically">Add new chats automatically</string>
   <string name="settings_chatlist_network">Network</string>
   <string name="settings_chatlist_network_all">All Networks</string>
+  <string name="settings_chatlist_network_create">Create Network…</string>
   <string name="settings_chatlist_show_status_buffer">Show Status Buffer</string>
   <string name="settings_chatlist_types">Chat Types</string>
   <string name="settings_chatlist_show_channels">Show Channels</string>