diff --git a/configure.ac b/configure.ac
index 3395fdb4c..3a17ef6d3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -106,7 +106,7 @@ enable_osx=no
 case $host in
 	*-darwin*)
                 AC_DEFINE(HAVE_OSX, 1, [Define for compiling OS X support])
-		MPD_LIBS="$MPD_LIBS -framework CoreAudio"
+		MPD_LIBS="$MPD_LIBS -framework AudioUnit -framework CoreServices"
 		enable_osx=yes ;;
 esac
 
diff --git a/src/audioOutputs/audioOutput_osx.c b/src/audioOutputs/audioOutput_osx.c
index 03c3cfc67..186d32e6c 100644
--- a/src/audioOutputs/audioOutput_osx.c
+++ b/src/audioOutputs/audioOutput_osx.c
@@ -26,7 +26,7 @@
 
 #include "../log.h"
 
-#define BUFFER_SIZE 4096
+#define BUFFER_SIZE 32768
 
 typedef struct _OsxData {
 	AudioUnit au;
@@ -168,9 +168,7 @@ static OSStatus osx_render(void * vdata,
 		if(od->pos >= BUFFER_SIZE) od->pos = 0;
 	}
 
-	if(bufferSize) {
-		memset(buffer->mData+curpos, 0, bufferSize);
-	}
+	buffer->mDataByteSize -= bufferSize;
 
 	pthread_cond_signal(&od->condition);
 	pthread_mutex_unlock(&od->mutex);