--- /usr/src/ruby-1.1c1/lib/tkcanvas.rb	Tue Jul 21 18:18:02 1998
+++ tkcanvas.rb	Fri Jul 24 20:38:24 1998
@@ -310,7 +310,7 @@
 	  || key == 'latinfont' || key == 'asciifont' )
 	tagfont_configure(tagid(tagOrId), {key=>value})
       else
-	tk_call 'itemconfigure', tagid(tagOrId), "-#{key}", value
+	tk_send 'itemconfigure', tagid(tagOrId), "-#{key}", value
       end
     end
   end
--- /usr/src/ruby-1.1c1/lib/tkfont.rb	Fri Jul 17 23:43:28 1998
+++ tkfont.rb	Fri Jul 24 17:46:22 1998
@@ -42,7 +42,7 @@
       r | []
 
     when /^8\.*/
-      list(tk_call('font', 'names'))
+      tk_split_simplelist(tk_call('font', 'names'))
 
     end
   end
@@ -89,10 +89,14 @@
       if fnt == []
 	TkFont.new(nil, nil).call_font_configure(path, *(args + [{}]))
       else
-	compound = Hash[*list(tk_call('font', 'configure', 
-				      fnt))].collect{|key,value|
-	  [key[1..-1], value]
-	}.assoc('compound')[1]
+	begin
+	  compound = Hash[*list(tk_call('font', 'configure', 
+					fnt))].collect{|key,value|
+	    [key[1..-1], value]
+	  }.assoc('compound')[1]
+	rescue
+	  compound = []
+	end
 	if compound == []
 	  TkFont.new(fnt, DEFAULT_KANJI_FONT_NAME) \
 	  .call_font_configure(path, *(args + [{}]))
@@ -156,14 +160,19 @@
     elsif font.kind_of? Array
       finfo = {}
       finfo['family'] = font[0].to_s
-      if font[1] && font[1] != '0' && font[1] =~ /^(|\+|-)([0-9]+)$/
-	if $1 == '-'
-	  finfo['pixels'] = font[1].to_s
+      if font[1]
+	fsize = font[1].to_s
+	if fsize != '0' && fsize =~ /^(|\+|-)([0-9]+)$/
+	  if $1 == '-'
+	    finfo['pixels'] = $2
+	  else
+	    finfo['points'] = $2
+	  end
 	else
-	  finfo['points'] = font[1].to_s
+	  finfo['points'] = '13'
 	end
       end
-      finfo[2..-1].each{|style|
+      font[2..-1].each{|style|
 	case (style)
 	when 'normal'
 	  finfo['weight'] = style
@@ -199,16 +208,19 @@
     elsif font.kind_of? Array
       finfo = {}
       finfo['family'] = font[0].to_s
-      if font[1] && font[1] != '0' && font[1] =~ /^(|\+|-)([0-9]+)$/
-	if $1 == '-'
-	  finfo['pixels'] = $2
+      if font[1]
+	fsize = font[1].to_s
+	if fsize != '0' && fsize =~ /^(|\+|-)([0-9]+)$/
+	  if $1 == '-'
+	    finfo['pixels'] = $2
+	  else
+	    finfo['points'] = $2
+	  end
 	else
-	  finfo['points'] = $2
+	  finfo['points'] = '13'
 	end
-      else
-	finfo['points'] = '13'
       end
-      finfo[2..-1].each{|style|
+      font[2..-1].each{|style|
 	case (style)
 	when 'normal'
 	  finfo['weight'] = style
