diff --git a/netio.c b/netio.c
index 5d1e9a461521f2dc61f8bf1282a9fa55d9cd9bed..c955430dc363385af74f7d129bafd3ba109f5fc8 100644
--- a/netio.c
+++ b/netio.c
@@ -241,7 +241,7 @@ void handle_connect_fds(fd_set *writefd) {
 			c->sock = -1;
 
 			m_free(c->errstring);
-			c->errstring = strerror(val);
+			c->errstring = m_strdup(strerror(val));
 		} else {
 			/* New connection has been established */
 			c->cb(DROPBEAR_SUCCESS, c->sock, c->cb_data, NULL);