diff --git a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt
index 823e0715bd30d274a6e9b18504eeaeab3fb7165c..3472396d80c46498f4a659e71236ba05836be700 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselNotificationBackend.kt
@@ -42,6 +42,7 @@ import de.kuschku.quasseldroid.settings.AppearanceSettings
 import de.kuschku.quasseldroid.settings.MessageSettings
 import de.kuschku.quasseldroid.settings.NotificationSettings
 import de.kuschku.quasseldroid.settings.Settings
+import de.kuschku.quasseldroid.util.NotificationBuffer
 import de.kuschku.quasseldroid.util.NotificationMessage
 import de.kuschku.quasseldroid.util.avatars.AvatarHelper
 import de.kuschku.quasseldroid.util.helper.getColorCompat
@@ -221,7 +222,8 @@ class QuasselNotificationBackend @Inject constructor(
     }.filter {
       it.messageId > session.bufferSyncer.lastSeenMsg(it.bufferInfo.bufferId)
     }.map {
-      val me = session.network(it.bufferInfo.networkId)?.me()
+      val network = session.network(it.bufferInfo.networkId)
+      val me = network?.me()
       QuasselDatabase.NotificationData(
         messageId = it.messageId,
         creationTime = now,
@@ -232,6 +234,7 @@ class QuasselNotificationBackend @Inject constructor(
         bufferName = it.bufferInfo.bufferName ?: "",
         bufferType = it.bufferInfo.type,
         networkId = it.bufferInfo.networkId,
+        networkName = network?.networkName() ?: "",
         sender = it.sender,
         senderPrefixes = it.senderPrefixes,
         realName = it.realName,
@@ -278,12 +281,11 @@ class QuasselNotificationBackend @Inject constructor(
       val max = data.maxBy { it.creationTime }
       val isLoud = max?.creationTime?.isAfter(initTime) == true
 
-      val bufferInfo = BufferInfo(
-        bufferId = it.bufferId,
-        bufferName = it.bufferName,
+      val buffer = NotificationBuffer(
+        id = it.bufferId,
+        name = it.bufferName,
         type = it.bufferType,
-        networkId = it.networkId,
-        groupId = 0
+        networkName = it.networkName
       )
 
       val size = context.resources.getDimensionPixelSize(R.dimen.notification_avatar_width)
@@ -364,7 +366,7 @@ class QuasselNotificationBackend @Inject constructor(
         )
       }
       val notification = notificationHandler.notificationMessage(
-        notificationSettings, bufferInfo, selfInfo, notificationData, isLoud, isConnected
+        notificationSettings, buffer, selfInfo, notificationData, isLoud, isConnected
       )
       notificationHandler.notify(notification)
     } ?: notificationHandler.remove(buffer)
diff --git a/app/src/main/java/de/kuschku/quasseldroid/service/QuasseldroidNotificationManager.kt b/app/src/main/java/de/kuschku/quasseldroid/service/QuasseldroidNotificationManager.kt
index 2d8f7112196009329a0aa4847d1203096b26bb32..b9d5c83a313158f3331c5798cc8c7bb966b3c5aa 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/service/QuasseldroidNotificationManager.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/service/QuasseldroidNotificationManager.kt
@@ -37,11 +37,11 @@ import androidx.core.app.Person
 import androidx.core.app.RemoteInput
 import androidx.core.graphics.drawable.IconCompat
 import de.kuschku.libquassel.protocol.Buffer_Type
-import de.kuschku.libquassel.quassel.BufferInfo
 import de.kuschku.libquassel.util.flag.hasFlag
 import de.kuschku.quasseldroid.R
 import de.kuschku.quasseldroid.settings.NotificationSettings
 import de.kuschku.quasseldroid.ui.chat.ChatActivity
+import de.kuschku.quasseldroid.util.NotificationBuffer
 import de.kuschku.quasseldroid.util.NotificationMessage
 import de.kuschku.quasseldroid.util.helper.getColorCompat
 import de.kuschku.quasseldroid.util.helper.letIf
@@ -109,13 +109,13 @@ class QuasseldroidNotificationManager @Inject constructor(private val context: C
     return bitmap
   }
 
-  fun notificationMessage(notificationSettings: NotificationSettings, bufferInfo: BufferInfo,
+  fun notificationMessage(notificationSettings: NotificationSettings, buffer: NotificationBuffer,
                           selfInfo: SelfInfo, notifications: List<NotificationMessage>,
                           isLoud: Boolean, isConnected: Boolean): Handle {
     val pendingIntentOpen = PendingIntent.getActivity(
       context.applicationContext,
       System.currentTimeMillis().toInt(),
-      ChatActivity.intent(context.applicationContext, bufferId = bufferInfo.bufferId).apply {
+      ChatActivity.intent(context.applicationContext, bufferId = buffer.id).apply {
         flags = Intent.FLAG_ACTIVITY_CLEAR_TOP
       },
       0
@@ -130,7 +130,7 @@ class QuasseldroidNotificationManager @Inject constructor(private val context: C
       System.currentTimeMillis().toInt(),
       QuasselService.intent(
         context,
-        bufferId = bufferInfo.bufferId
+        bufferId = buffer.id
       ),
       0
     )
@@ -140,7 +140,7 @@ class QuasseldroidNotificationManager @Inject constructor(private val context: C
       System.currentTimeMillis().toInt(),
       QuasselService.intent(
         context,
-        bufferId = bufferInfo.bufferId,
+        bufferId = buffer.id,
         markReadMessage = notifications.last().messageId
       ),
       0
@@ -151,12 +151,14 @@ class QuasseldroidNotificationManager @Inject constructor(private val context: C
       System.currentTimeMillis().toInt(),
       QuasselService.intent(
         context,
-        bufferId = bufferInfo.bufferId,
+        bufferId = buffer.id,
         hideMessage = notifications.last().messageId
       ),
       0
     )
 
+    println(notificationSettings)
+
     val notification = NotificationCompat.Builder(
       context.applicationContext,
       translatedLocale.getString(
@@ -196,8 +198,11 @@ class QuasseldroidNotificationManager @Inject constructor(private val context: C
             .setIcon(IconCompat.createWithBitmap(bitmapFromDrawable(selfInfo.avatar)))
             .build()
         )
-          .setGroupConversation(!bufferInfo.type.hasFlag(Buffer_Type.QueryBuffer))
-          .setConversationTitle(bufferInfo.bufferName)
+          .setGroupConversation(!buffer.type.hasFlag(Buffer_Type.QueryBuffer))
+          .setConversationTitle(
+            if (notificationSettings.networkNameInNotificationTitle) "${buffer.name} — ${buffer.networkName}"
+            else buffer.name
+          )
           .also {
             for (notification in notifications) {
               it.addMessage(
@@ -228,13 +233,13 @@ class QuasseldroidNotificationManager @Inject constructor(private val context: C
       }
       .setWhen(notifications.last().time.toEpochMilli())
       .apply {
-        if (bufferInfo.type.hasFlag(Buffer_Type.QueryBuffer)) {
+        if (buffer.type.hasFlag(Buffer_Type.QueryBuffer)) {
           notifications.lastOrNull()?.avatar?.let {
             setLargeIcon(bitmapFromDrawable(it))
           }
         }
       }
-    return Handle(bufferInfo.bufferId, notification)
+    return Handle(buffer.id, notification)
   }
 
   fun notificationBackground(): Handle {
diff --git a/app/src/main/java/de/kuschku/quasseldroid/settings/NotificationSettings.kt b/app/src/main/java/de/kuschku/quasseldroid/settings/NotificationSettings.kt
index b3a04918e11dde3a359a7eb0588c36a0e479fa82..f15f09c87d615aa1f3d03120d733597b4feec3fb 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/settings/NotificationSettings.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/settings/NotificationSettings.kt
@@ -26,7 +26,8 @@ data class NotificationSettings(
   val sound: String = "content://settings/system/notification_sound",
   val vibrate: Boolean = true,
   val light: Boolean = true,
-  val markReadOnSwipe: Boolean = true
+  val markReadOnSwipe: Boolean = true,
+  val networkNameInNotificationTitle: Boolean = false
 ) {
   enum class Level {
     ALL,
diff --git a/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt b/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt
index 68878da3ec0480c91673271a6c34898954c848d2..210984a8eab84368255142648c51021998a9a07b 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt
@@ -171,6 +171,10 @@ object Settings {
       markReadOnSwipe = getBoolean(
         context.getString(R.string.preference_notification_mark_read_on_swipe_key),
         NotificationSettings.DEFAULT.markReadOnSwipe
+      ),
+      networkNameInNotificationTitle = getBoolean(
+        context.getString(R.string.preference_notification_network_name_in_notification_title_key),
+        NotificationSettings.DEFAULT.networkNameInNotificationTitle
       )
     )
   }
diff --git a/app/src/main/java/de/kuschku/quasseldroid/util/NotificationBuffer.kt b/app/src/main/java/de/kuschku/quasseldroid/util/NotificationBuffer.kt
new file mode 100644
index 0000000000000000000000000000000000000000..487e6260e8f7ecc35da08a56d0b7cfe8bcde20a5
--- /dev/null
+++ b/app/src/main/java/de/kuschku/quasseldroid/util/NotificationBuffer.kt
@@ -0,0 +1,11 @@
+package de.kuschku.quasseldroid.util
+
+import de.kuschku.libquassel.protocol.BufferId
+import de.kuschku.libquassel.protocol.Buffer_Types
+
+data class NotificationBuffer(
+  val id: BufferId,
+  val type: Buffer_Types,
+  val name: String,
+  val networkName: String
+)
diff --git a/app/src/main/res/values/strings_preferences.xml b/app/src/main/res/values/strings_preferences.xml
index 55539f463e711c16b8c4125bbaa6cff9400eb02e..402611005a569225c5157dc0a7ffbf67818339bc 100644
--- a/app/src/main/res/values/strings_preferences.xml
+++ b/app/src/main/res/values/strings_preferences.xml
@@ -135,6 +135,9 @@
   <string name="preference_notification_mark_read_on_swipe_title">Mark channel read when swiping notifications</string>
   <string name="preference_notification_mark_read_on_swipe_summary">Marks all messages in a channel as read when a notification for the channel is swiped away</string>
 
+  <string name="preference_notification_network_name_in_notification_title_key" translatable="false">network_name_in_notification_title</string>
+  <string name="preference_notification_network_name_in_notification_title_title">Show network name in notifications title</string>
+
   <string name="preference_notification_configure_key" translatable="false">notification_configure</string>
   <string name="preference_notification_configure_title">Configure Notifications</string>
 
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 1eea34448e3c578db5f4af715a122839e6b9b30a..dd53270ce8bc307ee10aa51700063cfa46e2e6c0 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -90,6 +90,11 @@
       android:summary="@string/preference_notification_mark_read_on_swipe_summary"
       android:title="@string/preference_notification_mark_read_on_swipe_title" />
 
+    <SwitchPreference
+      android:defaultValue="false"
+      android:key="@string/preference_notification_network_name_in_notification_title_key"
+      android:title="@string/preference_notification_network_name_in_notification_title_title" />
+
     <de.kuschku.quasseldroid.util.ui.settings.RingtonePreference
       android:defaultValue="content://settings/system/notification_sound"
       android:key="@string/preference_notification_sound_key"
diff --git a/persistence/src/main/java/de/kuschku/quasseldroid/persistence/QuasselDatabase.kt b/persistence/src/main/java/de/kuschku/quasseldroid/persistence/QuasselDatabase.kt
index 2be90b1b8d24d6168c82653371dc7be733d93925..c41b55af1922901621ddc4b4a2facfe407d1b3b0 100644
--- a/persistence/src/main/java/de/kuschku/quasseldroid/persistence/QuasselDatabase.kt
+++ b/persistence/src/main/java/de/kuschku/quasseldroid/persistence/QuasselDatabase.kt
@@ -32,7 +32,7 @@ import io.reactivex.Flowable
 import org.threeten.bp.Instant
 
 @Database(entities = [MessageData::class, Filtered::class, SslValidityWhitelistEntry::class, SslHostnameWhitelistEntry::class, NotificationData::class],
-          version = 18)
+          version = 19)
 @TypeConverters(MessageTypeConverter::class)
 abstract class QuasselDatabase : RoomDatabase() {
   abstract fun message(): MessageDao
@@ -210,6 +210,7 @@ abstract class QuasselDatabase : RoomDatabase() {
     var bufferName: String,
     var bufferType: Buffer_Types,
     var networkId: NetworkId,
+    var networkName: String,
     var sender: String,
     var senderPrefixes: String,
     var realName: String,
@@ -364,6 +365,11 @@ abstract class QuasselDatabase : RoomDatabase() {
                 override fun migrate(database: SupportSQLiteDatabase) {
                   database.execSQL("ALTER TABLE `notification` ADD `hidden` INT DEFAULT 0 NOT NULL;")
                 }
+              },
+              object : Migration(18, 19) {
+                override fun migrate(database: SupportSQLiteDatabase) {
+                  database.execSQL("ALTER TABLE `notification` ADD `networkName` TEXT DEFAULT '' NOT NULL;")
+                }
               }
             ).build()
           }