Index: /trunk/psLib/src/math/psSparse.c
===================================================================
--- /trunk/psLib/src/math/psSparse.c	(revision 23443)
+++ /trunk/psLib/src/math/psSparse.c	(revision 23444)
@@ -245,4 +245,7 @@
 psSparseBorder *psSparseBorderAlloc(psSparse *sparse, int Nborder)
 {
+    psAssert(sparse->Nrows > 0, "Require positive size: nrows = %d", sparse->Nrows);
+    psAssert(Nborder > 0, "Require positive size: nborder = %d", Nborder);
+
     psSparseBorder *border = (psSparseBorder *)psAlloc(sizeof(psSparseBorder));
     psMemSetDeallocator(border, (psFreeFunc) psSparseBorderFree);
@@ -451,12 +454,12 @@
         square = psImageCopy (square, border->Tjj, PS_TYPE_F64);
         if (!psMatrixGJSolve (square, Go)) {
-	    psError(PS_ERR_UNKNOWN, false, "Unable to solve for lower square.");
-	    psFree (dG);
-	    psFree (Go);
-	    psFree (dF);
-	    psFree (Fo);
-	    psFree (square);
-	    return false;
-	}
+            psError(PS_ERR_UNKNOWN, false, "Unable to solve for lower square.");
+            psFree (dG);
+            psFree (Go);
+            psFree (dF);
+            psFree (Fo);
+            psFree (square);
+            return false;
+        }
         yVec = psVectorCopy (yVec, Go, PS_TYPE_F32);
 
