diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+# 0.9.4
+- fix PulseAudio default output device detection
+
 # 0.9.3
 - apply migration to GHC 9.4.* for Windows (see https://gitlab.haskell.org/ghc/ghc/-/issues/22738)
 
diff --git a/cbits/RtAudio.cpp b/cbits/RtAudio.cpp
--- a/cbits/RtAudio.cpp
+++ b/cbits/RtAudio.cpp
@@ -406,12 +406,22 @@
 unsigned int RtApi :: getDefaultInputDevice( void )
 {
   // Should be implemented in subclasses if possible.
+  for ( unsigned int i = 0; i < getDeviceCount(); i++ ) {
+    if ( getDeviceInfo( i ).isDefaultInput ) {
+      return i;
+    }
+  }
   return 0;
 }
 
 unsigned int RtApi :: getDefaultOutputDevice( void )
 {
   // Should be implemented in subclasses if possible.
+  for ( unsigned int i = 0; i < getDeviceCount(); i++ ) {
+    if ( getDeviceInfo( i ).isDefaultOutput ) {
+      return i;
+    }
+  }
   return 0;
 }
 
diff --git a/proteaaudio.cabal b/proteaaudio.cabal
--- a/proteaaudio.cabal
+++ b/proteaaudio.cabal
@@ -1,6 +1,6 @@
 Cabal-Version:       2.2
 Name:                proteaaudio
-Version:             0.9.3
+Version:             0.9.4
 Synopsis:            Simple audio library for Windows, Linux, OSX.
 Description:         Simple audio library for Windows, Linux, OSX. Supports PCM, Ogg and Wav playback and multichannel mixing.
 License:             BSD-3-Clause
