GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED);
   myfixed = GTK_MYFIXED (widget);
 
-  gdk_window_show (widget->window);
-
   children = myfixed->children;
   while (children)
     {
          !GTK_WIDGET_MAPPED (child->widget))
        gtk_widget_map (child->widget);
     }
+    
+  gdk_window_show (widget->window);
 }
 
 #if (GTK_MINOR_VERSION == 0)
   GtkMyFixed *myfixed;
   GtkMyFixedChild *child;
   GList *children;
+  GtkRequisition child_requisition;
   
   g_return_if_fail (widget != NULL);
   g_return_if_fail (GTK_IS_MYFIXED (widget));
 
   myfixed = GTK_MYFIXED (widget);
   
-  /* request very little, I'm not sure if requesting nothing
-     will always have positive effects on stability... */
-  requisition->width = 2;
-  requisition->height = 2;
-
   children = myfixed->children;
   while (children)
     {
 
       if (GTK_WIDGET_VISIBLE (child->widget))
        {
-          gtk_widget_size_request (child->widget, &child->widget->requisition);
+          gtk_widget_size_request (child->widget, &child_requisition);
        }
     }
+    
+  /* request very little, I'm not sure if requesting nothing
+     will always have positive effects on stability... */
+  requisition->width = 2;
+  requisition->height = 2;
 }
 
 static void
  
       /* please look at the text in wxWindow::DoSetSize() on why the
          test GTK_WIDGET_REALIZED() has to be here */
-      if (GTK_WIDGET_VISIBLE (child->widget) && 
-         !(!GTK_WIDGET_REALIZED(child->widget) &&
-           GTK_IS_NOTEBOOK(child->widget) ))
+      if (GTK_WIDGET_VISIBLE (child->widget))
+      { 
+/*
+        if (GTK_IS_NOTEBOOK(child->widget) && !GTK_WIDGET_REALIZED(child->widget))
+       {
+         gtk_widget_queue_resize( child->widget );
+       }
+       else
+*/
        {
          child_allocation.x = child->x;
          child_allocation.y = child->y;
          child_allocation.height = child->height;
          gtk_widget_size_allocate (child->widget, &child_allocation);
        }
-    }
+     }
+   }
 }
 
 static void
 
       if (child->widget == widget)
        {
+         gboolean was_visible = GTK_WIDGET_VISIBLE (widget);
+         
          gtk_widget_unparent (widget);
 
          myfixed->children = g_list_remove_link (myfixed->children, children);
          g_list_free (children);
          g_free (child);
 
-         if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
+         if (was_visible && GTK_WIDGET_VISIBLE (container))
            gtk_widget_queue_resize (GTK_WIDGET (container));
 
          break;
 
   GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED);
   myfixed = GTK_MYFIXED (widget);
 
-  gdk_window_show (widget->window);
-
   children = myfixed->children;
   while (children)
     {
          !GTK_WIDGET_MAPPED (child->widget))
        gtk_widget_map (child->widget);
     }
+    
+  gdk_window_show (widget->window);
 }
 
 #if (GTK_MINOR_VERSION == 0)
   GtkMyFixed *myfixed;
   GtkMyFixedChild *child;
   GList *children;
+  GtkRequisition child_requisition;
   
   g_return_if_fail (widget != NULL);
   g_return_if_fail (GTK_IS_MYFIXED (widget));
 
   myfixed = GTK_MYFIXED (widget);
   
-  /* request very little, I'm not sure if requesting nothing
-     will always have positive effects on stability... */
-  requisition->width = 2;
-  requisition->height = 2;
-
   children = myfixed->children;
   while (children)
     {
 
       if (GTK_WIDGET_VISIBLE (child->widget))
        {
-          gtk_widget_size_request (child->widget, &child->widget->requisition);
+          gtk_widget_size_request (child->widget, &child_requisition);
        }
     }
+    
+  /* request very little, I'm not sure if requesting nothing
+     will always have positive effects on stability... */
+  requisition->width = 2;
+  requisition->height = 2;
 }
 
 static void
  
       /* please look at the text in wxWindow::DoSetSize() on why the
          test GTK_WIDGET_REALIZED() has to be here */
-      if (GTK_WIDGET_VISIBLE (child->widget) && 
-         !(!GTK_WIDGET_REALIZED(child->widget) &&
-           GTK_IS_NOTEBOOK(child->widget) ))
+      if (GTK_WIDGET_VISIBLE (child->widget))
+      { 
+/*
+        if (GTK_IS_NOTEBOOK(child->widget) && !GTK_WIDGET_REALIZED(child->widget))
+       {
+         gtk_widget_queue_resize( child->widget );
+       }
+       else
+*/
        {
          child_allocation.x = child->x;
          child_allocation.y = child->y;
          child_allocation.height = child->height;
          gtk_widget_size_allocate (child->widget, &child_allocation);
        }
-    }
+     }
+   }
 }
 
 static void
 
       if (child->widget == widget)
        {
+         gboolean was_visible = GTK_WIDGET_VISIBLE (widget);
+         
          gtk_widget_unparent (widget);
 
          myfixed->children = g_list_remove_link (myfixed->children, children);
          g_list_free (children);
          g_free (child);
 
-         if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (container))
+         if (was_visible && GTK_WIDGET_VISIBLE (container))
            gtk_widget_queue_resize (GTK_WIDGET (container));
 
          break;