diff --git a/Library/Homebrew/cask/artifact/symlinked.rb b/Library/Homebrew/cask/artifact/symlinked.rb
index 7acb7e9694d5a1d1e13c3b5b0b64e89b95bc216d..b50c104dc44f36243e927eee2e8ef83a9b53f971 100644
--- a/Library/Homebrew/cask/artifact/symlinked.rb
+++ b/Library/Homebrew/cask/artifact/symlinked.rb
@@ -44,10 +44,10 @@ module Cask
                 "source '#{source}' is not there."
         end
 
-        if target.exist? && !target.symlink?
+        if target.exist?
           raise CaskError,
-                "It seems there is already #{self.class.english_article} " \
-                "#{self.class.english_name} at '#{target}'; not linking."
+                "It seems there already exists #{self.class.english_article} " \
+                "#{self.class.english_name} at '#{target}'; not overwriting."
         end
 
         ohai "Linking #{self.class.english_name} '#{source.basename}' to '#{target}'."
diff --git a/Library/Homebrew/test/cask/artifact/binary_spec.rb b/Library/Homebrew/test/cask/artifact/binary_spec.rb
index d905e8d8f02aa1f45cea131fa1bf531d634d9392..83098af32ab0057e4a5ee81b9b1ed3f090d6bdeb 100644
--- a/Library/Homebrew/test/cask/artifact/binary_spec.rb
+++ b/Library/Homebrew/test/cask/artifact/binary_spec.rb
@@ -67,14 +67,16 @@ describe Cask::Artifact::Binary, :cask do
     expect(expected_path).not_to be :symlink?
   end
 
-  it "clobbers an existing symlink" do
+  it "avoids clobbering an existing symlink" do
     expected_path.make_symlink("/tmp")
 
-    artifacts.each do |artifact|
-      artifact.install_phase(command: NeverSudoSystemCommand, force: false)
-    end
+    expect {
+      artifacts.each do |artifact|
+        artifact.install_phase(command: NeverSudoSystemCommand, force: false)
+      end
+    }.to raise_error(Cask::CaskError)
 
-    expect(File.readlink(expected_path)).not_to eq("/tmp")
+    expect(File.readlink(expected_path)).to eq("/tmp")
   end
 
   it "creates parent directory if it doesn't exist" do