diff --git a/ebtablesd.c b/ebtablesd.c
index 59bbe1c..062a2d6 100644
--- a/ebtablesd.c
+++ b/ebtablesd.c
@@ -52,7 +52,7 @@
 	char *argv[EBTD_ARGC_MAX], *args[4], name[] = "mkdir",
 	     mkdir_option[] = "-p", mkdir_dir[] = EBTD_PIPE_DIR,
 	     cmdline[EBTD_CMDLINE_MAXLN];
-	int readfd, base = 0, offset = 0, n = 0, ret = 0;
+	int readfd, base = 0, offset = 0, n = 0, ret = 0, quotemode = 0;
 
 	/* Make sure the pipe directory exists */
 	args[0] = name;
@@ -104,15 +104,16 @@
 			continue;
 		ntot += offset;
 continue_read:
-		/* Change all ' ' into '\0'. This implies that the user is not
-		 * allowed to use spaces (that don't distinguish options or
-		 * commands) in her rules. This comes down to not allowing spaces
-		 * in options like the string of --ulog-prefix (use '_' instead).
-		 */
+		/* Put '\0' between arguments. */
 		for (; offset < ntot; n++, offset++) {
-			if (cmdline[offset] == ' ')
+			if (cmdline[offset] == '\"') {
+				quotemode ^= 1;
 				cmdline[offset] = '\0';
-			if (cmdline[offset] == '\n') {
+			} else if (!quotemode && cmdline[offset] == ' ') {
+				cmdline[offset] = '\0';
+			} else if (cmdline[offset] == '\n') {
+				if (quotemode)
+					ebt_print_error("ebtablesd: wrong number of \" delimiters");
 				cmdline[offset] = '\0';
 				break;
 			}
@@ -145,6 +146,10 @@
 		n2 = 0;
 		argc = 0;
 		while (n2 < n && argc < EBTD_ARGC_MAX) {
+			if (*(cmdline + base + n2) == '\0') {
+				n2++;
+				continue;
+			}
 			argv[argc++] = cmdline + base + n2;
 			n2 += strlen(cmdline + base + n2) + 1;
 		}
@@ -303,7 +308,7 @@
 				replace[i].num_counters = 0;
 			ebt_deliver_table(&replace[i]);
 			if (ebt_errormsg[0] == '\0' && open_method[i] == OPEN_METHOD_KERNEL)
-				ebt_deliver_counters(&replace[i], EXEC_STYLE_DAEMON);
+				ebt_deliver_counters(&replace[i]);
 			goto write_msg;
 		} else if (!strcmp(argv[1], "fcommit")) {
 			if (argc != 4) {
@@ -333,7 +338,7 @@
 			strcpy(replace[i].filename, argv[3]);
 			ebt_deliver_table(&replace[i]);
 			if (ebt_errormsg[0] == '\0' && open_method[i] == OPEN_METHOD_KERNEL)
-				ebt_deliver_counters(&replace[i], EXEC_STYLE_DAEMON);
+				ebt_deliver_counters(&replace[i]);
 			free(replace[i].filename);
 			replace[i].filename = NULL;
 			goto write_msg;
