Index: AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTable.java
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTable.java	(revision 639)
+++ AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTable.java	(revision 645)
@@ -26,6 +26,8 @@
 import javax.swing.SortOrder;
 import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.RowSorterEvent;
 import javax.swing.table.TableRowSorter;
 
+import net.oni2.aeinstaller.backend.Settings;
 import net.oni2.aeinstaller.backend.mods.Mod;
 import net.oni2.aeinstaller.backend.mods.Type;
@@ -68,5 +70,10 @@
 
 		List<RowSorter.SortKey> sortKeys = new ArrayList<RowSorter.SortKey>();
-		sortKeys.add(new RowSorter.SortKey(1, SortOrder.ASCENDING));
+
+		int sortCol = Settings.getInstance().get("modSortColumn", 1);
+		SortOrder sortOrder = SortOrder.valueOf(Settings.getInstance().get(
+				"modSortOrder", "ASCENDING"));
+
+		sortKeys.add(new RowSorter.SortKey(sortCol, sortOrder));
 		sorter.setSortKeys(sortKeys);
 
@@ -180,4 +187,20 @@
 	public void setFilter(Type type, int downloadState) {
 		sorter.setRowFilter(new ModTableFilter(type, downloadState));
+	}
+
+	@Override
+	public void sorterChanged(RowSorterEvent evt) {
+		super.sorterChanged(evt);
+		if (evt.getType() == RowSorterEvent.Type.SORT_ORDER_CHANGED) {
+			@SuppressWarnings("unchecked")
+			RowSorter<ModTableModel> rs = (RowSorter<ModTableModel>) getRowSorter();
+			List<? extends RowSorter.SortKey> keys = rs.getSortKeys();
+			if (keys.size() > 0) {
+				int col = keys.get(0).getColumn();
+				SortOrder so = keys.get(0).getSortOrder();
+				Settings.getInstance().put("modSortColumn", col);
+				Settings.getInstance().put("modSortOrder", so.toString());
+			}
+		}
 	}
 
@@ -273,6 +296,5 @@
 						setRowSelectionInterval(i, i);
 						JViewport viewport = (JViewport) getParent();
-						Rectangle rect = getCellRect(i, 0,
-								true);
+						Rectangle rect = getCellRect(i, 0, true);
 						Rectangle r2 = viewport.getVisibleRect();
 						scrollRectToVisible(new Rectangle(rect.x, rect.y,
