diff --git a/plugin/magit.vim b/plugin/magit.vim
index 9aaf55d7f1bb1ce3884a46d2eb0c4f493faf9320..fcbf02c010f4171c1b9a6142615bc6cf968f96a4 100644
--- a/plugin/magit.vim
+++ b/plugin/magit.vim
@@ -612,20 +612,20 @@ function! magit#show_magit(display, ...)
 	elseif ( a:display == 'h' )
 		silent execute "new " . buffer_name
 	elseif ( a:display == 'c' )
-		if ( bufexists(buffer_name) )
-			silent execute "buffer " . buffer_name
-		else
+		if ( !bufexists(buffer_name) )
 			if ( bufname("%") == "" )
 				keepalt enew
 			else
 				enew
 			endif
-			silent execute "file " . buffer_name
+			execute "file " . buffer_name
 		endif
 	else
 		throw 'parameter_error'
 	endif
 
+	silent execute "buffer " . buffer_name
+
 	call magit#git#set_top_dir(git_dir)
 
 	let b:magit_default_show_all_files = g:magit_default_show_all_files