Hi I have this small program and I have tried to know its outcome but I couldn't understand how the digit 6 is printed out, all the others I understand.

Code:
#include <iostream>
using namespace std;
int global = 2;
int rek(intpar) {
cout << par;
global = global + par;
if (par < 7)
return rek(par*2)+2;
else
return 0;
}
int main()
{
cout << rek(1) << global;
return 0;
}
OK, here is how I understand it. Function rek(1) gets called in main(), and we go to function rek(int par) above. From there, we pass 1 to the function which prints it out and adds it to the global value. Condition is checked which is true and function rek(par*2) is called, which goes back to the function rek(int par) and the int value now is 2, this keeps on going until int par is 8, at which point the condition is false, all the while adding our new int par value to the global value. Now from here I am stuck. From here, if I go to main, according to my understanding, the function should print 1248, which are the values of int par and finally 16 which is the value of global. These are the values returned by the functions, we print this out, and it is over. Or so I thought until I saw the values printed out were 1248616 and not 124816. Now I need help in figuring out where on earth has this 6 come from. Thanks in advance.