Donors were in a tizzy; even Trump’s allies allowed that he needed to dial it back. Senate Majority Leader Mitch McConnell publicly urged Trump to “get on script” and “start acting like a serious presidential candidate.” It was a potential make-or-break moment for Trump’s roller-coaster campaign, one that would prove he could act like a politician—or show that he couldn’t.

And so, on script Trump was trying to get. But over the course of three events in two days, his resolve would gradually weaken, until he was back to his old tricks. And as the worst mass shooting in the nation’s history unfolded on Sunday, Trump was busy tweeting that he ought to be congratulated for “being right on radical Islamic terrorism.” On Monday, he was scheduled to give a major speech about the issue.

Before the rally in Richmond on Friday, Trump was trying to play it safe. He had read a brief speech off a telepromter at a Washington conference of evangelical Christians, the Faith and Freedom Coalition. On Tuesday night, celebrating the end of the primaries, he had also used a prompter, eyes darting back and forth between the transparent screens as he enunciated each canned, lifeless word. The speeches were boring, and Trump—the consummate entertainer, skilled at taking the pulse of a crowd—looked miserable giving them.

Here in Richmond, there was no prompter, but Trump, working from a few pages of handwritten notes, was relatively subdued. He aimed his attacks at Democrats, not Republicans, save for a stray, irresistible jab at Jeb Bush. He highlighted a damning new report about Hillary Clinton rather than dredging up scandals from the 1990s. He didn’t bring up Judge Gonzalo Curiel; he insisted he was “the least racist person.” He even complimented the media, however sarcastically. (“The press—aren’t they wonderful?”) He talked about the kinds of things Republicans would like him to talk about, like cutting taxes and appointing conservatives to the Supreme Court. He announced he was unveiling an addendum to his famous slogan: “Make America great again—for everyone!”

Reined-in Trump was like a caged lion, a thoroughbred straining at the halter, a bird beating its wings against the bars of its cage. There was something else odd about the rally: Though it was held in a venue that could fit 12,000, only about 2,000 people had showed up. To explain this, Trump kept emphasizing that the event had been thrown together on just a day’s notice, though in fact it had been in the newspaper three days ahead of time.

Later in the speech, Trump was tempted to rail against the Republican establishment, but again, he checked himself. He was bemoaning the influence of Washington lobbyists, many of whom he’d just glad-handed at a golf fundraiser up the road. The lobbyists controlled Hillary Clinton, as well as—Trump caught himself. “I don’t want to use the names of these other people, because I’m supposed to be getting along with them now,” he said. “We’re all Republicans. So I won’t use them.” It was left to the crowd to imagine what Trump would have liked to say.