  typedef uint16_t u16;
 diff -ru ntfsprogs-1.7.1/include/volume.h ntfsprogs-1.7.1-utah/include/volume.h
 --- ntfsprogs-1.7.1/include/volume.h	Thu Feb  6 08:24:56 2003
-+++ ntfsprogs-1.7.1-utah/include/volume.h	Wed Mar 31 16:37:25 2004
++++ ntfsprogs-1.7.1-utah/include/volume.h	Tue Apr  6 18:18:08 2004
 @@ -22,6 +22,7 @@
  #ifndef _NTFS_VOLUME_H
  #define _NTFS_VOLUME_H

 		br = read(fd, (char*)b + total, count);
 		/* If everything ok, continue. */
 		if (br > 0)
diff -ru ntfsprogs-1.7.1/libntfs/lcnalloc.c ntfsprogs-1.7.1-utah/libntfs/lcnalloc.c
--- ntfsprogs-1.7.1/libntfs/lcnalloc.c	Thu Feb  6 08:24:56 2003
+++ ntfsprogs-1.7.1-utah/libntfs/lcnalloc.c	Wed Mar 31 16:37:25 2004

 
 	Dprintf("%s(): Entering for pos 0x%Lx, count 0x%Lx.\n", __FUNCTION__,
 			pos, count);
@@ -71,6 +82,11 @@
 	}
 	if (!count)
 		return 0;
+
+	/* Account for static offset. */
+	if (fd == iofd)
+		pos += iobase;
+
 	/* Locate to position. */
 	if (lseek(fd, pos, SEEK_SET) == (off_t)-1) {
 		Dprintf("ntfs_pread: lseek to 0x%Lx returned error: %s\n", pos,
@@ -78,7 +94,19 @@
 		return -1;
 	}
 	/* Read the data. */
