diff --git a/doc/drivers.html b/doc/drivers.html
index ea2046725591050497202968d4bb30cd5d537047..a055855f5573ed96e9fb7ce2c32860e07a564de5 100644
--- a/doc/drivers.html
+++ b/doc/drivers.html
@@ -32,7 +32,11 @@ Null driver.  This is just a test device which does not write the
 audio data anywhere.
 <p>
 
-<b>Option keys:</b> None.
+<b>Option keys:</b>
+<ul>
+<li>"debug" - Print the number of bytes written to the device to stderr
+when the device is closed.  The option value is ignored.
+</ul>
 <p>
 
 <hr width="50%">
diff --git a/src/ao_null.c b/src/ao_null.c
index c4b6ab7a0a81ae1d6fab08141fc928a1970ff05f..04605d51f4328d882c32445f58720dee20762835 100644
--- a/src/ao_null.c
+++ b/src/ao_null.c
@@ -25,6 +25,7 @@
  */
 
 #include <stdio.h>
+#include <string.h>
 #include <ao/ao.h>
 
 static ao_info ao_null_info = {
@@ -42,6 +43,7 @@ static ao_info ao_null_info = {
 
 typedef struct ao_null_internal {
 	unsigned long byte_counter;
+	int debug_output;
 } ao_null_internal;
 
 
@@ -67,7 +69,8 @@ static int ao_null_device_init(ao_device *device)
 		return 0; /* Could not initialize device memory */
 	
 	internal->byte_counter = 0;
-	
+	internal->debug_output = 0;
+
 	device->internal = internal;
 
 	return 1; /* Memory alloc successful */
@@ -77,7 +80,13 @@ static int ao_null_device_init(ao_device *device)
 static int ao_null_set_option(ao_device *device, const char *key, 
 			      const char *value)
 {
-	return 1; /* No options! */
+	ao_null_internal *internal = (ao_null_internal *) device->internal;
+
+	if (!strcmp(key, "debug")) {
+		internal->debug_output = 1;
+	}
+
+	return 1;
 }
 
 
@@ -106,8 +115,10 @@ static int ao_null_close(ao_device *device)
 {
 	ao_null_internal *internal = (ao_null_internal *) device->internal;
 
-	fprintf(stderr, "ao_null: %ld bytes sent to null device.\n",
-		internal->byte_counter);
+	if (internal->debug_output) {
+	  fprintf(stderr, "ao_null: %ld bytes sent to null device.\n",
+		  internal->byte_counter);
+	}
 
 	return 1;
 }