You could do something like this if you are an API/product provider:
public enum OldEnum { One, Two, Three } public enum NewPart1 { One, Two } public enum NewPart2 { Three } [Obsolete("This method is intended to by used be previous versions")] public OldEnum GetEnum(someparameters here) { // Some processing here return OldEnum.One; } public NewPart1 GetEnum(someparameters here) { // Do something here return NewPart1.One; } public NewPart2 GetEnum(someparameters here) { // Do something here return NewPart2.Three; } If your enumerations are split of old enumeration, you do not really need to make change to code. In the end, we are dealing with integers. Please note, split enumerations still retain same integer values as earlier. You can then just cast the integer value and send it across.