--- bttv-driver.c.orig	2004-07-02 03:19:11.000000000 +0200
+++ bttv-driver.c	2004-07-02 00:28:22.000000000 +0200
@@ -772,7 +772,7 @@
 	u32 bl, blcr, blcb, rcmd;
 	u32 todo;
 	u32 **rp;
-	int inter;
+	int inter, field_off;
 	unsigned long cbadr, cradr;
 	unsigned long vadr=(unsigned long) vbuf;
 	u32 shift, csize;
@@ -832,8 +832,8 @@
 		else 
 	                rp= (line>=height) ? &ro : &re; 
 	                
-
-	        if(line&lmask)
+		field_off= inter && (line & (lmask+1));
+	        if((line - field_off)&lmask)
 	        	rcmd=BT848_RISC_WRITE1S23|BT848_RISC_SOL;
 	        else
 	        	rcmd=BT848_RISC_WRITE123|BT848_RISC_SOL;
