--- /dev/null
+--- reiserfsprogs-3.6.18/include/reiserfs_fs.h.orig 2004-05-28 13:41:48.000000000 +0200
++++ reiserfsprogs-3.6.18/include/reiserfs_fs.h 2004-08-07 23:14:31.157866088 +0200
+@@ -38,8 +38,6 @@
+ # define extern_inline
+ #endif
+
+-#include <asm/unaligned.h>
+-
+ #define get_leXX(xx,p,field) (le##xx##_to_cpu ((p)->field))
+ #define set_leXX(xx,p,field,val) do { (p)->field = cpu_to_le##xx(val); } while (0)
+
+@@ -53,6 +51,22 @@
+ #define set_le64(p,field,val) set_leXX (64, p, field, val)
+
+
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__)
++/* unaligned accesses are allowed - taken from asm-i386/unaligned.h */
++#define get_unaligned(ptr) (*(ptr))
++#define put_unaligned(val, ptr) ((void)( *(ptr) = (val) ))
++#else
++/* avoid unaligned accesses - taken from asm-generic/unaligned.h;
++ * optimizations left to gcc */
++#include <string.h>
++#define get_unaligned(ptr) \
++ ({ __typeof__(*(ptr)) __tmp; memcpy(&__tmp, (ptr), sizeof(*(ptr))); __tmp; })
++
++#define put_unaligned(val, ptr) \
++ ({ __typeof__(*(ptr)) __tmp = (val); \
++ memcpy((ptr), &__tmp, sizeof(*(ptr))); \
++ (void)0; })
++#endif
+
+ /***************************************************************************/
+ /* SUPER BLOCK */