  
  		  const unsigned int vertex_dofs =
  		    std::max(FEInterface::n_dofs_at_node(dim, fe_type,
-@@ -621,12 +614,13 @@
+@@ -621,12 +614,23 @@
  		  // Some discontinuous FEs have no vertex dofs
  		  if (vertex_dofs > old_node_dofs)
  		    {
 -		      node->set_n_comp(this->sys_number(), var,
-+		      node->set_n_comp(sys_num, vg,
- 				       vertex_dofs);
+-				       vertex_dofs);
++		      node->set_n_comp_group(sys_num, vg,
++					     vertex_dofs);
 +		      
  		      // Abusing dof_number to set a "this is a
  		      // vertex" flag

             }
         } // end loop on elements
 
@@ -1172,27 +1151,30 @@
 	    Node *node = *node_it;
 	    libmesh_assert(node);
 

   _send_list.clear();
   this->clear_sparsity();
   need_full_sparsity_pattern = false;
@@ -936,18 +935,9 @@
 void DofMap::distribute_local_dofs_node_major(unsigned int &next_free_dof,
                                               MeshBase& mesh)
 {
