diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index aafd0dabe15a76b39be5e92bc2a7529cd34993ba..7e5b2d9483c1e8397f7216fe0cbb6c51234bb346 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -67,6 +67,17 @@
       <key>Value</key>
       <integer>0</integer>
     </map>
+    <key>RLVaDebugHideUnsetDuplicate</key>
+    <map>
+      <key>Comment</key>
+      <string>Suppresses reporting "unset" or "duplicate" command restrictions when RestrainedLoveDebug is TRUE</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
+    </map>
     <key>RLVaEnableCompositeFolders</key>
     <map>
       <key>Comment</key>
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 79aab877c986bfab23b65e9db8c296357b4ab796..e1dc19737250e348436784ab1b93ed78019d8e39 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -3350,7 +3350,9 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
 						std::string strCmd = *itToken;
 
 						ERlvCmdRet eRet = gRlvHandler.processCommand(from_id, strCmd, true);
-						if (RlvSettings::getDebug())
+						if ( (RlvSettings::getDebug()) &&
+							 ( (!RlvSettings::getDebugHideUnsetDup()) || 
+							   ((RLV_RET_SUCCESS_UNSET != eRet) && (RLV_RET_SUCCESS_DUPLICATE != eRet)) ) )
 						{
 							if ( RLV_RET_SUCCESS == (eRet & RLV_RET_SUCCESS) )	
 								pstr = &strExecuted;
@@ -3377,7 +3379,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
 					if (RlvForceWear::instanceExists())
 						RlvForceWear::instance().done();
 
-					if (!RlvSettings::getDebug())
+					if ( (!RlvSettings::getDebug()) || ((strExecuted.empty()) && (strFailed.empty()) && (strRetained.empty())) )
 						return;
 
 					// Silly people want comprehensive debug messages, blah :p
@@ -3396,7 +3398,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
 						verb = " retained: @";
 						mesg = strRetained;
 					}
-					else 
+					else
 					{
 						verb = ": @";
 						if (!strExecuted.empty())
diff --git a/indra/newview/rlvcommon.h b/indra/newview/rlvcommon.h
index 7d4653480198f57be211d694ed7e271e8944e4b8..6fb2a9a880dc6af9b9c3a16e924065a53df6e74f 100644
--- a/indra/newview/rlvcommon.h
+++ b/indra/newview/rlvcommon.h
@@ -53,6 +53,7 @@ public:
 	static BOOL getNoSetEnv()				{ return fNoSetEnv; }
 
 	static BOOL getDebugUIEnablers()		{ return rlvGetSettingBOOL(RLV_SETTING_DEBUGUIENABLERS, FALSE); }
+	static BOOL getDebugHideUnsetDup()		{ return rlvGetSettingBOOL(RLV_SETTING_DEBUGHIDEUNSETDUP, FALSE); }
 	#ifdef RLV_EXPERIMENTAL_COMPOSITEFOLDERS
 	static BOOL getEnableComposites()		{ return fCompositeFolders; }
 	#endif // RLV_EXPERIMENTAL_COMPOSITEFOLDERS
diff --git a/indra/newview/rlvdefines.h b/indra/newview/rlvdefines.h
index 01286071b1eac2f0b5fca44ffc383a566890d763..e4b44e9095cddcbed98817d97e6e89a2301aa5be 100644
--- a/indra/newview/rlvdefines.h
+++ b/indra/newview/rlvdefines.h
@@ -281,6 +281,7 @@ enum ERlvAttachGroupType
 
 #define RLV_SETTING_CREATEOUTFITFOLDERS	"RLVaCreateFoldersOnSaveOutfit"
 #define RLV_SETTING_DEBUGUIENABLERS		"RLVaDebugUIEnablers"
+#define RLV_SETTING_DEBUGHIDEUNSETDUP   "RLVaDebugHideUnsetDuplicate"
 #define RLV_SETTING_ENABLECOMPOSITES	"RLVaEnableCompositeFolders"
 #define RLV_SETTING_ENABLELEGACYNAMING	"RLVaEnableLegacyNaming"
 #define RLV_SETTING_ENABLESHAREDWEAR	"RLVaEnableSharedWear"