diff --git a/dlls/dsound/dsound_main.c b/dlls/dsound/dsound_main.c
index 4bb1b531a8b1d7d30a4763d0d116d1dc9236b60b..90c3d01b74ff41df77fd0c3fdfa810d9b479d47a 100644
--- a/dlls/dsound/dsound_main.c
+++ b/dlls/dsound/dsound_main.c
@@ -316,6 +316,7 @@ static void _dump_DSBCAPS(DWORD xmask) {
  */
 
 /* IUnknown methods */
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_QueryInterface(
 	LPDIRECTSOUND3DBUFFER iface, REFIID riid, LPVOID *ppobj)
 {
@@ -324,14 +325,18 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_QueryInterface(
 	TRACE("(%p,%s,%p)\n",This,debugstr_guid(riid),ppobj);
 	return E_FAIL;
 }
-	
+#endif
+
+#ifdef USE_DSOUND3D
 static ULONG WINAPI IDirectSound3DBufferImpl_AddRef(LPDIRECTSOUND3DBUFFER iface)
 {
 	ICOM_THIS(IDirectSound3DBufferImpl,iface);
 	This->ref++;
 	return This->ref;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static ULONG WINAPI IDirectSound3DBufferImpl_Release(LPDIRECTSOUND3DBUFFER iface)
 {
 	ICOM_THIS(IDirectSound3DBufferImpl,iface);
@@ -351,8 +356,10 @@ static ULONG WINAPI IDirectSound3DBufferImpl_Release(LPDIRECTSOUND3DBUFFER iface
 
 	return 0;
 }
+#endif
 
 /* IDirectSound3DBuffer methods */
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_GetAllParameters(
 	LPDIRECTSOUND3DBUFFER iface,
 	LPDS3DBUFFER lpDs3dBuffer)
@@ -360,7 +367,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_GetAllParameters(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_GetConeAngles(
 	LPDIRECTSOUND3DBUFFER iface,
 	LPDWORD lpdwInsideConeAngle,
@@ -369,7 +378,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_GetConeAngles(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_GetConeOrientation(
 	LPDIRECTSOUND3DBUFFER iface,
 	LPD3DVECTOR lpvConeOrientation)
@@ -377,7 +388,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_GetConeOrientation(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_GetConeOutsideVolume(
 	LPDIRECTSOUND3DBUFFER iface,
 	LPLONG lplConeOutsideVolume)
@@ -385,7 +398,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_GetConeOutsideVolume(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_GetMaxDistance(
 	LPDIRECTSOUND3DBUFFER iface,
 	LPD3DVALUE lpfMaxDistance)
@@ -393,7 +408,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_GetMaxDistance(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_GetMinDistance(
 	LPDIRECTSOUND3DBUFFER iface,
 	LPD3DVALUE lpfMinDistance)
@@ -401,7 +418,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_GetMinDistance(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_GetMode(
 	LPDIRECTSOUND3DBUFFER iface,
 	LPDWORD lpdwMode)
@@ -409,7 +428,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_GetMode(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_GetPosition(
 	LPDIRECTSOUND3DBUFFER iface,
 	LPD3DVECTOR lpvPosition)
@@ -417,7 +438,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_GetPosition(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_GetVelocity(
 	LPDIRECTSOUND3DBUFFER iface,
 	LPD3DVECTOR lpvVelocity)
@@ -425,7 +448,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_GetVelocity(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_SetAllParameters(
 	LPDIRECTSOUND3DBUFFER iface,
 	LPCDS3DBUFFER lpcDs3dBuffer,
@@ -434,7 +459,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_SetAllParameters(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_SetConeAngles(
 	LPDIRECTSOUND3DBUFFER iface,
 	DWORD dwInsideConeAngle,
@@ -444,7 +471,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_SetConeAngles(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_SetConeOrientation(
 	LPDIRECTSOUND3DBUFFER iface,
 	D3DVALUE x, D3DVALUE y, D3DVALUE z,
@@ -453,7 +482,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_SetConeOrientation(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_SetConeOutsideVolume(
 	LPDIRECTSOUND3DBUFFER iface,
 	LONG lConeOutsideVolume,
@@ -462,7 +493,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_SetConeOutsideVolume(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_SetMaxDistance(
 	LPDIRECTSOUND3DBUFFER iface,
 	D3DVALUE fMaxDistance,
@@ -471,7 +504,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_SetMaxDistance(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_SetMinDistance(
 	LPDIRECTSOUND3DBUFFER iface,
 	D3DVALUE fMinDistance,
@@ -480,7 +515,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_SetMinDistance(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_SetMode(
 	LPDIRECTSOUND3DBUFFER iface,
 	DWORD dwMode,
@@ -491,7 +528,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_SetMode(
 	This->ds3db.dwMode = dwMode;
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_SetPosition(
 	LPDIRECTSOUND3DBUFFER iface,
 	D3DVALUE x, D3DVALUE y, D3DVALUE z,
@@ -500,7 +539,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_SetPosition(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static HRESULT WINAPI IDirectSound3DBufferImpl_SetVelocity(
 	LPDIRECTSOUND3DBUFFER iface,
 	D3DVALUE x, D3DVALUE y, D3DVALUE z,
@@ -509,7 +550,9 @@ static HRESULT WINAPI IDirectSound3DBufferImpl_SetVelocity(
 	FIXME("stub\n");
 	return DS_OK;
 }
+#endif
 
+#ifdef USE_DSOUND3D
 static ICOM_VTABLE(IDirectSound3DBuffer) ds3dbvt = 
 {
 	ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
@@ -537,6 +580,7 @@ static ICOM_VTABLE(IDirectSound3DBuffer) ds3dbvt =
 	IDirectSound3DBufferImpl_SetPosition,
 	IDirectSound3DBufferImpl_SetVelocity,
 };
+#endif
 
 #ifdef USE_DSOUND3D
 static int DSOUND_Create3DBuffer(IDirectSoundBufferImpl* dsb)
diff --git a/dlls/shell32/shell.c b/dlls/shell32/shell.c
index 29d735d6ea61bb9aacfe8d88857a1bcb10786867..6ca163a289254ae9f94316f83e3030b69c9e475f 100644
--- a/dlls/shell32/shell.c
+++ b/dlls/shell32/shell.c
@@ -978,12 +978,12 @@ HICON WINAPI ExtractAssociatedIconA(HINSTANCE hInst, LPSTR lpIconPath, LPWORD lp
  */
 HICON16 WINAPI ExtractAssociatedIcon16(HINSTANCE16 hInst, LPSTR lpIconPath, LPWORD lpiIcon)
 {	HICON16 hIcon;
-	DWORD dwDummyIcon = 0;
+	WORD wDummyIcon = 0;
 
 	TRACE("\n");
 
 	if(lpiIcon == NULL)
-	    lpiIcon = &dwDummyIcon;
+	    lpiIcon = &wDummyIcon;
 
 	hIcon = ExtractIcon16(hInst, lpIconPath, *lpiIcon);
 
diff --git a/dlls/winaspi/aspi.c b/dlls/winaspi/aspi.c
index 3e67ef2836ecdc7e37335a6240ad8fabff184eff..f809e98aa65da5b2ec513ed20206263e9518272d 100644
--- a/dlls/winaspi/aspi.c
+++ b/dlls/winaspi/aspi.c
@@ -43,8 +43,10 @@ DEFAULT_DEBUG_CHANNEL(aspi);
 static void
 SCSI_GetProcinfo();
 
+#ifdef linux
 static void
 SCSI_MapHCtoController();
+#endif
 
 /* Exported functions */
 void
@@ -52,7 +54,9 @@ SCSI_Init()
 {
 	/* For now we just call SCSI_GetProcinfo */
 	SCSI_GetProcinfo();
+#ifdef linux
 	SCSI_MapHCtoController();
+#endif
 }
 
 int
diff --git a/dlls/winmm/wineoss/audio.c b/dlls/winmm/wineoss/audio.c
index 0a2fbe59f96a204bbb3459cc5530a6c6c8538a97..27d052eee866faf329a5a46669390bf67713cf3b 100644
--- a/dlls/winmm/wineoss/audio.c
+++ b/dlls/winmm/wineoss/audio.c
@@ -25,7 +25,9 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <sys/ioctl.h>
-#include <sys/mman.h>
+#ifdef HAVE_SYS_MMAN_H
+# include <sys/mman.h>
+#endif
 #include "windef.h"
 #include "wingdi.h"
 #include "winerror.h"