diff --git a/doc/contributions.txt b/doc/contributions.txt
index 12bcb872314a7b248224edf52609f8ba68a51fe3..15b5766f5308671088b9079346fc06d60ba7caa2 100755
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -1007,8 +1007,23 @@ NiranV Dean
     STORM-2050
     STORM-2051
     STORM-2052
+    STORM-2057
+    STORM-2058
+    STORM-2059
+    STORM-2060
+    STORM-2061
+    STORM-2063
+    STORM-2064
+    STORM-2065
+    STORM-2066
+    STORM-2068
     BUG-372
     BUG-1179
+    BUG-6835
+    BUG-6837
+    BUG-6839
+    BUG-6840
+    BUG-6958
 Nounouch Hapmouche
 	VWR-238
 Ollie Kubrick
diff --git a/indra/newview/app_settings/filters/BlackAndWhite.xml b/indra/newview/app_settings/filters/BlackAndWhite.xml
index 101ed8233ab550e0809be18fedf9b55ebcbe108b..7894628d29d3e9c346becd73b466064c54637f46 100644
--- a/indra/newview/app_settings/filters/BlackAndWhite.xml
+++ b/indra/newview/app_settings/filters/BlackAndWhite.xml
@@ -1,19 +1,5 @@
 <llsd>
     <array>
-        <array>
-            <string>linearize</string>
-            <real>0.01</real>
-            <real>1.0</real>
-            <real>1.0</real>
-            <real>1.0</real>
-        </array>
-        <array>
-            <string>contrast</string>
-            <real>0.8</real>
-            <real>1.0</real>
-            <real>1.0</real>
-            <real>1.0</real>
-        </array>
         <array>
             <string>grayscale</string>
         </array>
diff --git a/indra/newview/app_settings/filters/Sepia.xml b/indra/newview/app_settings/filters/Sepia.xml
index 3d577b2998115d6660619732d5bdf89b00819b9d..81d7caf0eb4e265835ebbcf1e0cc455136a03a51 100644
--- a/indra/newview/app_settings/filters/Sepia.xml
+++ b/indra/newview/app_settings/filters/Sepia.xml
@@ -1,30 +1,5 @@
 <llsd>
     <array>
-        <array>
-            <string>linearize</string>
-            <real>0.01</real>
-            <real>1.0</real>
-            <real>1.0</real>
-            <real>1.0</real>
-        </array>
-        <array>
-            <string>contrast</string>
-            <real>0.8</real>
-            <real>1.0</real>
-            <real>1.0</real>
-            <real>1.0</real>
-        </array>
-        <array>
-            <string>stencil</string>
-            <string>vignette</string>
-            <string>fade</string>
-            <real>0.5</real>
-            <real>1.0</real>
-            <real>0.0</real>
-            <real>0.0</real>
-            <real>1.0</real>
-            <real>4.0</real>
-        </array>
         <array>
             <string>sepia</string>
         </array>
diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp
index 2011afc12485e22bf2bed468f056db6630b52604..3f9243381cdfd59ac5d41223a6ad1a7baea373c7 100755
--- a/indra/newview/llfloatersnapshot.cpp
+++ b/indra/newview/llfloatersnapshot.cpp
@@ -287,7 +287,10 @@ void LLFloaterSnapshot::Impl::updateLayout(LLFloaterSnapshot* floaterp)
 	thumbnail_placeholder->reshape(panel_width, thumbnail_placeholder->getRect().getHeight());
 	floaterp->getChild<LLUICtrl>("image_res_text")->setVisible(advanced);
 	floaterp->getChild<LLUICtrl>("file_size_label")->setVisible(advanced);
-	floaterp->reshape(floater_width, floaterp->getRect().getHeight());
+	if(!floaterp->isMinimized())
+	{
+		floaterp->reshape(floater_width, floaterp->getRect().getHeight());
+	}
 
 	bool use_freeze_frame = floaterp->getChild<LLUICtrl>("freeze_frame_check")->getValue().asBoolean();
 
@@ -576,7 +579,7 @@ void LLFloaterSnapshot::Impl::onClickFilter(LLUICtrl *ctrl, void* data)
             LLComboBox* filterbox = static_cast<LLComboBox *>(view->getChild<LLComboBox>("filters_combobox"));
             std::string filter_name = (filterbox->getCurrentIndex() ? filterbox->getSimple() : "");
             previewp->setFilter(filter_name);
-            previewp->updateSnapshot(FALSE, TRUE);
+            previewp->updateSnapshot(TRUE);
         }
 	}
 }
@@ -758,6 +761,12 @@ void LLFloaterSnapshot::Impl::updateResolution(LLUICtrl* ctrl, void* data, BOOL
 		S32 original_width = 0 , original_height = 0 ;
 		previewp->getSize(original_width, original_height) ;
 		
+		if (gSavedSettings.getBOOL("RenderUIInSnapshot") || gSavedSettings.getBOOL("RenderHUDInSnapshot"))
+		{ //clamp snapshot resolution to window size when showing UI or HUD in snapshot
+			width = llmin(width, gViewerWindow->getWindowWidthRaw());
+			height = llmin(height, gViewerWindow->getWindowHeightRaw());
+		}
+
 		if (width == 0 || height == 0)
 		{
 			// take resolution from current window size
@@ -803,14 +812,17 @@ void LLFloaterSnapshot::Impl::updateResolution(LLUICtrl* ctrl, void* data, BOOL
 		checkAspectRatio(view, width) ;
 
 		previewp->getSize(width, height);
-	
-		if (gSavedSettings.getBOOL("RenderUIInSnapshot") || gSavedSettings.getBOOL("RenderHUDInSnapshot"))
-		{ //clamp snapshot resolution to window size when showing UI or HUD in snapshot
-			width = llmin(width, gViewerWindow->getWindowWidthRaw());
-			height = llmin(height, gViewerWindow->getWindowHeightRaw());
-		}
 
-		updateSpinners(view, previewp, width, height, TRUE); // may change width and height
+		bool width_changed;
+		if(original_width != width)
+		{
+			width_changed = TRUE;
+		}
+		else
+		{
+			width_changed = FALSE;
+		}
+		updateSpinners(view, previewp, width, height, width_changed); // may change width and height
 		
 		if(getWidthSpinner(view)->getValue().asInteger() != width || getHeightSpinner(view)->getValue().asInteger() != height)
 		{
@@ -825,12 +837,11 @@ void LLFloaterSnapshot::Impl::updateResolution(LLUICtrl* ctrl, void* data, BOOL
 			// hide old preview as the aspect ratio could be wrong
 			checkAutoSnapshot(previewp, FALSE);
 			LL_DEBUGS() << "updating thumbnail" << LL_ENDL;
-			getPreviewView(view)->updateSnapshot(FALSE, TRUE);
+			getPreviewView(view)->updateSnapshot(TRUE);
 			if(do_update)
 			{
 				LL_DEBUGS() << "Will update controls" << LL_ENDL;
 				updateControls(view);
-				setNeedRefresh(view, true);
 			}
 		}
 	}
@@ -873,7 +884,6 @@ void LLFloaterSnapshot::Impl::onImageFormatChange(LLFloaterSnapshot* view)
 		LL_DEBUGS() << "image format changed, updating snapshot" << LL_ENDL;
 		getPreviewView(view)->updateSnapshot(TRUE);
 		updateControls(view);
-		setNeedRefresh(view, false); // we're refreshing
 	}
 }
 
@@ -951,8 +961,6 @@ void LLFloaterSnapshot::Impl::updateSpinners(LLFloaterSnapshot* view, LLSnapshot
 // static
 void LLFloaterSnapshot::Impl::applyCustomResolution(LLFloaterSnapshot* view, S32 w, S32 h)
 {
-	bool need_refresh = false;
-
 	LL_DEBUGS() << "applyCustomResolution(" << w << ", " << h << ")" << LL_ENDL;
 	if (!view) return;
 
@@ -969,21 +977,14 @@ void LLFloaterSnapshot::Impl::applyCustomResolution(LLFloaterSnapshot* view, S32
 
 			previewp->setSize(w,h);
 			checkAutoSnapshot(previewp, FALSE);
-			LL_DEBUGS() << "applied custom resolution, updating thumbnail" << LL_ENDL;
-			previewp->updateSnapshot(FALSE, TRUE);
 			comboSetCustom(view, "profile_size_combo");
 			comboSetCustom(view, "postcard_size_combo");
 			comboSetCustom(view, "texture_size_combo");
 			comboSetCustom(view, "local_size_combo");
-			need_refresh = true;
+			LL_DEBUGS() << "applied custom resolution, updating thumbnail" << LL_ENDL;
+			previewp->updateSnapshot(TRUE);
 		}
 	}
-
-	updateControls(view);
-	if (need_refresh)
-	{
-		setNeedRefresh(view, true); // need to do this after updateControls()
-	}
 }
 
 // static
@@ -1238,8 +1239,6 @@ S32 LLFloaterSnapshot::notify(const LLSD& info)
 	{
         // Disable the send/post/save buttons until snapshot is ready.
         impl.updateControls(this);
-        // Force hiding the "Refresh to save" hint because we know we've just started refresh.
-        impl.setNeedRefresh(this, false);
 		return 1;
 	}
 
diff --git a/indra/newview/llsnapshotlivepreview.cpp b/indra/newview/llsnapshotlivepreview.cpp
index 8ad9ca000c656adeaa6654a3897e1cc3761d555c..1aa704117560e45de6f911a6bc5a310d0af51608 100644
--- a/indra/newview/llsnapshotlivepreview.cpp
+++ b/indra/newview/llsnapshotlivepreview.cpp
@@ -195,6 +195,8 @@ void LLSnapshotLivePreview::updateSnapshot(BOOL new_snapshot, BOOL new_thumbnail
 		mSnapshotDelayTimer.start();
 		mSnapshotDelayTimer.setTimerExpirySec(delay);
         
+		mPosTakenGlobal = gAgentCamera.getCameraPositionGlobal();
+
         // Tell the floater container that the snapshot is in the process of updating itself
         if (mViewContainer)
         {
@@ -760,7 +762,6 @@ BOOL LLSnapshotLivePreview::onIdle( void* snapshot_preview )
                     curr_preview_image->setFilteringOption(previewp->getSnapshotType() == SNAPSHOT_TEXTURE ? LLTexUnit::TFO_ANISOTROPIC : LLTexUnit::TFO_POINT);
                     curr_preview_image->setAddressMode(LLTexUnit::TAM_CLAMP);
 
-                    previewp->mPosTakenGlobal = gAgentCamera.getCameraPositionGlobal();
                     previewp->mShineCountdown = 4; // wait a few frames to avoid animation glitch due to readback this frame
                 }
             }
diff --git a/indra/newview/skins/default/xui/en/floater_snapshot.xml b/indra/newview/skins/default/xui/en/floater_snapshot.xml
index 4b8f4c8fed5dade3223c4f8d422708119595db99..f0a175902ba97d6cb146b6a224303f904b6832fa 100755
--- a/indra/newview/skins/default/xui/en/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/en/floater_snapshot.xml
@@ -294,8 +294,7 @@
          width="199"
          top_pad="-16"/>
 	<panel
-       background_visible="true"
-       bg_alpha_color="0 0 0 0.25"
+       background_visible="false"
        follows="left|top"
        font="SansSerifLarge"
        halign="center"
@@ -326,8 +325,7 @@
           </text>
       </panel>
       <panel
-       background_visible="true"
-       bg_alpha_color="0 0 0 0.25"
+       background_visible="false"
        follows="left|top"
        font="SansSerifLarge"
        halign="center"
@@ -420,10 +418,11 @@
     type="string"
     font="SansSerifSmall"
     length="1"
-    follows="left|top"
+    follows="left|top|right"
     height="14"
     layout="topleft"
-    left_delta="5"
+    left="220"
+	right="-20"
     halign="left"
     name="image_res_text"
     top_delta="5"
diff --git a/indra/newview/skins/default/xui/en/panel_snapshot_inventory.xml b/indra/newview/skins/default/xui/en/panel_snapshot_inventory.xml
index 5782ba7d04726fd948140158f7cef7c73f18a382..ea579c6dae579a6f2121c934319da8dc617affbc 100755
--- a/indra/newview/skins/default/xui/en/panel_snapshot_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_snapshot_inventory.xml
@@ -47,10 +47,6 @@
      name="texture_size_combo"
      right="-5"
      top_pad="5">
-        <combo_box.item
-         label="Current Window"
-         name="CurrentWindow"
-         value="[i0,i0]" />
         <combo_box.item
          label="Small (128x128)"
          name="Small(128x128)"