diff --git a/src/gajim.py b/src/gajim.py
index 08e40fd1fc4718d3ae3d6445f4fff3ca0f8e66b3..bc1077ff52c7a2b051d402c24d2f9c8831ba8926 100644
--- a/src/gajim.py
+++ b/src/gajim.py
@@ -387,7 +387,7 @@ def on_exit():
 	if os.path.exists(pid_filename):
 		os.remove(pid_filename)
 	# Shutdown GUI and save config
-	gajim.interface.roster.quit_gtkgui_interface()
+	gajim.interface.roster.prepare_quit()
 	if sys.platform == 'darwin':
 		try:
 			osx.shutdown()
diff --git a/src/roster_window.py b/src/roster_window.py
index 8bbc645d84ba777da8070c86a867ff95d57b9266..8c79d9589530beddb2e4c0616bed2e0e77c0265b 100644
--- a/src/roster_window.py
+++ b/src/roster_window.py
@@ -2206,9 +2206,7 @@ class RosterWindow:
 			self.on_quit_request()
 		return True # do NOT destroy the window
 
-	def quit_gtkgui_interface(self):
-		'''When we quit the gtk interface :
-		tell that to the core and exit gtk'''
+	def prepare_quit(self):
 		msgwin_width_adjust = 0
 
 		# in case show_roster_on_start is False and roster is never shown
@@ -2239,6 +2237,10 @@ class RosterWindow:
 			self.close_all(account)
 		if gajim.interface.systray_enabled:
 			gajim.interface.hide_systray()
+
+	def quit_gtkgui_interface(self):
+		'''When we quit the gtk interface : exit gtk'''
+		self.prepare_quit()
 		gtk.main_quit()
 
 	def on_quit_request(self, widget=None):