diff --git a/fluid/Fl_Menu_Type.cxx b/fluid/Fl_Menu_Type.cxx
index cdd24540dec053a32a644baff30b2f2fa43654ed..fb157b9cd8cc6fb55c534e710b25b4e7b57d2e32 100644
--- a/fluid/Fl_Menu_Type.cxx
+++ b/fluid/Fl_Menu_Type.cxx
@@ -1,5 +1,5 @@
 //
-// "$Id: Fl_Menu_Type.cxx,v 1.16.2.10 2000/11/21 21:37:07 easysw Exp $"
+// "$Id: Fl_Menu_Type.cxx,v 1.16.2.11 2001/01/21 07:36:45 spitzak Exp $"
 //
 // Menu item code for the Fast Light Tool Kit (FLTK).
 //
@@ -168,21 +168,19 @@ void Fl_Menu_Item_Type::write_static() {
   if (next && next->is_menu_item()) return;
   // okay, when we hit last item in the menu we have to write the
   // entire array out:
-  int mylevel;
   const char* k = class_name(1);
   if (k) {
-    write_c("\nFl_Menu_Item %s::%s[] = {\n", k, menu_name(level));
-  } else
-    write_c("\nFl_Menu_Item %s[] = {\n", menu_name(level));
+    int i; write_c("\nFl_Menu_Item %s::%s[] = {\n", k, menu_name(i));
+  } else {
+    int i; write_c("\nFl_Menu_Item %s[] = {\n", menu_name(i));
+  }
   Fl_Type* t = prev; while (t && t->is_menu_item()) t = t->prev;
-  mylevel = t->level+1;
   for (Fl_Type* q = t->next; q && q->is_menu_item(); q = q->next) {
     ((Fl_Menu_Item_Type*)q)->write_item();
-    if (q->is_parent()) mylevel++;
-    int l1 =
-      (q->next && q->next->is_menu_item()) ? q->next->level : t->next->level;
-    while (mylevel > l1) {write_c(" {0},\n"); mylevel--;}
-    mylevel = l1;
+    int thislevel = q->level; if (q->is_parent()) thislevel++;
+    int nextlevel =
+      (q->next && q->next->is_menu_item()) ? q->next->level : t->level+1;
+    while (thislevel > nextlevel) {write_c(" {0},\n"); thislevel--;}
   }
   write_c(" {0}\n};\n");
 
@@ -462,5 +460,5 @@ void shortcut_in_cb(Shortcut_Button* i, void* v) {
 }
 
 //
-// End of "$Id: Fl_Menu_Type.cxx,v 1.16.2.10 2000/11/21 21:37:07 easysw Exp $".
+// End of "$Id: Fl_Menu_Type.cxx,v 1.16.2.11 2001/01/21 07:36:45 spitzak Exp $".
 //
diff --git a/fluid/Fl_Type.cxx b/fluid/Fl_Type.cxx
index 3ec9ef340a8ea827e9ce3dc841bb67befaaddf33..3f7a107465213d896aefd0e75709ba31b9124d7f 100644
--- a/fluid/Fl_Type.cxx
+++ b/fluid/Fl_Type.cxx
@@ -1,5 +1,5 @@
 //
-// "$Id: Fl_Type.cxx,v 1.6.2.4 2000/09/23 08:15:11 spitzak Exp $"
+// "$Id: Fl_Type.cxx,v 1.6.2.5 2001/01/21 07:36:45 spitzak Exp $"
 //
 // Widget type code for the Fast Light Tool Kit (FLTK).
 //
@@ -334,6 +334,7 @@ void Fl_Type::remove_child(Fl_Type*) {}
 
 // add a list of widgets as a new child of p:
 void Fl_Type::add(Fl_Type *p) {
+  if (p && parent == p) return;
   parent = p;
   Fl_Type *end = this;
   while (end->next) end = end->next;
@@ -666,5 +667,5 @@ void Fl_Type::read_property(const char *c) {
 int Fl_Type::read_fdesign(const char*, const char*) {return 0;}
 
 //
-// End of "$Id: Fl_Type.cxx,v 1.6.2.4 2000/09/23 08:15:11 spitzak Exp $".
+// End of "$Id: Fl_Type.cxx,v 1.6.2.5 2001/01/21 07:36:45 spitzak Exp $".
 //