diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 3d8d0e15ecf0393ef5284837e32bb7ea4a49739d..b3e3a0678b7a9cfa0174fbdd95ef589bde4510a9 100755
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -647,8 +647,12 @@ void LLFloaterPreference::cancel()
 		pPathfindingConsole->onRegionBoundaryCross();
 	}
 
-	std::string dir_name(gSavedPerAccountSettings.getString("InstantMessageLogPath"));
-	updateLogLocation(dir_name);
+	if(mInstantMessageLogPathChanged)
+	{
+		std::string dir_name(gSavedPerAccountSettings.getString("InstantMessageLogPath"));
+		updateLogLocation(dir_name);
+		mInstantMessageLogPathChanged = false;
+	}
 }
 
 void LLFloaterPreference::onOpen(const LLSD& key)
@@ -1436,19 +1440,27 @@ void LLFloaterPreference::setAllIgnored()
 
 void LLFloaterPreference::onClickLogPath()
 {
-	std::string proposed_name(gSavedPerAccountSettings.getString("InstantMessageLogPath"));	 
+	std::string original_name(gSavedPerAccountSettings.getString("InstantMessageLogPath"));
+	std::string proposed_name(original_name);	 
+	mInstantMessageLogPathChanged = false;
 	
 	LLDirPicker& picker = LLDirPicker::instance();
+	//Launches a directory picker and waits for feedback
 	if (!picker.getDir(&proposed_name ) )
 	{
 		return; //Canceled!
 	}
 
-	std::string dir_name = picker.getDirName();
-	gSavedPerAccountSettings.setString("InstantMessageLogPath", dir_name);
-	
-	// enable/disable 'Delete transcripts button
-	updateDeleteTranscriptsButton();
+	//Path changed
+	if(original_name != proposed_name)
+	{
+		std::string dir_name = picker.getDirName();
+		gSavedPerAccountSettings.setString("InstantMessageLogPath", dir_name);
+		mInstantMessageLogPathChanged = true;
+
+		// enable/disable 'Delete transcripts button
+		updateDeleteTranscriptsButton();
+	}
 }
 
 void LLFloaterPreference::updateLogLocation(const std::string& dir_name)
diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h
index dbd87f74a19bf0cad4989c7ed8aac2445772dc4f..c72346c3b61f3fe0ca2f5e2e571e0537d5fb7b17 100644
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
@@ -186,6 +186,7 @@ class LLFloaterPreference : public LLFloater, public LLAvatarPropertiesObserver,
 	bool mGotPersonalInfo;
 	bool mOriginalIMViaEmail;
 	bool mLanguageChanged;
+	bool mInstantMessageLogPathChanged;
 	bool mAvatarDataInitialized;
 	
 	bool mOriginalHideOnlineStatus;