diff --git a/Fltk/GUI_Extras.cpp b/Fltk/GUI_Extras.cpp
index 7523a11d89be3f5d54a5c600224c2f27eb2071c5..1172c7661ef6e18ce5df997edb47d8743b76e8c7 100644
--- a/Fltk/GUI_Extras.cpp
+++ b/Fltk/GUI_Extras.cpp
@@ -1137,7 +1137,7 @@ int stl_dialog(const char *name)
   return 0;
 }
 
-// Partition dialog
+// Partition dialog - callbacks and dialog routine
 
 struct PartitionDialog 
 {
@@ -1157,6 +1157,7 @@ struct PartitionDialog
   Fl_Check_Button *checkButtonTermProp;
 };
 
+// Chaco option considerations based on the global algorithm
 inline void partition_opt_chaco_globalalg_cb(Fl_Widget *widget, void *data)
 {
   PartitionDialog *dlg = static_cast<PartitionDialog*>(data);
@@ -1179,6 +1180,7 @@ inline void partition_opt_chaco_globalalg_cb(Fl_Widget *widget, void *data)
   }
 }
 
+// Chaco option considerations based on the architecture
 inline void partition_opt_architecture_cb(Fl_Widget *widget, void *data)
 {
   PartitionDialog *dlg = static_cast<PartitionDialog*>(data);
@@ -1206,12 +1208,13 @@ inline void partition_opt_architecture_cb(Fl_Widget *widget, void *data)
   }
 }
 
+// Match several locations that provide a partition number
 inline void partition_opt_num_partitions_cb(Fl_Widget *widget, void *data)
 {
   PartitionDialog *dlg = static_cast<PartitionDialog*>(data);
   unsigned val;
   if(widget == dlg->inputNumPartition) {
-    val = dlg->inputNumPartition->value();
+    val = static_cast<unsigned>(dlg->inputNumPartition->value());
     switch(static_cast<int>(dlg->choiceArchitecture->value())) {
     case 0:
       {
@@ -1234,19 +1237,21 @@ inline void partition_opt_num_partitions_cb(Fl_Widget *widget, void *data)
     switch(static_cast<int>(dlg->choiceArchitecture->value())) {
     case 0:
       {
-        unsigned x = dlg->inputNumPartition1->value();
+        unsigned x = static_cast<unsigned>(dlg->inputNumPartition1->value());
         val = 1 << x;
       }
       break;
     case 1:
-      val = dlg->inputNumPartition1->value();
+      val = static_cast<unsigned>(dlg->inputNumPartition1->value());
       break;
     case 2:
-      val = dlg->inputNumPartition1->value()*dlg->inputNumPartition2->value();
+      val = static_cast<unsigned>
+        (dlg->inputNumPartition1->value()*dlg->inputNumPartition2->value());
       break;
     case 3:
-      val = dlg->inputNumPartition1->value()*dlg->inputNumPartition2->value()*
-        dlg->inputNumPartition3->value();
+      val = static_cast<unsigned>
+        (dlg->inputNumPartition1->value()*dlg->inputNumPartition2->value()*
+         dlg->inputNumPartition3->value());
       break;
     }
     dlg->inputNumPartition->value(val);
@@ -1256,6 +1261,7 @@ inline void partition_opt_num_partitions_cb(Fl_Widget *widget, void *data)
   }
 }
 
+// Option considerations for the Chaco spectral algorithm
 inline void partition_opt_spectralcheck_cb(Fl_Widget *widget, void *data)
 {
   PartitionDialog *dlg = static_cast<PartitionDialog*>(data);
@@ -1275,9 +1281,20 @@ inline void partition_cancel_cb(Fl_Widget *widget, void *data)
 {
   Fl::delete_widget(widget->window());
 }
+
+// Select groups to display
 inline void partition_select_groups_cb(Fl_Widget *widget, void *data)
 {
   PartitionDialog *dlg = static_cast<PartitionDialog*>(data);
+  // If this callback was made by the "Advanced" toggle buttons, set the label
+  if(dlg->toggleButtonAdvChaco == widget) {
+    dlg->toggleButtonAdvChaco->label((dlg->toggleButtonAdvChaco->value()) ?
+                                     "Advanced @-28->" : "Advanced @-22->");
+  }
+  else if(dlg->toggleButtonAdvMetis == widget) {
+    dlg->toggleButtonAdvMetis->label((dlg->toggleButtonAdvMetis->value()) ?
+                                     "Advanced @-28->" : "Advanced @-22->");
+  }
   const int WB = 7;                     // Window border
   Fl_Window *const w = widget->window();
   // Get the groups
@@ -1399,8 +1416,9 @@ int partition_dialog()
                                         // label
   const int WB = 7;                     // Window border
 
-  const int h = 3 * WB + 3 * BH;
-  const int w = 3 * BB + IW + 3 * WB;
+  const int h = 6 * WB + 3 * BH + 4;    // This will be resized based on groups
+                                        // that are displayed
+  const int w = 3 * BB + IW + 3 * WB;   // Window width
   int y = 0;
 
   Fl_Double_Window *const window =