diff --git a/src/engine.c b/src/engine.c
index 1b6b188cb8f2dadd1c3e1acffd9f0086d3d64568..e8bacffd9b007c4376e129a2ecf2ebda7e5d6cf2 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -320,7 +320,7 @@ void engine_collect_kick2 ( struct cell *c ) {
     struct cell *cp;
     
     /* If I am a super-cell, return immediately. */
-    if ( c->kick2 != NULL )
+    if ( c->kick2 != NULL || c->count == 0 )
         return;
         
     /* If this cell is not split, I'm in trouble. */
diff --git a/src/io.c b/src/io.c
index 199855a3af2d61e90569099b549d230ff0bb509a..bf25e55b5b8c80fd48eaddf3c42590e00428b03d 100644
--- a/src/io.c
+++ b/src/io.c
@@ -271,7 +271,7 @@ void readArrayBackEnd(hid_t grp, char* name, enum DATA_TYPE type, int N, int dim
 void read_ic ( char* fileName, double dim[3], struct part **parts,  int* N, int* periodic)
 {
   hid_t h_file=0, h_grp=0;
-  double boxSize[3]={0.,-1,-1};         /* GADGET has only cubic boxes (in cosmological mode) */
+  double boxSize[3]={0.0,-1.0,-1.0};         /* GADGET has only cubic boxes (in cosmological mode) */
   int numParticles[6]={0};   /* GADGET has 6 particle types. We only keep the type 0*/
 
   /* Open file */
@@ -308,10 +308,8 @@ void read_ic ( char* fileName, double dim[3], struct part **parts,  int* N, int*
 
   *N = numParticles[0];
   dim[0] = boxSize[0];
-  if ( boxSize[1] < 0 )
-    dim[1] = boxSize[0];
-  if ( boxSize[2] < 0 )
-    dim[2] = boxSize[0];
+  dim[1] = ( boxSize[1] < 0 ) ? boxSize[0] : boxSize[1];
+  dim[2] = ( boxSize[2] < 0 ) ? boxSize[0] : boxSize[2];
 
   /* printf("read_ic: Found %d particles in a %speriodic box of size [%f %f %f]\n",  */
   /* 	 *N, (periodic ? "": "non-"), dim[0], dim[1], dim[2]); */