Index: AE/installer2/src/net/oni2/aeinstaller/AEInstaller.properties
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/AEInstaller.properties	(revision 638)
+++ AE/installer2/src/net/oni2/aeinstaller/AEInstaller.properties	(revision 639)
@@ -1,2 +1,2 @@
 appname=AE Installer 2
-appversion=0.95
+appversion=0.96
Index: AE/installer2/src/net/oni2/aeinstaller/backend/mods/Mod.java
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/backend/mods/Mod.java	(revision 638)
+++ AE/installer2/src/net/oni2/aeinstaller/backend/mods/Mod.java	(revision 639)
@@ -31,4 +31,5 @@
 	private ECompatiblePlatform platform = null;
 	private String version = "";
+	private String submitter = "";
 	private String creator = "";
 	private EBSLInstallType bslInstallType = EBSLInstallType.NORMAL;
@@ -68,4 +69,5 @@
 		}
 		version = nm.getVersion();
+		submitter = nm.getName();
 		creator = nm.getCreator();
 		if (nm.getBody() != null)
@@ -256,4 +258,11 @@
 
 	/**
+	 * @return Submitter of mod
+	 */
+	public String getSubmitter() {
+		return submitter;
+	}
+
+	/**
 	 * @return Creator of mod
 	 */
@@ -389,3 +398,4 @@
 		return getPackageNumber() - o.getPackageNumber();
 	}
+
 }
Index: AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.java
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.java	(revision 638)
+++ AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.java	(revision 639)
@@ -8,5 +8,4 @@
 import java.awt.event.ItemListener;
 import java.io.File;
-import java.io.IOException;
 import java.net.URL;
 import java.util.Date;
@@ -94,4 +93,5 @@
 	private JLabel lblDownloadSizeVal;
 
+	private JLabel lblTitleVal;
 	private JLabel lblSubmitterVal;
 	private JLabel lblCreatorVal;
@@ -560,4 +560,5 @@
 	@Override
 	public void modSelectionChanged(ModTable source, Mod m) {
+		lblTitleVal.setText("");
 		lblSubmitterVal.setText("");
 		lblCreatorVal.setText("");
@@ -568,5 +569,6 @@
 		lblVersionNumberVal.setText("");
 		if (m != null) {
-			lblSubmitterVal.setText(m.getName());
+			lblTitleVal.setText(m.getName());
+			lblSubmitterVal.setText(m.getSubmitter());
 			lblCreatorVal.setText(m.getCreator());
 			lblDescriptionVal.setText(m.getDescription());
@@ -706,5 +708,5 @@
 		try {
 			Desktop.getDesktop().open(Paths.getEditionBasePath());
-		} catch (IOException e) {
+		} catch (Exception e) {
 			e.printStackTrace();
 		}
Index: AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.yml
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.yml	(revision 638)
+++ AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.yml	(revision 639)
@@ -69,4 +69,6 @@
                  lblDownloadSize,lblDownloadSizeVal     [min]
         - JPanel(name=panInfo):
+            - JLabel(name=lblTitle, text=lblTitle.text)
+            - JLabel(name=lblTitleVal)
             - JLabel(name=lblSubmitter, text=lblSubmitter.text)
             - JLabel(name=lblSubmitterVal)
@@ -86,4 +88,5 @@
             - MigLayout: |
                  [min]             [grow]
+                 >lblTitle         lblTitleVal         [min]
                  >lblSubmitter     lblSubmitterVal     [min]
                  >lblCreator       lblCreatorVal       [min]
Index: AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTable.java
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTable.java	(revision 638)
+++ AE/installer2/src/net/oni2/aeinstaller/gui/modtable/ModTable.java	(revision 639)
@@ -2,6 +2,9 @@
 
 import java.awt.Desktop;
+import java.awt.Rectangle;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
@@ -18,9 +21,9 @@
 import javax.swing.JPopupMenu;
 import javax.swing.JTable;
+import javax.swing.JViewport;
 import javax.swing.ListSelectionModel;
 import javax.swing.RowSorter;
 import javax.swing.SortOrder;
 import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
 import javax.swing.table.TableRowSorter;
 
@@ -49,89 +52,7 @@
 
 		setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
-		getSelectionModel().addListSelectionListener(
-				new ListSelectionListener() {
-					@Override
-					public void valueChanged(ListSelectionEvent e) {
-						int viewRow = getSelectedRow();
-						if (viewRow < 0) {
-							notifyModSelectionListeners(null);
-						} else {
-							Mod mod = (Mod) getValueAt(viewRow, -1);
-							notifyModSelectionListeners(mod);
-						}
-					}
-				});
-		addMouseListener(new MouseAdapter() {
-			private void common(MouseEvent e) {
-				int r = rowAtPoint(e.getPoint());
-				if (r >= 0 && r < getRowCount())
-					setRowSelectionInterval(r, r);
-				else
-					clearSelection();
-
-				int rowindex = getSelectedRow();
-				if (rowindex >= 0) {
-					if (e.isPopupTrigger()
-							&& e.getComponent() instanceof JTable) {
-						final Mod mod = (Mod) getValueAt(rowindex, -1);
-
-						JPopupMenu popup = new JPopupMenu();
-
-						if (mod.isLocalAvailable()) {
-							// Open package folder item
-							JMenuItem openModFolder = new JMenuItem(
-									bundle.getString("openModFolder.text"));
-							openModFolder
-									.addActionListener(new ActionListener() {
-										@Override
-										public void actionPerformed(
-												ActionEvent arg0) {
-											try {
-												Desktop.getDesktop().open(
-														mod.getLocalPath());
-											} catch (IOException e) {
-												e.printStackTrace();
-											}
-										}
-									});
-							popup.add(openModFolder);
-						}
-
-						if (mod.getUrl() != null) {
-							// Open Depot page item
-							JMenuItem openDepotPage = new JMenuItem(
-									bundle.getString("openDepotPage.text"));
-							openDepotPage
-									.addActionListener(new ActionListener() {
-										@Override
-										public void actionPerformed(
-												ActionEvent arg0) {
-											try {
-												Desktop.getDesktop().browse(
-														mod.getUrl());
-											} catch (IOException e) {
-												e.printStackTrace();
-											}
-										}
-									});
-							popup.add(openDepotPage);
-						}
-
-						if (popup.getSubElements().length > 0)
-							popup.show(e.getComponent(), e.getX(), e.getY());
-					}
-				}
-			}
-
-			@Override
-			public void mousePressed(MouseEvent e) {
-				common(e);
-			}
-
-			@Override
-			public void mouseReleased(MouseEvent e) {
-				common(e);
-			}
-		});
+		getSelectionModel().addListSelectionListener(this);
+		addMouseListener(new MouseEventHandler());
+		addKeyListener(new KeyEventHandler());
 		// To get checkbox-cells with background of row
 		((JComponent) getDefaultRenderer(Boolean.class)).setOpaque(true);
@@ -260,3 +181,106 @@
 		sorter.setRowFilter(new ModTableFilter(type, downloadState));
 	}
+
+	@Override
+	public void valueChanged(ListSelectionEvent e) {
+		super.valueChanged(e);
+		int viewRow = getSelectedRow();
+		if (viewRow < 0) {
+			notifyModSelectionListeners(null);
+		} else {
+			Mod mod = (Mod) getValueAt(viewRow, -1);
+			notifyModSelectionListeners(mod);
+		}
+	}
+
+	private class MouseEventHandler extends MouseAdapter {
+		private void mouseEventProcessing(MouseEvent e) {
+			int r = rowAtPoint(e.getPoint());
+			if (r >= 0 && r < getRowCount())
+				setRowSelectionInterval(r, r);
+			else
+				clearSelection();
+
+			int rowindex = getSelectedRow();
+			if (rowindex >= 0) {
+				if (e.isPopupTrigger() && e.getComponent() instanceof JTable) {
+					final Mod mod = (Mod) getValueAt(rowindex, -1);
+
+					JPopupMenu popup = new JPopupMenu();
+
+					if (mod.isLocalAvailable()) {
+						// Open package folder item
+						JMenuItem openModFolder = new JMenuItem(
+								bundle.getString("openModFolder.text"));
+						openModFolder.addActionListener(new ActionListener() {
+							@Override
+							public void actionPerformed(ActionEvent arg0) {
+								try {
+									Desktop.getDesktop().open(
+											mod.getLocalPath());
+								} catch (IOException e) {
+									e.printStackTrace();
+								}
+							}
+						});
+						popup.add(openModFolder);
+					}
+
+					if (mod.getUrl() != null) {
+						// Open Depot page item
+						JMenuItem openDepotPage = new JMenuItem(
+								bundle.getString("openDepotPage.text"));
+						openDepotPage.addActionListener(new ActionListener() {
+							@Override
+							public void actionPerformed(ActionEvent arg0) {
+								try {
+									Desktop.getDesktop().browse(mod.getUrl());
+								} catch (IOException e) {
+									e.printStackTrace();
+								}
+							}
+						});
+						popup.add(openDepotPage);
+					}
+
+					if (popup.getSubElements().length > 0)
+						popup.show(e.getComponent(), e.getX(), e.getY());
+				}
+			}
+		}
+
+		@Override
+		public void mousePressed(MouseEvent e) {
+			mouseEventProcessing(e);
+		}
+
+		@Override
+		public void mouseReleased(MouseEvent e) {
+			mouseEventProcessing(e);
+		}
+	}
+
+	private class KeyEventHandler extends KeyAdapter {
+		@Override
+		public void keyTyped(KeyEvent e) {
+			super.keyTyped(e);
+
+			if (e.getModifiers() == 0) {
+				String key = String.valueOf(e.getKeyChar()).toLowerCase();
+				for (int i = 0; i < getRowCount(); i++) {
+					Mod m = (Mod) getValueAt(i, -1);
+					if (m.getName().toLowerCase().startsWith(key)) {
+						setRowSelectionInterval(i, i);
+						JViewport viewport = (JViewport) getParent();
+						Rectangle rect = getCellRect(i, 0,
+								true);
+						Rectangle r2 = viewport.getVisibleRect();
+						scrollRectToVisible(new Rectangle(rect.x, rect.y,
+								(int) r2.getWidth(), (int) r2.getHeight()));
+						break;
+					}
+				}
+			}
+		}
+	}
 }
Index: AE/installer2/src/net/oni2/aeinstaller/localization/MainWin.properties
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/localization/MainWin.properties	(revision 638)
+++ AE/installer2/src/net/oni2/aeinstaller/localization/MainWin.properties	(revision 639)
@@ -42,4 +42,5 @@
 lblDownloadSize.text=Size of files to download: 
 
+lblTitle.text=Name:
 lblSubmitter.text=Submitter:
 lblCreator.text=Creator:
