samples/resource/*.ico
 samples/resource/*.pro
 
-samples/richedit/*.cpp
-samples/richedit/*.h
-samples/richedit/makefile*
-samples/richedit/*.rc
-samples/richedit/*.def
-samples/richedit/*.bmp
-samples/richedit/*.xpm
-samples/richedit/*.xbm
-samples/richedit/*.png
-samples/richedit/*.ico
-samples/richedit/*.txt
-samples/richedit/*.pro
-samples/richedit/TODO
-samples/richedit/README
-
 samples/rotate/*.cpp
 samples/rotate/*.h
 samples/rotate/makefile*
 
 samples/internat/Makefile.in
 samples/ipc/Makefile.in
 samples/png/Makefile.in
-samples/richedit/Makefile.in
 samples/resource/Makefile.in
 samples/sockets/Makefile.in
 samples/html/Makefile.in
 
 samples/resource/resource.dsp
 samples/resource/resource.dsw
 
-samples/richedit/richedit.dsp
-samples/richedit/richedit.dsw
-
 samples/rotate/rotate.dsp
 samples/rotate/rotate.dsw
 
 
     ~wxView();
 
     wxDocument *GetDocument() const { return m_viewDocument; }
-    void SetDocument(wxDocument *doc);
+    virtual void SetDocument(wxDocument *doc);
 
     wxString GetViewName() const { return m_viewTypeName; }
     void SetViewName(const wxString& name) { m_viewTypeName = name; };
 
     // what kind of menu item we are
     wxItemKind GetKind() const { return m_kind; }
 
-    virtual void SetCheckable(bool checkable) { m_kind = wxITEM_CHECK; }
+    virtual void SetCheckable(bool checkable) { m_kind = checkable ? wxITEM_CHECK : wxITEM_NORMAL; }
     bool IsCheckable() const
         { return m_kind == wxITEM_CHECK || m_kind == wxITEM_RADIO; }
 
 
         make -f makefile.b32 FINAL=$(FINAL) WXUSINGDLL=$(WXUSINGDLL)
         cd $(WXDIR)\samples\resource
         make -f makefile.b32 FINAL=$(FINAL) WXUSINGDLL=$(WXUSINGDLL)
-!if "$(COMPIL)"==""
-        cd $(WXDIR)\samples\richedit
-        make -f makefile.b32 FINAL=$(FINAL) WXUSINGDLL=$(WXUSINGDLL)
-!endif
         cd $(WXDIR)\samples\rotate
         make -f makefile.b32 FINAL=$(FINAL) WXUSINGDLL=$(WXUSINGDLL)
         cd $(WXDIR)\samples\sashtest
         make -f makefile.b32 FINAL=$(FINAL) WXUSINGDLL=$(WXUSINGDLL)
         cd $(WXDIR)\samples\exec
         make -f makefile.b32 FINAL=$(FINAL) WXUSINGDLL=$(WXUSINGDLL)
-        cd $(WXDIR)\samples\richedit
-        make -f makefile.b32 FINAL=$(FINAL) WXUSINGDLL=$(WXUSINGDLL)
         cd $(WXDIR)\samples\statbar
         make -f makefile.b32 FINAL=$(FINAL) WXUSINGDLL=$(WXUSINGDLL)
         cd $(WXDIR)\samples\sockets
         make -f makefile.b32 clean
         cd $(WXDIR)\samples\resource
         make -f makefile.b32 clean
-        cd $(WXDIR)\samples\richedit
-        make -f makefile.b32 clean
         cd $(WXDIR)\samples\rotate
         make -f makefile.b32 clean
         cd $(WXDIR)\samples\sashtest
         make -f makefile.b32 clean
         cd $(WXDIR)\samples\statbar
         make -f makefile.b32 clean
-        cd $(WXDIR)\samples\richedit
-        make -f makefile.b32 clean
         cd $(WXDIR)\samples\propsize
         make -f makefile.b32 clean
         cd $(WXDIR)\samples\sockets
 
         cd $(WXDIR)\samples\resource
         nmake -f makefile.dos FINAL=$(FINAL)
 !if "$(NOMAKE)"==""
-        cd $(WXDIR)\samples\richedit
-        nmake -f makefile.dos FINAL=$(FINAL)
         cd $(WXDIR)\samples\sashtest
         nmake -f makefile.dos FINAL=$(FINAL)
 !endif
         cd $(WXDIR)\samples\resource
         nmake -f makefile.dos clean
 !if "$(NOMAKE)"==""
-        cd $(WXDIR)\samples\richedit
-        nmake -f makefile.dos clean
         cd $(WXDIR)\samples\sashtest
         nmake -f makefile.dos clean
 !endif
 
        -$(MAKE) -C propsize $(CMDLINE) $@
        -$(MAKE) -C regtest $(CMDLINE) $@
        -$(MAKE) -C resource $(CMDLINE) $@
-       -$(MAKE) -C richedit $(CMDLINE) $@
        -$(MAKE) -C rotate $(CMDLINE) $@
        -$(MAKE) -C sashtest $(CMDLINE) $@
        -$(MAKE) -C scroll $(CMDLINE) $@
 
         nmake -f makefile.vc $(MAKEFLAGS)
         cd $(WXDIR)\samples\resource
         nmake -f makefile.vc $(MAKEFLAGS)
-!if "$(COMPIL)"==""
-        cd $(WXDIR)\samples\richedit
-        nmake -f makefile.vc $(MAKEFLAGS)
-!endif
         cd $(WXDIR)\samples\rotate
         nmake -f makefile.vc $(MAKEFLAGS)
         cd $(WXDIR)\samples\sashtest
         nmake -f makefile.vc clean
         cd $(WXDIR)\samples\resource
         nmake -f makefile.vc clean
-        cd $(WXDIR)\samples\richedit
-        nmake -f makefile.vc clean
         cd $(WXDIR)\samples\rotate
         nmake -f makefile.vc clean
         cd $(WXDIR)\samples\sashtest
 
 
 ###############################################################################
 
-Project: "richedit"=.\richedit\richedit.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
 Project: "rotate"=.\rotate\rotate.dsp - Package Owner=<4>
 
 Package=<5>
 
 
 void wxView::Activate(bool activate)
 {
-    if (GetDocumentManager())
+    if (GetDocument() && GetDocumentManager())
     {
         OnActivateView(activate, this, GetDocumentManager()->GetCurrentView());
         GetDocumentManager()->ActivateView(this, activate);
     wxDocTemplate **data = new wxDocTemplate *[noTemplates];
     int i;
     int n = 0;
+        
        for (i = 0; i < noTemplates; i++)
        {
                if (templates[i]->IsVisible())
                {
-                       strings.Add(templates[i]->m_description);
-                       if (!sort)
+               int j;
+            bool want = TRUE;
+                       for (j = 0; j < n; j++)
+                       {
+                //filter out NOT unique documents + view combinations
+                               if ( templates[i]->m_docTypeName == data[j]->m_docTypeName &&
+                     templates[i]->m_viewTypeName == data[j]->m_viewTypeName
+                   )
+                    want = FALSE;
+                       }
+
+            if ( want )
                        {
+                       strings.Add(templates[i]->m_description);
+
                                data[n] = templates[i];
                                n ++;
                        }
     wxDocTemplate **data = new wxDocTemplate *[noTemplates];
     int i;
     int n = 0;
+        
     for (i = 0; i < noTemplates; i++)
     {
         wxDocTemplate *templ = templates[i];
         if ( templ->IsVisible() && !templ->GetViewName().empty() )
         {
-            strings.Add(templ->m_viewTypeName);
-                       if (!sort)
+               int j;
+            bool want = TRUE;
+                       for (j = 0; j < n; j++)
                        {
+                //filter out NOT unique views
+                               if ( templates[i]->m_viewTypeName == data[j]->m_viewTypeName )
+                    want = FALSE;
+                       }
+
+            if ( want )
+            {
+                       strings.Add(templ->m_viewTypeName);
                                data[n] = templ;
                                n ++;
                        }