diff --git a/apps/federatedfilesharing/js/settings-admin.js b/apps/federatedfilesharing/js/settings-admin.js
index 95578bff548f56975e2bb15539edcee69d863c45..257c864b04f7d84db0543513b5d63cefbb4b05b9 100644
--- a/apps/federatedfilesharing/js/settings-admin.js
+++ b/apps/federatedfilesharing/js/settings-admin.js
@@ -8,5 +8,4 @@ $(document).ready(function() {
 		OC.AppConfig.setValue('files_sharing', $(this).attr('name'), value);
 	});
 
-	$('.section .icon-info').tipsy({gravity: 'w'});
 });
diff --git a/settings/js/admin.js b/settings/js/admin.js
index 34e258065ce8bc7a114e35a119c33f25cab10bdc..fb59b3ba02636d98c8ef63760348bd53b67a9707 100644
--- a/settings/js/admin.js
+++ b/settings/js/admin.js
@@ -35,7 +35,7 @@ $(document).ready(function(){
 		} );
 	});
 
-	$('#backgroundjobs span.crondate').tipsy({gravity: 's', live: true});
+	$('#backgroundjobs span.crondate').tooltip({placement: 'top'});
 
 	$('#backgroundjobs input').change(function(){
 		if($(this).is(':checked')){
diff --git a/settings/js/apps.js b/settings/js/apps.js
index 525a34d90674e301047014b957bd8ae4fe764963..5584716235036c4b7f07df569108aaab81c01848 100644
--- a/settings/js/apps.js
+++ b/settings/js/apps.js
@@ -119,11 +119,27 @@ OC.Settings.Apps = OC.Settings.Apps || {
 					$('#apps-list-empty').removeClass('hidden').find('h2').text(t('settings', 'No apps found for your version'));
 				}
 
-				$('.enable.needs-download').tipsy({fallback: t('settings', 'The app will be downloaded from the app store')});
+				$('.enable.needs-download').tooltip({
+					title: t('settings', 'The app will be downloaded from the app store'),
+					placement: 'bottom',
+					container: 'body'
+				});
 
-				$('.app-level .official').tipsy({fallback: t('settings', 'Official apps are developed by and within the community. They offer central functionality and are ready for production use.')});
-				$('.app-level .approved').tipsy({fallback: t('settings', 'Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use.')});
-				$('.app-level .experimental').tipsy({fallback: t('settings', 'This app is not checked for security issues and is new or known to be unstable. Install at your own risk.')});
+				$('.app-level .official').tooltip({
+					title: t('settings', 'Official apps are developed by and within the community. They offer central functionality and are ready for production use.'),
+					placement: 'bottom',
+					container: 'body'
+				});
+				$('.app-level .approved').tooltip({
+					title: t('settings', 'Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use.'),
+					placement: 'bottom',
+					container: 'body'
+				});
+				$('.app-level .experimental').tooltip({
+					title: t('settings', 'This app is not checked for security issues and is new or known to be unstable. Install at your own risk.'),
+					placement: 'bottom',
+					container: 'body'
+				});
 			},
 			complete: function() {
 				var availableUpdates = 0;
diff --git a/settings/js/certificates.js b/settings/js/certificates.js
index 7e62a4f5157fa455c3515bf36434ff7a28fc8fcd..f73ceea23f387e469b92cde26919dcabfec8de32 100644
--- a/settings/js/certificates.js
+++ b/settings/js/certificates.js
@@ -13,7 +13,7 @@ $(document).ready(function () {
 		return true;
 	});
 
-	$('#sslCertificate tr > td').tipsy({gravity: 'n', live: true});
+	$('#sslCertificate tr > td').tooltip({placement: 'bottom', container: 'body'});
 
 	$('#rootcert_import').fileupload({
 		pasteZone: null,
diff --git a/settings/templates/admin.php b/settings/templates/admin.php
index 93c9dca7153b0b11ee79451880b77e45a5c00e24..e5b090894498d962290d47f3a76859f5525afde0 100644
--- a/settings/templates/admin.php
+++ b/settings/templates/admin.php
@@ -290,12 +290,12 @@ if ($_['cronErrors']) {
 			$absolute_time = OC_Util::formatDate($_['lastcron']);
 			if (time() - $_['lastcron'] <= 3600): ?>
 				<span class="status success"></span>
-				<span class="crondate" original-title="<?php p($absolute_time);?>">
+				<span class="crondate" title="<?php p($absolute_time);?>">
 					<?php p($l->t("Last cron job execution: %s.", [$relative_time]));?>
 				</span>
 			<?php else: ?>
 				<span class="status error"></span>
-				<span class="crondate" original-title="<?php p($absolute_time);?>">
+				<span class="crondate" title="<?php p($absolute_time);?>">
 					<?php p($l->t("Last cron job execution: %s. Something seems wrong.", [$relative_time]));?>
 				</span>
 			<?php endif;