diff --git a/channels/chan_gtalk.c b/channels/chan_gtalk.c
index 0cd2a5b464c9cc4171fdfd22e44ba5cb521a3cbf..c224c1e03424066b6285f6b98db6dd64c530b951 100644
--- a/channels/chan_gtalk.c
+++ b/channels/chan_gtalk.c
@@ -48,6 +48,10 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include <sys/signal.h>
 #include <iksemel.h>
 
+#include <gcrypt.h>
+#include <pthread.h>
+GCRY_THREAD_OPTION_PTHREAD_IMPL;
+
 #include "asterisk/lock.h"
 #include "asterisk/channel.h"
 #include "asterisk/config.h"
@@ -1816,6 +1820,8 @@ static int gtalk_load_config(void)
 /*! \brief Load module into PBX, register channel */
 static int load_module(void)
 {
+        gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
+
 	ASTOBJ_CONTAINER_INIT(&gtalk_list);
 	if (!gtalk_load_config()) {
 		ast_log(LOG_ERROR, "Unable to read config file %s. Not loading module.\n", GOOGLE_CONFIG);