diff --git a/v2rayN/v2rayN/Handler/ConfigHandler.cs b/v2rayN/v2rayN/Handler/ConfigHandler.cs
index ddf14123..b5046ccb 100644
--- a/v2rayN/v2rayN/Handler/ConfigHandler.cs
+++ b/v2rayN/v2rayN/Handler/ConfigHandler.cs
@@ -515,11 +515,11 @@ namespace v2rayN.Handler
         {
             string newFileName = string.Empty;
             newFileName = string.Format("{0}.json", Utils.GetGUID());
-            newFileName = Path.Combine(Utils.GetTempPath(), newFileName);
+            //newFileName = Path.Combine(Utils.GetTempPath(), newFileName);
 
             try
             {
-                File.Copy(fileName, newFileName);
+                File.Copy(fileName, Path.Combine(Utils.GetTempPath(), newFileName));
             }
             catch
             {
diff --git a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs
index 751d16fc..fcf07549 100644
--- a/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs
+++ b/v2rayN/v2rayN/Handler/V2rayConfigHandler.cs
@@ -688,11 +688,21 @@ namespace v2rayN.Handler
                     return -1;
                 }
 
-                string addressFileName = config.address();
                 if (File.Exists(fileName))
                 {
                     File.Delete(fileName);
                 }
+
+                string addressFileName = config.address();
+                if (!File.Exists(addressFileName))
+                {
+                    addressFileName = Path.Combine(Utils.GetTempPath(), addressFileName);
+                }
+                if (!File.Exists(addressFileName))
+                {
+                    msg = UIRes.I18N("FailedGenDefaultConfiguration");
+                    return -1;
+                }
                 File.Copy(addressFileName, fileName);
 
                 msg = string.Format(UIRes.I18N("SuccessfulConfiguration"), config.getSummary());