main(): wrap the device.setinfo() call around an exception handler.
It's possible to get a sunaudiodev.error (errno == EINVAL), although
I'm not exactly sure why, this at least won't crash the application.
diff --git a/Tools/audiopy/audiopy b/Tools/audiopy/audiopy
index 19d69fd..ba03a69 100755
--- a/Tools/audiopy/audiopy
+++ b/Tools/audiopy/audiopy
@@ -48,6 +48,7 @@
 import sys
 import os
 import string
+import errno
 import sunaudiodev
 from SUNAUDIODEV import *
 
@@ -490,7 +491,12 @@
         else:
             usage(1, msg='Invalid option: ' + arg)
     # now set the values
-    device.setinfo(info)
+    try:
+        device.setinfo(info)
+    except sunaudiodev.error, (code, msg):
+        if code == errno.EINVAL:
+            pass
+        raise
     device.close()