  
    // if the first component is invalid, they
    // are all invalid
-@@ -590,7 +723,13 @@
+@@ -590,7 +723,21 @@
    // otherwise the index is the first component
    // index augemented by the component number
    else

           continue;
         }
     }
@@ -1064,13 +1067,13 @@
       {
 	Node *obj = *node_it;
 	libmesh_assert(obj);

   //-------------------------------------------------------------------------
   // First count and assign temporary numbers to local dofs
   MeshBase::element_iterator       elem_it  = mesh.active_local_elements_begin();
@@ -964,45 +954,52 @@
       for (unsigned int n=0; n<n_nodes; n++)
         {
           Node* node = elem->get_node(n);
