diff --git a/indra/newview/llpanelmarketplaceoutbox.cpp b/indra/newview/llpanelmarketplaceoutbox.cpp
index c96fb228621596769bbc7ddafd8c4d72a2b1be39..074fea546d1ef457946a0df3e07788999218cf01 100644
--- a/indra/newview/llpanelmarketplaceoutbox.cpp
+++ b/indra/newview/llpanelmarketplaceoutbox.cpp
@@ -38,6 +38,9 @@
 #include "llsidepanelinventory.h"
 #include "llsidetray.h"
 #include "lltimer.h"
+#include "llviewernetwork.h"
+#include "llagent.h"
+#include "llviewermedia.h"
 #include "llfolderview.h"
 
 static LLRegisterPanelClassWrapper<LLPanelMarketplaceOutbox> t_panel_marketplace_outbox("panel_marketplace_outbox");
@@ -190,10 +193,46 @@ void timeDelay(LLCoros::self& self, LLPanelMarketplaceOutbox* outboxPanel)
 	gTimeDelayDebugFunc = "";
 }
 
+
+class LLInventorySyncResponder : public LLHTTPClient::Responder
+{
+public:
+	LLInventorySyncResponder()
+		: LLCurl::Responder()
+	{
+	}
+
+	void completed(U32 status, const std::string& reason, const LLSD& content)
+	{
+		if (isGoodStatus(status))
+		{
+			// Complete success
+			llinfos << "sync complete" << llendl;
+		}	
+		else
+		{
+			llwarns << "sync failed" << llendl;
+		}
+	}
+};
+
 void LLPanelMarketplaceOutbox::onSyncButtonClicked()
 {	
-	// TODO: Actually trigger sync to marketplace
-	
+	std::string url = "http://pdp24.lindenlab.com/3000"; /*"https://marketplace.secondlife.com/";
+
+	if (!LLGridManager::getInstance()->isInProductionGrid())
+	{
+		std::string gridLabel = LLGridManager::getInstance()->getGridLabel();
+		url = llformat("https://marketplace.%s.lindenlab.com/", utf8str_tolower(gridLabel).c_str());
+	}
+	*/
+	url += "api/1/users/";
+	url += gAgent.getID().getString();
+	url += "/inventory_import";
+
+	LLHTTPClient::get(url, new LLInventorySyncResponder(), LLViewerMedia::getHeaders());
+
+
 	mSyncInProgress = true;
 	updateSyncButtonStatus();
 
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index 384f7cd61d32423c005156e7f87b54db3fc6a332..d5a8772461be38b8129c37bfcd336ec286017ff3 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -1394,6 +1394,17 @@ class LLInventoryUserStatusResponder : public LLHTTPClient::Responder
 	}
 };
 
+
+LLSD LLViewerMedia::getHeaders()
+{
+	LLSD headers = LLSD::emptyMap();
+	headers["Accept"] = "*/*";
+	headers["Cookie"] = sOpenIDCookie;
+	headers["User-Agent"] = getCurrentUserAgent();
+
+	return headers;
+}
+
 /////////////////////////////////////////////////////////////////////////////////////////
 // static
 void LLViewerMedia::setOpenIDCookie()
diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h
index aeac6ba29aee7f8aa7c202d703357fd6936a502a..0b69b8f0c1c0664fa5af23a1c7c9af07b0f4a13b 100644
--- a/indra/newview/llviewermedia.h
+++ b/indra/newview/llviewermedia.h
@@ -162,6 +162,8 @@ class LLViewerMedia
 	static LLPluginClassMedia* getSpareBrowserMediaSource();
 
 	static void setOnlyAudibleMediaTextureID(const LLUUID& texture_id);
+
+	static LLSD getHeaders();
 	
 private:
 	static void setOpenIDCookie();