diff --git a/components/common/cpp/src/configuration.cpp b/components/common/cpp/src/configuration.cpp
index 991fdc120b46b5f123bf31a89bb9a25df097aafc..f6666eaffceeec8a39dbd86a5266f99697dfa7ba 100644
--- a/components/common/cpp/src/configuration.cpp
+++ b/components/common/cpp/src/configuration.cpp
@@ -437,9 +437,14 @@ static void process_options(Configurable *root, const map<string, string> &opts)
 	}
 }
 
+static bool sig_int_called = false;
+
 static void signalIntHandler( int signum ) {
    std::cout << "Closing...\n";
 
+   if (sig_int_called) quick_exit(-1);
+   sig_int_called = true;
+
    // cleanup and close up stuff here  
    // terminate program