diff --git a/src/core/hle/service/acc/profile_manager.cpp b/src/core/hle/service/acc/profile_manager.cpp
index bcb3475db600ee87dc2c073a4397364972dabaac..b4b4b52b79e77146a5f7d5d1afb8f16faca35fd2 100644
--- a/src/core/hle/service/acc/profile_manager.cpp
+++ b/src/core/hle/service/acc/profile_manager.cpp
@@ -23,10 +23,12 @@ const UUID& UUID::Generate() {
 }
 
 ProfileManager::ProfileManager() {
-    // TODO(ogniK): Create the default user we have for now until loading/saving users is added
-    auto user_uuid = UUID{1, 0};
-    ASSERT(CreateNewUser(user_uuid, Settings::values.username).IsSuccess());
-    OpenUser(user_uuid);
+    for (std::size_t i = 0; i < Settings::values.users.size(); ++i) {
+        const auto& val = Settings::values.users[i];
+        ASSERT(CreateNewUser(val.second, val.first).IsSuccess());
+    }
+
+    OpenUser(Settings::values.users[Settings::values.current_user].second);
 }
 
 ProfileManager::~ProfileManager() = default;
diff --git a/src/core/hle/service/acc/profile_manager.h b/src/core/hle/service/acc/profile_manager.h
index bffd4cf4d80a42de8dba850feab5badf9bf1e398..9ce3eb47cf36321fc0db6dc0351e7e342d132e69 100644
--- a/src/core/hle/service/acc/profile_manager.h
+++ b/src/core/hle/service/acc/profile_manager.h
@@ -81,7 +81,7 @@ static_assert(sizeof(ProfileBase) == 0x38, "ProfileBase is an invalid size");
 /// objects
 class ProfileManager {
 public:
-    ProfileManager(); // TODO(ogniK): Load from system save
+    ProfileManager();
     ~ProfileManager();
 
     ResultCode AddUser(const ProfileInfo& user);