Though some progressives may be tempted to skip the celebrations, Democrat Conor Lamb’s victory over Republican Rick Saccone in the special election for the 18th Congressional District in Pennsylvania is worth saluting. This was a district Donald Trump won by nearly 20 points in 2016—a district so deeply red that Democrats didn’t even bother to put up a candidate against incumbent Tim Murphy in the past two election cycles. But the anti-abortion Republican had to resign in October after he was caught urging his lover to have an abortion, creating an open special election.

In nominating Saccone to replace him, the GOP picked a candidate who not only boasted “I was Trump before Trump was Trump” but actually worked as an interrogator at the notorious Abu Ghraib prison. Saccone has written numerous articles defending waterboarding and other “enhanced interrogation” techniques. In keeping him out of Congress, Lamb has done the country a service.

Saccone’s defeat should also make both the White House and the national GOP extremely nervous. Trump went all-in for Saccone, making a personal visit to Moon Township, repeatedly tweeting support, and even timing his announcement of tariffs on steel in a way designed to help the Republican candidate. And while Lamb raised more money than his opponent—taking in $3.3 million in the last filing period, compared to just $ 700,000 for Saccone—that advantage was dwarfed by the right-wing PAC money. The National Republican Campaign Committee and Paul Ryan’s Congressional Leadership Fund each poured about $ 3.5 million into the race, with $1.3 million from the Republican National Committee and another $ 1.6 million from two Trump-aligned PACs. Lamb, meanwhile, received just over $300,000 from the Democratic Congressional Campaign Committee (though McClatchy reported a “stealth effort” that may have pushed the total above $1 million).

But while Lamb, a 33-year-old former federal prosecutor who served as a captain in the Marine Corps, has impeccable Democratic credentials—his grandfather, Thomas Lamb, was the majority leader of the Pennsylvania Senate; his uncle Michael is the current Pittsburgh comptroller—he never pretended to run as anything other than a centrist. In favor of coal and fracking, not in favor of single-payer health care, Lamb said he thought a $15 minimum wage “sounds high based on what I’ve been told by many small business owners in our area.” On abortion Lamb, a devout Catholic, said that while he personally believes “life begins at conception. I’ve always believed that and I believe it in all cases,” he also “would not outlaw a woman’s right to choose.”

That was good enough for the United Steelworkers and the United Brotherhood of Carpenters, who both held rallies for Lamb. It was more than good enough for the United Mine Workers, whose president Cecil Roberts described Lamb as “a God-fearing, union-supporting, gun-owning, job-protecting, pension-defending, Social Security-believing, health care-greeting and sending-drug-dealers-to-jail Democrat!” Facing an opponent who supports “right-to-work” laws, opposes the Davis-Bacon Act guaranteeing that workers on federal contracts be paid the prevailing wage, and didn’t even bother to fill out the state AFL-CIO’s candidate questionnaire, Lamb’s positions made labor’s endorsement a no-brainer.

But should it be good enough for progressives? Unless you’re a “the worse, the better” Leninist, the question of where to draw the line is always going to be complicated. For some progressives, some issues—abortion rights, fracking, labor rights, access to health care or education—are always going to be non-negotiable. But outside of the coastal bubbles, most candidates try to reach some accommodation with views in their district—which, in Lamb’s case, meant support for fracking and opposition to new laws restricting gun ownership.

But it’s also worth noting what Lamb didn’t do—and what wasn’t done to him. Unlike Jon Ossoff, Lamb didn’t go out of his way to alienate progressives—or to cast his campaign as proof that the road to power always goes through the center. He did say he wouldn’t support Nancy Pelosi for leader in the House—neutralizing a GOP ad blitz painting him as Pelosi’s poodle. He talked about wanting to work “across the aisle”—often code for selling out. He didn’t run as a champion of “the Resistance”—which probably offended some people. But Lamb’s departures from progressive dogma were all done in line with his district—and never pitched as the way forward for the party as a whole. Lamb ran a local campaign, on local issues.

He also welcomed the endorsement of Braddock Mayor John Fetterman, a Bernie Sanders backer who’s running for lieutenant governor. Further evidence of Lamb’s ability to “play well with others” comes from Cambridge, Massachusetts, where last month Justice Democrats and CAST, a local Indivisible chapter, held a joint phone bank for Lamb and Alexandria Ocasio-Cortez, who’s running for Congress against corporate Democrat Joe Crowley in New York’s 14th district.

Despite his ambivalence on abortion, Lamb also avoided the fate of Heath Mello, whose campaign for mayor of Omaha became collateral damage after he was attacked by both NARAL and the Democratic National Committee. Lamb may not be the most progressive Democrat in Congress. Or, given that, thanks to redistricting, he’ll probably face GOP incumbent Keith Rothfus in November, the most secure. But in a region where unions have been taking it on the chin for decades, his victory is a solid win for labor. Should Lamb cross progressives on other issues, they can always run against him in the primary.

Lamb’s victory suggests it may again be possible for both wings of the Democratic Party to work together. Unlike Laura Moser, whose support for Sanders got her monstered by the DCCC, Lamb was not attacked by embittered Clintonites—or by the Fight for $15 crowd or the Single-Payer-or-Bust brigade. As Bernie Sanders showed in his endorsement of Hillary Clinton, the left has a long history of working for candidates who don’t agree with us on every issue. So far, though, the traffic has been mostly one way. And Conor Lamb’s upset victory, sweet as it is, has done nothing to change that.