diff --git a/src/common/env.c b/src/common/env.c
index 9ac0061ac2e22e88176346ed4246947816a5c762..aec51d1d6cb3f0fe3b925023a0c282679688230d 100644
--- a/src/common/env.c
+++ b/src/common/env.c
@@ -1569,18 +1569,17 @@ static void _strip_cr_nl(char *line)
  * Special case: return -1 if no open brackets are found */
 static int _bracket_cnt(char *value)
 {
-	int open_br = 0, close_br = 0, i;
+	int count = 0, i;
 	for (i=0; value[i]; i++) {
 		if (value[i] == '{')
-			open_br++;
+			count++;
 		else if (value[i] == '}')
-			close_br++;
+			count--;
 	}
-	if (open_br == 0)
-		return -1;
-	return (open_br - close_br);
+	return count;
 }
 
+
 /*
  * Load user environment from a cache file located in
  * <state_save_location>/env_username
@@ -1621,8 +1620,7 @@ static char **_load_env_cache(const char *username)
 			if (value[0] == '(') {
 				/* This is a bash function.
 				 * It may span multiple lines */
-				int bracket_cnt;
-				while ((bracket_cnt = _bracket_cnt(value))) {
+				while (_bracket_cnt(value) > 0) {
 					if (!fgets(line, ENV_BUFSIZE, fp))
 						break;
 					_strip_cr_nl(line);
@@ -1853,8 +1851,7 @@ char **env_array_user_default(const char *username, int timeout, int mode)
 			if (value[0] == '(') {
 				/* This is a bash function.
 				 * It may span multiple lines */
-				int bracket_cnt;
-				while ((bracket_cnt = _bracket_cnt(value))) {
+				while (_bracket_cnt(value) > 0) {
 					line = strtok_r(NULL, "\n", &last);
 					if (!line)
 						break;