diff --git a/src/commands.c b/src/commands.c
index cf22df40f90754dd216c174f61d1f83f90b13807..55bcd9cda89e047247cdb13a6aa39d5c9293ac54 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -58,26 +58,27 @@ int evaluate_command(int n_commands, struct single_command (*commands)[512])
       return 0;
     } else if (strcmp(com->argv[0], "exit") == 0) {
       return 1;
-    }
-      else if(com->argv[0] > 0) {
-	pid_t pid;
-        pid = fork();
-
-        switch(pid)
-	{
-	  case -1 :
-	  printf("fail\n");
-	  case 0 :
-	  execv(com->argv[0], com->argv);
-	  printf("exec fail\n");
-	  default :
-	  wait((int*)0);
-	  printf("complete\n");
-	  exit(0);
-	}
-    } else {
-      fprintf(stderr, "%s: command not found\n", com->argv[0]);
-      return -1;
+    } 
+      else {
+
+      pid_t pid;
+      pid = fork();
+
+      switch(pid)
+      {
+	case -1 :
+	//printf("fail\n");
+
+	case 0 :
+	execv(com->argv[0], com->argv);
+	fprintf(stderr, "%s: command not found\n", com->argv[0]);
+	return -1;
+
+	default :
+	wait((int*)0);
+	//printf("complete\n");
+      	return -1;
+      }
     }
   }
 
diff --git a/src/main.c b/src/main.c
index 77c78049273e013e278ad9021fa088531b636a97..de5e5291d299b1c97ecdb747f96dd94b61fdfd44 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,7 +1,9 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <signal.h>
 
+#include "signal_handlers.h"
 #include "commands.h"
 #include "built_in.h"
 #include "utils.h"
@@ -10,6 +12,9 @@ int main()
 {
   char buf[8096];
 
+  signal(SIGINT, catch_sigint);
+  signal(SIGTSTP, catch_sigtstp);
+
   while (1) {
     fgets(buf, 8096, stdin);
 
diff --git a/src/signal_handlers.c b/src/signal_handlers.c
index 4b6fe2e073f327917964b5327b6649f74bcbda1e..a599b8a16e6a81c02099a4686de178919aa372fc 100644
--- a/src/signal_handlers.c
+++ b/src/signal_handlers.c
@@ -1,11 +1,14 @@
+#include <signal.h>
+
 #include "signal_handlers.h"
 
 void catch_sigint(int signalNo)
 {
-  // TODO: File this!
+  signal(signalNo, SIG_IGN);
 }
 
 void catch_sigtstp(int signalNo)
 {
-  // TODO: File this!
+  signal(signalNo, SIG_IGN);
+
 }