diff --git a/meldata.cc b/meldata.cc
index 76cfb88a5013183f2a6c5b827120d515655d6f86..9a7a7ac3370b1f81e7b71044dc3b0f5c12130804 100644
--- a/meldata.cc
+++ b/meldata.cc
@@ -481,7 +481,7 @@ namespace Melodic{
 
 		outMsize("Data", Data);
 		//reduce dim down to manageable level
-		if(Data.Nrows() > opts.migp_factor.value()*opts.migpN.value()){
+		if(Data.Nrows() > opts.migp_factor.value()*opts.migpN.value() || ctr==numfiles-1){
 			message("  Reducing data matrix to a  " << opt.migpN.value() << " dimensional subspace " << endl);
 			Matrix pcaE, Corr;
 			RowVector pcaD;