diff --git a/plugin/fugitive.vim b/plugin/fugitive.vim
index af4d0882908c3d6ac73a305785b240d17ba8a9f4..d4939389b7703284c88fdcb8b2f9678d55282a0f 100644
--- a/plugin/fugitive.vim
+++ b/plugin/fugitive.vim
@@ -1336,8 +1336,10 @@ function! s:Edit(cmd,bang,...) abort
       if winnr('$') == 1
         let tabs = (&go =~# 'e' || !has('gui_running')) && &stal && (tabpagenr('$') >= &stal)
         execute 'rightbelow' (&lines - &previewheight - &cmdheight - tabs - 1 - !!&laststatus).'new'
-      else
+      elseif winnr('#')
         wincmd p
+      else
+        wincmd w
       endif
       if &diff
         let mywinnr = winnr()