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!!  
