diff --git a/src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.cpp b/src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.cpp
index 1033214fa5457d844833ac24f89e589422c2d380..861cb23b7155b0ce69fc1c09e81f3cb476fbcddd 100644
--- a/src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.cpp
+++ b/src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.cpp
@@ -72,23 +72,11 @@ void DesktopProcessSignalOperation::interruptProcess(int pid)
 }
 
 void DesktopProcessSignalOperation::interruptProcess(const QString &filePath)
-{
-    interruptProcess(filePath, NoSpecialInterrupt);
-}
-
-void DesktopProcessSignalOperation::interruptProcess(int pid, SpecialInterrupt specialInterrupt)
-{
-    m_errorMessage.clear();
-    interruptProcessSilently(pid, specialInterrupt);
-}
-
-void DesktopProcessSignalOperation::interruptProcess(const QString &filePath,
-                                                     SpecialInterrupt specialInterrupt)
 {
     m_errorMessage.clear();
     foreach (const DeviceProcessItem &process, Internal::LocalProcessList::getLocalProcesses()) {
         if (process.cmdLine == filePath)
-            interruptProcessSilently(process.pid, specialInterrupt);
+            interruptProcessSilently(process.pid);
     }
     emit finished(m_errorMessage);
 }
@@ -128,8 +116,7 @@ void DesktopProcessSignalOperation::killProcessSilently(int pid)
 #endif // Q_OS_WIN
 }
 
-void DesktopProcessSignalOperation::interruptProcessSilently(
-        int pid, SpecialInterrupt specialInterrupt)
+void DesktopProcessSignalOperation::interruptProcessSilently(int pid)
 {
 #ifdef Q_OS_WIN
     /*
@@ -174,17 +161,16 @@ GDB 32bit | Api             | Api             | N/A             | Win32
         }
         bool creatorIs64Bit = Utils::winIs64BitBinary(qApp->applicationFilePath());
         if (!Utils::winIs64BitSystem() ||
-                specialInterrupt == NoSpecialInterrupt ||
-                specialInterrupt == Win64Interrupt && creatorIs64Bit ||
-                specialInterrupt == Win32Interrupt && !creatorIs64Bit) {
+                m_specialInterrupt == NoSpecialInterrupt ||
+                m_specialInterrupt == Win64Interrupt && creatorIs64Bit ||
+                m_specialInterrupt == Win32Interrupt && !creatorIs64Bit) {
             if (!DebugBreakProcess(inferior)) {
                 appendMsgCannotInterrupt(pid, tr("DebugBreakProcess failed: ")
                                          + Utils::winErrorMessage(GetLastError()));
             }
-        } else if (specialInterrupt == Win32Interrupt
-                   || specialInterrupt == Win64Interrupt) {
+        } else if (m_specialInterrupt == Win32Interrupt || m_specialInterrupt == Win64Interrupt) {
             QString executable = QCoreApplication::applicationDirPath();
-            executable += specialInterrupt == Win32Interrupt
+            executable += m_specialInterrupt == Win32Interrupt
                     ? QLatin1String("/win32interrupt.exe")
                     : QLatin1String("/win64interrupt.exe");
             if (!QFile::exists(executable)) {
@@ -211,7 +197,6 @@ GDB 32bit | Api             | Api             | N/A             | Win32
     if (inferior != NULL)
         CloseHandle(inferior);
 #else
-    Q_UNUSED(specialInterrupt)
     if (pid <= 0)
         appendMsgCannotInterrupt(pid, tr("Invalid process id."));
     else if (kill(pid, SIGINT))
diff --git a/src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.h b/src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.h
index b6d61f220b76c7fb5cfb0f7a14e2f254a914a4e8..cca2018442b5d8c28e52e4e495a5d13e3fb61f5b 100644
--- a/src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.h
+++ b/src/plugins/projectexplorer/devicesupport/desktopprocesssignaloperation.h
@@ -39,19 +39,15 @@ class PROJECTEXPLORER_EXPORT DesktopProcessSignalOperation : public DeviceProces
 {
     Q_OBJECT
 public:
-    enum SpecialInterrupt { NoSpecialInterrupt, Win32Interrupt, Win64Interrupt };
-
     ~DesktopProcessSignalOperation() {}
     void killProcess(int pid);
     void killProcess(const QString &filePath);
     void interruptProcess(int pid);
     void interruptProcess(const QString &filePath);
-    void interruptProcess(int pid, SpecialInterrupt specialInterrupt);
-    void interruptProcess(const QString &filePath, SpecialInterrupt specialInterrupt);
 
 private:
     void killProcessSilently(int pid);
-    void interruptProcessSilently(int pid, SpecialInterrupt = NoSpecialInterrupt);
+    void interruptProcessSilently(int pid);
 
     void appendMsgCannotKill(int pid, const QString &why);
     void appendMsgCannotInterrupt(int pid, const QString &why);
diff --git a/src/plugins/projectexplorer/devicesupport/idevice.cpp b/src/plugins/projectexplorer/devicesupport/idevice.cpp
index 81a819b7e284ad073546e6ab28df2b90d77eacb0..11044fba2e8cee9017db8acc56fccc9c734b2641 100644
--- a/src/plugins/projectexplorer/devicesupport/idevice.cpp
+++ b/src/plugins/projectexplorer/devicesupport/idevice.cpp
@@ -424,4 +424,9 @@ QString IDevice::defaultPublicKeyFilePath()
     return defaultPrivateKeyFilePath() + QLatin1String(".pub");
 }
 
+DeviceProcessSignalOperation::DeviceProcessSignalOperation()
+    : m_specialInterrupt(NoSpecialInterrupt)
+{
+}
+
 } // namespace ProjectExplorer
diff --git a/src/plugins/projectexplorer/devicesupport/idevice.h b/src/plugins/projectexplorer/devicesupport/idevice.h
index 3da578b90e4133f3eb08596ded13fce32ec37d29..9b0df7453cadbe8e6c29437763c7f799e8473680 100644
--- a/src/plugins/projectexplorer/devicesupport/idevice.h
+++ b/src/plugins/projectexplorer/devicesupport/idevice.h
@@ -59,6 +59,8 @@ class PROJECTEXPLORER_EXPORT DeviceProcessSignalOperation : public QObject
 {
     Q_OBJECT
 public:
+    enum SpecialInterrupt { NoSpecialInterrupt, Win32Interrupt, Win64Interrupt };
+
     ~DeviceProcessSignalOperation() {}
     typedef QSharedPointer<DeviceProcessSignalOperation> Ptr;
 
@@ -67,13 +69,16 @@ public:
     virtual void interruptProcess(int pid) = 0;
     virtual void interruptProcess(const QString &filePath) = 0;
 
+    void setSpecialInterrupt(SpecialInterrupt si);
+
 signals:
     // If the error message is empty the operation was successful
     void finished(const QString &errorMessage);
 
 protected:
-    explicit DeviceProcessSignalOperation() {}
+    explicit DeviceProcessSignalOperation();
     QString m_errorMessage;
+    SpecialInterrupt m_specialInterrupt;
 };
 
 class PROJECTEXPLORER_EXPORT PortsGatheringMethod