diff --git a/functions/__ssh_agent_is_started.fish b/functions/__ssh_agent_is_started.fish
index 882c8f0..db14558 100644
--- a/functions/__ssh_agent_is_started.fish
+++ b/functions/__ssh_agent_is_started.fish
@@ -1,5 +1,5 @@
 function __ssh_agent_is_started -d "check if ssh agent is already started"
-  	if begin; test -f $SSH_ENV; and test -z "$SSH_AGENT_PID"; end
+	if begin; test -f $SSH_ENV; and test -z "$SSH_AGENT_PID"; end
 		source $SSH_ENV > /dev/null
 	end
 
@@ -7,6 +7,8 @@ function __ssh_agent_is_started -d "check if ssh agent is already started"
 		return 1
 	end
 
-	ps -ef | grep $SSH_AGENT_PID | grep -v grep | grep -q ssh-agent
-	return $status
+	ssh-add -l > /dev/null 2>&1
+	if test $status -eq 2
+		return 1
+	end
 end