diff -r 2d1c2b03ef3a src/mat/impls/aij/seq/aij.c --- a/src/mat/impls/aij/seq/aij.c Tue Apr 10 09:57:31 2012 -0500 +++ b/src/mat/impls/aij/seq/aij.c Tue Apr 10 20:40:48 2012 +0300 @@ -3477,9 +3477,12 @@ PetscErrorCode ierr; PetscFunctionBegin; + if (Ii[0]) SETERRQ1(PETSC_COMM_SELF,PETSC_ERR_ARG_OUTOFRANGE, "Ii[0] must be 0 it is %D", Ii[0]); + + ierr = PetscLayoutSetUp(B->rmap);CHKERRQ(ierr); + ierr = PetscLayoutSetUp(B->cmap);CHKERRQ(ierr); + ierr = MatGetSize(B, &m, &n);CHKERRQ(ierr); - - if (Ii[0]) SETERRQ1(PETSC_COMM_SELF,PETSC_ERR_ARG_OUTOFRANGE, "Ii[0] must be 0 it is %D", Ii[0]); ierr = PetscMalloc((m+1) * sizeof(PetscInt), &nnz);CHKERRQ(ierr); for(i = 0; i < m; i++) { nz = Ii[i+1]- Ii[i];