TH_GENERIC_USE_HALF=1 by default, half enabled by default
diff --git a/THGeneral.h.in b/THGeneral.h.in
index 6873db6..d45e06f 100644
--- a/THGeneral.h.in
+++ b/THGeneral.h.in
@@ -47,7 +47,7 @@
 #endif
 
 #ifndef TH_GENERIC_USE_HALF
-# define TH_GENERIC_USE_HALF 0
+# define TH_GENERIC_USE_HALF 1
 #endif
 
 #ifndef TH_NATIVE_HALF
diff --git a/THHalf.h b/THHalf.h
index 930477d..0549d21 100644
--- a/THHalf.h
+++ b/THHalf.h
@@ -6,18 +6,18 @@
 
 /* Neither built-in nor included from Cutorch, use our definition lifted from CUDA */
 #if defined(__GNUC__)
-#define __align__(n) __attribute__((aligned(n)))
+#define __thalign__(n) __attribute__((aligned(n)))
 #elif defined(_WIN32)
-#define __align__(n) __declspec(align(n))
+#define __thalign__(n) __declspec(align(n))
 #else
-#define __align__(n)
+#define __thalign__(n)
 #endif
 
-typedef struct __align__(2){
+typedef struct __thalign__(2){
   unsigned short x;
 } __THHalf;
 
-typedef struct __align__(4) {
+typedef struct __thalign__(4) {
     unsigned int x;
 } __THHalf2;
 
@@ -36,4 +36,5 @@
 
 #define TH_HALF_MAX TH_HALF_BITS_TO_LITERAL(0x7BFF)
 
+#undef __thalign__
 #endif