diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp
index 2041fac8d8d165cbfd878e5201c2443cceeb50ab..6fc9a620c1403fa73ba8df749dc341bb8c1a74be 100644
--- a/indra/newview/llfloatersearch.cpp
+++ b/indra/newview/llfloatersearch.cpp
@@ -103,14 +103,10 @@ BOOL LLFloaterSearch::postBuild()
 
 void LLFloaterSearch::onOpen(const LLSD& key)
 {
-	search(key);
-}
-
-void LLFloaterSearch::onClose(bool app_quitting)
-{
-	// tear down the web view so we don't show the previous search
-	// result when the floater is opened next time
-	destroy();
+	if ( (key.has("category")) || ((mBrowser) && (mBrowser->getCurrentNavUrl().empty())) )
+	{
+		search(key);
+	}
 }
 
 void LLFloaterSearch::handleMediaEvent(LLPluginClassMedia *self, EMediaEvent event)
diff --git a/indra/newview/llfloatersearch.h b/indra/newview/llfloatersearch.h
index ba4dc4c0fa2bc31152ef19e0a5978358a3cf1cb9..615c099d0d60486ad310d7b2140cc6a715aa195c 100644
--- a/indra/newview/llfloatersearch.h
+++ b/indra/newview/llfloatersearch.h
@@ -53,8 +53,6 @@ class LLFloaterSearch :
 	/// see search() for details on the key parameter.
 	/*virtual*/ void onOpen(const LLSD& key);
 
-	/*virtual*/ void onClose(bool app_quitting);
-
 	/// perform a search with the specific search term.
 	/// The key should be a map that can contain the following keys:
 	///  - "id": specifies the text phrase to search for