From e39fa57f831b5c5b6b8692cd4301efacb08ba9d6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?poljar=20=28Damir=20Jeli=C4=87=29?= <poljar@termina.org.uk>
Date: Wed, 7 Feb 2018 12:43:35 +0100
Subject: [PATCH] Fix server buffer merging if no server buffers are created.

---
 matrix/config.py |  3 ++-
 matrix/utils.py  | 13 +++++++++----
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/matrix/config.py b/matrix/config.py
index d4d745b..efb6ddc 100644
--- a/matrix/config.py
+++ b/matrix/config.py
@@ -45,7 +45,8 @@ def matrix_config_change_cb(data, option):
         OPTIONS.look_server_buf = ServerBufferType(
             W.config_integer(option))
         for server in SERVERS.values():
-            server_buffer_merge(server.server_buffer)
+            if server.server_buffer:
+                server_buffer_merge(server.server_buffer)
 
     elif option_name == "max_initial_sync_events":
         OPTIONS.sync_limit = W.config_integer(option)
diff --git a/matrix/utils.py b/matrix/utils.py
index f057a5d..b43d9ae 100644
--- a/matrix/utils.py
+++ b/matrix/utils.py
@@ -84,10 +84,15 @@ def server_buffer_merge(buffer):
         W.buffer_merge(buffer, W.buffer_search_main())
     elif OPTIONS.look_server_buf == ServerBufferType.MERGE:
         if SERVERS:
-            first = list(SERVERS.values())[0].server_buffer
-            num = W.buffer_get_integer(W.buffer_search_main(), "number")
-            W.buffer_unmerge(buffer, num + 1)
-            W.buffer_merge(buffer, first)
+            first = None
+            for server in SERVERS.values():
+                if server.server_buffer and buffer is not server.server_buffer:
+                    first = server.server_buffer
+                    break
+            if first:
+                num = W.buffer_get_integer(W.buffer_search_main(), "number")
+                W.buffer_unmerge(buffer, num + 1)
+                W.buffer_merge(buffer, first)
     else:
         num = W.buffer_get_integer(W.buffer_search_main(), "number")
         W.buffer_unmerge(buffer, num + 1)