diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index 45969387754c498da2ae097ea046e2adc270a841..f95697adb6f30a5b4342d17b6b24a8fe36e4991d 100644
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -575,6 +575,10 @@ def construct(self):
             # most everything goes in the Resources directory
             if self.prefix(src="", dst="Resources"):
                 super(DarwinManifest, self).construct()
+		
+                if self.prefix(src="../viewer_components/updater", dst=""):
+                    self.path("update_install")
+                    self.end_prefix()
 
                 if self.prefix("cursors_mac"):
                     self.path("*.tif")
diff --git a/indra/viewer_components/updater/CMakeLists.txt b/indra/viewer_components/updater/CMakeLists.txt
index 563b64655d196af68bb2d371fef4f5863a563dec..c3607dff39c4852ca78527c81e48eaec9d6038c2 100644
--- a/indra/viewer_components/updater/CMakeLists.txt
+++ b/indra/viewer_components/updater/CMakeLists.txt
@@ -6,6 +6,7 @@ include(00-Common)
 if(LL_TESTS)
   include(LLAddBuildTest)
 endif(LL_TESTS)
+include(CMakeCopyIfDifferent)
 include(CURL)
 include(LLCommon)
 include(LLMessage)
@@ -24,12 +25,14 @@ set(updater_service_SOURCE_FILES
     llupdaterservice.cpp
     llupdatechecker.cpp
     llupdatedownloader.cpp
+    llupdateinstaller.cpp
     )
 
 set(updater_service_HEADER_FILES
     llupdaterservice.h
     llupdatechecker.h
     llupdatedownloader.h
+    llupdateinstaller.h
     )
 
 set_source_files_properties(${updater_service_HEADER_FILES}
@@ -56,12 +59,6 @@ if(LL_TESTS)
       llupdaterservice.cpp
       )
 
-#  set_source_files_properties(
-#    llupdaterservice.cpp
-#    PROPERTIES
-#      LL_TEST_ADDITIONAL_LIBRARIES "${PTH_LIBRARIES}"
-#    )
-
   LL_ADD_PROJECT_UNIT_TESTS(llupdaterservice "${llupdater_service_TEST_SOURCE_FILES}")
 endif(LL_TESTS)
 
@@ -74,3 +71,17 @@ set(UPDATER_LIBRARIES
   llupdaterservice
   CACHE INTERNAL ""
 )
+
+# Copy install script.
+if(DARWIN)
+	copy_if_different(
+		"${CMAKE_CURRENT_SOURCE_DIR}/scripts/darwin"
+		"${CMAKE_CURRENT_BINARY_DIR}"
+		update_installer_targets
+		"update_install"
+		)
+endif()
+add_custom_target(copy_update_install ALL DEPENDS ${update_installer_targets})
+
+
+ 
\ No newline at end of file
diff --git a/indra/viewer_components/updater/llupdateinstaller.cpp b/indra/viewer_components/updater/llupdateinstaller.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..4d7c78d36cbf37d93f5692936a0236f40db2c4a9
--- /dev/null
+++ b/indra/viewer_components/updater/llupdateinstaller.cpp
@@ -0,0 +1,38 @@
+/** 
+ * @file llupdateinstaller.cpp
+ *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ * 
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+
+#include "linden_common.h"
+#include "llprocesslauncher.h"
+#include "llupdateinstaller.h"
+
+
+void ll_install_update(std::string const & script, std::string const & updatePath)
+{
+	LLProcessLauncher launcher;
+	launcher.setExecutable(script);
+	launcher.addArgument(updatePath);
+	launcher.launch();
+	launcher.orphan();
+}
\ No newline at end of file
diff --git a/indra/viewer_components/updater/llupdateinstaller.h b/indra/viewer_components/updater/llupdateinstaller.h
new file mode 100644
index 0000000000000000000000000000000000000000..a6068e90255671375f2fbcfbb7b8fe5b49e6db82
--- /dev/null
+++ b/indra/viewer_components/updater/llupdateinstaller.h
@@ -0,0 +1,42 @@
+/** 
+ * @file llupdateinstaller.h
+ *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ * 
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+
+#ifndef LL_UPDATE_INSTALLER_H
+#define LL_UPDATE_INSTALLER_H
+
+
+#include <string>
+
+
+//
+// Launch the installation script.
+// 
+// The updater will overwrite the current installation, so it is highly recommended
+// that the current application terminate once this function is called.
+//
+void ll_install_update(std::string const & script, std::string const & updatePath);
+
+
+#endif
\ No newline at end of file
diff --git a/indra/viewer_components/updater/scripts/darwin/update_install b/indra/viewer_components/updater/scripts/darwin/update_install
new file mode 100755
index 0000000000000000000000000000000000000000..24d344ca52c30bd6e772697b5c2732b8b243f1e4
--- /dev/null
+++ b/indra/viewer_components/updater/scripts/darwin/update_install
@@ -0,0 +1,6 @@
+#! /bin/bash
+
+hdiutil attach -nobrowse $1
+cp -R  /Volumes/Second\ Life\ Installer/Second\ Life\ Viewer\ 2.app  /Applications
+hdiutil detach /Volumes/Second\ Life\ Installer
+open /Applications/Second\ Life\ Viewer\ 2.app
\ No newline at end of file