Index: /AE/Setup/Windows/AEI.iss
===================================================================
--- /AE/Setup/Windows/AEI.iss	(revision 854)
+++ /AE/Setup/Windows/AEI.iss	(revision 855)
@@ -1,4 +1,4 @@
 #define AppId "{{B67333BB-1CF9-4EFD-A40B-E25B5CB4C8A7}}"
-#define AppVersion "1"
+#define AppVersion "1.1"
 #define AppLongName "Anniversary Edition of Oni"
 #define AppShortName "Anniversary-Edition-Setup"
@@ -65,10 +65,12 @@
 
 [Run]
-Filename: "{app}\AE\AEInstaller\JRE\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; Parameters: "-Dsun.java2d.d3d=false -jar AEInstaller2Updater.jar"; Flags: runasoriginaluser; Check: not IsJavaInstalled
-Filename: "{code:GetJavaPath}\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; Parameters: "-Dsun.java2d.d3d=false -jar AEInstaller2Updater.jar"; Flags: runasoriginaluser; Check: IsJavaInstalled
+Filename: "{app}\AE\AEInstaller\JRE\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; Parameters: "-Dsun.java2d.d3d=false -jar AEInstaller2Updater.jar"; Flags: runasoriginaluser; Check: not IsJavaInstalled; BeforeInstall: WriteProxyData
+Filename: "{code:GetJavaPath}\bin\javaw.exe"; WorkingDir: "{app}\AE\AEInstaller"; Parameters: "-Dsun.java2d.d3d=false -jar AEInstaller2Updater.jar"; Flags: runasoriginaluser; Check: IsJavaInstalled; BeforeInstall: WriteProxyData
 
 
 [Code]
 var
+  PageUseProxy: TInputOptionWizardPage;
+  PageProxyData: TInputQueryWizardPage;
   javaPath: String;
 
@@ -185,4 +187,13 @@
         Components.Checked[i] := true;
       end;
+
+  PageUseProxy := CreateInputOptionPage(wpSelectTasks, 'Internet connection type', '', 'Do you require to use a proxy to connect to the internet?', true, false);
+  PageUseProxy.Add('Direct connection');
+  PageUseProxy.Add('Use proxy');
+  PageUseProxy.Values[0] := true;
+
+  PageProxyData := CreateInputQueryPage(PageUseProxy.ID, 'Proxy data', '', 'Please enter the data required to connect to your proxy.');
+  PageProxyData.Add('Hostname or IP:', False);
+  PageProxyData.Add('Port:', False);
 end;
 
@@ -207,8 +218,18 @@
 
 
+function EnterProxyData(): Boolean;
+begin
+  Result := PageUseProxy.SelectedValueIndex = 1;
+end;
+
 function ShouldSkipPage(PageID: Integer): Boolean;
 begin
-  Result := PageID = wpSelectComponents;
-end;
+  Result := false;
+  if (PageID = wpSelectComponents) then
+    Result := true;
+  if (PageID = PageProxyData.ID) then
+    Result := not EnterProxyData();
+end;
+
 
 function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;
@@ -218,4 +239,17 @@
   Result := Result + MemoGroupInfo + NewLine;
   Result := Result + MemoTasksInfo + NewLine;
-end;
-
+
+  if (EnterProxyData()) then
+    Result := Result + NewLine + 'Set proxy configuration';
+end;
+
+
+procedure WriteProxyData();
+begin
+  if (EnterProxyData()) then
+  begin
+    SaveStringToFile(ExpandConstant('{app}') + '\AE\AEInstaller\AEI-ProxySettings.xml',
+        '<?xml version="1.0" ?><Proxy><useProxy>true</useProxy><hostOrIp>'+PageProxyData.Values[0]+'</hostOrIp><port>'+PageProxyData.Values[1]+'</port></Proxy>',
+        False);
+  end;
+end;
