Index: /trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/MahalanobisOutlierRemoval.java
===================================================================
--- /trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/MahalanobisOutlierRemoval.java	(revision 116)
+++ /trunk/CrossPare/src/de/ugoe/cs/cpdp/dataselection/MahalanobisOutlierRemoval.java	(revision 117)
@@ -19,7 +19,10 @@
 import org.apache.commons.math3.linear.LUDecomposition;
 import org.apache.commons.math3.linear.RealMatrix;
+import org.apache.commons.math3.linear.SingularMatrixException;
 import org.apache.commons.math3.stat.correlation.Covariance;
 
+import de.lmu.ifi.dbs.elki.logging.Logging.Level;
 import de.ugoe.cs.cpdp.util.WekaUtils;
+import de.ugoe.cs.util.console.Console;
 import weka.core.Instances;
 
@@ -92,8 +95,13 @@
             values.setRow(i, WekaUtils.instanceValues(data.get(i)));
         }
-        RealMatrix inverseCovariance =
+        RealMatrix inverseCovariance;
+        try {
+            inverseCovariance =
             new LUDecomposition(new Covariance(values).getCovarianceMatrix()).getSolver()
                 .getInverse();
-
+        } catch(SingularMatrixException e) {
+            Console.traceln(Level.WARNING, "could not perform Mahalanobis outlier removal due to singular covariance matrix");
+            return;
+        }
         // create mean vector
         double[] meanValues = new double[data.numAttributes() - 1];
