But "List" is a different variable than your list, which with the current design is held by "Current".
It may be prudent to check if "list->next" is not NULL too...
Edit: Just remove the "current" in main, remove "list" from the CreateProcess, and use "&list" instead of "¤t", and it should work fine.
Of course, there are other problems in your code: counter in "createprocess" is a pointer, not an integer. It will not work as you expect.
And I still reccon that you aren't using -Wall (or you are ignoring the warnings), because it should give you at least half a dozen or more warnings the way you are mixing and matching different pointers in various places.
--
Mats