diff --git a/apps/Mnist.cpp b/apps/Mnist.cpp
index 9aaffe6adbc06506b39a7d7a1a3e09c9a7ed1edd..14c8db0eb1d753da3e8ec1cdef53038677292d5b 100644
--- a/apps/Mnist.cpp
+++ b/apps/Mnist.cpp
@@ -96,9 +96,11 @@ int main(int argc, char** argv) {
 	auto& fc1_out = experiment.template output<TimeObjectiveOutput>(fc1, t_obj);
 	fc1_out.template add_postprocessing<process::FeatureScaling>();
 	fc1_out.template add_analysis<analysis::Activity>();
-	fc1_out.template add_analysis<analysis::Coherence>();
+	//fc1_out.template add_analysis<analysis::Coherence>();
 	fc1_out.template add_analysis<analysis::Svm>();
 
 	experiment.run(10000);
 
+	return experiment.wait();
+
 }
diff --git a/include/Experiment.h b/include/Experiment.h
index ab47c09bb40e8e8c7a7ba0182cbbcfceee80f2ec..f982cbd67aaf92b0ccd0224da9066cb129eabd9d 100644
--- a/include/Experiment.h
+++ b/include/Experiment.h
@@ -89,6 +89,7 @@ public:
 
 	void initialize(const Shape& input_shape);
 	void run(size_t refresh_interval = 1);
+	int wait();
 
 	void tick(size_t current_layer_index, size_t sample_count);
 	void refresh(size_t current_layer_index);
diff --git a/src/Experiment.cpp b/src/Experiment.cpp
index e8ef32fbca64900b12a607ccea705ca6f322c9bc..8737d8dc38473b2d09e48730dc91bdb9de2e8531 100644
--- a/src/Experiment.cpp
+++ b/src/Experiment.cpp
@@ -288,6 +288,14 @@ void AbstractExperiment::run(size_t refresh_interval) {
 
 }
 
+int AbstractExperiment::wait() {
+#ifdef DISPLAY_PLOT
+	return _app->exec();
+#else
+	return 0;
+#endif
+}
+
 #ifdef DISPLAY_PLOT
 void AbstractExperiment::tick(size_t current_layer_index, size_t sample_count) {
 	for(auto& p : _plots) {