The Saddlers began 2017 in disappointing fashion after losing at home to high-flying Rochdale.
Ian Henderson tapped in Joe Rafferty’s cross-shot to put Dale in front on 23 minutes, and Joseph Thompson made sure of the win when he slotted home with 16 minutes remaining.
The result leaves us 14th in League One, with 31 points from 25 games.
Looking for revenge after the 4-0 defeat at Spotland in November, Walsall made a purposeful start with Joe Edwards volleying over and Kieron Morris testing Conrad Logan with a firm near-post drive.
The Saddlers were in the ascendancy and had a big chance to go in front on 14 minutes.
Simeon Jackson chased Neil Etheridge’s long throw and fed Flo Cuvelier, who squared for Amadou Bakayoko, unmarked, but the striker blazed badly over.
And the hosts were made to pay for that miss as Rochdale took the lead against the run of play on 23 minutes, Henderson turning home Joe Rafferty’s fierce cross-shot from close range.
Buoyed, Keith Hill’s promotion-chasers pushed for a second; Oliver Rathbone’s deflected volley flew just wide and goalscorer Henderson blazed wastefully over from Joseph Thompson’s cut-back.
Walsall had a good chance to equalise on the half-hour mark, when Bakayoko slipped in Cuvelier but the onrushing Logan spread himself well to block the midfielder’s attempt.
The visitors could have made it 2-0 ten minutes before half-time, but Scott Laird made a vital sliding block to deny Thompson from point-blank range.
Half-time: Walsall 0-1 Rochdale
Dale continued to look dangerous after the break, with Callum Camps seeing a 30-yard free-kick parried by Etheridge and Henderson having a goal correctly disallowed for deliberate handball.
The Saddlers’ first attempt of the second half came on 58 minutes, Laird with a left-footed free-kick from around 25 yards which curled wide of the far post.
With Walsall offering little offensively, manager Jon Whitney brought on Erhun Oztumer and Franck Moussa for Morris and Jackson.
But Rochdale doubled their lead with 16 minutes remaining, when substitute Harrison McGahey’s deflected cross fell for Thompson to slot home from six yards.
The Saddlers looked a beaten side but did nearly pull one back in added time, as Adam Chambers’ powerful first-time drive was tipped over by Logan.
Full-time: Walsall 0-2 Rochdale.
Team (4-4-2): Etheridge; McCarthy, O’Connor, Roberts, Laird; Chambers, Edwards, Cuvelier, Morris (Moussa 70’); Jackson (Oztumer 62’), Bakayoko.
Subs not used: MacGillivray, Dobson, Kinsella, Sangha, Makris.
Attendance: 4,667 (472 Rochdale supporters).