diff --git a/interface/src/main.cpp b/interface/src/main.cpp
index 303d7f210b..80d88c9303 100644
--- a/interface/src/main.cpp
+++ b/interface/src/main.cpp
@@ -122,8 +122,10 @@ int main(int argc, const char* argv[]) {
 
     static const QString APPLICATION_CONFIG_FILENAME = "config.json";
     QDir applicationDir(applicationPath);
-    QFile configFile(applicationDir.filePath(APPLICATION_CONFIG_FILENAME));
-    bool isConfigFileValid = false;
+    QString configFileName = applicationDir.filePath(APPLICATION_CONFIG_FILENAME);
+    QFile configFile(configFileName);
+    QString launcherPath;
+    
     if (configFile.exists()) {
         if (!configFile.open(QIODevice::ReadOnly)) {
             qWarning() << "Found application config, but could not open it";
@@ -136,9 +138,8 @@ int main(int argc, const char* argv[]) {
                 qWarning() << "Found application config, but could not parse it: " << error.errorString();
             } else {
                 static const QString LAUNCHER_PATH_KEY = "launcherPath";
-                QString launcherPath = doc.object()[LAUNCHER_PATH_KEY].toString();
+                launcherPath = doc.object()[LAUNCHER_PATH_KEY].toString();
                 if (!launcherPath.isEmpty()) {
-                    isConfigFileValid = true;
                     if (!parser.isSet(noLauncherOption)) {
                         qDebug() << "Found a launcherPath in application config. Starting launcher.";
                         QProcess launcher;
@@ -402,15 +403,16 @@ int main(int argc, const char* argv[]) {
 
         printSystemInformation();
 
-        if (isConfigFileValid || parser.isSet(responseTokensOption)) {
+        if (!launcherPath.isEmpty() || parser.isSet(responseTokensOption)) {
             auto accountManager = DependencyManager::get<AccountManager>();
             if (!accountManager.isNull()) {
+                if (!launcherPath.isEmpty()) {
+                    accountManager->setConfigFileURL(configFileName);
+                }
                 if (parser.isSet(responseTokensOption)) {
                     QString tokens = QString(parser.value(responseTokensOption));
                     accountManager->setAccessTokens(tokens);
-                } else if (isConfigFileValid) {
-                    accountManager->setConfigFileURL(configFile.fileName());
-                }
+                } 
             }
         }
 
diff --git a/libraries/networking/src/AccountManager.cpp b/libraries/networking/src/AccountManager.cpp
index 014ae62aff..3a7d3e0a67 100644
--- a/libraries/networking/src/AccountManager.cpp
+++ b/libraries/networking/src/AccountManager.cpp
@@ -674,7 +674,7 @@ void AccountManager::setAccessTokens(const QString& response) {
             emit loginComplete(rootURL);
 
             persistAccountToFile();
-
+            saveLoginStatus(true);
             requestProfile();
         }
     } else {
@@ -931,8 +931,8 @@ void AccountManager::setLimitedCommerce(bool isLimited) {
 }
 
 void AccountManager::saveLoginStatus(bool isLoggedIn) {
-    if (_configFileURL.isValid()) {
-        QFile configFile(_configFileURL.toString());
+    if (!_configFileURL.isEmpty()) {
+        QFile configFile(_configFileURL);
         configFile.open(QIODevice::ReadOnly | QIODevice::Text);
         QJsonParseError error;
         QJsonDocument jsonDocument = QJsonDocument::fromJson(configFile.readAll(), &error);
@@ -940,12 +940,14 @@ void AccountManager::saveLoginStatus(bool isLoggedIn) {
         QString launcherPath;
         if (error.error == QJsonParseError::NoError) {
             QJsonObject rootObject = jsonDocument.object();
+            if (rootObject.contains("launcherPath")) {
+                launcherPath = rootObject["launcherPath"].toString();
+            }
             if (rootObject.contains("loggedIn")) {
                 rootObject["loggedIn"] = isLoggedIn;
             }
-            if (rootObject.contains("laucherPath")) {
-                launcherPath = rootObject["launcherPath"].isString();
-            }
+            jsonDocument = QJsonDocument(rootObject);
+
         }
         configFile.open(QFile::WriteOnly | QFile::Text | QFile::Truncate);
         configFile.write(jsonDocument.toJson());
diff --git a/libraries/networking/src/AccountManager.h b/libraries/networking/src/AccountManager.h
index 3fcbff4f99..c2187f79cb 100644
--- a/libraries/networking/src/AccountManager.h
+++ b/libraries/networking/src/AccountManager.h
@@ -103,7 +103,7 @@ public:
     void setLimitedCommerce(bool isLimited);
 
     void setAccessTokens(const QString& response);
-    void setConfigFileURL(const QUrl& fileURL) { _configFileURL = fileURL; }
+    void setConfigFileURL(const QString& fileURL) { _configFileURL = fileURL; }
     void saveLoginStatus(bool isLoggedIn);
 
 public slots:
@@ -166,7 +166,7 @@ private:
     QUuid _sessionID { QUuid::createUuid() };
 
     bool _limitedCommerce { false };
-    QUrl _configFileURL;
+    QString _configFileURL;
 };
 
 #endif  // hifi_AccountManager_h