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

-					   var, 0, vertex_dofs);
+		      node->set_vg_dof_base(sys_num, vg,
+					    vertex_dofs);
 		    }
 	        }
 	    }
@@ -641,8 +635,8 @@
 	  libmesh_assert(elem);
 
 	  // Skip the numbering if this variable is

+			    const unsigned int vg) const;
+
+  /**
+   * Sets the number of components for \p Variable \p var
    * of system \p s associated with this \p DofObject
    */
   void set_n_comp(const unsigned int s,
@@ -230,6 +258,14 @@
 		  const unsigned int ncomp);
 
   /**
+   * Sets the number of components for \p VariableGroup \p vg
+   * of system \p s associated with this \p DofObject
+   */
+  void set_n_comp_group(const unsigned int s,
+			const unsigned int vg,
+			const unsigned int ncomp);
+
+  /**
    * @returns the global degree of freedom number for variable \p var,
    * component \p comp for system \p s associated with this \p DofObject
    */
@@ -253,13 +289,23 @@
   bool has_dofs(const unsigned int s=libMesh::invalid_uint) const;
 
   /**
