--- liboctave/CMatrix.cc 2008-01-25 12:28:53.000000000 +0100 +++ liboctave/CMatrix.cc.orig 2008-01-17 13:33:57.000000000 +0100 @@ -2914,8 +2914,8 @@ for (octave_idx_type i = 0; i < nc; i++) iperm(i) = i; // initialize to identity permutation - // trailing permutations must be done in reverse order - for (octave_idx_type i = nc - 1; i >= ihi; i--) + // leading permutations in forward order + for (octave_idx_type i = 0; i < (ilo-1); i++) { octave_idx_type swapidx = static_cast (dpermute(i)) - 1; octave_idx_type tmp = iperm(i); @@ -2923,8 +2923,8 @@ iperm(swapidx) = tmp; } - // leading permutations in forward order - for (octave_idx_type i = 0; i < (ilo-1); i++) + // trailing permutations must be done in reverse order + for (octave_idx_type i = nc - 1; i >= ihi; i--) { octave_idx_type swapidx = static_cast (dpermute(i)) - 1; octave_idx_type tmp = iperm(i);