diff --git a/configure b/configure
index 1f1e3347b..fe10404fb 100755
--- a/configure
+++ b/configure
@@ -23814,7 +23814,7 @@ esac
 case "${host_os}" in
    darwin* | rhapsody*)
       LIBS="-framework AudioUnit -framework AudioToolbox $LIBS"
-      LIBS="-framework CoreAudio $LIBS -lz"
+      LIBS="-framework CoreAudio -framework CoreAudioKit $LIBS -lz"
       ;;
    cygwin*)
       ;;
diff --git a/src/Makefile.am b/src/Makefile.am
index e61be0e4e..cd0b45fd7 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -710,6 +710,8 @@ audacity_LDADD += $(AUDIOUNITS_LIBS)
 audacity_SOURCES += \
 	effects/audiounits/AudioUnitEffect.cpp \
 	effects/audiounits/AudioUnitEffect.h \
+	effects/audiounits/AUControl.mm \
+	effects/audiounits/AUControl.h \
 	$(NULL)
 endif
 
diff --git a/src/Makefile.in b/src/Makefile.in
index d28e7abc1..6fa29336d 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -85,6 +85,8 @@ bin_PROGRAMS = audacity$(EXEEXT)
 @USE_AUDIO_UNITS_TRUE@am__append_3 = \
 @USE_AUDIO_UNITS_TRUE@	effects/audiounits/AudioUnitEffect.cpp \
 @USE_AUDIO_UNITS_TRUE@	effects/audiounits/AudioUnitEffect.h \
+@USE_AUDIO_UNITS_TRUE@	effects/audiounits/AUControl.mm \
+@USE_AUDIO_UNITS_TRUE@	effects/audiounits/AUControl.h \
 @USE_AUDIO_UNITS_TRUE@	$(NULL)
 
 @USE_FFMPEG_TRUE@am__append_4 = $(FFMPEG_CFLAGS)
@@ -549,7 +551,8 @@ am__audacity_SOURCES_DIST = BlockFile.cpp BlockFile.h DirManager.cpp \
 	widgets/wxPanelWrapper.h xml/XMLFileReader.cpp \
 	xml/XMLFileReader.h xml/XMLWriter.cpp xml/XMLWriter.h \
 	effects/audiounits/AudioUnitEffect.cpp \
-	effects/audiounits/AudioUnitEffect.h export/ExportFFmpeg.cpp \
+	effects/audiounits/AudioUnitEffect.h effects/audiounits/AUControl.mm \
+	effects/audiounits/AUControl.h export/ExportFFmpeg.cpp \
 	export/ExportFFmpeg.h export/ExportFFmpegDialogs.cpp \
 	export/ExportFFmpegDialogs.h import/ImportFFmpeg.cpp \
 	import/ImportFFmpeg.h import/ImportGStreamer.cpp \
@@ -581,7 +584,8 @@ am__objects_1 = audacity-BlockFile.$(OBJEXT) \
 	blockfile/audacity-SilentBlockFile.$(OBJEXT) \
 	blockfile/audacity-SimpleBlockFile.$(OBJEXT) \
 	xml/audacity-XMLTagHandler.$(OBJEXT)
-@USE_AUDIO_UNITS_TRUE@am__objects_2 = effects/audiounits/audacity-AudioUnitEffect.$(OBJEXT)
+@USE_AUDIO_UNITS_TRUE@am__objects_2 = effects/audiounits/audacity-AudioUnitEffect.$(OBJEXT) \
+@USE_AUDIO_UNITS_TRUE@    effects/audiounits/audacity-AUControl.$(OBJEXT)
 @USE_FFMPEG_TRUE@am__objects_3 =  \
 @USE_FFMPEG_TRUE@	export/audacity-ExportFFmpeg.$(OBJEXT) \
 @USE_FFMPEG_TRUE@	export/audacity-ExportFFmpegDialogs.$(OBJEXT) \
@@ -2294,6 +2298,9 @@ effects/audiounits/$(DEPDIR)/$(am__dirstamp):
 effects/audiounits/audacity-AudioUnitEffect.$(OBJEXT):  \
 	effects/audiounits/$(am__dirstamp) \
 	effects/audiounits/$(DEPDIR)/$(am__dirstamp)
+effects/audiounits/audacity-AUControl.$(OBJEXT):  \
+	effects/audiounits/$(am__dirstamp) \
+	effects/audiounits/$(DEPDIR)/$(am__dirstamp)
 export/audacity-ExportFFmpeg.$(OBJEXT): export/$(am__dirstamp) \
 	export/$(DEPDIR)/$(am__dirstamp)
 export/audacity-ExportFFmpegDialogs.$(OBJEXT): export/$(am__dirstamp) \
@@ -2590,6 +2597,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@effects/$(DEPDIR)/audacity-Wahwah.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@effects/VST/$(DEPDIR)/audacity-VSTControlGTK.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@effects/VST/$(DEPDIR)/audacity-VSTEffect.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@effects/audiounits/$(DEPDIR)/audacity-AUControl.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@effects/audiounits/$(DEPDIR)/audacity-AudioUnitEffect.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@effects/ladspa/$(DEPDIR)/audacity-LadspaEffect.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@effects/lv2/$(DEPDIR)/audacity-LV2Effect.Po@am__quote@
@@ -7195,6 +7203,20 @@ effects/audiounits/audacity-AudioUnitEffect.obj: effects/audiounits/AudioUnitEff
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o effects/audiounits/audacity-AudioUnitEffect.obj `if test -f 'effects/audiounits/AudioUnitEffect.cpp'; then $(CYGPATH_W) 'effects/audiounits/AudioUnitEffect.cpp'; else $(CYGPATH_W) '$(srcdir)/effects/audiounits/AudioUnitEffect.cpp'; fi`
 
+effects/audiounits/audacity-AUControl.o: effects/audiounits/AUControl.mm
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT effects/audiounits/audacity-AUControl.o -MD -MP -MF effects/audiounits/$(DEPDIR)/audacity-AUControl.Tpo -c -o effects/audiounits/audacity-AUControl.o `test -f 'effects/audiounits/AUControl.mm' || echo '$(srcdir)/'`effects/audiounits/AUControl.mm
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) effects/audiounits/$(DEPDIR)/audacity-AUControl.Tpo effects/audiounits/$(DEPDIR)/audacity-AUControl.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='effects/audiounits/AUControl.mm' object='effects/audiounits/audacity-AUControl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o effects/audiounits/audacity-AUControl.o `test -f 'effects/audiounits/AUControl.mm' || echo '$(srcdir)/'`effects/audiounits/AUControl.mm
+
+effects/audiounits/audacity-AUControl.obj: effects/audiounits/AUControl.mm
+@am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT effects/audiounits/audacity-AUControl.obj -MD -MP -MF effects/audiounits/$(DEPDIR)/audacity-AUControl.Tpo -c -o effects/audiounits/audacity-AUControl.obj `if test -f 'effects/audiounits/AUControl.mm'; then $(CYGPATH_W) 'effects/audiounits/AUControl.mm'; else $(CYGPATH_W) '$(srcdir)/effects/audiounits/AUControl.mm'; fi`
+@am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) effects/audiounits/$(DEPDIR)/audacity-AUControl.Tpo effects/audiounits/$(DEPDIR)/audacity-AUControl.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='effects/audiounits/AUControl.mm' object='effects/audiounits/audacity-AUControl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@	$(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -c -o effects/audiounits/audacity-AUControl.obj `if test -f 'effects/audiounits/AUControl.mm'; then $(CYGPATH_W) 'effects/audiounits/AUControl.mm'; else $(CYGPATH_W) '$(srcdir)/effects/audiounits/AUControl.mm'; fi`
+
 export/audacity-ExportFFmpeg.o: export/ExportFFmpeg.cpp
 @am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(audacity_CPPFLAGS) $(CPPFLAGS) $(audacity_CXXFLAGS) $(CXXFLAGS) -MT export/audacity-ExportFFmpeg.o -MD -MP -MF export/$(DEPDIR)/audacity-ExportFFmpeg.Tpo -c -o export/audacity-ExportFFmpeg.o `test -f 'export/ExportFFmpeg.cpp' || echo '$(srcdir)/'`export/ExportFFmpeg.cpp
 @am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) export/$(DEPDIR)/audacity-ExportFFmpeg.Tpo export/$(DEPDIR)/audacity-ExportFFmpeg.Po
diff --git a/src/effects/audiounits/AUControl.mm b/src/effects/audiounits/AUControl.mm
index 9e2198384..2164fe223 100644
--- a/src/effects/audiounits/AUControl.mm
+++ b/src/effects/audiounits/AUControl.mm
@@ -173,23 +173,31 @@ bool AUControl::Create(wxWindow *parent, AudioComponent comp, AudioUnit unit, bo
 #endif
    }
 
-   if (!mView && !mHIView)
-   {
+   if (!mView
+#if !defined(_LP64)
+       && !mHIView
+#endif
+   ){
       CreateGeneric();
    }
 
-   if (!mView && !mHIView)
-   {
+   if (!mView
+#if !defined(_LP64)
+       && !mHIView
+#endif
+   ){
       return false;
    }
 
    // wxWidgets takes ownership so safenew
    SetPeer(safenew AUControlImpl(this, mAUView));
 
+#if !defined(_LP64)
    if (mHIView)
    {
       CreateCarbonOverlay();
    }
+#endif
 
    // Must get the size again since SetPeer() could cause it to change
    SetInitialSize(GetMinSize());