diff --git a/programs/avitools/aviplay.c b/programs/avitools/aviplay.c
index 5214830410ed66b58e98d2d54a21329c00e6b2ca..a3c40b21b3ff4ac9afcae73ed19cc6a7bf4e6141 100644
--- a/programs/avitools/aviplay.c
+++ b/programs/avitools/aviplay.c
@@ -245,12 +245,12 @@ HRESULT (WINAPI *fnAVIStreamGetFrameClose)(PGETFRAME pg);
 	}
 	/* Argh. AVIs are upside down. */
 	for (i=0;i<dsdesc.dwHeight;i++) {
-	    memcpy( (char *)dsdesc.u1.lpSurface+(i*dsdesc.lPitch),
+	    memcpy( (char *)dsdesc.lpSurface+(i*dsdesc.u1.lPitch),
 		    (char *)decodedbits+bytesline*(dsdesc.dwHeight-i-1),
 		    bytesline
 	    );
 	}
-	IDirectDrawSurface_Unlock(dsurf,dsdesc.u1.lpSurface);
+	IDirectDrawSurface_Unlock(dsurf,dsdesc.lpSurface);
     }
     tend = time(NULL);
     fnAVIStreamGetFrameClose(vidgetframe);