diff --git a/oslo_messaging/_drivers/zmq_driver/client/publishers/dealer/zmq_dealer_publisher_direct.py b/oslo_messaging/_drivers/zmq_driver/client/publishers/dealer/zmq_dealer_publisher_direct.py
index ccecda631..86c92a32b 100644
--- a/oslo_messaging/_drivers/zmq_driver/client/publishers/dealer/zmq_dealer_publisher_direct.py
+++ b/oslo_messaging/_drivers/zmq_driver/client/publishers/dealer/zmq_dealer_publisher_direct.py
@@ -72,12 +72,14 @@ class DealerPublisherDirect(zmq_dealer_publisher_base.DealerPublisherBase):
             socket.connect_to_host(host)
 
     def acquire_connection(self, request):
-        socket = self.sockets_manager.get_socket()
         if request.msg_type in zmq_names.DIRECT_TYPES:
+            socket = self.sockets_manager.get_socket()
             self._get_round_robin_host_connection(request.target, socket)
+            return socket
         elif request.msg_type in zmq_names.MULTISEND_TYPES:
+            socket = self.sockets_manager.get_socket(immediate=False)
             self._get_fanout_connection(request.target, socket)
-        return socket
+            return socket
 
     def _finally_unregister(self, socket, request):
         super(DealerPublisherDirect, self)._finally_unregister(socket, request)
diff --git a/oslo_messaging/_drivers/zmq_driver/client/zmq_sockets_manager.py b/oslo_messaging/_drivers/zmq_driver/client/zmq_sockets_manager.py
index b94fc6fb2..7ce0b705e 100644
--- a/oslo_messaging/_drivers/zmq_driver/client/zmq_sockets_manager.py
+++ b/oslo_messaging/_drivers/zmq_driver/client/zmq_sockets_manager.py
@@ -33,9 +33,9 @@ class SocketsManager(object):
         self.socket_to_routers = None
         self.sockets = {}
 
-    def get_socket(self):
+    def get_socket(self, immediate=True):
         return zmq_socket.ZmqSocket(self.conf, self.zmq_context,
-                                    self.socket_type, immediate=False)
+                                    self.socket_type, immediate=immediate)
 
     def get_cached_socket(self, target_key, hosts=None, immediate=True):
         hosts = [] if hosts is None else hosts