diff --git a/include/libEMF/wine/winnt.h b/include/libEMF/wine/winnt.h
index 9b88e7a..3f12199 100644
--- a/include/libEMF/wine/winnt.h
+++ b/include/libEMF/wine/winnt.h
@@ -41,6 +41,10 @@
 # undef  WORDS_BIGENDIAN
 # undef  BITFIELDS_BIGENDIAN
 # undef  ALLOW_UNALIGNED_ACCESS
+#elif defined(__sw_64__)
+# undef  WORDS_BIGENDIAN
+# undef  BITFIELDS_BIGENDIAN
+# undef  ALLOW_UNALIGNED_ACCESS
 #elif defined(__arm__)
 # undef  WORDS_BIGENDIAN
 # undef  BITFIELDS_BIGENDIAN
@@ -270,7 +274,7 @@ typedef unsigned short  WORD,       *PWORD,    *LPWORD;
 typedef int             INT,        *PINT,     *LPINT;
 typedef unsigned int    UINT,       *PUINT,    *LPUINT;
 /* Not sure this is correct. Probably should depend on the compiler, too. */
-#if defined( __LP64__) || defined(__alpha__)
+#if defined( __LP64__) || defined(__alpha__) || defined(__sw_64__)
 typedef unsigned int   DWORD,      *PDWORD,   *LPDWORD;
 typedef unsigned int   ULONG,      *PULONG,   *LPULONG;
 #else
@@ -316,7 +320,7 @@ typedef VOID           *PVOID,      *LPVOID;
 typedef BYTE            BOOLEAN,    *PBOOLEAN;
 typedef char            CHAR,       *PCHAR;
 typedef short           SHORT,      *PSHORT;
-#if defined(__LP64__) || defined(__alpha__)
+#if defined(__LP64__) || defined(__alpha__) || defined(__sw_64__)
 typedef int             LONG,       *PLONG,    *LPLONG;
 #else
 typedef long            LONG,       *PLONG,    *LPLONG;
@@ -929,7 +933,7 @@ PVOID WINAPI             RtlVirtualUnwind(ULONG,ULONG64,ULONG64,RUNTIME_FUNCTION
 #endif /* __x86_64__ */
 
 /* Alpha context definitions */
-#if defined(__alpha__)
+#if defined(__alpha__) || defined(__sw_64__)
 
 #define CONTEXT_ALPHA   0x00020000
  
