diff --git a/indra/newview/llfloaterexperienceprofile.cpp b/indra/newview/llfloaterexperienceprofile.cpp
index 2c9a8e64b7a1aae1eb4790a359e98fd462cbf8e9..a99a096ea7bcbf36f73c894db7fad749f09e4973 100644
--- a/indra/newview/llfloaterexperienceprofile.cpp
+++ b/indra/newview/llfloaterexperienceprofile.cpp
@@ -211,6 +211,20 @@ bool LLFloaterExperienceProfile::experiencePermission( LLHandle<LLFloaterExperie
     return false;
 }
 
+bool LLFloaterExperienceProfile::matchesKey(const LLSD& key)
+{
+    if (key.has("experience_id"))
+    {
+        return mExperienceId == key["experience_id"].asUUID();
+    }
+    else if (key.isUUID())
+    {
+        return mExperienceId == key.asUUID();
+    }
+    // Assume NULL uuid
+    return mExperienceId.isNull();
+}
+
 
 void LLFloaterExperienceProfile::onClickEdit()
 {
diff --git a/indra/newview/llfloaterexperienceprofile.h b/indra/newview/llfloaterexperienceprofile.h
index 1394418d9118d3e6d8e96f198039c045e3b2ed2b..f9b6e2e2ebf42851d5bd1cd294d7096d330c2fa4 100644
--- a/indra/newview/llfloaterexperienceprofile.h
+++ b/indra/newview/llfloaterexperienceprofile.h
@@ -51,6 +51,8 @@ class LLFloaterExperienceProfile : public LLFloater
 
     LLFloaterExperienceProfile(const LLSD& data);
     virtual ~LLFloaterExperienceProfile();
+    
+    /* virtual */ bool matchesKey(const LLSD& key);
 
     LLUUID getExperienceId() const { return mExperienceId; }
     void setPreferences( const LLSD& content );