diff --git a/src/main/java/de/deadlocker8/budgetmaster/authentication/PreLoginUrlBlacklist.java b/src/main/java/de/deadlocker8/budgetmaster/authentication/PreLoginUrlBlacklist.java
index bcef120f3a51e93fa3e1b45a87d63ecfcfb1d007..597ecfd4bc614b0e9f05c218e69c08613717727a 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/authentication/PreLoginUrlBlacklist.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/authentication/PreLoginUrlBlacklist.java
@@ -11,7 +11,6 @@ public class PreLoginUrlBlacklist
 	{
 		blacklist = new ArrayList<>();
 		blacklist.add("login");
-		blacklist.add("performUpdate");
 		blacklist.add("import");
 	}
 
diff --git a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java
index 815babc6d264a8509ca21a8422d3bfb259aa864e..7cf34ee65dd3fac2cc3b5b0b19eb97ed9e017561 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/settings/SettingsController.java
@@ -63,6 +63,7 @@ public class SettingsController extends BaseController
 		public static final String ERROR_MESSAGES = "errorMessages";
 		public static final String PERFORM_UPDATE = "performUpdate";
 		public static final String UPDATE_STRING = "updateString";
+		public static final String AVAILABLE_VERSION = "availableVersion";
 		public static final String SETTINGS = "settings";
 		public static final String SEARCH_RESULTS_PER_PAGE = "searchResultsPerPageOptions";
 		public static final String AUTO_BACKUP_TIME = "autoBackupTimes";
@@ -431,35 +432,11 @@ public class SettingsController extends BaseController
 	{
 		model.addAttribute(ModelAttributes.PERFORM_UPDATE, true);
 		model.addAttribute(ModelAttributes.UPDATE_STRING, Localization.getString("info.text.update", Build.getInstance().getVersionName(), budgetMasterUpdateService.getAvailableVersionString()));
+		model.addAttribute(ModelAttributes.AVAILABLE_VERSION, budgetMasterUpdateService.getAvailableVersionString());
 		prepareBasicModel(model, settingsService.getSettings());
 		return ReturnValues.ALL_ENTITIES;
 	}
 
-	@GetMapping("/performUpdate")
-	public String performUpdate()
-	{
-		if(budgetMasterUpdateService.isRunningFromSource())
-		{
-			LOGGER.debug("Running from source code: Skipping update check");
-			return ReturnValues.REDIRECT_ALL_ENTITIES;
-		}
-
-		UpdateItem.Entry entry = new UpdateItem.Entry(budgetMasterUpdateService.getAvailableVersion());
-		try
-		{
-			budgetMasterUpdateService.getUpdateService().runVersionizerInstance(entry);
-		}
-		catch(IOException e)
-		{
-			LOGGER.error("Could not update BudgetMaster version", e);
-		}
-
-		LOGGER.info(MessageFormat.format("Stopping BudgetMaster for update to version {0}", budgetMasterUpdateService.getAvailableVersionString()));
-		System.exit(0);
-
-		return "";
-	}
-
 	@PostMapping("/git/test")
 	@ResponseBody
 	public String testGit(@RequestParam(value = "autoBackupGitUrl") String autoBackupGitUrl,
diff --git a/src/main/resources/languages/base_de.properties b/src/main/resources/languages/base_de.properties
index 38efda46e55793dcc6428b88181d8dd876c64986..cf1ca61e4088eb33e72d1626d2da4e4535adf303 100644
--- a/src/main/resources/languages/base_de.properties
+++ b/src/main/resources/languages/base_de.properties
@@ -158,7 +158,7 @@ info.database.import.match.accounts=Konten zuordnen
 info.database.import.source=Buchungen aus
 info.database.import.destination=importieren in
 info.title.update=Update verfügbar
-info.text.update=Es ist ein Update für BudgetMaster verfügbar<br><br>Installiert: v{0}<br>Verfügbar: {1}<br><br>Möchtest du das Update jetzt durchführen?<br><br>Hinweis: Das Aktualisieren kann je nach Internetverbindung eine Weile dauern. Der BudgetMaster Server wird danach automatisch nuegestartet. Bitte führe nach dem Start des Updates keine Änderungen an Konten, Buchungen, Kategorien, etc. durch.
+info.text.update=Es ist ein Update für BudgetMaster verfügbar<br><br>Installiert: v{0}<br>Verfügbar: {1}
 info.title.backup.reminder=Zeit für ein Backup
 info.text.backup.reminder=Schon mal über ein Backup nachgedacht?<br>Du solltest deine BudgetMaster Datenbank regelmäßig sichern.<br>Dies geht besonders einfach in den Einstellungen.<br>Du kannst auch ein automatisches Backup konfigurieren.<br><br>(Du wilst diese Erinnerung nicht jeden Monat sehen? Dann deaktiviere die Backuperinnerung in den Einstellungen.)
 info.button.backup.reminder=Zu den Einstellungen
diff --git a/src/main/resources/languages/base_en.properties b/src/main/resources/languages/base_en.properties
index 097c8dd67f8d5ca3eb1cfe30b41b1fa383f0ab5a..cf5b6033be406948360f54c051ced0efd29fe6be 100644
--- a/src/main/resources/languages/base_en.properties
+++ b/src/main/resources/languages/base_en.properties
@@ -159,7 +159,7 @@ info.database.import.match.accounts=Assign accounts
 info.database.import.source=Import transactions from
 info.database.import.destination=to
 info.title.update=Update available
-info.text.update=An update for BudgetMaster is available<br><br>Installed: v{0}<br>Available: {1}<br><br>Would you like to update now?<br><br>Note: The update may take a while depending on your internet connection. The BudgetMaster server will be restarted automatically. Please do not make any changes to accounts, transactions, categories, etc. after starting the update.
+info.text.update=An update for BudgetMaster is available<br><br>Installed: v{0}<br>Available: {1}
 info.title.backup.reminder=Time for a backup
 info.text.backup.reminder=Have you ever thought about a backup?<br>You should back up your BudgetMaster database regularly.<br>This can be done on the settings page.<br>You can also enable an automatic backup.<br><br>(You don''t want to see this reminder every month? Disable the backup reminder in the settings.)
 info.button.backup.reminder=To the settings
diff --git a/src/main/resources/languages/news_en.properties b/src/main/resources/languages/news_en.properties
index a4a17c96232673536630bd66387ce5343ecc5fec..18807f0a849a97b5d43956601361761d681beaaa 100644
--- a/src/main/resources/languages/news_en.properties
+++ b/src/main/resources/languages/news_en.properties
@@ -1,6 +1,6 @@
 news.further.information=Further information
 news.all.releases=All published and planned releases:
-news.detailed=More detailed changelog (english only):
+news.detailed=Detailed changelog (english only):
 
 news.fix.import.headline=Bugfix: Critical import bug
 news.fix.import.description=Fixed a critical bug in import mechanism: Import now assigns the correct categories to transactions.
diff --git a/src/main/resources/templates/settings/settingsMacros.ftl b/src/main/resources/templates/settings/settingsMacros.ftl
index 8ed321ea2ce00ed35ce5e70ba2905aac594c14aa..c12cb69c6f675abd26934518fc3a95da150f28c0 100644
--- a/src/main/resources/templates/settings/settingsMacros.ftl
+++ b/src/main/resources/templates/settings/settingsMacros.ftl
@@ -149,10 +149,13 @@
         <div class="modal-content">
             <h4>${locale.getString("info.title.update")}</h4>
             <p>${updateString}</p>
+
+            <p>
+                ${locale.getString("news.detailed")} <a target="_blank" href="https://github.com/deadlocker8/BudgetMaster/releases/tag/v${availableVersion}">GitHub</a>
+            </p>
         </div>
         <div class="modal-footer background-color">
-            <@header.buttonLink url='/settings' icon='clear' localizationKey='cancel' color='red' classes='modal-action modal-close text-white'/>
-            <@header.buttonLink url='/settings/performUpdate' icon='system_update' localizationKey='settings.update.start' color='green' id='button-confirm-database-import' classes='"modal-action modal-close text-white'/>
+            <@header.buttonLink url='/settings' icon='done' localizationKey='ok' color='green' classes='modal-action modal-close text-white'/>
         </div>
     </div>
 </#macro>