Here you can see why. 
```c
   /* after widgets are drawn, scroll to bottom */
   g_timeout_add(500, gtkui_connections_scroll, (gpointer)2);
```
Not a pointer is being handed over, just a integer casted to gpointer.
However, casting reverse throws a warning because casting a pointer (8 bytes) to an integer directly (4 bytes) would loose bits. Therefore the 8-byte pointer is casted to an numberpointer of the same size (no warning) and then to a number (number to number, no warning).