diff --git a/dlls/rpcrt4/cpsf.c b/dlls/rpcrt4/cpsf.c
index fe551857472..ac1eccf56fa 100644
--- a/dlls/rpcrt4/cpsf.c
+++ b/dlls/rpcrt4/cpsf.c
@@ -167,8 +167,9 @@ static void init_psfactory( CStdPSFactoryBuffer *psfac, const ProxyFileInfo **fi
 
             if (file_list[i]->pDelegatedIIDs && file_list[i]->pDelegatedIIDs[j])
             {
-                fill_delegated_proxy_table( (IUnknownVtbl *)proxies[j]->Vtbl,
-                                            stubs[j]->header.DispatchTableCount );
+                void **vtbl = proxies[j]->Vtbl;
+                if (file_list[i]->TableVersion > 1) vtbl++;
+                fill_delegated_proxy_table( (IUnknownVtbl *)vtbl, stubs[j]->header.DispatchTableCount );
                 pSrcRpcStubVtbl = (void * const *)&CStdStubBuffer_Delegating_Vtbl;
             }