diff --git a/exec/exportcfg.js b/exec/exportcfg.js
index 0a6550d98a4e926c8342e6179f96cc4d69744489..f3a063ee7f626ddbfa1dee8e692872f1bd6dd278 100644
--- a/exec/exportcfg.js
+++ b/exec/exportcfg.js
@@ -29,8 +29,10 @@ var popts = {
 };
 var props = [];
 var	propfmt = {};	// printf-style format string
-var exclude = [];
+var propex = [];	// properties to exclude
 var grp = [];
+var include = [];	// items to include
+var exclude = [];	// items to exclude
 var cfgtype;
 var cfgtypes = {
 	'msg-grps': 	msg_area.grp,
@@ -52,6 +54,7 @@ function usage(msg)
 	}
 	writeln("usage: exportcfg.js <cfg-type>");
 	writeln("\t[[-grp=<msg_area.grp.name | file_area.lib.name | xtrn_area.sec.code>] [...]]");
+	writeln("\t[[-inc=<internal_code> | -exc=<internal_code>] [...]]");
 	writeln("\t[-<option>[=<value>] [...]]");
 	writeln("\t[[[property][=<printf-format> [-upper | -lower | -under]] [...]]");
 	writeln("\t[[-ex=<property>] [...]]");
@@ -99,8 +102,19 @@ for(var i = 0; i < argc; i++) {
 	while(arg.charAt(0) == '-')
 		arg = arg.slice(1);
 	switch(arg) {
+		case 'inc':	// include item (by code)
+			if(value === undefined)
+				value = argv[++i];
+			include.push(value.toLowerCase());
+			continue;
+		case 'exc':	// exclude item (by code)
+			if(value === undefined)
+				value = argv[++i];
+			exclude.push(value.toLowerCase());
+			continue;
 		case 'lib':
 		case 'grp':
+		case 'sec':
 			if(value === undefined)
 				value = argv[++i];
 			grp.push(value.toLowerCase());
@@ -108,7 +122,7 @@ for(var i = 0; i < argc; i++) {
 		case 'ex':	// exclude property
 			if(value === undefined)
 				value = argv[++i];
-			exclude.push(value);
+			propex.push(value);
 			continue;
 		case '?':
 		case 'help':
@@ -194,12 +208,21 @@ for(var i in cfglist) {
 				break;
 		}
 	}
+	if(include.length && include.indexOf(i) < 0)
+		continue;
+	if(exclude.length && exclude.indexOf(i) >= 0)
+		continue;
 	var obj = {};
-	if(props.length == 0)
+	if(props.length == 0) {
 		obj = item; //JSON.parse(JSON.stringify(item));
+		if(obj.code === undefined)
+			obj.code = i;
+	}
 	else {
 		for(var f in props) {
 			var value = item[props[f]];
+			if(value === undefined && props[f] == 'code')
+				value = i;
 			if(typeof value == 'string') {
 				if(popts.under[props[f]])
 					value = value.replace(' ', '_');
@@ -212,8 +235,8 @@ for(var i in cfglist) {
 		}
 	}
 	// Remove excluded properties
-	for(var e in exclude)
-		delete obj[exclude[e]];
+	for(var e in propex)
+		delete obj[propex[e]];
 	for(var p in obj) {
 		if(typeof obj[p] == 'object')
 			delete obj[p];