diff --git a/Main.c b/Main.c
index 639c94c3e8c1f979a1474be0acc26e01978e0e23..dd9750bfb36de884f1bdbff8e919bc8dfe487c75 100644
--- a/Main.c
+++ b/Main.c
@@ -184,9 +184,9 @@ int change_directory(char* given_path) {
 
     // First, ensure that it is, infact, a directory.
     if (S_ISDIR(stat_buffer.st_mode)) {
-        // Next, check permissions. Only change upon owner permission.
-        if (stat_buffer.st_mode & S_IXUSR) {
-            // Change directory.
+        // Next, check permissions.
+        if ((access(given_path, X_OK)) == 0) {
+            // Change into directory.
             return_int = chdir(given_path);
             if (return_int < 0) {
                 err_sys("Failed to change directory.");