diff --git a/.hgignore b/.hgignore
index 8cd3339b00823e2ff03f1cf8da8f57c51b81750b..c54cccdec14908f530feeef1d05f20a999f1aeef 100755
--- a/.hgignore
+++ b/.hgignore
@@ -19,6 +19,7 @@ build-vc80/
 build-vc100/
 build-vc110/
 build-vc120/
+qtcreator-build/
 indra/build-vc[0-9]*
 indra/CMakeFiles
 indra/lib/mono/1.0/*.dll
diff --git a/indra/cmake/DirectX.cmake b/indra/cmake/DirectX.cmake
index 4dfafdd805f0506041b5d14d50e68712eb40d777..e254716d8e065859a8af5d4203b0cbae9b8eb3eb 100755
--- a/indra/cmake/DirectX.cmake
+++ b/indra/cmake/DirectX.cmake
@@ -1,25 +1,20 @@
 # -*- cmake -*-
 
 if (WINDOWS)
-  if (MSVC10)
-    find_path(DIRECTX_INCLUDE_DIR dxdiag.h
-              "$ENV{DXSDK_DIR}/Include"
-              "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2010)/Include"
-              "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2009)/Include"
-              "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2009)/Include"
-              "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Include"
-              "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Include"
-              "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2008)/Include"
-              "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (November 2007)/Include"
-              "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2007)/Include"
-              "C:/DX90SDK/Include"
-              "$ENV{PROGRAMFILES}/DX90SDK/Include"
-              )
-  elseif (MSVC11)
-    find_path(DIRECTX_INCLUDE_DIR dxdiag.h
-              "$ENV{WindowsSdkDir}/Include/um"
-              )
-  endif (MSVC10)
+  find_path(DIRECTX_INCLUDE_DIR dxdiag.h
+            "$ENV{DXSDK_DIR}/Include"
+            "$ENV{WindowsSdkDir}/Include/um"
+            "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2010)/Include"
+            "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2009)/Include"
+            "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2009)/Include"
+            "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Include"
+            "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Include"
+            "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2008)/Include"
+            "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (November 2007)/Include"
+            "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2007)/Include"
+            "C:/DX90SDK/Include"
+            "$ENV{PROGRAMFILES}/DX90SDK/Include"
+            )
 
   if (DIRECTX_INCLUDE_DIR)
     include_directories(${DIRECTX_INCLUDE_DIR})
@@ -30,25 +25,20 @@ if (WINDOWS)
     message(FATAL_ERROR "Could not find DirectX SDK Include")
   endif (DIRECTX_INCLUDE_DIR)
 
-  if (MSVC10)
-    find_path(DIRECTX_LIBRARY_DIR dxguid.lib
-              "$ENV{DXSDK_DIR}/Lib/x86"
-              "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2010)/Lib/x86"
-              "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2009)/Lib/x86"
-              "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2009)/Lib/x86"
-              "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Lib/x86"
-              "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Lib/x86"
-              "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2008)/Lib/x86"
-              "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (November 2007)/Lib/x86"
-              "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2007)/Lib/x86"
-              "C:/DX90SDK/Lib"
-              "$ENV{PROGRAMFILES}/DX90SDK/Lib"
-              )
-  elseif (MSVC11)
-    find_path(DIRECTX_LIBRARY_DIR dxguid.lib
-              "$ENV{WindowsSdkDir}/Lib/win8/um/x86"
-              )
-  endif (MSVC10)
+  find_path(DIRECTX_LIBRARY_DIR dxguid.lib
+            "$ENV{DXSDK_DIR}/Lib/x86"
+            "$ENV{WindowsSdkDir}/Lib/win8/um/x86"
+            "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2010)/Lib/x86"
+            "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2009)/Lib/x86"
+            "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2009)/Lib/x86"
+            "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2008)/Lib/x86"
+            "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (June 2008)/Lib/x86"
+            "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (March 2008)/Lib/x86"
+            "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (November 2007)/Lib/x86"
+            "$ENV{PROGRAMFILES}/Microsoft DirectX SDK (August 2007)/Lib/x86"
+            "C:/DX90SDK/Lib"
+            "$ENV{PROGRAMFILES}/DX90SDK/Lib"
+            )
 
   if (DIRECTX_LIBRARY_DIR)
     if (DIRECTX_FIND_QUIETLY)
diff --git a/indra/media_plugins/CMakeLists.txt b/indra/media_plugins/CMakeLists.txt
index 75038a076a632b5ab0b56b6ace69923fe99c9142..85318aea3ba9fb43938e901b359a0dc9b574909f 100755
--- a/indra/media_plugins/CMakeLists.txt
+++ b/indra/media_plugins/CMakeLists.txt
@@ -10,8 +10,8 @@ if (WINDOWS OR DARWIN)
     add_subdirectory(quicktime)
 endif (WINDOWS OR DARWIN)
 
-if (WINDOWS AND NOT MSVC11)
+if (WINDOWS)
     add_subdirectory(winmmshim)
-endif (WINDOWS AND NOT MSVC11)
+endif (WINDOWS)
 
 add_subdirectory(example)
diff --git a/indra/media_plugins/winmmshim/forwarding_api.cpp b/indra/media_plugins/winmmshim/forwarding_api.cpp
index 495e08942b14cf91bf2abf7d5bb2fa4a6971b224..745c97309b30e270dd1021865e6a3f293cf0be24 100755
--- a/indra/media_plugins/winmmshim/forwarding_api.cpp
+++ b/indra/media_plugins/winmmshim/forwarding_api.cpp
@@ -1338,7 +1338,7 @@ extern "C" {
 		return joySetThreshold_orig( uJoyID, uThreshold);
 	}
 
-	BOOL WINAPI  mciDriverNotify(HWND hwndCallback, UINT uDeviceID, UINT uStatus)
+	BOOL WINAPI  mciDriverNotify(HANDLE hwndCallback, UINT uDeviceID, UINT uStatus)
 	{
 		ll_winmm_shim_initialize();
 		//OutputDebugString(L"mciDriverNotify\n");
@@ -1610,11 +1610,11 @@ extern "C" {
 		return mciGetYieldProc_orig( mciId, pdwYieldData);
 	}
 
-	UINT WINAPI mciLoadCommandResource(HINSTANCE hInstance, LPCWSTR lpResName, UINT uType)
+	UINT WINAPI mciLoadCommandResource(HANDLE hInstance, LPCWSTR lpResName, UINT wType)
 	{
 		ll_winmm_shim_initialize();
 		//OutputDebugString(L"mciLoadCommandResource");
-		return mciLoadCommandResource_orig(hInstance, lpResName, uType);
+		return mciLoadCommandResource_orig(hInstance, lpResName, wType);
 	}
 	
 
diff --git a/indra/media_plugins/winmmshim/forwarding_api.h b/indra/media_plugins/winmmshim/forwarding_api.h
index 076a08f7696bc0637bfdf4eba4913682fe1f68c2..80fd164adb2ee368e56bef751e5278d47fba2ec8 100755
--- a/indra/media_plugins/winmmshim/forwarding_api.h
+++ b/indra/media_plugins/winmmshim/forwarding_api.h
@@ -306,7 +306,7 @@ typedef MMRESULT (WINAPI *joySetCapture_type)( HWND hwnd, UINT uJoyID, UINT uPer
 extern joySetCapture_type joySetCapture_orig;
 typedef MMRESULT (WINAPI *joySetThreshold_type)( UINT uJoyID, UINT uThreshold);
 extern joySetThreshold_type joySetThreshold_orig;
-typedef BOOL (WINAPI  *mciDriverNotify_type)(HWND hwndCallback, UINT uDeviceID, UINT uStatus);
+typedef BOOL (WINAPI  *mciDriverNotify_type)(HANDLE hwndCallback, UINT uDeviceID, UINT uStatus);
 extern mciDriverNotify_type mciDriverNotify_orig;
 typedef UINT (WINAPI  *mciDriverYield_type)(UINT uDeviceID);
 extern mciDriverYield_type mciDriverYield_orig;
@@ -384,7 +384,7 @@ typedef HTASK (WINAPI *mciGetCreatorTask_type)( MCIDEVICEID mciId);
 extern mciGetCreatorTask_type mciGetCreatorTask_orig;
 typedef YIELDPROC (WINAPI *mciGetYieldProc_type)( MCIDEVICEID mciId, LPDWORD pdwYieldData);
 extern mciGetYieldProc_type mciGetYieldProc_orig;
-typedef UINT (WINAPI *mciLoadCommandResource_type)(HINSTANCE hInstance, LPCWSTR lpResName, UINT uType);
+typedef UINT (WINAPI *mciLoadCommandResource_type)(HANDLE hInstance, LPCWSTR lpResName, UINT wType);
 extern mciLoadCommandResource_type mciLoadCommandResource_orig;
 typedef BOOL (WINAPI *mciExecute_type)(LPCSTR pszCommand);
 extern mciExecute_type mciExecute_orig;