diff --git a/src/SFMT.c b/src/SFMT.c
index 7ae7f5e0853e94aec2dca73afd96372e2428f4c8..3191cc56ec8fcea94ee11d43655556b22ca48df1 100644
--- a/src/SFMT.c
+++ b/src/SFMT.c
@@ -376,7 +376,10 @@ int get_min_array_size64(void) {
  * init_gen_rand or init_by_array must be called before this function.
  * @return 32-bit pseudorandom number
  */
-inline uint32_t gen_rand32(void) {
+#ifndef __APPLE__
+inline
+#endif
+uint32_t gen_rand32(void) {
     uint32_t r;
 
     assert(initialized);
diff --git a/src/display_sdl.c b/src/display_sdl.c
index 97ec6f7d9970cd624baf3c8443b571b6f4d94075..e8d20f62d0dc1fb2d0192aff12ae4059716929c9 100644
--- a/src/display_sdl.c
+++ b/src/display_sdl.c
@@ -49,7 +49,10 @@ void display_put_string(SDL_Surface *surface, const char *s, int x, int y, int r
 	}
 }
 
-inline void sdlDrawImage(SDL_Surface *dest, SDL_Surface *image, int x, int y)
+#ifndef __APPLE__
+inline
+#endif
+void sdlDrawImage(SDL_Surface *dest, SDL_Surface *image, int x, int y)
 {
 	SDL_Rect r;
 	r.w=image->w;
diff --git a/src/display_sdl.h b/src/display_sdl.h
index 07271fe9ba8e6626a4cf0d7092d32541f7ed4c07..bad5f9ab60640384f9652531248e381f35419a13 100644
--- a/src/display_sdl.h
+++ b/src/display_sdl.h
@@ -39,7 +39,10 @@ extern "C" {
 extern SDL_Surface *screen;
 void display_put_char(SDL_Surface *surface, char c, int x, int y, int r, int g, int b);
 void display_put_string(SDL_Surface *surface, const char *s, int x, int y, int r, int g, int b);
-inline void sdlDrawImage(SDL_Surface *dest, SDL_Surface *image, int x, int y);
+#ifndef __APPLE__
+inline
+#endif
+void sdlDrawImage(SDL_Surface *dest, SDL_Surface *image, int x, int y);
 
 #ifdef __cplusplus
 } /* extern "C" */