       ts <- gets threads
       pubs <- liftIO $ atomically $ readTVar $ publications n
       let mbpub = M.lookup name' pubs 
       mb <- liftIO $ runReaderT (mkPub' mbpub bufferSize) (r,ts)
       case mb of
           Nothing -> return ()
           Just pub' -> do
               liftIO $ atomically $ modifyTVar (publications n) $ M.insert name' pub'
               --put n { publications = M.insert name' pub' pubs }
               RN.registerPublicationNode name' pub'

-- |Advertise a 'Topic' publishing a stream of 'IO' values with a
-- per-client transmit buffer of the specified size.
advertiseBuffered_ :: (RosBinary a, MsgInfo a, Typeable a) =>