Index: /issm/trunk/src/m/kml/kml_object.m
===================================================================
--- /issm/trunk/src/m/kml/kml_object.m	(revision 7335)
+++ /issm/trunk/src/m/kml/kml_object.m	(revision 7336)
@@ -11,5 +11,5 @@
 %  arguments constructs a new instance from the arguments.
 %
-classdef kml_object
+classdef kml_object < handle
     properties
         id        ='';
Index: /issm/trunk/src/m/kml/string_buf.m
===================================================================
--- /issm/trunk/src/m/kml/string_buf.m	(revision 7335)
+++ /issm/trunk/src/m/kml/string_buf.m	(revision 7336)
@@ -18,9 +18,9 @@
 %  arguments constructs a new instance from the arguments.
 %
-classdef string_buf
+classdef string_buf < handle
     properties
-        init      =1000000;
-        inc       =100000;
-        max       =10000000;
+        init      =10000000;
+        inc       =1000000;
+        max       =100000000;
     end
 %     properties (SetAccess = private, GetAccess = private)
@@ -148,5 +148,6 @@
 %  check the buffer size and increase as necessary
 
-            while (sbuf.len+length(str) > sbuf.size)
+            slen=length(str);
+            while (sbuf.len+slen > sbuf.size)
                 if (sbuf.size+sbuf.inc <= sbuf.max)
                     sbuf.string=[sbuf.string blanks(sbuf.inc)];
@@ -160,6 +161,6 @@
 %  copy the string into the buffer
 
-            sbuf.string(sbuf.len+1:sbuf.len+length(str))=str;
-            sbuf.len=sbuf.len+length(str);
+            sbuf.string(sbuf.len+1:sbuf.len+slen)=str;
+            sbuf.len=sbuf.len+slen;
 
         end
