Sorry, I still can't fathom this.

Watching these bits of the code as I step through, the first sub to be entered when clicking 'X' is Workbook_BeforeClose. When that ends a prompt to save changes appears, and I click "Yes".
Workbook_BeforeSave now runs, and just as it ends I can see that 'ThisWorkbook.Saved' and 'Cancel' are definitely both 'True'.
Why, then, is the very next thing another prompt to save changes? When BeforeSave ends the workbook should close naturally, should it not? I tried substituting 'Me.Saved' and 'ActiveWorkBook.Saved' but no difference. Please tell me I'm missing something - apart from my marbles.
[vba]
Dim bClosing As Boolean

Private Sub Workbook_BeforeClose(Cancel As Boolean)
bClosing = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
'
Dim bSaved As Boolean
'
'
'
If bClosing Or bSaved Then
ThisWorkbook.Saved = True
End If
Cancel = True
End Sub
[/vba]
(For the moment I've removed any statements which forcibly close the workbook from within BeforeSave, as these seem to cause the crash I was getting previously.)