diff --git a/tools/rfcomm.c b/tools/rfcomm.c
index e013ff5..f635d4a 100644
--- a/tools/rfcomm.c
+++ b/tools/rfcomm.c
int i;
pid_t pid;
char **cmdargv;
+ struct sigaction sa;
cmdargv = malloc((argc + 1) * sizeof(char *));
if (!cmdargv)
switch (pid) {
case 0:
+ memset(&sa, 0, sizeof(sa));
+ sa.sa_handler = SIG_DFL;
+ sigaction(SIGCHLD, &sa, NULL);
+ sigaction(SIGPIPE, &sa, NULL);
+
i = execvp(cmdargv[0], cmdargv);
fprintf(stderr, "Couldn't execute command %s (errno=%d:%s)\n",
cmdargv[0], errno, strerror(errno));