diff --git a/indra/newview/llfloatermarketplacelistings.cpp b/indra/newview/llfloatermarketplacelistings.cpp
index ccfca71df91a1896accf8533852b48c309085341..e2bf9f0206bc5ee6cb428508ebfaa0f34474e1d6 100755
--- a/indra/newview/llfloatermarketplacelistings.cpp
+++ b/indra/newview/llfloatermarketplacelistings.cpp
@@ -264,6 +264,8 @@ void LLFloaterMarketplaceListings::fetchContents()
 	if (mRootFolderId.notNull())
 	{
 		LLInventoryModelBackgroundFetch::instance().start(mRootFolderId);
+        // Get all the SLM Listings
+        LLMarketplaceData::instance().getSLMListings();
 	}
 }
 
diff --git a/indra/newview/llmarketplacefunctions.cpp b/indra/newview/llmarketplacefunctions.cpp
index c3aaf660718680d78f7e4ba307563ee1fd98b98c..b85828ddfd1dd8a5ca845f3ff92cb558d0a4e19d 100755
--- a/indra/newview/llmarketplacefunctions.cpp
+++ b/indra/newview/llmarketplacefunctions.cpp
@@ -96,7 +96,7 @@ LLSD getMarketplaceStringSubstitutions()
 }
 
 ///////////////////////////////////////////////////////////////////////////////
-// SLM Responder
+// SLM Responders
 class LLSLMMerchantResponder : public LLHTTPClient::Responder
 {
 	LOG_CLASS(LLSLMMerchantResponder);
@@ -132,7 +132,41 @@ class LLSLMMerchantResponder : public LLHTTPClient::Responder
 		}
     }
 };
-// SLM Responder End
+
+class LLSLMListingsResponder : public LLHTTPClient::Responder
+{
+	LOG_CLASS(LLSLMListingsResponder);
+public:
+	
+    LLSLMListingsResponder() {}
+    
+	virtual void completed(U32 status, const std::string& reason, const LLSD& content)
+	{
+		if (isGoodStatus(status))
+		{
+            llinfos << "Merov : completed successful, status = " << status << ", reason = " << reason << ", content = " << content << llendl;
+            // *TODO : Parse the Json body
+            //LLMarketplaceData::instance().parseListings(content);
+		}
+		else
+		{
+            llinfos << "Merov : completed with error, status = " << status << ", reason = " << reason << ", content = " << content << llendl;
+		}
+	}
+    
+    void completedHeader(U32 status, const std::string& reason, const LLSD& content)
+    {
+		if (isGoodStatus(status))
+		{
+            llinfos << "Merov : completed header successful, status = " << status << ", reason = " << reason << ", content = " << content << llendl;
+		}
+		else
+		{
+            llinfos << "Merov : completed header with error, status = " << status << ", reason = " << reason << ", content = " << content << llendl;
+		}
+    }
+};
+// SLM Responders End
 ///////////////////////////////////////////////////////////////////////////////
 
 namespace LLMarketplaceImport
@@ -621,34 +655,36 @@ void LLMarketplaceData::initializeSLM(const status_updated_signal_t::slot_type&
 		mStatusUpdatedSignal = new status_updated_signal_t();
 	}
 	mStatusUpdatedSignal->connect(cb);
-    
-    // Get DirectDelivery cap
-    std::string url = "";
-	LLViewerRegion* region = gAgent.getRegion();
-	if (region)
-    {
-        url = region->getCapability("DirectDelivery");
-        llinfos << "Merov : Test DirectDelivery cap : url = " << url << llendl;
-    }
-    else
-    {
-        llinfos << "Merov : Test DirectDelivery cap : no region accessible" << llendl;
-    }
-    // *TODO : Take this DirectDelivery cap coping hack out
-    if (url == "")
+	LLHTTPClient::get(getSLMConnectURL("/merchant"), new LLSLMMerchantResponder(), LLSD());
+}
+
+void LLMarketplaceData::getSLMListings()
+{
+	LLHTTPClient::get(getSLMConnectURL("/listings"), new LLSLMListingsResponder(), LLSD());
+}
+
+std::string LLMarketplaceData::getSLMConnectURL(const std::string& route)
+{
+    std::string url("");
+    LLViewerRegion *regionp = gAgent.getRegion();
+    if (regionp)
     {
-        url = "https://marketplace.secondlife-staging.com/api/1/viewer/" + gAgentID.asString() + "/merchant";
+        // Get DirectDelivery cap
+        url = regionp->getCapability("DirectDelivery");
+        // *TODO : Take this DirectDelivery cap coping mechanism hack out
+        if (url == "")
+        {
+            url = "https://marketplace.secondlife-staging.com/api/1/viewer/" + gAgentID.asString();
+        }
+        url += route;
     }
-    llinfos << "Merov : Testing get : " << url << llendl;
-    
-	LLHTTPClient::get(url, new LLSLMMerchantResponder(), LLSD());
+    llinfos << "Merov : Testing getSLMConnectURL : " << url << llendl;
+	return url;
 }
 
 void LLMarketplaceData::setSLMStatus(U32 status)
 {
-    mMarketPlaceStatus = status; /* call cb if status is "done" */
-
-    // Make sure we trigger the status change with the current state
+    mMarketPlaceStatus = status;
     if (mStatusUpdatedSignal)
     {
         (*mStatusUpdatedSignal)();
diff --git a/indra/newview/llmarketplacefunctions.h b/indra/newview/llmarketplacefunctions.h
index 237432068c80442da1fb4e5a091024928a365ed2..d5869d3025fd1d139b5b25deebddbe5c3e758fab 100755
--- a/indra/newview/llmarketplacefunctions.h
+++ b/indra/newview/llmarketplacefunctions.h
@@ -150,6 +150,12 @@ class LLMarketplaceData
 	U32  getSLMStatus() const { return mMarketPlaceStatus; }
 	void setSLMStatus(U32 status);
     void initializeSLM(const status_updated_signal_t::slot_type& cb);
+    void getSLMListings();
+    //void getSLMListing();
+    //void postSLMListing();
+    //void modifySLMListing();
+    //void associateSLMListing();
+    std::string getSLMConnectURL(const std::string& route);
     
     bool isEmpty() { return (mMarketplaceItems.size() == 0); }