At the end of the 1970s and into the early 1990s, US 31 gained additional freeway segments on both ends of the highway. The first section of the St. Joseph Valley Parkway was completed in 1979 and ran from the Indiana state line north to US 12. The freeway was extended northward from Pentwater to the Oceana–Mason county line in 1980. Construction of the Niles Bypass was finished in 1987, bringing the parkway north to Walton Road northwest of Niles. Bus. US 31 was created along the former routing in Niles. The northern freeway was extended further into Mason County in two stages. In 1989, it was expanded to the south side of Ludington. The next year, Ludington was bypassed, completing the freeway to its current northern end at US 10 east of town. One more bypass, this time a non-freeway routing to the west of Scottville, opened in 1991. The Berrien Springs Bypass was completed in late 1992. Since then, MDOT built a freeway segment north from Berrien Springs to Napier Avenue that was opened on August 27, 2003, at a cost of $97 million (equivalent to $ in ). The last change to the routing of US 31 occurred in August 2004 when the route of Bus. US 31 in Holland was turned back to local control; BL I-196 was rerouted to follow US 31 around downtown instead of following the former business loop through it.