diff --git a/include/objbase.h b/include/objbase.h
index 12ed88d..f0588b9 100644
--- a/include/objbase.h
+++ b/include/objbase.h
@@ -75,15 +75,13 @@
  *
  *    #define INTERFACE IDirect3D
  *    #define IDirect3D_METHODS \
+ *        IUnknown_METHODS \
  *        STDMETHOD(Initialize)(THIS_ REFIID) PURE; \
  *        STDMETHOD(EnumDevices)(THIS_ LPD3DENUMDEVICESCALLBACK, LPVOID) PURE; \
  *        STDMETHOD(CreateLight)(THIS_ LPDIRECT3DLIGHT*, IUnknown*) PURE; \
  *        STDMETHOD(CreateMaterial)(THIS_ LPDIRECT3DMATERIAL*, IUnknown*) PURE; \
  *        STDMETHOD(CreateViewport)(THIS_ LPDIRECT3DVIEWPORT*, IUnknown*) PURE; \
  *        STDMETHOD(FindDevice)(THIS_ LPD3DFINDDEVICESEARCH, LPD3DFINDDEVICERESULT) PURE;
- *    #define IDirect3D_IMETHODS \
- *        IUnknown_IMETHODS \
- *        IDirect3D_METHODS
  *    ICOM_DEFINE(IDirect3D,IUnknown)
  *    #undef INTERFACE
  *
@@ -107,16 +105,12 @@
  *    name everywhere. Note however that because of the way macros work, a macro like STDMETHOD
  *    cannot use 'INTERFACE##_VTABLE' because this would give 'INTERFACE_VTABLE' and not
  *    'IDirect3D_VTABLE'.
- *  - ICOM_METHODS defines the methods specific to this interface. It is then aggregated with the
- *    inherited methods to form ICOM_IMETHODS.
- *  - ICOM_IMETHODS defines the list of methods that are inheritable from this interface. It must
+ *  - ICOM_METHODS defines the list of methods that are inheritable from this interface. It must
  *    be written manually (rather than using a macro to generate the equivalent code) to avoid
- *    macro recursion (which compilers don't like).
+ *    macro recursion (which compilers don't like). It must start with the METHODS definition
+ *    of the parent interface so that method inheritance works properly.
  *  - The ICOM_DEFINE finally declares all the structures necessary for the interface. We have to
  *    explicitly use the interface name for macro expansion reasons again.
- *    Inherited methods are inherited in C by using the IDirect3D_METHODS macro and the parent's
- *    Xxx_IMETHODS macro. In C++ we need only use the IDirect3D_METHODS since method inheritance
- *    is taken care of by the language.
  *  - The 'undef INTERFACE' is here to remind you that using INTERFACE in the following macros
  *    will not work.
  *  - Finally the set of 'IDirect3D_Xxx' macros is a standard set of macros defined to ease access
@@ -166,7 +160,7 @@
  *    the user needs to know to use the interface. Of course the structure we will define to
  *    implement this interface will have more fields but the first one will match this pointer.
  *  - The code generated by ICOM_DEFINE defines both the structure representing the interface and
- *    the structure for the jump table. ICOM_DEFINE uses the parent's Xxx_IMETHODS macro to
+ *    the structure for the jump table. ICOM_DEFINE uses the parent's Xxx_METHODS macro to
  *    automatically repeat the prototypes of all the inherited methods and then uses IDirect3D_METHODS
  *    to define the IDirect3D methods.
  *  - Each method is declared as a pointer to function field in the jump table. The implementation
@@ -258,13 +252,6 @@
 #define BEGIN_INTERFACE
 #define END_INTERFACE
 
-/* Wine-specific macros */
-
-#define ICOM_DEFINE(iface,ibase) \
-    DECLARE_INTERFACE_(iface,ibase) { \
-        iface##_METHODS \
-    } ICOM_COM_INTERFACE_ATTRIBUTE;
-
 #else  /* __cplusplus && !CINTERFACE */
 
 /* C interface */
@@ -302,14 +289,12 @@
 #define BEGIN_INTERFACE
 #define END_INTERFACE
 
+#endif  /* __cplusplus && !CINTERFACE */
+
 /* Wine-specific macros */
 
 #define ICOM_DEFINE(iface,ibase) \
-    DECLARE_INTERFACE_(iface,ibase) { \
-        ICOM_MSVTABLE_COMPAT_FIELDS \
-        ibase##_IMETHODS \
-        iface##_METHODS \
-    };
+    DECLARE_INTERFACE_(iface,ibase) { iface##_METHODS } ICOM_COM_INTERFACE_ATTRIBUTE;
 
 #define ICOM_VTABLE(iface)       iface##Vtbl
 #define ICOM_VFIELD(iface)       ICOM_VTABLE(iface)* lpVtbl
@@ -320,8 +305,6 @@
 #define ICOM_THIS_MULTI(impl,field,iface)  impl* const This=(impl*)((char*)(iface) - offsetof(impl,field))
 #define ICOM_CTHIS_MULTI(impl,field,iface) const impl* const This=(const impl*)((char*)(iface) - offsetof(impl,field))
 
-#endif  /* __cplusplus && !CINTERFACE */
-
 #include "objidl.h"
 
 #ifndef RC_INVOKED
