diff --git a/drivers/media/video/usbvision/usbvision-core.c b/drivers/media/video/usbvision/usbvision-core.c
index a23fcd1..da422e7 100644
--- a/drivers/media/video/usbvision/usbvision-core.c
+++ b/drivers/media/video/usbvision/usbvision-core.c
@@ -4240,6 +4240,7 @@
 
 			/* set v4l2_format index */
 			frame->v4l2_format = usbvision->palette;
+			PDEBUG(DBG_IOCTL, "VIDIOC_QBUF frame=%d",vb->index);
 
 			return usbvision_new_frame(usbvision, vb->index);
 		}
@@ -4269,8 +4270,8 @@
 			if (vb->index == -1)
 				return -EINVAL;
 
-			PDEBUG(DBG_IOCTL, "VIDIOC_DQBUF frame=%d, grabstate=%d",
-				       vb->index, usbvision->frame[vb->index].grabstate);
+			PDEBUG(DBG_IOCTL, "VIDIOC_DQBUF frame=%d, grabstate=%d, curframeNum=%d",
+				       vb->index, usbvision->frame[vb->index].grabstate,usbvision->curFrameNum);
 
 			switch (usbvision->frame[vb->index].grabstate) {
 			case FrameState_Unused:
@@ -4295,6 +4296,7 @@
 				errCode = (usbvision->frame[vb->index].grabstate == FrameState_Error) ? -EIO : 0;
 				vb->memory = V4L2_MEMORY_MMAP;
 				vb->flags = V4L2_BUF_FLAG_MAPPED | V4L2_BUF_FLAG_QUEUED | V4L2_BUF_FLAG_DONE;
+				vb->field = V4L2_FIELD_NONE;
 				vb->sequence = usbvision->frame[vb->index].sequence;
 				usbvision->frame[vb->index].grabstate = FrameState_Unused;
 				break;
diff --git a/drivers/media/video/usbvision/usbvision-i2c.c b/drivers/media/video/usbvision/usbvision-i2c.c
index e050e55..466e11f 100644
--- a/drivers/media/video/usbvision/usbvision-i2c.c
+++ b/drivers/media/video/usbvision/usbvision-i2c.c
@@ -39,18 +39,14 @@
 #include <linux/i2c.h>
 #include "usbvision-i2c.h"
 
-static int debug = 0;	
+static int debug_i2c_usb = 0;	
 
 #if defined(module_param)                               // Showing parameters under SYSFS
-module_param (debug, int, 0444);			// debug mode of the device driver
+module_param (debug_i2c_usb, int, 0444);			// debug_i2c_usb mode of the device driver
 #else
-MODULE_PARM(debug, "i");				// debug mode of the device driver
+MODULE_PARM(debug_i2c_usb, "i");				// debug_i2c_usb mode of the device driver
 #endif
 
-MODULE_AUTHOR("Joerg Heckenbach");
-MODULE_DESCRIPTION("I2C algorithm for USB-I2C-bridges");
-MODULE_LICENSE("GPL");
-
 
 static inline int try_write_address(struct i2c_adapter *i2c_adap,
 				    unsigned char addr, int retries)
@@ -71,7 +67,7 @@
 			break;
 		udelay(adap->udelay);
 	}
-	if (debug) {
+	if (debug_i2c_usb) {
 		if (i) {
 			info("%s: Needed %d retries for address %#2x", __FUNCTION__, i, addr);
 			info("%s: Maybe there's no device at this address", __FUNCTION__);
@@ -98,7 +94,7 @@
 			break;
 		udelay(adap->udelay);
 	}
-	if (debug) {
+	if (debug_i2c_usb) {
 		if (i) {
 			info("%s: Needed %d retries for address %#2x", __FUNCTION__, i, addr);
 			info("%s: Maybe there's no device at this address", __FUNCTION__);
@@ -170,7 +166,7 @@
 		pmsg = &msgs[i];
 		ret = usb_find_address(i2c_adap, pmsg, i2c_adap->retries, &addr);
 		if (ret != 0) {
-			if (debug) {
+			if (debug_i2c_usb) {
 				info("%s: got NAK from device, message #%d\n", __FUNCTION__, i);
 			}
 			return (ret < 0) ? ret : -EREMOTEIO;
@@ -236,7 +232,7 @@
 
 	i2c_add_adapter(adap);
 
-	if (debug) {
+	if (debug_i2c_usb) {
 		info("i2c bus for %s registered", adap->name);
 	}
 
@@ -249,7 +245,7 @@
 
 	i2c_del_adapter(adap);
 
-	if (debug) {
+	if (debug_i2c_usb) {
 		info("i2c bus for %s unregistered", adap->name);
 	}
 #ifdef MODULE
