diff --git a/.hgignore b/.hgignore
index ab5fbc41c59a9c2558cd0da359e94ba3fe010a40..ea4903e471953675e5ec8420217e85e2f33bd3d6 100755
--- a/.hgignore
+++ b/.hgignore
@@ -15,10 +15,10 @@ LICENSES
 indra/.distcc
 build-linux-*
 build-darwin-*
-build-vc80/
-build-vc100/
-build-vc110/
-build-vc120/
+build-vc80*
+build-vc100*
+build-vc110*
+build-vc120*
 qtcreator-build/
 indra/build-vc[0-9]*
 indra/CMakeFiles
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 9c28299e18b552c074b9d0adc1794e086be6eebe..6bc2c2288b74880cc2a0c0f7c69fa8103caefb41 100755
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -75,10 +75,15 @@ if (WINDOWS)
       /nologo
       /Oy-
       /Zc:wchar_t-
-      /arch:SSE2
       /fp:fast
       )
-     
+
+  if (WORD_SIZE EQUAL 32)
+    add_definitions(
+		/arch:SSE2
+        )
+  endif (WORD_SIZE EQUAL 32)
+
   # Are we using the crummy Visual Studio KDU build workaround?
   if (NOT VS_DISABLE_FATAL_WARNINGS)
     add_definitions(/WX)
diff --git a/indra/cmake/FMODEX.cmake b/indra/cmake/FMODEX.cmake
index 65bc1cabeb8fd77340ea80cf78d50dd1c7bd5d75..db97276173f2b0edd9ba6015ad1c6717693c2550 100644
--- a/indra/cmake/FMODEX.cmake
+++ b/indra/cmake/FMODEX.cmake
@@ -26,9 +26,15 @@ if (FMODEX)
       include(Prebuilt)
       use_prebuilt_binary(fmodex)    
       if (WINDOWS)
-        set(FMODEX_LIBRARY 
-            debug fmodexL_vc
-            optimized fmodex_vc)
+        if (WORD_SIZE EQUAL 32)
+          set(FMODEX_LIBRARY 
+              debug fmodexL_vc
+              optimized fmodex_vc)
+         elseif (WORD_SIZE EQUAL 64)
+           set(FMODEX_LIBRARY 
+              debug fmodexL64_vc
+              optimized fmodex64_vc)
+         endif(WORD_SIZE EQUAL 32)
       elseif (DARWIN)
         set(FMODEX_LIBRARY 
             debug fmodexL
diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake
index 014a2eb328cbd3df30f4dd1a0a4df15642ed3135..8d26932a9779fc63ecd8e88a1a716015ae81ab27 100755
--- a/indra/cmake/Variables.cmake
+++ b/indra/cmake/Variables.cmake
@@ -61,10 +61,17 @@ endif (NOT CMAKE_BUILD_TYPE)
 
 if (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
   set(WINDOWS ON BOOL FORCE)
-  set(ARCH i686)
-  set(LL_ARCH ${ARCH}_win32)
-  set(LL_ARCH_DIR ${ARCH}-win32)
-  set(WORD_SIZE 32)
+  if (WORD_SIZE EQUAL 64)
+    set(ARCH x86_64)
+    set(LL_ARCH ${ARCH}_win64)
+    set(LL_ARCH_DIR ${ARCH}-win64)
+    set(WORD_SIZE 64)
+  else (WORD_SIZE EQUAL 64)
+    set(ARCH i686)
+    set(LL_ARCH ${ARCH}_win32)
+    set(LL_ARCH_DIR ${ARCH}-win32)
+    set(WORD_SIZE 32)
+  endif (WORD_SIZE EQUAL 64)
 endif (${CMAKE_SYSTEM_NAME} MATCHES "Windows")
 
 if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index bb224393d5f177de13a25a9f125bf4e528cc4498..b510e20461ba7d8135cce1b235c1f36a48ae5a35 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1756,6 +1756,7 @@ if (WINDOWS)
       COMMAND ${PYTHON_EXECUTABLE}
       ARGS
         ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py
+        --arch=${ARCH}
         --actions=copy
         --artwork=${ARTWORK_DIR}
         --build=${CMAKE_CURRENT_BINARY_DIR}
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index dee56b3e08f21e250e6f63db9d9ef47cde798065..2e16762babde09f4f9720039abe75a65d9f4dc96 100755
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -363,15 +363,6 @@ class WindowsManifest(ViewerManifest):
                 print err.message
                 print "Skipping COLLADA and GLOD libraries (assumming linked statically)"
 
-            # Get fmodex dll, continue if missing
-            try:
-                if self.args['configuration'].lower() == 'debug':
-                    self.path("fmodexL.dll")
-                else:
-                    self.path("fmodex.dll")
-            except:
-                print "Skipping fmodex audio library(assuming other audio engine)"
-
             # For textures
             if self.args['configuration'].lower() == 'debug':
                 self.path("openjpegd.dll")
@@ -650,6 +641,40 @@ class WindowsManifest(ViewerManifest):
         self.package_file = installer_file
 
 
+class Windows_i686Manifest(WindowsManifest):
+    def construct(self):
+        super(Windows_i686Manifest, self).construct()
+        
+        # Get shared libs from the shared libs staging directory
+        if self.prefix(src=os.path.join(os.pardir, 'sharedlibs', self.args['configuration']),
+                       dst=""):
+           # Get fmodex dll, continue if missing
+            try:
+                if self.args['configuration'].lower() == 'debug':
+                    self.path("fmodexL.dll")
+                else:
+                    self.path("fmodex.dll")
+            except:
+                print "Skipping fmodex audio library(assuming other audio engine)"
+
+
+class Windows_x86_64Manifest(WindowsManifest):
+    def construct(self):
+        super(Windows_x86_64Manifest, self).construct()
+        
+        # Get shared libs from the shared libs staging directory
+        if self.prefix(src=os.path.join(os.pardir, 'sharedlibs', self.args['configuration']),
+                       dst=""):
+           # Get fmodex dll, continue if missing
+            try:
+                if self.args['configuration'].lower() == 'debug':
+                    self.path("fmodexL64.dll")
+                else:
+                    self.path("fmodex64.dll")
+            except:
+                print "Skipping fmodex audio library(assuming other audio engine)"
+
+
 class DarwinManifest(ViewerManifest):
     def is_packaging_viewer(self):
         # darwin requires full app bundle packaging even for debugging.