diff --git a/lib/mongo/server/connection_pool.rb b/lib/mongo/server/connection_pool.rb
index <HASH>..<HASH> 100644
--- a/lib/mongo/server/connection_pool.rb
+++ b/lib/mongo/server/connection_pool.rb
@@ -383,6 +383,12 @@ module Mongo
           Monitoring::Event::Cmap::ConnectionCheckedOut.new(@server.address, connection.id, self),
         )
 
+        if Lint.enabled?
+          unless connection.connected?
+            raise Error::LintError, 'Connection pool checked out a disconnected connection'
+          end
+        end
+
         connection
       ensure
         check_invariants
diff --git a/spec/spec_tests/cmap_spec.rb b/spec/spec_tests/cmap_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/spec_tests/cmap_spec.rb
+++ b/spec/spec_tests/cmap_spec.rb
@@ -62,6 +62,9 @@ describe 'Cmap' do
       let!(:result) do
         socket = double('fake socket')
         allow(socket).to receive(:close)
+        # When linting, connection pool ensures the connection returned
+        # is connected.
+        allow(socket).to receive(:alive?).and_return(true)
 
         allow_any_instance_of(Mongo::Server::Connection).to receive(:do_connect).and_return(socket)
         spec.run
verify connection pool does not check out disconnected connections when linting (#<I>)