Thanks Alvaro, I hoped there was a simpler solution. Perhaps only setting a flag or something ;-) I realized it now, not overriding the OpenDocumentFile member function, but the MatchDocType function. This results in a much cleaner solution, since I don't have to copy code from the CSingleDocTemplate implementation :-) class CSingleReloadDocTemplate : public CSingleDocTemplate { DECLARE_DYNAMIC(CSingleReloadDocTemplate) public: CSingleReloadDocTemplate(UINT nIDResource, CRuntimeClass* pDocClass, CRuntimeClass* pFrameClass, CRuntimeClass* pViewClass) : CSingleDocTemplate (nIDResource, pDocClass, pFrameClass, pViewClass) { } virtual Confidence MatchDocType(LPCTSTR lpszPathName, CDocument*& rpDocMatch) { Confidence confidence = CSingleDocTemplate::MatchDocType (lpszPathName, rpDocMatch); if (yesAlreadyOpen == confidence && rpDocMatch->IsModified()) { int answer = AfxMessageBox ("Do you want to reload the document", MB_YESNO); if (answer == IDYES) { // set the document modification state to "not modified" so the document template // will not complain during OpenDocumentFile () rpDocMatch->SetModifiedFlag(FALSE); // tell the DocumentManager, that no document with this title is already opened rpDocMatch = NULL; confidence = yesAttemptNative; } } return confidence; } }; IMPLEMENT_DYNAMIC (CSingleReloadDocTemplate, CSingleDocTemplate); For a MultiDocTemplate one should perhaps close the found document in some way (perhaps via CDocument::OnCloseDocument) since the CMultiDocTemplate::OpenDocumentFile() function will not reuse an existing open document like the CSingleDocTemplate. I'm not sure wether there is a combined method for this task that can be used for a SingleDocTemplate and a MultiDocTemplate (perhaps one can use CDocument::OnCloseDocument() already) Regards, Dirk