In reply to Brian Field.

Yes, this can happen. It occurs when a variable (column of a matrix) is a linear combination of the other variables (columns). For example:

x = shape(1:12, 4);
cov = cov(x);
d = det(cov);
print d;

The workaround is to identify the collinearities in the data. Alternatively, run PROC PRINCOMP or PROC VARCLUS on the data to obtain a lower dimensional set of variables that nevertheless captures most (or all) of the variance.