//workaround to http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3161935&SiteID=1 private static void RemovePath(IDTSPathXX path, IDTSPathCollectionXX paths, bool AllowDeleteStartPoint) { if (!AllowDeleteStartPoint && path.StartPoint.DeleteOutputOnPathDetached) { System.Diagnostics.Debug.WriteLine("path going to delete output after detached!"); path.StartPoint.DeleteOutputOnPathDetached = false; } bool bSuccess = false; try { paths.RemoveObjectByID(path.ID); bSuccess = true; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine("Caught error during RemovePath: " + ex.Message); if (!ContainsID(paths, path.ID)) bSuccess = true; } if (!bSuccess) throw new Exception("Could not remove path"); }