diff --git a/lib/bundler/templates/Executable b/lib/bundler/templates/Executable
index 4e35e586dba..414a75898d6 100755
--- a/lib/bundler/templates/Executable
+++ b/lib/bundler/templates/Executable
@@ -13,7 +13,15 @@ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../<%= relative_gemfile_path %>",
   Pathname.new(__FILE__).realpath)
 
 bundle_binstub = File.expand_path("../bundle", __FILE__)
-load(bundle_binstub) if File.file?(bundle_binstub)
+
+if File.file?(bundle_binstub)
+  if File.read(bundle_binstub, 150) =~ /This file was generated by Bundler/
+    load(bundle_binstub)
+  else
+    abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
+Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
+  end
+end
 
 require "rubygems"
 require "bundler/setup"
diff --git a/spec/commands/binstubs_spec.rb b/spec/commands/binstubs_spec.rb
index d78ad50b615..24ee03ec3cb 100644
--- a/spec/commands/binstubs_spec.rb
+++ b/spec/commands/binstubs_spec.rb
@@ -50,6 +50,25 @@
       expect(out).to include("`bundle binstubs` needs at least one gem to run.")
     end
 
+    context "when generating bundle binstub outside bundler" do
+      it "should abort" do
+        install_gemfile <<-G
+          source "file://#{gem_repo1}"
+          gem "rack"
+        G
+
+        bundle "binstubs rack"
+
+        File.open("bin/bundle", "wb") do |file|
+          file.print "OMG"
+        end
+
+        sys_exec "bin/rackup"
+
+        expect(last_command.stderr).to include("was not generated by Bundler")
+      end
+    end
+
     context "the bundle binstub" do
       before do
         if system_bundler_version == :bundler