This tool will check all polylines (or a subset defined by an existing selection) for self intersections and fix the polyline by removing the self intersection. 

The user can optionally request an error log file to be created listing the polylines that were amended.

The tool interface is shown below.

Remove self intersection tool

WarningThis tool will alter the geometry of polylines found to be self-intersecting in the original dataset, consider working from a backed up copy!

The tool functions by starting at the FROM end of the polyline and systematically removes a vertex, tests for self-intersection and repeats until the polyline is simple (not self-intersecting). The index position of the vertex that caused the polyline to become simple was recorded. The code then goes back to the original polyline and removes that vertex and repeats the whole process until the polyline is simple. It needs to repeat the whole process in case a polyline has multiple self-intersections.

The output of this tool is an amended version of your river network with self intersections removed. There is no undo for this tool!

You may not want to run this tool if you prefer to remove the vertex and reshape the polyline manually? If this is the case then simply run the self intersecting polylines quality control tool to generate a log file of self-intersecting polyline ID's which you use to visit the polyline.