diff -Naur jfsutils-1.1.12.orig/include/Makefile.am jfsutils-1.1.12.partclone/include/Makefile.am
--- jfsutils-1.1.12.orig/include/Makefile.am	2002-01-30 04:08:11.000000000 +0800
+++ jfsutils-1.1.12.partclone/include/Makefile.am	2010-06-30 11:21:37.000000000 +0800
@@ -1,3 +1,7 @@
+jfsincludedir = $(includedir)/jfs
+jfsinclude_HEADERS = jfs_byteorder.h jfs_btree.h jfs_dinode.h jfs_dmap.h \
+	jfs_dtree.h jfs_filsys.h jfs_imap.h jfs_logmgr.h jfs_superblock.h \
+	jfs_types.h jfs_unicode.h jfs_version.h jfs_xtree.h
 
 EXTRA_DIST = jfs_byteorder.h jfs_btree.h jfs_dinode.h jfs_dmap.h \
          jfs_dtree.h jfs_filsys.h jfs_imap.h jfs_logmgr.h jfs_superblock.h \
diff -Naur jfsutils-1.1.12.orig/libfs/log_work.c jfsutils-1.1.12.partclone/libfs/log_work.c
--- jfsutils-1.1.12.orig/libfs/log_work.c	2006-06-05 05:37:29.000000000 +0800
+++ jfsutils-1.1.12.partclone/libfs/log_work.c	2010-06-30 11:14:46.000000000 +0800
@@ -2416,6 +2416,7 @@
 	int32_t xlen, xlength;
 	int16_t nword;
 	int8_t upd_possible = 0;
+	struct dinode dip_local; /* Local copy of dinode data for alignment purposes */
 
 	if (ld->length <= 0)
 		return (0);
@@ -2713,7 +2714,8 @@
 			 */
 
 			if (ino_rem == 0) {	/* inode base segment  */
-				dip = (struct dinode *) data;
+			  	memcpy(&dip_local, data, size_dinode);
+				dip = &dip_local;
 				if (ln == 1) {
 					/* ibase only */
 					if (db->db_ibase & mask_8)
diff -Naur jfsutils-1.1.12.orig/libfs/Makefile.am jfsutils-1.1.12.partclone/libfs/Makefile.am
--- jfsutils-1.1.12.orig/libfs/Makefile.am	2005-10-04 10:42:59.000000000 +0800
+++ jfsutils-1.1.12.partclone/libfs/Makefile.am	2010-06-30 11:27:52.000000000 +0800
@@ -1,7 +1,10 @@
-
+jfsincludedir = $(includedir)/jfs
 INCLUDES = -I$(top_srcdir)/include
 
+jfsinclude_HEADERS =debug.h fsck_base.h fsck_message.h jfs_endian.h logredo.h unicode_to_utf8.h devices.h fsckcbbl.h fsckwsp.h libjufs.h message.h utilsubs.h diskmap.h fscklog.h inode.h logform.h super.h
+
 noinst_LIBRARIES = libfs.a
+lib_LIBRARIES = libjfs.a
 
 libfs_a_SOURCES = fssubs.c unicode_to_utf8.c devices.c utilsubs.c \
  super.c inode.c diskmap.c message.c uniupr.c jfs_endian.c \
@@ -10,3 +13,11 @@
  debug.h devices.h diskmap.h fsck_base.h fsckcbbl.h fscklog.h \
  fsckwsp.h inode.h libjufs.h message.h super.h unicode_to_utf8.h \
  utilsubs.h jfs_endian.h logform.h logredo.h fsck_message.h
+
+libjfs_a_SOURCES = fssubs.c unicode_to_utf8.c devices.c utilsubs.c \
+ super.c inode.c diskmap.c message.c uniupr.c jfs_endian.c \
+ open_by_label.c log_dump.c logform.c logredo.c log_work.c log_read.c \
+ log_map.c fsckmsgdef.c \
+ debug.h devices.h diskmap.h fsck_base.h fsckcbbl.h fscklog.h \
+ fsckwsp.h inode.h libjufs.h message.h super.h unicode_to_utf8.h \
+ utilsubs.h jfs_endian.h logform.h logredo.h fsck_message.h