--- DB.php.old	2008-07-21 10:35:14.000000000 +0100
+++ DB.php	2008-07-21 11:03:38.000000000 +0100
@@ -41,7 +41,7 @@
 	{
 		// Options that are specific to PHPOF2_DB and are not to be passed to MDB2
 		// (MDB2 throws errors if it gets options it doesn't know about)
-		$private_option_list = array('audit_driver');
+		$private_option_list = array('audit_driver', 'audit_driver_options');
 		$private_options = array();
 		if (is_array($options)) {
 			foreach ($options as $key => $val) {
@@ -70,11 +70,22 @@
 		}
 		
 		// Enable audit driver if required
-		if (isset($private_options['audit_driver'])) {
-			if (!$private_options['audit_driver'] instanceof PHPOF2_Audit_Interface) {
+		if (isset($private_options['audit_driver'])) {		
+			// If the driver is a string try and load the class
+			if (is_string($private_options['audit_driver'])) {
+				$driver = $private_options['audit_driver'];
+				if (isset($private_options['audit_driver_options'])) {
+					$mdb2->phpof2_auditor = new $driver($mdb2, $private_options['audit_driver_options']);
+				} else {
+					$mdb2->phpof2_auditor = new $driver($mdb2);
+				}
+			} else {
+				$mdb2->phpof2_auditor = $private_options['audit_driver'];
+			}
+			
+			if (!$mdb2->phpof2_auditor instanceof PHPOF2_Audit_Interface) {
 				throw new Exception("Audit driver passed to PHPOF2_DB is not a PHPOF2_Audit_Interface object");
 			}
-			$mdb2->phpof2_auditor = $private_options['audit_driver'];
 		}
 		return $mdb2;
 	}
