diff --git a/indra/newview/llfloatermarketplacelistings.cpp b/indra/newview/llfloatermarketplacelistings.cpp
index 56cdd3446f6fa5af00a310651c379d3437404779..58bd4bc82b89150ddb38b581628164602106c3d5 100644
--- a/indra/newview/llfloatermarketplacelistings.cpp
+++ b/indra/newview/llfloatermarketplacelistings.cpp
@@ -45,6 +45,7 @@
 #include "lltabcontainer.h"
 #include "lltextbox.h"
 #include "lltrans.h"
+#include "llviewerwindow.h"
 
 ///----------------------------------------------------------------------------
 /// LLPanelMarketplaceListings
@@ -982,3 +983,18 @@ void LLFloaterItemProperties::onOpen(const LLSD& key)
     }
 }
 
+LLMultiItemProperties::LLMultiItemProperties(const LLSD& key)
+	: LLMultiFloater(LLSD())
+{
+	// start with a small rect in the top-left corner ; will get resized
+	LLRect rect;
+	rect.setLeftTopAndSize(0, gViewerWindow->getWindowHeightScaled(), 350, 350);
+	setRect(rect);
+	LLFloater* last_floater = LLFloaterReg::getLastFloaterInGroup(key.asString());
+	if (last_floater)
+	{
+		stackWith(*last_floater);
+	}
+	setTitle(LLTrans::getString("MultiPropertiesTitle"));
+	buildTabContainer();
+}
diff --git a/indra/newview/llfloatermarketplacelistings.h b/indra/newview/llfloatermarketplacelistings.h
index ffc098e28a238ef1de11a9c90d3e0a5fc6811367..77e855fd2a284796dcfd60fcfa5d14bfc6dbe85f 100644
--- a/indra/newview/llfloatermarketplacelistings.h
+++ b/indra/newview/llfloatermarketplacelistings.h
@@ -33,6 +33,7 @@
 #include "llinventorypanel.h"
 #include "llnotificationptr.h"
 #include "llmodaldialog.h"
+#include "llmultifloater.h"
 #include "lltexteditor.h"
 
 class LLInventoryCategoriesObserver;
@@ -223,4 +224,10 @@ class LLFloaterItemProperties : public LLFloater
 private:
 };
 
+class LLMultiItemProperties : public LLMultiFloater
+{
+public:
+	LLMultiItemProperties(const LLSD& key);
+};
+
 #endif // LL_LLFLOATERMARKETPLACELISTINGS_H
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index 2dd5d12ee6327d0335a93882dd38e16adfecdb4f..81db0c45c273d3c68717028ffbfc8c64c29ec01f 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -921,12 +921,6 @@ void LLInvFVBridge::getClipboardEntries(bool show_asset_id,
 
 	addDeleteContextMenuOptions(items, disabled_items);
 
-	// If multiple items are selected, disable properties (if it exists).
-	if ((flags & FIRST_SELECTED_ITEM) == 0)
-	{
-		disabled_items.push_back(std::string("Properties"));
-	}
-
 	LLInventoryPanel *active_panel = LLInventoryPanel::getActiveInventoryPanel(FALSE);
 	if (active_panel && (active_panel->getName() != "All Items"))
 	{
diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp
index c3c89455566059295469c02e4b87d913b4c4e54f..38f79620bb7c28dede6d59c63fee3a571626bb66 100644
--- a/indra/newview/llinventoryfunctions.cpp
+++ b/indra/newview/llinventoryfunctions.cpp
@@ -2561,6 +2561,7 @@ void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root
 
 
 	LLMultiPreview* multi_previewp = NULL;
+	LLMultiItemProperties* multi_itempropertiesp = nullptr;
 
 	if (("task_open" == action  || "open" == action) && selected_items.size() > 1)
 	{
@@ -2594,8 +2595,9 @@ void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root
 	}
 	else if (("task_properties" == action || "properties" == action) && selected_items.size() > 1)
 	{
-        // Isn't supported (previously used LLMultiProperties)
-        LL_WARNS() << "Tried to open properties for multiple items" << LL_ENDL;
+		multi_itempropertiesp = new LLMultiItemProperties("item_properties");
+		gFloaterView->addChild(multi_itempropertiesp);
+		LLFloater::setFloaterHost(multi_itempropertiesp);
 	}
 
 	std::set<LLUUID> selected_uuid_set = LLAvatarActions::getInventorySelectedUUIDs();
@@ -2768,6 +2770,10 @@ void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root
 	{
 		multi_previewp->openFloater(LLSD());
 	}
+	else if (multi_itempropertiesp)
+	{
+		multi_itempropertiesp->openFloater(LLSD());
+	}
 }
 
 void LLInventoryAction::saveMultipleTextures(const std::vector<std::string>& filenames, std::set<LLFolderViewItem*> selected_items, LLInventoryModel* model)