diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index d2a992ed942f792c001b484aa73e3240a372c520..09746f4b2c1a9e682f8918670665b9b20727adc6 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -229,6 +229,7 @@ set(viewer_SOURCE_FILES
     llfloatereditwater.cpp
     llfloaterenvironmentsettings.cpp
     llfloaterevent.cpp
+    llfloaterexperiencepicker.cpp
     llfloaterexperienceprofile.cpp
     llfloaterexperiences.cpp
     llfloaterfonttest.cpp
@@ -821,6 +822,7 @@ set(viewer_HEADER_FILES
     llfloatereditwater.h
     llfloaterenvironmentsettings.h
     llfloaterevent.h
+    llfloaterexperiencepicker.h
     llfloaterexperienceprofile.h
     llfloaterexperiences.h
     llfloaterfonttest.h
diff --git a/indra/newview/llfloaterexperiencepicker.cpp b/indra/newview/llfloaterexperiencepicker.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..6d0ceedb0d5673e82168a7b8743c5afb39c79844
--- /dev/null
+++ b/indra/newview/llfloaterexperiencepicker.cpp
@@ -0,0 +1,381 @@
+/** 
+* @file llfloaterexperiencepicker.cpp
+* @brief Implementation of llfloaterexperiencepicker
+* @author dolphin@lindenlab.com
+*
+* $LicenseInfo:firstyear=2014&license=viewerlgpl$
+* Second Life Viewer Source Code
+* Copyright (C) 2014, Linden Research, Inc.
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation;
+* version 2.1 of the License only.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this library; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+* $/LicenseInfo$
+*/
+
+#include "llviewerprecompiledheaders.h"
+
+#include "llfloaterexperiencepicker.h"
+
+
+#include "lllineeditor.h"
+#include "llfloaterreg.h"
+#include "llscrolllistctrl.h"
+#include "llviewerregion.h"
+#include "llagent.h"
+#include "llexperiencecache.h"
+#include "llslurl.h"
+#include "llavatarnamecache.h"
+#include "llfloaterexperienceprofile.h"
+#include "llcombobox.h"
+
+#define BTN_FIND		"find"
+#define BTN_OK			"ok_btn"
+#define BTN_CANCEL		"cancel_btn"
+#define BTN_PROFILE		"profile_btn"
+#define TEXT_EDIT		"edit"
+#define TEXT_MATURITY	"maturity"
+#define LIST_RESULTS	"search_results"
+#define PANEL_SEARCH	"search_panel"
+
+const static std::string columnSpace = " ";
+
+class LLExperiencePickerResponder : public LLHTTPClient::Responder
+{
+public:
+	LLUUID mQueryID;
+	LLHandle<LLFloaterExperiencePicker> mParent;
+
+	LLExperiencePickerResponder(const LLUUID& id, const LLHandle<LLFloaterExperiencePicker>& parent) : mQueryID(id), mParent(parent) { }
+
+	void completed(U32 status, const std::string& reason, const LLSD& content)
+	{
+		if (isGoodStatus(status))
+		{
+			if(mParent.isDead())
+				return;
+
+			LLFloaterExperiencePicker* floater =mParent.get();
+			if (floater)
+			{
+				floater->processResponse(mQueryID, content);
+			}
+		}
+		else
+		{
+			llwarns << "avatar picker failed [status:" << status << "]: " << content << llendl;
+
+		}
+	}
+};
+LLFloaterExperiencePicker* LLFloaterExperiencePicker::show( select_callback_t callback, const LLUUID& key, BOOL allow_multiple, BOOL closeOnSelect )
+{
+	LLFloaterExperiencePicker* floater =
+		LLFloaterReg::showTypedInstance<LLFloaterExperiencePicker>("experience_search", key);
+	if (!floater)
+	{
+		llwarns << "Cannot instantiate experience picker" << llendl;
+		return NULL;
+	}
+
+	floater->mSelectionCallback = callback;
+	floater->mCloseOnSelect = closeOnSelect;
+	floater->setAllowMultiple(allow_multiple);
+	return floater;
+}
+
+
+LLFloaterExperiencePicker::LLFloaterExperiencePicker( const LLSD& key )
+	:LLFloater(key)
+{
+
+}
+
+LLFloaterExperiencePicker::~LLFloaterExperiencePicker()
+{
+	gFocusMgr.releaseFocusIfNeeded( this );
+}
+
+
+
+BOOL LLFloaterExperiencePicker::postBuild()
+{
+	getChild<LLLineEditor>(TEXT_EDIT)->setKeystrokeCallback( boost::bind(&LLFloaterExperiencePicker::editKeystroke, this, _1, _2),NULL);
+
+	childSetAction(BTN_FIND, boost::bind(&LLFloaterExperiencePicker::onBtnFind, this));
+	getChildView(BTN_FIND)->setEnabled(FALSE);
+
+	LLScrollListCtrl* searchresults = getChild<LLScrollListCtrl>(LIST_RESULTS);
+	searchresults->setDoubleClickCallback( boost::bind(&LLFloaterExperiencePicker::onBtnSelect, this));
+	searchresults->setCommitCallback(boost::bind(&LLFloaterExperiencePicker::onList, this));
+	getChildView(LIST_RESULTS)->setEnabled(FALSE);
+	getChild<LLScrollListCtrl>(LIST_RESULTS)->setCommentText(getString("no_results"));
+
+	childSetAction(BTN_OK, boost::bind(&LLFloaterExperiencePicker::onBtnSelect, this));
+	getChildView(BTN_OK)->setEnabled(FALSE);
+	childSetAction(BTN_CANCEL, boost::bind(&LLFloaterExperiencePicker::onBtnClose, this));
+	childSetAction(BTN_PROFILE, boost::bind(&LLFloaterExperiencePicker::onBtnProfile, this));
+	getChildView(BTN_PROFILE)->setEnabled(FALSE);
+
+	getChild<LLComboBox>(TEXT_MATURITY)->setCurrentByIndex(2);
+	getChild<LLComboBox>(TEXT_MATURITY)->setCommitCallback(boost::bind(&LLFloaterExperiencePicker::onMaturity, this));
+	getChild<LLUICtrl>(TEXT_EDIT)->setFocus(TRUE);
+
+	LLPanel* search_panel = getChild<LLPanel>(PANEL_SEARCH);
+	if (search_panel)
+	{
+		// Start searching when Return is pressed in the line editor.
+		search_panel->setDefaultBtn(BTN_FIND);
+	}
+	return TRUE;
+}
+
+void LLFloaterExperiencePicker::editKeystroke( class LLLineEditor* caller, void* user_data )
+{
+	getChildView(BTN_FIND)->setEnabled(caller->getText().size() > 0);
+}
+
+void LLFloaterExperiencePicker::onBtnFind()
+{
+	find();
+}
+
+void LLFloaterExperiencePicker::onBtnSelect()
+{
+	if(!isSelectButtonEnabled())
+	{
+		return;
+	}
+
+	if(mSelectionCallback)
+	{
+		const LLScrollListCtrl* results = getChild<LLScrollListCtrl>(LIST_RESULTS);
+		uuid_vec_t experience_ids;
+		
+		getSelectedExperienceIds(results, experience_ids);
+		mSelectionCallback(experience_ids);
+	}
+	getChild<LLScrollListCtrl>(LIST_RESULTS)->deselectAllItems(TRUE);
+	if(mCloseOnSelect)
+	{
+		mCloseOnSelect = FALSE;
+		closeFloater();
+	}
+}
+
+void LLFloaterExperiencePicker::onList()
+{
+	bool enabled = isSelectButtonEnabled();
+	getChildView(BTN_OK)->setEnabled(enabled);
+
+	enabled = enabled && getChild<LLScrollListCtrl>(LIST_RESULTS)->getNumSelected() == 1;
+	getChildView(BTN_PROFILE)->setEnabled(enabled);
+}
+
+
+void LLFloaterExperiencePicker::onBtnClose()
+{
+	closeFloater();
+}
+
+
+void LLFloaterExperiencePicker::find()
+{
+	std::string text = getChild<LLUICtrl>(TEXT_EDIT)->getValue().asString();
+	mQueryID.generate();
+	std::string url;
+	url.reserve(128+text.size());
+
+	LLViewerRegion* region = gAgent.getRegion();
+	url = region->getCapability("FindExperienceByName");
+	if (!url.empty())
+	{
+		url+="?query=";
+		url+=LLURI::escape(text);
+		LLHTTPClient::get(url, new LLExperiencePickerResponder(mQueryID, getDerivedHandle<LLFloaterExperiencePicker>()));
+
+	}
+
+
+	getChild<LLScrollListCtrl>(LIST_RESULTS)->deleteAllItems();
+	getChild<LLScrollListCtrl>(LIST_RESULTS)->setCommentText(getString("searching"));
+
+	getChildView(BTN_OK)->setEnabled(FALSE);
+	getChildView(BTN_PROFILE)->setEnabled(FALSE);
+}
+
+
+bool LLFloaterExperiencePicker::isSelectButtonEnabled()
+{
+	return getChild<LLScrollListCtrl>(LIST_RESULTS)->getFirstSelectedIndex() >=0;
+}
+
+void LLFloaterExperiencePicker::getSelectedExperienceIds( const LLScrollListCtrl* results, uuid_vec_t &experience_ids )
+{
+	std::vector<LLScrollListItem*> items = results->getAllSelected();
+	for(std::vector<LLScrollListItem*>::iterator it = items.begin(); it != items.end(); ++it)
+	{
+		LLScrollListItem* item = *it;
+		if (item->getUUID().notNull())
+		{
+			experience_ids.push_back(item->getUUID());
+		}
+	}
+}
+
+void LLFloaterExperiencePicker::setAllowMultiple( bool allow_multiple )
+{
+	getChild<LLScrollListCtrl>(LIST_RESULTS)->setAllowMultipleSelection(allow_multiple);
+}
+
+
+void name_callback(const LLHandle<LLFloaterExperiencePicker>& floater, const LLUUID& experience_id, const LLUUID& agent_id, const LLAvatarName& av_name)
+{
+	if(floater.isDead())
+		return;
+	LLFloaterExperiencePicker* picker = floater.get();
+	LLScrollListCtrl* search_results = picker->getChild<LLScrollListCtrl>(LIST_RESULTS);
+
+	LLScrollListItem* item = search_results->getItem(experience_id);
+	if(!item)
+		return;
+
+	item->getColumn(2)->setValue(columnSpace+av_name.getDisplayName());
+
+}
+
+void LLFloaterExperiencePicker::processResponse( const LLUUID& query_id, const LLSD& content )
+{
+	if(query_id != mQueryID)
+	{
+		return;
+	}
+
+	mResponse = content;
+
+	const LLSD& experiences=mResponse["experience_keys"];
+	LLSD::array_const_iterator it = experiences.beginArray();
+	for ( ; it != experiences.endArray(); ++it)
+	{
+		LLExperienceCache::insert(*it);
+	}
+
+	filterContent();
+
+}
+
+void LLFloaterExperiencePicker::onBtnProfile()
+{
+	LLScrollListItem* item = getChild<LLScrollListCtrl>(LIST_RESULTS)->getFirstSelected();
+	if(item)
+	{
+		LLFloaterReg::showInstance("experience_profile", item->getUUID(), true);
+	}
+}
+
+std::string LLFloaterExperiencePicker::getMaturityString(int maturity)
+{
+	if(maturity <= SIM_ACCESS_PG)
+	{
+		return getString("maturity_icon_general");
+	}
+	else if(maturity <= SIM_ACCESS_MATURE)
+	{
+		return getString("maturity_icon_moderate");
+	}
+	return getString("maturity_icon_adult");
+}
+
+void LLFloaterExperiencePicker::filterContent()
+{
+	LLScrollListCtrl* search_results = getChild<LLScrollListCtrl>(LIST_RESULTS);
+
+	const LLSD& experiences=mResponse["experience_keys"];
+
+	search_results->deleteAllItems();
+
+	int maturity = getChild<LLComboBox>(TEXT_MATURITY)->getSelectedValue().asInteger();
+	LLSD item;
+	LLSD::array_const_iterator it = experiences.beginArray();
+	for ( ; it != experiences.endArray(); ++it)
+	{
+		const LLSD& experience = *it;
+
+		if(experience[LLExperienceCache::MATURITY].asInteger() > maturity)
+			continue;
+
+
+		item["id"]=experience[LLExperienceCache::EXPERIENCE_ID];
+		LLSD& columns = item["columns"];
+		columns[0]["column"] = "maturity";
+		columns[0]["value"] = getMaturityString(experience[LLExperienceCache::MATURITY].asInteger());
+		columns[0]["type"]="icon";
+		columns[0]["halign"]="right";
+		columns[1]["column"] = "experience_name";
+		columns[1]["value"] = columnSpace+experience[LLExperienceCache::NAME].asString();
+		columns[2]["column"] = "owner";
+		columns[2]["value"] = columnSpace+getString("loading");
+		search_results->addElement(item);
+		LLAvatarNameCache::get(experience[LLExperienceCache::AGENT_ID], boost::bind(name_callback, getDerivedHandle<LLFloaterExperiencePicker>(), experience[LLExperienceCache::EXPERIENCE_ID], _1, _2));
+	}
+
+	if (search_results->isEmpty())
+	{
+		LLStringUtil::format_map_t map;
+		map["[TEXT]"] = childGetText(TEXT_EDIT);
+		LLSD item;
+		item["id"] = LLUUID::null;
+		item["columns"][1]["column"] = "name";
+		item["columns"][1]["value"] = columnSpace+getString("not_found", map);
+		search_results->addElement(item);
+		search_results->setEnabled(false);
+		getChildView(BTN_OK)->setEnabled(false);
+		getChildView(BTN_PROFILE)->setEnabled(false);
+	}
+	else
+	{
+		getChildView(BTN_OK)->setEnabled(true);
+		search_results->setEnabled(true);
+		search_results->sortByColumnIndex(1, TRUE);
+		std::string text = getChild<LLUICtrl>(TEXT_EDIT)->getValue().asString();
+		if (!search_results->selectItemByLabel(text, TRUE, 1))
+		{
+			search_results->selectFirstItem();
+		}			
+		onList();
+		search_results->setFocus(TRUE);
+	}
+}
+
+void LLFloaterExperiencePicker::onMaturity()
+{
+	filterContent();
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/indra/newview/llfloaterexperiencepicker.h b/indra/newview/llfloaterexperiencepicker.h
new file mode 100644
index 0000000000000000000000000000000000000000..72085b8b32ba3cf3e1f716fe4d2c124900693bd3
--- /dev/null
+++ b/indra/newview/llfloaterexperiencepicker.h
@@ -0,0 +1,81 @@
+/** 
+* @file   llfloaterexperiencepicker.h
+* @brief  Header file for llfloaterexperiencepicker
+* @author dolphin@lindenlab.com
+*
+* $LicenseInfo:firstyear=2014&license=viewerlgpl$
+* Second Life Viewer Source Code
+* Copyright (C) 2014, Linden Research, Inc.
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU Lesser General Public
+* License as published by the Free Software Foundation;
+* version 2.1 of the License only.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this library; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+* $/LicenseInfo$
+*/
+#ifndef LL_LLFLOATEREXPERIENCEPICKER_H
+#define LL_LLFLOATEREXPERIENCEPICKER_H
+
+#include "llfloater.h"
+
+class LLScrollListCtrl;
+class LLLineEditor;
+
+
+class LLFloaterExperiencePicker : public LLFloater
+{
+public:
+	friend class LLExperiencePickerResponder;
+
+	// The callback function will be called with an avatar name and UUID.
+	typedef boost::function<void (const uuid_vec_t&)> select_callback_t;
+
+	static LLFloaterExperiencePicker* show( select_callback_t callback, const LLUUID& key, BOOL allow_multiple, BOOL closeOnSelect );
+
+	LLFloaterExperiencePicker(const LLSD& key);
+	virtual ~LLFloaterExperiencePicker();
+
+	BOOL postBuild();
+
+
+private:
+	void editKeystroke(LLLineEditor* caller, void* user_data);
+
+	void onBtnFind();
+	void onBtnSelect();
+	void onBtnProfile();
+	void onBtnClose();
+	void onList();
+	void onMaturity();
+
+	void getSelectedExperienceIds( const LLScrollListCtrl* results, uuid_vec_t &experience_ids );
+	void setAllowMultiple(bool allow_multiple);
+
+
+	void find();
+	bool isSelectButtonEnabled();
+	void processResponse( const LLUUID& query_id, const LLSD& content );
+
+	void filterContent();
+	std::string getMaturityString(int maturity);
+
+
+	select_callback_t	mSelectionCallback;
+	bool				mCloseOnSelect;
+	LLUUID				mQueryID;
+	LLSD				mResponse;
+};
+
+#endif // LL_LLFLOATEREXPERIENCEPICKER_H
+
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index f3877963092650a40e1ed6223adab617b5a97971..ea1d9f816b16802d4d57d5eb2b4453a2b820ae90 100755
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -60,6 +60,7 @@
 #include "llfloaterenvironmentsettings.h"
 #include "llfloaterexperienceprofile.h"
 #include "llfloaterexperiences.h"
+#include "llfloaterexperiencepicker.h"
 #include "llfloaterevent.h"
 #include "llfloaterdestinations.h"
 #include "llfloaterfonttest.h"
@@ -211,7 +212,8 @@ void LLViewerFloaterReg::registerFloaters()
 
     LLFloaterReg::add("event", "floater_event.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterEvent>);
     LLFloaterReg::add("experiences", "floater_experiences.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterExperiences>);
-    LLFloaterReg::add("experience_profile", "floater_experienceprofile.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterExperienceProfile>);
+	LLFloaterReg::add("experience_profile", "floater_experienceprofile.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterExperienceProfile>);
+	LLFloaterReg::add("experience_search", "floater_experience_search.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterExperiencePicker>);
 
 	LLFloaterReg::add("font_test", "floater_font_test.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterFontTest>);
 
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index 4e84cc339073d59755a00d5445d778d5fe81beb0..f209f165167e6b077e762c6ff17faa86a100bd3d 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -1601,15 +1601,16 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
 
 	capabilityNames.append("GetDisplayNames");
 	capabilityNames.append("GetExperiences");
-    capabilityNames.append("GetExperienceInfo");
-    capabilityNames.append("GetAdminExperiences");
+	capabilityNames.append("FindExperienceByName");
+	capabilityNames.append("GetExperienceInfo");
+	capabilityNames.append("GetAdminExperiences");
 	capabilityNames.append("GetCreatorExperiences");
-    capabilityNames.append("ExperiencePreferences");
-    capabilityNames.append("UpdateExperience");
-    capabilityNames.append("IsExperienceAdmin");
-    capabilityNames.append("IsExperienceContributor");
-    capabilityNames.append("GetMesh");
-    capabilityNames.append("GetMetadata");
+	capabilityNames.append("ExperiencePreferences");
+	capabilityNames.append("UpdateExperience");
+	capabilityNames.append("IsExperienceAdmin");
+	capabilityNames.append("IsExperienceContributor");
+	capabilityNames.append("GetMesh");
+	capabilityNames.append("GetMetadata");
 	capabilityNames.append("GetObjectCost");
 	capabilityNames.append("GetObjectPhysicsData");
 	capabilityNames.append("GetTexture");
diff --git a/indra/newview/skins/default/xui/en/floater_experience_search.xml b/indra/newview/skins/default/xui/en/floater_experience_search.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4531b52d678227d4bac516ecb96a855460263b03
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_experience_search.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<floater
+  positioning="cascading"
+  legacy_header_height="18"
+  can_resize="true"
+  height="350"
+  layout="topleft"
+  min_height="200"
+  min_width="400"
+  name="experiencepicker"
+  help_topic="experiencepicker"
+  title="CHOOSE EXPERIENCE"
+  width="350">
+
+  <floater.string
+    name="not_found">
+    &apos;[TEXT]&apos; not found
+  </floater.string>
+  <floater.string
+    name="no_results">
+    No results
+  </floater.string>
+  <floater.string
+    name="searching">
+    Searching...
+  </floater.string>
+  <floater.string
+    name="loading">
+    Loading...
+  </floater.string>
+  <floater.string
+    name="maturity_icon_general">
+    "Parcel_PG_Light"
+  </floater.string>
+  <floater.string
+    name="maturity_icon_moderate">
+    "Parcel_M_Light"
+  </floater.string>
+  <floater.string
+    name="maturity_icon_adult">
+    "Parcel_R_Light"
+  </floater.string>
+  <panel
+    follows="all"
+    left="5"
+    right="-3"
+    bottom="-2"
+    top="18"
+    name="search_panel">
+    <text
+      left="0"
+      follows="top|left|right"
+      right="-1">
+      Enter part of the name:
+    </text>
+    <line_editor
+      left="0"
+      follows="left|top|right"
+      name="edit"
+      height="18"
+      right="-60"/>
+    <button label="Go"
+            follows="top|right"
+            top_pad="-18"
+            left_pad="2"
+            right="-1"
+            height="18"
+            name="find"/>
+    <text
+      top_pad="6"
+      left="0"
+      follows="top|left"
+      width="180">
+      Max Content Rating:
+    </text>
+    <icons_combo_box
+      follows="left|top"
+      height="20"
+      label="Moderate"
+      layout="topleft"
+      name="maturity"
+      top_pad="-13"
+      left_pad="0"
+      right="-1">
+      <icons_combo_box.drop_down_button
+        image_overlay="Parcel_M_Light"
+        image_overlay_alignment="left"
+        imgoverlay_label_space="3"
+        pad_left="3"/>
+      <icons_combo_box.item
+        label="Adult"
+        name="Adult"
+        value="42">
+        <item.columns
+          halign="center"
+          type="icon"
+          value="Parcel_R_Light"
+          width="20"/>
+      </icons_combo_box.item>
+      <icons_combo_box.item
+        label="Moderate"
+        name="Mature"
+        value="21">
+        <item.columns
+          halign="center"
+          type="icon"
+          value="Parcel_M_Light"
+          width="20"/>
+      </icons_combo_box.item>
+      <icons_combo_box.item
+        label="General"
+        name="PG"
+        value="13">
+        <item.columns
+          halign="center"
+          type="icon"
+          value="Parcel_PG_Light"
+          width="20"/>
+      </icons_combo_box.item>
+    </icons_combo_box>
+    <scroll_list
+      draw_heading="true"
+      left="0"
+      right="-1"
+      height="239"
+      top_pad="4"
+      follows="all"
+      column_padding="5"
+      can_resize="true"
+      name="search_results">
+      <columns
+        halign="center"
+        width="24"
+        name="maturity"
+        label=""/>
+      <columns
+        user_resize="true"
+        name="experience_name"
+        label="Name"/>
+      <columns
+        user_resize="true"
+        name="owner"
+        label="Owner"/>
+    </scroll_list>
+
+    <button
+      follows="left|bottom"
+      height="23"
+      label="OK"
+      label_selected="OK"
+      name="ok_btn"
+      top_pad="3"
+      left="0"
+      width="100" />
+    <button
+      follows="left|bottom"
+      height="23"
+      label="Cancel"
+      name="cancel_btn"
+      width="100"
+      left_pad="3" />
+    <button
+      follows="left|bottom"
+      height="23"
+      label="View Profile"
+      name="profile_btn"
+      width="100"
+      left_pad="3" />
+  </panel>
+</floater>
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 50d4003618d71954eb5db3944159591ac157c75d..4be7dd2a5c0aaf6936d35a97d55962f0c1f819a1 100755
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -77,10 +77,17 @@
       <menu_item_call
         label="Experiences..."
         name="Experiences">
-        <menu_item_call.on_click 
+        <menu_item_call.on_click
           function="Floater.ToggleOrBringToFront"
           parameter="experiences"/>
       </menu_item_call>
+      <menu_item_call
+        label="Experience Search..."
+        name="Experience Search">
+        <menu_item_call.on_click
+          function="Floater.ToggleOrBringToFront"
+          parameter="experience_search"/>
+      </menu_item_call>
       <menu_item_separator/>
       <menu_item_call
        label="Camera Controls..."
diff --git a/indra/newview/skins/default/xui/en/panel_region_experiences.xml b/indra/newview/skins/default/xui/en/panel_region_experiences.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d3b322661945ad675a3dd006a4233bba8e37f467
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_region_experiences.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+  border="true"
+  follows="top|left"
+  height="510"
+  help_topic="panel_region_experience_tab"
+  label="Experience"
+  layout="topleft"
+  left="0"
+  name="Experience"
+  top="320"
+  width="530">
+
+
+</panel>