diff --git a/src/Fl_Table_Row.cxx b/src/Fl_Table_Row.cxx
index dca5c10b7f718e4aa9460e4b6edc956b51a10ed0..6c7e457f98fd26635dad0c74996216aad48b97a4 100644
--- a/src/Fl_Table_Row.cxx
+++ b/src/Fl_Table_Row.cxx
@@ -203,8 +203,8 @@ void Fl_Table_Row::select_all_rows(int flag) {
 
 // Set number of rows
 void Fl_Table_Row::rows(int val) {
-  Fl_Table::rows(val);
   while ( val > (int)_rowselect.size() ) { _rowselect.push_back(0); }   // enlarge
+  Fl_Table::rows(val);
   while ( val < (int)_rowselect.size() ) { _rowselect.pop_back(); }     // shrink
 }