Curioso en mi prueba si funciona correctamente pero bueno de todos modos te dejo la prueba que hice yo, chekeala y me comentas
Valores iniciales
num1 = 187
num2 = 0
num3 = 0
num1 num1 > 0 num3=(num3*10) num2=(num1 % 10) num1=(num1/10) num3=(num3+num2)
187 true 0 = 0*10 7=187 % 10 18 = 187/10 7=0 + 7
18 true 70 8=18 % 10 1 = 18/10 78=70+8
1 true 780 = 78*10 1=1%10 0 = 1/10 781=780+1
0 false
Coloco otra forma en la que puede funcionar que es practicamente similar al que tu comentas por excepto la condición del while y la eliminación del paso despues de terminar el ciclo:
Var
Entero: num1, num2
Inicio
Leer( num1 )
num2 <- 0
Mientras( num1 > 0 )
num2 <- num2 * 10 + num1 mod 10
num1 <- num1 div 10
FinMientras
Fin
Bueno ahi nos vemos!!