diff --git a/groundStation/src/cli/cli.c b/groundStation/src/cli/cli.c
index 17d9f8c8a865f9ae6f3705226cc53af54e161a06..58fe14b8c9ac71026860ae4c7687ae31fa38ea26 100644
--- a/groundStation/src/cli/cli.c
+++ b/groundStation/src/cli/cli.c
@@ -1,6 +1,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <err.h>
+#include <libgen.h>
 
 #include "cli.h"
 
@@ -11,7 +12,7 @@ int main(int argc, char **argv)
 	int i , useSymlink = 0;
 	struct backend_conn  *conn;
 
-	command = argv[0];
+	command = basename(argv[0]);
 	for(i = 0; i < MAX_COMMANDS; ++i) {
 		if (strncmp(command, commandNames[i], strlen(commandNames[i])) == 0)
 		{
@@ -42,11 +43,11 @@ int main(int argc, char **argv)
 	}
 
 	if(useSymlink) {
-		//TODO Call correct command function pointer with (argv[1] ... argc[argc])
+		(*cli_functions[cmdID]) (conn, argc, &argv[0]);
 	}else {
-		(*cli_functions[0]) (conn, argc-1, &argv[1]);
+		(*cli_functions[cmdID]) (conn, argc-1, &argv[1]);
 	}
 
 	ucart_backendDisconnect(conn);
     return 0;
-}
\ No newline at end of file
+}
diff --git a/groundStation/src/cli/cli.h b/groundStation/src/cli/cli.h
index 4b98962d67086d94b424cd0ccbb90587e749e84d..fc72ae12bea8b6b5b0a22a9db20cd8b5f8e54bc6 100644
--- a/groundStation/src/cli/cli.h
+++ b/groundStation/src/cli/cli.h
@@ -6,7 +6,6 @@
 // #include "cli_setpid.h"
 #include "cli_getpid.h"
 // #include "cli_getimu.h"
-
 enum CommandNameIds{
 	CMD_MONITOR,
 	CMD_SETPID,
@@ -31,4 +30,4 @@ static char* commandNames[MAX_COMMANDS] = {
 };
 
 
-#endif
\ No newline at end of file
+#endif