So you set the title after making sure your Component is checked out, but you tried to sync back the changes of the content before ensuring it is checked out: <!-- language: lang-cs --> ... // sync content back to Component newComp.Content = content.ToXml(); ... // sync metadata back to Component newComp.Metadata = embeddedFields.ToXml(); ... if (!newComp.IsCheckedOut) { newComp.CheckOut(); } newComp.Title = "TEST-" + DateTime.Now; newComp.Save(true); Now if you would first check if your Component needs to be checked out before syncing back its content, then I think you will get a better result on your save. Because I expect that when you call `newComp.CheckOut();` all your previous actions on `newComp` will be reset. So change it into something like this: <!-- language: lang-cs --> ... if (!newComp.IsCheckedOut) { newComp.CheckOut(); } newComp.Title = "TEST-" + DateTime.Now; newComp.Content = content.ToXml(); newComp.Metadata = embeddedFields.ToXml(); newComp.Save(true);