  {
    parallel_only();
  
-@@ -1900,8 +2203,58 @@
+@@ -1900,8 +2224,58 @@
  
    if (libMesh::processor_id() == 0)
      libmesh_assert_equal_to (written_length, vec_length);

+
+  
+
+  std::vector<std::vector<unsigned int> > xfer_ids(num_blks);  // The global IDs and # of components for the local objects in all blocks
+  std::vector<std::vector<Number> >       xfer_vals(num_blks); // The raw values for the local objects in all blocks
+
+
+  // First pass - count the number of objects in each block
+  {
+    std::vector<unsigned int>
+      xfer_ids_size  (num_blks,0),
+      xfer_vals_size (num_blks,0);
+
+    for (iterator_type it=begin; it!=end; ++it)
+      {
+	const unsigned int
+	  id    = (*it)->id(),
+	  block = id/io_blksize;
+
+	libmesh_assert_less (block, num_blks);
+
+	//xfer_ids_size[block]  += 2;
+	//xfer_vals_size[block] += (*it)->n_comp(sys_num, var)
+      }
+  }
+
+  
+//   std::vector<unsigned int> xfer_ids;                  // The global IDs and # of components for the local objects in the current block
+//   std::vector<Number>       xfer_vals;                 // The raw values for the local objects in the current block
+//   std::vector<std::vector<unsigned int> >              // The global ID and # of components received from each processor

       }
Index: examples/introduction/introduction_ex2/run.sh
===================================================================
--- examples/introduction/introduction_ex2/run.sh	(revision 6289)
+++ examples/introduction/introduction_ex2/run.sh	(working copy)
@@ -6,9 +6,9 @@
 
