diff --git a/libFDK/include/common_fix.h b/libFDK/include/common_fix.h
index 79c87ac..d2d11f4 100644
--- a/libFDK/include/common_fix.h
+++ b/libFDK/include/common_fix.h
@@ -226,7 +226,7 @@
                 { return fixabs_S(x); }
 
 /* workaround for TI C6x compiler but not for TI ARM9E compiler */
-#if (!defined(__TI_COMPILER_VERSION__) || defined(__TI_TMS470_V5__)) && !defined(__x86_64__)
+#if (!defined(__TI_COMPILER_VERSION__) || defined(__TI_TMS470_V5__)) && !defined(__LP64__)
 FDK_INLINE INT  fAbs(INT x)
                 { return fixabs_I(x); }
 #endif
@@ -336,7 +336,7 @@
                 { return fixmax_S(a,b); }
 
 /* workaround for TI C6x compiler but not for TI ARM9E */
-#if ((!defined(__TI_COMPILER_VERSION__) || defined(__TI_TMS470_V5__)) && !defined(__x86_64__)) || (FIX_FRACT == 1)
+#if ((!defined(__TI_COMPILER_VERSION__) || defined(__TI_TMS470_V5__)) && !defined(__LP64__)) || (FIX_FRACT == 1)
 FDK_INLINE INT fMax(INT a, INT b)
                 { return fixmax_I(a,b); }
 FDK_INLINE INT fMin(INT a, INT b)
diff --git a/libSYS/include/machine_type.h b/libSYS/include/machine_type.h
index 4745e43..b328953 100644
--- a/libSYS/include/machine_type.h
+++ b/libSYS/include/machine_type.h
@@ -154,15 +154,15 @@
 
   typedef signed int INT;
   typedef unsigned int UINT;
-#ifdef __x86_64__
+#ifdef __LP64__
   /* force FDK long-datatypes to 4 byte  */
   /* jdr: Use defines to avoid type alias problems on 64 bit machines. */
   #define LONG INT
   #define ULONG UINT
-#else /* __x86_64__ */
+#else /* __LP64__ */
   typedef signed long LONG;
   typedef unsigned long ULONG;
-#endif	/* __x86_64__ */
+#endif	/* __LP64__ */
   typedef signed short SHORT;
   typedef unsigned short USHORT;
   typedef signed char SCHAR;
