diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt
index 1b4b2d5c46c66a946f54cbae7b747d98b902b8e9..22e282891e76ba677213fc2d41c54e70ac621dab 100644
--- a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ChatActivity.kt
@@ -35,6 +35,7 @@ class ChatActivity : ServiceBoundActivity() {
   private var contentMessages: MessageListFragment? = null
   private var chatListFragment: BufferViewConfigFragment? = null
   private var nickListFragment: NickListFragment? = null
+  private var toolbarFragment: ToolbarFragment? = null
 
   @BindView(R.id.drawerLayout)
   lateinit var drawerLayout: DrawerLayout
@@ -82,12 +83,16 @@ class ChatActivity : ServiceBoundActivity() {
     nickListFragment = supportFragmentManager.findFragmentById(
       R.id.nickListFragment
     ) as? NickListFragment
+    toolbarFragment = supportFragmentManager.findFragmentById(
+      R.id.toolbarFragment
+    ) as? ToolbarFragment
 
     setSupportActionBar(toolbar)
 
     chatListFragment?.currentBuffer?.value = currentBuffer
     nickListFragment?.currentBuffer?.value = currentBuffer
     contentMessages?.currentBuffer?.value = currentBuffer
+    toolbarFragment?.currentBuffer?.value = currentBuffer
 
     chatListFragment?.clickListeners?.add {
       currentBuffer.value = it
diff --git a/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ToolbarFragment.kt b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ToolbarFragment.kt
new file mode 100644
index 0000000000000000000000000000000000000000..1423c78ad4eda8e08d52513bcbfecac352db76bb
--- /dev/null
+++ b/app/src/main/java/de/kuschku/quasseldroid_ng/ui/chat/ToolbarFragment.kt
@@ -0,0 +1,73 @@
+package de.kuschku.quasseldroid_ng.ui.chat
+
+import android.arch.lifecycle.LiveData
+import android.arch.lifecycle.MutableLiveData
+import android.arch.lifecycle.Observer
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import butterknife.BindView
+import butterknife.ButterKnife
+import de.kuschku.libquassel.protocol.BufferId
+import de.kuschku.libquassel.quassel.BufferInfo
+import de.kuschku.libquassel.session.Backend
+import de.kuschku.libquassel.session.SessionManager
+import de.kuschku.quasseldroid_ng.R
+import de.kuschku.quasseldroid_ng.util.helper.map
+import de.kuschku.quasseldroid_ng.util.helper.switchMap
+import de.kuschku.quasseldroid_ng.util.helper.switchMapRx
+import de.kuschku.quasseldroid_ng.util.helper.visibleIf
+import de.kuschku.quasseldroid_ng.util.service.ServiceBoundFragment
+
+class ToolbarFragment : ServiceBoundFragment() {
+  @BindView(R.id.toolbar_title)
+  lateinit var toolbarTitle: TextView
+
+  @BindView(R.id.toolbar_subtitle)
+  lateinit var toolbarSubtitle: TextView
+
+  val currentBuffer: MutableLiveData<LiveData<BufferId?>?> = MutableLiveData()
+  val buffer = currentBuffer.switchMap { it }
+
+  private val sessionManager: LiveData<SessionManager?>
+    = backend.map(Backend::sessionManager)
+
+  private val currentBufferInfo: LiveData<BufferInfo?>
+    = sessionManager.switchMapRx(SessionManager::session).switchMap { session ->
+    buffer.switchMapRx {
+      session.bufferSyncer?.liveBufferInfo(it)
+    }
+  }
+
+  var title: CharSequence
+    get() = toolbarTitle.text
+    set(value) {
+      toolbarTitle.text = value
+    }
+
+  var subtitle: CharSequence
+    get() = toolbarTitle.text
+    set(value) {
+      toolbarSubtitle.text = value
+      toolbarSubtitle.visibleIf(value.isNotEmpty())
+    }
+
+  override fun onCreateView(inflater: LayoutInflater,
+                            container: ViewGroup?,
+                            savedInstanceState: Bundle?): View? {
+    val view = inflater.inflate(R.layout.fragment_toolbar, container, false)
+    ButterKnife.bind(this, view)
+
+    currentBufferInfo.observe(
+      this, Observer {
+      title = it?.bufferName ?: resources.getString(
+        R.string.app_name
+      )
+    }
+    )
+
+    return view
+  }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 4ba82b1eb0bebe90ed98e37824fdcc6e27fb206a..0d1864a8e0eba64a55ca92f6aa494794ba9b48e3 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -30,60 +30,12 @@
           app:contentInsetStartWithNavigation="0dp"
           app:popupTheme="@style/Widget.PopupOverlay">
 
-          <LinearLayout
-            android:id="@+id/toolbar_action_area"
+          <fragment
+            android:id="@+id/toolbarFragment"
+            android:name="de.kuschku.quasseldroid_ng.ui.chat.ToolbarFragment"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
-            android:background="?attr/selectableItemBackgroundBorderless"
-            android:clickable="true"
-            android:focusable="true"
-            android:focusableInTouchMode="false"
-            android:gravity="center_vertical|start"
-            android:minHeight="?attr/actionBarSize"
-            android:orientation="vertical">
-
-            <LinearLayout
-              android:layout_width="wrap_content"
-              android:layout_height="wrap_content"
-              android:layout_gravity="center_vertical"
-              android:layout_marginTop="-2dp"
-              android:baselineAligned="false"
-              android:gravity="center_vertical">
-
-              <TextView
-                android:id="@+id/key"
-                style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
-                android:layout_width="16dp"
-                android:layout_height="16dp"
-                android:layout_marginEnd="2dp"
-                android:layout_marginRight="2dp"
-                android:layout_marginTop="2dp"
-                android:gravity="center"
-                android:textSize="16sp"
-                android:visibility="gone" />
-
-              <TextView
-                android:id="@+id/toolbar_title"
-                style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:ellipsize="end"
-                android:gravity="center_vertical"
-                android:singleLine="true"
-                android:text="@string/app_name" />
-
-            </LinearLayout>
-
-            <TextView
-              android:id="@+id/toolbar_subtitle"
-              style="@style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle"
-              android:layout_width="wrap_content"
-              android:layout_height="wrap_content"
-              android:layout_marginTop="-3dp"
-              android:ellipsize="end"
-              android:singleLine="true"
-              android:visibility="gone" />
-          </LinearLayout>
+            tools:layout="@layout/fragment_toolbar" />
 
         </android.support.v7.widget.Toolbar>
 
diff --git a/app/src/main/res/layout/fragment_toolbar.xml b/app/src/main/res/layout/fragment_toolbar.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6a2d724136b56e93bf09cff79b8275f274cd94c1
--- /dev/null
+++ b/app/src/main/res/layout/fragment_toolbar.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:tools="http://schemas.android.com/tools"
+  android:id="@+id/toolbar_action_area"
+  android:layout_width="fill_parent"
+  android:layout_height="fill_parent"
+  android:background="?attr/selectableItemBackgroundBorderless"
+  android:clickable="true"
+  android:focusable="true"
+  android:focusableInTouchMode="false"
+  android:gravity="center_vertical|start"
+  android:minHeight="?attr/actionBarSize"
+  android:orientation="vertical"
+  android:theme="?attr/actionBarTheme"
+  tools:showIn="@layout/activity_main"
+  tools:theme="@style/Widget.AppBarOverlay">
+
+  <LinearLayout
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_gravity="center_vertical"
+    android:layout_marginTop="-2dp"
+    android:baselineAligned="false"
+    android:gravity="center_vertical">
+
+    <TextView
+      android:id="@+id/key"
+      style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
+      android:layout_width="16dp"
+      android:layout_height="16dp"
+      android:layout_marginEnd="2dp"
+      android:layout_marginRight="2dp"
+      android:layout_marginTop="2dp"
+      android:gravity="center"
+      android:textSize="16sp"
+      android:visibility="gone" />
+
+    <TextView
+      android:id="@+id/toolbar_title"
+      style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:ellipsize="end"
+      android:gravity="center_vertical"
+      android:singleLine="true"
+      android:text="@string/app_name" />
+
+  </LinearLayout>
+
+  <TextView
+    android:id="@+id/toolbar_subtitle"
+    style="@style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginTop="-3dp"
+    android:ellipsize="end"
+    android:singleLine="true"
+    android:visibility="gone" />
+</LinearLayout>
\ No newline at end of file