diff --git a/es-app/src/guis/GuiSettings.cpp b/es-app/src/guis/GuiSettings.cpp
index 72d22ecf4..5c84c3082 100644
--- a/es-app/src/guis/GuiSettings.cpp
+++ b/es-app/src/guis/GuiSettings.cpp
@@ -71,9 +71,13 @@ void GuiSettings::save()
             for (auto system : SystemData::sSystemVector)
                 system->writeMetaData();
         }
+
         // If a close menu function was passed to us, then run it.
-        if (mCloseMenuFunction)
+        if (mCloseMenuFunction) {
             mCloseMenuFunction();
+            mCloseMenuFunction = nullptr;
+        }
+
         ViewController::getInstance()->rescanROMDirectory();
         return;
     }