diff --git a/src/libvlc.h b/src/libvlc.h
index 15abf67749dac78080e51bb304b5eef068862e4e..1e8f74f45ccdc4570aab0c60fb6271f609a54d9c 100644
--- a/src/libvlc.h
+++ b/src/libvlc.h
@@ -169,7 +169,7 @@ struct vlc_object_internals_t
 
 static inline vlc_object_internals_t *vlc_internals( vlc_object_t *obj )
 {
-    return obj->p_internals;
+    return ((vlc_object_internals_t *)obj) - 1;
 }
 
 extern module_config_t libvlc_config[];