diff --git a/gui/manager.glade b/gui/manager.glade
index d71c9ed8ce71f870fcf20e82734779a88dfe60ae..65d7bed36efad2da09b8fea838b8e93b1cfa64c8 100644
--- a/gui/manager.glade
+++ b/gui/manager.glade
@@ -666,10 +666,10 @@
                         <property name="search_column">0</property>
                         <property name="fixed_height_mode">True</property>
                         <property name="show_expanders">False</property>
-                        <signal name="button-press-event" handler="on_list_treeview_button_press_event" swapped="no"/>
-                        <signal name="move-cursor" handler="on_list_treeview_move_cursor" swapped="no"/>
                         <child internal-child="selection">
-                          <object class="GtkTreeSelection" id="list_treeview_selection"/>
+                          <object class="GtkTreeSelection" id="list_treeview_selection">
+                            <signal name="changed" handler="on_list_treeview_selection_changed" swapped="no"/>
+                          </object>
                         </child>
                         <child>
                           <object class="GtkTreeViewColumn" id="installed_column">
diff --git a/pamac-install.py b/pamac-install.py
index 606a1f7c9dc441a944d1c566c4eb39801184bb5f..dda28a6c555b28afdff9edfd5a9f76a096e63be7 100755
--- a/pamac-install.py
+++ b/pamac-install.py
@@ -112,5 +112,4 @@ elif updates:
 else:
 	common.write_pid_file()
 	pkgs_to_install = argv[1:]
-	main.mode = 'manager'
 	install(pkgs_to_install)
diff --git a/pamac/main.py b/pamac/main.py
index f11f109f7c4429e64de0d4a0d5c390755437eab8..0d7b6bcb995b3d98b3a192b2c45d161fc376a2d1 100644
--- a/pamac/main.py
+++ b/pamac/main.py
@@ -42,8 +42,6 @@ search_list = interface.get_object('search_list')
 search_selection = interface.get_object('search_treeview_selection')
 packages_list = interface.get_object('packages_list')
 list_selection = interface.get_object('list_treeview_selection')
-installed_column = interface.get_object('installed_column')
-name_column = interface.get_object('name_column')
 groups_list = interface.get_object('groups_list')
 groups_selection = interface.get_object('groups_treeview_selection')
 state_list = interface.get_object('state_list')
@@ -104,7 +102,8 @@ search_icon = Pixbuf.new_from_file('/usr/share/pamac/icons/22x22/status/package-
  
 pkg_name_list = set()
 current_filter = (None, None)
-mode = 'manager'
+mode = None
+liststore_clearing = False
 states = [_('Installed'), _('Uninstalled'), _('Orphans'), _('To install'), _('To remove')]
 for state in states:
 	state_list.append([state])
@@ -210,7 +209,10 @@ def refresh_packages_list():
 		ManagerWindow.get_root_window().set_cursor(Gdk.Cursor(Gdk.CursorType.WATCH))
 		while Gtk.events_pending():
 			Gtk.main_iteration()
+		global liststore_clearing
+		liststore_clearing = True
 		packages_list.clear()
+		liststore_clearing = False
 		if not pkg_name_list:
 			packages_list.append([_('No package found'), False, False, False, search_icon, '', 0, ''])
 		else:
@@ -376,7 +378,7 @@ def set_transaction_sum():
 		while i < len(transaction_dict['to_remove']):
 			transaction_sum.append([' ', transaction_dict['to_remove'][i]])
 			i += 1
-	if mode == 'manager':
+	if mode != 'updater':
 		if transaction_dict['to_update']:
 			transaction_sum.append([_('To update')+':', transaction_dict['to_update'][0][0]])
 			i = 1
@@ -959,26 +961,27 @@ class Handler:
 		current_filter = ('search', search_entry.get_text().split())
 		set_packages_list()
 
-	def on_list_treeview_move_cursor(self, treeview, step, count):
-		liststore, treeiter = treeview.get_selection().get_selected()
-		if treeiter:
-			if packages_list[treeiter][0] != _('No package found'):
-				if packages_list[treeiter][0] in transaction.localpkgs.keys():
-					set_infos_list(transaction.localpkgs[packages_list[treeiter][0]])
-					set_deps_list(transaction.localpkgs[packages_list[treeiter][0]], "local")
-					set_details_list(transaction.localpkgs[packages_list[treeiter][0]], "local")
-					set_files_list(transaction.localpkgs[packages_list[treeiter][0]])
-					files_scrolledwindow.set_visible(True)
-				elif packages_list[treeiter][0] in transaction.syncpkgs.keys():
-					set_infos_list(transaction.syncpkgs[packages_list[treeiter][0]])
-					set_deps_list(transaction.syncpkgs[packages_list[treeiter][0]], "sync")
-					set_details_list(transaction.syncpkgs[packages_list[treeiter][0]], "sync")
-					files_scrolledwindow.set_visible(False)
-
-	def on_list_treeview_button_press_event(self, treeview, event):
-		if event.button == 1: # left click
-			treepath, viewcolumn, x, y = treeview.get_path_at_pos(int(event.x), int(event.y))
-			treeiter = packages_list.get_iter(treepath)
+	#~ def on_list_treeview_button_press_event(self, treeview, event):
+		#~ if event.button == 1: # left click
+			#~ treepath, viewcolumn, x, y = treeview.get_path_at_pos(int(event.x), int(event.y))
+			#~ treeiter = packages_list.get_iter(treepath)
+			#~ if treeiter:
+				#~ if packages_list[treeiter][0] != _('No package found'):
+					#~ if packages_list[treeiter][0] in transaction.localpkgs.keys():
+						#~ set_infos_list(transaction.localpkgs[packages_list[treeiter][0]])
+						#~ set_deps_list(transaction.localpkgs[packages_list[treeiter][0]], "local")
+						#~ set_details_list(transaction.localpkgs[packages_list[treeiter][0]], "local")
+						#~ set_files_list(transaction.localpkgs[packages_list[treeiter][0]])
+						#~ files_scrolledwindow.set_visible(True)
+					#~ elif packages_list[treeiter][0] in transaction.syncpkgs.keys():
+						#~ set_infos_list(transaction.syncpkgs[packages_list[treeiter][0]])
+						#~ set_deps_list(transaction.syncpkgs[packages_list[treeiter][0]], "sync")
+						#~ set_details_list(transaction.syncpkgs[packages_list[treeiter][0]], "sync")
+						#~ files_scrolledwindow.set_visible(False)
+
+	def on_list_treeview_selection_changed(self, treeview):
+		if not liststore_clearing:
+			liststore, treeiter = list_selection.get_selected()
 			if treeiter:
 				if packages_list[treeiter][0] != _('No package found'):
 					if packages_list[treeiter][0] in transaction.localpkgs.keys():