diff --git a/include/proto/connection.h b/include/proto/connection.h
index 2efd629..7ffe1fd 100644
--- a/include/proto/connection.h
+++ b/include/proto/connection.h
@@ -73,7 +73,7 @@
 /* If we delayed the mux creation because we were waiting for the handshake, do it now */
 int conn_create_mux(struct connection *conn);
 
-__decl_hathreads(extern HA_SPINLOCK_T toremove_lock[MAX_THREADS]);
+__decl_thread(extern HA_SPINLOCK_T toremove_lock[MAX_THREADS]);
 
 /* returns true is the transport layer is ready */
 static inline int conn_xprt_ready(const struct connection *conn)
diff --git a/include/proto/fd.h b/include/proto/fd.h
index a3c476d..9426e14 100644
--- a/include/proto/fd.h
+++ b/include/proto/fd.h
@@ -67,7 +67,7 @@
 int fd_takeover(int fd, void *expected_owner);
 
 #ifndef HA_HAVE_CAS_DW
-__decl_hathreads(extern HA_RWLOCK_T fd_mig_lock);
+__decl_thread(extern HA_RWLOCK_T fd_mig_lock);
 #endif
 
 ssize_t fd_write_frag_line(int fd, size_t maxlen, const struct ist pfx[], size_t npfx, const struct ist msg[], size_t nmsg, int nl);
diff --git a/include/proto/protocol.h b/include/proto/protocol.h
index ee9e7e0..36162a0 100644
--- a/include/proto/protocol.h
+++ b/include/proto/protocol.h
@@ -27,7 +27,7 @@
 #include <types/protocol.h>
 
 extern struct protocol *__protocol_by_family[AF_CUST_MAX];
-__decl_hathreads(extern HA_SPINLOCK_T proto_lock);
+__decl_thread(extern HA_SPINLOCK_T proto_lock);
 
 /* Registers the protocol <proto> */
 void protocol_register(struct protocol *proto);
diff --git a/include/proto/server.h b/include/proto/server.h
index 4c4b4bf..e184310 100644
--- a/include/proto/server.h
+++ b/include/proto/server.h
@@ -37,7 +37,7 @@
 #include <proto/freq_ctr.h>
 
 
-__decl_hathreads(extern HA_SPINLOCK_T idle_conn_srv_lock);
+__decl_thread(extern HA_SPINLOCK_T idle_conn_srv_lock);
 extern struct eb_root idle_conn_srv;
 extern struct task *idle_conn_task;
 extern struct task *idle_conn_cleanup[MAX_THREADS];
diff --git a/include/proto/signal.h b/include/proto/signal.h
index 558fbc2..b2fd2c8 100644
--- a/include/proto/signal.h
+++ b/include/proto/signal.h
@@ -21,7 +21,7 @@
 extern int signal_queue_len;
 extern struct signal_descriptor signal_state[];
 
-__decl_hathreads(extern HA_SPINLOCK_T signals_lock);
+__decl_thread(extern HA_SPINLOCK_T signals_lock);
 
 void signal_handler(int sig);
 void __signal_process_queue();
diff --git a/include/proto/ssl_sock.h b/include/proto/ssl_sock.h
index 6966512..2cbd60b 100644
--- a/include/proto/ssl_sock.h
+++ b/include/proto/ssl_sock.h
@@ -41,7 +41,7 @@
 extern struct global_ssl global_ssl;
 extern struct ssl_bind_kw ssl_bind_kws[];
 extern struct methodVersions methodVersions[];
-__decl_hathreads(extern HA_SPINLOCK_T ckch_lock);
+__decl_thread(extern HA_SPINLOCK_T ckch_lock);
 extern struct pool_head *pool_head_ssl_capture;
 extern unsigned int openssl_engines_initialized;
 extern int nb_engines;
diff --git a/include/proto/task.h b/include/proto/task.h
index 668cee3..05b048b 100644
--- a/include/proto/task.h
+++ b/include/proto/task.h
@@ -102,8 +102,8 @@
 
 extern struct task_per_thread task_per_thread[MAX_THREADS];
 
-__decl_hathreads(extern HA_SPINLOCK_T rq_lock);  /* spin lock related to run queue */
-__decl_hathreads(extern HA_RWLOCK_T wq_lock);    /* RW lock related to the wait queue */
+__decl_thread(extern HA_SPINLOCK_T rq_lock);  /* spin lock related to run queue */
+__decl_thread(extern HA_RWLOCK_T wq_lock);    /* RW lock related to the wait queue */
 
 static inline struct task *task_unlink_wq(struct task *t);
 static inline void task_queue(struct task *task);
