Dissolve yeast in warm water. Sprinkle in sugar and stir. Let sit for at least 10 minutes.
Heat milk, butter, sugar, and salt in a small sauce pan over medium heat. Milk mixture should be luke warm, not hot. Let it cool down if its too hot.
Pour 1 C of the flour into a mixing bowl. Pour the milk mixture into the flour and stir.
Add another cup of flour and stir. Add eggs and stir, then yeast and stir.
Gradually add the rest of the flour, kneading the dough inside the bowl. Add more flour depending on the consistency, so its not sticky and dough pulls away from the bowl.
Cover with a towel and let rise in a warm place for a half hour.
While its rising mix all the ingredients for the filling, adding the butter last.
After the dough has risen, beat it down. Knead for a few minutes on a floured surface.
Roll it out into a 12 x 18 rectangle.
Cut into 3 vertical strips, 4 inches wide each. You want long strips.
Spread filling evenly over dough with the back of a spoon. Roll each strip into a roll, overlapping the edges and pinching them shut.
Place on a greased jelly roll pan. Gently braid, tucking the ends underneath. Try to braid quickly so the dough doesn't stretch.
Cover with a towel and let rise for a half hour in a warm palce.
Bake at 350 degrees for about 25 to 30 minute Bread should be browned and sound hollow when patted. Let cool on a rack. Take it off the pan with a spatula on each side so it doesn't fall apart.
While the bread is cooling, make the glaze. Heat butter over medium heat until lightly brown, remove from heat.
Stir in powdered sugar and vanilla.
Stir in milk, one tsp at a time.
Place bread on foil or board when cool. Drizzle bread with warm glaze. Let glaze harden before wrapping foil around bread if giving as a gift.