diff --git a/git-flow-feature b/git-flow-feature
index 33dab30..f25ae7f 100644
--- a/git-flow-feature
+++ b/git-flow-feature
@@ -32,28 +32,33 @@
 	DEFINE_boolean verbose false 'verbose (more) output' v
 	parse_args "$@"
 
-	FEATURE_BRANCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
-	if [ -z "$FEATURE_BRANCHES" ]; then
+	typeset feature_branches
+	typeset current_branch
+	typeset short_names
+	feature_branches="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
+	if [ -z "$feature_branches" ]; then
 		warn "No feature branches exist."
 		exit 0
 	fi
+	current_branch=$(git branch | grep '^\* ' | grep -v 'no branch' | sed 's/^* //g')
+	short_names=$(echo "$feature_branches" | sed "s ^$PREFIX  g")
 
-	CURRENT_BRANCH=$(git branch | grep '^\* ' | grep -v 'no branch' | sed 's/^* //g')
-	SHORT_NAMES=$(echo "$FEATURE_BRANCHES" | sed "s?^$PREFIX??g")
 	# determine column width first
-	width=0
-	for branch in $SHORT_NAMES; do
-		len=$(($(echo "$branch" | wc -c) - 1))
+	typeset -i width=0
+	typeset branch
+	for branch in $short_names; do
+		typeset -i len=${#branch}
 		width=$(max $width $len)
 	done
-	width=$(($width + 3))
+	width=width+3
 
-	for branch in $SHORT_NAMES; do
-		fullname="$PREFIX$branch"
-		base=$(git merge-base "$fullname" "$DEVELOP_BRANCH")
-		develop_sha=$(git rev-parse "$DEVELOP_BRANCH")
-		branch_sha=$(git rev-parse "$fullname")
-		if [ "$fullname" = "$CURRENT_BRANCH" ]; then
+	typeset branch
+	for branch in $short_names; do
+		typeset fullname="$PREFIX$branch"
+		typeset base=$(git merge-base "$fullname" "$DEVELOP_BRANCH")
+		typeset develop_sha=$(git rev-parse "$DEVELOP_BRANCH")
+		typeset branch_sha=$(git rev-parse "$fullname")
+		if [ "$fullname" = "$current_branch" ]; then
 			printf "* "
 		else
 			printf "  "
@@ -82,26 +87,27 @@
 }
 
 resolve_name_by_prefix() {
+	typeset matches
+	typeset -i num_matches
+
 	# first, check if there is a perfect match
 	if has "$LOCAL_BRANCHES" "$PREFIX$1"; then
 		echo "$1"
 		return 0
 	fi
 
-	MATCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX$1")"
-	NUM_MATCHES=$(echo "$MATCHES" | wc -l)
-	if [ -z "$MATCHES" ]; then
+	matches="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX$1")"
+	num_matches=$(echo "$matches" | wc -l)
+	if [ -z "$matches" ]; then
 		# no prefix match, so take it literally
 		echo "$1"
 	else
-		if [ $NUM_MATCHES -eq 1 ]; then
-			# sed arg looks a bit weird, but $PREFIX should not contain spaces,
-			# so this one is safe
-			echo "$MATCHES" | sed "s $PREFIX  g"
+		if [ $num_matches -eq 1 ]; then
+			echo "${matches#$PREFIX}"
 		else
 			# multiple matches, cannot decide
 			warn "Multiple branches match for prefix '$1':"
-			for match in $MATCHES; do
+			for match in $matches; do
 				warn "- $match"
 			done
 			die "Aborting. Use an unambiguous prefix."
@@ -127,11 +133,11 @@
 }
 
 expand_name_arg_prefix_or_current() {
-	CURRENT_BRANCH=$(git branch | grep '^\* ' | grep -v 'no branch' | sed 's/^* //g')
+	current_branch=$(git branch | grep '^\* ' | grep -v 'no branch' | sed 's/^* //g')
 	if [ "$NAME" != "" ]; then
 		expand_name_arg_prefix
-	elif [ "$CURRENT_BRANCH" != "" ]; then
-		BRANCH="$CURRENT_BRANCH"
+	elif [ "$current_branch" != "" ]; then
+		BRANCH="$current_branch"
 		NAME=$(echo "$BRANCH" | sed "s?$PREFIX??g")
 	else
 		warn "The current HEAD is no feature branch."
@@ -364,8 +370,8 @@
 		BASE=$(git merge-base $DEVELOP_BRANCH $BRANCH)
 		git diff $BASE..$BRANCH
 	else
-		CURRENT_BRANCH=$(git branch | grep '^\* ' | grep -v 'no branch' | sed 's/^* //g')
-		if ! echo "$CURRENT_BRANCH" | grep -q "^$PREFIX"; then
+		current_branch=$(git branch | grep '^\* ' | grep -v 'no branch' | sed 's/^* //g')
+		if ! echo "$current_branch" | grep -q "^$PREFIX"; then
 			die "Not on a feature branch. Name one explicitly."
 		fi
 
@@ -383,7 +389,7 @@
 	gitflow_require_branch "$BRANCH"
 
 	git checkout -q "$BRANCH"
-	OPTS=
+	typeset OPTS=
 	if flag interactive; then
 		OPTS="$OPTS -i"
 	fi
diff --git a/git-flow-hotfix b/git-flow-hotfix
index efc69a7..35fed5b 100644
--- a/git-flow-hotfix
+++ b/git-flow-hotfix
@@ -30,28 +30,33 @@
 	DEFINE_boolean verbose false 'verbose (more) output' v
 	parse_args "$@"
 
-	HOTFIX_BRANCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
-	if [ -z "$HOTFIX_BRANCHES" ]; then
+	typeset hotfix_branches
+	typeset current_branch
+	typeset short_names
+	hotfix_branches="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
+	if [ -z "$hotfix_branches" ]; then
 		warn "No hotfix branches exist."
 		exit 0
 	fi
+	current_branch=$(git branch | grep '^\* ' | grep -v 'no branch' | sed 's/^* //g')
+	short_names=$(echo "$hotfix_branches" | sed "s?^$PREFIX??g")
 
-	CURRENT_BRANCH=$(git branch | grep '^\* ' | grep -v 'no branch' | sed 's/^* //g')
-	SHORT_NAMES=$(echo "$HOTFIX_BRANCHES" | sed "s?^$PREFIX??g")
 	# determine column width first
-	width=0
-	for branch in $SHORT_NAMES; do
-		len=$(($(echo "$branch" | wc -c) - 1))
+	typeset -i width=0
+	typeset branch
+	for branch in $short_names; do
+		typeset -i len=$(($(echo "$branch" | wc -c) - 1))
 		width=$(max $width $len)
 	done
-	width=$(($width + 3))
+	width=width+3
 
-	for branch in $SHORT_NAMES; do
-		fullname="$PREFIX$branch"
-		base=$(git merge-base "$fullname" "$MASTER_BRANCH")
-		master_sha=$(git rev-parse "$MASTER_BRANCH")
-		branch_sha=$(git rev-parse "$fullname")
-		if [ "$fullname" = "$CURRENT_BRANCH" ]; then
+	typeset branch
+	for branch in $short_names; do
+		typeset fullname="$PREFIX$branch"
+		typeset base=$(git merge-base "$fullname" "$MASTER_BRANCH")
+		typeset master_sha=$(git rev-parse "$MASTER_BRANCH")
+		typeset branch_sha=$(git rev-parse "$fullname")
+		if [ "$fullname" = "$current_branch" ]; then
 			printf "* "
 		else
 			printf "  "
@@ -61,7 +66,8 @@
 			if [ "$branch_sha" = "$master_sha" ]; then
 				printf "(no commits yet)"
 			else
-				tagname=$(git name-rev --tags --no-undefined --name-only $base)
+				typeset tagname=$(git name-rev --tags --no-undefined --name-only $base)
+				typeset nicename
 				if [ "$tagname" != "" ]; then
 					nicename="$tagname"
 				else
diff --git a/git-flow-release b/git-flow-release
index b75891e..b23914e 100644
--- a/git-flow-release
+++ b/git-flow-release
@@ -41,28 +41,34 @@
 	DEFINE_boolean verbose false 'verbose (more) output' v
 	parse_args "$@"
 
-	RELEASE_BRANCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
-	if [ -z "$RELEASE_BRANCHES" ]; then
+	typeset release_branches
+	typeset current_branch
+	typeset short_names
+	release_branches="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
+	if [ -z "$release_branches" ]; then
 		warn "No release branches exist."
 		exit 0
 	fi
 
-	CURRENT_BRANCH=$(git branch | grep '^\* ' | grep -v 'no branch' | sed 's/^* //g')
-	SHORT_NAMES=$(echo "$RELEASE_BRANCHES" | sed "s?^$PREFIX??g")
+	current_branch=$(git branch | grep '^\* ' | grep -v 'no branch' | sed 's/^* //g')
+	short_names=$(echo "$release_branches" | sed "s?^$PREFIX??g")
+
 	# determine column width first
-	width=0
-	for branch in $SHORT_NAMES; do
-		len=$(($(echo "$branch" | wc -c) - 1))
+	typeset -i width=0
+	typeset branch
+	for branch in $short_names; do
+		typeset -i len=$(($(echo "$branch" | wc -c) - 1))
 		width=$(max $width $len)
 	done
-	width=$(($width + 3))
+	width=width+3
 
-	for branch in $SHORT_NAMES; do
-		fullname="$PREFIX$branch"
-		base=$(git merge-base "$fullname" "$DEVELOP_BRANCH")
-		develop_sha=$(git rev-parse "$DEVELOP_BRANCH")
-		branch_sha=$(git rev-parse "$fullname")
-		if [ "$fullname" = "$CURRENT_BRANCH" ]; then
+	typeset branch
+	for branch in $short_names; do
+		typeset fullname="$PREFIX$branch"
+		typeset base=$(git merge-base "$fullname" "$DEVELOP_BRANCH")
+		typeset develop_sha=$(git rev-parse "$DEVELOP_BRANCH")
+		typeset branch_sha=$(git rev-parse "$fullname")
+		if [ "$fullname" = "$current_branch" ]; then
 			printf "* "
 		else
 			printf "  "
@@ -72,7 +78,7 @@
 			if [ "$branch_sha" = "$develop_sha" ]; then
 				printf "(no commits yet)"
 			else
-				nicename="$(git rev-parse --short $base)"
+				typeset nicename="$(git rev-parse --short $base)"
 				printf "(based on $nicename)"
 			fi
 		else
diff --git a/git-flow-support b/git-flow-support
index e334592..5dd07d8 100644
--- a/git-flow-support
+++ b/git-flow-support
@@ -32,28 +32,33 @@
 	DEFINE_boolean verbose false 'verbose (more) output' v
 	parse_args "$@"
 
-	SUPPORT_BRANCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
-	if [ -z "$SUPPORT_BRANCHES" ]; then
+	typeset support_branches
+	typeset current_branch
+	typeset short_names
+	support_branches="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
+	if [ -z "$support_branches" ]; then
 		warn "No support branches exist."
 		exit 0
 	fi
+	current_branch=$(git branch | grep '^\* ' | grep -v 'no branch' | sed 's/^* //g')
+	short_names=$(echo "$support_branches" | sed "s?^$PREFIX??g")
 
-	CURRENT_BRANCH=$(git branch | grep '^\* ' | grep -v 'no branch' | sed 's/^* //g')
-	SHORT_NAMES=$(echo "$SUPPORT_BRANCHES" | sed "s?^$PREFIX??g")
 	# determine column width first
-	width=0
-	for branch in $SHORT_NAMES; do
-		len=$(($(echo "$branch" | wc -c) - 1))
+	typeset -i width=0
+	typeset branch
+	for branch in $short_names; do
+		typeset -i len=$(($(echo "$branch" | wc -c) - 1))
 		width=$(max $width $len)
 	done
-	width=$(($width + 3))
+	width=width+3
 
-	for branch in $SHORT_NAMES; do
-		fullname="$PREFIX$branch"
-		base=$(git merge-base "$fullname" "$MASTER_BRANCH")
-		master_sha=$(git rev-parse "$MASTER_BRANCH")
-		branch_sha=$(git rev-parse "$fullname")
-		if [ "$fullname" = "$CURRENT_BRANCH" ]; then
+	typeset branch
+	for branch in $short_names; do
+		typeset fullname="$PREFIX$branch"
+		typeset base=$(git merge-base "$fullname" "$MASTER_BRANCH")
+		typeset master_sha=$(git rev-parse "$MASTER_BRANCH")
+		typeset branch_sha=$(git rev-parse "$fullname")
+		if [ "$fullname" = "$current_branch" ]; then
 			printf "* "
 		else
 			printf "  "
@@ -63,7 +68,8 @@
 			if [ "$branch_sha" = "$master_sha" ]; then
 				printf "(no commits yet)"
 			else
-				tagname=$(git name-rev --tags --no-undefined --name-only $base)
+				typeset tagname=$(git name-rev --tags --no-undefined --name-only $base)
+				typeset nicename
 				if [ "$tagname" != "" ]; then
 					nicename="$tagname"
 				else
diff --git a/gitflow-common b/gitflow-common
index 0cc6802..bcc6dbd 100644
--- a/gitflow-common
+++ b/gitflow-common
@@ -18,7 +18,7 @@
 
 # set logic
 has() {
-	local item=$1; shift
+	typeset item=$1; shift
 	echo " $@ " | grep -q " $item "
 }
 
@@ -31,8 +31,8 @@
 endswith() { [ "$1" != "${1#$2}" ]; }
 
 # convenience functions for checking shFlags flags
-flag() { eval FLAG='$FLAGS_'$1; [ $FLAG -eq $FLAGS_TRUE ]; }
-noflag() { eval FLAG='$FLAGS_'$1; [ $FLAG -ne $FLAGS_TRUE ]; }
+flag() { typeset FLAG; eval FLAG='$FLAGS_'$1; [ $FLAG -eq $FLAGS_TRUE ]; }
+noflag() { typeset FLAG; eval FLAG='$FLAGS_'$1; [ $FLAG -ne $FLAGS_TRUE ]; }
 
 #
 # Git specific common functionality
@@ -55,7 +55,7 @@
 
 gitflow_require_clean_working_tree() {
 	gitflow_test_clean_working_tree
-	result=$?
+	typeset -i result=$?
 	if [ $result -eq 1 ]; then
 		die "fatal: Working tree contains unstaged changes. Aborting."
 	fi
@@ -100,10 +100,10 @@
 # 3    Branch needs a real merge
 #
 gitflow_test_branches_equal() {
-	commit1=$(git rev-parse "$1")
-	commit2=$(git rev-parse "$2")
+	typeset commit1=$(git rev-parse "$1")
+	typeset commit2=$(git rev-parse "$2")
 	if [ "$commit1" != "$commit2" ]; then
-		base=$(git merge-base "$commit1" "$commit2")
+		typeset base=$(git merge-base "$commit1" "$commit2")
 		if [ "$commit1" = "$base" ]; then
 			return 1
 		elif [ "$commit2" = "$base" ]; then
@@ -120,7 +120,7 @@
 	gitflow_require_local_branch "$1"
 	gitflow_require_remote_branch "$2"
 	gitflow_test_branches_equal "$1" "$2"
-	status=$?
+	typeset -i status=$?
 	if [ $status -gt 0 ]; then
 		warn "Branches '$1' and '$2' have diverged."
 		if [ $status -eq 1 ]; then
@@ -140,9 +140,8 @@
 # Checks whether branch $1 is succesfully merged into $2
 #
 gitflow_is_branch_merged_into() {
-	local SUBJECT=$1
-	local BASE=$2
-	ALL_MERGES=$(git branch --contains $SUBJECT | sed 's/^[* ] //')
-	has $BASE $ALL_MERGES
+	typeset subject=$1
+	typeset base=$2
+	typeset all_merges=$(git branch --contains $subject | sed 's/^[* ] //')
+	has $base $all_merges
 }
-
