From: Jonathan Currier <dullfire@yahoo.com>

diff --git a/MainPanel.h b/MainPanel.h
index 8849659..471870b 100644
--- a/MainPanel.h
+++ b/MainPanel.h
@@ -12,6 +12,7 @@ in the source distribution for its full text.
 #include "Panel.h"
 #include "Action.h"
 #include "Settings.h"
+#include "union-arg.h"
 
 typedef struct MainPanel_ {
    Panel super;
@@ -21,11 +22,6 @@ typedef struct MainPanel_ {
    pid_t pidSearch;
 } MainPanel;
 
-typedef union {
-   int i;
-   void* v;
-} Arg;
-
 typedef bool(*MainPanel_ForeachProcessFn)(Process*, Arg);
 
 #define MainPanel_getFunctionBar(this_) (((Panel*)(this_))->defaultBar)
diff --git a/Process.c b/Process.c
index 471f529..ae617a6 100644
--- a/Process.c
+++ b/Process.c
@@ -548,7 +548,9 @@ bool Process_changePriorityBy(Process* this, int delta) {
    return Process_setPriority(this, this->nice + delta);
 }
 
-void Process_sendSignal(Process* this, int sgn) {
+
+void Process_sendSignal(Process* this, Arg arg) {
+   int sgn = arg.i;
    CRT_dropPrivileges();
    kill(this->pid, (int) sgn);
    CRT_restorePrivileges();
diff --git a/Process.h b/Process.h
index f702ca0..3011845 100644
--- a/Process.h
+++ b/Process.h
@@ -29,6 +29,7 @@ in the source distribution for its full text.
 #include "Object.h"
 
 #include <sys/types.h>
+#include "union-arg.h"
 
 #define PROCESS_FLAG_IO 0x0001
 
@@ -199,7 +200,7 @@ bool Process_setPriority(Process* this, int priority);
 
 bool Process_changePriorityBy(Process* this, int delta);
 
-void Process_sendSignal(Process* this, int sgn);
+void Process_sendSignal(Process* this, Arg arg);
 
 long Process_pidCompare(const void* v1, const void* v2);
 
diff --git a/union-arg.h b/union-arg.h
new file mode 100644
index 0000000..5c8a094
--- /dev/null
+++ b/union-arg.h
@@ -0,0 +1,9 @@
+#ifndef UNION_ARG_HEADER
+#define UNION_ARG_HEADER
+
+typedef union {
+   int i;
+   void* v;
+} Arg;
+
+#endif