Index: audio/ossaudio.py
===================================================================
--- audio/ossaudio.py	(revision 1471)
+++ audio/ossaudio.py	(working copy)
@@ -6,6 +6,9 @@
 from twisted.python import log
 from twisted.internet.task import LoopingCall
 
+# shtoom exceptions
+from shtoom.exceptions import AudioNotAvailable
+
 opened = None
 
 class OSSAudioDevice(baseaudio.AudioDevice):
@@ -19,10 +22,16 @@
             device = app.getPref('audio_device')
         if device is not None:
             log.msg("ossaudiodev opening device %s")
-            dev = ossaudiodev.open(device, 'rw')
+	    try:
+	        dev = ossaudiodev.open(device, 'rw')
+	    except:
+	        raise AudioNotAvailable
         else:
             log.msg("ossaudiodev opening default device")
-            dev = ossaudiodev.open('rw')
+	    try:
+	        dev = ossaudiodev.open('rw')
+	    except:
+	        raise AudioNotAvailable
         dev.speed(8000)
         dev.nonblock()
         ch = dev.channels(1)
Index: exceptions.py
===================================================================
--- exceptions.py	(revision 1471)
+++ exceptions.py	(working copy)
@@ -4,6 +4,7 @@
 class FatalError(Exception): pass
 class     DependencyFailure(FatalError): pass
 class         NoAudioDevice(DependencyFailure): pass
+class         AudioNotAvailable(DependencyFailure): pass
 class         NoUserInterface(DependencyFailure): pass
 
 class CallFailed(Exception):
