In developing an object-oriented process simulator, we found that tearing algorithms that do not use a cycle matrix might give inconsistent results depending on how ties are resolved. Two recently published flowsheet tearing algorithms (Gundersen and Li) have been studied in detail and a new tearing algorithm has been proposed. These algorithms define an optimal tear set as one that has the minimum tear set weight. Our studies show that Gundersen's ''close-to-optimal'' tearing algorithm may produce tear sets far from optimum depending on how a tie is resolved in the tearing process. We observe that Li's algorithm fails to produce optimum tear sets for a number of classical flowsheets. We modified Li's algorithm to significantly improve its performance. Based on this modified algorithm we propose a new tearing algorithm that gives an optimum tear set for all the 13 flowsheets studied.