return InsertPage(-1, label, bmp, pageObj);
     }
 
-    void ClearModifiedStatus ( wxPGPropArg id );
-
-    void ClearModifiedStatus ()
-    {
-        m_pPropGrid->ClearModifiedStatus();
-    }
-
     /** Deletes all all properties and all pages.
     */
     virtual void Clear();
 
 
     /** Resets modified status of all properties.
     */
-    void ClearModifiedStatus()
-    {
-        SetPropertyModifiedStatus(m_pState->m_properties, false);
-        m_pState->m_anyModified = false;
-    }
+    void ClearModifiedStatus();
 
     /** Collapses given category or property with children.
         Returns true if actually collapses.
 
         p->GetParentState()->DoSetPropertyValueUnspecified(p);
 }
 
+// -----------------------------------------------------------------------
+
+void wxPropertyGridInterface::ClearModifiedStatus()
+{
+    unsigned int pageIndex = 0;
+
+    for (;;)
+    {
+        wxPropertyGridPageState* page = GetPageState(pageIndex);
+        if ( !page ) break;
+
+        page->DoGetRoot()->SetFlagRecursively(wxPG_PROP_MODIFIED, false);
+
+        pageIndex++;
+    }
+}
+
 // -----------------------------------------------------------------------
 // wxPropertyGridInterface property value setting and getting
 // -----------------------------------------------------------------------