Kris Kobach is not having a good year. In January, the Kansas secretary of state’s voter-fraud commission disbanded in an effort to duck multiple lawsuits. In March, his claims of widespread noncitizen voting were torn apart in open court, reducing his defining crusade to a punchline. And on Wednesday, U.S. District Judge Julie Robinson held Kobach in contempt of court, holding that he’d flouted an order requiring him to register voters who could not show proof of citizenship. Robinson’s 25-page decision doesn’t just conclude that Kobach broke the law. It also lays out, in painstaking detail, just how inept his lawbreaking was.

The saga that led to Wednesday’s contempt order began in May 2016, when Robinson issued a preliminary injunction blocking Kansas’ proof-of-citizenship law. That measure, which Kobach helped to pass, required Kansans to provide documentary proof of U.S. citizenship, like a passport or birth certificate, when registering to vote. The American Civil Liberties Union argued that this rule violates the National Voter Registration Act, and Robinson agreed. By the time she froze the law, more than 17,000 Kansans had tried to register to vote at the Department of Motor Vehicles without proof of citizenship. The state had put these voters on a “suspense list.” Robinson ordered Kobach to register these suspended voters and treat them the same way as other qualified registrants.

In September 2016, the ACLU presented evidence that Kansas had failed to add these 17,000 suspended voters to the official registration list. Instead, the state had compelled them to use provisional ballots and issued misleading notices implying they might not be registered to vote. The ACLU filed a motion for contempt, and Robinson directed Kobach to appear in person to explain why he should not be held in contempt of court. The day before that hearing, Kobach agreed to send a notice to these voters declaring that they “are deemed registered and qualified to vote.” Robinson ordered Kobach to follow through on this promise and to revise language on the secretary of state’s website and at the DMV suggesting that Kansans with no proof of citizenship could not vote.

Finally, Robinson made it clear to Kobach that her preliminary injunction required him to send voter registration “postcards” to the 17,000 Kansans in limbo. (Voters typically receive these postcards, which provide their information and polling place, several weeks after they register.) In November, the ACLU discovered that Kansas had not sent these postcards. Kobach’s lawyer Sue Becker told the ACLU’s attorneys that the postcards were unnecessary because the state sent “court ordered notices” instead. The ACLU also found that Kansas had not fixed its County Election Manual, which was publicly available on the secretary of state’s website. The manual, which Kansas election officials rely upon, still claimed that all new voters had to provide proof of citizenship. Becker informed the ACLU that the secretary of state refused to alter this inaccurate language. The ACLU filed another motion for contempt.

That’s where things went off the rails. During the federal trial over Kobach’s proof-of-citizenship law earlier this year, Robinson asked Bryan Caskey, Kansas’ director of elections, whether the state had sent standard postcards to the suspended voters confirming their registration. Caskey would not answer the question directly. Robinson also asked whether the information that Kansas sent to these voters was at least in “the same universe of information” that other voters received. Caskey replied that no, “it is not the same information.”

Yet just days later, at the contempt hearing, Caskey changed his story, claiming he’d refreshed his memory by checking his calendar. He now asserted that he had told county election officials to send the standard postcards to the suspended voters. Becker also backtracked at the contempt hearing. After telling the ACLU for months that the secretary of state was not obligated to send standard postcards to suspended voters, Kobach’s lawyer now claimed he had sent these postcards.

In the contempt order she issued this week, Robinson wrote, “the Court does not find Mr. Caskey’s testimony to be credible. It strains credulity to believe that Mr. Caskey, after months of denying that the Court’s orders required him to send standard postcards to covered registrants, remembered a few days before the show cause hearing that he had in fact orally instructed the counties to send them.” She criticized Caskey’s “eleventh hour recollection” as “inconsistent and evasive” and noted that “he offered no further proof to corroborate it.”

Robinson then turned to Kobach, the defendant in the case. “[T]he Court is troubled,” she wrote, “by [Kobach’s] failure to take responsibility for violating this Court’s orders, and for failing to ensure compliance.” Not only did Kobach fail to send the required postcards; he also refused to update the online election manual until weeks before the trial, making what the judge termed “nonsensical” objections. And rather than follow the court’s orders, Kobach “deflected blame for his failure to comply onto county officials, and onto his own staff, some of whom are not licensed attorneys.” Because it was Kobach’s duty to ensure compliance with the court orders, Robinson concluded, it is he who “should bear the burden of sanctions for the lengthy delay in compliance.”

Given the extent of Kobach’s misconduct, Robinson let him off lightly, ordering him to pay the attorneys’ fees the ACLU incurred in drafting and defending its contempt request. Notably, she also wrote that Kobach’s “history of noncompliance and disrespect for the Court’s decisions” may require more “specific, verifiable directives” when she issues her final ruling in the case, which is expected in the next few months.

Robinson’s decision lays bare Kobach’s piteous attempt to cover up his misconduct—how he threw his staff under the bus instead of taking responsibility for his own actions (and inaction). Before Wednesday’s ruling came down, Kobach declared that “Nothing makes my day like a fight with the ACLU.” That’s a strange way to talk about an organization that has repeatedly humiliated you in public. Then again, not much of what Kobach says makes any kind of sense.