diff --git a/config.def.h b/config.def.h
index b81e6b0..a7571ac 100644
--- a/config.def.h
+++ b/config.def.h
@@ -12,6 +12,7 @@ static Bool kioskmode	    = FALSE; /* Ignore shortcuts */
 static Bool showindicators  = TRUE;  /* Show indicators in window title */
 static Bool zoomto96dpi     = TRUE;  /* Zoom pages to always emulate 96dpi */
 static Bool runinfullscreen = FALSE; /* Run in fullscreen mode by default */
+static char cookiepolicy[]  = "A";   /* A:always, a:never, @:no third party */
 
 static guint defaultfontsize = 12;   /* Default font size */
 static gfloat zoomlevel = 1.0;       /* Default zoom level */
diff --git a/surf.c b/surf.c
index f0be24b..79ef37d 100644
--- a/surf.c
+++ b/surf.c
@@ -79,7 +79,7 @@ static gboolean showxid = FALSE;
 static char winid[64];
 static gboolean usingproxy = 0;
 static char togglestat[7];
-static char pagestat[3];
+static char pagestat[4];
 
 static void addaccelgroup(Client *c);
 static void beforerequest(WebKitWebView *w, WebKitWebFrame *f,
@@ -94,9 +94,12 @@ static void clipboard(Client *c, const Arg *arg);
 static void cookiejar_changed(SoupCookieJar *self, SoupCookie *old_cookie,
 		SoupCookie *new_cookie);
 static void cookiejar_finalize(GObject *self);
-static SoupCookieJar *cookiejar_new(const char *filename, gboolean read_only);
+static SoupCookieJar *cookiejar_new(const char *filename, gboolean read_only,
+		SoupCookieJarAcceptPolicy policy);
 static void cookiejar_set_property(GObject *self, guint prop_id,
 		const GValue *value, GParamSpec *pspec);
+static SoupCookieJarAcceptPolicy cookiepolicy_get(const char *p);
+static char cookiepolicy_set(const SoupCookieJarAcceptPolicy p);
 
 static char *copystr(char **str, const char *src);
 static WebKitWebView *createwindow(WebKitWebView *v, WebKitWebFrame *f,
@@ -295,10 +298,12 @@ cookiejar_init(CookieJar *self) {
 }
 
 static SoupCookieJar *
-cookiejar_new(const char *filename, gboolean read_only) {
+cookiejar_new(const char *filename, gboolean read_only,
+		SoupCookieJarAcceptPolicy policy) {
 	return g_object_new(COOKIEJAR_TYPE,
 	                    SOUP_COOKIE_JAR_TEXT_FILENAME, filename,
-	                    SOUP_COOKIE_JAR_READ_ONLY, read_only, NULL);
+	                    SOUP_COOKIE_JAR_READ_ONLY, read_only,
+	                    SOUP_COOKIE_JAR_ACCEPT_POLICY, policy, NULL);
 }
 
 static void
@@ -310,6 +315,47 @@ cookiejar_set_property(GObject *self, guint prop_id, const GValue *value,
 	flock(COOKIEJAR(self)->lock, LOCK_UN);
 }
 
+static SoupCookieJarAcceptPolicy
+cookiepolicy_get(const char *p) {
+	SoupCookieJarAcceptPolicy ep;
+
+	switch (*p) {
+		case 'A':
+			ep = SOUP_COOKIE_JAR_ACCEPT_ALWAYS;
+			break;
+		case 'a':
+			ep = SOUP_COOKIE_JAR_ACCEPT_NEVER;
+			break;
+		case '@':
+			ep = SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY;
+			break;
+		default:
+			ep = SOUP_COOKIE_JAR_ACCEPT_ALWAYS;
+	}
+	return ep;
+}
+
+static char
+cookiepolicy_set(const SoupCookieJarAcceptPolicy ep) {
+	char p;
+
+	switch (ep) {
+		case SOUP_COOKIE_JAR_ACCEPT_ALWAYS:
+			p = 'A';
+			break;
+		case SOUP_COOKIE_JAR_ACCEPT_NEVER:
+			p = 'a';
+			break;
+		case SOUP_COOKIE_JAR_ACCEPT_NO_THIRD_PARTY:
+			p = '@';
+			break;
+		default:
+			p = 'A';
+			break;
+	}
+	return p;
+}
+
 static void
 evalscript(JSContextRef js, char *script, char* scriptname) {
 	JSStringRef jsscript, jsscriptname;
@@ -1066,8 +1112,8 @@ setup(void) {
 
 	/* cookie jar */
 	soup_session_add_feature(s,
-			SOUP_SESSION_FEATURE(cookiejar_new(cookiefile,
-					FALSE)));
+			SOUP_SESSION_FEATURE(cookiejar_new(cookiefile, FALSE,
+					cookiepolicy_get(cookiepolicy))));
 
 	/* ssl */
 	g_object_set(G_OBJECT(s), "ssl-ca-file", cafile, NULL);
@@ -1238,14 +1284,14 @@ static void
 getpagestat(Client *c) {
 	const char *uri = geturi(c);
 
+	pagestat[0] = cookiepolicy_set(cookiepolicy_get(cookiepolicy));
 	if(strstr(uri, "https://") == uri) {
-		pagestat[0] = c->sslfailed ? 'U' : 'T';
+		pagestat[1] = c->sslfailed ? 'U' : 'T';
 	} else {
-		pagestat[0] = '-';
+		pagestat[1] = '-';
 	}
-
-	pagestat[1] = usingproxy ? 'P' : '-';
-	pagestat[2] = '\0';
+	pagestat[2] = usingproxy ? 'P' : '-';
+	pagestat[3] = '\0';
 
 }
 
@@ -1284,9 +1330,9 @@ updatewinid(Client *c) {
 static void
 usage(void) {
 	die("usage: %s [-bBfFgGiIkKnNpPsSvx]"
-		" [-c cookiefile] [-e xid] [-r scriptfile]"
-		" [-t stylefile] [-u useragent] [-z zoomlevel]"
-		" [uri]\n", basename(argv0));
+		" [-a cookiepolicy] [-c cookiefile] [-e xid]"
+		" [-r scriptfile] [-t stylefile] [-u useragent]"
+		" [-z zoomlevel] [uri]\n", basename(argv0));
 }
 
 static void
@@ -1319,6 +1365,9 @@ main(int argc, char *argv[]) {
 
 	/* command line args */
 	ARGBEGIN {
+	case 'a':
+		g_strlcpy(cookiepolicy, EARGF(usage()), sizeof(cookiepolicy));
+		break;
 	case 'b':
 		enablescrollbars = 0;
 		break;
