diff --git a/lib/aliases.zsh b/lib/aliases.zsh
index 88d68e1426b356e7ed52b304125f2773181368b7..d3ee2dd8c38ef3cf0ae01817c7306daa3a1456c1 100644
--- a/lib/aliases.zsh
+++ b/lib/aliases.zsh
@@ -37,7 +37,6 @@ alias gc='git commit -v'
 alias gca='git commit -v -a'
 alias gb='git branch'
 alias gba='git branch -a'
-alias gdb='git branch -d'
 alias gcount='git shortlog -sn'
 alias gcp='git cherry-pick'
 
diff --git a/lib/completion.zsh b/lib/completion.zsh
index deeb52824e8df33653704b67cc28bf431a9e225a..c231ee21e2ff1d051177526d1403900670efcb5b 100644
--- a/lib/completion.zsh
+++ b/lib/completion.zsh
@@ -22,7 +22,7 @@ else
 fi
 
 zstyle ':completion:*' list-colors ''
-zstyle ':completion:*' hosts $( sed 's/[, ].*$//' $HOME/.ssh/known_hosts )
+
 
 unsetopt MENU_COMPLETE
 #setopt AUTO_MENU
@@ -35,7 +35,12 @@ zstyle ':completion:*:*:*:*:*' menu yes select
 
 zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01'
 zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm -w -w"
-zstyle ':completion:*:*:(ssh|scp):*:*' hosts `sed 's/^\([^ ,]*\).*$/\1/' ~/.ssh/known_hosts`
+
+# Load known hosts file for auto-completion with ssh and scp commands
+if [ -f ~/.ssh/known_hosts ]; then
+  zstyle ':completion:*' hosts $( sed 's/[, ].*$//' $HOME/.ssh/known_hosts )
+  zstyle ':completion:*:*:(ssh|scp):*:*' hosts `sed 's/^\([^ ,]*\).*$/\1/' ~/.ssh/known_hosts`
+fi
 
 # Complete on history
 # zstyle ':completion:*:history-words' stop yes
diff --git a/lib/git.zsh b/lib/git.zsh
index 84a3af0b97e46faf49516fec58f43bd8f8401301..6ef950f121d9c6ef51d0e6e3fafa1c6e0a62b50a 100644
--- a/lib/git.zsh
+++ b/lib/git.zsh
@@ -5,7 +5,7 @@ function git_prompt_info() {
 }
 
 parse_git_dirty () {
-  if [[ $(git status  | tail -n1) != "nothing to commit (working directory clean)" ]]; then
+  if [[ $((git status &> /dev/null) | tail -n1) != "nothing to commit (working directory clean)" ]]; then
     echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
   else
     echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
diff --git a/lib/rake_completion.zsh b/lib/rake_completion.zsh
index 9ee8213ae08fd78b8c8499a49afa1f49601e129d..c425a625e1d219740e2b63bacf42e0e10fc1b46a 100644
--- a/lib/rake_completion.zsh
+++ b/lib/rake_completion.zsh
@@ -1,8 +1,8 @@
 _rake_does_task_list_need_generating () {
   if [ ! -f .rake_tasks~ ]; then return 0;
   else
-    accurate=$(stat -c "%n" .rake_tasks~)
-    changed=$(stat -c "%n" Rakefile)
+    accurate=$(stat -f%m .rake_tasks~)
+    changed=$(stat -f%m Rakefile)
     return $(expr $accurate '>=' $changed)
   fi
 }
diff --git a/themes/darkblood.zsh-theme b/themes/darkblood.zsh-theme
index 8a00c345910e368f16deb76b78e04bd55bfa2980..33508fbd2ce7d647647acc53a4ec3c1cb677f94d 100644
--- a/themes/darkblood.zsh-theme
+++ b/themes/darkblood.zsh-theme
@@ -1,9 +1,9 @@
 # meh. Dark Blood Rewind, a new beginning.
 
-PROMPT=$'${fg[red]}┌[${fg_bold[white]}%n${reset_color}${fg[red]}@${fg_bold[white]}%m${reset_color}${fg[red]}] [${fg_bold[white]}/dev/%y${reset_color}${fg[red]}] $(git_prompt_info)%(?,,${fg[red]}[${fg_bold[white]}%?${reset_color}${fg[red]}])
-${fg[red]}â””[${fg_bold[white]}%~${reset_color}${fg[red]}]>${reset_color} '
-PS2=$' ${fg[red]}|>${reset_color} '
+PROMPT=$'%{$fg[red]%}┌[%{$fg_bold[white]%}%n%{$reset_color%}%{$fg[red]%}@%{$fg_bold[white]%}%m%{$reset_color%}%{$fg[red]%}] [%{$fg_bold[white]%}/dev/%y%{$reset_color%}%{$fg[red]%}] %{$(git_prompt_info)%}%(?,,%{$fg[red]%}[%{$fg_bold[white]%}%?%{$reset_color%}%{$fg[red]%}])
+%{$fg[red]%}â””[%{$fg_bold[white]%}%~%{$reset_color%}%{$fg[red]%}]>%{$reset_color%} '
+PS2=$' %{$fg[red]%}|>%{$reset_color%} '
 
-ZSH_THEME_GIT_PROMPT_PREFIX="${fg[red]}[${fg_bold[white]}"
-ZSH_THEME_GIT_PROMPT_SUFFIX="${reset_color}${fg[red]}] "
-ZSH_THEME_GIT_PROMPT_DIRTY=" ${fg[red]}âš¡${reset_color}"
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[red]%}[%{$fg_bold[white]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}%{$fg[red]%}] "
+ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}âš¡%{$reset_color%}"
diff --git a/themes/jnrowe.zsh-theme b/themes/jnrowe.zsh-theme
new file mode 100644
index 0000000000000000000000000000000000000000..7c8a7082e96696931d797f1e847d7eeef2f4c581
--- /dev/null
+++ b/themes/jnrowe.zsh-theme
@@ -0,0 +1,31 @@
+autoload -U add-zsh-hook
+autoload -Uz vcs_info
+
+zstyle ':vcs_info:*' actionformats \
+    '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f '
+zstyle ':vcs_info:*' formats \
+    '%F{2}%s%F{7}:%F{2}(%F{1}%b%F{2})%f '
+zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'
+zstyle ':vcs_info:*' enable git
+
+add-zsh-hook precmd prompt_jnrowe_precmd
+
+prompt_jnrowe_precmd () {
+    vcs_info
+
+    if [ "${vcs_info_msg_0_}" = "" ]; then
+        dir_status="%F{2}→%f"
+    elif [[ $(git diff --cached --name-status 2>/dev/null ) != "" ]]; then
+        dir_status="%F{1}â–¶%f"
+    elif [[ $(git diff --name-status 2>/dev/null ) != "" ]]; then
+        dir_status="%F{3}â–¶%f"
+    else
+        dir_status="%F{2}â–¶%f"
+    fi
+}
+
+local ret_status="%(?:%{$fg_bold[green]%}Ξ:%{$fg_bold[red]%}%S↑%s%?)"
+
+PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg_bold[yellow]%}%2~ ${vcs_info_msg_0_}${dir_status}%{$reset_color%} '
+
+#  vim: set ft=zsh ts=4 sw=4 et: