diff --git a/exec/load/dorkit.js b/exec/load/dorkit.js
index 3305e80655395541d35af382f7a8b819d761a1c1..4c3a999329d288fcd87ed02401e102e6bf8cd88f 100644
--- a/exec/load/dorkit.js
+++ b/exec/load/dorkit.js
@@ -200,6 +200,8 @@ var dk = {
 					break;
 			}
 		},
+		_orig_attr:new Attribute(7),
+		_next_attr:new Attribute(7),
 
 		get attr() {
 			return this._attr;
@@ -208,8 +210,10 @@ var dk = {
 			function handle_string(str, obj) {
 				var i;
 
+				obj._next_attr.value = 7;
 				for (i=0; i<val.length; i++)
-					obj.ctrla_attr(str[i], obj.attr);
+					obj.ctrla_attr(str[i], obj._next_attr);
+				obj.attr.value = obj._next_attr.value;
 			}
 
 			if (typeof(val)=='object') {
@@ -239,8 +243,6 @@ var dk = {
 		 * Returns a string with ^A codes converted to ANSI or stripped
 		 * as appropriate.
 		 */
-		_orig_attr:new Attribute(7),
-		_next_attr:new Attribute(7),
 		parse_ctrla:function(txt, orig_attr) {
 			var ret='';
 			var i;