Its headwaters are near Sweet Spring Mountiain in the Cascade Range. After emerging from the Cascades, it becomes a slow meandering stream, passing through a region of fertile agricultural lands in the lower Willamette Valley, past the towns of Scotts Mills and Aurora. For most of its course, it defines part of the boundary between Marion and Clackamas Counties.
It is approximately 62 miles long and drains an area of approximately 531 square miles. Its tributaries include the Little Pudding River.
External sites