Index: java/ProxySettings/src/net/oni2/ProxySettings.java
===================================================================
--- java/ProxySettings/src/net/oni2/ProxySettings.java	(revision 854)
+++ java/ProxySettings/src/net/oni2/ProxySettings.java	(revision 856)
@@ -69,9 +69,6 @@
 					return true;
 				} catch (MalformedURLException e) {
-					e.printStackTrace();
 				} catch (SocketTimeoutException e) {
-					e.printStackTrace();
 				} catch (IOException e) {
-					e.printStackTrace();
 				}
 			}
Index: java/installer2/locales/net/oni2/aeinstaller/localization/SettingsDialog_de.properties
===================================================================
--- java/installer2/locales/net/oni2/aeinstaller/localization/SettingsDialog_de.properties	(revision 854)
+++ java/installer2/locales/net/oni2/aeinstaller/localization/SettingsDialog_de.properties	(revision 856)
@@ -6,5 +6,5 @@
 lblLaF=Oberflächendesign:
 
-panCommon=Allgemeine Einstellungen
+panCommon=Allgemein
 lblNotifyOnStart=Benachrichtige über Aktualisierungen beim Start:
 lblNotifyDepsAfterInstall=Benachrichtige über Abhängigkeiten nach der Installation:
@@ -18,4 +18,14 @@
 lblCopyOutro=Kopiere Abspannvideo bei der Installation:
 
+panProxy=Proxy
+chkUseProxy=Proxy verwenden:
+lblProxyHost=Hostname oder IP:
+lblProxyPort=Portnummer:
+
+proxyIllegalPort.text=Der Wert für Portnummer muss eine Ganzzahl zwischen 1 und 65535 sein.
+proxyIllegalPort.title=Ungültige Portnummer
+proxyVerifyFailed.text=Es konnte keine Verbindung zu dem Angegeben Host/Port hergestellt werden.\nEntweder die Verwendung des Proxies deaktivieren oder Daten korrigiren.
+proxyVerifyFailed.title=Verifizierung der Proxyeinstellungen fehlgeschlagen
+
 newLaF.text=Ein neues Oberflächendesign wurde gewählt.\nBitte die Anwendung neu starten damit die Änderung wirksam wird.
 newLaF.title=Neustarten um Änderung anzuwenden
Index: java/installer2/src/net/oni2/aeinstaller/gui/settings/SettingsDialog.java
===================================================================
--- java/installer2/src/net/oni2/aeinstaller/gui/settings/SettingsDialog.java	(revision 854)
+++ java/installer2/src/net/oni2/aeinstaller/gui/settings/SettingsDialog.java	(revision 856)
@@ -11,4 +11,5 @@
 import javax.swing.JDialog;
 import javax.swing.JOptionPane;
+import javax.swing.JTextField;
 import javax.swing.KeyStroke;
 import javax.swing.UIManager;
@@ -42,4 +43,8 @@
 	private JCheckBox chkCopyOutro;
 
+	private JCheckBox chkUseProxy;
+	private JTextField txtProxyHost;
+	private JTextField txtProxyPort;
+
 	/**
 	 * Open the settings
@@ -70,4 +75,5 @@
 	private void initValues() {
 		SettingsManager set = SettingsManager.getInstance();
+		ProxySettings prox = ProxySettings.getInstance();
 
 		laFModel = new LaFComboModel();
@@ -79,8 +85,53 @@
 		chkCopyIntro.setSelected(set.get("copyintro", false));
 		chkCopyOutro.setSelected(set.get("copyoutro", true));
+
+		chkUseProxy.setSelected(prox.isUseProxy());
+		txtProxyHost.setText(prox.getHostOrIp());
+		txtProxyPort.setText(String.valueOf(prox.getPort()));
 	}
 
 	@SuppressWarnings("unused")
 	private boolean save() {
+
+		boolean proxyUse = chkUseProxy.isSelected();
+		int proxyPort = -1;
+		try {
+			proxyPort = Integer.valueOf(txtProxyPort.getText());
+		} catch (NumberFormatException e) {
+		}
+		if ((proxyPort < 1) || (proxyPort > 65535)) {
+			JOptionPane.showMessageDialog(this,
+					bundle.getString("proxyIllegalPort.text"),
+					bundle.getString("proxyIllegalPort.title"),
+					JOptionPane.ERROR_MESSAGE);
+			return false;
+		}
+		String proxyHost = txtProxyHost.getText();
+
+		ProxySettings prox = ProxySettings.getInstance();
+		if (!prox.getHostOrIp().equalsIgnoreCase(proxyHost)
+				|| (prox.getPort() != proxyPort)
+				|| (prox.isUseProxy() != proxyUse)) {
+			boolean proxyOldUse = prox.isUseProxy();
+			int proxyOldPort = prox.getPort();
+			String proxyOldHost = prox.getHostOrIp();
+
+			prox.setUseProxy(proxyUse);
+			prox.setHostOrIp(proxyHost);
+			prox.setPort(proxyPort);
+			if (!prox.validate()) {
+				JOptionPane.showMessageDialog(this,
+						bundle.getString("proxyVerifyFailed.text"),
+						bundle.getString("proxyVerifyFailed.title"),
+						JOptionPane.ERROR_MESSAGE);
+				prox.setUseProxy(proxyOldUse);
+				prox.setHostOrIp(proxyOldHost);
+				prox.setPort(proxyOldPort);
+				return false;
+			}
+
+			prox.serializeToFile(Paths.getProxySettingsFilename());
+		}
+
 		SettingsManager set = SettingsManager.getInstance();
 
@@ -102,10 +153,6 @@
 					JOptionPane.INFORMATION_MESSAGE);
 		}
-		
-		ProxySettings prox = ProxySettings.getInstance();
-		prox.serializeToFile(Paths.getProxySettingsFilename());
 
 		return true;
 	}
-
 }
Index: java/installer2/src/net/oni2/aeinstaller/gui/settings/SettingsDialog.yml
===================================================================
--- java/installer2/src/net/oni2/aeinstaller/gui/settings/SettingsDialog.yml	(revision 854)
+++ java/installer2/src/net/oni2/aeinstaller/gui/settings/SettingsDialog.yml	(revision 856)
@@ -21,4 +21,16 @@
            >chkCopyIntro               [pref]
            >chkCopyOutro               [pref]
+    - JPanel(name=panProxy, groupTitle=panProxy):
+      - JLabel(name=empty)
+      - JCheckBox(name=chkUseProxy, horizontalTextPosition=LEADING, text=chkUseProxy)
+      - JLabel(name=lblProxyHost, text=lblProxyHost)
+      - JTextField(name=txtProxyHost)
+      - JLabel(name=lblProxyPort, text=lblProxyPort)
+      - JTextField(name=txtProxyPort)
+      - MigLayout: |
+           [min]           [18]            [grow]
+           >chkUseProxy+2                  empty   [pref]
+           >lblProxyHost   txtProxyHost+*          [pref]
+           >lblProxyPort   txtProxyPort+*          [pref]
     - JPanel(name=panUI, groupTitle=panUI):
       - JLabel(name=lblLaF, text=lblLaF)
@@ -30,4 +42,5 @@
          [grow]
          panCommon               [pref]
+         panProxy                [pref]
          panUI                   [pref]
          >btnOk+*=1,btnCancel=1  [min]
Index: java/installer2/src/net/oni2/aeinstaller/localization/SettingsDialog.properties
===================================================================
--- java/installer2/src/net/oni2/aeinstaller/localization/SettingsDialog.properties	(revision 854)
+++ java/installer2/src/net/oni2/aeinstaller/localization/SettingsDialog.properties	(revision 856)
@@ -6,5 +6,5 @@
 lblLaF=GUI theme:
 
-panCommon=Common settings
+panCommon=Common
 lblNotifyOnStart=Notify about updates on startup:
 lblNotifyDepsAfterInstall=Only notify about dependencies after installation:
@@ -19,4 +19,14 @@
 lblCopyOutro=Enable ending video on installation:
 
+panProxy=Proxy
+chkUseProxy=Use proxy:
+lblProxyHost=Hostname or IP:
+lblProxyPort=Port number:
+
+proxyIllegalPort.text=The value entered for the proxy port number has to be an integer number between 1 and 65535.
+proxyIllegalPort.title=Invalid port number
+proxyVerifyFailed.text=No connection could be established to the given host+port combination.\nEither disable proxy usage or correct the data entered.
+proxyVerifyFailed.title=Verifying proxy settings failed
+
 newLaF.text=A new GUI theme was selected.\nPlease restart the application in order to apply the changes.
 newLaF.title=Restart to apply theme
