diff --git a/gst-libs/gst/rtsp/gstrtspconnection.c b/gst-libs/gst/rtsp/gstrtspconnection.c
index 39bf608..0d71c47 100644
--- a/gst-libs/gst/rtsp/gstrtspconnection.c
+++ b/gst-libs/gst/rtsp/gstrtspconnection.c
@@ -527,6 +527,7 @@ do_connect (const gchar * ip, guint16 port, GstPollFD * fdout,
 #endif /* G_OS_WIN32 */
   GstClockTime to;
   gint retval;
+  gint optval = 1;
 
   memset (&hints, 0, sizeof hints);
   hints.ai_flags = AI_NUMERICHOST;
@@ -551,6 +552,11 @@ do_connect (const gchar * ip, guint16 port, GstPollFD * fdout,
   if (fd == -1)
     goto no_socket;
 
+  /* make address reusable */
+  if (setsockopt (fd, SOL_SOCKET, SO_REUSEADDR,
+          (void *) &optval, sizeof (optval)) < 0)
+    goto sys_error;
+
   /* set to non-blocking mode so that we can cancel the connect */
 #ifndef G_OS_WIN32
   fcntl (fd, F_SETFL, O_NONBLOCK);
