diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 817ae9e2d27ea5c62f31aea3820ccfa5d733df7b..201587612081bd0c6c8e93a1f01d5741c99a8746 100755
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -727,9 +727,16 @@ LLAppViewer::~LLAppViewer()
 
 #if !LL_WINDOWS
     //Last thing, let's copy SL.log into the per-run directory.   We don't care if this operation fails.
-    std::string per_run_log = gDirUtilp->getExpandedFilename(LL_PATH_DUMP,"SecondLife.log");
-    std::string current_log = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"SecondLife.log");
-    LLFile::copy(per_run_log, current_log);
+	std::string per_run_dir = gDirUtilp->getExpandedFilename(LL_PATH_DUMP,"");
+	std::string per_run_file = per_run_dir + "SecondLife.log";
+    std::string log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"SecondLife.log");
+
+	if (gDirUtilp->fileExists(per_run_dir))  
+	{
+		LL_INFOS ("CrashReporting") << "Copying " << log_file << " to " << per_run_file << llendl;
+	    LLFile::copy(log_file, per_run_file);
+	}
+
 #endif
     
 	// If we got to this destructor somehow, the app didn't hang.
@@ -3471,7 +3478,7 @@ void LLAppViewer::writeSystemInfo()
     if (! gDebugInfo.has("Dynamic") )
         gDebugInfo["Dynamic"] = LLSD::emptyMap();
     
-	gDebugInfo["SLLog"] = LLError::logFileName();
+	gDebugInfo["SLLog"] = gDirUtilp->getExpandedFilename(LL_PATH_DUMP,"SecondLife.log"); //LLError::logFileName();
 
 	gDebugInfo["ClientInfo"]["Name"] = LLVersionInfo::getChannel();
 	gDebugInfo["ClientInfo"]["MajorVersion"] = LLVersionInfo::getMajor();
diff --git a/indra/win_crash_logger/llcrashloggerwindows.cpp b/indra/win_crash_logger/llcrashloggerwindows.cpp
index 6b5ab111ec403ccf64c808780024961c599e9156..9fd66d542113ceaa5cdf6b9bbd0aed0a12a27927 100644
--- a/indra/win_crash_logger/llcrashloggerwindows.cpp
+++ b/indra/win_crash_logger/llcrashloggerwindows.cpp
@@ -320,9 +320,15 @@ int LLCrashLoggerWindows::processingLoop() {
     
     llinfos << "session ending.." << llendl;
     
-    std::string per_run_file = options["dumpdir"].asString() + "SecondLife.log";
+    std::string per_run_dir = options["dumpdir"].asString();
+	std::string per_run_file = per_run_dir + "\\SecondLife.log";
     std::string log_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,"SecondLife.log");
-    LLFile::copy(per_run_file, log_file);
+
+	if (gDirUtilp->fileExists(per_run_dir))  
+	{
+		LL_INFOS ("CRASHREPORT") << "Copying " << log_file << " to " << per_run_file << llendl;
+	    LLFile::copy(log_file, per_run_file);
+	}
 	return 0;
 }