diff --git a/src/widgets/ProgressDialog.cpp b/src/widgets/ProgressDialog.cpp
index c81c69b9598948534b2dfbd2258103e37337a58c..59a05e5ff71eb8b305a97e8d6662bd2228d59b42 100644
--- a/src/widgets/ProgressDialog.cpp
+++ b/src/widgets/ProgressDialog.cpp
@@ -53,6 +53,10 @@
 #include "../Prefs.h"
 #include "../Internat.h"
 
+#ifdef __WXOSX_COCOA__
+extern "C" void NSBeep(void);
+#endif
+
 // This really should be a Preferences setting
 static const unsigned char beep[] =
 {
@@ -1595,7 +1599,13 @@ void ProgressDialog::Beep() const
 
       if (name.IsEmpty())
       {
+#ifdef __WXOSX_COCOA__
+         // wxSound::Create(size_t,const void*) isn't implemented;
+         // use the system beep function.
+         NSBeep();
+#else
          s.Create(sizeof(beep), beep);
+#endif
       }
       else
       {