diff --git a/modules/core/www/frontpage_config.php b/modules/core/www/frontpage_config.php
index 871c29bdb61090f1122e470c4cbda5f2edf9f8a7..0ac8d7c7df01ececf9296fd444ebcfb465a822d9 100644
--- a/modules/core/www/frontpage_config.php
+++ b/modules/core/www/frontpage_config.php
@@ -70,27 +70,34 @@ $allLinks = array(
 );
 SimpleSAML\Module::callHooks('frontpage', $allLinks);
 
-// check for updates
-if ($config->getBoolean('admin.checkforupdates', true)) {
-	$api_url = 'https://api.github.com/repos/simplesamlphp/simplesamlphp/releases';
-	$ch = curl_init($api_url.'/latest');
-	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
-	curl_setopt($ch, CURLOPT_USERAGENT, 'SimpleSAMLphp');
-	curl_setopt($ch, CURLOPT_TIMEOUT, 2);
-	$response = curl_exec($ch);
-
-	if (curl_getinfo($ch, CURLINFO_HTTP_CODE) === 200) {
-		$latest = json_decode($response, true);
-		$current = $config->getVersion();
-		if ($current !== 'master' && version_compare($current, ltrim($latest['tag_name'], 'v'), 'lt')) {
-			$outdated = true;
-			$warnings[] = array(
-				'{core:frontpage:warnings_outdated}',
-				array('%LATEST_URL%' => $latest['html_url'])
-			);
+// Check for updates. Store the remote result in the session so we
+// don't need to fetch it on every access of this page.
+$current = $config->getVersion();
+if ($config->getBoolean('admin.checkforupdates', true) && $current !== 'master') {
+	$latest = $session->getData("core:latest_simplesamlphp_version", "version");
+
+        if (!$latest) {
+		$api_url = 'https://api.github.com/repos/simplesamlphp/simplesamlphp/releases';
+		$ch = curl_init($api_url.'/latest');
+		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+		curl_setopt($ch, CURLOPT_USERAGENT, 'SimpleSAMLphp');
+		curl_setopt($ch, CURLOPT_TIMEOUT, 2);
+		$response = curl_exec($ch);
+
+		if (curl_getinfo($ch, CURLINFO_HTTP_CODE) === 200) {
+			$latest = json_decode($response, true);
+			$session->setData("core:latest_simplesamlphp_version", "version", $latest);
 		}
+		curl_close($ch);
+	}
+
+	if ($latest && version_compare($current, ltrim($latest['tag_name'], 'v'), 'lt')) {
+		$outdated = true;
+		$warnings[] = array(
+			'{core:frontpage:warnings_outdated}',
+			array('%LATEST_URL%' => $latest['html_url'])
+		);
 	}
-	curl_close($ch);
 }
 
 $enablematrix = array(