diff --git a/indra/llcommon/llsys.cpp b/indra/llcommon/llsys.cpp
index 0272c55db21a812978de298b25463be1dd13429b..36fec973b3ba220edb98591f1fc97ecc78720ea3 100644
--- a/indra/llcommon/llsys.cpp
+++ b/indra/llcommon/llsys.cpp
@@ -775,6 +775,35 @@ void LLMemoryInfo::stream(std::ostream& s) const
 #endif
 }
 
+S32 LLDisplayInfo::getDisplayWidth() const
+{
+#if LL_WINDOWS
+	return  ::GetSystemMetrics(SM_CXVIRTUALSCREEN);
+#elif LL_DARWIN
+	return 1024; //*FIXME
+#elif LL_SOLARIS
+	return 1024; //*FIXME
+else
+	return 1024; //*FIXME
+#endif
+	return 1024; // to make compiler happy
+}
+
+S32 LLDisplayInfo::getDisplayHeight() const
+{
+#if LL_WINDOWS
+	return  ::GetSystemMetrics(SM_CYVIRTUALSCREEN);
+#elif LL_DARWIN
+	return 768; //*FIXME
+#elif LL_SOLARIS
+	return 768; //*FIXME
+#else
+	return 768; //*FIXME
+#endif
+	return 768; // to make compiler happy
+}
+
+
 std::ostream& operator<<(std::ostream& s, const LLOSInfo& info)
 {
 	info.stream(s);
diff --git a/indra/llcommon/llsys.h b/indra/llcommon/llsys.h
index c2c45bec9a2a01ea8ce735a70d4d0995176a0a56..aa3fdd485bca84d7c6088daaf80890be06a5edf6 100644
--- a/indra/llcommon/llsys.h
+++ b/indra/llcommon/llsys.h
@@ -122,6 +122,21 @@ class LL_COMMON_API LLMemoryInfo
 	U32 getPhysicalMemoryClamped() const; ///< Memory size in clamped bytes
 };
 
+//=============================================================================
+//
+//	CLASS		LLDisplayInfo
+class LL_COMMON_API LLDisplayInfo
+
+/*!	@brief		Class to query the information about some display settings
+*/
+{
+public:
+	LLDisplayInfo(){}; ///< Default constructor
+
+	S32 getDisplayWidth() const; ///< display width
+	S32 getDisplayHeight() const; ///< display height
+	
+};
 
 LL_COMMON_API std::ostream& operator<<(std::ostream& s, const LLOSInfo& info);
 LL_COMMON_API std::ostream& operator<<(std::ostream& s, const LLCPUInfo& info);
diff --git a/indra/newview/installers/windows/install_icon.ico b/indra/newview/installers/windows/install_icon.ico
index 1e00530c9016b16548de6890ab5562bbe2cbbe1d..efe6c4f323d216cdced45fdcf0d67ac217440841 100644
Binary files a/indra/newview/installers/windows/install_icon.ico and b/indra/newview/installers/windows/install_icon.ico differ
diff --git a/indra/newview/installers/windows/uninstall_icon.ico b/indra/newview/installers/windows/uninstall_icon.ico
index c4ec6c70bd7f325369d8763afef61ee8e93f2960..05e154686092d89fec551319a8ab9ffd906cdd44 100644
Binary files a/indra/newview/installers/windows/uninstall_icon.ico and b/indra/newview/installers/windows/uninstall_icon.ico differ
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 948d38befb7d4c89e4fa876948c19b663386aac2..6d4c90c2b95a9b368dc8c10c58f73fccacecdf90 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -304,7 +304,8 @@ static std::string gLaunchFileOnQuit;
 
 // Used on Win32 for other apps to identify our window (eg, win_setup)
 const char* const VIEWER_WINDOW_CLASSNAME = "Second Life";
-
+static const S32 FIRST_RUN_WINDOW_WIDTH = 1024;
+static const S32 FIRST_RUN_WINDOW_HRIGHT = 768;
 //----------------------------------------------------------------------------
 
 // List of entries from strings.xml to always replace
@@ -2362,12 +2363,35 @@ bool LLAppViewer::initWindow()
 	// store setting in a global for easy access and modification
 	gNoRender = gSavedSettings.getBOOL("DisableRendering");
 
+	S32 window_x = gSavedSettings.getS32("WindowX");
+	S32 window_y = gSavedSettings.getS32("WindowY");
+	S32 window_width = gSavedSettings.getS32("WindowWidth");
+	S32 window_height = gSavedSettings.getS32("WindowHeight");
+
+	bool show_maximized = gSavedSettings.getBOOL("WindowMaximized");
+
+	bool first_run = gSavedSettings.getBOOL("FirstLoginThisInstall");
+
+	if (first_run)//for first login 
+	{
+		window_width = FIRST_RUN_WINDOW_WIDTH;//yep hardcoded
+		window_height = FIRST_RUN_WINDOW_HRIGHT;
+		
+		//if screen resolution is lower then 1024*768 then show maximized
+		LLDisplayInfo display_info;
+		if(display_info.getDisplayWidth() <= FIRST_RUN_WINDOW_WIDTH
+			|| display_info.getDisplayHeight()<=FIRST_RUN_WINDOW_HRIGHT)
+		{
+			show_maximized = true;
+		}
+	}
+
 	// always start windowed
 	BOOL ignorePixelDepth = gSavedSettings.getBOOL("IgnorePixelDepth");
 	gViewerWindow = new LLViewerWindow(gWindowTitle, 
 		VIEWER_WINDOW_CLASSNAME,
-		gSavedSettings.getS32("WindowX"), gSavedSettings.getS32("WindowY"),
-		gSavedSettings.getS32("WindowWidth"), gSavedSettings.getS32("WindowHeight"),
+		window_x, window_y,
+		window_width, window_height,
 		FALSE, ignorePixelDepth);
 
 	LLNotificationsUI::LLNotificationManager::getInstance();
@@ -2378,7 +2402,7 @@ bool LLAppViewer::initWindow()
 		gViewerWindow->toggleFullscreen(FALSE);
 	}
 	
-	if (gSavedSettings.getBOOL("WindowMaximized"))
+	if (show_maximized)
 	{
 		gViewerWindow->mWindow->maximize();
 		gViewerWindow->getWindow()->setNativeAspectRatio(gSavedSettings.getF32("FullScreenAspectRatio"));
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index 224514dd483c4548d3c20d81f21e77026d0e4517..839d3f0c21cabae0d276fa5ea019c4da5c31f457 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -1289,7 +1289,7 @@ BOOL LLPanelPreference::postBuild()
 	if (hasChild("media_enabled"))
 	{
 		bool media_enabled = gSavedSettings.getBOOL("AudioStreamingMedia");
-		getChild<LLCheckBoxCtrl>("voice_call_friends_only_check")->setCommitCallback(boost::bind(&showFriendsOnlyWarning, _1, _2));
+		
 		getChild<LLCheckBoxCtrl>("media_enabled")->set(media_enabled);
 		getChild<LLCheckBoxCtrl>("autoplay_enabled")->setEnabled(media_enabled);
 	}
@@ -1297,7 +1297,11 @@ BOOL LLPanelPreference::postBuild()
 	{
 		getChild<LLCheckBoxCtrl>("music_enabled")->set(gSavedSettings.getBOOL("AudioStreamingMusic"));
 	}
-	
+	if (hasChild("voice_call_friends_only_check"))
+	{
+		getChild<LLCheckBoxCtrl>("voice_call_friends_only_check")->setCommitCallback(boost::bind(&showFriendsOnlyWarning, _1, _2));
+	}
+
 	apply();
 	return true;
 }
diff --git a/indra/newview/res/ll_icon.ico b/indra/newview/res/ll_icon.ico
index c35a3fa3a3423e3ce6de9568c28978930ca99fe8..87985b9285118128e6e9e3eb344fdde0b60481d7 100644
Binary files a/indra/newview/res/ll_icon.ico and b/indra/newview/res/ll_icon.ico differ
diff --git a/indra/newview/secondlife.icns b/indra/newview/secondlife.icns
index ceb6036e0ef7805a2386693a5baf872e87c5427e..4560d4bb2440bbeed09e95039ba4a42450d61af7 100644
Binary files a/indra/newview/secondlife.icns and b/indra/newview/secondlife.icns differ
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 4264b86a7205b2ffcf7d7d59829f3923782d5925..a2540237c86dd1157d153391be17e11c48dbdb72 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -249,7 +249,7 @@ Save all changes to clothing/body parts?
     Non-friends won't know that you've choosen to ignore their calls and instant messages.
     <usetemplate
      name="okbutton"
-     yestext="Yes"/>
+     yestext="OK"/>
   </notification>
 
   <notification