diff -ur rubywebdialogs-0.0.10.tar.gz/rubywebdialogs/lib/ftools.lib.rb rubywebdialogs-0.0.11.tar.gz/rubywebdialogs/lib/ftools.lib.rb
--- rubywebdialogs-0.0.10.tar.gz/rubywebdialogs/lib/ftools.lib.rb	2004-08-21 10:56:03.000000000 +0200
+++ rubywebdialogs-0.0.11.tar.gz/rubywebdialogs/lib/ftools.lib.rb	2004-09-03 12:26:26.000000000 +0200
@@ -58,6 +58,8 @@
 
     entry.gsub!(/[\/\\]*$/, "")	unless entry.nil?
 
+    mask	= /^#{mask}$/i	if mask.kind_of?(String)
+
     res	= []
 
     if File.directory?(entry)
@@ -65,11 +67,19 @@
 
       res += ["%s/" % entry]	if mask.nil? or entry =~ mask
 
-      Dir.chdir(entry)
-        Dir.new(".").each do |e|
-          res += Dir.find(e, mask).collect{|e| entry+"/"+e}	unless [".", ".."].include?(e)
+      begin
+        Dir.chdir(entry)
+
+        begin
+          Dir.new(".").each do |e|
+            res += Dir.find(e, mask).collect{|e| entry+"/"+e}	unless [".", ".."].include?(e)
+          end
+        ensure
+          Dir.chdir(pdir)
         end
-      Dir.chdir(pdir)
+      rescue Errno::EACCES => error
+        puts error
+      end
     else
       res += [entry]	if mask.nil? or entry =~ mask
     end
diff -ur rubywebdialogs-0.0.10.tar.gz/rubywebdialogs/lib/net.lib.rb rubywebdialogs-0.0.11.tar.gz/rubywebdialogs/lib/net.lib.rb
--- rubywebdialogs-0.0.10.tar.gz/rubywebdialogs/lib/net.lib.rb	2004-08-21 10:56:03.000000000 +0200
+++ rubywebdialogs-0.0.11.tar.gz/rubywebdialogs/lib/net.lib.rb	2004-09-03 12:26:26.000000000 +0200
@@ -28,7 +28,7 @@
 
 class TCPServer
   def self.freeport(from, to, remote=false)
-    if windows?
+    if windows? or cygwin?
       TCPServer.freeport_windows(from, to, remote)
     else
       TCPServer.freeport_linux(from, to, remote)
@@ -343,8 +343,8 @@
           uri	= EVURI.new(uri) if uri.kind_of? String
           host	= uri.host
           port	= uri.port
-          io	= nil
 
+          io	= nil
           @@mutex.synchronize do
             @@hosts[host]	= IPSocket.getaddress(host)	if not @@hosts.include?(host)
             io			= TCPSocket.new(@@hosts[host], port.zero? ? 80 : port)
@@ -352,42 +352,33 @@
 
           if post.empty?
             io.write "GET %s%s HTTP/1.0\r\n" % [(uri.path or ´/´), (uri.varstring.empty? ? ´´ : ´?´ + uri.varstring)]
-            io.write "Host: %s\r\n" % host
-            io.write "\r\n"
           else
             io.write "POST %s%s HTTP/1.0\r\n" % [(uri.path or ´/´), (uri.varstring.empty? ? ´´ : ´?´ + uri.varstring)]
-            io.write "Host: %s\r\n" % host
-            io.write "Content-Type: application/x-www-form-urlencoded\r\n"
-            io.write "Content-Length: %s\r\n" % post.length
-            io.write "Pragma: \r\n"
-            io.write "\r\n"
-            io.write post
           end
         else
           proxy	= EVURI.new($proxy)
           host	= proxy.host
           port	= proxy.port
-          io	= nil
 
           io	= TCPSocket.new(host, port.zero? ? 8080 : port)
 
           if post.empty?
             io.write "GET %s HTTP/1.0\r\n" % uri
-            io.write "Host: %s\r\n" % host
-            io.write "Proxy-Authorization: Basic %s\r\n" % $proxy_auth unless $proxy_auth.nil?
-            io.write "\r\n"
           else
             io.write "POST %s HTTP/1.0\r\n" % uri
-            io.write "Host: %s\r\n" % host
-            io.write "Proxy-Authorization: Basic %s\r\n" % $proxy_auth unless $proxy_auth.nil?
-            io.write "Content-Type: application/x-www-form-urlencoded\r\n"
-            io.write "Content-Length: %s\r\n" % post.length
-            io.write "Pragma: \r\n"
-            io.write "\r\n"
-            io.write post
           end
         end
 
+        io.write "Host: %s\r\n" % host
+        io.write "User-Agent: evwget\r\n"
+        io.write "Proxy-Authorization: Basic %s\r\n" % $proxy_auth unless $proxy_auth.nil?
+        #io.write "Accept-Encoding: deflate\r\n"
+        #io.write "Connection: close\r\n"
+        io.write "Content-Type: application/x-www-form-urlencoded\r\n"	unless post.empty?
+        io.write "Content-Length: %s\r\n" % post.length			unless post.empty?
+        io.write "\r\n"
+        io.write post							unless post.empty?
+
         io.close_write
 
         res		= io.read
@@ -545,9 +536,17 @@
 
     @peeraddr	= @io.peeraddr
 
+    @pda	= false
+    @pda	= true	if (self.include?("user-agent") and self["user-agent"].downcase.include?("windows ce"))
+    @pda	= true	if (self.include?("user-agent") and self["user-agent"].downcase.include?("handhttp"))
+
     @io.close_read
   end
 
+  def pda?
+    @pda
+  end
+
   def to_s
     res = @request.to_s
     self.each do |k, v|
@@ -637,11 +636,11 @@
 	  if (not remote) or (remote and (auth.nil? or auth.empty? or authenticate(auth, realm, req, resp)))
 	    @@times[com]=Time.new.to_f	if not @@times.include?(com)
 
-	    #puts "#{Time.new.strftime("%H:%M:%S")}: #{ip}: #{((Time.new.to_f - @@times[com]).to_s + "0"*4)[0..4]}: > #{req.request}"
+	    #puts "#{Time.new.strftime("%H:%M:%S")}: #{ip}: #{((Time.new.to_f - @@times[com]).to_s + "0"*4)[0..4]}: > #{req.request.to_s.strip}"
 
 	    yield(req, resp)
 
-	    puts "#{Time.new.strftime("%H:%M:%S")}: #{ip}: #{((Time.new.to_f - @@times[com]).to_s + "0"*4)[0..4]}: < #{req.request}"
+	    puts "#{Time.new.strftime("%H:%M:%S")}: #{ip}: #{((Time.new.to_f - @@times[com]).to_s + "0"*4)[0..4]}: < #{req.request.to_s.strip}"
 
 	    @@times.delete(com)
 	  end
diff -ur rubywebdialogs-0.0.10.tar.gz/rubywebdialogs/lib/rwd.lib.rb rubywebdialogs-0.0.11.tar.gz/rubywebdialogs/lib/rwd.lib.rb
--- rubywebdialogs-0.0.10.tar.gz/rubywebdialogs/lib/rwd.lib.rb	2004-08-21 10:56:03.000000000 +0200
+++ rubywebdialogs-0.0.11.tar.gz/rubywebdialogs/lib/rwd.lib.rb	2004-09-03 12:26:26.000000000 +0200
@@ -2,7 +2,6 @@
 require "ev/net"
 require "md5"
 require "rbconfig"
-require "pstore"
 
 begin
   require "win32ole"
@@ -15,6 +14,8 @@
 $rwd_exit	= ARGV.include?("--rwd-exit")	# Hack ???
 $rwd_debug	= ($rwd_debug or false)
 $rwd_border	= ($rwd_border or 0)
+$rwd_dir	= Dir.pwd
+$rwd_files	= File.expand_path("rwd_files", Dir.pwd)
 
 ARGV.delete_if do |arg|
   arg =~ /^--rwd-/
@@ -96,7 +97,7 @@
 
     Thread.new do
       loop do
-	WIN32OLE_EVENT.message_loop
+        WIN32OLE_EVENT.message_loop
       end
     end
   end
@@ -167,11 +168,11 @@
       else
         s	= ""
 
-	s << "<text name=´#{name}´"
-	s << " value=´#{values[n].to_html}´"	if n < values.length
-	s << "/>"
+        s << "<text name=´#{name}´"
+        s << " value=´#{values[n].to_html}´"	if n < values.length
+        s << "/>"
 
-	res << s
+        res << s
       end
 
       res << "</row>"
@@ -249,7 +250,7 @@
 end
 
 class OpenTag
-  def prechildren(res, before, after, varshtml, varsstring, switches, help, oneormorefields, firstaction, tabs, tab)
+  def prechildren(res, before, after, varshtml, varsstring, switches, help, oneormorefields, firstaction, tabs, tab, pda)
     bef	= before[-1]
     res.concat Format % ["Before", @subtype]	if ($rwd_debug and not bef.nil?)
     res.concat bef	if not bef.nil?
@@ -270,6 +271,9 @@
     value2	= varsstring[@args["name"]]	if varsstring.include?(@args["name"])
     value2	= @args["value"]		if @args.include?("value")
 
+    cellspacing	= 3
+    cellspacing	= 0	if pda
+
     case @subtype
     when "application"
     when "window", "helpwindow"
@@ -277,7 +281,10 @@
 
       args["nohelpbutton"]	= (not help)
 
-      res.concat(template($rwd_html1, args))
+      template	= $rwd_html_11
+      template	= $rwd_html_21	if pda
+
+      res.concat(template(template, args))
     when "p"		then res.concat "<p #{align}>"
     when "pre"		then res.concat "<pre #{align}>"
     when "big"		then res.concat "<p #{align}><big>"
@@ -296,15 +303,17 @@
       else
         res.concat "<a href=´javascript:document.bodyform.rwd_action.value=\"#{@args["action"]}\";document.bodyform.submit();´>"
       end
-    when "vertical"	then res.concat "<table #{AC} border=´#{$rwd_border}´ cellspacing=´3´ cellpadding=´0´>"
-    when "horizontal"	then res.concat "<table #{AC} border=´#{$rwd_border}´ cellspacing=´3´ cellpadding=´0´><tr #{align} #{valign}>"
-    when "table"	then res.concat "<table #{AC} border=´#{$rwd_border}´ cellspacing=´3´ cellpadding=´0´>"
+    when "vertical"	then res.concat "<table #{AC} border=´#{$rwd_border}´ cellspacing=´#{cellspacing}´ cellpadding=´0´>"
+    when "horizontal"	then res.concat "<table #{AC} border=´#{$rwd_border}´ cellspacing=´#{cellspacing}´ cellpadding=´0´><tr #{align} #{valign}>"
+    when "table"	then res.concat "<table #{AC} border=´#{$rwd_border}´ cellspacing=´#{cellspacing}´ cellpadding=´0´>"
     when "row"		then res.concat "<tr #{align} #{valign}>"
     when "hidden"	then res.concat "<p #{align}><input name=´#{@args["name"]}´ value=´#{value1}´ type=´hidden´>"
     when "text"
       maxlength	= ""
       maxlength	= "maxlength=´%s´" % @args["maxlength"]	if @args.include?("maxlength")
-      res.concat "<p #{align}><input name=´#{@args["name"]}´ value=´#{value1}´ type=´text´ #{maxlength}>"
+      size	= ""
+      size	= "size=´%s´" % 10			if pda
+      res.concat "<p #{align}><input name=´#{@args["name"]}´ value=´#{value1}´ type=´text´ #{maxlength} #{size}>"
       oneormorefields	<< "true"
     when "textarea"
       res.concat "<p #{align}><textarea name=´#{@args["name"]}´ rows=´25´ cols=´80´>#{value2.crlf}</textarea>"
@@ -312,7 +321,9 @@
     when "password"
       maxlength	= ""
       maxlength	= "maxlength=´%s´" % @args["maxlength"]	if @args.include?("maxlength")
-      res.concat "<p #{align}><input name=´#{@args["name"]}´ value=´#{value1}´ type=´password´ #{maxlength}>"
+      size	= ""
+      size	= "size=´%s´" % 10			if pda
+      res.concat "<p #{align}><input name=´#{@args["name"]}´ value=´#{value1}´ type=´password´ #{maxlength} #{size}>"
       oneormorefields	<< "true"
     when "checkbox"
       if varshtml[@args["name"]] == "on"
@@ -324,7 +335,7 @@
       end
       oneormorefields	<< "true"
     when "radio"
-      if varshtml[@args["name"]] == value1	# ??? 1 of 2?
+      if varshtml[@args["name"]] == value1	# ??? 1 or 2?
         res.concat "<p #{align}><input name=´#{@args["name"]}´ checked=´on´ value=´#{value1}´ type=´radio´>"
       else
         res.concat "<p #{align}><input name=´#{@args["name"]}´ value=´#{value1}´ type=´radio´>"
@@ -425,7 +436,7 @@
     after.push(aft)
   end
 
-  def postchildren(res, before, after, varshtml, varsstring, switches, help, oneormorefields, firstaction, tabs, tab)
+  def postchildren(res, before, after, varshtml, varsstring, switches, help, oneormorefields, firstaction, tabs, tab, pda)
     case @subtype
     when "vertical", "window", "helpwindow", "tabs", "tab"
       res.concat Format % ["BefPost", @subtype]	if $rwd_debug
@@ -445,7 +456,10 @@
 
       args["nohelpbutton"]	= (not help)
 
-      res.concat(template($rwd_html2, args))
+      template	= $rwd_html_12
+      template	= $rwd_html_22	if pda
+
+      res.concat(template(template, args))
     when "p"		then res.concat "</p>"
     when "pre"		then res.concat "</pre>"
     when "big"		then res.concat "</big></p>"
@@ -504,7 +518,11 @@
       a[k.upcase]	= v
     end
 
-    a["LOGO"]		= ""	unless ((not vars["logo"].nil?) and File.file?(vars["logo"]))
+    logo	= nil
+    logo	= File.expand_path(vars["logo"], $rwd_files)	if vars.include?("logo")
+    logo	= nil						unless logo.nil? or File.file?(logo)
+
+    a["LOGO"]		= ""	unless not logo.nil?
 
     a["HELPBUTTON"]	= (not (vars["nohelpbutton"]))
     a["BACKBUTTONS"]	= (not (vars["nobackbuttons"]))
@@ -540,7 +558,7 @@
 end
 
 class Text
-  def prechildren(res, before, after, varshtml, varsstring, switches, help, oneormorefields, firstaction, tabs, tab)
+  def prechildren(res, before, after, varshtml, varsstring, switches, help, oneormorefields, firstaction, tabs, tab, pda)
     if not @text.scan(/[^ \t\r\n]/).empty?
       res.concat Format % ["Text", ""]	if $rwd_debug
       res.concat "#{@text}"
@@ -577,7 +595,7 @@
     @helprwd	= (@@helpwindows[rwd][window] or "").dup
   end
 
-  def render(vars=Hash.new, switches=Hash.new, help=false, tab="")
+  def render(pda, vars=Hash.new, switches=Hash.new, help=false, tab="")
     varshtml		= Hash.new
     varsstring		= Hash.new
     oneormorefields	= ""
@@ -615,9 +633,9 @@
     end
 
     if help
-      helpobject.parsetree("prechildren", "postchildren", html, [""], [""], varshtml, varsstring, switches, false, oneormorefields, firstaction, tabs, tab)
+      helpobject.parsetree("prechildren", "postchildren", html, [""], [""], varshtml, varsstring, switches, false, oneormorefields, firstaction, tabs, tab, pda)
     else
-      windowobject.parsetree("prechildren", "postchildren", html, [""], [""], varshtml, varsstring, switches, (not @helprwd.empty?), oneormorefields, firstaction, tabs, tab)
+      windowobject.parsetree("prechildren", "postchildren", html, [""], [""], varshtml, varsstring, switches, (not @helprwd.empty?), oneormorefields, firstaction, tabs, tab, pda)
     end
 
     html.gsub!(/%%*[[:alnum:]_\-]+%%*/, "")	if not $rwd_debug
@@ -687,7 +705,7 @@
     @rwd_server	= RWDServer.new(self, port, io, auth, realm)
   end
 
-  def render(res, path, post, download, sessionid)
+  def render(res, path, post, download, downloadfile, pda, sessionid)
 
 		# Initialize some vars.
 
@@ -700,6 +718,7 @@
     tab			= ""
     @rwd_msg		= nil
     @rwd_download	= nil
+    @rwd_download_file	= nil
 
 		# Switches are used for checkboxes.
 
@@ -813,21 +832,22 @@
 		# Answer to browser.
 
     if done
-      res << RWDDone.new(@rwd_exitbrowser).render
+      res << RWDDone.new(@rwd_exitbrowser).render(pda)
     else
       if not @rwd_download.nil?
         puts "Download: #{@rwd_window}"		if $rwd_debug
 
-        download << @rwd_download
+        download	<< @rwd_download
+        downloadfile	<< @rwd_download_file
       else
         if not @rwd_msg.nil?
-          res << RWDMessage.new(@rwd_msg).render	if @rwd_msgtype == "message"
-          res << RWDError.new(@rwd_msg).render		if @rwd_msgtype == "error"
+          res << RWDMessage.new(@rwd_msg).render(pda)	if @rwd_msgtype == "message"
+          res << RWDError.new(@rwd_msg).render(pda)	if @rwd_msgtype == "error"
         else
           puts "Window: #{@rwd_window}"		if $rwd_debug
           puts "Tab: #{@rwd_tab}"		if $rwd_debug
 
-          res << RWDWindow.new(@rwd_xml, @rwd_window).render(vars, @rwd_switches, help, @rwd_tab)
+          res << RWDWindow.new(@rwd_xml, @rwd_window).render(pda, vars, @rwd_switches, help, @rwd_tab)
         end
       end
     end
@@ -849,8 +869,9 @@
     @rwd_msgtype	= "error"
   end
 
-  def download(data)
+  def download(data, filename="")
     @rwd_download	= data
+    @rwd_download_file	= filename
   end
 
   def exitbrowser
@@ -889,19 +910,6 @@
     @rack	= rack.to_s
     @cleanup	= SessionCleanup.new(self, 3600, 24*3600)	if cleanup
     @sessions	= {}
-
-    #@store	= PStore.new("#{temp}/store.#{@rack}.#{user}")	# ???
-
-    #@store.transaction do
-      #@store[@rack]	= {}	if not @store.root?(@rack)
-      #@sessions		= @store[@rack]
-    #end
-
-    #at_exit do
-      #@store.transaction do
-        #@store[@rack]	= @sessions
-      #end
-    #end
   end
 
   def [](sessionid)
@@ -943,8 +951,8 @@
 end
 
 class RWDSession < Session
-  def render(res, path, post, download)
-    done	= self["object"].render(res, path, post, download, @sessionid)
+  def render(res, path, post, download, downloadfile, pda)
+    done	= self["object"].render(res, path, post, download, downloadfile, pda, @sessionid)
 
     if done
       res.gsub!(/\$RWD_SESSION\$/, "")
@@ -972,7 +980,8 @@
 
 	# Start browser.
 
-        @browserthread	= Thread.new do
+        @browserthread	=
+        Thread.new do
           puts "Starting the browser..."
 
           #if ENV["RWDBROWSER"].downcase =~ /iexplore/	# ???
@@ -1012,11 +1021,11 @@
         #oldsessionid	= vars["rwd_session"]
         oldsessionid	= req.cookies["sessionid"]
 
-		  # Retrieve session.
+                # Retrieve session.
 
         session	= @sessions[oldsessionid]
 
-		  # Eventually create new session.
+                # Eventually create new session.
 
         if session.nil?
           if auth.nil?
@@ -1033,7 +1042,7 @@
           if oldsessionid.nil? or oldsessionid.empty?
             if not auth.nil? and not auth.empty? and not session.authenticated and pad != "/pixel.gif"
 
-		  # Check authentication
+                # Check authentication
 
               us	= vars["rwd_a"]
               pa	= vars["rwd_b"]
@@ -1047,6 +1056,7 @@
                 @sessions[session.sessionid]	= session
               end
             else
+              session.authenticated		= true
               @sessions[session.sessionid]	= session
             end
           else
@@ -1057,20 +1067,21 @@
           vars	= {}
         end
 
-		  # Avoid timeout.
+                # Avoid timeout.
 
         session.touch
 
         if pad == "/"
 
-		  # Serve methods/callbacks.
+                # Serve methods/callbacks.
 
-		  # Build new page.
+                # Build new page.
 
           download	= ""
+          downloadfile	= ""
           res		= ""
 
-          done	= session.render(res, pad, vars, download)
+          done	= session.render(res, pad, vars, download, downloadfile, req.pda?)
 
           begin
             if download.empty?
@@ -1084,7 +1095,8 @@
               resp << res
             else
               resp["Content-Type"]		= "application/octet-stream"
-              resp["Content-Disposition"]	= "attachment; filename=data"
+              resp["Content-Disposition"]	= "attachment;"
+              resp["Content-Disposition"]	= "attachment; filename=%s" % downloadfile	unless downloadfile.empty?
 
               resp << download
             end
@@ -1094,7 +1106,7 @@
             @sessions.delete(session.sessionid)
           end
 
-		  # Eventually delete this session.
+                # Eventually delete this session.
 
           if done
             @sessions.delete(session.sessionid)
@@ -1102,7 +1114,7 @@
             if @localbrowsing
               resp.flush
 
-              if @browserstarted and @browserthread.alive?
+              if @browserstarted and not @browserthread.nil? and @browserthread.alive?
                 puts "Waiting for the browser to terminate..."
 
                 @browserthread.join
@@ -1114,17 +1126,32 @@
 
         else
 
-		  # Serve files.
+                # Serve files.
 
           if pad == "/pixel.gif"
             resp["Cache-Control"]	= "max-age=86400"
             resp["Content-Type"]	= "image/gif"
             resp << $rwd_pixel
           else
-            if (File.file?(pad.sub(/^\/*/, "")))
-              resp << File.new(pad.sub(/^\/*/, ""), "rb").read	rescue nil
+            if session.authenticated
+              pwd	= Dir.pwd
+              file	= File.expand_path(pad.gsub(/^\/*/, ""), $rwd_files)
+
+              if not file.index(pwd) == 0
+                resp["Content-Type"]	= "text/html"
+                resp.response		= "HTTP/1.0 400 BAD REQUEST"
+                resp << "<html><body><p><b>Bad Request.</b> (<tt>#{pad}</tt>)</p></body></html>"
+              elsif File.file?(file)
+                resp << File.new(file, "rb").read	rescue nil
+              else
+                resp["Content-Type"]	= "text/html"
+                resp.response		= "HTTP/1.0 404 NOT FOUND"
+                resp << "<html><body><p><b>Not found.</b> (<tt>#{pad}</tt>)</p></body></html>"
+              end
             else
-              resp.response	= "HTTP/1.0 404 NOT FOUND"
+              resp["Content-Type"]	= "text/html"
+              resp.response		= "HTTP/1.0 ??? NOT AUTHORIZED"
+              resp << "<html><body><p><b>Not Authorized.</b></p></body></html>"
             end
           end
 
@@ -1134,7 +1161,7 @@
   end
 end
 
-$rwd_html	= "
+$rwd_html_1	= "
 <!-- Generated by RubyWebDialog.                                               -->
 <!-- For more information, please contact Erik Veenstra <rwd@erikveen.dds.nl>. -->
 <html>
@@ -1410,6 +1437,78 @@
 </html>
 "
 
+$rwd_html_2	= "
+<!-- Generated by RubyWebDialog.                                               -->
+<!-- For more information, please contact Erik Veenstra <rwd@erikveen.dds.nl>. -->
+<html>
+  <head>
+    <title>%TITLE%</title>
+
+    <meta http-equiv=´Content-Type´ content=´text/html; charset=ISO-8859-15´>
+
+    <link rel=´shortcut icon´ href=´%LOGO%´>
+
+    <script type=´text/javascript´>
+    <!--
+      function BodyGo() {
+        $RWD_FOCUS$
+      }
+    //-->
+    </script>
+  </head>
+
+  <body bgcolor=´white´ onload=´BodyGo()´ link=´#000000´ vlink=´#000000´ alink=´#000000´>
+    <form name=´bodyform´ action=´/´ method=´post´>
+      <table align=´center´ border=´0´ cellspacing=´0´ cellpadding=´0´ width=´100%´ height=´100%´>
+
+        <tr align=´center´>
+          <td align=´center´ bgcolor=´#444488´>
+
+            <table align=´left´ border=´0´ cellspacing=´1´ cellpadding=´0´>
+              <tr align=´center´>
+                <td align=´border´><img src=´%LOGO%´ width=´14´ height=´14´></td>
+                <td align=´center´><b><small><font color=´#FFFFFF´>&nbsp;%TITLE%&nbsp;</font></small></b></td>
+              </tr>
+            </table>
+
+            <table align=´right´ border=´0´ cellspacing=´1´ cellpadding=´0´>
+              <tr align=´center´>
+                <!-- %HELPBUTTON%  --><td align=´center´ bgcolor=´#EEEEEE´><b><small><a href=´javascript:document.bodyform.rwd_action.value=\"rwd_help\";document.bodyform.submit();´>&nbsp;?&nbsp;</a></small></b></td>
+                <!-- %BACKBUTTONS% --><td align=´center´ bgcolor=´#EEEEEE´><b><small><a href=´javascript:document.bodyform.rwd_action.value=\"rwd_main\";document.bodyform.submit();´>&nbsp;&lt;&lt;&nbsp;</a></small></b></td>
+                <!-- %BACKBUTTONS% --><td align=´center´ bgcolor=´#EEEEEE´><b><small><a href=´javascript:document.bodyform.rwd_action.value=\"rwd_back\";document.bodyform.submit();´>&nbsp;&lt;&nbsp;</a></small></b></td>
+                <!-- %CLOSEBUTTON% --><td align=´center´ bgcolor=´#EEEEEE´><b><small><a href=´javascript:document.bodyform.rwd_action.value=\"rwd_quit\";document.bodyform.submit();´>&nbsp;X&nbsp;</a></small></b></td>
+              </tr>
+            </table>
+
+          </td>
+        </tr>
+
+        <!--
+        <tr align=´center´>
+          <td align=´center´ bgcolor=´#FFFFFF´>&nbsp;</td>
+        </tr>
+        -->
+
+        <tr align=´center´>
+          <td align=´center´ bgcolor=´#FFFFFF´>
+
+              <table align=´center´ border=´0´ cellspacing=´0´ cellpadding=´0´>
+
+                %BODY%
+
+              </table>
+
+              <input name=´rwd_action´ value=´$RWD_FIRSTACTION$´ type=´hidden´>
+              <input name=´rwd_session´ value=´$RWD_SESSION$´ type=´hidden´>
+          </td>
+        </tr>
+
+      </table>
+    </form>
+  </body>
+</html>
+"
+
 $rwd_pixel	= "
 R0lGODlhAQABAOcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoK
 CgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZ
@@ -1432,4 +1531,5 @@
 CgD/ACwAAAAAAQABAAAIBAD/BQQAOw==
 ".unpack("m").shift
 
-$rwd_html1, $rwd_html2	= $rwd_html.split(/^\s*%BODY%\s*\r*$/)
+$rwd_html_11, $rwd_html_12	= $rwd_html_1.split(/^\s*%BODY%\s*\r*$/)
+$rwd_html_21, $rwd_html_22	= $rwd_html_2.split(/^\s*%BODY%\s*\r*$/)
diff -ur rubywebdialogs-0.0.10.tar.gz/rubywebdialogs/lib/sgml.lib.rb rubywebdialogs-0.0.11.tar.gz/rubywebdialogs/lib/sgml.lib.rb
--- rubywebdialogs-0.0.10.tar.gz/rubywebdialogs/lib/sgml.lib.rb	2004-08-21 10:56:03.000000000 +0200
+++ rubywebdialogs-0.0.11.tar.gz/rubywebdialogs/lib/sgml.lib.rb	2004-09-03 12:26:26.000000000 +0200
@@ -25,11 +25,13 @@
   end
 
   def prechildren_to_s(res)
-    res << "#{CGI.unescapeHTML(@text)} "
+    #res << "#{CGI.unescapeHTML(@text)} "
+    res << @text
   end
 
   def prechildren_to_sgml(res)
-    res << "#{CGI.unescapeHTML(@text)}"
+    #res << "#{CGI.unescapeHTML(@text)}"
+    res << @text
   end
 end