¿Tenedor () ramas más de lo esperado?

Considere la siguiente pieza de código:

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main(void)
{
    int i;
    for(i = 0; i < 2; i++)
    {
        fork();
        printf(".");
    }
    return 0;
}

Este programa produce 8 puntos. ¿Cómo puede ser posible? ¿No debería haber 6 puntos en su lugar?