The removeNode: is low level method. If you remove one offcurve node, you need to make sure to remove the other one as well and to change the node type of the following oncurve node to LINE. Or you can use the method: removeNodeCheck:(GSNode *)Node that does all that for you.