diff --git a/modules/access/screen/mac.c b/modules/access/screen/mac.c
index 355ea8af999ff20b1792053f19ad1cfd582d20b1..b42cd939b5428945ec3320c04738f5a5c8da62f2 100644
--- a/modules/access/screen/mac.c
+++ b/modules/access/screen/mac.c
@@ -73,11 +73,16 @@ int screen_InitCapture(demux_t *p_demux)
     demux_sys_t *p_sys = p_demux->p_sys;
     screen_data_t *p_data;
     CGLError returnedError;
+    unsigned int i_display_id;
+    unsigned int i_screen_index;
 
     p_sys->p_data = p_data = calloc(1, sizeof(screen_data_t));
     if (!p_data)
         return VLC_ENOMEM;
 
+    i_display_id = var_CreateGetInteger( p_demux, "screen-display-id" );
+    i_screen_index = var_CreateGetInteger( p_demux, "screen-index" );
+
     /* fetch the screen we should capture */
     p_data->display_id = kCGDirectMainDisplay;
     p_data->rate = var_InheritFloat(p_demux, "screen-fps");
@@ -89,15 +94,15 @@ int screen_InitCapture(demux_t *p_demux)
         ids = vlc_alloc(displayCount, sizeof(CGDirectDisplayID));
         returnedError = CGGetOnlineDisplayList(displayCount, ids, &displayCount);
         if (!returnedError) {
-            if (p_sys->i_display_id > 0) {
+            if (i_display_id > 0) {
                 for (unsigned int i = 0; i < displayCount; i++) {
-                    if (p_sys->i_display_id == ids[i]) {
+                    if (i_display_id == ids[i]) {
                         p_data->display_id = ids[i];
                         break;
                     }
                 }
-            } else if (p_sys->i_screen_index > 0 && p_sys->i_screen_index <= displayCount)
-                p_data->display_id = ids[p_sys->i_screen_index - 1];
+            } else if (i_screen_index > 0 && i_screen_index <= displayCount)
+                p_data->display_id = ids[i_screen_index - 1];
         }
         free(ids);
     }
diff --git a/modules/access/screen/screen.c b/modules/access/screen/screen.c
index 4141a7807d9c7dcd10cd8cd024df60dcf9010bf2..3e2ea3cf0d89005de45ce1bb7529683c5bf1a8cb 100644
--- a/modules/access/screen/screen.c
+++ b/modules/access/screen/screen.c
@@ -78,7 +78,7 @@
     "capture." )
 #endif
 
-#ifdef SCREEN_DISPLAY_ID
+#ifdef __APPLE__
 #define DISPLAY_ID_TEXT N_( "Display ID" )
 #define DISPLAY_ID_LONGTEXT N_( \
     "Display ID. If not specified, main display ID is used." )
@@ -121,7 +121,7 @@ vlc_module_begin ()
     add_integer( "screen-fragment-size", 0, FRAGS_TEXT, FRAGS_LONGTEXT )
 #endif
 
-#ifdef SCREEN_DISPLAY_ID
+#ifdef __APPLE__
     add_integer( "screen-display-id", 0, DISPLAY_ID_TEXT, DISPLAY_ID_LONGTEXT )
     add_integer( "screen-index", 0, INDEX_TEXT, INDEX_LONGTEXT )
 #endif
@@ -166,11 +166,6 @@ static int Open( vlc_object_t *p_this )
     p_sys->i_height = var_CreateGetInteger( p_demux, "screen-height" );
 #endif
 
-#ifdef SCREEN_DISPLAY_ID
-    p_sys->i_display_id = var_CreateGetInteger( p_demux, "screen-display-id" );
-    p_sys->i_screen_index = var_CreateGetInteger( p_demux, "screen-index" );
-#endif
-
     if( screen_InitCapture( p_demux ) != VLC_SUCCESS )
     {
         free( p_sys );
diff --git a/modules/access/screen/screen.h b/modules/access/screen/screen.h
index 9d050110319347b8d0b2c22efb3343100e4b7eaa..8fe777062d19de344efc3c2345f19fe74080d9e0 100644
--- a/modules/access/screen/screen.h
+++ b/modules/access/screen/screen.h
@@ -25,10 +25,6 @@
 #include <vlc_access.h>
 #include <vlc_demux.h>
 
-#ifdef __APPLE__
-#   define SCREEN_DISPLAY_ID
-#endif
-
 #define SCREEN_SUBSCREEN
 #define SCREEN_MOUSE
 
@@ -71,11 +67,6 @@ typedef struct
     picture_t dst;
 #endif
 
-#ifdef SCREEN_DISPLAY_ID
-  unsigned int i_display_id;
-  unsigned int i_screen_index;
-#endif
-
     screen_data_t *p_data;
     const struct screen_capture_operations *ops;
 } demux_sys_t;