diff --git a/core/js/setupchecks.js b/core/js/setupchecks.js
index 44bf33dd7117cb4918eae3800a9bb767c0946133..439826161d80cf267a873991852bfe77fc4893cf 100644
--- a/core/js/setupchecks.js
+++ b/core/js/setupchecks.js
@@ -174,6 +174,15 @@
 							type: OC.SetupChecks.MESSAGE_TYPE_WARNING
 						});
 					}
+					if (!data.hasFreeTypeSupport) {
+						messages.push({
+							msg: t(
+								'core',
+								'Your PHP does not have freetype support. This will result in broken profile pictures and settings interface.'
+							),
+							type: OC.SetupChecks.MESSAGE_TYPE_INFO
+						})
+					}
 				} else {
 					messages.push({
 						msg: t('core', 'Error occurred while checking server setup'),
diff --git a/settings/Controller/CheckSetupController.php b/settings/Controller/CheckSetupController.php
index 5b7953bf392c5f018543d8317c72c7b843c13200..06b9e80294b74744fdbc2f9cdc7cfad406bdf3cf 100644
--- a/settings/Controller/CheckSetupController.php
+++ b/settings/Controller/CheckSetupController.php
@@ -409,6 +409,14 @@ Raw output
 		return $isOpcacheProperlySetUp;
 	}
 
+	/**
+	 * Check if the required FreeType functions are present
+	 * @return bool
+	 */
+	protected function hasFreeTypeSupport() {
+		return function_exists('imagettfbbox') && function_exists('imagettftext');
+	}
+
 	/**
 	 * @return DataResponse
 	 */
@@ -430,6 +438,7 @@ Raw output
 				'isOpcacheProperlySetup' => $this->isOpcacheProperlySetup(),
 				'phpOpcacheDocumentation' => $this->urlGenerator->linkToDocs('admin-php-opcache'),
 				'isSettimelimitAvailable' => $this->isSettimelimitAvailable(),
+				'hasFreeTypeSupport' => $this->hasFreeTypeSupport(),
 			]
 		);
 	}