diff --git a/modules/system/assets/ui/docs/callout.md b/modules/system/assets/ui/docs/callout.md
index 4b027a561..3ed0aa0a8 100644
--- a/modules/system/assets/ui/docs/callout.md
+++ b/modules/system/assets/ui/docs/callout.md
@@ -7,3 +7,19 @@ Allows the user to dismiss a callout message.
- close.oc.callout - triggered when a node on the tree is moved.
# Example
+
+
+
+
Something good happened
+
+
+
+
+
diff --git a/modules/system/controllers/Updates.php b/modules/system/controllers/Updates.php
index 1d350dcb9..1662747a4 100644
--- a/modules/system/controllers/Updates.php
+++ b/modules/system/controllers/Updates.php
@@ -765,7 +765,8 @@ class Updates extends Controller
foreach ((array) array_get($result, 'require') as $plugin) {
if (
($name = array_get($plugin, 'code')) &&
- ($hash = array_get($plugin, 'hash'))
+ ($hash = array_get($plugin, 'hash')) &&
+ !PluginManager::instance()->hasPlugin($name)
) {
$plugins[$name] = $hash;
}
diff --git a/modules/system/controllers/updates/_execute.htm b/modules/system/controllers/updates/_execute.htm
index 048781f76..9785a0554 100644
--- a/modules/system/controllers/updates/_execute.htm
+++ b/modules/system/controllers/updates/_execute.htm
@@ -24,7 +24,7 @@