I have it somewhat working. However, doing it this way is a lot slower.
for each vertex v in vertex list
{
Vector3 n = Vector3.Zero
for each triangle t that shares v's vertex
{
n += Normalize(v+ t.normal)
}
v.normal = Normalize(n)
}