diff --git a/src/iaxvoiplink.cpp b/src/iaxvoiplink.cpp
index a2923f15d937c4a2b812519546be1f3bae684a2e..fbac29a1de7b380a551e92f4e04e0cf4acb8bc77 100644
--- a/src/iaxvoiplink.cpp
+++ b/src/iaxvoiplink.cpp
@@ -397,12 +397,15 @@ IAXVoIPLink::sendRegister()
   // lock
   _mutexIAX.enterMutex();
 
-  if (_regSession == NULL) {
-    _regSession = iax_session_new();
+  // Always use a brand new session
+  if (_regSession) {
+    iax_destroy(_regSession);
   }
+
+  _regSession = iax_session_new();
+
   if (!_regSession) {
     _debug("Error when generating new session for register");
-
   } else {
     // refresh
     // last reg