diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index 44c2d3ac27b8bf460b15b8623de7f7314f268813..f98e88b6970960ff253b0da34e17aff09e5a36fe 100755
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -64,6 +64,7 @@ if(WINDOWS)
     endif(USE_TCMALLOC)
 
     if (FMODEX)
+      set(debug_files ${debug_files} fmodexL.dll)
       set(release_files ${release_files} fmodex.dll)
     endif (FMODEX)
 
@@ -294,7 +295,8 @@ elseif(LINUX)
     endif (USE_TCMALLOC)
 
     if (FMODEX)
-      set(release_file ${release_files} "libfmodex.so")
+      set(debug_files ${debug_files} "libfmodexL.so")
+      set(release_files ${release_files} "libfmodex.so")
     endif (FMODEX)
 
 else(WINDOWS)
diff --git a/indra/llaudio/llaudioengine_fmodex.cpp b/indra/llaudio/llaudioengine_fmodex.cpp
index 71f5d47367f174c4ddbd5da921f1e2e4f1b2e8e1..36e8044a25f7c6289f3a0738cee39320bff44760 100644
--- a/indra/llaudio/llaudioengine_fmodex.cpp
+++ b/indra/llaudio/llaudioengine_fmodex.cpp
@@ -55,11 +55,13 @@ LLAudioEngine_FMODEX::LLAudioEngine_FMODEX(bool enable_profiler)
 	mWindDSP = NULL;
 	mSystem = NULL;
 	mEnableProfiler = enable_profiler;
+	mWindDSPDesc = new FMOD_DSP_DESCRIPTION();
 }
 
 
 LLAudioEngine_FMODEX::~LLAudioEngine_FMODEX()
 {
+	delete mWindDSPDesc;
 }
 
 
@@ -347,11 +349,11 @@ bool LLAudioEngine_FMODEX::initWind()
 
 	if (!mWindDSP)
 	{
-		memset(&mWindDSPDesc, 0, sizeof(mWindDSPDesc));	//Set everything to zero
-		strncpy(mWindDSPDesc.name, "Wind Unit", sizeof(mWindDSPDesc.name));
-		mWindDSPDesc.channels = 2;
-		mWindDSPDesc.read = &windCallback; // Assign callback - may be called from arbitrary threads
-		if (Check_FMOD_Error(mSystem->createDSP(&mWindDSPDesc, &mWindDSP), "FMOD::createDSP"))
+		memset(mWindDSPDesc, 0, sizeof(*mWindDSPDesc));	//Set everything to zero
+		strncpy(mWindDSPDesc->name, "Wind Unit", sizeof(mWindDSPDesc->name));
+		mWindDSPDesc->channels = 2;
+		mWindDSPDesc->read = &windCallback; // Assign callback - may be called from arbitrary threads
+		if (Check_FMOD_Error(mSystem->createDSP(mWindDSPDesc, &mWindDSP), "FMOD::createDSP"))
 			return false;
 
 		if (mWindGen)
diff --git a/indra/llaudio/llaudioengine_fmodex.h b/indra/llaudio/llaudioengine_fmodex.h
index ca9a6c0df0185648ed86b65902d75d4d5b5b445d..ca389d489fd981359e666ae50b250668a7489c90 100644
--- a/indra/llaudio/llaudioengine_fmodex.h
+++ b/indra/llaudio/llaudioengine_fmodex.h
@@ -41,6 +41,7 @@ namespace FMOD
 	class Sound;
 	class DSP;
 }
+typedef struct FMOD_DSP_DESCRIPTION FMOD_DSP_DESCRIPTION;
 
 //Interfaces
 class LLAudioEngine_FMODEX : public LLAudioEngine 
@@ -74,7 +75,7 @@ class LLAudioEngine_FMODEX : public LLAudioEngine
 
 	LLWindGen<MIXBUFFERFORMAT> *mWindGen;
 
-	FMOD_DSP_DESCRIPTION mWindDSPDesc;
+	FMOD_DSP_DESCRIPTION *mWindDSPDesc;
 	FMOD::DSP *mWindDSP;
 	FMOD::System *mSystem;
 	bool mEnableProfiler;