diff --git a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/Controller.java b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/Controller.java
index 1d3bef002f2e3bc46be27605a5e5469de2a894f5..79a97e74367fd36aaef2894984b511e4d36d89dd 100644
--- a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/Controller.java
+++ b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/Controller.java
@@ -399,6 +399,12 @@ public class Controller extends BaseController
 	{
 		new DatePickerController(getStage(), this, currentDate);
 	}
+	
+	public void forceSettingsTab()
+	{
+		toggleAllTabsExceptSettings(true);
+		tabPane.getSelectionModel().select(tabSettings);
+	}
 
 	public void showConnectionErrorAlert(String errorMessage)
 	{		
@@ -799,18 +805,31 @@ public class Controller extends BaseController
 					VersionInformation serverVersion = connection.getServerVersion();
 					if(serverVersion.getVersionCode() < Integer.parseInt(Localization.getString(Strings.VERSION_CODE)))
 					{
-						Platform.runLater(()->{
-							AlertGenerator.showAlert(AlertType.WARNING,
-													Localization.getString(Strings.TITLE_WARNING), 
-													"",
-													Localization.getString(Strings.WARNING_SERVER_VERSION, serverVersion.getVersionName(), Localization.getString(Strings.VERSION_NAME)), 
-													icon, getStage(), null, false);				
-						
-							LoadingModal.closeModal();
-							categoryHandler = new CategoryHandler(null);				
-							toggleAllTabsExceptSettings(true);
-							tabPane.getSelectionModel().select(tabSettings);	
-						});
+						if(settings.getServerType().equals(ServerType.ONLINE))
+						{					
+							Platform.runLater(()->{
+								AlertGenerator.showAlert(AlertType.WARNING,
+														Localization.getString(Strings.TITLE_WARNING), 
+														"",
+														Localization.getString(Strings.WARNING_SERVER_VERSION, serverVersion.getVersionName(), Localization.getString(Strings.VERSION_NAME)), 
+														icon, getStage(), null, false);				
+							
+								LoadingModal.closeModal();
+								categoryHandler = new CategoryHandler(null);			
+								toggleAllTabsExceptSettings(true);
+								tabPane.getSelectionModel().select(tabSettings);	
+							});
+						}
+						else
+						{
+							Platform.runLater(()->{
+								LoadingModal.closeModal();
+								categoryHandler = new CategoryHandler(null);			
+								toggleAllTabsExceptSettings(true);
+								tabPane.getSelectionModel().select(tabSettings);
+								((LocalServerSettingsController)settingsController).handleIncompatibleServer();
+							});
+						}
 						return;
 					}
 				}
diff --git a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/LocalServerSettingsController.java b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/LocalServerSettingsController.java
index e6cfa96db17d40a04010d544dafee6dbbe2bba6c..9a4e7bdc7bfc3cc1733ae8e32c7e4401deaa7364 100644
--- a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/LocalServerSettingsController.java
+++ b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/LocalServerSettingsController.java
@@ -3,11 +3,11 @@ package de.deadlocker8.budgetmasterclient.ui.controller;
 import java.io.IOException;
 import java.util.ArrayList;
 
-import de.deadlocker8.budgetmaster.logic.LocalServerException;
-import de.deadlocker8.budgetmaster.logic.LocalServerHandler;
-import de.deadlocker8.budgetmaster.logic.LocalServerStatus;
 import de.deadlocker8.budgetmaster.logic.ServerType;
 import de.deadlocker8.budgetmaster.logic.Settings;
+import de.deadlocker8.budgetmaster.logic.localserver.LocalServerException;
+import de.deadlocker8.budgetmaster.logic.localserver.LocalServerHandler;
+import de.deadlocker8.budgetmaster.logic.localserver.LocalServerStatus;
 import de.deadlocker8.budgetmaster.logic.updater.Updater;
 import de.deadlocker8.budgetmaster.logic.utils.Colors;
 import de.deadlocker8.budgetmaster.logic.utils.FileHelper;
@@ -197,7 +197,7 @@ public class LocalServerSettingsController extends SettingsController
 						Platform.runLater(()->{
 							LoadingModal.closeModal();
 							AlertGenerator.showAlert(AlertType.ERROR, Localization.getString(Strings.TITLE_ERROR), "", Localization.getString(Strings.ERROR_LOCAL_SERVER_START, e.getMessage()), controller.getIcon(), controller.getStage(), null, false);
-							controller.refresh(controller.getFilterSettings());
+							controller.forceSettingsTab();
 						});
 						return;
 					}
@@ -227,6 +227,7 @@ public class LocalServerSettingsController extends SettingsController
 				});
 				break;
 			case MISSING:
+				controller.forceSettingsTab();
 				labelLocalServerStatus.setText(Localization.getString(Strings.LOCAL_SERVER_STATUS_NOT_PRESENT));
 				buttonLocalServerAction.setText(Localization.getString(Strings.LOCAL_SERVER_ACTION_NOT_PRESENT));
 				buttonLocalServerAction.setVisible(true);
@@ -258,6 +259,8 @@ public class LocalServerSettingsController extends SettingsController
 					});
 				});
 				break;
+			default:
+				break;
 		}
 	}
 
@@ -341,6 +344,43 @@ public class LocalServerSettingsController extends SettingsController
 		restartHandler.handleRestart(previousLanguage);
 		refreshLabelsUpdate();
 	}
+	
+	public void handleIncompatibleServer()
+	{
+		labelLocalServerStatus.setText(Localization.getString(Strings.LOCAL_SERVER_STATUS_INCOMPATIBLE));
+		buttonLocalServerAction.setText(Localization.getString(Strings.LOCAL_SERVER_ACTION_INCOMPATIBLE));
+		buttonLocalServerAction.setVisible(true);
+		buttonLocalServerAction.setDisable(false);
+
+		buttonLocalServerAction.setOnAction((event) -> {
+			buttonLocalServerAction.setDisable(true);
+			LoadingModal.showModal(Localization.getString(Strings.TITLE_MODAL), Localization.getString(Strings.LOAD_DOWNLOAD_LOCAL_SERVER), controller.getStage(), controller.getIcon());
+
+			Worker.runLater(() -> {
+				try
+				{					
+					LocalServerHandler serverHandler = new LocalServerHandler();
+					serverHandler.shutdownServer();
+					Thread.sleep(3000);
+					serverHandler.downloadServer(Localization.getString(Strings.VERSION_NAME));
+					serverHandler.createServerSettingsIfNotExists();
+					Platform.runLater(()->{
+						checkServerStatus();
+						LoadingModal.closeModal();
+					});
+				}
+				catch(Exception e)
+				{
+					Logger.error(e);
+					Platform.runLater(()->{
+						LoadingModal.closeModal();
+						AlertGenerator.showAlert(AlertType.ERROR, Localization.getString(Strings.TITLE_ERROR), "", Localization.getString(Strings.ERROR_LOCAL_SERVER_DOWNLOAD, e.getMessage()), controller.getIcon(), controller.getStage(), null, false);
+						buttonLocalServerAction.setDisable(false);
+					});
+				}
+			});
+		});
+	}
 
 	@Override
 	public void applyStyle()
diff --git a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_de.properties b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_de.properties
index 11f0afcddf392cd7654f3b993bde9d1cbcb14509..6e99f11ac9a4510f9c99ccba8c8db403619f1b2e 100644
--- a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_de.properties
+++ b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_de.properties
@@ -1,6 +1,6 @@
 # DEFAULT
 app.name=BudgetMaster
-version.code=13
+version.code=14
 version.name=1.8.0_alpha
 version.date=07.11.17
 author=Robert Goldmann
@@ -47,8 +47,8 @@ load.database.import=Die Datenbank wird importiert, bitte warten...
 load.database.delete=Die Datenbank wird gel�scht, bitte warten...
 load.update=Update wird heruntergeladen, bitte warten...
 load.search=Buchungen werden gesucht, bitte warten...
-load.local.server=Der lokale Server wird gestartet, bitte warten...
-load.download.local.server=Der lokale Server wird heruntergeladen, bitte warten...
+load.local.server=Starte lokalen Server, bitte warten...
+load.download.local.server=Lade lokalen Server herunter, bitte warten...
 load.local.server.connect=Verbinde mit lokalem Server, bitte warten...
 load.local.server.retry=Verbinde mit lokalem Server... (Versuch {0}/{1})
 
@@ -76,6 +76,8 @@ local.server.status.not.started=Server konnte nicht gestartet werden.
 local.server.action.not.started=Starten
 local.server.status.not.present=Server nicht gefunden.
 local.server.action.not.present=Herunterladen
+local.server.status.incompatible=Server nicht kompatibel.
+local.server.action.incompatible=Aktualisieren
 
 # REPORT
 report.position=Nr.
@@ -164,7 +166,7 @@ info.text.update.available.show.changes.detailed=(detaillierte Infos auf GitHub.
 info.text.update.available.now=Jetzt updaten
 info.title.start.after.update=Update erfolgreich
 info.header.text.start.after.update=BudgetMaster wurde erfolgreich auf Version {0} aktualisiert
-info.text.start.after.update=Hinweis: Der BudgetMasterServer muss manuell von dir geupdated werden!
+info.text.start.after.update=Hinweis: Der BudgetMasterServer muss manuell von dir geupdated werden, sofern es sich um keinen lokalen Server handelt!
 info.tags=Es erscheinen Vorschl�ge basierend auf bereits verwendeten Tags sobald du zu tippen beginnst.\n\nEnter - F�gt den Inhalt des Eingabefelds als neuen Tag hinzu.\nPfeil nach unten - �ffnet die Vorschl�ge, wenn das Eingabefeld leer ist.
 
 # WARNING
diff --git a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_en.properties b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_en.properties
index 188ddef0567129c86f11353b250dc112f8be4a49..40341ea54cbb44a274dd88ca1392151c320e5706 100644
--- a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_en.properties
+++ b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_en.properties
@@ -76,6 +76,8 @@ local.server.status.not.started=Server couldn't be started.
 local.server.action.not.started=Start
 local.server.status.not.present=Server not found.
 local.server.action.not.present=Download
+local.server.status.incompatible=Server is incompatible.
+local.server.action.incompatible=Update
 
 # REPORT
 report.position=No.
@@ -164,7 +166,7 @@ info.text.update.available.show.changes.detailed=(detailed information on GitHub
 info.text.update.available.now=Update Now
 info.title.start.after.update=Update successfull
 info.header.text.start.after.update=Successfully updated BudgetMaster to version {0}
-info.text.start.after.update=Note: You have to update the BudgetMasterServer manually!
+info.text.start.after.update=Note: You have to update the BudgetMasterServer manually, if it's no local server!
 info.tags=Suggestions based on already used tags will show up once you start typing.\n\nEnter - Appends the current input field content as a new tag.\nArrow Down - Opens the suggestions if the input field is empty.
 
 # WARNING
diff --git a/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/LocalServerException.java b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/localserver/LocalServerException.java
similarity index 77%
rename from BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/LocalServerException.java
rename to BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/localserver/LocalServerException.java
index d1f8712c6762a93410f3f3fc44719eba2f8ebd4c..13c3778cb70c92e56936aa3a834a75ea0920b0a7 100644
--- a/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/LocalServerException.java
+++ b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/localserver/LocalServerException.java
@@ -1,4 +1,4 @@
-package de.deadlocker8.budgetmaster.logic;
+package de.deadlocker8.budgetmaster.logic.localserver;
 
 public class LocalServerException extends Exception
 {
diff --git a/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/LocalServerHandler.java b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/localserver/LocalServerHandler.java
similarity index 86%
rename from BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/LocalServerHandler.java
rename to BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/localserver/LocalServerHandler.java
index ae0c767ed6a9f15523052b0280a19f3010a74c1b..3e438320b1f83747feeaf48f4650a6eea7b28b75 100644
--- a/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/LocalServerHandler.java
+++ b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/localserver/LocalServerHandler.java
@@ -1,4 +1,4 @@
-package de.deadlocker8.budgetmaster.logic;
+package de.deadlocker8.budgetmaster.logic.localserver;
 
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -12,6 +12,7 @@ import java.nio.file.Paths;
 import java.nio.file.StandardCopyOption;
 import java.util.ArrayList;
 
+import de.deadlocker8.budgetmaster.logic.Settings;
 import de.deadlocker8.budgetmaster.logic.serverconnection.ServerConnection;
 import de.deadlocker8.budgetmaster.logic.utils.Helpers;
 import de.deadlocker8.budgetmaster.logic.utils.Strings;
@@ -57,6 +58,18 @@ public class LocalServerHandler
 		}
 	}
 	
+	public void shutdownServer() throws Exception
+	{
+		Settings settings = new Settings();
+		settings.setUrl("https://localhost:9000");
+		settings.setSecret(HashUtils.hash("BudgetMaster", Helpers.SALT));
+		ArrayList<String> trustedHosts = new ArrayList<>();
+		trustedHosts.add("localhost");
+		settings.setTrustedHosts(trustedHosts);		
+		ServerConnection connection = new ServerConnection(settings);
+		connection.shutdownServer();
+	}
+	
 	public void createServerSettingsIfNotExists() throws FileNotFoundException
 	{
 		File settingsFile = new File(PathUtils.getOSindependentPath() + Localization.getString(Strings.FOLDER) + "/localServer/settings.json");
@@ -88,7 +101,7 @@ public class LocalServerHandler
 		
 		//download into temp directory and file
 		Path target = Paths.get(PathUtils.getOSindependentPath() + Localization.getString(Strings.FOLDER) + "/localServer/BudgetMasterServer.jar");
-		download(BUILD_FOLDER.replace("{}", "v" + versionName) + "BudgetMasterServer.jar", target);			
+		download(BUILD_FOLDER.replace("{}", "v" + "1.7.0") + "BudgetMasterServer.jar", target);			
 		Logger.debug("Successfully downloaded BudgetMasterServer " + versionName);
 	}
 	
diff --git a/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/LocalServerStatus.java b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/localserver/LocalServerStatus.java
similarity index 52%
rename from BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/LocalServerStatus.java
rename to BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/localserver/LocalServerStatus.java
index ec5084a23ec315b64e51ba4f7f00281ec2a006c3..7f36dcd26e0a4cb093f2783293089044c82dd86f 100644
--- a/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/LocalServerStatus.java
+++ b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/localserver/LocalServerStatus.java
@@ -1,4 +1,4 @@
-package de.deadlocker8.budgetmaster.logic;
+package de.deadlocker8.budgetmaster.logic.localserver;
 
 public enum LocalServerStatus
 {
diff --git a/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/utils/Strings.java b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/utils/Strings.java
index 706a31d75a1f484e0006917c63b0332e963b2ff1..3ff6304afffd9a13e9da06610fb59fb3aaccfc1a 100644
--- a/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/utils/Strings.java
+++ b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/utils/Strings.java
@@ -80,6 +80,8 @@ public class Strings
     public static final String LOCAL_SERVER_ACTION_NOT_STARTED = "local.server.action.not.started";
     public static final String LOCAL_SERVER_STATUS_NOT_PRESENT = "local.server.status.not.present";
     public static final String LOCAL_SERVER_ACTION_NOT_PRESENT = "local.server.action.not.present";
+    public static final String LOCAL_SERVER_STATUS_INCOMPATIBLE = "local.server.status.incompatible";
+    public static final String LOCAL_SERVER_ACTION_INCOMPATIBLE = "local.server.action.incompatible";
     
     //REPORT
     public static final String REPORT_POSITION = "report.position";