diff --git a/CommonLibs/Threads.cpp b/CommonLibs/Threads.cpp
index de6520b..2988e12 100644
--- a/CommonLibs/Threads.cpp
+++ b/CommonLibs/Threads.cpp
@@ -24,11 +24,17 @@
 */
 
 
-
-
+#include <string.h>
+#include <sys/types.h>
 
 #include "Threads.h"
 #include "Timeval.h"
+#include "Logger.h"
+
+#ifndef gettid
+#include <sys/syscall.h>
+#define gettid() syscall(SYS_gettid)
+#endif
 
 
 using namespace std;
@@ -102,6 +108,19 @@
 	pthread_cond_timedwait(&mSignal,&wMutex.mMutex,&waitTime);
 }
 
+void set_selfthread_name(const char *name)
+{
+	pthread_t selfid = pthread_self();
+	pid_t tid = gettid();
+	if (pthread_setname_np(selfid, name) == 0) {
+		LOG(INFO) << "Thread "<< selfid << " (task " << tid << ") set name: " << name;
+	} else {
+		char buf[256];
+		int err = errno;
+		char* err_str = strerror_r(err, buf, sizeof(buf));
+		LOG(NOTICE) << "Thread "<< selfid << " (task " << tid << ") set name \"" << name << "\" failed: (" << err << ") " << err_str;
+	}
+}
 
 void Thread::start(void *(*task)(void*), void *arg)
 {
diff --git a/CommonLibs/Threads.h b/CommonLibs/Threads.h
index 47c7275..857c5d9 100644
--- a/CommonLibs/Threads.h
+++ b/CommonLibs/Threads.h
@@ -141,6 +141,8 @@
 #define START_THREAD(thread,function,argument) \
 	thread.start((void *(*)(void*))function, (void*)argument);
 
+void set_selfthread_name(const char *name);
+
 /** A C++ wrapper for pthread threads.  */
 class Thread {
 
diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp
index cdfd79d..076db3e 100644
--- a/Transceiver52M/Transceiver.cpp
+++ b/Transceiver52M/Transceiver.cpp
@@ -1044,11 +1044,15 @@
 
 void *RxUpperLoopAdapter(TransceiverChannel *chan)
 {
+  char thread_name[16];
   Transceiver *trx = chan->trx;
   size_t num = chan->num;
 
   delete chan;
 
+  snprintf(thread_name, 16, "RxUpper%zu", num);
+  set_selfthread_name(thread_name);
+
   trx->setPriority(0.42);
 
   while (1) {
@@ -1060,6 +1064,8 @@
 
 void *RxLowerLoopAdapter(Transceiver *transceiver)
 {
+  set_selfthread_name("RxLower");
+
   transceiver->setPriority(0.45);
 
   while (1) {
@@ -1071,6 +1077,8 @@
 
 void *TxLowerLoopAdapter(Transceiver *transceiver)
 {
+  set_selfthread_name("TxLower");
+
   transceiver->setPriority(0.44);
 
   while (1) {
@@ -1082,11 +1090,15 @@
 
 void *ControlServiceLoopAdapter(TransceiverChannel *chan)
 {
+  char thread_name[16];
   Transceiver *trx = chan->trx;
   size_t num = chan->num;
 
   delete chan;
 
+  snprintf(thread_name, 16, "CtrlService%zu", num);
+  set_selfthread_name(thread_name);
+
   while (1) {
     trx->driveControl(num);
     pthread_testcancel();
@@ -1096,11 +1108,15 @@
 
 void *TxUpperLoopAdapter(TransceiverChannel *chan)
 {
+  char thread_name[16];
   Transceiver *trx = chan->trx;
   size_t num = chan->num;
 
   delete chan;
 
+  snprintf(thread_name, 16, "TxUpper%zu", num);
+  set_selfthread_name(thread_name);
+
   trx->setPriority(0.40);
 
   while (1) {
diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp
index b7109a4..c30f3a7 100644
--- a/Transceiver52M/device/uhd/UHDDevice.cpp
+++ b/Transceiver52M/device/uhd/UHDDevice.cpp
@@ -322,6 +322,7 @@
 
 void *async_event_loop(uhd_device *dev)
 {
+	set_selfthread_name("UHDAsyncEvent");
 	dev->setPriority(0.43);
 
 	while (1) {
diff --git a/Transceiver52M/radioInterface.cpp b/Transceiver52M/radioInterface.cpp
index 7d6a03b..0f949d7 100644
--- a/Transceiver52M/radioInterface.cpp
+++ b/Transceiver52M/radioInterface.cpp
@@ -148,6 +148,7 @@
 /** synchronization thread loop */
 void *AlignRadioServiceLoopAdapter(RadioInterface *radioInterface)
 {
+  set_selfthread_name("AlignRadio");
   while (1) {
     sleep(60);
     radioInterface->alignRadio();
diff --git a/tests/CommonLibs/Makefile.am b/tests/CommonLibs/Makefile.am
index 4543c72..2a9a021 100644
--- a/tests/CommonLibs/Makefile.am
+++ b/tests/CommonLibs/Makefile.am
@@ -28,11 +28,11 @@
 
 InterthreadTest_SOURCES = InterthreadTest.cpp
 InterthreadTest_LDADD = $(COMMON_LA)
-InterthreadTest_LDFLAGS = -lpthread
+InterthreadTest_LDFLAGS = -lpthread $(AM_LDFLAGS)
 
 SocketsTest_SOURCES = SocketsTest.cpp
 SocketsTest_LDADD = $(COMMON_LA)
-SocketsTest_LDFLAGS = -lpthread
+SocketsTest_LDFLAGS = -lpthread $(AM_LDFLAGS)
 
 TimevalTest_SOURCES = TimevalTest.cpp
 TimevalTest_LDADD = $(COMMON_LA)
