diff --git a/sm5/CHANGELOG b/sm5/CHANGELOG
index 799e31e9a994b3a4b5f56d6657a219ba7f22e0ed..12debfa3259abca470b5b020d4d42538367ff64b 100644
--- a/sm5/CHANGELOG
+++ b/sm5/CHANGELOG
@@ -1,6 +1,6 @@
 CHANGELOG for smartmontools
 
-$Id: CHANGELOG,v 1.576 2006/10/20 21:56:03 chrfranke Exp $
+$Id: CHANGELOG,v 1.577 2006/10/22 11:50:47 ballen4705 Exp $
 
 The most recent version of this file is:
 http://smartmontools.cvs.sourceforge.net/smartmontools/sm5/CHANGELOG?view=markup
@@ -33,6 +33,9 @@ NOTES FOR FUTURE RELEASES: see TODO file.
 
 <DEVELOPERS: ADDITIONS TO THE CHANGE LOG GO JUST BELOW HERE, PLEASE>
 
+  [BA] Linux s86_64: get rid of some compiler warnings on
+       x86_64 Linux systems.
+
   [CF] Windows: Added missing support for READ_LOG, ABORT_SELFTEST
        and CHECK_POWER_STATE for 3ware 9000 controllers. Thanks to
        Greg de Valois for implementing this new ioctl in the driver.
diff --git a/sm5/configure.in b/sm5/configure.in
index a6c30dc1959e67e1b2e5603a13319ad962b8c51d..12684de1c06e07af6d75bbc6aca8642fafc7173e 100644
--- a/sm5/configure.in
+++ b/sm5/configure.in
@@ -1,5 +1,5 @@
 #
-# $Id: configure.in,v 1.118 2006/08/12 05:41:13 card_captor Exp $
+# $Id: configure.in,v 1.119 2006/10/22 11:50:47 ballen4705 Exp $
 #
 dnl Process this file with autoconf to produce a configure script.
 AC_PREREQ(2.50)
@@ -7,7 +7,7 @@ AC_INIT(smartmontools, 5.37, smartmontools-support@lists.sourceforge.net)
 AC_CONFIG_SRCDIR(smartctl.cpp)
 
 smartmontools_configure_date=`date -u +"%Y/%m/%d %T %Z"`
-smartmontools_cvs_tag=`echo '$Id: configure.in,v 1.118 2006/08/12 05:41:13 card_captor Exp $'`
+smartmontools_cvs_tag=`echo '$Id: configure.in,v 1.119 2006/10/22 11:50:47 ballen4705 Exp $'`
 smartmontools_release_date=2006/04/12
 smartmontools_release_time="17:39:01 UTC"
 
@@ -127,6 +127,10 @@ AC_SUBST(smartmontools_release_time)
 
 dnl if OS not recognized, then use the os_generic modules
 case "${host}" in
+	x86_64-*-linux-gnu*) 
+		AC_DEFINE_UNQUOTED(LINUX_X86_64, 1, [this is an x86_64 Linux system])
+		AC_SUBST([os_deps], ['os_linux.o']) 
+		AC_SUBST([os_libs], ['']) ;;
 	*-*-linux-gnu*) 
 		AC_SUBST([os_deps], ['os_linux.o']) 
 		AC_SUBST([os_libs], ['']) ;;
diff --git a/sm5/int64.h b/sm5/int64.h
index 64aa28dc81aaf82541b0e546f16a9fc6d8ec2d9d..00ca3b57e7cf970b0537e94881108f3a5bd57758 100644
--- a/sm5/int64.h
+++ b/sm5/int64.h
@@ -20,7 +20,7 @@
 #ifndef INT64_H_
 #define INT64_H_
 
-#define INT64_H_CVSID "$Id: int64.h,v 1.13 2006/04/12 14:54:28 ballen4705 Exp $\n"
+#define INT64_H_CVSID "$Id: int64.h,v 1.14 2006/10/22 11:50:47 ballen4705 Exp $\n"
 
 // 64 bit integer typedefs
 
@@ -65,6 +65,16 @@ typedef unsigned long long uint64_t;
 #define PRIx64 "I64x"
 #endif // _WIN32 && _MSC_VER
 
+#ifdef LINUX_X86_64
+// For Linux x86_64
+#undef PRId64
+#undef PRIu64
+#undef PRIx64
+#define PRId64 "ld"
+#define PRIu64 "lu"
+#define PRIx64 "lx"
+#endif
+
 // If macros not defined in inttypes.h, fix here.  Default is GCC
 // style
 #ifndef PRId64