diff --git a/git-flow-feature b/git-flow-feature
index bd0fe85..db45d81 100644
--- a/git-flow-feature
+++ b/git-flow-feature
@@ -35,7 +35,7 @@
 	typeset feature_branches
 	typeset current_branch
 	typeset short_names
-	feature_branches="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
+	feature_branches=$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")
 	if [ -z "$feature_branches" ]; then
 		warn "No feature branches exist."
 		exit 0
@@ -54,7 +54,7 @@
 
 	typeset branch
 	for branch in $short_names; do
-		typeset fullname="$PREFIX$branch"
+		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")
@@ -133,7 +133,7 @@
 	eval set -- "${FLAGS_ARGV}"
 
 	# read arguments into global variables
-	NAME="$1"
+	NAME=$1
 	BRANCH=$PREFIX$NAME
 }
 
@@ -141,24 +141,24 @@
 	DEFINE_boolean fetch false 'fetch from origin before performing local operation' F
 	DEFINE_boolean force false 'force creation of feature branch (ignores dirty working tree)' f
 	parse_args "$@"
-	BASE="${2:-$DEVELOP_BRANCH}"
+	BASE=${2:-$DEVELOP_BRANCH}
 	require_name_arg
 
 	# sanity checks
 	if noflag force; then
 		gitflow_require_clean_working_tree
 	fi
-	gitflow_require_branch_absent $BRANCH
+	gitflow_require_branch_absent "$BRANCH"
 
 	# update the local repo with remote changes, if asked
 	if flag fetch; then
-		git fetch -q $ORIGIN $DEVELOP_BRANCH
+		git fetch -q "$ORIGIN" "$DEVELOP_BRANCH"
 	fi
 
-	gitflow_require_branches_equal $DEVELOP_BRANCH $ORIGIN/$DEVELOP_BRANCH
+	gitflow_require_branches_equal "$DEVELOP_BRANCH" "$ORIGIN/$DEVELOP_BRANCH"
 
 	# create branch
-	if ! git checkout -b $BRANCH $BASE; then
+	if ! git checkout -b "$BRANCH" "$BASE"; then
 		die "Could not create feature branch '$BRANCH'"
 	fi
 
@@ -181,7 +181,7 @@
 	expand_nameprefix_arg
 
 	# sanity checks
-	gitflow_require_branch $BRANCH
+	gitflow_require_branch "$BRANCH"
 
 	# detect if we're restoring from a merge conflict
 	if [ -f "$GIT_DIR/.gitflow/MERGE_BASE" ]; then
@@ -195,12 +195,12 @@
 		# exit code for "unmerged changes in working tree", which we should
 		# actually be testing for here
 		if gitflow_test_clean_working_tree; then
-			FINISH_BASE="$(cat "$GIT_DIR/.gitflow/MERGE_BASE")"
+			FINISH_BASE=$(cat "$GIT_DIR/.gitflow/MERGE_BASE")
 
 			# Since the working tree is now clean, either the user did a
 			# succesfull merge manually, or the merge was cancelled.
 			# We detect this using gitflow_is_branch_merged_into()
-			if gitflow_is_branch_merged_into $BRANCH $FINISH_BASE; then
+			if gitflow_is_branch_merged_into "$BRANCH" "$FINISH_BASE"; then
 				rm -f "$GIT_DIR/.gitflow/MERGE_BASE"
 				helper_finish_cleanup
 				exit 0
@@ -228,13 +228,13 @@
 
 	# update local repo with remote changes first, if asked
 	if flag fetch; then
-		git fetch -q $ORIGIN $BRANCH
+		git fetch -q "$ORIGIN" "$BRANCH"
 	fi
 
-	if has $ORIGIN/$BRANCH $REMOTE_BRANCHES; then
-		gitflow_require_branches_equal $BRANCH $ORIGIN/$BRANCH
+	if has "$ORIGIN/$BRANCH" "$REMOTE_BRANCHES"; then
+		gitflow_require_branches_equal "$BRANCH" "$ORIGIN/$BRANCH"
 	fi
-	gitflow_require_branches_equal $DEVELOP_BRANCH $ORIGIN/$DEVELOP_BRANCH
+	gitflow_require_branches_equal "$DEVELOP_BRANCH" "$ORIGIN/$DEVELOP_BRANCH"
 
 	# if the user wants to rebase, do that first
 	if flag rebase; then
@@ -248,11 +248,11 @@
 	fi
 
 	# merge into BASE
-	git checkout $DEVELOP_BRANCH
-	if [ "$(git rev-list -n2 $DEVELOP_BRANCH..$BRANCH | wc -l)" -eq 1 ]; then
-		git merge --ff $BRANCH
+	git checkout "$DEVELOP_BRANCH"
+	if [ "$(git rev-list -n2 "$DEVELOP_BRANCH..$BRANCH" | wc -l)" -eq 1 ]; then
+		git merge --ff "$BRANCH"
 	else
-		git merge --no-ff $BRANCH
+		git merge --no-ff "$BRANCH"
 	fi
 
 	if [ $? -ne 0 ]; then
@@ -277,14 +277,14 @@
 
 helper_finish_cleanup() {
 	# sanity checks
-	gitflow_require_branch $BRANCH
+	gitflow_require_branch "$BRANCH"
 	gitflow_require_clean_working_tree
 
 	# delete branch
 	if flag fetch; then
-		git push $ORIGIN :refs/heads/$BRANCH
+		git push "$ORIGIN" ":refs/heads/$BRANCH"
 	fi
-	git branch -d $BRANCH
+	git branch -d "$BRANCH"
 
 	echo
 	echo "Summary of actions:"
@@ -301,18 +301,18 @@
 
 	# sanity checks
 	gitflow_require_clean_working_tree
-	gitflow_require_branch $BRANCH
-	git fetch -q $ORIGIN
-	gitflow_require_branch_absent $ORIGIN/$BRANCH
+	gitflow_require_branch "$BRANCH"
+	git fetch -q "$ORIGIN"
+	gitflow_require_branch_absent "$ORIGIN/$BRANCH"
 
 	# create remote branch
-	git push $ORIGIN $BRANCH:refs/heads/$BRANCH
-	git fetch -q $ORIGIN
+	git push "$ORIGIN" "$BRANCH:refs/heads/$BRANCH"
+	git fetch -q "$ORIGIN"
 
 	# configure remote tracking
-	git config branch.$BRANCH.remote $ORIGIN
-	git config branch.$BRANCH.merge refs/heads/$BRANCH
-	git checkout $BRANCH
+	git config "branch.$BRANCH.remote" "$ORIGIN"
+	git config "branch.$BRANCH.merge" "refs/heads/$BRANCH"
+	git checkout "$BRANCH"
 
 	echo
 	echo "Summary of actions:"
@@ -328,12 +328,12 @@
 
 	# sanity checks
 	gitflow_require_clean_working_tree
-	gitflow_require_branch_absent $BRANCH
-	git fetch -q $ORIGIN
-	gitflow_require_branch $ORIGIN/$BRANCH
+	gitflow_require_branch_absent "$BRANCH"
+	git fetch -q "$ORIGIN"
+	gitflow_require_branch "$ORIGIN/$BRANCH"
 
 	# create tracking branch
-	git checkout -b $BRANCH $ORIGIN/$BRANCH
+	git checkout -b "$BRANCH" "$ORIGIN/$BRANCH"
 
 	echo
 	echo "Summary of actions:"
@@ -347,15 +347,15 @@
 
 	if [ "$NAME" != "" ]; then
 		expand_nameprefix_arg
-		BASE=$(git merge-base $DEVELOP_BRANCH $BRANCH)
-		git diff $BASE..$BRANCH
+		BASE=$(git merge-base "$DEVELOP_BRANCH" "$BRANCH")
+		git diff "$BASE..$BRANCH"
 	else
 		if ! gitflow_current_branch | grep -q "^$PREFIX"; then
 			die "Not on a feature branch. Name one explicitly."
 		fi
 
-		BASE=$(git merge-base $DEVELOP_BRANCH HEAD)
-		git diff $BASE
+		BASE=$(git merge-base "$DEVELOP_BRANCH" HEAD)
+		git diff "$BASE"
 	fi
 }
 
diff --git a/git-flow-hotfix b/git-flow-hotfix
index 4333e30..cee8d2f 100644
--- a/git-flow-hotfix
+++ b/git-flow-hotfix
@@ -32,26 +32,26 @@
 	typeset hotfix_branches
 	typeset current_branch
 	typeset short_names
-	hotfix_branches="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
+	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")
+	short_names=$(echo "$hotfix_branches" | sed "s ^$PREFIX  g")
 
 	# determine column width first
 	typeset -i width=0
 	typeset branch
 	for branch in $short_names; do
-		typeset -i len=$(($(echo "$branch" | wc -c) - 1))
+		typeset -i len=${#branch}
 		width=$(max $width $len)
 	done
 	width=width+3
 
 	typeset branch
 	for branch in $short_names; do
-		typeset fullname="$PREFIX$branch"
+		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")
@@ -65,12 +65,12 @@
 			if [ "$branch_sha" = "$master_sha" ]; then
 				printf "(no commits yet)"
 			else
-				typeset 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"
+					nicename=$tagname
 				else
-					nicename="$(git rev-parse --short $base)"
+					nicename=$(git rev-parse --short "$base")
 				fi
 				printf "(based on $nicename)"
 			fi
@@ -92,7 +92,7 @@
 	eval set -- "${FLAGS_ARGV}"
 
 	# read arguments into global variables
-	VERSION="$1"
+	VERSION=$1
 	BRANCH=$PREFIX$VERSION
 }
 
@@ -115,21 +115,21 @@
 cmd_start() {
 	DEFINE_boolean fetch true "fetch from $ORIGIN before performing finish" F
 	parse_args "$@"
-	BASE="${2:-$MASTER_BRANCH}"
+	BASE=${2:-$MASTER_BRANCH}
 	require_version_arg
 	require_base_is_on_master
 
 	# sanity checks
 	gitflow_require_clean_working_tree
-	gitflow_require_branch_absent $BRANCH
-	gitflow_require_tag_absent $VERSION_PREFIX$VERSION
+	gitflow_require_branch_absent "$BRANCH"
+	gitflow_require_tag_absent "$VERSION_PREFIX$VERSION"
 	if flag fetch; then
-		git fetch -q $ORIGIN $MASTER_BRANCH
+		git fetch -q "$ORIGIN" "$MASTER_BRANCH"
 	fi
-	gitflow_require_branches_equal $MASTER_BRANCH $ORIGIN/$MASTER_BRANCH
+	gitflow_require_branches_equal "$MASTER_BRANCH" "$ORIGIN/$MASTER_BRANCH"
 
 	# create branch
-	git checkout -b $BRANCH $BASE
+	git checkout -b "$BRANCH" "$BASE"
 
 	echo
 	echo "Summary of actions:"
@@ -159,24 +159,24 @@
 	fi
 
 	# sanity checks
-	gitflow_require_branch $BRANCH
+	gitflow_require_branch "$BRANCH"
 	gitflow_require_clean_working_tree
 	if flag fetch; then
-		git fetch -q $ORIGIN $MASTER_BRANCH || \
+		git fetch -q "$ORIGIN" "$MASTER_BRANCH" || \
 		  die "Could not fetch $MASTER_BRANCH from $ORIGIN."
-		git fetch -q $ORIGIN $DEVELOP_BRANCH || \
+		git fetch -q "$ORIGIN" "$DEVELOP_BRANCH" || \
 		  die "Could not fetch $DEVELOP_BRANCH from $ORIGIN."
 	fi
-	gitflow_require_branches_equal $MASTER_BRANCH $ORIGIN/$MASTER_BRANCH
-	gitflow_require_branches_equal $DEVELOP_BRANCH $ORIGIN/$DEVELOP_BRANCH
+	gitflow_require_branches_equal "$MASTER_BRANCH" "$ORIGIN/$MASTER_BRANCH"
+	gitflow_require_branches_equal "$DEVELOP_BRANCH" "$ORIGIN/$DEVELOP_BRANCH"
 
 	# try to merge into master
 	# in case a previous attempt to finish this release branch has failed,
 	# but the merge into master was successful, we skip it now
-	if ! gitflow_is_branch_merged_into $BRANCH $MASTER_BRANCH; then
-		git checkout $MASTER_BRANCH || \
+	if ! gitflow_is_branch_merged_into "$BRANCH" "$MASTER_BRANCH"; then
+		git checkout "$MASTER_BRANCH" || \
 		  die "Could not check out $MASTER_BRANCH."
-		git merge --no-ff $BRANCH || \
+		git merge --no-ff "$BRANCH" || \
 		  die "There were merge conflicts."
 		  # TODO: What do we do now?
 	fi
@@ -185,7 +185,7 @@
 	# in case a previous attempt to finish this release branch has failed,
 	# but the tag was set successful, we skip it now
 	typeset tagname=$VERSION_PREFIX$VERSION
-	if ! gitflow_tag_exists $tagname; then
+	if ! gitflow_tag_exists "$tagname"; then
 		typeset opts="-a"
 		flag sign && opts="$opts -s"
 		[ "$FLAGS_signingkey" != "" ] && opts="$opts -u '$FLAGS_signingkey'"
@@ -197,19 +197,19 @@
 	# try to merge into develop
 	# in case a previous attempt to finish this release branch has failed,
 	# but the merge into develop was successful, we skip it now
-	if ! gitflow_is_branch_merged_into $BRANCH $DEVELOP_BRANCH; then
-		git checkout $DEVELOP_BRANCH || \
+	if ! gitflow_is_branch_merged_into "$BRANCH" "$DEVELOP_BRANCH"; then
+		git checkout "$DEVELOP_BRANCH" || \
 		  die "Could not check out $DEVELOP_BRANCH."
 
 		# TODO: Actually, accounting for 'git describe' pays, so we should
 		# ideally git merge --no-ff $tagname here, instead!
-		git merge --no-ff $BRANCH || \
+		git merge --no-ff "$BRANCH" || \
 		  die "There were merge conflicts."
 		  # TODO: What do we do now?
 	fi
 
 	# delete branch
-	git branch -d $BRANCH
+	git branch -d "$BRANCH"
 
 	# TODO: Implement an optional push to master
 	# git push origin develop; git push origin master; git push --tags origin
diff --git a/git-flow-init b/git-flow-init
index c2e75b2..a8e0825 100644
--- a/git-flow-init
+++ b/git-flow-init
@@ -27,47 +27,47 @@
 	fi
 
 	if ! git rev-parse --quiet --verify HEAD 2>&1 >/dev/null; then
-		touch $README
-		git add $README
+		touch "$README"
+		git add "$README"
 		git commit --quiet -m "initial commit"
 		if [ "$MASTER_BRANCH" != "master" ]; then
-			git branch -m master $MASTER_BRANCH
+			git branch -m master "$MASTER_BRANCH"
 		fi
 		echo "- An initial commit was created at branch '$MASTER_BRANCH'"
 	fi
 
-	if ! git rev-parse --verify $MASTER_BRANCH 2>&1 >/dev/null; then
+	if ! git rev-parse --verify "$MASTER_BRANCH" 2>&1 >/dev/null; then
 		die "Cannot find your master branch. Try: git branch -m <mymaster> $MASTER_BRANCH"
 	fi
 
 	gitflow_require_clean_working_tree
 
-	if git remote | grep -q $ORIGIN; then
-		git fetch -q $ORIGIN
-		gitflow_require_branches_equal $MASTER_BRANCH $ORIGIN/$MASTER_BRANCH
+	if git remote | grep -q "$ORIGIN"; then
+		git fetch -q "$ORIGIN"
+		gitflow_require_branches_equal "$MASTER_BRANCH" "$ORIGIN/$MASTER_BRANCH"
 	fi
 
-	if git rev-parse --verify $DEVELOP_BRANCH 2>&1 >/dev/null; then
-		gitflow_require_branches_equal $DEVELOP_BRANCH $ORIGIN/$DEVELOP_BRANCH
+	if git rev-parse --verify "$DEVELOP_BRANCH" 2>&1 >/dev/null; then
+		gitflow_require_branches_equal "$DEVELOP_BRANCH" "$ORIGIN/$DEVELOP_BRANCH"
 	else
-		git checkout -q -b $DEVELOP_BRANCH $MASTER_BRANCH
+		git checkout -q -b "$DEVELOP_BRANCH" "$MASTER_BRANCH"
 		echo "- A new branch '$DEVELOP_BRANCH' was created"
 		echo "- You are now on branch '$DEVELOP_BRANCH'"
 	fi
 
-	if ! git remote | grep -q $ORIGIN; then
+	if ! git remote | grep -q "$ORIGIN"; then
 		if [ "$1" = "" ]; then
 			echo "- No remote location was added. Try: git remote add $ORIGIN <url>"
 		else
-			git remote add $ORIGIN $1
+			git remote add "$ORIGIN" "$1"
 			echo "- A new remote location '$1' was added"
 		fi
 	fi
 
 	echo
 
-	if git remote | grep -q $ORIGIN; then
-		git push $ORIGIN $MASTER_BRANCH $DEVELOP_BRANCH
+	if git remote | grep -q "$ORIGIN"; then
+		git push "$ORIGIN" "$MASTER_BRANCH" "$DEVELOP_BRANCH"
 	fi
 }
 
diff --git a/git-flow-release b/git-flow-release
index 9750cc8..556af28 100644
--- a/git-flow-release
+++ b/git-flow-release
@@ -43,27 +43,27 @@
 	typeset release_branches
 	typeset current_branch
 	typeset short_names
-	release_branches="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
+	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")
+	short_names=$(echo "$release_branches" | sed "s ^$PREFIX  g")
 
 	# determine column width first
 	typeset -i width=0
 	typeset branch
 	for branch in $short_names; do
-		typeset -i len=$(($(echo "$branch" | wc -c) - 1))
+		typeset -i len=${#branch}
 		width=$(max $width $len)
 	done
 	width=width+3
 
 	typeset branch
 	for branch in $short_names; do
-		typeset fullname="$PREFIX$branch"
+		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")
@@ -77,7 +77,7 @@
 			if [ "$branch_sha" = "$develop_sha" ]; then
 				printf "(no commits yet)"
 			else
-				typeset nicename="$(git rev-parse --short $base)"
+				typeset nicename=$(git rev-parse --short "$base")
 				printf "(based on $nicename)"
 			fi
 		else
@@ -98,8 +98,8 @@
 	eval set -- "${FLAGS_ARGV}"
 
 	# read arguments into global variables
-	VERSION="$1"
-	BRANCH="$PREFIX$VERSION"
+	VERSION=$1
+	BRANCH=$PREFIX$VERSION
 }
 
 require_version_arg() {
@@ -121,21 +121,21 @@
 cmd_start() {
 	DEFINE_boolean fetch true "fetch from $ORIGIN before performing finish" F
 	parse_args "$@"
-	BASE="${2:-$DEVELOP_BRANCH}"
+	BASE=${2:-$DEVELOP_BRANCH}
 	require_version_arg
 	require_base_is_on_develop
 
 	# sanity checks
 	gitflow_require_clean_working_tree
-	gitflow_require_branch_absent $BRANCH
-	gitflow_require_tag_absent $VERSION_PREFIX$VERSION
+	gitflow_require_branch_absent "$BRANCH"
+	gitflow_require_tag_absent "$VERSION_PREFIX$VERSION"
 	if flag fetch; then
-		git fetch -q $ORIGIN $DEVELOP_BRANCH
+		git fetch -q "$ORIGIN" "$DEVELOP_BRANCH"
 	fi
-	gitflow_require_branches_equal $DEVELOP_BRANCH $ORIGIN/$DEVELOP_BRANCH
+	gitflow_require_branches_equal "$DEVELOP_BRANCH" "$ORIGIN/$DEVELOP_BRANCH"
 
 	# create branch
-	git checkout -b $BRANCH $BASE
+	git checkout -b "$BRANCH" "$BASE"
 
 	echo
 	echo "Summary of actions:"
@@ -165,24 +165,24 @@
 	fi
 
 	# sanity checks
-	gitflow_require_branch $BRANCH
+	gitflow_require_branch "$BRANCH"
 	gitflow_require_clean_working_tree
 	if flag fetch; then
-		git fetch -q $ORIGIN $MASTER_BRANCH || \
+		git fetch -q "$ORIGIN" "$MASTER_BRANCH" || \
 		  die "Could not fetch $MASTER_BRANCH from $ORIGIN."
-		git fetch -q $ORIGIN $DEVELOP_BRANCH || \
+		git fetch -q "$ORIGIN" "$DEVELOP_BRANCH" || \
 		  die "Could not fetch $DEVELOP_BRANCH from $ORIGIN."
 	fi
-	gitflow_require_branches_equal $MASTER_BRANCH $ORIGIN/$MASTER_BRANCH
-	gitflow_require_branches_equal $DEVELOP_BRANCH $ORIGIN/$DEVELOP_BRANCH
+	gitflow_require_branches_equal "$MASTER_BRANCH" "$ORIGIN/$MASTER_BRANCH"
+	gitflow_require_branches_equal "$DEVELOP_BRANCH" "$ORIGIN/$DEVELOP_BRANCH"
 
 	# try to merge into master
 	# in case a previous attempt to finish this release branch has failed,
 	# but the merge into master was successful, we skip it now
-	if ! gitflow_is_branch_merged_into $BRANCH $MASTER_BRANCH; then
-		git checkout $MASTER_BRANCH || \
+	if ! gitflow_is_branch_merged_into "$BRANCH" "$MASTER_BRANCH"; then
+		git checkout "$MASTER_BRANCH" || \
 		  die "Could not check out $MASTER_BRANCH."
-		git merge --no-ff $BRANCH || \
+		git merge --no-ff "$BRANCH" || \
 		  die "There were merge conflicts."
 		  # TODO: What do we do now?
 	fi
@@ -191,7 +191,7 @@
 	# in case a previous attempt to finish this release branch has failed,
 	# but the tag was set successful, we skip it now
 	typeset tagname=$VERSION_PREFIX$VERSION
-	if ! gitflow_tag_exists $tagname; then
+	if ! gitflow_tag_exists "$tagname"; then
 		typeset opts="-a"
 		flag sign && opts="$opts -s"
 		[ "$FLAGS_signingkey" != "" ] && opts="$opts -u '$FLAGS_signingkey'"
@@ -203,19 +203,19 @@
 	# try to merge into develop
 	# in case a previous attempt to finish this release branch has failed,
 	# but the merge into develop was successful, we skip it now
-	if ! gitflow_is_branch_merged_into $BRANCH $DEVELOP_BRANCH; then
-		git checkout $DEVELOP_BRANCH || \
+	if ! gitflow_is_branch_merged_into "$BRANCH" "$DEVELOP_BRANCH"; then
+		git checkout "$DEVELOP_BRANCH" || \
 		  die "Could not check out $DEVELOP_BRANCH."
 
 		# TODO: Actually, accounting for 'git describe' pays, so we should
 		# ideally git merge --no-ff $tagname here, instead!
-		git merge --no-ff $BRANCH || \
+		git merge --no-ff "$BRANCH" || \
 		  die "There were merge conflicts."
 		  # TODO: What do we do now?
 	fi
 
 	# delete branch
-	git branch -d $BRANCH
+	git branch -d "$BRANCH"
 
 	# TODO: Implement an optional push to master
 	# git push origin develop; git push origin master; git push --tags origin
diff --git a/git-flow-support b/git-flow-support
index 2edd46e..06bea16 100644
--- a/git-flow-support
+++ b/git-flow-support
@@ -34,26 +34,26 @@
 	typeset support_branches
 	typeset current_branch
 	typeset short_names
-	support_branches="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
+	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")
+	short_names=$(echo "$support_branches" | sed "s ^$PREFIX  g")
 
 	# determine column width first
 	typeset -i width=0
 	typeset branch
 	for branch in $short_names; do
-		typeset -i len=$(($(echo "$branch" | wc -c) - 1))
+		typeset -i len=${#branch}
 		width=$(max $width $len)
 	done
 	width=width+3
 
 	typeset branch
 	for branch in $short_names; do
-		typeset fullname="$PREFIX$branch"
+		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")
@@ -67,12 +67,12 @@
 			if [ "$branch_sha" = "$master_sha" ]; then
 				printf "(no commits yet)"
 			else
-				typeset 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"
+					nicename=$tagname
 				else
-					nicename="$(git rev-parse --short $base)"
+					nicename=$(git rev-parse --short "$base")
 				fi
 				printf "(based on $nicename)"
 			fi
@@ -94,8 +94,8 @@
 	eval set -- "${FLAGS_ARGV}"
 
 	# read arguments into global variables
-	VERSION="$1"
-	BASE="$2"
+	VERSION=$1
+	BASE=$2
 	BRANCH=$PREFIX$VERSION
 }
 
@@ -135,9 +135,9 @@
 
 	# fetch remote changes
 	if flag fetch; then
-		git fetch -q $ORIGIN $BASE
+		git fetch -q "$ORIGIN" "$BASE"
 	fi
-	gitflow_require_branch_absent $BRANCH
+	gitflow_require_branch_absent "$BRANCH"
 
 	# create branch
 	git checkout -b "$BRANCH" "$BASE"
diff --git a/gitflow-common b/gitflow-common
index 4f2a85a..b1c42ac 100644
--- a/gitflow-common
+++ b/gitflow-common
@@ -61,8 +61,8 @@
 # 2: Multiple matches found. These matches are written to stderr
 #
 resolve_nameprefix() {
-	typeset name="$1"
-	typeset prefix="$2"
+	typeset name=$1
+	typeset prefix=$2
 	typeset matches
 	typeset -i num_matches
 
@@ -72,7 +72,7 @@
 		return 0
 	fi
 
-	matches="$(echo "$LOCAL_BRANCHES" | grep "^$prefix$name")"
+	matches=$(echo "$LOCAL_BRANCHES" | grep "^$prefix$name")
 	num_matches=$(echo "$matches" | wc -l)
 	if [ -z "$matches" ]; then
 		# no prefix match, so take it literally
