diff --git a/lib/ansible/vault.rb b/lib/ansible/vault.rb
index <HASH>..<HASH> 100644
--- a/lib/ansible/vault.rb
+++ b/lib/ansible/vault.rb
@@ -10,5 +10,9 @@ module Ansible
       @path = path
       @password = password
     end
+
+    def inspect
+      %Q{#<Ansible::Vault:#{"0x00%x" % (object_id << 1)} @path="#{@path}", @password="#{@password[0,4]}...">}
+    end
   end
 end
diff --git a/spec/ansible/vault_spec.rb b/spec/ansible/vault_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/ansible/vault_spec.rb
+++ b/spec/ansible/vault_spec.rb
@@ -13,5 +13,15 @@ module Ansible
       end
     end
 
+    describe '#inspect' do
+      let(:vault) {
+        Vault.new(path: fixture_path('blank.yml'), password: 'this-is-the-password')
+      }
+
+      it 'must include only the first 4 characters of the password followed by elipses' do
+        expect(vault.inspect).to_not include 'this-is-the-password'
+        expect(vault.inspect).to include 'this...'
+      end
+    end
   end
 end
Ensure we're not leaking passwords to error logs and the like