diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index 2be378d5b1eba215ab9251532a6dc05170cc03bc..25a7225418716464ad91a6759481cf2662d332eb 100644
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -1634,7 +1634,10 @@ void LLInventoryModel::idleNotifyObservers()
 }
 
 // Call this method when it's time to update everyone on a new state.
-void LLInventoryModel::notifyObservers()
+//void LLInventoryModel::notifyObservers()
+// [SL:KB] - Patch: UI-Notifications | Checked: Catznip-6.5
+void LLInventoryModel::notifyObservers(const LLUUID& transaction_id)
+// [/SL:KB]
 {
 	if (mIsNotifyObservers)
 	{
@@ -1646,6 +1649,9 @@ void LLInventoryModel::notifyObservers()
 	}
 
 	mIsNotifyObservers = TRUE;
+// [SL:KB] - Patch: UI-Notifications | Checked: Catznip-6.5
+    mTransactionId = transaction_id;
+// [/SL:KB]
 	for (observer_list_t::iterator iter = mObservers.begin();
 		 iter != mObservers.end(); )
 	{
@@ -1659,6 +1665,9 @@ void LLInventoryModel::notifyObservers()
 	mModifyMask = LLInventoryObserver::NONE;
 	mChangedItemIDs.clear();
 	mAddedItemIDs.clear();
+// [SL:KB] - Patch: UI-Notifications | Checked: Catznip-6.5
+    mTransactionId.setNull();
+// [/SL:KB]
 	mIsNotifyObservers = FALSE;
 }
 
@@ -3321,7 +3330,10 @@ void LLInventoryModel::processBulkUpdateInventory(LLMessageSystem* msg, void**)
 	{
 		gInventory.updateItem(*iit);
 	}
-	gInventory.notifyObservers();
+// [SL:KB] - Patch: UI-Notifications | Checked: Catznip-6.5
+	gInventory.notifyObservers(tid);
+// [/SL:KB]
+//	gInventory.notifyObservers();
 
 	// The incoming inventory could span more than one BulkInventoryUpdate packet,
 	// so record the transaction ID for this purchase, then wear all clothing
diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h
index bd31b02a757a2c5eed8acf05e7cb97a3953d7f9a..3be55ae87f526a2d2458fef6c8d1662f23ba99d7 100644
--- a/indra/newview/llinventorymodel.h
+++ b/indra/newview/llinventorymodel.h
@@ -526,7 +526,10 @@ class LLInventoryModel
 	void idleNotifyObservers();
 
 	// Call to explicitly update everyone on a new state.
-	void notifyObservers();
+// [SL:KB] - Patch: UI-Notifications | Checked: Catznip-6.5
+	void notifyObservers(const LLUUID& transaction_id = LLUUID::null);
+// [/SL:KB]
+//	void notifyObservers();
 
 	// Allows outsiders to tell the inventory if something has
 	// been changed 'under the hood', but outside the control of the
@@ -535,6 +538,9 @@ class LLInventoryModel
 	
 	const changed_items_t& getChangedIDs() const { return mChangedItemIDs; }
 	const changed_items_t& getAddedIDs() const { return mAddedItemIDs; }
+// [SL:KB] - Patch: UI-Notifications | Checked: Catznip-6.5
+    const LLUUID& getTransactionId() const { return mTransactionId; }
+// [/SL:KB]
 protected:
 	// Updates all linked items pointing to this id.
 	void addChangedMaskForLinks(const LLUUID& object_id, U32 mask);
@@ -546,6 +552,9 @@ class LLInventoryModel
 	U32 mModifyMask;
 	changed_items_t mChangedItemIDs;
 	changed_items_t mAddedItemIDs;
+// [SL:KB] - Patch: UI-Notifications | Checked: Catznip-6.5
+    LLUUID mTransactionId;
+// [/SL:KB]
 	
 	
 	//--------------------------------------------------------------------
diff --git a/indra/newview/rlvinventory.cpp b/indra/newview/rlvinventory.cpp
index e3d06e2bdc67686bc13d3570751a6e76cf2a8e6b..7b0b87c61d08a7cf8d949bb70c2cf1db43fa7072 100644
--- a/indra/newview/rlvinventory.cpp
+++ b/indra/newview/rlvinventory.cpp
@@ -1,17 +1,17 @@
-/** 
+/**
  *
- * Copyright (c) 2009-2014, Kitty Barnett
- * 
- * The source code in this file is provided to you under the terms of the 
+ * Copyright (c) 2009-2020, Kitty Barnett
+ *
+ * The source code in this file is provided to you under the terms of the
  * GNU Lesser General Public License, version 2.1, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
- * PARTICULAR PURPOSE. Terms of the LGPL can be found in doc/LGPL-licence.txt 
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. Terms of the LGPL can be found in doc/LGPL-licence.txt
  * in this distribution, or online at http://www.gnu.org/licenses/lgpl-2.1.txt
- * 
+ *
  * By copying, modifying or distributing this software, you acknowledge that
- * you have read and understood your obligations described above, and agree to 
+ * you have read and understood your obligations described above, and agree to
  * abide by those obligations.
- * 
+ *
  */
 
 #include "llviewerprecompiledheaders.h"
@@ -630,26 +630,18 @@ void RlvGiveToRLVOffer::moveAndRename(const LLUUID& idFolder, const LLUUID& idDe
 
 void RlvGiveToRLVTaskOffer::changed(U32 mask)
 {
-	if (mask & LLInventoryObserver::ADD)
-	{
-		LLMessageSystem* pMsg = gMessageSystem;
-		if ( (pMsg->getMessageName()) && (0 == strcmp(pMsg->getMessageName(), "BulkUpdateInventory")) )
-		{
-			LLUUID idTransaction;
-			pMsg->getUUIDFast(_PREHASH_AgentData, _PREHASH_TransactionID, idTransaction);
-			if (m_idTransaction == idTransaction)
+	if ( (mask & LLInventoryObserver::ADD) && (gInventory.getTransactionId().notNull()) && (m_idTransaction == gInventory.getTransactionId()) )
+	{    // BulkUpdateInventory
+	    const auto& idItems = gInventory.getAddedIDs();
+	    for (const LLUUID& idItem : idItems)
+	    {
+	        if (LLInventoryCategory* pCategory = gInventory.getCategory(idItem))
 			{
-				LLUUID idInvObject;
-				for (S32 idxBlock = 0, cntBlock = pMsg->getNumberOfBlocksFast(_PREHASH_FolderData); idxBlock < cntBlock; idxBlock++)
-				{
-					pMsg->getUUIDFast(_PREHASH_FolderData, _PREHASH_FolderID, idInvObject, idxBlock);
-					if ( (idInvObject.notNull()) && (std::find(m_Folders.begin(), m_Folders.end(), idInvObject) == m_Folders.end()) )
-						m_Folders.push_back(idInvObject);
-				}
-
-				done();
+				if (std::find(m_Folders.begin(), m_Folders.end(), pCategory->getUUID()) == m_Folders.end())
+					m_Folders.push_back(pCategory->getUUID());
 			}
 		}
+		done();
 	}
 }
 
diff --git a/indra/newview/rlvinventory.h b/indra/newview/rlvinventory.h
index 2cb7f8bc8edac693c8a7cc9a22831631597f685d..bee9c4bd1140ce4f5b86b8787e604a65125d5f04 100644
--- a/indra/newview/rlvinventory.h
+++ b/indra/newview/rlvinventory.h
@@ -1,17 +1,17 @@
-/** 
+/**
  *
- * Copyright (c) 2009-2014, Kitty Barnett
- * 
- * The source code in this file is provided to you under the terms of the 
+ * Copyright (c) 2009-2020, Kitty Barnett
+ *
+ * The source code in this file is provided to you under the terms of the
  * GNU Lesser General Public License, version 2.1, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
- * PARTICULAR PURPOSE. Terms of the LGPL can be found in doc/LGPL-licence.txt 
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. Terms of the LGPL can be found in doc/LGPL-licence.txt
  * in this distribution, or online at http://www.gnu.org/licenses/lgpl-2.1.txt
- * 
+ *
  * By copying, modifying or distributing this software, you acknowledge that
- * you have read and understood your obligations described above, and agree to 
+ * you have read and understood your obligations described above, and agree to
  * abide by those obligations.
- * 
+ *
  */
 
 #ifndef RLV_INVENTORY_H