diff --git a/include/SDL_endian.h b/include/SDL_endian.h
index 726ef1dbd01ac0333faba493bb01d3de8c1d1832..c8f13e929eb0defd521a14768b9313af78127280 100644
--- a/include/SDL_endian.h
+++ b/include/SDL_endian.h
@@ -103,7 +103,7 @@ SDL_Swap16(Uint16 x)
 static __inline__ Uint16
 SDL_Swap16(Uint16 x)
 {
-    return ((x << 8) | (x >> 8));
+    return (Uint16)((x << 8) | (x >> 8));
 }
 #endif
 
@@ -143,8 +143,8 @@ SDL_Swap32(Uint32 x)
 static __inline__ Uint32
 SDL_Swap32(Uint32 x)
 {
-    return ((x << 24) | ((x << 8) & 0x00FF0000) | ((x >> 8) & 0x0000FF00) |
-            (x >> 24));
+    return (Uint32)((x << 24) | ((x << 8) & 0x00FF0000) |
+                    ((x >> 8) & 0x0000FF00) | (x >> 24));
 }
 #endif