diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..8566567
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "shFlags"]
+	path = shFlags
+	url = git://github.com/nvie/shFlags.git
diff --git a/git-flow b/git-flow
index 5be05f4..303e8a7 100755
--- a/git-flow
+++ b/git-flow
@@ -53,6 +53,13 @@
 		exit 1
 	fi
 
+	# use the shFlags project to parse the command line arguments
+	. "$GITFLOW_DIR/shFlags/src/shFlags"
+	#DEFINE_boolean quiet 0 'run without output' q
+	#DEFINE_boolean verbose 0 'run verbose (more output)' v
+	FLAGS "$@" || exit $?
+	eval set -- "${FLAGS_ARGV}"
+
 	# sanity checks
 	SUBCOMMAND="$1"; shift
 
@@ -73,7 +80,13 @@
 	# run command
 	. "$GITFLOW_DIR/git-flow-$SUBCOMMAND"
 
-	SUBACTION="${1:-default}"; shift
+	# test if the first argument is a flag (i.e. starts with '-')
+	# in that case, we interpret this arg as a flag for the default
+	# command
+	SUBACTION="default"
+	if [ "$1" != "" ] && ! echo "$1" | grep -q "^-"; then
+		SUBACTION="$1"; shift
+	fi
 	if ! typeset -f cmd_$SUBACTION 2>&1 >/dev/null; then
 		warn "Unknown subcommand: '$1'"
 		usage
diff --git a/git-flow-feature b/git-flow-feature
index 26f647a..5e42b15 100644
--- a/git-flow-feature
+++ b/git-flow-feature
@@ -13,7 +13,6 @@
 #
 
 PREFIX=$(git config --get gitflow.prefix.feature || echo feature/)
-FLAG_FETCH=0
 
 usage() {
 	echo "usage: git flow feature [list]"
@@ -42,6 +41,9 @@
 }
 
 cmd_list() {
+	DEFINE_boolean verbose 0 'verbose (more) output' v
+	parse_args "$@"
+
 	FEATURE_BRANCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX")"
 	if [ -z "$FEATURE_BRANCHES" ]; then
 		warn "No feature branches exist."
@@ -64,63 +66,63 @@
 
 	MATCHES="$(echo "$LOCAL_BRANCHES" | grep "^$PREFIX$1")"
 	NUM_MATCHES=$(echo "$MATCHES" | wc -l)
-	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"
-	elif [ $NUM_MATCHES -eq 0 ]; then
+	if [ -z "$MATCHES" ]; then
 		# no prefix match, so take it literally
 		echo "$1"
 	else
-		# multiple matches, cannot decide
-		warn "Multiple branches match for prefix '$1':"
-		for match in $MATCHES; do
-			warn "- $match"
-		done
-		die "Aborting. Use an unambiguous prefix."
+		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"
+		else
+			# multiple matches, cannot decide
+			warn "Multiple branches match for prefix '$1':"
+			for match in $MATCHES; do
+				warn "- $match"
+			done
+			die "Aborting. Use an unambiguous prefix."
+		fi
 	fi
 }
 
-get_name_by_prefix() {
-	NAME=$(resolve_name_by_prefix "$1")
-	if [ -z "$NAME" ]; then
+require_name() {
+	if [ "$NAME" = "" ]; then
+		echo "Missing argument <name>"
+		usage
 		exit 1
 	fi
 }
 
-parse_args_common() {
-	# TODO: When we have a nice structured way of parsing flags with getopt,
-	# implement the following flags:
-	# --fetch, to set FLAG_FETCH=1
-	# --no-fetch, to set FLAG_FETCH=0
-	BASE="${2:-$DEVELOP_BRANCH}"
-	if [ "$NAME" = "" ]; then
-		echo "Missing argument <name>."
-		usage
+expand_name_arg_prefix() {
+	require_name
+	NAME=$(resolve_name_by_prefix "$NAME")
+	if echo "$NAME" | grep -q "^[ \t\n\r]+$"; then
 		exit 1
 	fi
 	BRANCH=$PREFIX$NAME
 }
 
-parse_args_with_name_prefix() {
-	get_name_by_prefix "$1"
-	parse_args_common
-}
-
 parse_args() {
+	# parse options
+	FLAGS "$@" || exit $?
+	eval set -- "${FLAGS_ARGV}"
+
+	# read arguments into global variables
 	NAME="$1"
-	parse_args_common
+	BASE="${2:-$DEVELOP_BRANCH}"
 }
 
 cmd_start() {
+	DEFINE_boolean fetch 0 'fetch from origin before performing local operation' F
 	parse_args "$@"
+	require_name
 
 	# sanity checks
 	gitflow_require_clean_working_tree
 	gitflow_require_branch_absent $BRANCH
 
 	# update the local repo with remote changes, if asked
-	if [ $FLAG_FETCH -eq 1 ]; then
+	if [ $FLAGS_fetch -eq 1 ]; then
 		git fetch -q $ORIGIN $DEVELOP_BRANCH
 	fi
 
@@ -141,7 +143,11 @@
 }
 
 cmd_finish() {
-	parse_args_with_name_prefix "$@"
+	DEFINE_boolean fetch 0 'fetch from origin before performing local operation' F
+	DEFINE_boolean rebase 0 'rebase instead of merge' r
+	DEFINE_boolean squash 0 'squash all commits when rebasing (implies --rebase)' s
+	parse_args "$@"
+	expand_name_arg_prefix
 
 	# sanity checks
 	gitflow_require_branch $BRANCH
@@ -190,7 +196,7 @@
 	gitflow_require_clean_working_tree
 
 	# update local repo with remote changes first, if asked
-	if [ $FLAG_FETCH -eq 1 ]; then
+	if [ $FLAGS_fetch -eq 1 ]; then
 		git fetch -q $ORIGIN $BRANCH
 	fi
 
@@ -249,6 +255,7 @@
 
 cmd_publish() {
 	parse_args "$@"
+	expand_name_arg_prefix
 
 	# sanity checks
 	gitflow_require_clean_working_tree
@@ -275,6 +282,7 @@
 
 cmd_track() {
 	parse_args "$@"
+	require_name
 
 	# sanity checks
 	gitflow_require_clean_working_tree
@@ -293,7 +301,9 @@
 }
 
 cmd_diff() {
-	parse_args_with_name_prefix "$@"
+	parse_args "$@"
+	expand_name_arg_prefix 
+
 	# TODO: if this feature has been based on a non-develop branch, we really
 	# should not be comparing to $DEVELOP. How to deal with this?
 	git diff $DEVELOP_BRANCH..$BRANCH
diff --git a/shFlags b/shFlags
new file mode 160000
index 0000000..2fb06af
--- /dev/null
+++ b/shFlags
@@ -0,0 +1 @@
+Subproject commit 2fb06af13de884e9680f14a00c82e52a67c867f1
