diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp
index 20015dca1af7295982a27d0f474b94f46a7698bc..9cc8c951d5219d3e9739a54eeef7aa22a988a597 100755
--- a/indra/llui/llview.cpp
+++ b/indra/llui/llview.cpp
@@ -645,14 +645,18 @@ void LLView::setVisible(BOOL visible)
 void LLView::handleVisibilityChange ( BOOL new_visibility )
 {
 	BOOL old_visibility;
+	BOOL log_visibility_change = LLViewerEventRecorder::instance().getLoggingStatus();
 	BOOST_FOREACH(LLView* viewp, mChildList)
 	{
 		// only views that are themselves visible will have their overall visibility affected by their ancestors
 		old_visibility=viewp->getVisible();
 
-		if (old_visibility!=new_visibility)
+		if(log_visibility_change)
 		{
-			LLViewerEventRecorder::instance().logVisibilityChange( viewp->getPathname(), viewp->getName(), new_visibility,"widget");
+			if (old_visibility!=new_visibility)
+			{
+				LLViewerEventRecorder::instance().logVisibilityChange( viewp->getPathname(), viewp->getName(), new_visibility,"widget");
+			}
 		}
 
 		if (old_visibility)
@@ -660,11 +664,13 @@ void LLView::handleVisibilityChange ( BOOL new_visibility )
 			viewp->handleVisibilityChange ( new_visibility );
 		}
 
-		// Consider changing returns to confirm success and know which widget grabbed it
-		// For now assume success and log at highest xui possible 
-		// NOTE we log actual state - which may differ if it somehow failed to set visibility
-		lldebugs << "LLView::handleVisibilityChange	 - now: " << getVisible()  << " xui: " << viewp->getPathname() << " name: " << viewp->getName() << llendl;
-		
+		if(log_visibility_change)
+		{
+			// Consider changing returns to confirm success and know which widget grabbed it
+			// For now assume success and log at highest xui possible
+			// NOTE we log actual state - which may differ if it somehow failed to set visibility
+			lldebugs << "LLView::handleVisibilityChange	 - now: " << getVisible()  << " xui: " << viewp->getPathname() << " name: " << viewp->getName() << llendl;
+		}
 	}
 }
 
diff --git a/indra/llui/llviewereventrecorder.cpp b/indra/llui/llviewereventrecorder.cpp
index a352f621eb5aab413752a228db731e5ae4e560c1..546a0f58667fbee559d52904d36b3b49da296fc9 100644
--- a/indra/llui/llviewereventrecorder.cpp
+++ b/indra/llui/llviewereventrecorder.cpp
@@ -31,7 +31,7 @@
 LLViewerEventRecorder::LLViewerEventRecorder() {
 
   clear(UNDEFINED);
-
+  logEvents = false;
   // Remove any previous event log file
   std::string old_log_ui_events_to_llsd_file = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, "SecondLife_Events_log.old");
   LLFile::remove(old_log_ui_events_to_llsd_file);
diff --git a/indra/llui/llviewereventrecorder.h b/indra/llui/llviewereventrecorder.h
index 72ca643ced027e09501844a374288c3c0d828565..375efcc3de870ab83ca2c8590fa651dafdebc18d 100644
--- a/indra/llui/llviewereventrecorder.h
+++ b/indra/llui/llviewereventrecorder.h
@@ -65,7 +65,7 @@ class LLViewerEventRecorder : public LLSingleton<LLViewerEventRecorder>
   std::string get_xui();
   void update_xui(std::string xui);
 
-  bool getLoggingStatus();
+  bool getLoggingStatus(){return logEvents;};
   void setEventLoggingOn();
   void setEventLoggingOff();