diff --git a/ext/fox16/markfuncs.cpp b/ext/fox16/markfuncs.cpp
index 182e3ed5c6a5db29f86c6a422ef9cf3e159c26cd..bea3a48784b38086fd867abc76282fcb22a9790e 100755
--- a/ext/fox16/markfuncs.cpp
+++ b/ext/fox16/markfuncs.cpp
@@ -198,7 +198,7 @@ void FXRbWindow::markfunc(FXWindow* self){
 
     // Mark child windows
     register FXWindow* child=self->getFirst();
-    while((child!=NULL) && (!(NIL_P(FXRbGetRubyObj(child,true))))){
+    while(child!=NULL){
       FXRbGcMark(child);
       child=child->getNext();
       }
@@ -296,25 +296,6 @@ void FXRbCursor::freefunc(FXCursor* self){
   delete_if_not_owned_by_app(self,reinterpret_cast<FXRbCursor*>(0));
   }
 
-/**
- * Overrides base class version of getFocusWindow() to address
- * RubyForge Bug #24898.
- */
-static FXWindow*
-getFocusWindow(FXApp *self)
-{
-  FXWindow *result=self->getActiveWindow();
-  VALUE value=FXRbGetRubyObj(result,true);
-  if(!NIL_P(value)){
-    if(result){
-      while(result->getFocus()){
-        result=result->getFocus();
-        }
-      }
-    return result;
-    }
-  return NULL;
-  }
 
 void FXRbApp::markfunc(FXApp *self){
   FXRbObject::markfunc(self);
@@ -354,7 +335,7 @@ void FXRbApp::markfunc(FXApp *self){
     FXRbGcMark(self->getDefaultCursor(DEF_ROTATE_CURSOR));
   
     // Other windows
-		FXRbGcMark(::getFocusWindow(self));
+    FXRbGcMark(self->getFocusWindow());
     FXRbGcMark(self->getCursorWindow());
   
     /**