  
  	Dprintf("%s(): Entering for pos 0x%Lx, count 0x%Lx.\n", __FUNCTION__,
  			pos, count);
-@@ -78,7 +80,19 @@
+@@ -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. */

 #ifdef HAVE_STDIO_H
diff -ru ntfsprogs-1.7.1/include/disk_io.h ntfsprogs-1.7.1-utah/include/disk_io.h
--- ntfsprogs-1.7.1/include/disk_io.h	Thu Feb  6 08:24:56 2003
+++ ntfsprogs-1.7.1-utah/include/disk_io.h	Wed Mar 31 16:37:25 2004
@@ -22,6 +22,7 @@
 #ifndef _NTFS_DISK_IO_H
 #define _NTFS_DISK_IO_H
 
+#include <sys/param.h> /*Included for FreeBSD*/
 #include "volume.h"
 
 extern s64 ntfs_pread(const int fd, const s64 pos, s64 count, const void *b);
diff -ru ntfsprogs-1.7.1/include/endians.h ntfsprogs-1.7.1-utah/include/endians.h
--- ntfsprogs-1.7.1/include/endians.h	Thu Feb  6 08:24:56 2003
+++ ntfsprogs-1.7.1-utah/include/endians.h	Wed Mar 31 16:37:25 2004

 #include "config.h"
 
 #include <sys/mount.h>
@@ -156,6 +157,7 @@
 
 extern ntfs_volume *ntfs_volume_startup(const char *name, unsigned long rwflag);
 extern ntfs_volume *ntfs_mount(const char *name, unsigned long rwflag);
+extern ntfs_volume *ntfs_mount_with_offset(const char *name, unsigned long rwflag, const s64 doffset);
 
 extern int ntfs_umount(ntfs_volume *vol, const BOOL force);
 
diff -ru ntfsprogs-1.7.1/libntfs/attrib.c ntfsprogs-1.7.1-utah/libntfs/attrib.c
--- ntfsprogs-1.7.1/libntfs/attrib.c	Thu Feb 13 03:25:30 2003
+++ ntfsprogs-1.7.1-utah/libntfs/attrib.c	Wed Mar 31 16:37:25 2004
