diff --git a/bashrc b/bashrc
index 7718f3ded94cd26c5ff0d87930a8aa979890476b..2656a600e4c31e8dd6cbeedf3aaa88d9c33bcf44 100644
--- a/bashrc
+++ b/bashrc
@@ -100,6 +100,6 @@ if [ -f ~/.bashrc.local ]; then
 fi
 
 # Enable Git auto completion
-if [ -f ~/git-completion.bash ]; then
-    . ~/git-completion.bash
+if [ -f ~/.git-completion.bash ]; then
+    . ~/.git-completion.bash
 fi
diff --git a/install.sh b/install.sh
index e36a9d50cd1567e24f835f1c7c4cb173cd98573b..6dbec8e9d39b7035da67310dd8af31dc345d0099 100755
--- a/install.sh
+++ b/install.sh
@@ -3,24 +3,57 @@
 # Run this from the dotfiles dir
 DOTFILES=`pwd`
 
+
+
 # bash
-mv ~/.bashrc ~/.bashrc.local 2> /dev/null
-mv ~/.bash_aliases ~/.bash_aliases.old 2> /dev/null
+if [ -h ~/.bashrc ]
+then rm ~/.bashrc
+else mv ~/.bashrc{,.old} 2> /dev/null
+fi
 ln -s $DOTFILES/bashrc ~/.bashrc
+
+if [ -h ~/.bash_aliases ]
+then rm ~/.bash_aliases
+else mv ~/.bash_aliases{,.old} 2> /dev/null
+fi
 ln -s $DOTFILES/bash_aliases ~/.bash_aliases
 
+
+
 # vim
-mv ~/.vimrc ~/.vimrc.old 2> /dev/null
-mv ~/.vim ~/.vim.old 2> /dev/null
+if [ -h ~/.vimrc ]
+then rm ~/.vimrc
+else mv ~/.vimrc{,.old} 2> /dev/null
+fi
 ln -s $DOTFILES/vimrc ~/.vimrc
+
+if [ -h ~/.vim ]
+then rm ~/.vim
+else mv ~/.vim{,.old} 2> /dev/null
+fi
 ln -s $DOTFILES/vim ~/.vim
 
+
+
 # dircolors
-mv ~/.dircolors ~/.dircolors.old 2> /dev/null
+if [ -h ~/.dircolors ]
+then rm ~/.dircolors
+else mv ~/.dircolors{,.old} 2> /dev/null
+fi
 ln -s $DOTFILES/dircolors.ansi-dark ~/.dircolors
 
+
+
 # Git
-mv ~/.gitconfig ~/.gitconfig.old 2> /dev/null
-mv ~/git-completion.bash ~/git-completion.bash.old 2> /dev/null
+if [ -h ~/.gitconfig ]
+then rm ~/.gitconfig
+else mv ~/.gitconfig{,.old} 2> /dev/null
+fi
 ln -s $DOTFILES/gitconfig ~/.gitconfig
-ln -s $DOTFILES/git-completion.bash ~/git-completion.bash
+
+if [ -h ~/.git-completion.bash ]
+then rm ~/.git-completion.bash
+else mv ~/.git-completion.bash{,.old} 2> /dev/null
+fi
+ln -s $DOTFILES/git-completion.bash ~/.git-completion.bash
+