diff --git a/LICENSE b/LICENSE
index 63c95ac..6db5300 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,22 +1,20 @@
+The MIT License (MIT)
 Copyright (c) 2010 Justin Hileman
 
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
 
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
 
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
+OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.markdown b/README.markdown
index d9bb012..b0b70fb 100644
--- a/README.markdown
+++ b/README.markdown
@@ -22,10 +22,10 @@
     1. Place it in your `bash_completion.d` folder, usually something like `/etc/bash_completion.d`,
        `/usr/local/etc/bash_completion.d` or `~/bash_completion.d`.
 
-    2. Or, copy it somewhere (e.g. `~/.git-flow-completion.sh`) and put the following line in the `.profile` or
+    2. Or, copy it somewhere (e.g. `~/git-flow-completion.bash`) and put the following line in the `.profile` or
        `.bashrc` file in your home directory:
 
-            source ~/.git-flow-completion.sh
+            source ~/git-flow-completion.bash
 
  2. If you are using Git < 1.7.1, you will need to edit git completion (usually `/etc/bash_completion.d/git` or
     `git-completion.sh`) and add the following line to the `$command` case in `_git`:
diff --git a/git-flow-completion.bash b/git-flow-completion.bash
index c4fefec..e535ad4 100755
--- a/git-flow-completion.bash
+++ b/git-flow-completion.bash
@@ -154,7 +154,7 @@
 
 __git_flow_hotfix ()
 {
-	local subcommands="list start finish help"
+	local subcommands="list start finish track publish help"
 	local subcommand="$(__git_find_on_cmdline "$subcommands")"
 	if [ -z "$subcommand" ]; then
 		__gitcomp "$subcommands"
@@ -166,6 +166,14 @@
 		__gitcomp "$(__git_flow_list_branches 'hotfix')"
 		return
 		;;
+	publish)
+		__gitcomp "$(comm -23 <(__git_flow_list_branches 'hotfix') <(__git_flow_list_remote_branches 'hotfix'))"
+		return
+		;;
+	track)
+		__gitcomp "$(comm -23 <(__git_flow_list_remote_branches 'hotfix') <(__git_flow_list_branches 'hotfix'))"
+		return
+		;;
 	*)
 		COMPREPLY=()
 		;;
diff --git a/git-flow-completion.zsh b/git-flow-completion.zsh
index 0ca99bb..8607b5f 100644
--- a/git-flow-completion.zsh
+++ b/git-flow-completion.zsh
@@ -341,4 +341,4 @@
 	return 0
 }
 
-zstyle ':completion:*:*:git:*' user-commands flow:'description for foo'
+zstyle ':completion:*:*:git:*' user-commands flow:'provide high-level repository operations'
