diff --git a/indra/newview/llfloatermarketplacelistings.cpp b/indra/newview/llfloatermarketplacelistings.cpp
index 229bf0b0b15c1d354edc2b1868a2d84b6b976c16..f4c138b890af660c864763e5a0d18b8a00f84576 100755
--- a/indra/newview/llfloatermarketplacelistings.cpp
+++ b/indra/newview/llfloatermarketplacelistings.cpp
@@ -53,7 +53,7 @@ static LLPanelInjector<LLPanelMarketplaceListings> t_panel_status("llpanelmarket
 LLPanelMarketplaceListings::LLPanelMarketplaceListings()
 : mRootFolder(NULL)
 , mSortOrder(LLInventoryFilter::SO_FOLDERS_BY_NAME)
-, mFilterType(LLInventoryFilter::FILTERTYPE_NONE)
+, mFilterListingFoldersOnly(false)
 {
 	mCommitCallbackRegistrar.add("Marketplace.ViewSort.Action",  boost::bind(&LLPanelMarketplaceListings::onViewSortMenuItemClicked,  this, _2));
 	mEnableCallbackRegistrar.add("Marketplace.ViewSort.CheckItem",	boost::bind(&LLPanelMarketplaceListings::onViewSortMenuItemCheck,	this, _2));
@@ -226,6 +226,21 @@ void LLPanelMarketplaceListings::onViewSortMenuItemClicked(const LLSD& userdata)
         panel = (LLInventoryPanel*)tabs_panel->getPanelByName("Unassociated Items");
         panel->setSortOrder(mSortOrder);
 	}
+    // Filter option
+    else if (chosen_item == "show_only_listing_folders")
+    {
+        mFilterListingFoldersOnly = !mFilterListingFoldersOnly;
+        // Set each panel with that filter flag
+        LLTabContainer* tabs_panel = getChild<LLTabContainer>("marketplace_filter_tabs");
+        LLInventoryPanel* panel = (LLInventoryPanel*)tabs_panel->getPanelByName("All Items");
+        panel->getFilter().setFilterMarketplaceListingFolders(mFilterListingFoldersOnly);
+        panel = (LLInventoryPanel*)tabs_panel->getPanelByName("Active Items");
+        panel->getFilter().setFilterMarketplaceListingFolders(mFilterListingFoldersOnly);
+        panel = (LLInventoryPanel*)tabs_panel->getPanelByName("Inactive Items");
+        panel->getFilter().setFilterMarketplaceListingFolders(mFilterListingFoldersOnly);
+        panel = (LLInventoryPanel*)tabs_panel->getPanelByName("Unassociated Items");
+        panel->getFilter().setFilterMarketplaceListingFolders(mFilterListingFoldersOnly);
+    }
 }
 
 bool LLPanelMarketplaceListings::onViewSortMenuItemCheck(const LLSD& userdata)
@@ -233,7 +248,13 @@ bool LLPanelMarketplaceListings::onViewSortMenuItemCheck(const LLSD& userdata)
 	std::string chosen_item = userdata.asString();
     
 	if (chosen_item == "sort_by_stock_amount")
+    {
 		return mSortOrder == LLInventoryFilter::SO_FOLDERS_BY_WEIGHT;
+    }
+    else if (chosen_item == "show_only_listing_folders")
+    {
+        return mFilterListingFoldersOnly;
+    }
 	return false;
 }
 
diff --git a/indra/newview/llfloatermarketplacelistings.h b/indra/newview/llfloatermarketplacelistings.h
index 92493478775b192524c2a73b75a53b9304c02552..f6aa0ef0a617e79d98dc14e84e2e7a8142839c78 100755
--- a/indra/newview/llfloatermarketplacelistings.h
+++ b/indra/newview/llfloatermarketplacelistings.h
@@ -74,8 +74,8 @@ class LLPanelMarketplaceListings : public LLPanel
     LLButton*         mAuditBtn;
 	LLFilterEditor*	  mFilterEditor;
 	std::string		  mFilterSubString;
+    bool              mFilterListingFoldersOnly;
     LLInventoryFilter::ESortOrderType mSortOrder;
-    LLInventoryFilter::EFilterType mFilterType;
 };
 
 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp
index 8fcfbd646fe2a7096e545c03f8cf40c2498b7f33..d0fb99404340e442f7715174b880c4ec815d29f4 100755
--- a/indra/newview/llinventoryfilter.cpp
+++ b/indra/newview/llinventoryfilter.cpp
@@ -146,10 +146,20 @@ bool LLInventoryFilter::checkFolder(const LLUUID& folder_id) const
 
 	// Marketplace folder filtering
     const U32 filterTypes = mFilterOps.mFilterTypes;
-    const U32 marketplace_filter = FILTERTYPE_MARKETPLACE_ACTIVE | FILTERTYPE_MARKETPLACE_INACTIVE | FILTERTYPE_MARKETPLACE_UNASSOCIATED;
+    const U32 marketplace_filter = FILTERTYPE_MARKETPLACE_ACTIVE | FILTERTYPE_MARKETPLACE_INACTIVE |
+                                   FILTERTYPE_MARKETPLACE_UNASSOCIATED | FILTERTYPE_MARKETPLACE_LISTING_FOLDER;
     if (filterTypes & marketplace_filter)
     {
         S32 depth = depth_nesting_in_marketplace(folder_id);
+
+        if (filterTypes & FILTERTYPE_MARKETPLACE_LISTING_FOLDER)
+        {
+            if (depth > 1)
+            {
+                return false;
+            }
+        }
+        
         if (depth > 0)
         {
             LLUUID listing_uuid = nested_parent_id(folder_id, depth);
@@ -551,6 +561,20 @@ void LLInventoryFilter::setFilterMarketplaceUnassociatedFolders()
 	mFilterOps.mFilterTypes |= FILTERTYPE_MARKETPLACE_UNASSOCIATED;
 }
 
+void LLInventoryFilter::setFilterMarketplaceListingFolders(bool select_only_listing_folders)
+{
+    if (select_only_listing_folders)
+    {
+        mFilterOps.mFilterTypes |= FILTERTYPE_MARKETPLACE_LISTING_FOLDER;
+        setModified(FILTER_MORE_RESTRICTIVE);
+    }
+    else
+    {
+        mFilterOps.mFilterTypes &= ~FILTERTYPE_MARKETPLACE_LISTING_FOLDER;
+        setModified(FILTER_LESS_RESTRICTIVE);
+    }
+}
+
 void LLInventoryFilter::setFilterUUID(const LLUUID& object_id)
 {
 	if (mFilterOps.mFilterUUID == LLUUID::null)
diff --git a/indra/newview/llinventoryfilter.h b/indra/newview/llinventoryfilter.h
index c270b90b096e5d08f54984560a5d744f375a305b..90fa444cf2e0b1de91f7cb3410aa2cd9e07fe727 100755
--- a/indra/newview/llinventoryfilter.h
+++ b/indra/newview/llinventoryfilter.h
@@ -55,7 +55,8 @@ class LLInventoryFilter : public LLFolderViewFilter
 		FILTERTYPE_EMPTYFOLDERS = 0x1 << 5,		// pass if folder is not a system folder to be hidden if empty
         FILTERTYPE_MARKETPLACE_ACTIVE = 0x1 << 6,		// pass if folder is a marketplace active folder
         FILTERTYPE_MARKETPLACE_INACTIVE = 0x1 << 7,		// pass if folder is a marketplace inactive folder
-        FILTERTYPE_MARKETPLACE_UNASSOCIATED = 0x1 << 8	// pass if folder is a marketplace non associated (no market ID) folder
+        FILTERTYPE_MARKETPLACE_UNASSOCIATED = 0x1 << 8,	// pass if folder is a marketplace non associated (no market ID) folder
+        FILTERTYPE_MARKETPLACE_LISTING_FOLDER = 0x1 << 9	// pass iff folder is a listing folder
 	};
 
 	enum EFilterDateDirection
@@ -177,6 +178,7 @@ class LLInventoryFilter : public LLFolderViewFilter
 	void				setFilterMarketplaceActiveFolders();
 	void				setFilterMarketplaceInactiveFolders();
 	void				setFilterMarketplaceUnassociatedFolders();
+    void                setFilterMarketplaceListingFolders(bool select_only_listing_folders);
 	void				updateFilterTypes(U64 types, U64& current_types);
 
 	void 				setFilterSubString(const std::string& string);
diff --git a/indra/newview/skins/default/xui/en/menu_marketplace_view.xml b/indra/newview/skins/default/xui/en/menu_marketplace_view.xml
index cff5ec10403d83074ce33be5a70e9c52a3f3a1da..a9e9b5a28fd9e95682414230f323c85f0f790c6d 100755
--- a/indra/newview/skins/default/xui/en/menu_marketplace_view.xml
+++ b/indra/newview/skins/default/xui/en/menu_marketplace_view.xml
@@ -13,4 +13,14 @@
          function="Marketplace.ViewSort.CheckItem"
          parameter="sort_by_stock_amount"/>
     </menu_item_check>
+    <menu_item_check
+        label="Show only listing folders"
+        name="show_only_listing_folders">
+        <menu_item_check.on_click
+        function="Marketplace.ViewSort.Action"
+        parameter="show_only_listing_folders"/>
+        <menu_item_check.on_check
+        function="Marketplace.ViewSort.CheckItem"
+        parameter="show_only_listing_folders"/>
+    </menu_item_check>
 </toggleable_menu>