Index: souphttpsrc/gstsouphttpsrc.h
===================================================================
--- souphttpsrc/gstsouphttpsrc.h
+++ souphttpsrc/gstsouphttpsrc.h
@@ -56,6 +56,7 @@
   gchar *user_pw;              /* Authentication user password for location URI. */
   gchar *proxy_id;             /* Authentication user id for proxy URI. */
   gchar *proxy_pw;             /* Authentication user password for proxy URI. */
+  gchar *cookiejar_file_name;  /* Name of the cookiejar file */
   gchar **cookies;             /* HTTP request cookies. */
   GMainContext *context;       /* I/O context. */
   GMainLoop *loop;             /* Event loop. */
Index: souphttpsrc/gstsouphttpsrc.c
===================================================================
--- souphttpsrc/gstsouphttpsrc.c
+++ souphttpsrc/gstsouphttpsrc.c
@@ -113,6 +113,7 @@
   PROP_PROXY_ID,
   PROP_PROXY_PW,
   PROP_COOKIES,
+  PROP_COOKIEJAR_FILE_NAME,
   PROP_IRADIO_MODE,
   PROP_IRADIO_NAME,
   PROP_IRADIO_GENRE,
@@ -256,6 +257,10 @@
   g_object_class_install_property (gobject_class, PROP_COOKIES,
       g_param_spec_boxed ("cookies", "Cookies", "HTTP request cookies",
           G_TYPE_STRV, G_PARAM_READWRITE));
+  g_object_class_install_property (gobject_class, PROP_COOKIEJAR_FILE_NAME,
+      g_param_spec_string ("cookiejar-file-name", "Cookie jar file name",
+          "Cookie jar file name", "",
+          G_PARAM_READWRITE));
   g_object_class_install_property (gobject_class, PROP_IS_LIVE,
       g_param_spec_boolean ("is-live", "is-live", "Act like a live source",
           FALSE, G_PARAM_READWRITE));
@@ -344,6 +349,7 @@
   src->proxy_id = NULL;
   src->proxy_pw = NULL;
   src->cookies = NULL;
+  src->cookiejar_file_name = NULL;
   src->iradio_mode = FALSE;
   src->loop = NULL;
   src->context = NULL;
@@ -376,6 +382,7 @@
   g_free (src->proxy_id);
   g_free (src->proxy_pw);
   g_strfreev (src->cookies);
+  g_free (src->cookiejar_file_name);

   G_OBJECT_CLASS (parent_class)->finalize (gobject);
 }
@@ -434,6 +441,11 @@
       g_strfreev (src->cookies);
       src->cookies = g_strdupv (g_value_get_boxed (value));
       break;
+    case PROP_COOKIEJAR_FILE_NAME:
+      if (src->cookiejar_file_name)
+        g_free (src->cookiejar_file_name);
+      src->cookiejar_file_name = g_value_dup_string (value);
+      break;
     case PROP_IS_LIVE:
       gst_base_src_set_live (GST_BASE_SRC (src), g_value_get_boolean (value));
       break;
@@ -506,6 +518,9 @@
     case PROP_COOKIES:
       g_value_set_boxed (value, g_strdupv (src->cookies));
       break;
+    case PROP_COOKIEJAR_FILE_NAME:
+      g_value_set_string (value, src->cookiejar_file_name);
+      break;
     case PROP_IS_LIVE:
       g_value_set_boolean (value, gst_base_src_is_live (GST_BASE_SRC (src)));
       break;
@@ -1122,6 +1137,19 @@
           *cookie);
     }
   }
+
+  if (src->cookiejar_file_name) {
+    SoupCookieJar* cookieJar = soup_cookie_jar_text_new (src->cookiejar_file_name, TRUE);
+    GSList *cookies = soup_cookie_jar_all_cookies (cookieJar);
+
+    for (; cookies; cookies = g_slist_next (cookies)) {
+        gchar *header = soup_cookie_to_cookie_header ((SoupCookie *) cookies->data);
+        soup_message_headers_append (src->msg->request_headers, "Cookie", header);
+    }
+
+    soup_cookies_free (cookies);
+
+  }
   soup_message_headers_append (src->msg->request_headers,
       "transferMode.dlna.org", "Streaming");
   src->retry = FALSE;
