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