In SDL Tridion 2009, you need to use the TOM (Interop) API to create new items, this differs from the TOM.NET API (since the TOM.NET API in 2009 was read-only). So you have to work from the `TDSE` like this: <!-- language: lang-cs --> using Tridion.ContentManager.Interop.TDS; using Tridion.ContentManager.Interop.TDSDefines; using ItemType = Tridion.ContentManager.Interop.TDSDefines.ItemType; { TDSE tdse = new TDSE(); tdse.Impersonate(@"domain\user"); tdse.Initialize(); Schema schema = (Schema)tdse.GetObject("tcm:1-3-8", EnumOpenMode.OpenModeView, Constants.URINULL, XMLReadFilter.XMLReadData); Component comp = (Component)tdse.GetNewObject(ItemType.ItemTypeComponent, "tcm:1-2-2", "tcm:0-1-1"); comp.Title = "new title"; comp.Schema = schema; // etc. follow the examples in the TOM API guide, don't mix this with the TOM.NET API comp.Save(true); if (comp.Info.IsCheckedOut) { comp.CheckIn(); } ReleaseCom(schema); ReleaseCom(comp); ReleaseCom(tdse); } private static void ReleaseCom(object instance) { if (instance != null) { try { Marshal.ReleaseComObject(instance); } catch { /* log potential memory leak */ } } } You really need to only look at the TOM API guide, and don't even include the TOM.NET DLLs as references in our project, since that will just confuse you.