diff --git a/indra/llinventory/llsettingsbase.h b/indra/llinventory/llsettingsbase.h
index 073e4616a5e770664c69b643e24f20afbc997102..420bcb99432c2bd8425ab6bf86ad6bbe79e89fcd 100644
--- a/indra/llinventory/llsettingsbase.h
+++ b/indra/llinventory/llsettingsbase.h
@@ -31,7 +31,6 @@
 #include <string>
 #include <map>
 #include <vector>
-#include <boost/enable_shared_from_this.hpp>
 #include <boost/signals2.hpp>
 
 #include "llsd.h"
@@ -44,7 +43,7 @@
 #include "v3color.h"
 
 class LLSettingsBase : 
-    public boost::enable_shared_from_this<LLSettingsBase>,
+    public std::enable_shared_from_this<LLSettingsBase>,
     private boost::noncopyable
 {
     friend class LLEnvironment;
@@ -58,7 +57,7 @@ class LLSettingsBase :
 
     typedef std::map<std::string, S32>  parammapping_t;
 
-    typedef boost::shared_ptr<LLSettingsBase> ptr_t;
+    typedef std::shared_ptr<LLSettingsBase> ptr_t;
 
     virtual ~LLSettingsBase() { };
 
@@ -237,10 +236,10 @@ class LLSettingsBase :
 };
 
 
-class LLSettingsBlender : public boost::enable_shared_from_this<LLSettingsBlender>
+class LLSettingsBlender : public std::enable_shared_from_this<LLSettingsBlender>
 {
 public:
-    typedef boost::shared_ptr<LLSettingsBlender>      ptr_t;
+    typedef std::shared_ptr<LLSettingsBlender>      ptr_t;
     typedef boost::signals2::signal<void(const ptr_t )> finish_signal_t;
     typedef boost::signals2::connection     connection_t;
 
diff --git a/indra/llinventory/llsettingsdaycycle.h b/indra/llinventory/llsettingsdaycycle.h
index 8a1634d674359e4b6fa616e7392d8562d6d29688..4c7ce011a1e7ca42a7747c82c3997bf5cb7f0604 100644
--- a/indra/llinventory/llsettingsdaycycle.h
+++ b/indra/llinventory/llsettingsdaycycle.h
@@ -33,8 +33,8 @@
 class LLSettingsWater;
 class LLSettingsSky;
 
-typedef boost::shared_ptr<LLSettingsWater> LLSettingsWaterPtr_t;
-typedef boost::shared_ptr<LLSettingsSky> LLSettingsSkyPtr_t;
+typedef std::shared_ptr<LLSettingsWater> LLSettingsWaterPtr_t;
+typedef std::shared_ptr<LLSettingsSky> LLSettingsSkyPtr_t;
 
 class LLSettingsDay : public LLSettingsBase
 {
@@ -60,7 +60,7 @@ class LLSettingsDay : public LLSettingsBase
 
     typedef std::map<F32, LLSettingsBase::ptr_t>    CycleTrack_t;
     typedef std::vector<CycleTrack_t>               CycleList_t;
-    typedef boost::shared_ptr<LLSettingsDay>        ptr_t;
+    typedef std::shared_ptr<LLSettingsDay>        ptr_t;
     typedef std::vector<F32>                        KeyframeList_t;
     typedef std::pair<CycleTrack_t::iterator, CycleTrack_t::iterator> TrackBound_t;
 
diff --git a/indra/llinventory/llsettingssky.cpp b/indra/llinventory/llsettingssky.cpp
index 32b292e3845109c27be63119471b79a49c7d6213..572b5703b345ccddd51f70f01c8c43f74c6c06a9 100644
--- a/indra/llinventory/llsettingssky.cpp
+++ b/indra/llinventory/llsettingssky.cpp
@@ -98,7 +98,7 @@ LLSettingsSky::LLSettingsSky():
 
 void LLSettingsSky::blend(const LLSettingsBase::ptr_t &end, F64 blendf) 
 {
-    LLSettingsSky::ptr_t other = boost::static_pointer_cast<LLSettingsSky>(end);
+    LLSettingsSky::ptr_t other = std::static_pointer_cast<LLSettingsSky>(end);
     LLSD blenddata = interpolateSDMap(mSettings, other->mSettings, blendf);
 
     replaceSettings(blenddata);
diff --git a/indra/llinventory/llsettingssky.h b/indra/llinventory/llsettingssky.h
index 9947ffc0222974ba3e7ab10720f678151a1708dd..e9ffbdb32c2e74b971c19fed0e6c6f1c2c8d6e40 100644
--- a/indra/llinventory/llsettingssky.h
+++ b/indra/llinventory/llsettingssky.h
@@ -62,7 +62,7 @@ class LLSettingsSky: public LLSettingsBase
     static const std::string SETTING_SUN_ROTATION;
     static const std::string SETTING_SUN_TEXUTUREID;
 
-    typedef boost::shared_ptr<LLSettingsSky> ptr_t;
+    typedef std::shared_ptr<LLSettingsSky> ptr_t;
     typedef std::pair<F32, F32> azimalt_t;
 
     //---------------------------------------------------------------------
diff --git a/indra/llinventory/llsettingswater.cpp b/indra/llinventory/llsettingswater.cpp
index 0fe3de44d3912fd58e5cb059cbddc308c9fb224c..a72cbc4136e80a0a167b9505de570776e13048eb 100644
--- a/indra/llinventory/llsettingswater.cpp
+++ b/indra/llinventory/llsettingswater.cpp
@@ -163,7 +163,7 @@ LLSD LLSettingsWater::translateLegacySettings(LLSD legacy)
 
 void LLSettingsWater::blend(const LLSettingsBase::ptr_t &end, F64 blendf) 
 {
-    LLSettingsWater::ptr_t other = boost::static_pointer_cast<LLSettingsWater>(end);
+    LLSettingsWater::ptr_t other = std::static_pointer_cast<LLSettingsWater>(end);
     LLSD blenddata = interpolateSDMap(mSettings, other->mSettings, blendf);
     
     replaceSettings(blenddata);
diff --git a/indra/llinventory/llsettingswater.h b/indra/llinventory/llsettingswater.h
index 4c61e2a34c9a25fec21176ab2b8e560a761285fe..4d206a1be0309dd0cb3697556457172e39078bc1 100644
--- a/indra/llinventory/llsettingswater.h
+++ b/indra/llinventory/llsettingswater.h
@@ -48,7 +48,7 @@ class LLSettingsWater : public LLSettingsBase
 
     static const LLUUID DEFAULT_WATER_NORMAL_ID;
 
-    typedef boost::shared_ptr<LLSettingsWater> ptr_t;
+    typedef std::shared_ptr<LLSettingsWater> ptr_t;
 
     //---------------------------------------------------------------------
     LLSettingsWater(const LLSD &data);
diff --git a/indra/newview/llenvironment.cpp b/indra/newview/llenvironment.cpp
index cb1d85bed21c34d98c8c3201855908ee75989944..cf5a68fdd2fb6668fb4e75ef2d21aa3f4083200e 100644
--- a/indra/newview/llenvironment.cpp
+++ b/indra/newview/llenvironment.cpp
@@ -98,7 +98,7 @@ void LLEnvironment::initSingleton()
     LLSettingsDay::ptr_t p_default_day = LLSettingsVODay::buildDefaultDayCycle();
     addDayCycle(p_default_day);
 
-    mCurrentEnvironment = boost::make_shared<DayInstance>();
+    mCurrentEnvironment = std::make_shared<DayInstance>();
     mCurrentEnvironment->setSky(p_default_sky);
     mCurrentEnvironment->setWater(p_default_water);
 
@@ -221,9 +221,10 @@ bool LLEnvironment::hasEnvironment(LLEnvironment::EnvSelection_t env)
 LLEnvironment::DayInstance::ptr_t LLEnvironment::getEnvironmentInstance(LLEnvironment::EnvSelection_t env, bool create /*= false*/)
 {
     DayInstance::ptr_t environment = mEnvironments[env];
-    if (!environment && create)
+//    if (!environment && create)
+    if (create)
     {
-        environment = boost::make_shared<DayInstance>();
+        environment = std::make_shared<DayInstance>();
         mEnvironments[env] = environment;
     }
 
@@ -360,7 +361,7 @@ void LLEnvironment::updateEnvironment(F64Seconds transition)
 
     if (mCurrentEnvironment != pinstance)
     {
-        DayInstance::ptr_t trans = boost::make_shared<DayTransition>(
+        DayInstance::ptr_t trans = std::make_shared<DayTransition>(
             mCurrentEnvironment->getSky(), mCurrentEnvironment->getWater(), pinstance, transition);
 
         trans->animate();
@@ -373,9 +374,9 @@ void LLEnvironment::updateEnvironment(F64Seconds transition)
 //         LLSettingsSky::ptr_t ptargetsky = psky->buildClone();
 //         LLSettingsWater::ptr_t ptargetwater = pwater->buildClone();
 //             
-//         LLSettingsBlender::ptr_t skyblend = boost::make_shared<LLSettingsBlender>(ptargetsky, psky, pinstance->getSky(), transition);
+//         LLSettingsBlender::ptr_t skyblend = std::make_shared<LLSettingsBlender>(ptargetsky, psky, pinstance->getSky(), transition);
 //         skyblend->setOnFinished(boost::bind(&LLEnvironment::onTransitionDone, this, _1, true));
-//         LLSettingsBlender::ptr_t waterblend = boost::make_shared<LLSettingsBlender>(ptargetwater, pwater, pinstance->getWater(), transition);
+//         LLSettingsBlender::ptr_t waterblend = std::make_shared<LLSettingsBlender>(ptargetwater, pwater, pinstance->getWater(), transition);
 //         waterblend->setOnFinished(boost::bind(&LLEnvironment::onTransitionDone, this, _1, false));
 // 
 //         pinstance->setBlenders(skyblend, waterblend);
@@ -687,7 +688,7 @@ LLSettingsSky::ptr_t LLEnvironment::findSkyByName(std::string name) const
         return LLSettingsSky::ptr_t();
     }
 
-    return boost::static_pointer_cast<LLSettingsSky>((*it).second);
+    return std::static_pointer_cast<LLSettingsSky>((*it).second);
 }
 
 LLSettingsWater::ptr_t LLEnvironment::findWaterByName(std::string name) const
@@ -700,7 +701,7 @@ LLSettingsWater::ptr_t LLEnvironment::findWaterByName(std::string name) const
         return LLSettingsWater::ptr_t();
     }
 
-    return boost::static_pointer_cast<LLSettingsWater>((*it).second);
+    return std::static_pointer_cast<LLSettingsWater>((*it).second);
 }
 
 LLSettingsDay::ptr_t LLEnvironment::findDayCycleByName(std::string name) const
@@ -713,7 +714,7 @@ LLSettingsDay::ptr_t LLEnvironment::findDayCycleByName(std::string name) const
         return LLSettingsDay::ptr_t();
     }
 
-    return boost::static_pointer_cast<LLSettingsDay>((*it).second);
+    return std::static_pointer_cast<LLSettingsDay>((*it).second);
 }
 
 
@@ -1071,7 +1072,7 @@ LLEnvironment::EnvironmentInfo::EnvironmentInfo():
 
 LLEnvironment::EnvironmentInfo::ptr_t LLEnvironment::EnvironmentInfo::extract(LLSD environment)
 {
-    ptr_t pinfo = boost::make_shared<EnvironmentInfo>();
+    ptr_t pinfo = std::make_shared<EnvironmentInfo>();
 
     if (environment.has("parcel_id"))
         pinfo->mParcelId = environment["parcel_id"].asInteger();
@@ -1444,7 +1445,7 @@ void LLEnvironment::DayInstance::animate()
     }
     else if (wtrack.size() == 1)
     {
-        mWater = boost::static_pointer_cast<LLSettingsWater>((*(wtrack.begin())).second);
+        mWater = std::static_pointer_cast<LLSettingsWater>((*(wtrack.begin())).second);
         mBlenderWater.reset();
     }
     else
@@ -1452,8 +1453,8 @@ void LLEnvironment::DayInstance::animate()
         LLSettingsDay::TrackBound_t bounds = get_bounding_entries(wtrack, secondsToKeyframe(now));
         F64Seconds timespan = mDayLength * get_wrapping_distance((*bounds.first).first, (*bounds.second).first);
 
-        mWater = boost::static_pointer_cast<LLSettingsVOWater>((*bounds.first).second)->buildClone();
-        mBlenderWater = boost::make_shared<LLSettingsBlender>(mWater,
+        mWater = std::static_pointer_cast<LLSettingsVOWater>((*bounds.first).second)->buildClone();
+        mBlenderWater = std::make_shared<LLSettingsBlender>(mWater,
             (*bounds.first).second, (*bounds.second).second, timespan);
         mBlenderWater->setOnFinished(boost::bind(&LLEnvironment::DayInstance::onTrackTransitionDone, this, 0, _1));
     }
@@ -1469,7 +1470,7 @@ void LLEnvironment::DayInstance::animate()
     }
     else if (track.size() == 1)
     {
-        mSky = boost::static_pointer_cast<LLSettingsSky>((*(track.begin())).second);
+        mSky = std::static_pointer_cast<LLSettingsSky>((*(track.begin())).second);
         mBlenderSky.reset();
     }
     else
@@ -1477,8 +1478,8 @@ void LLEnvironment::DayInstance::animate()
         LLSettingsDay::TrackBound_t bounds = get_bounding_entries(track, secondsToKeyframe(now));
         F64Seconds timespan = mDayLength * get_wrapping_distance((*bounds.first).first, (*bounds.second).first);
 
-        mSky = boost::static_pointer_cast<LLSettingsVOSky>((*bounds.first).second)->buildClone();
-        mBlenderSky = boost::make_shared<LLSettingsBlender>(mSky,
+        mSky = std::static_pointer_cast<LLSettingsVOSky>((*bounds.first).second)->buildClone();
+        mBlenderSky = std::make_shared<LLSettingsBlender>(mSky,
             (*bounds.first).second, (*bounds.second).second, timespan);
         mBlenderSky->setOnFinished(boost::bind(&LLEnvironment::DayInstance::onTrackTransitionDone, this, 1, _1));
     }
@@ -1528,11 +1529,11 @@ void LLEnvironment::DayTransition::animate()
     mNextInstance->animate();
 
     mWater = mStartWater->buildClone();
-    mBlenderWater = boost::make_shared<LLSettingsBlender>(mWater, mStartWater, mNextInstance->getWater(), mTransitionTime);
+    mBlenderWater = std::make_shared<LLSettingsBlender>(mWater, mStartWater, mNextInstance->getWater(), mTransitionTime);
     mBlenderWater->setOnFinished(boost::bind(&LLEnvironment::DayTransition::onTransitonDone, this, LLSettingsDay::TRACK_WATER, _1));
 
     mSky = mStartSky->buildClone();
-    mBlenderSky = boost::make_shared<LLSettingsBlender>(mSky, mStartSky, mNextInstance->getSky(), mTransitionTime);
+    mBlenderSky = std::make_shared<LLSettingsBlender>(mSky, mStartSky, mNextInstance->getSky(), mTransitionTime);
     mBlenderSky->setOnFinished(boost::bind(&LLEnvironment::DayTransition::onTransitonDone, this, LLSettingsDay::TRACK_MAX, _1));
 }
 
diff --git a/indra/newview/llenvironment.h b/indra/newview/llenvironment.h
index 2b045e483c995378863e1602e14ce5b49c999f64..06bcd368dd6d841249da10a54327ca65374820d4 100644
--- a/indra/newview/llenvironment.h
+++ b/indra/newview/llenvironment.h
@@ -58,7 +58,7 @@ class LLEnvironment : public LLSingleton<LLEnvironment>
     {
         EnvironmentInfo();
 
-        typedef boost::shared_ptr<EnvironmentInfo>  ptr_t;
+        typedef std::shared_ptr<EnvironmentInfo>  ptr_t;
 
         S32             mParcelId;
         LLUUID          mRegionId;
@@ -217,7 +217,7 @@ class LLEnvironment : public LLSingleton<LLEnvironment>
             TYPE_FIXED,
             TYPE_CYCLED
         };
-        typedef boost::shared_ptr<DayInstance> ptr_t;
+        typedef std::shared_ptr<DayInstance> ptr_t;
 
                                     DayInstance();
         virtual                     ~DayInstance() { };
diff --git a/indra/newview/llsettingsvo.cpp b/indra/newview/llsettingsvo.cpp
index eadc035b3b1d1420651e2a8d403af1408e815f9c..6b1c663357c1682c4a0fe04170b02d3620df218e 100644
--- a/indra/newview/llsettingsvo.cpp
+++ b/indra/newview/llsettingsvo.cpp
@@ -94,7 +94,7 @@ LLSettingsSky::ptr_t LLSettingsVOSky::buildFromLegacyPreset(const std::string &n
         LLSettingsSky::ptr_t();
     }
 
-    LLSettingsSky::ptr_t skyp = boost::make_shared<LLSettingsVOSky>(newsettings);
+    LLSettingsSky::ptr_t skyp = std::make_shared<LLSettingsVOSky>(newsettings);
 
 #ifdef VERIFY_LEGACY_CONVERSION
     LLSD oldsettings = LLSettingsVOSky::convertToLegacy(skyp);
@@ -124,7 +124,7 @@ LLSettingsSky::ptr_t LLSettingsVOSky::buildDefaultSky()
         LLSettingsSky::ptr_t();
     }
 
-    LLSettingsSky::ptr_t skyp = boost::make_shared<LLSettingsVOSky>(settings);
+    LLSettingsSky::ptr_t skyp = std::make_shared<LLSettingsVOSky>(settings);
     return skyp;
 }
 
@@ -140,7 +140,7 @@ LLSettingsSky::ptr_t LLSettingsVOSky::buildClone()
         LLSettingsSky::ptr_t();
     }
 
-    LLSettingsSky::ptr_t skyp = boost::make_shared<LLSettingsVOSky>(settings);
+    LLSettingsSky::ptr_t skyp = std::make_shared<LLSettingsVOSky>(settings);
     return skyp;
 }
 
@@ -267,7 +267,7 @@ LLSettingsWater::ptr_t LLSettingsVOWater::buildFromLegacyPreset(const std::strin
         return LLSettingsWater::ptr_t();
     }
 
-    LLSettingsWater::ptr_t waterp = boost::make_shared<LLSettingsVOWater>(newsettings);
+    LLSettingsWater::ptr_t waterp = std::make_shared<LLSettingsVOWater>(newsettings);
 
 #ifdef VERIFY_LEGACY_CONVERSION
     LLSD oldsettings = LLSettingsVOWater::convertToLegacy(waterp);
@@ -296,7 +296,7 @@ LLSettingsWater::ptr_t LLSettingsVOWater::buildDefaultWater()
         return LLSettingsWater::ptr_t();
     }
 
-    LLSettingsWater::ptr_t waterp = boost::make_shared<LLSettingsVOWater>(settings);
+    LLSettingsWater::ptr_t waterp = std::make_shared<LLSettingsVOWater>(settings);
 
     return waterp;
 }
@@ -312,7 +312,7 @@ LLSettingsWater::ptr_t LLSettingsVOWater::buildClone()
         return LLSettingsWater::ptr_t();
     }
 
-    LLSettingsWater::ptr_t waterp = boost::make_shared<LLSettingsVOWater>(settings);
+    LLSettingsWater::ptr_t waterp = std::make_shared<LLSettingsVOWater>(settings);
 
     return waterp;
 }
@@ -459,7 +459,7 @@ LLSettingsDay::ptr_t LLSettingsVODay::buildFromLegacyPreset(const std::string &n
     }
 
 
-    LLSettingsDay::ptr_t dayp = boost::make_shared<LLSettingsVODay>(newsettings);
+    LLSettingsDay::ptr_t dayp = std::make_shared<LLSettingsVODay>(newsettings);
 
 #ifdef VERIFY_LEGACY_CONVERSION
     LLSD testsettings = LLSettingsVODay::convertToLegacy(dayp);
@@ -525,7 +525,7 @@ LLSettingsDay::ptr_t LLSettingsVODay::buildFromLegacyMessage(const LLUUID &regio
         return LLSettingsDay::ptr_t();
     }
 
-    LLSettingsDay::ptr_t dayp = boost::make_shared<LLSettingsVODay>(newsettings);
+    LLSettingsDay::ptr_t dayp = std::make_shared<LLSettingsVODay>(newsettings);
     
     if (dayp)
     {
@@ -547,7 +547,7 @@ LLSettingsDay::ptr_t LLSettingsVODay::buildDefaultDayCycle()
         LLSettingsDay::ptr_t();
     }
 
-    LLSettingsDay::ptr_t dayp = boost::make_shared<LLSettingsVODay>(settings);
+    LLSettingsDay::ptr_t dayp = std::make_shared<LLSettingsVODay>(settings);
 
     dayp->initialize();
     return dayp;
@@ -563,7 +563,7 @@ LLSettingsDay::ptr_t LLSettingsVODay::buildFromEnvironmentMessage(LLSD settings)
         LLSettingsDay::ptr_t();
     }
 
-    LLSettingsDay::ptr_t dayp = boost::make_shared<LLSettingsVODay>(settings);
+    LLSettingsDay::ptr_t dayp = std::make_shared<LLSettingsVODay>(settings);
 
     dayp->initialize();
     return dayp;
@@ -582,7 +582,7 @@ LLSettingsDay::ptr_t LLSettingsVODay::buildClone()
         LLSettingsDay::ptr_t();
     }
 
-    LLSettingsDay::ptr_t dayp = boost::make_shared<LLSettingsVODay>(settings);
+    LLSettingsDay::ptr_t dayp = std::make_shared<LLSettingsVODay>(settings);
 
     dayp->initialize();
     return dayp;
@@ -595,7 +595,7 @@ LLSD LLSettingsVODay::convertToLegacy(const LLSettingsVODay::ptr_t &pday)
     LLSettingsWater::ptr_t pwater;
     if (!trackwater.empty())
     {
-        pwater = boost::static_pointer_cast<LLSettingsWater>((*trackwater.begin()).second);
+        pwater = std::static_pointer_cast<LLSettingsWater>((*trackwater.begin()).second);
     }
 
     if (!pwater)
@@ -615,7 +615,7 @@ LLSD LLSettingsVODay::convertToLegacy(const LLSettingsVODay::ptr_t &pday)
         
         name << hash;
         
-        skys[name.str()] = boost::static_pointer_cast<LLSettingsSky>((*it).second);
+        skys[name.str()] = std::static_pointer_cast<LLSettingsSky>((*it).second);
         
         F32 frame = ((tracksky.size() == 1) && (it == tracksky.begin())) ? -1.0f : (*it).first;
         llsdcycle.append( LLSDArray(LLSD::Real(frame))(name.str()) );
@@ -649,7 +649,7 @@ LLSettingsWaterPtr_t LLSettingsVODay::getDefaultWater() const
 
 LLSettingsSkyPtr_t LLSettingsVODay::buildSky(LLSD settings) const
 {
-    LLSettingsSky::ptr_t skyp = boost::make_shared<LLSettingsVOSky>(settings);
+    LLSettingsSky::ptr_t skyp = std::make_shared<LLSettingsVOSky>(settings);
 
     if (skyp->validate())
         return skyp;
@@ -659,7 +659,7 @@ LLSettingsSkyPtr_t LLSettingsVODay::buildSky(LLSD settings) const
 
 LLSettingsWaterPtr_t LLSettingsVODay::buildWater(LLSD settings) const
 {
-    LLSettingsWater::ptr_t waterp = boost::make_shared<LLSettingsVOWater>(settings);
+    LLSettingsWater::ptr_t waterp = std::make_shared<LLSettingsVOWater>(settings);
 
     if (waterp->validate())
         return waterp;