diff --git a/plugins/autotools/ide-autotools-build-task.c b/plugins/autotools/ide-autotools-build-task.c
index b84fe78..13cd3ef 100644
--- a/plugins/autotools/ide-autotools-build-task.c
+++ b/plugins/autotools/ide-autotools-build-task.c
@@ -713,6 +713,19 @@ log_and_spawn (IdeAutotoolsBuildTask  *self,
   return ret;
 }
 
+static void
+stop_process(GCancellable *cancellable,
+                         gpointer user_data)
+{
+  GSubprocess *process = user_data;
+  g_assert(G_IS_SUBPROCESS(process));
+
+  g_subprocess_force_exit(process);
+
+  g_warning("Invocation of force_exit process made here..\n");
+}
+
+
 static gboolean
 step_mkdirs (GTask                 *task,
              IdeAutotoolsBuildTask *self,
@@ -811,6 +824,8 @@ step_autogen (GTask                 *task,
 
   ide_build_result_log_subprocess (IDE_BUILD_RESULT (self), process);
 
+  g_signal_connect_object(cancellable,"cancelled",G_CALLBACK(stop_process),process,0);
+
   if (!g_subprocess_wait_check (process, cancellable, &error))
     {
       g_task_return_error (task, error);
@@ -880,6 +895,8 @@ step_configure (GTask                 *task,
 
   ide_build_result_log_subprocess (IDE_BUILD_RESULT (self), process);
 
+  g_signal_connect_object(cancellable,"cancelled",G_CALLBACK(stop_process),process,0);
+
   if (!g_subprocess_wait_check (process, cancellable, &error))
     {
       g_task_return_error (task, error);
@@ -934,6 +951,8 @@ step_make_all  (GTask                 *task,
 
       process = log_and_spawn (self, launcher, &error, GNU_MAKE_NAME, target, state->parallel, NULL);
 
+	  g_warning("Spawned process in make all.\n");
+
       if (!process)
         {
           g_task_return_error (task, error);
@@ -942,8 +961,11 @@ step_make_all  (GTask                 *task,
 
       ide_build_result_log_subprocess (IDE_BUILD_RESULT (self), process);
 
+	  g_signal_connect_object(cancellable,"cancelled",G_CALLBACK(stop_process),process,0);
+
       if (!g_subprocess_wait_check (process, cancellable, &error))
         {
+          g_warning("cancellable was triggered inside the subprocess\n");
           g_task_return_error (task, error);
           return FALSE;
         }
