I think it is a perpetual check indeed.
Monste,There is a overlooked win here. Euwe played for a win in actual play and lost . the notes below are from the comments to the puzzle:http://www.chessgames.com/perl/chessgame?gid=1042639&kpage=3Move 25...25...Qh3! (threatening Rxh2+) 26. Rxa5 Rxh2+ 27. Ke1 Rh1+ 28. Kd2 Rxb1, and now 29. Ra8 is answered by 29...Rb2+ 30. Kd1 (or 30. Kc1 Qxc3+) Qh1+! 31. Qe1 Qxb7 with an easy win.