diff --git a/lib/git.zsh b/lib/git.zsh
index a1b4d1587..1dbe15cfb 100644
--- a/lib/git.zsh
+++ b/lib/git.zsh
@@ -109,6 +109,8 @@ fi
 # Checks if working tree is dirty
 function parse_git_dirty() {
   local STATUS
+  local STASH_STATUS
+  local STASH_VALID=false
   local -a FLAGS
   FLAGS=('--porcelain')
   if [[ "$(__git_prompt_git config --get oh-my-zsh.hide-dirty)" != "1" ]]; then
@@ -126,11 +128,23 @@ function parse_git_dirty() {
         ;;
     esac
     STATUS=$(__git_prompt_git status ${FLAGS} 2> /dev/null | tail -n 1)
+    STASH_STATUS="$(git stash list | wc -l)"
+  fi
+  if [[ ! -z ${ZSH_THEME_GIT_PROMPT_STASH} && ! -z ${ZSH_THEME_GIT_PROMPT_STASH_DIRTY} && ! -z ${ZSH_THEME_GIT_RESET_COLOR} ]]; then
+    STASH_VALID=true
   fi
   if [[ -n $STATUS ]]; then
-    echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
+    if [[ ! -z ${STASH_STATUS} && ${STASH_STATUS} != 0 && ${STASH_VALID} == true ]]; then
+      echo "${ZSH_THEME_GIT_PROMPT_STASH_DIRTY}${STASH_STATUS}${ZSH_THEME_GIT_RESET_COLOR}"
+    else
+      echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
+    fi
   else
-    echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
+    if [[ ! -z ${STASH_STATUS} && ${STASH_STATUS} != 0 && ${STASH_VALID} ]]; then
+      echo "$ZSH_THEME_GIT_PROMPT_STASH${STASH_STATUS}${ZSH_THEME_GIT_RESET_COLOR}"
+    else
+      echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
+    fi
   fi
 }
 
diff --git a/themes/af-magic.zsh-theme b/themes/af-magic.zsh-theme
index 668c4e5de..5de4fcc85 100644
--- a/themes/af-magic.zsh-theme
+++ b/themes/af-magic.zsh-theme
@@ -36,6 +36,9 @@ RPS1+=" ${FG[237]}%n@%m%{$reset_color%}"
 ZSH_THEME_GIT_PROMPT_PREFIX=" ${FG[075]}(${FG[078]}"
 ZSH_THEME_GIT_PROMPT_CLEAN=""
 ZSH_THEME_GIT_PROMPT_DIRTY="${FG[214]}*%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_STASH="${FG[214]}↓"
+ZSH_THEME_GIT_RESET_COLOR="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_STASH_DIRTY="${FG[214]}*↓"
 ZSH_THEME_GIT_PROMPT_SUFFIX="${FG[075]})%{$reset_color%}"
 
 # hg settings