diff --git a/networking/udhcp/files.c b/networking/udhcp/files.c
index 9ade4ae..775f829 100644
--- a/networking/udhcp/files.c
+++ b/networking/udhcp/files.c
@@ -101,19 +101,8 @@
 {
 	struct option_set *existing, *new, **curr;
 
-	/* add it to an existing option */
 	existing = find_option(*opt_list, option->code);
-	if (existing) {
-		DEBUG("Attaching option %s to existing member of list", option->name);
-		if (option->flags & OPTION_LIST) {
-			if (existing->data[OPT_LEN] + length <= 255) {
-				existing->data = realloc(existing->data,
-						existing->data[OPT_LEN] + length + 2);
-				memcpy(existing->data + existing->data[OPT_LEN] + 2, buffer, length);
-				existing->data[OPT_LEN] += length;
-			} /* else, ignore the data, we could put this in a second option in the future */
-		} /* else, ignore the new data */
-	} else {
+	if (!existing) {
 		DEBUG("Attaching option %s to list", option->name);
 
 		/* make a new option */
@@ -129,7 +118,26 @@
 
 		new->next = *curr;
 		*curr = new;
+		return;
 	}
+
+	/* add it to an existing option */
+	DEBUG("Attaching option %s to existing member of list", option->name);
+	if (option->flags & OPTION_LIST) {
+		if (existing->data[OPT_LEN] + length <= 255) {
+			existing->data = xrealloc(existing->data,
+					existing->data[OPT_LEN] + length + 3);
+			if ((option->flags & TYPE_MASK) == OPTION_STRING) {
+				if (existing->data[OPT_LEN] + length >= 255)
+					return;
+				/* add space separator between STRING options in a list */
+				existing->data[existing->data[OPT_LEN] + 2] = ' ';
+				existing->data[OPT_LEN]++;
+			}
+			memcpy(existing->data + existing->data[OPT_LEN] + 2, buffer, length);
+			existing->data[OPT_LEN] += length;
+		} /* else, ignore the data, we could put this in a second option in the future */
+	} /* else, ignore the new data */
 }
 
 
diff --git a/networking/udhcp/options.c b/networking/udhcp/options.c
index 4a46da5..bda6efc 100644
--- a/networking/udhcp/options.c
+++ b/networking/udhcp/options.c
@@ -23,7 +23,7 @@
 	{"lprsvr",      OPTION_IP | OPTION_LIST,                0x09},
 	{"hostname",    OPTION_STRING | OPTION_REQ,             0x0c},
 	{"bootsize",    OPTION_U16,                             0x0d},
-	{"domain",      OPTION_STRING | OPTION_REQ,             0x0f},
+	{"domain",      OPTION_STRING | OPTION_LIST | OPTION_REQ, 0x0f},
 	{"swapsvr",     OPTION_IP,                              0x10},
 	{"rootpath",    OPTION_STRING,                          0x11},
 	{"ipttl",       OPTION_U8,                              0x17},
