diff --git a/meldata.cc b/meldata.cc
index 26a2a33862b68e8d20c6f016d2184988c0f86541..eb72dfbe8c4cd57fea5e9824ff2a168735fc4b86 100644
--- a/meldata.cc
+++ b/meldata.cc
@@ -294,6 +294,10 @@ namespace Melodic{
       		opts.pca_dim.set_T(order);
 			PPCA=tmpPPCA;
   		}
+	  	if(opts.pca_dim.value() < 0){
+      		opts.pca_dim.set_T(min(order,-1*opts.pca_dim.value()));
+			PPCA=tmpPPCA;
+  		}
     	order = opts.pca_dim.value();
 		if(opts.debug.value())
 			message(endl << "Model order : "<<order<<endl<<endl);