diff --git a/include/FLAC/ordinals.h b/include/FLAC/ordinals.h
index 8018afe..ebdc812 100644
--- a/include/FLAC/ordinals.h
+++ b/include/FLAC/ordinals.h
@@ -39,15 +39,14 @@
  * the 1999 ISO C Standard header file <stdint.h>.
  */
 
-typedef __int8 FLAC__int8;
-typedef uint32_t __int8 FLAC__uint8;
-
-typedef __int16 FLAC__int16;
-typedef __int32 FLAC__int32;
-typedef __int64 FLAC__int64;
-typedef uint32_t __int16 FLAC__uint16;
-typedef uint32_t __int32 FLAC__uint32;
-typedef uint32_t __int64 FLAC__uint64;
+typedef signed __int8  int8_t;
+typedef signed __int16 int16_t;
+typedef signed __int32 int32_t;
+typedef signed __int64 int64_t;
+typedef unsigned __int8 uint8_t;
+typedef unsigned __int16 uint16_t;
+typedef unsigned __int32 uint32_t;
+typedef unsigned __int64 uint64_t;
 
 #else
 
@@ -55,6 +54,8 @@ typedef uint32_t __int64 FLAC__uint64;
 
 #include <stdint.h>
 
+#endif
+
 typedef int8_t FLAC__int8;
 typedef uint8_t FLAC__uint8;
 
@@ -65,7 +66,6 @@ typedef uint16_t FLAC__uint16;
 typedef uint32_t FLAC__uint32;
 typedef uint64_t FLAC__uint64;
 
-#endif
 
 typedef int FLAC__bool;
 
diff --git a/include/share/compat.h b/include/share/compat.h
index 2083f3a..0db6dde 100644
--- a/include/share/compat.h
+++ b/include/share/compat.h
@@ -130,14 +130,7 @@
 #    ifndef UINT32_MAX
 #      define UINT32_MAX _UI32_MAX
 #    endif
-     typedef unsigned __int64 uint64_t;
-     typedef unsigned __int32 uint32_t;
-     typedef unsigned __int16 uint16_t;
-     typedef unsigned __int8 uint8_t;
-     typedef __int64 int64_t;
-     typedef __int32 int32_t;
-     typedef __int16 int16_t;
-     typedef __int8  int8_t;
+#    include "FLAC/ordinals.h"
 #    define PRIu64 "I64u"
 #    define PRId64 "I64d"
 #    define PRIx64 "I64x"
