Index: src/mesh/exodusII_io.C
===================================================================
--- src/mesh/exodusII_io.C	(revision 4857)
+++ src/mesh/exodusII_io.C	(working copy)
@@ -107,15 +107,6 @@
   // Get a reference to the mesh we are reading
   MeshBase& mesh = MeshInput<MeshBase>::mesh();
   
-  // Currently cannot read meshes in 1-D.
-  if( mesh.mesh_dimension() == 1 )
-    {
-      libMesh::err << "Error: ExodusII API cannot handle side sets in 1-D and \n"
-		   << "libMesh cannot currently read ExodusII format in 1-D."
-		   << std::endl;
-      libmesh_error();
-    }
-  
   // Clear any existing mesh data
   mesh.clear();
   
@@ -204,6 +195,20 @@
     }
   libmesh_assert (static_cast<unsigned int>(nelem_last_block) == mesh.n_elem());
 
+   // Set the mesh dimension to the largest encountered for an element
+  for (unsigned int i=0; i!=4; ++i)
+    if (elems_of_dimension[i])
+      mesh.set_mesh_dimension(i);
+
+  // Currently cannot read meshes in 1-D.
+  if( mesh.mesh_dimension() == 1 )
+    {
+      libMesh::err << "Error: ExodusII API cannot handle side sets in 1-D and \n"
+		   << "libMesh cannot currently read ExodusII format in 1-D."
+		   << std::endl;
+      libmesh_error();
+    }
+  
   // Read in sideset information -- this is useful for applying boundary conditions
   {
     exio_helper->read_sideset_info(); // Get basic information about ALL sidesets
@@ -250,11 +255,6 @@
       }
   }
 
-  // Set the mesh dimension to the largest encountered for an element
-  for (unsigned int i=0; i!=4; ++i)
-    if (elems_of_dimension[i])
-      mesh.set_mesh_dimension(i);
-
 #if LIBMESH_DIM < 3
   if (mesh.mesh_dimension() > LIBMESH_DIM)
     {
