diff --git a/src/backend/foreign/foreign.c b/src/backend/foreign/foreign.c
index 67a4597c38204dfde8804be87dcb64fddf05cee1..a7d30a15caf4b2901cc7500087e8d9990b66db42 100644
--- a/src/backend/foreign/foreign.c
+++ b/src/backend/foreign/foreign.c
@@ -363,8 +363,17 @@ deflist_to_tuplestore(ReturnSetInfo *rsinfo, List *options)
 		DefElem    *def = lfirst(cell);
 
 		values[0] = CStringGetTextDatum(def->defname);
-		values[1] = CStringGetTextDatum(((Value *) def->arg)->val.str);
-		nulls[0] = nulls[1] = false;
+		nulls[0] = false;
+		if (def->arg)
+		{
+			values[1] = CStringGetTextDatum(((Value *) (def->arg))->val.str);
+			nulls[1] = false;
+		}
+		else
+		{
+			values[1] = (Datum) 0;
+			nulls[1] = true;
+		}
 		tuplestore_putvalues(tupstore, tupdesc, values, nulls);
 	}