diff --git a/indra/newview/rlvcommon.cpp b/indra/newview/rlvcommon.cpp
index 8db5b32841f330ee8aa38f575cd84d3e7de7c0bf..66ecbf4a849b82ed6bf184ded098d281e74e0ea0 100644
--- a/indra/newview/rlvcommon.cpp
+++ b/indra/newview/rlvcommon.cpp
@@ -242,7 +242,7 @@ void RlvStrings::saveToFile(const std::string& strFilePath)
 			sdStrings[itString->first]["value"] = listValues.back();
 	}
 
-	llofstream fileStream(strFilePath);
+	llofstream fileStream(strFilePath.c_str());
 	if (!fileStream.good())
 		return;
 
diff --git a/indra/newview/rlvdefines.h b/indra/newview/rlvdefines.h
index 9d7ceec8bf5c8968cc8570db6fd98ccd813ccde5..7c6c7a125a8f1923f1a45593c7341ba39d53850a 100644
--- a/indra/newview/rlvdefines.h
+++ b/indra/newview/rlvdefines.h
@@ -73,7 +73,7 @@ const S32 RLVa_VERSION_BUILD = 0;
 #define RLV_PUTINV_PREFIX				"#RLV/~"
 #define RLV_PUTINV_SEPARATOR			"/"
 #define RLV_PUTINV_MAXDEPTH				4
-#define RLV_SETROT_OFFSET				F_PI_BY_TWO		// @setrot is off by 90° with the rest of SL
+#define RLV_SETROT_OFFSET				F_PI_BY_TWO		// @setrot is off by 90 degrees with the rest of SL
 #define RLV_STRINGS_FILE				"rlva_strings.xml"
 
 #define RLV_FOLDER_FLAG_NOSTRIP			"nostrip"
diff --git a/indra/newview/rlvextensions.cpp b/indra/newview/rlvextensions.cpp
index d62b353c065eb3666985f40c0ec9addf1af36831..43a5f61f506efa23d95a27f03ac24f3b2463e2dc 100644
--- a/indra/newview/rlvextensions.cpp
+++ b/indra/newview/rlvextensions.cpp
@@ -281,7 +281,7 @@ bool RlvWindLight::setValue(const std::string& strRlvName, const std::string& st
 		}
 		else
 		{
-			pEnvMgr->useRegionSettings();
+			pEnvMgr->setUserPrefs(pEnvMgr->getWaterPresetName(), pEnvMgr->getSkyPresetName(), pEnvMgr->getDayCycleName(), false, true);
 		}
 		return true;
 	}
diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp
index d162dc4bcce4ddd6313d9c3dd89bcea12fa62cb6..54b9470ac6f367acee8b4a4224eb20ce7cc37214 100644
--- a/indra/newview/rlvhandler.cpp
+++ b/indra/newview/rlvhandler.cpp
@@ -2086,7 +2086,7 @@ ERlvCmdRet RlvHandler::processForceCommand(const RlvCommand& rlvCmd) const
 					nValue += rlvCmdOption.m_nPelvisToFootOffset;
 					if (gAgentAvatarp->getRegion()->avatarHoverHeightEnabled())
 					{
-						LLVector3 avOffset(0.0, 0.0, llclamp<F32>(nValue, MIN_HOVER_Z, MAX_HOVER_Z));
+						LLVector3 avOffset(0.0f, 0.0f, llclamp<F32>(nValue, MIN_HOVER_Z, MAX_HOVER_Z));
 						gSavedPerAccountSettings.setF32("AvatarHoverOffsetZ", avOffset.mV[VZ]);
 						gAgentAvatarp->setHoverOffset(avOffset, true);
 					}
diff --git a/indra/newview/rlvinventory.cpp b/indra/newview/rlvinventory.cpp
index 180ddecd020a1de75f347b28e681907d3df29363..082cc6065b5d1eeeb2ed9b7a260bb0192915e838 100644
--- a/indra/newview/rlvinventory.cpp
+++ b/indra/newview/rlvinventory.cpp
@@ -19,6 +19,7 @@
 #include "llappearancemgr.h"
 #include "llstartup.h"
 #include "llviewerfoldertype.h"
+#include "llviewermessage.h"
 
 #include "rlvinventory.h"
 
@@ -364,6 +365,27 @@ S32 RlvInventory::getDirectDescendentsItemCount(const LLInventoryCategory* pFold
 	return cntType;
 }
 
+// Checked: 2012-11-28 (RLVa-1.4.8)
+bool RlvInventory::isGiveToRLVOffer(const LLOfferInfo& offerInfo)
+{
+	if ( (!RlvSettings::getForbidGiveToRLV()) && (RlvInventory::instance().getSharedRoot()) )
+	{
+		if (offerInfo.mFromObject)
+		{
+			return 
+				(IM_TASK_INVENTORY_OFFERED == offerInfo.mIM) && 
+				(LLAssetType::AT_CATEGORY == offerInfo.mType) && (offerInfo.mDesc.find(RLV_PUTINV_PREFIX) == 1);
+		}
+		else
+		{
+			return
+				(IM_INVENTORY_OFFERED == offerInfo.mIM) && 
+				(LLAssetType::AT_CATEGORY == offerInfo.mType) && (offerInfo.mDesc.find(RLV_PUTINV_PREFIX) == 0);
+		}
+	}
+	return false;
+}
+
 // ============================================================================
 // RlvRenameOnWearObserver member functions
 //
diff --git a/indra/newview/rlvinventory.h b/indra/newview/rlvinventory.h
index cacc9394c08a4aebacd3a2423d223d1e7955b5b3..c0ae7de4d8d44c0a98a42fe438df4e9e6c3da411 100644
--- a/indra/newview/rlvinventory.h
+++ b/indra/newview/rlvinventory.h
@@ -24,6 +24,12 @@
 #include "rlvhelper.h"
 #include "rlvlocks.h"
 
+// ============================================================================
+// Forward declarations
+//
+
+class LLOfferInfo;
+
 // ============================================================================
 // RlvInventory class declaration
 //
@@ -60,6 +66,8 @@ public:
 	std::string					getSharedPath(const LLUUID& idFolder) const;
 	// Returns TRUE if the supplied folder is a descendent of the #RLV folder
 	bool						isSharedFolder(const LLUUID& idFolder);
+	// Returns TRUE if the inventory offer is a "give to #RLV" offer
+	bool						isGiveToRLVOffer(const LLOfferInfo& offerInfo);
 
 	/*
 	 * Inventory fetching