diff --git a/loader/src/ui/mods/popups/ModPopup.cpp b/loader/src/ui/mods/popups/ModPopup.cpp
index 42af4f4d..7f3567f1 100644
--- a/loader/src/ui/mods/popups/ModPopup.cpp
+++ b/loader/src/ui/mods/popups/ModPopup.cpp
@@ -729,6 +729,20 @@ void ModPopup::setStatValue(CCNode* stat, std::optional<std::string> const& valu
     container->updateLayout();
 }
 
+// helper class for making an std::locale
+class comma_numpunct : public std::numpunct<char> {
+protected:
+    virtual char do_thousands_sep() const
+    {
+        return ',';
+    }
+
+    virtual std::string do_grouping() const
+    {
+        return "\03";
+    }
+};
+
 void ModPopup::onLoadServerInfo(typename server::ServerRequest<server::ServerModMetadata>::Event* event) {
     if (event->getValue() && event->getValue()->isOk()) {
         auto data = event->getValue()->unwrap();
@@ -738,10 +752,12 @@ void ModPopup::onLoadServerInfo(typename server::ServerRequest<server::ServerMod
             }
             return std::string("N/A");
         };
-
+        
+        static std::locale commaLocale(std::locale(), new comma_numpunct());
+        
         // Update server stats
         for (auto id : std::initializer_list<std::pair<const char*, std::string>> {
-            { "downloads", fmt::format(std::locale("en_US.UTF-8"), "{:L}", data.downloadCount) },
+            { "downloads", fmt::format(commaLocale, "{:L}", data.downloadCount) },
             { "release-date", timeToString(data.createdAt) },
             { "update-date", timeToString(data.updatedAt) },
         }) {