The following pair of macros should work:
Sub FileSave()
Dim t As TableOfContents
For Each t In ActiveDocument.TablesOfContents
t.Update
Next t
If ActiveDocument.Path = "" Then
Dialogs(wdDialogFileSaveAs).Show
Else
ActiveDocument.Save
End If
End Sub
Sub FileSaveAs()
Dim t As TableOfContents
For Each t In ActiveDocument.TablesOfContents
t.Update
Next t
Dialogs(wdDialogFileSaveAs).Show
End Sub
Place the macros in the Normal template. See
http://www.gmayor.com/installing_macro.htm for assistance.