diff --git a/gajim/common/config.py b/gajim/common/config.py
index 0c0dafcc1b56bc282428f08ed0c5fbb65b8cae32..b4096387a2c2864dbf8bd47834c62c2e5e35ac82 100644
--- a/gajim/common/config.py
+++ b/gajim/common/config.py
@@ -54,7 +54,6 @@ class Option(IntEnum):
 opt_str = ['string', 0]
 opt_bool = ['boolean', 0]
 opt_color = ['color', r'(#[0-9a-fA-F]{6})|rgb\(\d+,\d+,\d+\)|rgba\(\d+,\d+,\d+,[01]\.?\d*\)']
-opt_one_window_types = ['never', 'always', 'always_with_roster', 'peracct', 'pertype']
 
 
 class Config:
diff --git a/gajim/data/gui/preferences_window.ui b/gajim/data/gui/preferences_window.ui
index 706d2ea14e0a01318280fc36ca8b56237ef24ef8..cffdd2bf7ec5680c0f344b96454c7592b3b1584d 100644
--- a/gajim/data/gui/preferences_window.ui
+++ b/gajim/data/gui/preferences_window.ui
@@ -61,24 +61,31 @@
   </object>
   <object class="GtkListStore" id="one_window_type_liststore">
     <columns>
-      <!-- column-name item -->
+      <!-- column-name text -->
+      <column type="gchararray"/>
+      <!-- column-name setting -->
       <column type="gchararray"/>
     </columns>
     <data>
       <row>
         <col id="0" translatable="yes">Detached contact list with detached chats</col>
+        <col id="1">never</col>
       </row>
       <row>
         <col id="0" translatable="yes">Detached contact list with single chat</col>
+        <col id="1">always</col>
       </row>
       <row>
         <col id="0" translatable="yes">Single window for everything</col>
+        <col id="1">always_with_roster</col>
       </row>
       <row>
         <col id="0" translatable="yes">Detached contact list with chat grouped by account</col>
+        <col id="1" translatable="yes">peracct</col>
       </row>
       <row>
         <col id="0" translatable="yes">Detached contact list with chat grouped by type</col>
+        <col id="1">pertype</col>
       </row>
     </data>
   </object>
@@ -262,6 +269,7 @@
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="model">one_window_type_liststore</property>
+                        <property name="id_column">1</property>
                         <signal name="changed" handler="on_one_window_type_combo_changed" swapped="no"/>
                         <child>
                           <object class="GtkCellRendererText"/>
diff --git a/gajim/gtk/preferences.py b/gajim/gtk/preferences.py
index 4509b8409078019657bd2cd274d8936d48116345..43ce9ade6c9deae218c68a121772851f46d8cdb6 100644
--- a/gajim/gtk/preferences.py
+++ b/gajim/gtk/preferences.py
@@ -29,7 +29,6 @@
 from gajim.common import app
 from gajim.common import configpaths
 from gajim.common import helpers
-from gajim.common import config as c_config
 from gajim.common import idle
 from gajim.common.nec import NetworkEvent
 from gajim.common.i18n import _
@@ -69,12 +68,8 @@ def __init__(self):
         ### General tab ###
         ## Behavior of Windows and Tabs
         # Set default for single window type
-        choices = c_config.opt_one_window_types
-        type_ = app.config.get('one_message_window')
-        if type_ in choices:
-            self._ui.one_window_type_combobox.set_active(choices.index(type_))
-        else:
-            self._ui.one_window_type_combobox.set_active(0)
+        self._ui.one_window_type_combobox.set_active_id(
+            app.config.get('one_message_window'))
 
         # Show roster on startup
         self._ui.show_roster_on_startup.set_active_id(
@@ -495,10 +490,8 @@ def _get_all_muc_controls(self):
                 yield ctrl
 
     ### General tab ###
-    def on_one_window_type_combo_changed(self, widget):
-        active = widget.get_active()
-        config_type = c_config.opt_one_window_types[active]
-        app.config.set('one_message_window', config_type)
+    def on_one_window_type_combo_changed(self, combobox):
+        app.config.set('one_message_window', combobox.get_active_id())
         app.interface.msg_win_mgr.reconfig()
 
     def on_show_roster_on_startup_changed(self, combobox):
diff --git a/gajim/message_window.py b/gajim/message_window.py
index 026f57c95c45ebdb81f0eb83a9dc316370aa4c9d..3c87bab05b3b6486ee6a8aa67ac6e2c434fc8da5 100644
--- a/gajim/message_window.py
+++ b/gajim/message_window.py
@@ -31,7 +31,6 @@
 from gi.repository import GLib
 from gi.repository import Gio
 
-from gajim import common
 from gajim.common import app
 from gajim.common import ged
 from gajim.common.i18n import Q_
@@ -56,7 +55,13 @@
 
 log = logging.getLogger('gajim.message_window')
 
-####################
+
+WINDOW_TYPES = ['never',
+                'always',
+                'always_with_roster',
+                'peracct',
+                'pertype']
+
 
 class MessageWindow(EventHelper):
     """
@@ -877,7 +882,7 @@ class MessageWindowMgr(GObject.GObject):
             'window-delete': (GObject.SignalFlags.RUN_LAST, None, (object,)),
     }
 
-    # These constants map to common.config.opt_one_window_types indices
+    # These constants map to WINDOW_TYPES indices
     (
             ONE_MSG_WINDOW_NEVER,
             ONE_MSG_WINDOW_ALWAYS,
@@ -885,6 +890,7 @@ class MessageWindowMgr(GObject.GObject):
             ONE_MSG_WINDOW_PERACCT,
             ONE_MSG_WINDOW_PERTYPE,
     ) = range(5)
+
     # A key constant for the main window in ONE_MSG_WINDOW_ALWAYS mode
     MAIN_WIN = 'main'
     # A key constant for the main window in ONE_MSG_WINDOW_ALWAYS_WITH_ROSTER mode
@@ -904,7 +910,7 @@ def __init__(self, parent_window, parent_paned):
 
         # Map the mode to a int constant for frequent compares
         mode = app.config.get('one_message_window')
-        self.mode = common.config.opt_one_window_types.index(mode)
+        self.mode = WINDOW_TYPES.index(mode)
 
         self.parent_win = parent_window
         self.parent_paned = parent_paned
@@ -1198,10 +1204,10 @@ def reconfig(self):
         for w in self.windows():
             self.save_state(w)
         mode = app.config.get('one_message_window')
-        if self.mode == common.config.opt_one_window_types.index(mode):
+        if self.mode == WINDOW_TYPES.index(mode):
             # No change
             return
-        self.mode = common.config.opt_one_window_types.index(mode)
+        self.mode = WINDOW_TYPES.index(mode)
 
         controls = []
         for w in self.windows():