diff -ru qc-usb-0.6.6/qc-driver.c.orig qc-usb-0.6.6/qc-driver.c
--- qc-usb-0.6.6/qc-driver.c.orig	2005-11-08 11:34:58.000000000 +0100
+++ qc-usb-0.6.6/qc-driver.c	2005-11-08 11:35:47.000000000 +0100
@@ -3103,7 +3103,8 @@
 PDEBUG("poisoning qc in qc_usb_init");
 		POISON(*qc);
 		if (qcdebug&QC_DEBUGMUTEX) PDEBUG("init down(%p) in qc_usb_init()", qc);
-		init_MUTEX_LOCKED(&qc->lock);
+		init_MUTEX(&qc->lock);
+		down(&qc->lock);
 		qc->users = 0;
 		if ((r=qc_i2c_init(qc))<0) goto fail2;
 	}
