diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoFragment.kt
index 83a422ae5f49936e3eaa97d2ce1e78017d47c311..26c968fe7bc1bcad090de32435e206e49520cb29 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoFragment.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/chat/info/channel/ChannelInfoFragment.kt
@@ -36,9 +36,15 @@ class ChannelInfoFragment : ServiceBoundFragment() {
   @BindView(R.id.action_edit_topic)
   lateinit var actionEditTopic: Button
 
+  @BindView(R.id.action_who)
+  lateinit var actionWho: Button
+
   @BindView(R.id.action_part)
   lateinit var actionPart: Button
 
+  @BindView(R.id.action_join)
+  lateinit var actionJoin: Button
+
   @Inject
   lateinit var contentFormatter: ContentFormatter
 
@@ -84,6 +90,18 @@ class ChannelInfoFragment : ServiceBoundFragment() {
             }
           }
         }
+
+        actionWho.setOnClickListener {
+          viewModel.session.value?.orNull()?.let { session ->
+            session.bufferSyncer?.find(
+              networkId = channel.network().networkId(),
+              type = Buffer_Type.of(Buffer_Type.StatusBuffer)
+            )?.let { statusInfo ->
+              session.rpcHandler?.sendInput(statusInfo, "/who ${channel.name()}")
+              requireActivity().finish()
+            }
+          }
+        }
       }
     })
 
@@ -93,6 +111,10 @@ class ChannelInfoFragment : ServiceBoundFragment() {
 
     actionEditTopic.setTooltip()
     actionEditTopic.retint()
+    actionWho.setTooltip()
+    actionWho.retint()
+    actionJoin.setTooltip()
+    actionJoin.retint()
     actionPart.setTooltip()
     actionPart.retint()
 
diff --git a/app/src/main/res/layout/fragment_info_channel.xml b/app/src/main/res/layout/fragment_info_channel.xml
index a98e6d9d72f3ff8247d4b1975585824333e7949f..f0a7d9e591b00c7f60af271a34dee8be9525d333 100644
--- a/app/src/main/res/layout/fragment_info_channel.xml
+++ b/app/src/main/res/layout/fragment_info_channel.xml
@@ -49,6 +49,14 @@
           android:text="@string/label_edit_topic"
           tools:drawableTint="?colorTextSecondary" />
 
+        <android.support.v7.widget.AppCompatButton
+          android:id="@+id/action_who"
+          style="@style/Widget.Info.ActionButton"
+          android:contentDescription="@string/label_who_long"
+          android:drawableTop="@drawable/ic_info"
+          android:text="@string/label_who"
+          tools:drawableTint="?colorTextSecondary" />
+
         <android.support.v7.widget.AppCompatButton
           android:id="@+id/action_part"
           style="@style/Widget.Info.ActionButton"
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 976cd8600179bef5982dc715527f39ac60ac596c..2348e01c3960d66e021d3ee02b60dcbdda932aa2 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -67,6 +67,8 @@
   <string name="label_topic">Kanal-Thema</string>
   <string name="label_unhide">Nicht mehr ausblenden</string>
   <string name="label_website">Webseite</string>
+  <string name="label_who">Who</string>
+  <string name="label_who_long">Informationen aller Nutzer aktualisieren</string>
   <string name="label_whois">Whois</string>
   <string name="label_whois_long">Nutzerinformationen aktualisieren</string>
   <string name="label_yes">Ja</string>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 3eecd053a008e7d3809c1642be202cd2a196cfa9..9682b2c7bdee79ad816c0da28e4e945bccf77197 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -67,6 +67,8 @@
   <string name="label_topic">Channel Topic</string>
   <string name="label_unhide">Make Visible</string>
   <string name="label_website">Website</string>
+  <string name="label_who">Who</string>
+  <string name="label_who_long">Update user information of all users</string>
   <string name="label_whois">Whois</string>
   <string name="label_whois_long">Update user information</string>
   <string name="label_yes">Yes</string>
diff --git a/build.gradle.kts b/build.gradle.kts
index 1cbcd793cc37c5ee7c90ebfa49474079d0e9cf76..19742d018e487d80b1835bc61202d58649f495cc 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -4,7 +4,7 @@ buildscript {
     jcenter()
   }
   dependencies {
-    classpath("com.android.tools.build:gradle:3.1.0")
+    classpath("com.android.tools.build:gradle:3.1.1")
     withVersion("1.2.31") {
       classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$version")
       classpath("org.jetbrains.kotlin:kotlin-android-extensions:$version")
diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt
index 555cca87d893e98b10a7fa4bb225dcc4e75c5197..aa738ae01bb80ed3348a690ad7906edcd727d0b6 100644
--- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/Network.kt
@@ -346,11 +346,9 @@ class Network constructor(
     }
   }
 
-  fun ircUser(nickName: String?) = _ircUsers[nickName?.let(caseMapper::toLowerCase)]
+  fun ircUser(nickName: String?) = _ircUsers[caseMapper.toLowerCaseNullable(nickName)]
   fun liveIrcUser(nickName: String?) = live_ircUsers.map {
-    ircUser(
-      nickName
-    ) ?: IrcUser.NULL
+    ircUser(nickName) ?: IrcUser.NULL
   }.distinctUntilChanged()
 
   fun ircUsers() = _ircUsers.values.toList()
diff --git a/lib/src/main/java/de/kuschku/libquassel/util/irc/IrcCaseMappers.kt b/lib/src/main/java/de/kuschku/libquassel/util/irc/IrcCaseMappers.kt
index efad8589c4d729e73c2ee8d0f72b66bf4cd5e76e..037c618298d5ddcd54fb6e4b6a6940522cbb9606 100644
--- a/lib/src/main/java/de/kuschku/libquassel/util/irc/IrcCaseMappers.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/util/irc/IrcCaseMappers.kt
@@ -3,8 +3,8 @@ package de.kuschku.libquassel.util.irc
 import java.util.*
 
 object IrcCaseMappers {
-  var irc: IrcCaseMapper = UnicodeCaseMapper()
-  var unicode: IrcCaseMapper = ClassicalIrcCaseMapper()
+  var irc: IrcCaseMapper = ClassicalIrcCaseMapper()
+  var unicode: IrcCaseMapper = UnicodeCaseMapper()
 
   interface IrcCaseMapper {
     fun equalsIgnoreCase(a: String, b: String): Boolean