Hillary Clinton has been dominating Bernie Sanders among black voters in the Democratic primary, but it has not been a good couple of weeks for her campaign on the topic of race relations.

First, Bill Clinton got into it with a group of Black Lives Matter protesters last week, passionately defending the 1994 crime bill that was enacted during his presidency, along with Hillary’s 20-year-old use of the term “super-predators” to describe inner-city kids who got caught up in crime. Clinton’s finger-wagging drew criticism from prominent African Americans—the Reverend Al Sharpton called his lecturing “inappropriate”—and the former president all but apologized the following day. Then, over the weekend, Hillary Clinton was called out for participating in a skit with New York Mayor Bill de Blasio that included an awkward and racially charged joke referencing “CP time”—an old negative stereotype about blacks. (Clinton deferred to City Hall on the flap, telling Cosmopolitan that it was “de Blasio’s skit.”)

So when Clinton appeared before Sharpton’s National Action Network, there was a bit more drama surrounding her speech than there otherwise might have been. Would she take the opportunity to revisit the crime bill or again voice regret—as she did in February—for the use in 1996 of the term “super-predator”? Would she mention the ill-received joke with de Blasio?

The answer, on both accounts, was nope.

Clinton delivered the kind of speech that has become her hallmark: substantive and detailed, if not exactly stirring, and one that hit political and policy notes as if she were checking them off a list. She heaped plenty of praise on President Obama but made no mention of either her husband or de Blasio.

While praising the legacy of Obama and Jackie Robinson, who made his barrier-breaking debut for the Brooklyn Dodgers 69 years ago this week, Clinton called out the racial divisions that have persisted during the last few years and the charged rhetoric of the Republican primary race. “America’s long struggle with racism is far from finished,” she said. “Ugly currents that lurked just below the surface of our politics have burst into the open, and everyone sees this bigotry for what it is. And it is up to all of us to repudiate it.”

Clinton made only indirect references to Senator Bernie Sanders, who is addressing the conference in Manhattan on Thursday. But when she talked about the yawning gap in median incomes, death rates, and incarceration rates between blacks and whites, she clearly took sides in a recurring debate on the left over how to address racial inequities in the context of income inequality. “These are not just the problems of economic inequality. They are also the problems of racial inequality,” Clinton said.

Without delving deeply into the root causes of mass incarceration, the former New York senator noted that she devoted the first major policy address of her campaign to proposals for criminal-justice reform. But she said that sentencing and prison reform was “just the beginning of our work.” “Years of underinvestment and neglect,” Clinton said, “have hollowed out many predominately African American communities.”

To that end, she pledged to spend $125 billion as part of a “breaking every barrier” agenda, including $25 billion for programs to help young people and ex-prisoners find jobs. She decried the response to the lead poisoning in Flint, Michigan, which she said “would never have happened in a wealthy suburb of Detroit.” Clinton said she would set a national goal of eliminating lead as a major public-health threat within five years.

Introducing Clinton, Sharpton noted their long alliance but reminded the crowd that he had not endorsed any candidate yet. Instead, he said he wanted to hear specifics, “not a sound bite,” from the candidates. “Black America must be taken seriously,” he said. “We must be taken seriously, because no one can win unless we vote seriously in November.”

In that respect, Clinton gave Sharpton exactly what he wanted. Acknowledging during the middle of her remarks that she was getting pretty wonky, Clinton appeared to ad-lib: “The Reverend asked me to be substantive. Well, I’m giving it to ya. Because, you know what? When somebody asks for your vote, they should tell you what they’re going to do, not what they hope to do.”

When she was finished, Sharpton signaled his approval. Clinton had concluded with a call to action and a reference to the Bible. “Let us not grow weary in doing good, for in due season we shall reap if we do not lose heart,” she said.

These are words to live by and I believe these are words to govern by.  Think of the future we can build if we work together and don’t grow weary doing good. The men on both sides of me have not grown weary. This organization has not grown weary. It is our obligation and our challenge not to grow weary either until every American has the dignity, the justice, and the opportunity they deserve.

As the crowd cheered and Sharpton reclaimed the podium, he said: “Thank you, Reverend Hillary Clinton.” If Clinton missed any notes that Sharpton wanted her to hit, he was certainly hiding it well.