From 2b5f62a0b2db198609b45dec622a018dae37008e Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Wed, 4 Dec 2002 14:11:26 +0000
Subject: [PATCH] merged 2.4 branch into the trunk

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18040 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 Makefile.in                                   |   83 +-
 acinclude.m4                                  |   69 +-
 aclocal.m4                                    |  189 +-
 art/wxwin.ico                                 |  Bin 0 -> 1078 bytes
 art/wxwin16x16.png                            |  Bin 0 -> 1241 bytes
 art/wxwin16x16.xpm                            |   25 +
 art/wxwin32x32.png                            |  Bin 0 -> 1267 bytes
 art/wxwin32x32.xpm                            |   41 +
 config.guess                                  |  348 +-
 configure                                     | 2479 ++++---
 configure.in                                  |  331 +-
 contrib/configure                             |   29 +-
 contrib/configure.in                          |   16 +-
 contrib/include/wx/canvas/bbox.h              |    2 +-
 contrib/include/wx/fl/antiflickpl.h           |    2 +-
 contrib/include/wx/fl/bardragpl.h             |    2 +-
 contrib/include/wx/fl/barhintspl.h            |    2 +-
 contrib/include/wx/fl/cbcustom.h              |    2 +-
 contrib/include/wx/fl/controlbar.h            |   39 +-
 contrib/include/wx/fl/dyntbar.h               |   17 +-
 contrib/include/wx/fl/dyntbarhnd.h            |    2 +-
 contrib/include/wx/fl/fldefs.h                |   50 +
 contrib/include/wx/fl/frmview.h               |    4 +-
 contrib/include/wx/fl/garbagec.h              |    3 +-
 contrib/include/wx/fl/gcupdatesmgr.h          |    2 +-
 contrib/include/wx/fl/hintanimpl.h            |    8 +-
 contrib/include/wx/fl/newbmpbtn.h             |   10 +-
 contrib/include/wx/fl/panedrawpl.h            |    2 +-
 contrib/include/wx/fl/rowdragpl.h             |    4 +-
 contrib/include/wx/fl/rowlayoutpl.h           |    2 +-
 contrib/include/wx/fl/toolwnd.h               |   15 +-
 contrib/include/wx/fl/updatesmgr.h            |    2 +-
 contrib/include/wx/ogl/basic.h                |   19 +-
 contrib/include/wx/ogl/basicp.h               |    3 +-
 contrib/include/wx/ogl/bmpshape.h             |    2 +-
 contrib/include/wx/ogl/composit.h             |    4 +-
 contrib/include/wx/ogl/divided.h              |    2 +-
 contrib/include/wx/ogl/drawn.h                |    4 +-
 contrib/include/wx/ogl/drawnp.h               |   11 +-
 contrib/include/wx/ogl/lines.h                |    2 +-
 contrib/include/wx/ogl/ogldiag.h              |    2 +-
 contrib/include/wx/stc/stc.h                  |  388 +-
 contrib/include/wx/xrc/xh_all.h               |    1 +
 contrib/include/wx/xrc/xh_scwin.h             |   32 +
 contrib/include/wx/xrc/xmlres.h               |   29 +-
 contrib/samples/animate/AniTestVC.dsp         |    4 +-
 contrib/samples/animate/Makefile.in           |    2 +-
 contrib/samples/applet/Makefile.in            |    2 +-
 contrib/samples/canvas/simple/Makefile.in     |    2 +-
 contrib/samples/canvas/simple/SimpleVC.dsp    |    4 +-
 contrib/samples/canvas/test/Makefile.in       |    2 +-
 contrib/samples/canvas/test/TestVC.dsp        |    4 +-
 contrib/samples/fl/fl_demo1/Makefile.in       |    2 +-
 contrib/samples/fl/fl_demo1/fl_demo.dsp       |   69 +-
 contrib/samples/fl/fl_demo1/makefile.vc       |   14 +
 contrib/samples/fl/fl_demo2/Makefile.in       |    2 +-
 contrib/samples/fl/fl_demo2/fl_demo.dsp       |   69 +-
 contrib/samples/fl/fl_demo2/makefile.vc       |   14 +
 contrib/samples/fl/fl_sample1/Makefile.in     |    2 +-
 contrib/samples/fl/fl_sample1/fl_demo.dsp     |   69 +-
 contrib/samples/fl/fl_sample1/makefile.vc     |   14 +
 contrib/samples/fl/fl_sample2/Makefile.in     |    2 +-
 contrib/samples/fl/fl_sample2/fl_demo.dsp     |   69 +-
 contrib/samples/fl/fl_sample2/makefile.vc     |   14 +
 contrib/samples/fl/fl_sample3/Makefile.in     |    2 +-
 contrib/samples/fl/fl_sample3/fl_demo.dsp     |   69 +-
 contrib/samples/fl/fl_sample3/makefile.vc     |   14 +
 contrib/samples/gizmos/Makefile.in            |    2 +-
 contrib/samples/gizmos/dynsash/Makefile.in    |    2 +-
 contrib/samples/gizmos/dynsash/dynsash.dsp    |    4 +-
 .../samples/gizmos/dynsash_switch/Makefile.in |    2 +-
 .../gizmos/dynsash_switch/dynsash_switch.dsp  |    4 +-
 contrib/samples/gizmos/editlbox/Makefile.in   |    2 +-
 contrib/samples/gizmos/editlbox/editlbox.dsp  |    4 +-
 contrib/samples/gizmos/led/Makefile.in        |   23 +
 contrib/samples/gizmos/led/led.cpp            |  341 +
 contrib/samples/gizmos/led/led.dsp            |  177 +
 contrib/samples/gizmos/multicell/Makefile.in  |    2 +-
 .../samples/gizmos/multicell/multicell.dsp    |    4 +-
 contrib/samples/gizmos/splittree/Makefile.in  |    2 +-
 contrib/samples/gizmos/splittree/TreeVC.dsp   |    4 +-
 contrib/samples/mmedia/MMboardVC.dsp          |    4 +-
 contrib/samples/mmedia/Makefile.in            |    2 +-
 contrib/samples/ogl/ogledit/Makefile.in       |    2 +-
 contrib/samples/ogl/ogledit/OGLEditVC.dsp     |    4 +-
 contrib/samples/ogl/studio/Makefile.in        |    2 +-
 contrib/samples/ogl/studio/StudioVC.dsp       |    2 +-
 contrib/samples/plot/Makefile.in              |    2 +-
 contrib/samples/plot/PlotVC.dsp               |    4 +-
 contrib/samples/stc/Makefile.in               |    2 +-
 contrib/samples/stc/StcTestVC.dsp             |    4 +-
 contrib/samples/svg/Makefile.in               |    2 +-
 contrib/samples/xrc/Makefile.in               |    3 +-
 contrib/samples/xrc/XrcDemoVC.dsp             |    4 +-
 contrib/samples/xrc/custclas.cpp              |    2 +-
 contrib/samples/xrc/derivdlg.cpp              |    2 +-
 contrib/samples/xrc/myframe.cpp               |   24 +-
 contrib/samples/xrc/xrcdemo.cpp               |   22 +-
 contrib/src/animate/Makefile.in               |    9 +-
 contrib/src/applet/Makefile.in                |    9 +-
 contrib/src/canvas/Makefile.in                |    9 +-
 contrib/src/canvas/bbox.cpp                   |    2 +-
 contrib/src/fl/Makefile.in                    |    9 +-
 contrib/src/fl/flVC.dsp                       |   95 +-
 contrib/src/fl/newbmpbtn.cpp                  |   48 +-
 contrib/src/gizmos/Makefile.in                |    9 +-
 contrib/src/gizmos/editlbox.cpp               |    2 +-
 contrib/src/mmedia/Makefile.in                |    9 +-
 contrib/src/mmedia/makefile.b32               |    2 +-
 contrib/src/mmedia/makefile.g95               |    2 +-
 contrib/src/net/Makefile.in                   |   11 +-
 contrib/src/ogl/Makefile.in                   |    9 +-
 contrib/src/ogl/basic.cpp                     |    2 +-
 contrib/src/ogl/basic2.cpp                    |    8 +-
 contrib/src/ogl/bmpshape.cpp                  |    4 +-
 contrib/src/ogl/composit.cpp                  |    7 +-
 contrib/src/ogl/divided.cpp                   |    2 +-
 contrib/src/ogl/drawn.cpp                     |   16 +-
 contrib/src/ogl/lines.cpp                     |    2 +-
 contrib/src/ogl/ogldiag.cpp                   |    2 +-
 contrib/src/plot/Makefile.in                  |    8 +-
 contrib/src/stc/Makefile.in                   |   10 +-
 contrib/src/stc/PlatWX.cpp                    |    2 +-
 contrib/src/stc/ScintillaWX.cpp               |   69 +-
 contrib/src/stc/ScintillaWX.h                 |    7 +-
 contrib/src/stc/gen_iface.py                  |  111 +-
 contrib/src/stc/scintilla/include/SString.h   |    6 +-
 .../src/stc/scintilla/include/Scintilla.iface |    4 +-
 .../src/stc/scintilla/src/ScintillaBase.cxx   |    3 +-
 contrib/src/stc/stc.cpp                       |   52 +-
 contrib/src/stc/stc.cpp.in                    |   48 +-
 contrib/src/stc/stc.h.in                      |   22 +-
 contrib/src/svg/Makefile.in                   |   10 +-
 contrib/src/xrc/Makefile.in                   |   14 +-
 contrib/src/xrc/XrcVC.dsp                     |    4 +
 contrib/src/xrc/makefile.b32                  |    2 +-
 contrib/src/xrc/makefile.g95                  |    2 +-
 contrib/src/xrc/makefile.vc                   |    2 +-
 contrib/src/xrc/makefile.wat                  |    2 +-
 contrib/src/xrc/xh_dlg.cpp                    |    2 +
 contrib/src/xrc/xh_scwin.cpp                  |   52 +
 contrib/src/xrc/xmlres.cpp                    |   94 +-
 contrib/src/xrc/xmlrsall.cpp                  |    1 +
 contrib/utils/convertrc/ConvertVC.dsp         |    4 +-
 contrib/utils/convertrc/rc2xml.h              |    2 +-
 contrib/utils/wxrc/Makefile.in                |    2 +-
 contrib/utils/wxrc/wxRcVC.dsp                 |    4 +-
 contrib/utils/wxrc/wxrc.cpp                   |  259 +-
 contrib/utils/wxrcedit/Makefile.in            |    2 +-
 contrib/utils/wxrcedit/editor.cpp             |    6 +-
 contrib/utils/wxrcedit/preview.cpp            |    9 +-
 contrib/utils/wxrcedit/preview.h              |    4 +-
 contrib/utils/wxrcedit/wxRcEditVC.dsp         |    4 +-
 debian/changelog                              |   38 +
 debian/control.in                             |    2 +-
 debian/libwxgtk-contrib-dev.files             |   20 +-
 debian/rules                                  |    6 +-
 demos/bombs/bombs.dsp                         |   35 +-
 demos/dbbrowse/dbbrowse.dsp                   |   35 +-
 demos/forty/forty.dsp                         |   33 +-
 demos/fractal/fractal.dsp                     |   35 +-
 demos/life/life.dsp                           |   35 +-
 demos/poem/poem.dsp                           |   32 +-
 distrib/msw/contrib.rsp                       |   20 +-
 distrib/msw/copybase.bat                      |  239 +-
 distrib/msw/filerepl.bat                      |    1 +
 distrib/msw/generic.rsp                       |   27 +-
 distrib/msw/innobott.txt                      |    4 +-
 distrib/msw/innotop.txt                       |   24 +-
 distrib/msw/tardist                           |  466 +-
 distrib/msw/tarwxall                          |    1 +
 distrib/msw/tarwxmac                          |   10 +-
 distrib/msw/tarwxx11                          |   85 +
 distrib/msw/tmake/b32.t                       |  187 +-
 distrib/msw/tmake/b32base.t                   |   20 +-
 distrib/msw/tmake/b32univ.t                   |  722 ---
 distrib/msw/tmake/filelist.t                  |    2 +
 distrib/msw/tmake/filelist.txt                |   37 +-
 distrib/msw/tmake/g95.t                       |    5 +-
 distrib/msw/tmake/gtk.t                       |    2 -
 distrib/msw/tmake/mac.t                       |    1 -
 distrib/msw/tmake/mgl.t                       |    1 -
 distrib/msw/tmake/motif.t                     |    1 -
 distrib/msw/tmake/msw.t                       |    2 -
 distrib/msw/tmake/vc.t                        |   11 +-
 distrib/msw/tmake/vc6app.t                    |    2 +-
 distrib/msw/tmake/x11.t                       |    2 -
 distrib/msw/vc.rsp                            |    2 +
 distrib/msw/zipdistinno.bat                   |    5 +-
 distrib/msw/zipmac.bat                        |    2 +-
 distrib/msw/zipwxmac.bat                      |   12 +-
 distrib/msw/zipwxos2.bat                      |   11 +-
 distrib/os2/os2-specific.zip                  |  Bin 126330 -> 130661 bytes
 docs/changes.txt                              |   38 +
 docs/gtk/install.txt                          |   14 +-
 docs/html/faq.htm                             |   45 +-
 docs/html/faqgen.htm                          |   60 +-
 docs/html/faqgtk.htm                          |   27 +-
 docs/html/faqmsw.htm                          |   18 +-
 docs/html/i18n.htm                            |   34 +-
 docs/html/platform.htm                        |   24 +-
 docs/latex/wx/category.tex                    |    1 +
 docs/latex/wx/classes.tex                     |    1 +
 docs/latex/wx/combobox.tex                    |    2 +
 docs/latex/wx/config.tex                      |   13 +-
 docs/latex/wx/critsect.tex                    |    2 +-
 docs/latex/wx/datetime.tex                    |   32 +-
 docs/latex/wx/dialog.tex                      |    2 +-
 docs/latex/wx/dragimag.tex                    |    8 +
 docs/latex/wx/filedlg.tex                     |    2 +-
 docs/latex/wx/filename.tex                    |   20 +-
 docs/latex/wx/font.tex                        |    2 +-
 docs/latex/wx/frame.tex                       |    4 +-
 docs/latex/wx/fs_mem.tex                      |    2 +-
 docs/latex/wx/ftp.tex                         |   22 +
 docs/latex/wx/function.tex                    |   46 +-
 docs/latex/wx/helpinst.tex                    |    2 +-
 docs/latex/wx/htcontnr.tex                    |    7 +
 docs/latex/wx/htparser.tex                    |    9 +
 docs/latex/wx/image.tex                       |    4 +-
 docs/latex/wx/list.tex                        |   55 +-
 docs/latex/wx/listbox.tex                     |   14 +-
 docs/latex/wx/listctrl.tex                    |   17 +-
 docs/latex/wx/listview.tex                    |  145 +
 docs/latex/wx/log.tex                         |    4 +-
 docs/latex/wx/longlong.tex                    |   10 +-
 docs/latex/wx/manual.tex                      |    4 +-
 docs/latex/wx/mbconv.tex                      |   29 +-
 docs/latex/wx/menu.tex                        |   11 +-
 docs/latex/wx/menuitem.tex                    |    4 +-
 docs/latex/wx/node.tex                        |   47 +-
 docs/latex/wx/notebook.tex                    |    3 +-
 docs/latex/wx/panel.tex                       |    2 +-
 docs/latex/wx/radiobut.tex                    |    3 +
 docs/latex/wx/scpdarry.tex                    |    2 +-
 docs/latex/wx/scpdptr.tex                     |    2 +-
 docs/latex/wx/scrolevt.inc                    |   23 +-
 docs/latex/wx/scrolwin.tex                    |   42 +-
 docs/latex/wx/semaphor.tex                    |    2 +-
 docs/latex/wx/sizer.tex                       |   33 +-
 docs/latex/wx/statbmp.tex                     |    4 +-
 docs/latex/wx/tcommdlg.tex                    |    2 +-
 docs/latex/wx/tdb.tex                         |    6 +-
 docs/latex/wx/tex2rtf.ini                     |    6 +-
 docs/latex/wx/tex2rtf_css.ini                 |   54 +
 docs/latex/wx/text.tex                        |   28 +-
 docs/latex/wx/tfontenc.tex                    |    9 +-
 docs/latex/wx/timer.tex                       |    2 +
 docs/latex/wx/treectrl.tex                    |   41 +-
 docs/latex/wx/treeevt.tex                     |    4 +-
 docs/latex/wx/tsizer.tex                      |   27 +-
 docs/latex/wx/tstring.tex                     |   11 +-
 docs/latex/wx/ttreectl.tex                    |    3 +-
 docs/latex/wx/tunicode.tex                    |    5 +-
 docs/latex/wx/upduievt.tex                    |    1 +
 docs/latex/wx/valtext.tex                     |    4 +-
 docs/latex/wx/window.tex                      |   58 +-
 docs/latex/wx/wizard.tex                      |   30 +-
 docs/latex/wx/wx.css                          |  180 +
 docs/latex/wx/wx.hpj                          |    2 +-
 docs/latex/wx/wxgtk.tex                       |    2 +-
 docs/latex/wx/wxstring.tex                    |    2 +-
 docs/latex/wx/xmlres.tex                      |    6 +
 docs/latex/wx/xmlresh.tex                     |    7 +
 docs/mac/SetTypeFromExtension.sea.hqx         | 5768 +++++++++--------
 docs/mac/install.txt                          |   61 +-
 docs/mac/readme.txt                           |    6 +-
 docs/mgl/install.txt                          |   15 +-
 docs/microwin/readme.txt                      |    2 +-
 docs/motif/install.txt                        |    2 +-
 docs/motif/readme.txt                         |    4 +-
 docs/msw/install.txt                          |   50 +-
 docs/os2/install.txt                          |   57 +-
 docs/publicity/announce.txt                   |    2 +-
 docs/publicity/publicity.txt                  |   14 +-
 docs/readme.txt                               |    4 +-
 docs/tech/tn0010.htm                          |   78 +-
 docs/tech/tn0013.txt                          |    4 +-
 docs/tech/tn0014.txt                          |  258 +-
 docs/univ/readme.txt                          |    8 +-
 docs/x11/install.txt                          |    2 +-
 docs/x11/readme.txt                           |    4 +-
 include/wx/arrimpl.cpp                        |    4 +
 include/wx/artprov.h                          |    6 +-
 include/wx/buffer.h                           |  327 +-
 include/wx/busyinfo.h                         |    2 +-
 include/wx/chkconf.h                          |   25 +
 include/wx/cmdproc.h                          |    2 +-
 include/wx/cmndata.h                          |    2 +
 include/wx/colordlg.h                         |    4 +-
 include/wx/datetime.h                         |   25 +-
 include/wx/datetime.inl                       |    8 +-
 include/wx/db.h                               |   74 +-
 include/wx/debug.h                            |    5 +-
 include/wx/defs.h                             |   32 +-
 include/wx/docmdi.h                           |   80 +-
 include/wx/docview.h                          |   41 +-
 include/wx/dragimag.h                         |    2 +-
 include/wx/dynload.h                          |   26 +-
 include/wx/encconv.h                          |    2 +-
 include/wx/event.h                            |   27 +-
 include/wx/filefn.h                           |   22 +-
 include/wx/filename.h                         |   23 +-
 include/wx/filesys.h                          |    7 +
 include/wx/font.h                             |    6 +-
 include/wx/fontenc.h                          |    9 +
 include/wx/fontutil.h                         |    6 +-
 include/wx/frame.h                            |    2 +
 include/wx/fs_mem.h                           |    2 +-
 include/wx/fs_zip.h                           |    2 +-
 include/wx/gdicmn.h                           |    9 +-
 include/wx/generic/calctrl.h                  |    7 +-
 include/wx/generic/dirctrlg.h                 |   44 +-
 include/wx/generic/dragimgg.h                 |    3 +-
 include/wx/generic/filedlgg.h                 |    5 +-
 include/wx/generic/grid.h                     |    2 +-
 include/wx/generic/gridsel.h                  |    2 +-
 include/wx/generic/helphtml.h                 |    2 +-
 include/wx/generic/laywin.h                   |   19 +-
 include/wx/generic/listctrl.h                 |    6 +-
 include/wx/generic/mdig.h                     |    5 +
 include/wx/generic/panelg.h                   |    4 +-
 include/wx/generic/sashwin.h                  |   30 +-
 include/wx/generic/scrolwin.h                 |    2 +
 include/wx/generic/splitter.h                 |    4 +-
 include/wx/generic/statusbr.h                 |    6 +-
 include/wx/generic/treectlg.h                 |    9 +
 include/wx/generic/treelay.h                  |   15 +-
 include/wx/geometry.h                         |   38 +-
 include/wx/glcanvas.h                         |    2 +
 include/wx/gtk/button.h                       |    1 +
 include/wx/gtk/colour.h                       |    2 +-
 include/wx/gtk/combobox.h                     |    2 +
 include/wx/gtk/dataobj.h                      |    6 +-
 include/wx/gtk/dcclient.h                     |    2 +
 include/wx/gtk/font.h                         |    3 +
 include/wx/gtk/frame.h                        |    7 +
 include/wx/gtk/gauge.h                        |   67 +-
 include/wx/gtk/glcanvas.h                     |   67 +-
 include/wx/gtk/notebook.h                     |    5 +-
 include/wx/gtk/region.h                       |    6 +-
 include/wx/gtk/scrolbar.h                     |    2 +-
 include/wx/gtk/window.h                       |   15 +
 include/wx/gtk1/button.h                      |    1 +
 include/wx/gtk1/colour.h                      |    2 +-
 include/wx/gtk1/combobox.h                    |    2 +
 include/wx/gtk1/dataobj.h                     |    6 +-
 include/wx/gtk1/dcclient.h                    |    2 +
 include/wx/gtk1/font.h                        |    3 +
 include/wx/gtk1/frame.h                       |    7 +
 include/wx/gtk1/gauge.h                       |   67 +-
 include/wx/gtk1/glcanvas.h                    |   67 +-
 include/wx/gtk1/notebook.h                    |    5 +-
 include/wx/gtk1/region.h                      |    6 +-
 include/wx/gtk1/scrolbar.h                    |    2 +-
 include/wx/gtk1/window.h                      |   15 +
 include/wx/hashmap.h                          |   15 +-
 include/wx/helpbase.h                         |   19 +-
 include/wx/html/forcelnk.h                    |    1 -
 include/wx/html/helpctrl.h                    |    2 +-
 include/wx/html/helpdata.h                    |   12 +-
 include/wx/html/helpfrm.h                     |    2 +
 include/wx/html/htmlcell.h                    |    3 +
 include/wx/html/htmlfilt.h                    |   14 +
 include/wx/html/htmlpars.h                    |   15 +
 include/wx/html/htmprint.h                    |    4 +-
 include/wx/html/m_templ.h                     |    2 +-
 include/wx/html/winpars.h                     |    6 +
 include/wx/image.h                            |   10 +-
 include/wx/imaggif.h                          |   26 +-
 include/wx/imagiff.h                          |    7 +-
 include/wx/imagjpeg.h                         |   26 +-
 include/wx/imagpcx.h                          |   26 +-
 include/wx/imagpng.h                          |   26 +-
 include/wx/imagpnm.h                          |   26 +-
 include/wx/imagtiff.h                         |   28 +-
 include/wx/imagxpm.h                          |   26 +-
 include/wx/list.h                             |   12 +-
 include/wx/listctrl.h                         |    2 +-
 include/wx/longlong.h                         |   27 +-
 include/wx/mac/app.h                          |    2 +
 include/wx/mac/dataform.h                     |    2 +-
 include/wx/mac/dataobj.h                      |    2 +-
 include/wx/mac/dataobj2.h                     |    4 +-
 include/wx/mac/frame.h                        |    3 +
 include/wx/mac/menu.h                         |    7 +-
 include/wx/mac/notebook.h                     |    4 +-
 include/wx/mac/private.h                      |    2 +-
 include/wx/mac/setup0.h                       |   85 +-
 include/wx/mac/textctrl.h                     |    3 +-
 include/wx/mac/uma.h                          |    1 +
 include/wx/mac/window.h                       |    2 +-
 include/wx/motif/statbox.h                    |   11 +-
 include/wx/msw/brush.h                        |    4 +-
 include/wx/msw/checkbox.h                     |   59 +-
 include/wx/msw/checklst.h                     |    2 +-
 include/wx/msw/dialog.h                       |    4 +-
 include/wx/msw/filedlg.h                      |   16 +-
 include/wx/msw/font.h                         |    5 +-
 include/wx/msw/gdiimage.h                     |    2 +-
 include/wx/msw/gdiobj.h                       |    2 +-
 include/wx/msw/glcanvas.h                     |   24 +-
 include/wx/msw/listbox.h                      |    2 +-
 include/wx/msw/missing.h                      |   13 +
 include/wx/msw/notebook.h                     |   10 +-
 include/wx/msw/pen.h                          |    2 +-
 include/wx/msw/region.h                       |   47 +-
 include/wx/msw/setup0.h                       |   40 +-
 include/wx/msw/stattext.h                     |    1 -
 include/wx/msw/tabctrl.h                      |   32 +-
 include/wx/msw/taskbar.h                      |    2 +-
 include/wx/msw/textctrl.h                     |   16 +-
 include/wx/msw/toplevel.h                     |    4 -
 include/wx/msw/treectrl.h                     |   13 +-
 include/wx/msw/winundef.h                     |   15 +
 include/wx/msw/wx.rc                          |    5 -
 include/wx/object.h                           |    2 +-
 include/wx/os2/notebook.h                     |    3 -
 include/wx/os2/setup0.h                       |    5 +
 include/wx/os2/textctrl.h                     |    5 +
 include/wx/print.h                            |    2 +-
 include/wx/printdlg.h                         |    6 +-
 include/wx/prntbase.h                         |   27 +-
 include/wx/prop.h                             |  197 +-
 include/wx/proplist.h                         |  305 +-
 include/wx/sizer.h                            |   24 +
 include/wx/stc/stc.h                          |  388 +-
 include/wx/strconv.h                          |    8 +-
 include/wx/stream.h                           |  220 +-
 include/wx/string.h                           |   10 +-
 include/wx/textbuf.h                          |    9 +-
 include/wx/textfile.h                         |    2 +-
 include/wx/txtstrm.h                          |   21 +-
 include/wx/univ/listbox.h                     |    4 +-
 include/wx/univ/setup.h                       | 1720 +++--
 include/wx/univ/setup0.h                      | 1328 ++++
 include/wx/univ/toplevel.h                    |    4 +-
 include/wx/univ/window.h                      |    2 +-
 include/wx/utils.h                            |    2 +
 include/wx/version.h                          |    8 +-
 include/wx/window.h                           |   35 +-
 include/wx/wizard.h                           |    9 +
 include/wx/wxchar.h                           |   19 +-
 include/wx/wxexpr.h                           |    8 +-
 include/wx/x11/app.h                          |    7 +
 include/wx/x11/colour.h                       |    5 +-
 include/wx/x11/dcclient.h                     |    5 +
 include/wx/x11/font.h                         |   22 +-
 include/wx/x11/private.h                      |   18 +-
 include/wx/x11/privx.h                        |    2 +
 include/wx/xrc/xh_all.h                       |    1 +
 include/wx/xrc/xh_scwin.h                     |   32 +
 include/wx/xrc/xmlres.h                       |   29 +-
 include/wx_pb.h                               |    1 +
 locale/cs.po                                  |    2 +-
 locale/da.po                                  |    2 +-
 locale/de.po                                  |  777 +--
 locale/es.po                                  |    2 +-
 locale/fi.po                                  |    2 +-
 locale/fr.po                                  | 1523 ++---
 locale/hu.po                                  | 1506 ++---
 locale/id.po                                  | 3713 +++++++++++
 locale/it.po                                  |    2 +-
 locale/nl.po                                  | 1515 ++---
 locale/ru.po                                  |    2 +-
 locale/sl.po                                  |    2 +-
 locale/sv.po                                  |    2 +-
 locale/tr.po                                  |   20 +-
 locale/wxstd.po                               |    2 +-
 locale/zh.po                                  |    2 +-
 misc/languages/langtabl.txt                   |    2 +-
 samples/artprov/artprov.dsp                   |    4 +-
 samples/calendar/calendar.dsp                 |    4 +-
 samples/caret/caret.dsp                       |    4 +-
 samples/checklst/checklst.cpp                 |    4 +-
 samples/checklst/checklst.dsp                 |    4 +-
 samples/config/config.dsp                     |    4 +-
 samples/configure.in                          |    5 +
 samples/console/console.cpp                   |  122 +-
 samples/console/console.dsp                   |   16 +-
 samples/console/makefile.b32                  |   16 +
 samples/controls/controls.cpp                 |  116 +-
 samples/controls/controls.dsp                 |    4 +-
 samples/db/db.dsp                             |    4 +-
 samples/dialogs/dialogs.cpp                   |   13 +-
 samples/dialogs/dialogs.dsp                   |    4 +-
 samples/dialup/dialup.dsp                     |    4 +-
 samples/dnd/dnd.dsp                           |    4 +-
 samples/docview/docview.dsp                   |    4 +-
 samples/docvwmdi/docvwmdi.dsp                 |    4 +-
 samples/dragimag/dragimag.dsp                 |    4 +-
 samples/drawing/drawing.dsp                   |    4 +-
 samples/dynamic/dynamic.dsp                   |    4 +-
 samples/erase/erase.cpp                       |   35 +
 samples/erase/erase.dsp                       |    4 +-
 samples/event/event.dsp                       |    4 +-
 samples/exec/exec.cpp                         |    4 +
 samples/exec/exec.dsp                         |    4 +-
 samples/font/font.cpp                         |   97 +-
 samples/font/font.dsp                         |    4 +-
 samples/grid/grid.dsp                         |    4 +-
 samples/help/help.dsp                         |    4 +-
 samples/html/about/about.cpp                  |   14 +-
 samples/html/about/about.dsp                  |    4 +-
 samples/html/help/help.cpp                    |   28 +-
 samples/html/help/help.dsp                    |    4 +-
 samples/html/helpview/helpview.cpp            |    4 +-
 samples/html/helpview/helpview.dsp            |    4 +-
 samples/html/printing/printing.cpp            |   32 +-
 samples/html/printing/printing.dsp            |    4 +-
 samples/html/test/test.cpp                    |   33 +-
 samples/html/test/test.dsp                    |    4 +-
 samples/html/virtual/virtual.cpp              |   28 +-
 samples/html/virtual/virtual.dsp              |    4 +-
 samples/html/widget/widget.cpp                |   20 +-
 samples/html/widget/widget.dsp                |    4 +-
 samples/html/zip/zip.cpp                      |   20 +-
 samples/html/zip/zip.dsp                      |    4 +-
 samples/image/horse3.ani                      |  Bin 0 -> 17268 bytes
 samples/image/image.cpp                       |   41 +-
 samples/image/image.dsp                       |    4 +-
 samples/internat/de/internat.mo               |  Bin 1105 -> 1417 bytes
 samples/internat/de/internat.po               |    2 +-
 samples/internat/internat.cpp                 |   12 +-
 samples/internat/internat.dsp                 |    4 +-
 samples/ipc/client.dsp                        |    4 +-
 samples/ipc/server.dsp                        |    4 +-
 samples/joytest/joytest.dsp                   |    4 +-
 samples/keyboard/keyboard.cpp                 |    7 +-
 samples/keyboard/keyboard.dsp                 |    4 +-
 samples/keyboard/keyboard.rc                  |    2 +-
 samples/layout/layout.cpp                     |  138 +-
 samples/layout/layout.dsp                     |    4 +-
 samples/layout/layout.h                       |   14 +-
 samples/listctrl/listctrl.dsp                 |    4 +-
 samples/listctrl/listtest.cpp                 |   26 +-
 samples/listctrl/listtest.h                   |   10 +-
 samples/mdi/mdi.cpp                           |    4 +-
 samples/mdi/mdi.dsp                           |    4 +-
 samples/memcheck/memcheck.dsp                 |    4 +-
 samples/menu/menu.dsp                         |    4 +-
 samples/mfc/mfc.dsp                           |    4 +-
 samples/minifram/minifram.dsp                 |    4 +-
 samples/minimal/minimal.dsp                   |    4 +-
 samples/multimon/Makefile.in                  |   23 +
 samples/nativdlg/Makefile.in                  |   23 +
 samples/nativdlg/nativdlg.dsp                 |    4 +-
 samples/newgrid/griddemo.cpp                  |    8 +-
 samples/newgrid/newgrid.dsp                   |    4 +-
 samples/notebook/notebook.cpp                 |    6 +-
 samples/notebook/notebook.dsp                 |    4 +-
 samples/oleauto/Makefile.in                   |   23 +
 samples/oleauto/oleauto.dsp                   |    4 +-
 samples/opengl/cube/cube.dsp                  |    4 +-
 samples/opengl/isosurf/isosurf.dsp            |    4 +-
 samples/opengl/penguin/makefile.unx           |   10 +-
 samples/opengl/penguin/penguin.dsp            |    4 +-
 samples/ownerdrw/Makefile.in                  |   23 +
 samples/ownerdrw/ownerdrw.dsp                 |    4 +-
 samples/png/png.dsp                           |    4 +-
 samples/printing/printing.cpp                 |    3 +-
 samples/printing/printing.dsp                 |    4 +-
 samples/proplist/proplist.dsp                 |    4 +-
 samples/propsize/propsize.dsp                 |    4 +-
 samples/regtest/Makefile.in                   |   23 +
 samples/regtest/regtest.cpp                   |    4 +-
 samples/regtest/regtest.dsp                   |    4 +-
 samples/resource/resource.cpp                 |    4 +
 samples/resource/resource.dsp                 |    4 +-
 samples/rotate/rotate.dsp                     |    4 +-
 samples/sashtest/sashtest.dsp                 |    4 +-
 samples/scroll/scroll.cpp                     |  218 +-
 samples/scroll/scroll.dsp                     |    4 +-
 samples/scrollsub/scrollsub.dsp               |    4 +-
 samples/sockets/client.cpp                    |    2 +-
 samples/sockets/client.dsp                    |    4 +-
 samples/sockets/server.dsp                    |    4 +-
 samples/splitter/splitter.dsp                 |    4 +-
 samples/statbar/statbar.dsp                   |    4 +-
 samples/stc/Makefile.in                       |    2 +-
 samples/stc/StcTestVC.dsp                     |    4 +-
 samples/svg/Makefile.in                       |    2 +-
 samples/taskbar/taskbar.dsp                   |    4 +-
 samples/text/text.cpp                         |   39 +-
 samples/text/text.dsp                         |    4 +-
 samples/thread/thread.dsp                     |    4 +-
 samples/toolbar/toolbar.cpp                   |   97 +-
 samples/toolbar/toolbar.dsp                   |    4 +-
 samples/toolbar/toolbarM5.xml                 | 3174 +--------
 samples/treectrl/treetest.dsp                 |    4 +-
 samples/treelay/treelay.dsp                   |    4 +-
 samples/typetest/typetest.cpp                 |  226 +-
 samples/typetest/typetest.dsp                 |    4 +-
 samples/validate/validate.dsp                 |    4 +-
 samples/widgets/makefile.unx                  |   43 +
 samples/widgets/notebook.cpp                  |   19 +-
 samples/widgets/slider.cpp                    |    6 +-
 samples/widgets/widgets.dsp                   |    4 +-
 samples/widgets/widgets.h                     |    4 +-
 samples/wizard/wizard.dsp                     |    4 +-
 samples/xrc/Makefile.in                       |    3 +-
 samples/xrc/XrcDemoVC.dsp                     |    4 +-
 samples/xrc/custclas.cpp                      |    2 +-
 samples/xrc/derivdlg.cpp                      |    2 +-
 samples/xrc/myframe.cpp                       |   24 +-
 samples/xrc/xrcdemo.cpp                       |   22 +-
 setup.h.in                                    |    4 +
 setup.h_vms                                   |    4 +
 src/common/appcmn.cpp                         |   19 +-
 src/common/artprov.cpp                        |   11 +-
 src/common/artstd.cpp                         |   26 +-
 src/common/cmdline.cpp                        |   23 +-
 src/common/cmndata.cpp                        |   14 +-
 src/common/config.cpp                         |   46 +-
 src/common/containr.cpp                       |   46 +-
 src/common/datetime.cpp                       |  108 +-
 src/common/datstrm.cpp                        |   10 +-
 src/common/db.cpp                             |    2 +-
 src/common/dbtable.cpp                        |    4 +-
 src/common/dlgcmn.cpp                         |  101 +-
 src/common/docview.cpp                        |   27 +-
 src/common/dosyacc.c                          |   10 +
 src/common/dynarray.cpp                       |    6 +-
 src/common/dynload.cpp                        |   60 +-
 src/common/event.cpp                          |   25 +-
 src/common/execcmn.cpp                        |   21 +-
 src/common/fileconf.cpp                       |  845 ++-
 src/common/filefn.cpp                         |  286 +-
 src/common/filename.cpp                       |  124 +-
 src/common/filesys.cpp                        |   56 +-
 src/common/fontmap.cpp                        |   65 +-
 src/common/fs_inet.cpp                        |    2 +-
 src/common/fs_mem.cpp                         |    2 +-
 src/common/fs_zip.cpp                         |   12 +-
 src/common/ftp.cpp                            |    2 +-
 src/common/gdicmn.cpp                         |    5 +-
 src/common/geometry.cpp                       |    2 +-
 src/common/imagbmp.cpp                        |  229 +-
 src/common/image.cpp                          |   53 +-
 src/common/imagpng.cpp                        |   12 +-
 src/common/imagpnm.cpp                        |   17 +-
 src/common/imagxpm.cpp                        |   38 +-
 src/common/intl.cpp                           |   55 +-
 src/common/log.cpp                            |    9 +-
 src/common/menucmn.cpp                        |   35 +-
 src/common/mimecmn.cpp                        |    2 +-
 src/common/mstream.cpp                        |    2 +-
 src/common/paper.cpp                          |    2 +-
 src/common/prntbase.cpp                       |   21 +-
 src/common/process.cpp                        |   13 +-
 src/common/protocol.cpp                       |  104 +-
 src/common/regex.cpp                          |    2 +-
 src/common/resource.cpp                       |    2 +-
 src/common/sckaddr.cpp                        |    7 +-
 src/common/sckstrm.cpp                        |   19 +-
 src/common/settcmn.cpp                        |    6 +-
 src/common/sizer.cpp                          |  268 +-
 src/common/strconv.cpp                        |  109 +-
 src/common/stream.cpp                         |  211 +-
 src/common/string.cpp                         |   99 +-
 src/common/timercmn.cpp                       |    8 +
 src/common/txtstrm.cpp                        |   46 +-
 src/common/unzip.h                            |   38 +-
 src/common/url.cpp                            |    2 +-
 src/common/utilscmn.cpp                       |  227 +-
 src/common/wfstream.cpp                       |    8 +-
 src/common/wincmn.cpp                         |   21 +-
 src/common/wxchar.cpp                         |   30 +-
 src/common/wxexpr.cpp                         |    2 +-
 src/common/xpmdecod.cpp                       |    2 +-
 src/common/zipstrm.cpp                        |   10 +-
 src/common/zstream.cpp                        |   10 +-
 src/files.lst                                 |    1 +
 src/generic/busyinfo.cpp                      |    2 +-
 src/generic/calctrl.cpp                       |   13 +
 src/generic/dcpsg.cpp                         |   54 +-
 src/generic/dirctrlg.cpp                      |    2 +
 src/generic/dirdlgg.cpp                       |    2 +-
 src/generic/dragimgg.cpp                      |    2 +-
 src/generic/filedlgg.cpp                      |  143 +-
 src/generic/fontdlgg.cpp                      |   16 +-
 src/generic/grid.cpp                          |  118 +-
 src/generic/gridsel.cpp                       |   34 +-
 src/generic/helpext.cpp                       |   13 +-
 src/generic/helphtml.cpp                      |   10 +-
 src/generic/listctrl.cpp                      |  139 +-
 src/generic/mdig.cpp                          |   34 +-
 src/generic/msgdlgg.cpp                       |   14 +-
 src/generic/panelg.cpp                        |   16 +-
 src/generic/prntdlgg.cpp                      |   20 +-
 src/generic/progdlgg.cpp                      |    2 +-
 src/generic/propform.cpp                      |   20 +-
 src/generic/proplist.cpp                      |   48 +-
 src/generic/sashwin.cpp                       |   72 +-
 src/generic/scrlwing.cpp                      |   33 +-
 src/generic/splitter.cpp                      |   55 +-
 src/generic/statusbr.cpp                      |  130 +-
 src/generic/tbarsmpl.cpp                      |    6 +-
 src/generic/timer.cpp                         |   10 +-
 src/generic/treectlg.cpp                      |   48 +-
 src/generic/treelay.cpp                       |    4 +-
 src/generic/wizard.cpp                        |    6 +-
 src/gtk/app.cpp                               |  151 +-
 src/gtk/bitmap.cpp                            |    4 +-
 src/gtk/button.cpp                            |    9 +
 src/gtk/colour.cpp                            |    7 +-
 src/gtk/combobox.cpp                          |   28 +-
 src/gtk/dataobj.cpp                           |    5 +
 src/gtk/dcclient.cpp                          |  102 +-
 src/gtk/dialog.cpp                            |    6 +-
 src/gtk/files.lst                             |    3 -
 src/gtk/font.cpp                              |  116 +-
 src/gtk/fontdlg.cpp                           |    4 +-
 src/gtk/frame.cpp                             |   42 +-
 src/gtk/gauge.cpp                             |   46 +-
 src/gtk/glcanvas.cpp                          |  179 +-
 src/gtk/listbox.cpp                           |    2 +-
 src/gtk/menu.cpp                              |  153 +-
 src/gtk/notebook.cpp                          |   10 +-
 src/gtk/popupwin.cpp                          |    2 +-
 src/gtk/radiobox.cpp                          |   24 +-
 src/gtk/region.cpp                            |  109 +-
 src/gtk/scrolwin.cpp                          |   47 +-
 src/gtk/settings.cpp                          |   20 +-
 src/gtk/slider.cpp                            |    9 +-
 src/gtk/tbargtk.cpp                           |   47 +-
 src/gtk/textctrl.cpp                          |   16 +-
 src/gtk/toplevel.cpp                          |    6 +
 src/gtk/win_gtk.c                             |    4 +-
 src/gtk/window.cpp                            |  401 +-
 src/gtk1/app.cpp                              |  151 +-
 src/gtk1/bitmap.cpp                           |    4 +-
 src/gtk1/button.cpp                           |    9 +
 src/gtk1/colour.cpp                           |    7 +-
 src/gtk1/combobox.cpp                         |   28 +-
 src/gtk1/dataobj.cpp                          |    5 +
 src/gtk1/dcclient.cpp                         |  102 +-
 src/gtk1/dialog.cpp                           |    6 +-
 src/gtk1/files.lst                            |    3 -
 src/gtk1/font.cpp                             |  116 +-
 src/gtk1/fontdlg.cpp                          |    4 +-
 src/gtk1/frame.cpp                            |   42 +-
 src/gtk1/gauge.cpp                            |   46 +-
 src/gtk1/glcanvas.cpp                         |  179 +-
 src/gtk1/listbox.cpp                          |    2 +-
 src/gtk1/menu.cpp                             |  153 +-
 src/gtk1/notebook.cpp                         |   10 +-
 src/gtk1/popupwin.cpp                         |    2 +-
 src/gtk1/radiobox.cpp                         |   24 +-
 src/gtk1/region.cpp                           |  109 +-
 src/gtk1/scrolwin.cpp                         |   47 +-
 src/gtk1/settings.cpp                         |   20 +-
 src/gtk1/slider.cpp                           |    9 +-
 src/gtk1/tbargtk.cpp                          |   47 +-
 src/gtk1/textctrl.cpp                         |   16 +-
 src/gtk1/toplevel.cpp                         |    6 +
 src/gtk1/win_gtk.c                            |    4 +-
 src/gtk1/window.cpp                           |  401 +-
 src/html/descrip.mms                          |    5 +-
 src/html/helpdata.cpp                         |   67 +-
 src/html/helpfrm.cpp                          |   17 +-
 src/html/htmlcell.cpp                         |   15 +-
 src/html/htmlfilt.cpp                         |   73 +-
 src/html/htmlpars.cpp                         |   87 +-
 src/html/htmltag.cpp                          |    2 +-
 src/html/htmlwin.cpp                          |    2 +-
 src/html/htmprint.cpp                         |   13 +-
 src/html/m_dflist.cpp                         |    4 +-
 src/html/m_fonts.cpp                          |    4 +-
 src/html/m_hline.cpp                          |    2 +-
 src/html/m_image.cpp                          |    2 +-
 src/html/m_layout.cpp                         |    2 +-
 src/html/m_links.cpp                          |   12 +-
 src/html/m_list.cpp                           |    2 +-
 src/html/m_meta.cpp                           |   70 -
 src/html/m_pre.cpp                            |    2 +-
 src/html/m_style.cpp                          |    2 +-
 src/html/m_tables.cpp                         |    2 +-
 src/html/winpars.cpp                          |   64 +-
 src/jpeg/jdcoefct.c                           |   11 +-
 src/jpeg/jdinput.c                            |    5 +
 src/jpeg/jdtrans.c                            |    2 +-
 src/jpeg/jpegint.h                            |    8 +
 src/mac/app.cpp                               |  100 +-
 src/mac/bitmap.cpp                            |   81 +-
 src/mac/carbon/app.cpp                        |  100 +-
 src/mac/carbon/bitmap.cpp                     |   81 +-
 src/mac/carbon/checklst.cpp                   |    2 +-
 src/mac/carbon/cursor.cpp                     |    5 +-
 src/mac/carbon/dc.cpp                         |    3 +-
 src/mac/carbon/filedlg.cpp                    |  157 +-
 src/mac/carbon/files.lst                      |    5 +-
 src/mac/carbon/font.cpp                       |    4 +
 src/mac/carbon/frame.cpp                      |   26 +
 src/mac/carbon/gsocket.c                      |    6 +-
 src/mac/carbon/listbox.cpp                    |   93 +-
 src/mac/carbon/menu.cpp                       |  342 +-
 src/mac/carbon/menuitem.cpp                   |   89 +-
 src/mac/carbon/notebmac.cpp                   |   62 +-
 src/mac/carbon/printdlg.cpp                   |   24 +-
 src/mac/carbon/printmac.cpp                   |    7 +-
 src/mac/carbon/textctrl.cpp                   |  219 +-
 src/mac/carbon/toolbar.cpp                    |    7 +
 src/mac/carbon/tooltip.cpp                    |   36 +-
 src/mac/carbon/toplevel.cpp                   |   24 +-
 src/mac/carbon/uma.cpp                        |  167 +-
 src/mac/carbon/utils.cpp                      |    6 +-
 src/mac/carbon/window.cpp                     |   45 +-
 src/mac/checklst.cpp                          |    2 +-
 src/mac/cursor.cpp                            |    5 +-
 src/mac/dc.cpp                                |    3 +-
 src/mac/filedlg.cpp                           |  157 +-
 src/mac/files.lst                             |    5 +-
 src/mac/font.cpp                              |    4 +
 src/mac/frame.cpp                             |   26 +
 src/mac/gsocket.c                             |    6 +-
 src/mac/listbox.cpp                           |   93 +-
 src/mac/menu.cpp                              |  342 +-
 src/mac/menuitem.cpp                          |   89 +-
 src/mac/notebmac.cpp                          |   62 +-
 src/mac/printdlg.cpp                          |   24 +-
 src/mac/printmac.cpp                          |    7 +-
 src/mac/textctrl.cpp                          |  219 +-
 src/mac/toolbar.cpp                           |    7 +
 src/mac/tooltip.cpp                           |   36 +-
 src/mac/toplevel.cpp                          |   24 +-
 src/mac/uma.cpp                               |  167 +-
 src/mac/utils.cpp                             |    6 +-
 src/mac/window.cpp                            |   45 +-
 src/make.env.in                               |    3 +-
 src/makeb32.env                               |   16 +
 src/makeg95.env                               |   13 +-
 src/makelib.env.in                            |    4 +-
 src/makelib.g95                               |    4 +-
 src/makeprog.b32                              |   10 +-
 src/makeprog.vc                               |    4 +-
 src/makeva.env                                |    6 +-
 src/makevc.env                                |    6 +-
 src/mgl/files.lst                             |   26 +-
 src/mgl/makefile.wat                          |    4 -
 src/mgl/window.cpp                            |    3 +-
 src/microwin/files.lst                        |    4 +-
 src/motif/checklst.cpp                        |   15 +-
 src/motif/combobox.cpp                        |    4 +-
 src/motif/files.lst                           |    5 +-
 src/motif/frame.cpp                           |   11 +
 src/motif/listbox.cpp                         |    2 +-
 src/motif/menu.cpp                            |    6 +-
 src/motif/radiobox.cpp                        |    2 +
 src/motif/statbox.cpp                         |  102 +-
 src/motif/toolbar.cpp                         |    5 +-
 src/motif/utils.cpp                           | 1237 +++-
 src/motif/window.cpp                          |   89 +-
 src/motif/xmcombo/xmcombo.c                   |   22 +-
 src/msw/app.cpp                               |   20 +-
 src/msw/brush.cpp                             |    4 +-
 src/msw/checkbox.cpp                          |   93 +-
 src/msw/checklst.cpp                          |    6 +-
 src/msw/choice.cpp                            |   31 +-
 src/msw/combobox.cpp                          |   62 +-
 src/msw/dcprint.cpp                           |    2 +-
 src/msw/dialog.cpp                            |   16 +
 src/msw/dir.cpp                               |   33 +
 src/msw/dragimag.cpp                          |    8 +-
 src/msw/filedlg.cpp                           |   21 +-
 src/msw/files.lst                             |    6 +-
 src/msw/font.cpp                              |    4 +-
 src/msw/gdiimage.cpp                          |   23 +-
 src/msw/glcanvas.cpp                          |    4 +-
 src/msw/helpbest.cpp                          |   16 +-
 src/msw/helpchm.cpp                           |    4 +-
 src/msw/joystick.cpp                          |    2 +-
 src/msw/listbox.cpp                           |   25 +-
 src/msw/listctrl.cpp                          |  141 +-
 src/msw/makebase.b32                          |   20 +-
 src/msw/makefile.b32                          |  713 +-
 src/msw/makefile.g95                          |    6 +-
 src/msw/makefile.vc                           |   12 +-
 src/msw/makefile.wat                          |    4 -
 src/msw/makeuniv.b32                          | 1397 ----
 src/msw/mimetype.cpp                          |    5 +-
 src/msw/mslu.cpp                              |    6 +-
 src/msw/notebook.cpp                          |   60 +-
 src/msw/ole/automtn.cpp                       |    7 +-
 src/msw/ole/dataobj.cpp                       |    2 +-
 src/msw/ownerdrw.cpp                          |    4 +-
 src/msw/pen.cpp                               |    2 +-
 src/msw/radiobox.cpp                          |    2 +-
 src/msw/radiobut.cpp                          |   86 +-
 src/msw/regconf.cpp                           |    4 +-
 src/msw/region.cpp                            |  202 +-
 src/msw/registry.cpp                          |    2 +-
 src/msw/scrolbar.cpp                          |   59 +-
 src/msw/slider95.cpp                          |   17 +-
 src/msw/slidrmsw.cpp                          |   16 +-
 src/msw/stattext.cpp                          |   12 -
 src/msw/tabctrl.cpp                           |   24 +-
 src/msw/taskbar.cpp                           |    2 +-
 src/msw/tbar95.cpp                            |   18 +-
 src/msw/textctrl.cpp                          |  146 +-
 src/msw/thread.cpp                            |    2 +-
 src/msw/tooltip.cpp                           |   23 +-
 src/msw/toplevel.cpp                          |  164 +-
 src/msw/treectrl.cpp                          |   46 +-
 src/msw/utils.cpp                             |    2 +-
 src/msw/utilsexc.cpp                          |   54 +-
 src/msw/volume.cpp                            |    2 +-
 src/msw/window.cpp                            |  193 +-
 src/os2/app.cpp                               |   13 +-
 src/os2/bitmap.cpp                            |    2 +-
 src/os2/combobox.cpp                          |   33 +-
 src/os2/dialog.cpp                            |   10 +
 src/os2/files.lst                             |   12 +-
 src/os2/makefile.va                           |    3 -
 src/os2/notebook.cpp                          |   86 +-
 src/os2/os2jpeg.def                           |    2 +-
 src/os2/os2png.def                            |    3 +-
 src/os2/ownerdrw.cpp                          |    2 +-
 src/os2/radiobut.cpp                          |  103 +-
 src/os2/textctrl.cpp                          |   47 +
 src/os2/thread.cpp                            |    7 +-
 src/os2/toplevel.cpp                          |    1 +
 src/os2/utils.cpp                             |    2 +-
 src/os2/window.cpp                            |    8 +
 src/os2/wx23.def                              |  198 +-
 src/png/ANNOUNCE                              |   49 +-
 src/png/CHANGES                               |   28 +-
 src/png/INSTALL                               |   18 +-
 src/png/KNOWNBUG                              |    2 +-
 src/png/LICENSE                               |    4 +-
 src/png/README                                |   16 +-
 src/png/Y2KINFO                               |    4 +-
 src/png/configure                             |    2 +-
 src/png/example.c                             |    2 +-
 src/png/libpng.3                              |   21 +-
 src/png/libpng.txt                            |    8 +-
 src/png/libpngpf.3                            |    4 +-
 src/png/png.5                                 |    2 +-
 src/png/png.c                                 |   24 +-
 src/png/png.h                                 |   29 +-
 src/png/pngasmrd.h                            |    2 +-
 src/png/pngconf.h                             |    6 +-
 src/png/pngerror.c                            |    2 +-
 src/png/pnggccrd.c                            |   16 +-
 src/png/pngget.c                              |    2 +-
 src/png/pngmem.c                              |    2 +-
 src/png/pngpread.c                            |   19 +-
 src/png/pngread.c                             |    6 +-
 src/png/pngrio.c                              |    2 +-
 src/png/pngrtran.c                            |   11 +-
 src/png/pngrutil.c                            |   13 +-
 src/png/pngset.c                              |    2 +-
 src/png/pngtest.c                             |    4 +-
 src/png/pngtrans.c                            |    2 +-
 src/png/pngvcrd.c                             |    2 +-
 src/png/pngwio.c                              |    2 +-
 src/png/pngwrite.c                            |    2 +-
 src/png/pngwtran.c                            |    2 +-
 src/png/pngwutil.c                            |    2 +-
 src/stc/Makefile.in                           |   10 +-
 src/stc/PlatWX.cpp                            |    2 +-
 src/stc/ScintillaWX.cpp                       |   69 +-
 src/stc/ScintillaWX.h                         |    7 +-
 src/stc/gen_iface.py                          |  111 +-
 src/stc/scintilla/include/SString.h           |    6 +-
 src/stc/scintilla/include/Scintilla.iface     |    4 +-
 src/stc/scintilla/src/ScintillaBase.cxx       |    3 +-
 src/stc/stc.cpp                               |   52 +-
 src/stc/stc.cpp.in                            |   48 +-
 src/stc/stc.h.in                              |   22 +-
 src/univ/listbox.cpp                          |   14 +-
 src/univ/notebook.cpp                         |   13 +
 src/univ/slider.cpp                           |    9 +-
 src/univ/themes/gtk.cpp                       |    8 +-
 src/univ/themes/metal.cpp                     |    2 +-
 src/univ/toolbar.cpp                          |   11 +-
 src/univ/winuniv.cpp                          |   65 +-
 src/unix/dialup.cpp                           |   56 +-
 src/unix/dir.cpp                              |    4 -
 src/unix/fontenum.cpp                         |   17 +-
 src/unix/fontutil.cpp                         |  188 +-
 src/unix/mimetype.cpp                         |   93 +-
 src/unix/threadpsx.cpp                        |   85 +-
 src/unix/utilsunx.cpp                         |   15 +-
 src/wxBase.dsp                                |  114 +-
 src/wxUniv.dsp                                |  103 +-
 src/wxWindows.dsp                             |   24 +-
 src/wxWindows.pbproj/project.pbxproj          |  292 +-
 src/wxWindowsM7.mcp                           |  Bin 1124733 -> 1091055 bytes
 src/wxWindowsW7.xml                           |   80 +-
 src/wxwindowsM5.xml                           |  134 +-
 src/x11/app.cpp                               |  129 +-
 src/x11/bitmap.cpp                            |    6 +-
 src/x11/data.cpp                              |   76 +-
 src/x11/dataobj.cpp                           |    8 +-
 src/x11/dcclient.cpp                          |  155 +-
 src/x11/dcscreen.cpp                          |   34 +-
 src/x11/evtloop.cpp                           |   35 +-
 src/x11/files.lst                             |    3 -
 src/x11/font.cpp                              |  647 +-
 src/x11/glcanvas.cpp                          |   14 +-
 src/x11/gsockx11.c                            |    8 +-
 src/x11/pango_x.cpp                           |  290 +
 src/x11/pangox11.cpp                          |  276 +
 src/x11/popupwin.cpp                          |    3 +-
 src/x11/reparent.cpp                          |   10 +-
 src/x11/settings.cpp                          |   11 +-
 src/x11/textctrl.cpp                          |  188 +-
 src/x11/toplevel.cpp                          |    8 +
 src/x11/utils.cpp                             |  577 +-
 src/x11/window.cpp                            |  134 +-
 src/xrc/Makefile.in                           |   14 +-
 src/xrc/XrcVC.dsp                             |    4 +
 src/xrc/makefile.b32                          |    2 +-
 src/xrc/makefile.g95                          |    2 +-
 src/xrc/makefile.vc                           |    2 +-
 src/xrc/makefile.wat                          |    2 +-
 src/xrc/xh_dlg.cpp                            |    2 +
 src/xrc/xh_scwin.cpp                          |   52 +
 src/xrc/xmlres.cpp                            |   94 +-
 src/xrc/xmlrsall.cpp                          |    1 +
 utils/HelpGen/src/HelpGenVC.dsp               |    4 +-
 utils/HelpGen/src/markup.h                    |    2 +-
 utils/dialoged/src/DialogEdVC.dsp             |    4 +-
 utils/helpview/src/client.cpp                 |  298 +
 utils/helpview/src/client.dsp                 |  167 +
 utils/helpview/src/client.h                   |   87 +
 utils/helpview/src/client.rc                  |    1 +
 utils/helpview/src/helpview.cpp               |  429 +-
 utils/helpview/src/helpview.dsp               |    4 +-
 utils/helpview/src/helpview.h                 |   78 +-
 utils/helpview/src/readme.txt                 |   35 +
 utils/helpview/src/remhelp.cpp                |  409 ++
 utils/helpview/src/remhelp.h                  |   97 +
 utils/tex2rtf/docs/tex2rtf.hpj                |    2 +-
 utils/tex2rtf/src/Tex2RTFVC.dsp               |    2 +-
 utils/tex2rtf/src/htmlutil.cpp                |   67 +-
 utils/tex2rtf/src/makengui.nt                 |    2 +-
 utils/tex2rtf/src/rtfutils.cpp                |   18 +-
 utils/tex2rtf/src/tex2any.cpp                 |    4 +-
 utils/tex2rtf/src/tex2any.h                   |    4 +
 utils/tex2rtf/src/tex2rtf.cpp                 |    4 +-
 utils/tex2rtf/src/texutils.cpp                |   25 +-
 utils/tex2rtf/src/xlputils.cpp                |    2 +-
 utils/tex2rtf/tools/suppresswarnings.sh       |    3 +
 utils/wxrc/Makefile.in                        |    2 +-
 utils/wxrc/wxRcVC.dsp                         |    4 +-
 utils/wxrc/wxrc.cpp                           |  259 +-
 version-script.in                             |    3 +
 wx-config.in                                  |   48 +-
 wxBase.spec                                   |    2 +-
 wxGTK.spec                                    |    2 +-
 wxMGL.spec                                    |  123 +
 wxMotif.spec                                  |    2 +-
 wxWINE.spec                                   |    2 +-
 wxX11.spec                                    |    2 +-
 wxwin.m4                                      |    4 +-
 1057 files changed, 37675 insertions(+), 23904 deletions(-)
 create mode 100644 art/wxwin.ico
 create mode 100644 art/wxwin16x16.png
 create mode 100644 art/wxwin16x16.xpm
 create mode 100644 art/wxwin32x32.png
 create mode 100644 art/wxwin32x32.xpm
 create mode 100644 contrib/include/wx/fl/fldefs.h
 create mode 100644 contrib/include/wx/xrc/xh_scwin.h
 create mode 100644 contrib/samples/gizmos/led/Makefile.in
 create mode 100644 contrib/samples/gizmos/led/led.cpp
 create mode 100644 contrib/samples/gizmos/led/led.dsp
 create mode 100644 contrib/src/xrc/xh_scwin.cpp
 create mode 100755 distrib/msw/tarwxx11
 delete mode 100644 distrib/msw/tmake/b32univ.t
 create mode 100644 docs/latex/wx/listview.tex
 create mode 100644 docs/latex/wx/tex2rtf_css.ini
 create mode 100644 docs/latex/wx/wx.css
 create mode 100644 include/wx/univ/setup0.h
 create mode 100644 include/wx/xrc/xh_scwin.h
 create mode 100644 locale/id.po
 create mode 100644 samples/console/makefile.b32
 create mode 100644 samples/image/horse3.ani
 create mode 100644 samples/multimon/Makefile.in
 create mode 100644 samples/nativdlg/Makefile.in
 create mode 100644 samples/oleauto/Makefile.in
 create mode 100644 samples/ownerdrw/Makefile.in
 create mode 100644 samples/regtest/Makefile.in
 create mode 100644 samples/widgets/makefile.unx
 delete mode 100644 src/html/m_meta.cpp
 delete mode 100644 src/msw/makeuniv.b32
 create mode 100644 src/x11/pango_x.cpp
 create mode 100644 src/x11/pangox11.cpp
 create mode 100644 src/xrc/xh_scwin.cpp
 create mode 100644 utils/helpview/src/client.cpp
 create mode 100644 utils/helpview/src/client.dsp
 create mode 100644 utils/helpview/src/client.h
 create mode 100644 utils/helpview/src/client.rc
 create mode 100644 utils/helpview/src/readme.txt
 create mode 100644 utils/helpview/src/remhelp.cpp
 create mode 100644 utils/helpview/src/remhelp.h
 create mode 100644 utils/tex2rtf/tools/suppresswarnings.sh
 create mode 100644 version-script.in
 create mode 100644 wxMGL.spec

diff --git a/Makefile.in b/Makefile.in
index bce0b0c21c..de392c7d7b 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -391,11 +391,19 @@ afminstall: preinstall
 	$(INSTALL) -d $(datadir)/wx/$(VER_MAJMIN)/gs_afm
 	$(INSTALL_DATA) $(top_srcdir)/misc/afm/*.afm $(datadir)/wx/$(VER_MAJMIN)/afm
 	$(INSTALL_DATA) $(top_srcdir)/misc/gs_afm/*.afm $(datadir)/wx/$(VER_MAJMIN)/gs_afm
-        
+
 m4datainstall: preinstall
 	$(INSTALL) -d $(datadir)/aclocal
 	$(INSTALL_DATA) $(top_srcdir)/wxwin.m4 $(datadir)/aclocal
 
+win32install: preinstall
+	$(INSTALL) -d $(includedir)/wx/msw
+	$(INSTALL_DATA) $(top_srcdir)/include/wx/msw/*.cur \
+			$(top_srcdir)/include/wx/msw/*.ico \
+			$(top_srcdir)/include/wx/msw/*.bmp \
+			$(top_srcdir)/include/wx/msw/wx.rc \
+				$(includedir)/wx/msw
+
 # this is the real install target: copies the library, wx-config and the
 # headers to the installation directory
 preinstall: $(build_libdir)/@WX_TARGET_LIBRARY@ $(top_builddir)/wx@TOOLCHAIN_NAME@-config
@@ -462,7 +470,7 @@ preinstall_gl: $(build_libdir)/@WX_TARGET_LIBRARY_GL@
 	@if test ! -d $(libdir); then $(INSTALL) -d $(libdir); fi
 	@INSTALL_LIBRARY@ $(build_libdir)/@WX_TARGET_LIBRARY_GL@ $(libdir)/@WX_TARGET_LIBRARY_GL@
 
-install: @AFMINSTALL@ @WX_ALL_INSTALLED@ m4datainstall
+install: @AFMINSTALL@ @WX_ALL_INSTALLED@ m4datainstall @WIN32INSTALL@
 	@echo " "
 	@echo " The installation of wxWindows is finished.  On certain"
 	@echo " platforms (e.g. Linux) you'll now have to run ldconfig"
@@ -493,7 +501,7 @@ uninstall:
 	@$(RM) $(bindir)/wx@TOOLCHAIN_NAME@-config
 	@$(RM) $(datadir)/wx/$(VER_MAJMIN)/afm/*
 	@$(RM) $(datadir)/wx/$(VER_MAJMIN)/gs_afm/*
-# FIXME: wxBase doesnt install these next 3 dirs.
+	# FIXME: wxBase doesnt install these next 3 dirs.
 	@-rmdir $(datadir)/wx/$(VER_MAJMIN)/gs_afm
 	@-rmdir $(datadir)/wx/$(VER_MAJMIN)/afm
 	@-rmdir $(datadir)/wx/$(VER_MAJMIN)
@@ -502,6 +510,7 @@ uninstall:
 	@list='$(HEADERS)'; for p in $$list; do \
 	  $(RM) $(includedir)/wx/$$p; \
 	done
+	# TODO: uninstall the files installed by win32install
 	@echo " Removing i18n files..."
 	@-for p in $(WX_LINGUAS); do \
 	  $(RM) $(localedir)/$$p/LC_MESSAGES/wxstd.mo; \
@@ -536,6 +545,7 @@ ALL_DIST: distclean
 	cp $(WXDIR)/install-sh $(DISTDIR)
 	cp $(WXDIR)/mkinstalldirs $(DISTDIR)
 	cp $(WXDIR)/wx-config.in $(DISTDIR)
+	cp $(WXDIR)/version-script.in $(DISTDIR)
 	cp $(WXDIR)/setup.h.in $(DISTDIR)
 	cp $(WXDIR)/setup.h_vms $(DISTDIR)
 	cp $(WXDIR)/descrip.mms $(DISTDIR)
@@ -580,7 +590,8 @@ ALL_GUI_DIST: ALL_DIST
 	if test -f $(DOCDIR)/$(TOOLKITDIR)/changes.txt ; then \
 	  cp $(DOCDIR)/$(TOOLKITDIR)/changes.txt $(DISTDIR)/CHANGES-$(TOOLKIT).txt ; fi
 	cp $(DOCDIR)/$(TOOLKITDIR)/readme.txt $(DISTDIR)/README-$(TOOLKIT).txt
-	cp $(DOCDIR)/$(TOOLKITDIR)/todo.txt $(DISTDIR)/TODO.txt
+	if test -f $(DOCDIR)/$(TOOLKITDIR)/todo.txt ; then \
+	  cp $(DOCDIR)/$(TOOLKITDIR)/todo.txt $(DISTDIR)/TODO.txt ; fi
 	mkdir $(DISTDIR)/include
 	mkdir $(DISTDIR)/include/wx
 	mkdir $(DISTDIR)/include/wx/$(TOOLKITDIR)
@@ -777,6 +788,8 @@ MSW_ZIP_TEXT_DIST: ALL_GUI_DIST
 	cp $(SRCDIR)/*.??? $(DISTDIR)/src
 	cp $(SRCDIR)/*.?? $(DISTDIR)/src
 	cp $(MSWDIR)/?ake*.* $(DISTDIR)/src/msw
+	mkdir $(DISTDIR)/contrib
+	cp -R $(WXDIR)/contrib $(DISTDIR)
 
 UNIV_DIST: ALL_GUI_DIST
 	mkdir $(DISTDIR)/include/wx/univ
@@ -787,6 +800,15 @@ UNIV_DIST: ALL_GUI_DIST
 	cp $(SRCDIR)/univ/*.cpp $(DISTDIR)/src/univ
 	cp $(SRCDIR)/univ/themes/*.cpp $(DISTDIR)/src/univ/themes
 
+MGL_DIST: UNIV_DIST
+	cp $(WXDIR)/wxMGL.spec $(DISTDIR)
+	cp $(INCDIR)/wx/mgl/*.h $(DISTDIR)/include/wx/mgl
+	cp $(SRCDIR)/mgl/files.lst $(DISTDIR)/src/mgl
+	cp $(SRCDIR)/mgl/make* $(DISTDIR)/src/mgl
+	cp $(SRCDIR)/mgl/*.cpp $(DISTDIR)/src/mgl
+	mkdir $(DISTDIR)/contrib
+	cp -R $(WXDIR)/contrib $(DISTDIR)
+
 DEMOS_DIST: ALL_GUI_DIST
 	mkdir $(DISTDIR)/demos
 	cp $(DEMODIR)/Makefile.in $(DISTDIR)/demos
@@ -842,6 +864,13 @@ SAMPLES_DIST: ALL_GUI_DIST
 	cp $(SAMPDIR)/configure $(DISTDIR)/samples
 	cp $(SAMPDIR)/configure.in $(DISTDIR)/samples
 
+	mkdir $(DISTDIR)/samples/artprov
+	cp $(SAMPDIR)/artprov/Makefile.in $(DISTDIR)/samples/artprov
+	cp $(SAMPDIR)/artprov/makefile.unx $(DISTDIR)/samples/artprov
+	cp $(SAMPDIR)/artprov/*.cpp $(DISTDIR)/samples/artprov
+	cp $(SAMPDIR)/artprov/*.h $(DISTDIR)/samples/artprov
+	cp $(SAMPDIR)/artprov/*.xpm $(DISTDIR)/samples/artprov
+
 	mkdir $(DISTDIR)/samples/calendar
 	cp $(SAMPDIR)/calendar/Makefile.in $(DISTDIR)/samples/calendar
 	cp $(SAMPDIR)/calendar/makefile.unx $(DISTDIR)/samples/calendar
@@ -1053,6 +1082,10 @@ SAMPLES_DIST: ALL_GUI_DIST
 	cp $(SAMPDIR)/joytest/*.h $(DISTDIR)/samples/joytest
 	cp $(SAMPDIR)/joytest/*.wav $(DISTDIR)/samples/joytest
 
+	mkdir $(DISTDIR)/samples/keyboard
+	cp $(SAMPDIR)/keyboard/Makefile.in $(DISTDIR)/samples/keyboard
+	cp $(SAMPDIR)/keyboard/*.cpp $(DISTDIR)/samples/keyboard
+
 	mkdir $(DISTDIR)/samples/layout
 	cp $(SAMPDIR)/layout/Makefile.in $(DISTDIR)/samples/layout
 	cp $(SAMPDIR)/layout/makefile.unx $(DISTDIR)/samples/layout
@@ -1110,6 +1143,11 @@ SAMPLES_DIST: ALL_GUI_DIST
 	cp $(SAMPDIR)/mobile/wxedit/Makefile.in $(DISTDIR)/samples/mobile/wxedit
 	cp $(SAMPDIR)/mobile/wxedit/*.cpp $(DISTDIR)/samples/mobile/wxedit
 	cp $(SAMPDIR)/mobile/wxedit/*.h $(DISTDIR)/samples/mobile/wxedit
+	mkdir $(DISTDIR)/samples/mobile/styles
+	cp $(SAMPDIR)/mobile/styles/Makefile.in $(DISTDIR)/samples/mobile/styles
+	cp $(SAMPDIR)/mobile/styles/*.cpp $(DISTDIR)/samples/mobile/styles
+	cp $(SAMPDIR)/mobile/styles/*.h $(DISTDIR)/samples/mobile/styles
+	cp $(SAMPDIR)/mobile/styles/*.jpg $(DISTDIR)/samples/mobile/styles
     
 	mkdir $(DISTDIR)/samples/dialup
 	cp $(SAMPDIR)/dialup/Makefile.in $(DISTDIR)/samples/dialup
@@ -1305,6 +1343,18 @@ UTILS_DIST: ALL_GUI_DIST
 	cp $(UTILSDIR)/tex2rtf/src/*.cpp $(DISTDIR)/utils/tex2rtf/src
 	cp $(UTILSDIR)/tex2rtf/src/tex2rtf.* $(DISTDIR)/utils/tex2rtf/src
 
+	mkdir $(DISTDIR)/utils/emulator
+	mkdir $(DISTDIR)/utils/emulator/src
+	mkdir $(DISTDIR)/utils/emulator/docs
+	cp $(UTILSDIR)/emulator/*.in $(DISTDIR)/utils/emulator
+	cp $(UTILSDIR)/emulator/src/*.h $(DISTDIR)/utils/emulator/src
+	cp $(UTILSDIR)/emulator/src/*.in $(DISTDIR)/utils/emulator/src
+	cp $(UTILSDIR)/emulator/src/*.cpp $(DISTDIR)/utils/emulator/src
+	cp $(UTILSDIR)/emulator/src/*.jpg $(DISTDIR)/utils/emulator/src
+	cp $(UTILSDIR)/emulator/src/*.wxe $(DISTDIR)/utils/emulator/src
+	cp $(UTILSDIR)/emulator/docs/*.txt $(DISTDIR)/utils/emulator/docs
+	cp $(UTILSDIR)/emulator/docs/*.jpg $(DISTDIR)/utils/emulator/docs
+
 	mkdir $(DISTDIR)/utils/makegen
 	mkdir $(DISTDIR)/utils/makegen/templates
 	cp $(UTILSDIR)/makegen/Makefile.in $(DISTDIR)/utils/makegen
@@ -1319,7 +1369,29 @@ UTILS_DIST: ALL_GUI_DIST
 	cp $(UTILSDIR)/HelpGen/Makefile.in $(DISTDIR)/utils/HelpGen
 	cp $(UTILSDIR)/HelpGen/src/*.* $(DISTDIR)/utils/HelpGen/src
 
-	cp -R $(UTILSDIR)/dialoged $(DISTDIR)/utils/dialoged
+	mkdir $(DISTDIR)/utils/dialoged
+	mkdir $(DISTDIR)/utils/dialoged/src
+	mkdir $(DISTDIR)/utils/dialoged/src/bitmaps
+	mkdir $(DISTDIR)/utils/dialoged/docs
+	cp $(UTILSDIR)/dialoged/Makefile.in $(DISTDIR)/utils/dialoged
+	cp $(UTILSDIR)/dialoged/src/*.h $(DISTDIR)/utils/dialoged/src
+	cp $(UTILSDIR)/dialoged/src/*.cpp $(DISTDIR)/utils/dialoged/src
+	cp $(UTILSDIR)/dialoged/src/Makefile.in $(DISTDIR)/utils/dialoged/src
+	cp $(UTILSDIR)/dialoged/src/makefile.unx $(DISTDIR)/utils/dialoged/src
+	cp $(UTILSDIR)/dialoged/src/bitmaps/*.xpm $(DISTDIR)/utils/dialoged/src/bitmaps
+	cp $(UTILSDIR)/dialoged/docs/*.tex $(DISTDIR)/utils/dialoged/docs
+	cp $(UTILSDIR)/dialoged/docs/*.ini $(DISTDIR)/utils/dialoged/docs
+	cp $(UTILSDIR)/dialoged/docs/*.gif $(DISTDIR)/utils/dialoged/docs
+
+	mkdir $(DISTDIR)/utils/helpview
+	mkdir $(DISTDIR)/utils/helpview/src
+	mkdir $(DISTDIR)/utils/helpview/src/bitmaps
+	cp $(UTILSDIR)/helpview/Makefile.in $(DISTDIR)/utils/helpview
+	cp $(UTILSDIR)/helpview/src/*.h $(DISTDIR)/utils/helpview/src
+	cp $(UTILSDIR)/helpview/src/*.cpp $(DISTDIR)/utils/helpview/src
+	cp $(UTILSDIR)/helpview/src/Makefile.in $(DISTDIR)/utils/helpview/src
+	cp $(UTILSDIR)/helpview/src/test.zip $(DISTDIR)/utils/helpview/src
+	cp $(UTILSDIR)/helpview/src/bitmaps/*.xpm $(DISTDIR)/utils/helpview/src/bitmaps
 
 MISC_DIST: ALL_GUI_DIST
 	mkdir $(DISTDIR)/misc
@@ -1499,6 +1571,7 @@ debian-dist: debian-native-dist debian-msw-dirs MSW_DIST
 	mv $(DISTDIR) $(WXDIR)/../wxwindows$(WX_MAJOR_VERSION_NUMBER).$(WX_MINOR_VERSION_NUMBER)-$(WX_MAJOR_VERSION_NUMBER).$(WX_MINOR_VERSION_NUMBER).$(WX_RELEASE_NUMBER)
 
 debian-native-dist: @GUIDIST@ UNIV_DIST MANUAL_DIST PYTHON_DIST
+	cp $(SRCDIR)/files.lst $(DISTDIR)/src
 
 debian-msw-dirs:
 	mkdir $(DISTDIR)/include/wx/msw
diff --git a/acinclude.m4 b/acinclude.m4
index 47508a0fbc..beffd8ff0d 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -19,7 +19,7 @@ dnl ---------------------------------------------------------------------------
 AC_DEFUN([WX_PATH_FIND_INCLUDES],
 [
 ac_find_includes=
-for ac_dir in $1;
+for ac_dir in $1 /usr/include;
   do
     if test -f "$ac_dir/$2"; then
       ac_find_includes=$ac_dir
@@ -35,7 +35,7 @@ dnl ---------------------------------------------------------------------------
 AC_DEFUN([WX_PATH_FIND_LIBRARIES],
 [
 ac_find_libraries=
-for ac_dir in $1;
+for ac_dir in $1 /usr/lib;
   do
     for ac_extension in a so sl dylib; do
       if test -f "$ac_dir/lib$2.$ac_extension"; then
@@ -51,13 +51,17 @@ dnl Path to include, already defined
 dnl ---------------------------------------------------------------------------
 AC_DEFUN([WX_INCLUDE_PATH_EXIST],
 [
-  ac_path_to_include=$1
-  echo "$2" | grep "\-I$1" > /dev/null
-  result=$?
-  if test $result = 0; then
+  dnl never add -I/usr/include to the CPPFLAGS
+  if test "x$1" = "x/usr/include"; then
     ac_path_to_include=""
   else
-    ac_path_to_include=" -I$1"
+    echo "$2" | grep "\-I$1" > /dev/null
+    result=$?
+    if test $result = 0; then
+      ac_path_to_include=""
+    else
+      ac_path_to_include=" -I$1"
+    fi
   fi
 ])
 
@@ -378,6 +382,57 @@ AC_DEFUN([WX_ARG_ENABLE],
         ])
 
 
+dnl ===========================================================================
+dnl Linker features test
+dnl ===========================================================================
+
+dnl ---------------------------------------------------------------------------
+dnl WX_VERSIONED_SYMBOLS checks whether the linker can create versioned
+dnl symbols. If it can, sets LDFLAGS_VERSIONING to $CXX flags needed to use
+dnl version script file named versionfile
+dnl
+dnl call WX_VERSIONED_SYMBOLS(versionfile)
+dnl ---------------------------------------------------------------------------
+AC_DEFUN([WX_VERSIONED_SYMBOLS],
+[
+  found_versioning=no
+
+  dnl Check for known non-gcc cases:
+  case "${host}" in
+    *-*-solaris2* )
+      if test "x$GCC" != "xyes" ; then
+          LDFLAGS_VERSIONING="-M $1"
+          found_versioning=yes
+      fi
+    ;;
+  esac
+  
+  dnl Generic check for GCC or GCC-like behaviour (Intel C++, GCC):
+  if test $found_versioning = no ; then
+      AC_CACHE_CHECK([if the linker accepts --version-script], wx_cv_version_script,
+      [
+        echo "VER_1 { *; };" >conftest.sym
+        echo "int main() { return 0; }" >conftest.cpp
+  
+        if AC_TRY_COMMAND([
+                $CXX -o conftest.output $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.cpp
+                -Wl,--version-script,conftest.sym >/dev/null 2>conftest.stderr]) ; then
+          if test -s conftest.stderr ; then
+              wx_cv_version_script=no
+          else
+              wx_cv_version_script=yes
+          fi
+        else
+          wx_cv_version_script=no
+        fi
+        rm -f conftest.output conftest.stderr conftest.sym conftest.cpp
+      ])
+      if test $wx_cv_version_script = yes ; then
+        LDFLAGS_VERSIONING="-Wl,--version-script,$1"
+      fi
+  fi
+])
+
 
 dnl ===========================================================================
 dnl "3rd party" macros included here because they are not widely available
diff --git a/aclocal.m4 b/aclocal.m4
index 808ecf4a94..a5d7c56139 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -31,7 +31,7 @@ dnl ---------------------------------------------------------------------------
 AC_DEFUN([WX_PATH_FIND_INCLUDES],
 [
 ac_find_includes=
-for ac_dir in $1;
+for ac_dir in $1 /usr/include;
   do
     if test -f "$ac_dir/$2"; then
       ac_find_includes=$ac_dir
@@ -47,7 +47,7 @@ dnl ---------------------------------------------------------------------------
 AC_DEFUN([WX_PATH_FIND_LIBRARIES],
 [
 ac_find_libraries=
-for ac_dir in $1;
+for ac_dir in $1 /usr/lib;
   do
     for ac_extension in a so sl dylib; do
       if test -f "$ac_dir/lib$2.$ac_extension"; then
@@ -63,13 +63,17 @@ dnl Path to include, already defined
 dnl ---------------------------------------------------------------------------
 AC_DEFUN([WX_INCLUDE_PATH_EXIST],
 [
-  ac_path_to_include=$1
-  echo "$2" | grep "\-I$1" > /dev/null
-  result=$?
-  if test $result = 0; then
+  dnl never add -I/usr/include to the CPPFLAGS
+  if test "x$1" = "x/usr/include"; then
     ac_path_to_include=""
   else
-    ac_path_to_include=" -I$1"
+    echo "$2" | grep "\-I$1" > /dev/null
+    result=$?
+    if test $result = 0; then
+      ac_path_to_include=""
+    else
+      ac_path_to_include=" -I$1"
+    fi
   fi
 ])
 
@@ -349,6 +353,10 @@ AC_DEFUN([WX_ARG_WITH],
 
 dnl like WX_ARG_WITH but uses AC_ARG_ENABLE instead of AC_ARG_WITH
 dnl usage: WX_ARG_ENABLE(option, helpmessage, variable-name, enablestring)
+dnl
+dnl enablestring is a hack and allows to show "checking for --disable-foo"
+dnl message when running configure instead of the default "checking for
+dnl --enable-foo" one whih is useful for the options enabled by default
 AC_DEFUN([WX_ARG_ENABLE],
         [
 	  enablestring=$4
@@ -386,6 +394,57 @@ AC_DEFUN([WX_ARG_ENABLE],
         ])
 
 
+dnl ===========================================================================
+dnl Linker features test
+dnl ===========================================================================
+
+dnl ---------------------------------------------------------------------------
+dnl WX_VERSIONED_SYMBOLS checks whether the linker can create versioned
+dnl symbols. If it can, sets LDFLAGS_VERSIONING to $CXX flags needed to use
+dnl version script file named versionfile
+dnl
+dnl call WX_VERSIONED_SYMBOLS(versionfile)
+dnl ---------------------------------------------------------------------------
+AC_DEFUN([WX_VERSIONED_SYMBOLS],
+[
+  found_versioning=no
+
+  dnl Check for known non-gcc cases:
+  case "${host}" in
+    *-*-solaris2* )
+      if test "x$GCC" != "xyes" ; then
+          LDFLAGS_VERSIONING="-M $1"
+          found_versioning=yes
+      fi
+    ;;
+  esac
+  
+  dnl Generic check for GCC or GCC-like behaviour (Intel C++, GCC):
+  if test $found_versioning = no ; then
+      AC_CACHE_CHECK([if the linker accepts --version-script], wx_cv_version_script,
+      [
+        echo "VER_1 { *; };" >conftest.sym
+        echo "int main() { return 0; }" >conftest.cpp
+  
+        if AC_TRY_COMMAND([
+                $CXX -o conftest.output $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.cpp
+                -Wl,--version-script,conftest.sym >/dev/null 2>conftest.stderr]) ; then
+          if test -s conftest.stderr ; then
+              wx_cv_version_script=no
+          else
+              wx_cv_version_script=yes
+          fi
+        else
+          wx_cv_version_script=no
+        fi
+        rm -f conftest.output conftest.stderr conftest.sym conftest.cpp
+      ])
+      if test $wx_cv_version_script = yes ; then
+        LDFLAGS_VERSIONING="-Wl,--version-script,$1"
+      fi
+  fi
+])
+
 
 dnl ===========================================================================
 dnl "3rd party" macros included here because they are not widely available
@@ -729,64 +788,6 @@ main ()
   rm -f conf.gtktest
 ])
 
-
-dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
-dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
-dnl also defines GSTUFF_PKG_ERRORS on error
-AC_DEFUN(PKG_CHECK_MODULES, [
-  succeeded=no
-
-  if test -z "$PKG_CONFIG"; then
-    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-  fi
-
-  if test "$PKG_CONFIG" = "no" ; then
-     echo "*** The pkg-config script could not be found. Make sure it is"
-     echo "*** in your path, or set the PKG_CONFIG environment variable"
-     echo "*** to the full path to pkg-config."
-     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
-  else
-     PKG_CONFIG_MIN_VERSION=0.9.0
-     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
-        AC_MSG_CHECKING(for $2)
-
-        if $PKG_CONFIG --exists "$2" ; then
-            AC_MSG_RESULT(yes)
-            succeeded=yes
-
-            AC_MSG_CHECKING($1_CFLAGS)
-            $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
-            AC_MSG_RESULT($$1_CFLAGS)
-
-            AC_MSG_CHECKING($1_LIBS)
-            $1_LIBS=`$PKG_CONFIG --libs "$2"`
-            AC_MSG_RESULT($$1_LIBS)
-        else
-            $1_CFLAGS=""
-            $1_LIBS=""
-            ## If we have a custom action on failure, don't print errors, but 
-            ## do set a variable so people can do so.
-            $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
-            ifelse([$4], ,echo $$1_PKG_ERRORS,)
-        fi
-
-        AC_SUBST($1_CFLAGS)
-        AC_SUBST($1_LIBS)
-     else
-        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
-        echo "*** See http://www.freedesktop.org/software/pkgconfig"
-     fi
-  fi
-
-  if test $succeeded = yes; then
-     ifelse([$3], , :, [$3])
-  else
-     ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
-  fi
-])
-
-
-
 # Configure paths for GTK+
 # Owen Taylor     97-11-3
 
@@ -982,3 +983,61 @@ main ()
   rm -f conf.gtktest
 ])
 
+
+dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
+dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
+dnl also defines GSTUFF_PKG_ERRORS on error
+AC_DEFUN(PKG_CHECK_MODULES, [
+  succeeded=no
+
+  if test -z "$PKG_CONFIG"; then
+    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+  fi
+
+  if test "$PKG_CONFIG" = "no" ; then
+     echo "*** The pkg-config script could not be found. Make sure it is"
+     echo "*** in your path, or set the PKG_CONFIG environment variable"
+     echo "*** to the full path to pkg-config."
+     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+  else
+     PKG_CONFIG_MIN_VERSION=0.9.0
+     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+        AC_MSG_CHECKING(for $2)
+
+        if $PKG_CONFIG --exists "$2" ; then
+            AC_MSG_RESULT(yes)
+            succeeded=yes
+
+            AC_MSG_CHECKING($1_CFLAGS)
+            $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
+            AC_MSG_RESULT($$1_CFLAGS)
+
+            AC_MSG_CHECKING($1_LIBS)
+            $1_LIBS=`$PKG_CONFIG --libs "$2"`
+            AC_MSG_RESULT($$1_LIBS)
+        else
+            $1_CFLAGS=""
+            $1_LIBS=""
+            ## If we have a custom action on failure, don't print errors, but 
+            ## do set a variable so people can do so.
+            $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+            ifelse([$4], ,echo $$1_PKG_ERRORS,)
+        fi
+
+        AC_SUBST($1_CFLAGS)
+        AC_SUBST($1_LIBS)
+     else
+        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+        echo "*** See http://www.freedesktop.org/software/pkgconfig"
+     fi
+  fi
+
+  if test $succeeded = yes; then
+     ifelse([$3], , :, [$3])
+  else
+     ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
+  fi
+])
+
+
+
diff --git a/art/wxwin.ico b/art/wxwin.ico
new file mode 100644
index 0000000000000000000000000000000000000000..8d2dc18c6b92c1b714dcca114e1caddc605c2714
GIT binary patch
literal 1078
zcmcIjIda1=5Q8i>8qYZTK~!b@3>ADBpWs%%aG!?HNvS>s11xooBu)yC*T#b2E|)AI
zpuz=R*ODE6F2EOnw$1up0k;~sbFU+MLVb$B-t!17vJyfjW-bw9B&(3@kCe0`_|uls
zo1+;NkL8wwPE-B*t#~#?op$xIw#%+--FZey^Lm#y^_|wNT+i<-YP&Qi>-YV#^RL$X
zw*5Q340^+Y9ykPQ8p9BQ`UHh{WN*n|%Yb=M=EF@X$>%N65wp)D*XI%FaaQPQBW5mN
z@;Uv;fxw5D{xkj+bCcW*&i7<?_?~s+e8PKUH?fIg(x)a=LRhgqFj9=4E9NueKZ*|k
ASpWb4

literal 0
HcmV?d00001

diff --git a/art/wxwin16x16.png b/art/wxwin16x16.png
new file mode 100644
index 0000000000000000000000000000000000000000..e07faeb73f886453a1a080de5ef2625783a87bb3
GIT binary patch
literal 1241
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!Xo+h?iE~kEVo7Fxo<c}wZYl%&
zC2m%JX0<PYORfMFu$OrHx`KoRm9&o@ThIU$;w<opEM{Qf76M_$OLy!3FfcGP1o(uw
z0wqBT8W<YD6p#k84gkTO1Itc*0Lm~hwESma`2Qb>fb=LB4S^vR0{?%1Sg>G8Lqh{7
z`GS%$hyv1}1pWWN-TN(XfCB$Yg8YKP0wa}RxN(!G5Ev4Uo-U3d6}P6Ix8`C{;Bh(l
zws+_MRMyXeG0m;}&ME421Rj!BP|lERzQ+*b@coUV(niME1#Feu4xVV&y5M%`=JDrh
Y3AgIcu*N=31RBQR>FVdQ&MBb@0A8AA3jhEB

literal 0
HcmV?d00001

diff --git a/art/wxwin16x16.xpm b/art/wxwin16x16.xpm
new file mode 100644
index 0000000000..9964e69313
--- /dev/null
+++ b/art/wxwin16x16.xpm
@@ -0,0 +1,25 @@
+/* XPM */
+static char *wxwin16x16_xpm[] = {
+"16 16 6 1",
+" 	c None",
+".	c #000000",
+"X	c #000084",
+"o	c #FFFFFF",
+"O	c #FFFF00",
+"+	c #FF0000",
+"                ",
+"                ",
+"                ",
+"    .......     ",
+"    .XXXXX.     ",
+"    .oXXXX.     ",
+"    .oXXX.......",
+".....oXXX.OOOOO.",
+".+++.XXXX.oOOOO.",
+".o++......oOOOO.",
+".o++++.  .oOOOO.",
+".o++++.  .OOOOO.",
+".+++++.  .......",
+".......         ",
+"                ",
+"                "};
diff --git a/art/wxwin32x32.png b/art/wxwin32x32.png
new file mode 100644
index 0000000000000000000000000000000000000000..20eda44161cbf3397a03b044cea10b78ddbb76db
GIT binary patch
literal 1267
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyq9v{oCC){ui6xo&c?uz!xv327
zm$+F4m5iBJ-(Ch(z+U3%>k1aqREmFh@I6q7v%n*=n1O*?2!t6g-L3n>z`)E9;1l8s
zlxzUw1~AnC<TW%L0D?OQmYw<llwn|K`Om=c|344`=}|Bm0z)hW{{Q~4V8N1xh6Ygb
z1tnt;1*Aa<`u~5s_gmfo1^$%;`2~XoMk>K@<0elbFeIWqT^vIyZk@gC$aO%0$K~S9
z@aO-g>vFK&TIqH~XG{HGF*TPvlRv08_{;5BqM)#y@dq>KiAg6EJ*F`g@lIfyC%EXr
zS@v%etUmBv(8=Ob`EvYu!?O(c<5iCyw>UEL&Sg0w-!<(X&>99$S3j3^P6<r_fLC-i

literal 0
HcmV?d00001

diff --git a/art/wxwin32x32.xpm b/art/wxwin32x32.xpm
new file mode 100644
index 0000000000..34b841a0e8
--- /dev/null
+++ b/art/wxwin32x32.xpm
@@ -0,0 +1,41 @@
+/* XPM */
+static char *wxwin32x32_xpm[] = {
+"32 32 6 1",
+" 	c None",
+".	c #000000",
+"X	c #000084",
+"o	c #FFFFFF",
+"O	c #FFFF00",
+"+	c #FF0000",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"        ..............          ",
+"        .XXXXXXXXXXXX.          ",
+"        .XXXXXXXXXXXX.          ",
+"        .XooXXXXXXXXX.          ",
+"        .XooXXXXXXXXX.          ",
+"        .XooXXXXXXXXX.          ",
+"        .XooXXXXXX..............",
+"        .XooXXXXXX.OOOOOOOOOOOO.",
+".........XooXXXXXX.OOOOOOOOOOOO.",
+".+++++++.XooXXXXXX.OooOOOOOOOOO.",
+".+++++++.XooXXXXXX.OooOOOOOOOOO.",
+".+oo++++.XXXXXXXXX.OooOOOOOOOOO.",
+".+oo++++.XXXXXXXXX.OooOOOOOOOOO.",
+".+oo++++...........OooOOOOOOOOO.",
+".+oo+++++++++.    .OooOOOOOOOOO.",
+".+oo+++++++++.    .OooOOOOOOOOO.",
+".+oo+++++++++.    .OooOOOOOOOOO.",
+".+oo+++++++++.    .OOOOOOOOOOOO.",
+".+oo+++++++++.    .OOOOOOOOOOOO.",
+".++++++++++++.    ..............",
+".++++++++++++.                  ",
+"..............                  ",
+"                                ",
+"                                ",
+"                                ",
+"                                ",
+"                                "};
diff --git a/config.guess b/config.guess
index dff9e481b7..f1657bbc46 100755
--- a/config.guess
+++ b/config.guess
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-#   Free Software Foundation, Inc.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002 Free Software Foundation, Inc.
 
-timestamp='2001-09-04'
+timestamp='2002-09-03'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -24,8 +24,9 @@ timestamp='2001-09-04'
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
-# Written by Per Bothner <bothner@cygnus.com>.
-# Please send patches to <config-patches@gnu.org>.
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
 #
 # This script attempts to guess a canonical system name similar to
 # config.sub.  If it succeeds, it prints the system name on stdout, and
@@ -87,30 +88,40 @@ if test $# != 0; then
   exit 1
 fi
 
+trap 'exit 1' 1 2 15
 
-dummy=dummy-$$
-trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
 
-# CC_FOR_BUILD -- compiler used by this script.
 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
 # use `HOST_CC' if defined, but it is deprecated.
 
-set_cc_for_build='case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int dummy(){}" > $dummy.c ;
-	for c in cc gcc c89 ; do
-	  ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ;
-	  if test $? = 0 ; then
+# This shell variable is my proudest work .. or something. --bje
+
+set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
+(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
+   || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
+dummy=$tmpdir/dummy ;
+files="$dummy.c $dummy.o $dummy.rel $dummy" ;
+trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+	for c in cc gcc c89 c99 ; do
+	  if ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; then
 	     CC_FOR_BUILD="$c"; break ;
 	  fi ;
 	done ;
-	rm -f $dummy.c $dummy.o $dummy.rel ;
+	rm -f $files ;
 	if test x"$CC_FOR_BUILD" = x ; then
 	  CC_FOR_BUILD=no_compiler_found ;
 	fi
 	;;
  ,,*)   CC_FOR_BUILD=$CC ;;
  ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac'
+esac ;
+unset files'
 
 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
 # (ghazi@noc.rutgers.edu 1994-08-24)
@@ -127,29 +138,30 @@ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     *:NetBSD:*:*)
-	# Netbsd (nbsd) targets should (where applicable) match one or
+	# NetBSD (nbsd) targets should (where applicable) match one or
 	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
 	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
 	# switched to ELF, *-*-netbsd* would select the old
 	# object file format.  This provides both forward
 	# compatibility and a consistent mechanism for selecting the
 	# object file format.
-	# Determine the machine/vendor (is the vendor relevant).
-	case "${UNAME_MACHINE}" in
-	    amiga) machine=m68k-unknown ;;
-	    arm32) machine=arm-unknown ;;
-	    atari*) machine=m68k-atari ;;
-	    sun3*) machine=m68k-sun ;;
-	    mac68k) machine=m68k-apple ;;
-	    macppc) machine=powerpc-apple ;;
-	    hp3[0-9][05]) machine=m68k-hp ;;
-	    ibmrt|romp-ibm) machine=romp-ibm ;;
-	    *) machine=${UNAME_MACHINE}-unknown ;;
+	#
+	# Note: NetBSD doesn't particularly care about the vendor
+	# portion of the name.  We always set it to "unknown".
+	sysctl="sysctl -n hw.machine_arch"
+	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+	case "${UNAME_MACHINE_ARCH}" in
+	    armeb) machine=armeb-unknown ;;
+	    arm*) machine=arm-unknown ;;
+	    sh3el) machine=shl-unknown ;;
+	    sh3eb) machine=sh-unknown ;;
+	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
 	esac
 	# The Operating System including object format, if it has switched
 	# to ELF recently, or will in the future.
-	case "${UNAME_MACHINE}" in
-	    i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
+	case "${UNAME_MACHINE_ARCH}" in
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
 		eval $set_cc_for_build
 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
 			| grep __ELF__ >/dev/null
@@ -172,6 +184,45 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
 	echo "${machine}-${os}${release}"
 	exit 0 ;;
+    amiga:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    arc:OpenBSD:*:*)
+	echo mipsel-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    hp300:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    mac68k:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    macppc:OpenBSD:*:*)
+	echo powerpc-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    mvme68k:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    mvme88k:OpenBSD:*:*)
+	echo m88k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    mvmeppc:OpenBSD:*:*)
+	echo powerpc-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    pmax:OpenBSD:*:*)
+	echo mipsel-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    sgi:OpenBSD:*:*)
+	echo mipseb-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    sun3:OpenBSD:*:*)
+	echo m68k-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    wgrisc:OpenBSD:*:*)
+	echo mipsel-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
+    *:OpenBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+	exit 0 ;;
     alpha:OSF1:*:*)
 	if test $UNAME_RELEASE = "V4.0"; then
 		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
@@ -180,6 +231,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	# A Tn.n version is a released field test version.
 	# A Xn.n version is an unreleased experimental baselevel.
 	# 1.2 uses "1.2" for uname -r.
+	eval $set_cc_for_build
 	cat <<EOF >$dummy.s
 	.data
 \$Lformat:
@@ -205,10 +257,9 @@ main:
 	jsr \$26,exit
 	.end main
 EOF
-	eval $set_cc_for_build
 	$CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
 	if test "$?" = 0 ; then
-		case `./$dummy` in
+		case `$dummy` in
 			0-0)
 				UNAME_MACHINE="alpha"
 				;;
@@ -230,9 +281,12 @@ EOF
 			2-1307)
 				UNAME_MACHINE="alphaev68"
 				;;
+			3-1307)
+				UNAME_MACHINE="alphaev7"
+				;;
 		esac
 	fi
-	rm -f $dummy.s $dummy
+	rm -f $dummy.s $dummy && rmdir $tmpdir
 	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
 	exit 0 ;;
     Alpha\ *:Windows_NT*:*)
@@ -247,29 +301,11 @@ EOF
     Amiga*:UNIX_System_V:4.0:*)
 	echo m68k-unknown-sysv4
 	exit 0;;
-    amiga:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
     *:[Aa]miga[Oo][Ss]:*:*)
 	echo ${UNAME_MACHINE}-unknown-amigaos
 	exit 0 ;;
-    arc64:OpenBSD:*:*)
-	echo mips64el-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    arc:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    hkmips:OpenBSD:*:*)
-	echo mips-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    pmax:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sgi:OpenBSD:*:*)
-	echo mips-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    wgrisc:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
+    *:[Mm]orph[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-morphos
 	exit 0 ;;
     *:OS/390:*:*)
 	echo i370-ibm-openedition
@@ -291,6 +327,10 @@ EOF
     NILE*:*:*:dcosx)
 	echo pyramid-pyramid-svr4
 	exit 0 ;;
+    DRS?6000:UNIX_SV:4.2*:7*)
+	case `/usr/bin/uname -p` in
+	    sparc) echo sparc-icl-nx7 && exit 0 ;;
+	esac ;;
     sun4H:SunOS:5.*:*)
 	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit 0 ;;
@@ -319,7 +359,7 @@ EOF
 	echo m68k-sun-sunos${UNAME_RELEASE}
 	exit 0 ;;
     sun*:*:4.2BSD:*)
-	UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
 	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
 	case "`/bin/arch`" in
 	    sun3)
@@ -333,12 +373,6 @@ EOF
     aushp:SunOS:*:*)
 	echo sparc-auspex-sunos${UNAME_RELEASE}
 	exit 0 ;;
-    sparc*:NetBSD:*)
-	echo `uname -p`-unknown-netbsd${UNAME_RELEASE}
-	exit 0 ;;
-    atari*:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
     # The situation for MiNT is a little confusing.  The machine name
     # can be virtually everything (everything which is not
     # "atarist" or "atariste" at least should have a processor
@@ -365,18 +399,6 @@ EOF
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
         echo m68k-unknown-mint${UNAME_RELEASE}
         exit 0 ;;
-    sun3*:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mac68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme88k:OpenBSD:*:*)
-	echo m88k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
     powerpc:machten:*:*)
 	echo powerpc-apple-machten${UNAME_RELEASE}
 	exit 0 ;;
@@ -416,14 +438,20 @@ EOF
 	}
 EOF
 	$CC_FOR_BUILD $dummy.c -o $dummy \
-	  && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-	  && rm -f $dummy.c $dummy && exit 0
-	rm -f $dummy.c $dummy
+	  && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+	  && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+	rm -f $dummy.c $dummy && rmdir $tmpdir
 	echo mips-mips-riscos${UNAME_RELEASE}
 	exit 0 ;;
     Motorola:PowerMAX_OS:*:*)
 	echo powerpc-motorola-powermax
 	exit 0 ;;
+    Motorola:*:4.3:PL8-*)
+	echo powerpc-harris-powermax
+	exit 0 ;;
+    Night_Hawk:*:*:PowerMAX_OS)
+	echo powerpc-harris-powermax
+	exit 0 ;;
     Night_Hawk:Power_UNIX:*:*)
 	echo powerpc-harris-powerunix
 	exit 0 ;;
@@ -496,8 +524,8 @@ EOF
 			exit(0);
 			}
 EOF
-		$CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
-		rm -f $dummy.c $dummy
+		$CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+		rm -f $dummy.c $dummy && rmdir $tmpdir
 		echo rs6000-ibm-aix3.2.5
 	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
 		echo rs6000-ibm-aix3.2.4
@@ -506,7 +534,7 @@ EOF
 	fi
 	exit 0 ;;
     *:AIX:*:[45])
-	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
 		IBM_ARCH=rs6000
 	else
@@ -546,10 +574,8 @@ EOF
 	    9000/31? )            HP_ARCH=m68000 ;;
 	    9000/[34]?? )         HP_ARCH=m68k ;;
 	    9000/[678][0-9][0-9])
-              case "${HPUX_REV}" in
-                11.[0-9][0-9])
-                  if [ -x /usr/bin/getconf ]; then
-                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+		if [ -x /usr/bin/getconf ]; then
+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
                     sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
                     case "${sc_cpu_version}" in
                       523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
@@ -558,13 +584,13 @@ EOF
                         case "${sc_kernel_bits}" in
                           32) HP_ARCH="hppa2.0n" ;;
                           64) HP_ARCH="hppa2.0w" ;;
+			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
                         esac ;;
                     esac
-                  fi ;;
-              esac
-              if [ "${HP_ARCH}" = "" ]; then
-	      eval $set_cc_for_build
-              sed 's/^              //' << EOF >$dummy.c
+		fi
+		if [ "${HP_ARCH}" = "" ]; then
+		    eval $set_cc_for_build
+		    sed 's/^              //' << EOF >$dummy.c
 
               #define _HPUX_SOURCE
               #include <stdlib.h>
@@ -597,10 +623,10 @@ EOF
                   exit (0);
               }
 EOF
-	    (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
-	    if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
-	    rm -f $dummy.c $dummy
-	fi ;;
+		    (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`$dummy`
+		    if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
+		    rm -f $dummy.c $dummy && rmdir $tmpdir
+		fi ;;
 	esac
 	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
 	exit 0 ;;
@@ -635,8 +661,8 @@ EOF
 	  exit (0);
 	}
 EOF
-	$CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
-	rm -f $dummy.c $dummy
+	$CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+	rm -f $dummy.c $dummy && rmdir $tmpdir
 	echo unknown-hitachi-hiuxwe2
 	exit 0 ;;
     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
@@ -664,9 +690,6 @@ EOF
     parisc*:Lites*:*:*)
 	echo hppa1.1-hp-lites
 	exit 0 ;;
-    hppa*:OpenBSD:*:*)
-	echo hppa-unknown-openbsd
-	exit 0 ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
 	echo c1-convex-bsd
         exit 0 ;;
@@ -685,9 +708,6 @@ EOF
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
 	echo c4-convex-bsd
         exit 0 ;;
-    CRAY*X-MP:*:*:*)
-	echo xmp-cray-unicos
-        exit 0 ;;
     CRAY*Y-MP:*:*:*)
 	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
 	exit 0 ;;
@@ -709,18 +729,12 @@ EOF
     CRAY*SV1:*:*:*)
 	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
 	exit 0 ;;
-    CRAY-2:*:*:*)
-	echo cray2-cray-unicos
-        exit 0 ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
 	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
         echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
         exit 0 ;;
-    hp300:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
 	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
 	exit 0 ;;
@@ -731,10 +745,19 @@ EOF
 	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
 	exit 0 ;;
     *:FreeBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-	exit 0 ;;
-    *:OpenBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+	# Determine whether the default compiler uses glibc.
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <features.h>
+	#if __GLIBC__ >= 2
+	LIBC=gnu
+	#else
+	LIBC=
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+	rm -f $dummy.c && rmdir $tmpdir
+	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
 	exit 0 ;;
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
@@ -745,6 +768,9 @@ EOF
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
 	exit 0 ;;
+    x86:Interix*:3*)
+	echo i386-pc-interix3
+	exit 0 ;;
     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
 	# How do we know it's Interix rather than the generic POSIX subsystem?
 	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
@@ -770,16 +796,30 @@ EOF
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit 0 ;;
     ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit 0 ;;
     m68*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit 0 ;;
     mips:Linux:*:*)
-	case `sed -n '/^byte/s/^.*: \(.*\) endian/\1/p' < /proc/cpuinfo` in
-	  big)    echo mips-unknown-linux-gnu && exit 0 ;;
-	  little) echo mipsel-unknown-linux-gnu && exit 0 ;;
-	esac
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef mips
+	#undef mipsel
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=mipsel
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=mips
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+	rm -f $dummy.c && rmdir $tmpdir
+	test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
 	;;
     ppc:Linux:*:*)
 	echo powerpc-unknown-linux-gnu
@@ -828,7 +868,8 @@ EOF
 	# The BFD linker knows what the default object file format is, so
 	# first see if it will tell us. cd to the root directory to prevent
 	# problems with other programs or directories called `ld' in the path.
-	ld_supported_targets=`cd /; ld --help 2>&1 \
+	# Set LC_ALL=C to ensure ld outputs messages in English.
+	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
 			 | sed -ne '/supported targets:/!d
 				    s/[ 	][ 	]*/ /g
 				    s/.*supported targets: *//
@@ -840,7 +881,7 @@ EOF
 		;;
 	  a.out-i386-linux)
 		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit 0 ;;		
+		exit 0 ;;
 	  coff-i386)
 		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
 		exit 0 ;;
@@ -852,32 +893,29 @@ EOF
 	esac
 	# Determine whether the default compiler is a.out or elf
 	eval $set_cc_for_build
-	cat >$dummy.c <<EOF
-#include <features.h>
-#ifdef __cplusplus
-#include <stdio.h>  /* for printf() prototype */
-	int main (int argc, char *argv[]) {
-#else
-	int main (argc, argv) int argc; char *argv[]; {
-#endif
-#ifdef __ELF__
-# ifdef __GLIBC__
-#  if __GLIBC__ >= 2
-    printf ("%s-pc-linux-gnu\n", argv[1]);
-#  else
-    printf ("%s-pc-linux-gnulibc1\n", argv[1]);
-#  endif
-# else
-   printf ("%s-pc-linux-gnulibc1\n", argv[1]);
-# endif
-#else
-  printf ("%s-pc-linux-gnuaout\n", argv[1]);
-#endif
-  return 0;
-}
+	sed 's/^	//' << EOF >$dummy.c
+	#include <features.h>
+	#ifdef __ELF__
+	# ifdef __GLIBC__
+	#  if __GLIBC__ >= 2
+	LIBC=gnu
+	#  else
+	LIBC=gnulibc1
+	#  endif
+	# else
+	LIBC=gnulibc1
+	# endif
+	#else
+	#ifdef __INTEL_COMPILER
+	LIBC=gnu
+	#else
+	LIBC=gnuaout
+	#endif
+	#endif
 EOF
-	$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
-	rm -f $dummy.c $dummy
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+	rm -f $dummy.c && rmdir $tmpdir
+	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
 	test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
 	;;
     i*86:DYNIX/ptx:4*:*)
@@ -915,13 +953,13 @@ EOF
 		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
 		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
 	elif /bin/uname -X 2>/dev/null >/dev/null ; then
-		UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
-		(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
-		(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
 			&& UNAME_MACHINE=i586
-		(/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
+		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
 			&& UNAME_MACHINE=i686
-		(/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
+		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
 			&& UNAME_MACHINE=i686
 		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
 	else
@@ -954,9 +992,12 @@ EOF
 	# "miniframe"
 	echo m68010-convergent-sysv
 	exit 0 ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+	echo m68k-convergent-sysv
+	exit 0 ;;
     M68*:*:R3V[567]*:*)
 	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
+    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
 	OS_REL=''
 	test -r /etc/.relid \
 	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
@@ -1047,6 +1088,9 @@ EOF
     SX-5:SUPER-UX:*:*)
 	echo sx5-nec-superux${UNAME_RELEASE}
 	exit 0 ;;
+    SX-6:SUPER-UX:*:*)
+	echo sx6-nec-superux${UNAME_RELEASE}
+	exit 0 ;;
     Power*:Rhapsody:*:*)
 	echo powerpc-apple-rhapsody${UNAME_RELEASE}
 	exit 0 ;;
@@ -1057,15 +1101,17 @@ EOF
 	echo `uname -p`-apple-darwin${UNAME_RELEASE}
 	exit 0 ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
-	if test "${UNAME_MACHINE}" = "x86pc"; then
+	UNAME_PROCESSOR=`uname -p`
+	if test "$UNAME_PROCESSOR" = "x86"; then
+		UNAME_PROCESSOR=i386
 		UNAME_MACHINE=pc
 	fi
-	echo `uname -p`-${UNAME_MACHINE}-nto-qnx
+	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
 	exit 0 ;;
     *:QNX:*:4*)
 	echo i386-pc-qnx
 	exit 0 ;;
-    NSR-[KW]:NONSTOP_KERNEL:*:*)
+    NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
 	echo nsr-tandem-nsk${UNAME_RELEASE}
 	exit 0 ;;
     *:NonStop-UX:*:*)
@@ -1237,8 +1283,8 @@ main ()
 }
 EOF
 
-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
-rm -f $dummy.c $dummy
+$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
+rm -f $dummy.c $dummy && rmdir $tmpdir
 
 # Apollos put the system type in the environment.
 
diff --git a/configure b/configure
index 53b06bcd3a..8e3ce97d62 100755
--- a/configure
+++ b/configure
@@ -52,6 +52,9 @@
 
 
 
+
+
+
 
 
 
@@ -61,13 +64,13 @@
 
 
 
+# Configure paths for GTK+
+# Owen Taylor     97-11-3
 
 
 
 
 
-# Configure paths for GTK+
-# Owen Taylor     97-11-3
 
 
 
@@ -1014,7 +1017,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:1018: checking host system type" >&5
+echo "configure:1021: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -1035,7 +1038,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 echo "$ac_t""$host" 1>&6
 
 echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:1039: checking target system type" >&5
+echo "configure:1042: checking target system type" >&5
 
 target_alias=$target
 case "$target_alias" in
@@ -1053,7 +1056,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 echo "$ac_t""$target" 1>&6
 
 echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:1057: checking build system type" >&5
+echo "configure:1060: checking build system type" >&5
 
 build_alias=$build
 case "$build_alias" in
@@ -1079,7 +1082,7 @@ test "$host_alias" != "$target_alias" &&
 
 WX_MAJOR_VERSION_NUMBER=2
 WX_MINOR_VERSION_NUMBER=3
-WX_RELEASE_NUMBER=3
+WX_RELEASE_NUMBER=4
 
 WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER
 WX_RELEASE=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER
@@ -1239,11 +1242,11 @@ EOF
     USE_BSD=1
     USE_OPENBSD=1
     cat >> confdefs.h <<\EOF
-#define __FREEBSD__ 1
+#define __OPENBSD__ 1
 EOF
 
     cat >> confdefs.h <<\EOF
-#define __OPENBSD__ 1
+#define __BSD__ 1
 EOF
 
     DEFAULT_DEFAULT_wxUSE_GTK=1
@@ -1252,11 +1255,11 @@ EOF
     USE_BSD=1
     USE_NETBSD=1
     cat >> confdefs.h <<\EOF
-#define __FREEBSD__ 1
+#define __NETBSD__ 1
 EOF
 
     cat >> confdefs.h <<\EOF
-#define __NETBSD__ 1
+#define __BSD__ 1
 EOF
 
     DEFAULT_DEFAULT_wxUSE_GTK=1
@@ -1305,7 +1308,7 @@ EOF
     USE_AIX=1
     USE_SYSV=1
     USE_SVR4=1
-            SO_SUFFIX=a
+                        SO_SUFFIX=a
     cat >> confdefs.h <<\EOF
 #define __AIX__ 1
 EOF
@@ -1648,8 +1651,8 @@ else
   DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=yes
   DEFAULT_wxUSE_PRINTING_ARCHITECTURE=yes
 
-  DEFAULT_wxUSE_PROLOGIO=yes
-  DEFAULT_wxUSE_RESOURCES=yes
+  DEFAULT_wxUSE_PROLOGIO=no
+  DEFAULT_wxUSE_RESOURCES=no
   DEFAULT_wxUSE_CONSTRAINTS=yes
   DEFAULT_wxUSE_IPC=yes
   DEFAULT_wxUSE_HELP=yes
@@ -1759,7 +1762,7 @@ done
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-gui""... $ac_c" 1>&6
-echo "configure:1763: checking for --${enablestring:-enable}-gui" >&5
+echo "configure:1766: checking for --${enablestring:-enable}-gui" >&5
           no_cache=0
           # Check whether --enable-gui or --disable-gui was given.
 if test "${enable_gui+set}" = set; then
@@ -1802,7 +1805,7 @@ if test "$wxUSE_GUI" = "yes"; then
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-universal""... $ac_c" 1>&6
-echo "configure:1806: checking for --${enablestring:-enable}-universal" >&5
+echo "configure:1809: checking for --${enablestring:-enable}-universal" >&5
           no_cache=0
           # Check whether --enable-universal or --disable-universal was given.
 if test "${enable_universal+set}" = set; then
@@ -1896,7 +1899,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-nanox""... $ac_c" 1>&6
-echo "configure:1900: checking for --${enablestring:-enable}-nanox" >&5
+echo "configure:1903: checking for --${enablestring:-enable}-nanox" >&5
           no_cache=0
           # Check whether --enable-nanox or --disable-nanox was given.
 if test "${enable_nanox+set}" = set; then
@@ -1937,7 +1940,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-gtk2""... $ac_c" 1>&6
-echo "configure:1941: checking for --${enablestring:-enable}-gtk2" >&5
+echo "configure:1944: checking for --${enablestring:-enable}-gtk2" >&5
           no_cache=0
           # Check whether --enable-gtk2 or --disable-gtk2 was given.
 if test "${enable_gtk2+set}" = set; then
@@ -1977,7 +1980,7 @@ fi
 
 
           echo $ac_n "checking for --with-libpng""... $ac_c" 1>&6
-echo "configure:1981: checking for --with-libpng" >&5
+echo "configure:1984: checking for --with-libpng" >&5
           no_cache=0
           # Check whether --with-libpng or --without-libpng was given.
 if test "${with_libpng+set}" = set; then
@@ -2028,7 +2031,7 @@ fi
         
 
           echo $ac_n "checking for --with-libjpeg""... $ac_c" 1>&6
-echo "configure:2032: checking for --with-libjpeg" >&5
+echo "configure:2035: checking for --with-libjpeg" >&5
           no_cache=0
           # Check whether --with-libjpeg or --without-libjpeg was given.
 if test "${with_libjpeg+set}" = set; then
@@ -2079,7 +2082,7 @@ fi
         
 
           echo $ac_n "checking for --with-libtiff""... $ac_c" 1>&6
-echo "configure:2083: checking for --with-libtiff" >&5
+echo "configure:2086: checking for --with-libtiff" >&5
           no_cache=0
           # Check whether --with-libtiff or --without-libtiff was given.
 if test "${with_libtiff+set}" = set; then
@@ -2130,7 +2133,7 @@ fi
         
 
           echo $ac_n "checking for --with-opengl""... $ac_c" 1>&6
-echo "configure:2134: checking for --with-opengl" >&5
+echo "configure:2137: checking for --with-opengl" >&5
           no_cache=0
           # Check whether --with-opengl or --without-opengl was given.
 if test "${with_opengl+set}" = set; then
@@ -2172,7 +2175,7 @@ fi
 
 
           echo $ac_n "checking for --with-dmalloc""... $ac_c" 1>&6
-echo "configure:2176: checking for --with-dmalloc" >&5
+echo "configure:2179: checking for --with-dmalloc" >&5
           no_cache=0
           # Check whether --with-dmalloc or --without-dmalloc was given.
 if test "${with_dmalloc+set}" = set; then
@@ -2211,7 +2214,7 @@ fi
         
 
           echo $ac_n "checking for --with-regex""... $ac_c" 1>&6
-echo "configure:2215: checking for --with-regex" >&5
+echo "configure:2218: checking for --with-regex" >&5
           no_cache=0
           # Check whether --with-regex or --without-regex was given.
 if test "${with_regex+set}" = set; then
@@ -2262,7 +2265,7 @@ fi
         
 
           echo $ac_n "checking for --with-zlib""... $ac_c" 1>&6
-echo "configure:2266: checking for --with-zlib" >&5
+echo "configure:2269: checking for --with-zlib" >&5
           no_cache=0
           # Check whether --with-zlib or --without-zlib was given.
 if test "${with_zlib+set}" = set; then
@@ -2313,7 +2316,7 @@ fi
         
 
           echo $ac_n "checking for --with-odbc""... $ac_c" 1>&6
-echo "configure:2317: checking for --with-odbc" >&5
+echo "configure:2320: checking for --with-odbc" >&5
           no_cache=0
           # Check whether --with-odbc or --without-odbc was given.
 if test "${with_odbc+set}" = set; then
@@ -2355,7 +2358,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-shared""... $ac_c" 1>&6
-echo "configure:2359: checking for --${enablestring:-enable}-shared" >&5
+echo "configure:2362: checking for --${enablestring:-enable}-shared" >&5
           no_cache=0
           # Check whether --enable-shared or --disable-shared was given.
 if test "${enable_shared+set}" = set; then
@@ -2395,7 +2398,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-soname""... $ac_c" 1>&6
-echo "configure:2399: checking for --${enablestring:-enable}-soname" >&5
+echo "configure:2402: checking for --${enablestring:-enable}-soname" >&5
           no_cache=0
           # Check whether --enable-soname or --disable-soname was given.
 if test "${enable_soname+set}" = set; then
@@ -2435,7 +2438,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-optimise""... $ac_c" 1>&6
-echo "configure:2439: checking for --${enablestring:-enable}-optimise" >&5
+echo "configure:2442: checking for --${enablestring:-enable}-optimise" >&5
           no_cache=0
           # Check whether --enable-optimise or --disable-optimise was given.
 if test "${enable_optimise+set}" = set; then
@@ -2475,7 +2478,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-debug""... $ac_c" 1>&6
-echo "configure:2479: checking for --${enablestring:-enable}-debug" >&5
+echo "configure:2482: checking for --${enablestring:-enable}-debug" >&5
           no_cache=0
           # Check whether --enable-debug or --disable-debug was given.
 if test "${enable_debug+set}" = set; then
@@ -2516,7 +2519,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-precomp""... $ac_c" 1>&6
-echo "configure:2520: checking for --${enablestring:-enable}-precomp" >&5
+echo "configure:2523: checking for --${enablestring:-enable}-precomp" >&5
           no_cache=0
           # Check whether --enable-precomp or --disable-precomp was given.
 if test "${enable_precomp+set}" = set; then
@@ -2565,7 +2568,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-debug_flag""... $ac_c" 1>&6
-echo "configure:2569: checking for --${enablestring:-enable}-debug_flag" >&5
+echo "configure:2572: checking for --${enablestring:-enable}-debug_flag" >&5
           no_cache=0
           # Check whether --enable-debug_flag or --disable-debug_flag was given.
 if test "${enable_debug_flag+set}" = set; then
@@ -2605,7 +2608,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-debug_info""... $ac_c" 1>&6
-echo "configure:2609: checking for --${enablestring:-enable}-debug_info" >&5
+echo "configure:2612: checking for --${enablestring:-enable}-debug_info" >&5
           no_cache=0
           # Check whether --enable-debug_info or --disable-debug_info was given.
 if test "${enable_debug_info+set}" = set; then
@@ -2645,7 +2648,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-debug_gdb""... $ac_c" 1>&6
-echo "configure:2649: checking for --${enablestring:-enable}-debug_gdb" >&5
+echo "configure:2652: checking for --${enablestring:-enable}-debug_gdb" >&5
           no_cache=0
           # Check whether --enable-debug_gdb or --disable-debug_gdb was given.
 if test "${enable_debug_gdb+set}" = set; then
@@ -2685,7 +2688,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-debug_cntxt""... $ac_c" 1>&6
-echo "configure:2689: checking for --${enablestring:-enable}-debug_cntxt" >&5
+echo "configure:2692: checking for --${enablestring:-enable}-debug_cntxt" >&5
           no_cache=0
           # Check whether --enable-debug_cntxt or --disable-debug_cntxt was given.
 if test "${enable_debug_cntxt+set}" = set; then
@@ -2725,7 +2728,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-mem_tracing""... $ac_c" 1>&6
-echo "configure:2729: checking for --${enablestring:-enable}-mem_tracing" >&5
+echo "configure:2732: checking for --${enablestring:-enable}-mem_tracing" >&5
           no_cache=0
           # Check whether --enable-mem_tracing or --disable-mem_tracing was given.
 if test "${enable_mem_tracing+set}" = set; then
@@ -2765,7 +2768,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-profile""... $ac_c" 1>&6
-echo "configure:2769: checking for --${enablestring:-enable}-profile" >&5
+echo "configure:2772: checking for --${enablestring:-enable}-profile" >&5
           no_cache=0
           # Check whether --enable-profile or --disable-profile was given.
 if test "${enable_profile+set}" = set; then
@@ -2805,7 +2808,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-no_rtti""... $ac_c" 1>&6
-echo "configure:2809: checking for --${enablestring:-enable}-no_rtti" >&5
+echo "configure:2812: checking for --${enablestring:-enable}-no_rtti" >&5
           no_cache=0
           # Check whether --enable-no_rtti or --disable-no_rtti was given.
 if test "${enable_no_rtti+set}" = set; then
@@ -2845,7 +2848,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-no_exceptions""... $ac_c" 1>&6
-echo "configure:2849: checking for --${enablestring:-enable}-no_exceptions" >&5
+echo "configure:2852: checking for --${enablestring:-enable}-no_exceptions" >&5
           no_cache=0
           # Check whether --enable-no_exceptions or --disable-no_exceptions was given.
 if test "${enable_no_exceptions+set}" = set; then
@@ -2885,7 +2888,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-permissive""... $ac_c" 1>&6
-echo "configure:2889: checking for --${enablestring:-enable}-permissive" >&5
+echo "configure:2892: checking for --${enablestring:-enable}-permissive" >&5
           no_cache=0
           # Check whether --enable-permissive or --disable-permissive was given.
 if test "${enable_permissive+set}" = set; then
@@ -2925,7 +2928,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-no_deps""... $ac_c" 1>&6
-echo "configure:2929: checking for --${enablestring:-enable}-no_deps" >&5
+echo "configure:2932: checking for --${enablestring:-enable}-no_deps" >&5
           no_cache=0
           # Check whether --enable-no_deps or --disable-no_deps was given.
 if test "${enable_no_deps+set}" = set; then
@@ -2966,7 +2969,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-compat20""... $ac_c" 1>&6
-echo "configure:2970: checking for --${enablestring:-enable}-compat20" >&5
+echo "configure:2973: checking for --${enablestring:-enable}-compat20" >&5
           no_cache=0
           # Check whether --enable-compat20 or --disable-compat20 was given.
 if test "${enable_compat20+set}" = set; then
@@ -3006,7 +3009,7 @@ fi
 
 	  enablestring=disable
           echo $ac_n "checking for --${enablestring:-enable}-compat22""... $ac_c" 1>&6
-echo "configure:3010: checking for --${enablestring:-enable}-compat22" >&5
+echo "configure:3013: checking for --${enablestring:-enable}-compat22" >&5
           no_cache=0
           # Check whether --enable-compat22 or --disable-compat22 was given.
 if test "${enable_compat22+set}" = set; then
@@ -3060,7 +3063,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-intl""... $ac_c" 1>&6
-echo "configure:3064: checking for --${enablestring:-enable}-intl" >&5
+echo "configure:3067: checking for --${enablestring:-enable}-intl" >&5
           no_cache=0
           # Check whether --enable-intl or --disable-intl was given.
 if test "${enable_intl+set}" = set; then
@@ -3100,7 +3103,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-config""... $ac_c" 1>&6
-echo "configure:3104: checking for --${enablestring:-enable}-config" >&5
+echo "configure:3107: checking for --${enablestring:-enable}-config" >&5
           no_cache=0
           # Check whether --enable-config or --disable-config was given.
 if test "${enable_config+set}" = set; then
@@ -3141,7 +3144,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-protocols""... $ac_c" 1>&6
-echo "configure:3145: checking for --${enablestring:-enable}-protocols" >&5
+echo "configure:3148: checking for --${enablestring:-enable}-protocols" >&5
           no_cache=0
           # Check whether --enable-protocols or --disable-protocols was given.
 if test "${enable_protocols+set}" = set; then
@@ -3181,7 +3184,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-ftp""... $ac_c" 1>&6
-echo "configure:3185: checking for --${enablestring:-enable}-ftp" >&5
+echo "configure:3188: checking for --${enablestring:-enable}-ftp" >&5
           no_cache=0
           # Check whether --enable-ftp or --disable-ftp was given.
 if test "${enable_ftp+set}" = set; then
@@ -3221,7 +3224,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-http""... $ac_c" 1>&6
-echo "configure:3225: checking for --${enablestring:-enable}-http" >&5
+echo "configure:3228: checking for --${enablestring:-enable}-http" >&5
           no_cache=0
           # Check whether --enable-http or --disable-http was given.
 if test "${enable_http+set}" = set; then
@@ -3261,7 +3264,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-fileproto""... $ac_c" 1>&6
-echo "configure:3265: checking for --${enablestring:-enable}-fileproto" >&5
+echo "configure:3268: checking for --${enablestring:-enable}-fileproto" >&5
           no_cache=0
           # Check whether --enable-fileproto or --disable-fileproto was given.
 if test "${enable_fileproto+set}" = set; then
@@ -3301,7 +3304,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-sockets""... $ac_c" 1>&6
-echo "configure:3305: checking for --${enablestring:-enable}-sockets" >&5
+echo "configure:3308: checking for --${enablestring:-enable}-sockets" >&5
           no_cache=0
           # Check whether --enable-sockets or --disable-sockets was given.
 if test "${enable_sockets+set}" = set; then
@@ -3341,7 +3344,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-ole""... $ac_c" 1>&6
-echo "configure:3345: checking for --${enablestring:-enable}-ole" >&5
+echo "configure:3348: checking for --${enablestring:-enable}-ole" >&5
           no_cache=0
           # Check whether --enable-ole or --disable-ole was given.
 if test "${enable_ole+set}" = set; then
@@ -3381,7 +3384,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-dataobj""... $ac_c" 1>&6
-echo "configure:3385: checking for --${enablestring:-enable}-dataobj" >&5
+echo "configure:3388: checking for --${enablestring:-enable}-dataobj" >&5
           no_cache=0
           # Check whether --enable-dataobj or --disable-dataobj was given.
 if test "${enable_dataobj+set}" = set; then
@@ -3422,7 +3425,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-ipc""... $ac_c" 1>&6
-echo "configure:3426: checking for --${enablestring:-enable}-ipc" >&5
+echo "configure:3429: checking for --${enablestring:-enable}-ipc" >&5
           no_cache=0
           # Check whether --enable-ipc or --disable-ipc was given.
 if test "${enable_ipc+set}" = set; then
@@ -3463,7 +3466,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-cmdline""... $ac_c" 1>&6
-echo "configure:3467: checking for --${enablestring:-enable}-cmdline" >&5
+echo "configure:3470: checking for --${enablestring:-enable}-cmdline" >&5
           no_cache=0
           # Check whether --enable-cmdline or --disable-cmdline was given.
 if test "${enable_cmdline+set}" = set; then
@@ -3503,7 +3506,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-datetime""... $ac_c" 1>&6
-echo "configure:3507: checking for --${enablestring:-enable}-datetime" >&5
+echo "configure:3510: checking for --${enablestring:-enable}-datetime" >&5
           no_cache=0
           # Check whether --enable-datetime or --disable-datetime was given.
 if test "${enable_datetime+set}" = set; then
@@ -3543,7 +3546,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-timedate""... $ac_c" 1>&6
-echo "configure:3547: checking for --${enablestring:-enable}-timedate" >&5
+echo "configure:3550: checking for --${enablestring:-enable}-timedate" >&5
           no_cache=0
           # Check whether --enable-timedate or --disable-timedate was given.
 if test "${enable_timedate+set}" = set; then
@@ -3583,7 +3586,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-stopwatch""... $ac_c" 1>&6
-echo "configure:3587: checking for --${enablestring:-enable}-stopwatch" >&5
+echo "configure:3590: checking for --${enablestring:-enable}-stopwatch" >&5
           no_cache=0
           # Check whether --enable-stopwatch or --disable-stopwatch was given.
 if test "${enable_stopwatch+set}" = set; then
@@ -3623,7 +3626,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-dialupman""... $ac_c" 1>&6
-echo "configure:3627: checking for --${enablestring:-enable}-dialupman" >&5
+echo "configure:3630: checking for --${enablestring:-enable}-dialupman" >&5
           no_cache=0
           # Check whether --enable-dialupman or --disable-dialupman was given.
 if test "${enable_dialupman+set}" = set; then
@@ -3663,7 +3666,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-apple_ieee""... $ac_c" 1>&6
-echo "configure:3667: checking for --${enablestring:-enable}-apple_ieee" >&5
+echo "configure:3670: checking for --${enablestring:-enable}-apple_ieee" >&5
           no_cache=0
           # Check whether --enable-apple_ieee or --disable-apple_ieee was given.
 if test "${enable_apple_ieee+set}" = set; then
@@ -3703,7 +3706,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-timer""... $ac_c" 1>&6
-echo "configure:3707: checking for --${enablestring:-enable}-timer" >&5
+echo "configure:3710: checking for --${enablestring:-enable}-timer" >&5
           no_cache=0
           # Check whether --enable-timer or --disable-timer was given.
 if test "${enable_timer+set}" = set; then
@@ -3743,7 +3746,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-wave""... $ac_c" 1>&6
-echo "configure:3747: checking for --${enablestring:-enable}-wave" >&5
+echo "configure:3750: checking for --${enablestring:-enable}-wave" >&5
           no_cache=0
           # Check whether --enable-wave or --disable-wave was given.
 if test "${enable_wave+set}" = set; then
@@ -3783,7 +3786,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-fraction""... $ac_c" 1>&6
-echo "configure:3787: checking for --${enablestring:-enable}-fraction" >&5
+echo "configure:3790: checking for --${enablestring:-enable}-fraction" >&5
           no_cache=0
           # Check whether --enable-fraction or --disable-fraction was given.
 if test "${enable_fraction+set}" = set; then
@@ -3823,7 +3826,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-dynlib""... $ac_c" 1>&6
-echo "configure:3827: checking for --${enablestring:-enable}-dynlib" >&5
+echo "configure:3830: checking for --${enablestring:-enable}-dynlib" >&5
           no_cache=0
           # Check whether --enable-dynlib or --disable-dynlib was given.
 if test "${enable_dynlib+set}" = set; then
@@ -3863,7 +3866,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-dynamicloader""... $ac_c" 1>&6
-echo "configure:3867: checking for --${enablestring:-enable}-dynamicloader" >&5
+echo "configure:3870: checking for --${enablestring:-enable}-dynamicloader" >&5
           no_cache=0
           # Check whether --enable-dynamicloader or --disable-dynamicloader was given.
 if test "${enable_dynamicloader+set}" = set; then
@@ -3903,7 +3906,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-longlong""... $ac_c" 1>&6
-echo "configure:3907: checking for --${enablestring:-enable}-longlong" >&5
+echo "configure:3910: checking for --${enablestring:-enable}-longlong" >&5
           no_cache=0
           # Check whether --enable-longlong or --disable-longlong was given.
 if test "${enable_longlong+set}" = set; then
@@ -3943,7 +3946,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-geometry""... $ac_c" 1>&6
-echo "configure:3947: checking for --${enablestring:-enable}-geometry" >&5
+echo "configure:3950: checking for --${enablestring:-enable}-geometry" >&5
           no_cache=0
           # Check whether --enable-geometry or --disable-geometry was given.
 if test "${enable_geometry+set}" = set; then
@@ -3983,7 +3986,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-log""... $ac_c" 1>&6
-echo "configure:3987: checking for --${enablestring:-enable}-log" >&5
+echo "configure:3990: checking for --${enablestring:-enable}-log" >&5
           no_cache=0
           # Check whether --enable-log or --disable-log was given.
 if test "${enable_log+set}" = set; then
@@ -4023,7 +4026,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-streams""... $ac_c" 1>&6
-echo "configure:4027: checking for --${enablestring:-enable}-streams" >&5
+echo "configure:4030: checking for --${enablestring:-enable}-streams" >&5
           no_cache=0
           # Check whether --enable-streams or --disable-streams was given.
 if test "${enable_streams+set}" = set; then
@@ -4063,7 +4066,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-file""... $ac_c" 1>&6
-echo "configure:4067: checking for --${enablestring:-enable}-file" >&5
+echo "configure:4070: checking for --${enablestring:-enable}-file" >&5
           no_cache=0
           # Check whether --enable-file or --disable-file was given.
 if test "${enable_file+set}" = set; then
@@ -4103,7 +4106,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-ffile""... $ac_c" 1>&6
-echo "configure:4107: checking for --${enablestring:-enable}-ffile" >&5
+echo "configure:4110: checking for --${enablestring:-enable}-ffile" >&5
           no_cache=0
           # Check whether --enable-ffile or --disable-ffile was given.
 if test "${enable_ffile+set}" = set; then
@@ -4143,7 +4146,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-textbuf""... $ac_c" 1>&6
-echo "configure:4147: checking for --${enablestring:-enable}-textbuf" >&5
+echo "configure:4150: checking for --${enablestring:-enable}-textbuf" >&5
           no_cache=0
           # Check whether --enable-textbuf or --disable-textbuf was given.
 if test "${enable_textbuf+set}" = set; then
@@ -4183,7 +4186,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-textfile""... $ac_c" 1>&6
-echo "configure:4187: checking for --${enablestring:-enable}-textfile" >&5
+echo "configure:4190: checking for --${enablestring:-enable}-textfile" >&5
           no_cache=0
           # Check whether --enable-textfile or --disable-textfile was given.
 if test "${enable_textfile+set}" = set; then
@@ -4223,7 +4226,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-fontmap""... $ac_c" 1>&6
-echo "configure:4227: checking for --${enablestring:-enable}-fontmap" >&5
+echo "configure:4230: checking for --${enablestring:-enable}-fontmap" >&5
           no_cache=0
           # Check whether --enable-fontmap or --disable-fontmap was given.
 if test "${enable_fontmap+set}" = set; then
@@ -4263,7 +4266,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-unicode""... $ac_c" 1>&6
-echo "configure:4267: checking for --${enablestring:-enable}-unicode" >&5
+echo "configure:4270: checking for --${enablestring:-enable}-unicode" >&5
           no_cache=0
           # Check whether --enable-unicode or --disable-unicode was given.
 if test "${enable_unicode+set}" = set; then
@@ -4303,7 +4306,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-mslu""... $ac_c" 1>&6
-echo "configure:4307: checking for --${enablestring:-enable}-mslu" >&5
+echo "configure:4310: checking for --${enablestring:-enable}-mslu" >&5
           no_cache=0
           # Check whether --enable-mslu or --disable-mslu was given.
 if test "${enable_mslu+set}" = set; then
@@ -4343,7 +4346,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-wxprintfv""... $ac_c" 1>&6
-echo "configure:4347: checking for --${enablestring:-enable}-wxprintfv" >&5
+echo "configure:4350: checking for --${enablestring:-enable}-wxprintfv" >&5
           no_cache=0
           # Check whether --enable-wxprintfv or --disable-wxprintfv was given.
 if test "${enable_wxprintfv+set}" = set; then
@@ -4383,7 +4386,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-std_iostreams""... $ac_c" 1>&6
-echo "configure:4387: checking for --${enablestring:-enable}-std_iostreams" >&5
+echo "configure:4390: checking for --${enablestring:-enable}-std_iostreams" >&5
           no_cache=0
           # Check whether --enable-std_iostreams or --disable-std_iostreams was given.
 if test "${enable_std_iostreams+set}" = set; then
@@ -4423,7 +4426,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-filesystem""... $ac_c" 1>&6
-echo "configure:4427: checking for --${enablestring:-enable}-filesystem" >&5
+echo "configure:4430: checking for --${enablestring:-enable}-filesystem" >&5
           no_cache=0
           # Check whether --enable-filesystem or --disable-filesystem was given.
 if test "${enable_filesystem+set}" = set; then
@@ -4463,7 +4466,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-fs_inet""... $ac_c" 1>&6
-echo "configure:4467: checking for --${enablestring:-enable}-fs_inet" >&5
+echo "configure:4470: checking for --${enablestring:-enable}-fs_inet" >&5
           no_cache=0
           # Check whether --enable-fs_inet or --disable-fs_inet was given.
 if test "${enable_fs_inet+set}" = set; then
@@ -4503,7 +4506,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-fs_zip""... $ac_c" 1>&6
-echo "configure:4507: checking for --${enablestring:-enable}-fs_zip" >&5
+echo "configure:4510: checking for --${enablestring:-enable}-fs_zip" >&5
           no_cache=0
           # Check whether --enable-fs_zip or --disable-fs_zip was given.
 if test "${enable_fs_zip+set}" = set; then
@@ -4543,7 +4546,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-zipstream""... $ac_c" 1>&6
-echo "configure:4547: checking for --${enablestring:-enable}-zipstream" >&5
+echo "configure:4550: checking for --${enablestring:-enable}-zipstream" >&5
           no_cache=0
           # Check whether --enable-zipstream or --disable-zipstream was given.
 if test "${enable_zipstream+set}" = set; then
@@ -4584,7 +4587,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-catch_segvs""... $ac_c" 1>&6
-echo "configure:4588: checking for --${enablestring:-enable}-catch_segvs" >&5
+echo "configure:4591: checking for --${enablestring:-enable}-catch_segvs" >&5
           no_cache=0
           # Check whether --enable-catch_segvs or --disable-catch_segvs was given.
 if test "${enable_catch_segvs+set}" = set; then
@@ -4624,7 +4627,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-snglinst""... $ac_c" 1>&6
-echo "configure:4628: checking for --${enablestring:-enable}-snglinst" >&5
+echo "configure:4631: checking for --${enablestring:-enable}-snglinst" >&5
           no_cache=0
           # Check whether --enable-snglinst or --disable-snglinst was given.
 if test "${enable_snglinst+set}" = set; then
@@ -4665,7 +4668,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-mimetype""... $ac_c" 1>&6
-echo "configure:4669: checking for --${enablestring:-enable}-mimetype" >&5
+echo "configure:4672: checking for --${enablestring:-enable}-mimetype" >&5
           no_cache=0
           # Check whether --enable-mimetype or --disable-mimetype was given.
 if test "${enable_mimetype+set}" = set; then
@@ -4705,7 +4708,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-system_options""... $ac_c" 1>&6
-echo "configure:4709: checking for --${enablestring:-enable}-system_options" >&5
+echo "configure:4712: checking for --${enablestring:-enable}-system_options" >&5
           no_cache=0
           # Check whether --enable-system_options or --disable-system_options was given.
 if test "${enable_system_options+set}" = set; then
@@ -4746,7 +4749,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-url""... $ac_c" 1>&6
-echo "configure:4750: checking for --${enablestring:-enable}-url" >&5
+echo "configure:4753: checking for --${enablestring:-enable}-url" >&5
           no_cache=0
           # Check whether --enable-url or --disable-url was given.
 if test "${enable_url+set}" = set; then
@@ -4786,7 +4789,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-protocol""... $ac_c" 1>&6
-echo "configure:4790: checking for --${enablestring:-enable}-protocol" >&5
+echo "configure:4793: checking for --${enablestring:-enable}-protocol" >&5
           no_cache=0
           # Check whether --enable-protocol or --disable-protocol was given.
 if test "${enable_protocol+set}" = set; then
@@ -4826,7 +4829,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-protocol_http""... $ac_c" 1>&6
-echo "configure:4830: checking for --${enablestring:-enable}-protocol_http" >&5
+echo "configure:4833: checking for --${enablestring:-enable}-protocol_http" >&5
           no_cache=0
           # Check whether --enable-protocol_http or --disable-protocol_http was given.
 if test "${enable_protocol_http+set}" = set; then
@@ -4866,7 +4869,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-protocol_ftp""... $ac_c" 1>&6
-echo "configure:4870: checking for --${enablestring:-enable}-protocol_ftp" >&5
+echo "configure:4873: checking for --${enablestring:-enable}-protocol_ftp" >&5
           no_cache=0
           # Check whether --enable-protocol_ftp or --disable-protocol_ftp was given.
 if test "${enable_protocol_ftp+set}" = set; then
@@ -4906,7 +4909,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-protocol_file""... $ac_c" 1>&6
-echo "configure:4910: checking for --${enablestring:-enable}-protocol_file" >&5
+echo "configure:4913: checking for --${enablestring:-enable}-protocol_file" >&5
           no_cache=0
           # Check whether --enable-protocol_file or --disable-protocol_file was given.
 if test "${enable_protocol_file+set}" = set; then
@@ -4949,7 +4952,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-threads""... $ac_c" 1>&6
-echo "configure:4953: checking for --${enablestring:-enable}-threads" >&5
+echo "configure:4956: checking for --${enablestring:-enable}-threads" >&5
           no_cache=0
           # Check whether --enable-threads or --disable-threads was given.
 if test "${enable_threads+set}" = set; then
@@ -4993,7 +4996,7 @@ if test "$wxUSE_GUI" = "yes"; then
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-docview""... $ac_c" 1>&6
-echo "configure:4997: checking for --${enablestring:-enable}-docview" >&5
+echo "configure:5000: checking for --${enablestring:-enable}-docview" >&5
           no_cache=0
           # Check whether --enable-docview or --disable-docview was given.
 if test "${enable_docview+set}" = set; then
@@ -5033,7 +5036,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-help""... $ac_c" 1>&6
-echo "configure:5037: checking for --${enablestring:-enable}-help" >&5
+echo "configure:5040: checking for --${enablestring:-enable}-help" >&5
           no_cache=0
           # Check whether --enable-help or --disable-help was given.
 if test "${enable_help+set}" = set; then
@@ -5073,7 +5076,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-mshtmlhelp""... $ac_c" 1>&6
-echo "configure:5077: checking for --${enablestring:-enable}-mshtmlhelp" >&5
+echo "configure:5080: checking for --${enablestring:-enable}-mshtmlhelp" >&5
           no_cache=0
           # Check whether --enable-mshtmlhelp or --disable-mshtmlhelp was given.
 if test "${enable_mshtmlhelp+set}" = set; then
@@ -5113,7 +5116,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-html""... $ac_c" 1>&6
-echo "configure:5117: checking for --${enablestring:-enable}-html" >&5
+echo "configure:5120: checking for --${enablestring:-enable}-html" >&5
           no_cache=0
           # Check whether --enable-html or --disable-html was given.
 if test "${enable_html+set}" = set; then
@@ -5153,7 +5156,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-htmlhelp""... $ac_c" 1>&6
-echo "configure:5157: checking for --${enablestring:-enable}-htmlhelp" >&5
+echo "configure:5160: checking for --${enablestring:-enable}-htmlhelp" >&5
           no_cache=0
           # Check whether --enable-htmlhelp or --disable-htmlhelp was given.
 if test "${enable_htmlhelp+set}" = set; then
@@ -5193,7 +5196,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-constraints""... $ac_c" 1>&6
-echo "configure:5197: checking for --${enablestring:-enable}-constraints" >&5
+echo "configure:5200: checking for --${enablestring:-enable}-constraints" >&5
           no_cache=0
           # Check whether --enable-constraints or --disable-constraints was given.
 if test "${enable_constraints+set}" = set; then
@@ -5233,7 +5236,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-printarch""... $ac_c" 1>&6
-echo "configure:5237: checking for --${enablestring:-enable}-printarch" >&5
+echo "configure:5240: checking for --${enablestring:-enable}-printarch" >&5
           no_cache=0
           # Check whether --enable-printarch or --disable-printarch was given.
 if test "${enable_printarch+set}" = set; then
@@ -5273,7 +5276,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-mdi""... $ac_c" 1>&6
-echo "configure:5277: checking for --${enablestring:-enable}-mdi" >&5
+echo "configure:5280: checking for --${enablestring:-enable}-mdi" >&5
           no_cache=0
           # Check whether --enable-mdi or --disable-mdi was given.
 if test "${enable_mdi+set}" = set; then
@@ -5313,7 +5316,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-loggui""... $ac_c" 1>&6
-echo "configure:5317: checking for --${enablestring:-enable}-loggui" >&5
+echo "configure:5320: checking for --${enablestring:-enable}-loggui" >&5
           no_cache=0
           # Check whether --enable-loggui or --disable-loggui was given.
 if test "${enable_loggui+set}" = set; then
@@ -5353,7 +5356,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-logwin""... $ac_c" 1>&6
-echo "configure:5357: checking for --${enablestring:-enable}-logwin" >&5
+echo "configure:5360: checking for --${enablestring:-enable}-logwin" >&5
           no_cache=0
           # Check whether --enable-logwin or --disable-logwin was given.
 if test "${enable_logwin+set}" = set; then
@@ -5393,7 +5396,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-logdialog""... $ac_c" 1>&6
-echo "configure:5397: checking for --${enablestring:-enable}-logdialog" >&5
+echo "configure:5400: checking for --${enablestring:-enable}-logdialog" >&5
           no_cache=0
           # Check whether --enable-logdialog or --disable-logdialog was given.
 if test "${enable_logdialog+set}" = set; then
@@ -5434,7 +5437,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-postscript""... $ac_c" 1>&6
-echo "configure:5438: checking for --${enablestring:-enable}-postscript" >&5
+echo "configure:5441: checking for --${enablestring:-enable}-postscript" >&5
           no_cache=0
           # Check whether --enable-postscript or --disable-postscript was given.
 if test "${enable_postscript+set}" = set; then
@@ -5477,7 +5480,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-prologio""... $ac_c" 1>&6
-echo "configure:5481: checking for --${enablestring:-enable}-prologio" >&5
+echo "configure:5484: checking for --${enablestring:-enable}-prologio" >&5
           no_cache=0
           # Check whether --enable-prologio or --disable-prologio was given.
 if test "${enable_prologio+set}" = set; then
@@ -5517,7 +5520,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-resources""... $ac_c" 1>&6
-echo "configure:5521: checking for --${enablestring:-enable}-resources" >&5
+echo "configure:5524: checking for --${enablestring:-enable}-resources" >&5
           no_cache=0
           # Check whether --enable-resources or --disable-resources was given.
 if test "${enable_resources+set}" = set; then
@@ -5558,7 +5561,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-xresources""... $ac_c" 1>&6
-echo "configure:5562: checking for --${enablestring:-enable}-xresources" >&5
+echo "configure:5565: checking for --${enablestring:-enable}-xresources" >&5
           no_cache=0
           # Check whether --enable-xresources or --disable-xresources was given.
 if test "${enable_xresources+set}" = set; then
@@ -5600,7 +5603,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-clipboard""... $ac_c" 1>&6
-echo "configure:5604: checking for --${enablestring:-enable}-clipboard" >&5
+echo "configure:5607: checking for --${enablestring:-enable}-clipboard" >&5
           no_cache=0
           # Check whether --enable-clipboard or --disable-clipboard was given.
 if test "${enable_clipboard+set}" = set; then
@@ -5640,7 +5643,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-dnd""... $ac_c" 1>&6
-echo "configure:5644: checking for --${enablestring:-enable}-dnd" >&5
+echo "configure:5647: checking for --${enablestring:-enable}-dnd" >&5
           no_cache=0
           # Check whether --enable-dnd or --disable-dnd was given.
 if test "${enable_dnd+set}" = set; then
@@ -5680,7 +5683,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-metafile""... $ac_c" 1>&6
-echo "configure:5684: checking for --${enablestring:-enable}-metafile" >&5
+echo "configure:5687: checking for --${enablestring:-enable}-metafile" >&5
           no_cache=0
           # Check whether --enable-metafile or --disable-metafile was given.
 if test "${enable_metafile+set}" = set; then
@@ -5721,7 +5724,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-treelayout""... $ac_c" 1>&6
-echo "configure:5725: checking for --${enablestring:-enable}-treelayout" >&5
+echo "configure:5728: checking for --${enablestring:-enable}-treelayout" >&5
           no_cache=0
           # Check whether --enable-treelayout or --disable-treelayout was given.
 if test "${enable_treelayout+set}" = set; then
@@ -5763,7 +5766,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-controls""... $ac_c" 1>&6
-echo "configure:5767: checking for --${enablestring:-enable}-controls" >&5
+echo "configure:5770: checking for --${enablestring:-enable}-controls" >&5
           no_cache=0
           # Check whether --enable-controls or --disable-controls was given.
 if test "${enable_controls+set}" = set; then
@@ -5884,7 +5887,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-accel""... $ac_c" 1>&6
-echo "configure:5888: checking for --${enablestring:-enable}-accel" >&5
+echo "configure:5891: checking for --${enablestring:-enable}-accel" >&5
           no_cache=0
           # Check whether --enable-accel or --disable-accel was given.
 if test "${enable_accel+set}" = set; then
@@ -5924,7 +5927,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-button""... $ac_c" 1>&6
-echo "configure:5928: checking for --${enablestring:-enable}-button" >&5
+echo "configure:5931: checking for --${enablestring:-enable}-button" >&5
           no_cache=0
           # Check whether --enable-button or --disable-button was given.
 if test "${enable_button+set}" = set; then
@@ -5964,7 +5967,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-bmpbutton""... $ac_c" 1>&6
-echo "configure:5968: checking for --${enablestring:-enable}-bmpbutton" >&5
+echo "configure:5971: checking for --${enablestring:-enable}-bmpbutton" >&5
           no_cache=0
           # Check whether --enable-bmpbutton or --disable-bmpbutton was given.
 if test "${enable_bmpbutton+set}" = set; then
@@ -6004,7 +6007,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-calendar""... $ac_c" 1>&6
-echo "configure:6008: checking for --${enablestring:-enable}-calendar" >&5
+echo "configure:6011: checking for --${enablestring:-enable}-calendar" >&5
           no_cache=0
           # Check whether --enable-calendar or --disable-calendar was given.
 if test "${enable_calendar+set}" = set; then
@@ -6044,7 +6047,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-caret""... $ac_c" 1>&6
-echo "configure:6048: checking for --${enablestring:-enable}-caret" >&5
+echo "configure:6051: checking for --${enablestring:-enable}-caret" >&5
           no_cache=0
           # Check whether --enable-caret or --disable-caret was given.
 if test "${enable_caret+set}" = set; then
@@ -6084,7 +6087,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-checkbox""... $ac_c" 1>&6
-echo "configure:6088: checking for --${enablestring:-enable}-checkbox" >&5
+echo "configure:6091: checking for --${enablestring:-enable}-checkbox" >&5
           no_cache=0
           # Check whether --enable-checkbox or --disable-checkbox was given.
 if test "${enable_checkbox+set}" = set; then
@@ -6124,7 +6127,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-checklst""... $ac_c" 1>&6
-echo "configure:6128: checking for --${enablestring:-enable}-checklst" >&5
+echo "configure:6131: checking for --${enablestring:-enable}-checklst" >&5
           no_cache=0
           # Check whether --enable-checklst or --disable-checklst was given.
 if test "${enable_checklst+set}" = set; then
@@ -6164,7 +6167,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-choice""... $ac_c" 1>&6
-echo "configure:6168: checking for --${enablestring:-enable}-choice" >&5
+echo "configure:6171: checking for --${enablestring:-enable}-choice" >&5
           no_cache=0
           # Check whether --enable-choice or --disable-choice was given.
 if test "${enable_choice+set}" = set; then
@@ -6204,7 +6207,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-combobox""... $ac_c" 1>&6
-echo "configure:6208: checking for --${enablestring:-enable}-combobox" >&5
+echo "configure:6211: checking for --${enablestring:-enable}-combobox" >&5
           no_cache=0
           # Check whether --enable-combobox or --disable-combobox was given.
 if test "${enable_combobox+set}" = set; then
@@ -6244,7 +6247,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-gauge""... $ac_c" 1>&6
-echo "configure:6248: checking for --${enablestring:-enable}-gauge" >&5
+echo "configure:6251: checking for --${enablestring:-enable}-gauge" >&5
           no_cache=0
           # Check whether --enable-gauge or --disable-gauge was given.
 if test "${enable_gauge+set}" = set; then
@@ -6284,7 +6287,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-grid""... $ac_c" 1>&6
-echo "configure:6288: checking for --${enablestring:-enable}-grid" >&5
+echo "configure:6291: checking for --${enablestring:-enable}-grid" >&5
           no_cache=0
           # Check whether --enable-grid or --disable-grid was given.
 if test "${enable_grid+set}" = set; then
@@ -6324,7 +6327,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-newgrid""... $ac_c" 1>&6
-echo "configure:6328: checking for --${enablestring:-enable}-newgrid" >&5
+echo "configure:6331: checking for --${enablestring:-enable}-newgrid" >&5
           no_cache=0
           # Check whether --enable-newgrid or --disable-newgrid was given.
 if test "${enable_newgrid+set}" = set; then
@@ -6364,7 +6367,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-imaglist""... $ac_c" 1>&6
-echo "configure:6368: checking for --${enablestring:-enable}-imaglist" >&5
+echo "configure:6371: checking for --${enablestring:-enable}-imaglist" >&5
           no_cache=0
           # Check whether --enable-imaglist or --disable-imaglist was given.
 if test "${enable_imaglist+set}" = set; then
@@ -6404,7 +6407,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-listbox""... $ac_c" 1>&6
-echo "configure:6408: checking for --${enablestring:-enable}-listbox" >&5
+echo "configure:6411: checking for --${enablestring:-enable}-listbox" >&5
           no_cache=0
           # Check whether --enable-listbox or --disable-listbox was given.
 if test "${enable_listbox+set}" = set; then
@@ -6444,7 +6447,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-listctrl""... $ac_c" 1>&6
-echo "configure:6448: checking for --${enablestring:-enable}-listctrl" >&5
+echo "configure:6451: checking for --${enablestring:-enable}-listctrl" >&5
           no_cache=0
           # Check whether --enable-listctrl or --disable-listctrl was given.
 if test "${enable_listctrl+set}" = set; then
@@ -6484,7 +6487,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-notebook""... $ac_c" 1>&6
-echo "configure:6488: checking for --${enablestring:-enable}-notebook" >&5
+echo "configure:6491: checking for --${enablestring:-enable}-notebook" >&5
           no_cache=0
           # Check whether --enable-notebook or --disable-notebook was given.
 if test "${enable_notebook+set}" = set; then
@@ -6524,7 +6527,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-propsheet""... $ac_c" 1>&6
-echo "configure:6528: checking for --${enablestring:-enable}-propsheet" >&5
+echo "configure:6531: checking for --${enablestring:-enable}-propsheet" >&5
           no_cache=0
           # Check whether --enable-propsheet or --disable-propsheet was given.
 if test "${enable_propsheet+set}" = set; then
@@ -6564,7 +6567,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-radiobox""... $ac_c" 1>&6
-echo "configure:6568: checking for --${enablestring:-enable}-radiobox" >&5
+echo "configure:6571: checking for --${enablestring:-enable}-radiobox" >&5
           no_cache=0
           # Check whether --enable-radiobox or --disable-radiobox was given.
 if test "${enable_radiobox+set}" = set; then
@@ -6604,7 +6607,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-radiobtn""... $ac_c" 1>&6
-echo "configure:6608: checking for --${enablestring:-enable}-radiobtn" >&5
+echo "configure:6611: checking for --${enablestring:-enable}-radiobtn" >&5
           no_cache=0
           # Check whether --enable-radiobtn or --disable-radiobtn was given.
 if test "${enable_radiobtn+set}" = set; then
@@ -6644,7 +6647,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-sash""... $ac_c" 1>&6
-echo "configure:6648: checking for --${enablestring:-enable}-sash" >&5
+echo "configure:6651: checking for --${enablestring:-enable}-sash" >&5
           no_cache=0
           # Check whether --enable-sash or --disable-sash was given.
 if test "${enable_sash+set}" = set; then
@@ -6684,7 +6687,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-scrollbar""... $ac_c" 1>&6
-echo "configure:6688: checking for --${enablestring:-enable}-scrollbar" >&5
+echo "configure:6691: checking for --${enablestring:-enable}-scrollbar" >&5
           no_cache=0
           # Check whether --enable-scrollbar or --disable-scrollbar was given.
 if test "${enable_scrollbar+set}" = set; then
@@ -6724,7 +6727,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-slider""... $ac_c" 1>&6
-echo "configure:6728: checking for --${enablestring:-enable}-slider" >&5
+echo "configure:6731: checking for --${enablestring:-enable}-slider" >&5
           no_cache=0
           # Check whether --enable-slider or --disable-slider was given.
 if test "${enable_slider+set}" = set; then
@@ -6764,7 +6767,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-spinbtn""... $ac_c" 1>&6
-echo "configure:6768: checking for --${enablestring:-enable}-spinbtn" >&5
+echo "configure:6771: checking for --${enablestring:-enable}-spinbtn" >&5
           no_cache=0
           # Check whether --enable-spinbtn or --disable-spinbtn was given.
 if test "${enable_spinbtn+set}" = set; then
@@ -6804,7 +6807,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-spinctrl""... $ac_c" 1>&6
-echo "configure:6808: checking for --${enablestring:-enable}-spinctrl" >&5
+echo "configure:6811: checking for --${enablestring:-enable}-spinctrl" >&5
           no_cache=0
           # Check whether --enable-spinctrl or --disable-spinctrl was given.
 if test "${enable_spinctrl+set}" = set; then
@@ -6844,7 +6847,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-splitter""... $ac_c" 1>&6
-echo "configure:6848: checking for --${enablestring:-enable}-splitter" >&5
+echo "configure:6851: checking for --${enablestring:-enable}-splitter" >&5
           no_cache=0
           # Check whether --enable-splitter or --disable-splitter was given.
 if test "${enable_splitter+set}" = set; then
@@ -6884,7 +6887,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-statbmp""... $ac_c" 1>&6
-echo "configure:6888: checking for --${enablestring:-enable}-statbmp" >&5
+echo "configure:6891: checking for --${enablestring:-enable}-statbmp" >&5
           no_cache=0
           # Check whether --enable-statbmp or --disable-statbmp was given.
 if test "${enable_statbmp+set}" = set; then
@@ -6924,7 +6927,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-statbox""... $ac_c" 1>&6
-echo "configure:6928: checking for --${enablestring:-enable}-statbox" >&5
+echo "configure:6931: checking for --${enablestring:-enable}-statbox" >&5
           no_cache=0
           # Check whether --enable-statbox or --disable-statbox was given.
 if test "${enable_statbox+set}" = set; then
@@ -6964,7 +6967,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-statline""... $ac_c" 1>&6
-echo "configure:6968: checking for --${enablestring:-enable}-statline" >&5
+echo "configure:6971: checking for --${enablestring:-enable}-statline" >&5
           no_cache=0
           # Check whether --enable-statline or --disable-statline was given.
 if test "${enable_statline+set}" = set; then
@@ -7004,7 +7007,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-stattext""... $ac_c" 1>&6
-echo "configure:7008: checking for --${enablestring:-enable}-stattext" >&5
+echo "configure:7011: checking for --${enablestring:-enable}-stattext" >&5
           no_cache=0
           # Check whether --enable-stattext or --disable-stattext was given.
 if test "${enable_stattext+set}" = set; then
@@ -7044,7 +7047,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-statusbar""... $ac_c" 1>&6
-echo "configure:7048: checking for --${enablestring:-enable}-statusbar" >&5
+echo "configure:7051: checking for --${enablestring:-enable}-statusbar" >&5
           no_cache=0
           # Check whether --enable-statusbar or --disable-statusbar was given.
 if test "${enable_statusbar+set}" = set; then
@@ -7084,7 +7087,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-tabdialog""... $ac_c" 1>&6
-echo "configure:7088: checking for --${enablestring:-enable}-tabdialog" >&5
+echo "configure:7091: checking for --${enablestring:-enable}-tabdialog" >&5
           no_cache=0
           # Check whether --enable-tabdialog or --disable-tabdialog was given.
 if test "${enable_tabdialog+set}" = set; then
@@ -7124,7 +7127,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-textctrl""... $ac_c" 1>&6
-echo "configure:7128: checking for --${enablestring:-enable}-textctrl" >&5
+echo "configure:7131: checking for --${enablestring:-enable}-textctrl" >&5
           no_cache=0
           # Check whether --enable-textctrl or --disable-textctrl was given.
 if test "${enable_textctrl+set}" = set; then
@@ -7164,7 +7167,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-togglebtn""... $ac_c" 1>&6
-echo "configure:7168: checking for --${enablestring:-enable}-togglebtn" >&5
+echo "configure:7171: checking for --${enablestring:-enable}-togglebtn" >&5
           no_cache=0
           # Check whether --enable-togglebtn or --disable-togglebtn was given.
 if test "${enable_togglebtn+set}" = set; then
@@ -7204,7 +7207,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-toolbar""... $ac_c" 1>&6
-echo "configure:7208: checking for --${enablestring:-enable}-toolbar" >&5
+echo "configure:7211: checking for --${enablestring:-enable}-toolbar" >&5
           no_cache=0
           # Check whether --enable-toolbar or --disable-toolbar was given.
 if test "${enable_toolbar+set}" = set; then
@@ -7244,7 +7247,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-tbarnative""... $ac_c" 1>&6
-echo "configure:7248: checking for --${enablestring:-enable}-tbarnative" >&5
+echo "configure:7251: checking for --${enablestring:-enable}-tbarnative" >&5
           no_cache=0
           # Check whether --enable-tbarnative or --disable-tbarnative was given.
 if test "${enable_tbarnative+set}" = set; then
@@ -7284,7 +7287,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-tbarsmpl""... $ac_c" 1>&6
-echo "configure:7288: checking for --${enablestring:-enable}-tbarsmpl" >&5
+echo "configure:7291: checking for --${enablestring:-enable}-tbarsmpl" >&5
           no_cache=0
           # Check whether --enable-tbarsmpl or --disable-tbarsmpl was given.
 if test "${enable_tbarsmpl+set}" = set; then
@@ -7324,7 +7327,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-treectrl""... $ac_c" 1>&6
-echo "configure:7328: checking for --${enablestring:-enable}-treectrl" >&5
+echo "configure:7331: checking for --${enablestring:-enable}-treectrl" >&5
           no_cache=0
           # Check whether --enable-treectrl or --disable-treectrl was given.
 if test "${enable_treectrl+set}" = set; then
@@ -7364,7 +7367,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-tipwindow""... $ac_c" 1>&6
-echo "configure:7368: checking for --${enablestring:-enable}-tipwindow" >&5
+echo "configure:7371: checking for --${enablestring:-enable}-tipwindow" >&5
           no_cache=0
           # Check whether --enable-tipwindow or --disable-tipwindow was given.
 if test "${enable_tipwindow+set}" = set; then
@@ -7404,7 +7407,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-popupwin""... $ac_c" 1>&6
-echo "configure:7408: checking for --${enablestring:-enable}-popupwin" >&5
+echo "configure:7411: checking for --${enablestring:-enable}-popupwin" >&5
           no_cache=0
           # Check whether --enable-popupwin or --disable-popupwin was given.
 if test "${enable_popupwin+set}" = set; then
@@ -7446,7 +7449,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-commondlg""... $ac_c" 1>&6
-echo "configure:7450: checking for --${enablestring:-enable}-commondlg" >&5
+echo "configure:7453: checking for --${enablestring:-enable}-commondlg" >&5
           no_cache=0
           # Check whether --enable-commondlg or --disable-commondlg was given.
 if test "${enable_commondlg+set}" = set; then
@@ -7486,7 +7489,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-choicedlg""... $ac_c" 1>&6
-echo "configure:7490: checking for --${enablestring:-enable}-choicedlg" >&5
+echo "configure:7493: checking for --${enablestring:-enable}-choicedlg" >&5
           no_cache=0
           # Check whether --enable-choicedlg or --disable-choicedlg was given.
 if test "${enable_choicedlg+set}" = set; then
@@ -7526,7 +7529,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-coldlg""... $ac_c" 1>&6
-echo "configure:7530: checking for --${enablestring:-enable}-coldlg" >&5
+echo "configure:7533: checking for --${enablestring:-enable}-coldlg" >&5
           no_cache=0
           # Check whether --enable-coldlg or --disable-coldlg was given.
 if test "${enable_coldlg+set}" = set; then
@@ -7566,7 +7569,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-filedlg""... $ac_c" 1>&6
-echo "configure:7570: checking for --${enablestring:-enable}-filedlg" >&5
+echo "configure:7573: checking for --${enablestring:-enable}-filedlg" >&5
           no_cache=0
           # Check whether --enable-filedlg or --disable-filedlg was given.
 if test "${enable_filedlg+set}" = set; then
@@ -7606,7 +7609,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-finddlg""... $ac_c" 1>&6
-echo "configure:7610: checking for --${enablestring:-enable}-finddlg" >&5
+echo "configure:7613: checking for --${enablestring:-enable}-finddlg" >&5
           no_cache=0
           # Check whether --enable-finddlg or --disable-finddlg was given.
 if test "${enable_finddlg+set}" = set; then
@@ -7646,7 +7649,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-fontdlg""... $ac_c" 1>&6
-echo "configure:7650: checking for --${enablestring:-enable}-fontdlg" >&5
+echo "configure:7653: checking for --${enablestring:-enable}-fontdlg" >&5
           no_cache=0
           # Check whether --enable-fontdlg or --disable-fontdlg was given.
 if test "${enable_fontdlg+set}" = set; then
@@ -7686,7 +7689,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-dirdlg""... $ac_c" 1>&6
-echo "configure:7690: checking for --${enablestring:-enable}-dirdlg" >&5
+echo "configure:7693: checking for --${enablestring:-enable}-dirdlg" >&5
           no_cache=0
           # Check whether --enable-dirdlg or --disable-dirdlg was given.
 if test "${enable_dirdlg+set}" = set; then
@@ -7726,7 +7729,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-msgdlg""... $ac_c" 1>&6
-echo "configure:7730: checking for --${enablestring:-enable}-msgdlg" >&5
+echo "configure:7733: checking for --${enablestring:-enable}-msgdlg" >&5
           no_cache=0
           # Check whether --enable-msgdlg or --disable-msgdlg was given.
 if test "${enable_msgdlg+set}" = set; then
@@ -7766,7 +7769,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-numberdlg""... $ac_c" 1>&6
-echo "configure:7770: checking for --${enablestring:-enable}-numberdlg" >&5
+echo "configure:7773: checking for --${enablestring:-enable}-numberdlg" >&5
           no_cache=0
           # Check whether --enable-numberdlg or --disable-numberdlg was given.
 if test "${enable_numberdlg+set}" = set; then
@@ -7806,7 +7809,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-splash""... $ac_c" 1>&6
-echo "configure:7810: checking for --${enablestring:-enable}-splash" >&5
+echo "configure:7813: checking for --${enablestring:-enable}-splash" >&5
           no_cache=0
           # Check whether --enable-splash or --disable-splash was given.
 if test "${enable_splash+set}" = set; then
@@ -7846,7 +7849,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-textdlg""... $ac_c" 1>&6
-echo "configure:7850: checking for --${enablestring:-enable}-textdlg" >&5
+echo "configure:7853: checking for --${enablestring:-enable}-textdlg" >&5
           no_cache=0
           # Check whether --enable-textdlg or --disable-textdlg was given.
 if test "${enable_textdlg+set}" = set; then
@@ -7886,7 +7889,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-tipdlg""... $ac_c" 1>&6
-echo "configure:7890: checking for --${enablestring:-enable}-tipdlg" >&5
+echo "configure:7893: checking for --${enablestring:-enable}-tipdlg" >&5
           no_cache=0
           # Check whether --enable-tipdlg or --disable-tipdlg was given.
 if test "${enable_tipdlg+set}" = set; then
@@ -7926,7 +7929,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-progressdlg""... $ac_c" 1>&6
-echo "configure:7930: checking for --${enablestring:-enable}-progressdlg" >&5
+echo "configure:7933: checking for --${enablestring:-enable}-progressdlg" >&5
           no_cache=0
           # Check whether --enable-progressdlg or --disable-progressdlg was given.
 if test "${enable_progressdlg+set}" = set; then
@@ -7966,7 +7969,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-wizarddlg""... $ac_c" 1>&6
-echo "configure:7970: checking for --${enablestring:-enable}-wizarddlg" >&5
+echo "configure:7973: checking for --${enablestring:-enable}-wizarddlg" >&5
           no_cache=0
           # Check whether --enable-wizarddlg or --disable-wizarddlg was given.
 if test "${enable_wizarddlg+set}" = set; then
@@ -8008,7 +8011,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-menus""... $ac_c" 1>&6
-echo "configure:8012: checking for --${enablestring:-enable}-menus" >&5
+echo "configure:8015: checking for --${enablestring:-enable}-menus" >&5
           no_cache=0
           # Check whether --enable-menus or --disable-menus was given.
 if test "${enable_menus+set}" = set; then
@@ -8048,7 +8051,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-miniframe""... $ac_c" 1>&6
-echo "configure:8052: checking for --${enablestring:-enable}-miniframe" >&5
+echo "configure:8055: checking for --${enablestring:-enable}-miniframe" >&5
           no_cache=0
           # Check whether --enable-miniframe or --disable-miniframe was given.
 if test "${enable_miniframe+set}" = set; then
@@ -8088,7 +8091,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-tooltips""... $ac_c" 1>&6
-echo "configure:8092: checking for --${enablestring:-enable}-tooltips" >&5
+echo "configure:8095: checking for --${enablestring:-enable}-tooltips" >&5
           no_cache=0
           # Check whether --enable-tooltips or --disable-tooltips was given.
 if test "${enable_tooltips+set}" = set; then
@@ -8128,7 +8131,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-splines""... $ac_c" 1>&6
-echo "configure:8132: checking for --${enablestring:-enable}-splines" >&5
+echo "configure:8135: checking for --${enablestring:-enable}-splines" >&5
           no_cache=0
           # Check whether --enable-splines or --disable-splines was given.
 if test "${enable_splines+set}" = set; then
@@ -8168,7 +8171,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-validators""... $ac_c" 1>&6
-echo "configure:8172: checking for --${enablestring:-enable}-validators" >&5
+echo "configure:8175: checking for --${enablestring:-enable}-validators" >&5
           no_cache=0
           # Check whether --enable-validators or --disable-validators was given.
 if test "${enable_validators+set}" = set; then
@@ -8208,7 +8211,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-busyinfo""... $ac_c" 1>&6
-echo "configure:8212: checking for --${enablestring:-enable}-busyinfo" >&5
+echo "configure:8215: checking for --${enablestring:-enable}-busyinfo" >&5
           no_cache=0
           # Check whether --enable-busyinfo or --disable-busyinfo was given.
 if test "${enable_busyinfo+set}" = set; then
@@ -8248,7 +8251,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-joystick""... $ac_c" 1>&6
-echo "configure:8252: checking for --${enablestring:-enable}-joystick" >&5
+echo "configure:8255: checking for --${enablestring:-enable}-joystick" >&5
           no_cache=0
           # Check whether --enable-joystick or --disable-joystick was given.
 if test "${enable_joystick+set}" = set; then
@@ -8288,7 +8291,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-metafile""... $ac_c" 1>&6
-echo "configure:8292: checking for --${enablestring:-enable}-metafile" >&5
+echo "configure:8295: checking for --${enablestring:-enable}-metafile" >&5
           no_cache=0
           # Check whether --enable-metafile or --disable-metafile was given.
 if test "${enable_metafile+set}" = set; then
@@ -8328,7 +8331,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-dragimage""... $ac_c" 1>&6
-echo "configure:8332: checking for --${enablestring:-enable}-dragimage" >&5
+echo "configure:8335: checking for --${enablestring:-enable}-dragimage" >&5
           no_cache=0
           # Check whether --enable-dragimage or --disable-dragimage was given.
 if test "${enable_dragimage+set}" = set; then
@@ -8370,7 +8373,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-palette""... $ac_c" 1>&6
-echo "configure:8374: checking for --${enablestring:-enable}-palette" >&5
+echo "configure:8377: checking for --${enablestring:-enable}-palette" >&5
           no_cache=0
           # Check whether --enable-palette or --disable-palette was given.
 if test "${enable_palette+set}" = set; then
@@ -8410,7 +8413,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-image""... $ac_c" 1>&6
-echo "configure:8414: checking for --${enablestring:-enable}-image" >&5
+echo "configure:8417: checking for --${enablestring:-enable}-image" >&5
           no_cache=0
           # Check whether --enable-image or --disable-image was given.
 if test "${enable_image+set}" = set; then
@@ -8450,7 +8453,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-gif""... $ac_c" 1>&6
-echo "configure:8454: checking for --${enablestring:-enable}-gif" >&5
+echo "configure:8457: checking for --${enablestring:-enable}-gif" >&5
           no_cache=0
           # Check whether --enable-gif or --disable-gif was given.
 if test "${enable_gif+set}" = set; then
@@ -8490,7 +8493,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-pcx""... $ac_c" 1>&6
-echo "configure:8494: checking for --${enablestring:-enable}-pcx" >&5
+echo "configure:8497: checking for --${enablestring:-enable}-pcx" >&5
           no_cache=0
           # Check whether --enable-pcx or --disable-pcx was given.
 if test "${enable_pcx+set}" = set; then
@@ -8530,7 +8533,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-iff""... $ac_c" 1>&6
-echo "configure:8534: checking for --${enablestring:-enable}-iff" >&5
+echo "configure:8537: checking for --${enablestring:-enable}-iff" >&5
           no_cache=0
           # Check whether --enable-iff or --disable-iff was given.
 if test "${enable_iff+set}" = set; then
@@ -8570,7 +8573,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-pnm""... $ac_c" 1>&6
-echo "configure:8574: checking for --${enablestring:-enable}-pnm" >&5
+echo "configure:8577: checking for --${enablestring:-enable}-pnm" >&5
           no_cache=0
           # Check whether --enable-pnm or --disable-pnm was given.
 if test "${enable_pnm+set}" = set; then
@@ -8610,7 +8613,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-xpm""... $ac_c" 1>&6
-echo "configure:8614: checking for --${enablestring:-enable}-xpm" >&5
+echo "configure:8617: checking for --${enablestring:-enable}-xpm" >&5
           no_cache=0
           # Check whether --enable-xpm or --disable-xpm was given.
 if test "${enable_xpm+set}" = set; then
@@ -8650,7 +8653,7 @@ fi
 
 	  enablestring=
           echo $ac_n "checking for --${enablestring:-enable}-ico_cur""... $ac_c" 1>&6
-echo "configure:8654: checking for --${enablestring:-enable}-ico_cur" >&5
+echo "configure:8657: checking for --${enablestring:-enable}-ico_cur" >&5
           no_cache=0
           # Check whether --enable-ico_cur or --disable-ico_cur was given.
 if test "${enable_ico_cur+set}" = set; then
@@ -8709,7 +8712,7 @@ esac
 
 
 echo $ac_n "checking for toolkit""... $ac_c" 1>&6
-echo "configure:8713: checking for toolkit" >&5
+echo "configure:8716: checking for toolkit" >&5
 
 if test "$wxUSE_GUI" = "yes"; then
 
@@ -8771,56 +8774,6 @@ else
     echo "$ac_t""base ($host_alias hosted) only" 1>&6
 fi
 
-case "${host}" in
-  *-pc-os2_emx | *-pc-os2-emx )
-            LIBS="$LIBS -lstdcpp"
-      if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_GTK" = 1 -o "$wxUSE_X11" = 1; then
-                              echo $ac_n "checking for drand48 in -lcExt""... $ac_c" 1>&6
-echo "configure:8780: checking for drand48 in -lcExt" >&5
-ac_lib_var=`echo cExt'_'drand48 | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lcExt  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 8788 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char drand48();
-
-int main() {
-drand48()
-; return 0; }
-EOF
-if { (eval echo configure:8799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  LIBS="$LIBS -lcExt"
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-      else
-                    RESPROGRAMOBJ="\${top_srcdir}/include/wx/os2/wx.res"
-      fi
-  ;;
-esac
-
 wants_win32=0
 doesnt_want_win32=0
 case "${host}" in
@@ -8946,7 +8899,7 @@ CFLAGS=${CFLAGS:=}
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8950: checking for $ac_word" >&5
+echo "configure:8903: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -8976,7 +8929,7 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:8980: checking for $ac_word" >&5
+echo "configure:8933: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9027,7 +8980,7 @@ fi
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:9031: checking for $ac_word" >&5
+echo "configure:8984: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9059,7 +9012,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:9063: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:9016: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -9070,12 +9023,12 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext << EOF
 
-#line 9074 "configure"
+#line 9027 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:9079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -9101,12 +9054,12 @@ if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:9105: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:9058: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:9110: checking whether we are using GNU C" >&5
+echo "configure:9063: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9115,7 +9068,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:9119: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:9072: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -9134,7 +9087,7 @@ ac_test_CFLAGS="${CFLAGS+set}"
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:9138: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:9091: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9167,7 +9120,7 @@ fi
 
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:9171: checking how to run the C preprocessor" >&5
+echo "configure:9124: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -9182,13 +9135,13 @@ else
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 9186 "configure"
+#line 9139 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9192: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9145: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -9199,13 +9152,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 9203 "configure"
+#line 9156 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9209: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9162: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -9216,13 +9169,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 9220 "configure"
+#line 9173 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9226: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9179: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -9248,13 +9201,13 @@ echo "$ac_t""$CPP" 1>&6
 
 if test $ac_cv_prog_gcc = yes; then
     echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:9252: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:9205: checking whether ${CC-cc} needs -traditional" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
     ac_pattern="Autoconf.*'x'"
   cat > conftest.$ac_ext <<EOF
-#line 9258 "configure"
+#line 9211 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 Autoconf TIOCGETP
@@ -9272,7 +9225,7 @@ rm -f conftest*
 
   if test $ac_cv_prog_gcc_traditional = no; then
     cat > conftest.$ac_ext <<EOF
-#line 9276 "configure"
+#line 9229 "configure"
 #include "confdefs.h"
 #include <termio.h>
 Autoconf TCGETA
@@ -9309,7 +9262,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:9313: checking for $ac_word" >&5
+echo "configure:9266: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9341,7 +9294,7 @@ test -n "$CXX" || CXX="gcc"
 
 
 echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:9345: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+echo "configure:9298: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
 
 ac_ext=C
 # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -9352,12 +9305,12 @@ cross_compiling=$ac_cv_prog_cxx_cross
 
 cat > conftest.$ac_ext << EOF
 
-#line 9356 "configure"
+#line 9309 "configure"
 #include "confdefs.h"
 
 int main(){return(0);}
 EOF
-if { (eval echo configure:9361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9314: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cxx_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -9383,12 +9336,12 @@ if test $ac_cv_prog_cxx_works = no; then
   { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:9387: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:9340: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
 cross_compiling=$ac_cv_prog_cxx_cross
 
 echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:9392: checking whether we are using GNU C++" >&5
+echo "configure:9345: checking whether we are using GNU C++" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9397,7 +9350,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:9401: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:9354: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gxx=yes
 else
   ac_cv_prog_gxx=no
@@ -9416,7 +9369,7 @@ ac_test_CXXFLAGS="${CXXFLAGS+set}"
 ac_save_CXXFLAGS="$CXXFLAGS"
 CXXFLAGS=
 echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:9420: checking whether ${CXX-g++} accepts -g" >&5
+echo "configure:9373: checking whether ${CXX-g++} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9459,7 +9412,7 @@ cross_compiling=$ac_cv_prog_cc_cross
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:9463: checking for $ac_word" >&5
+echo "configure:9416: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9490,7 +9443,7 @@ fi
 # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:9494: checking for $ac_word" >&5
+echo "configure:9447: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9530,7 +9483,7 @@ fi
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:9534: checking for a BSD compatible install" >&5
+echo "configure:9487: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -9604,7 +9557,7 @@ esac
 # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:9608: checking for $ac_word" >&5
+echo "configure:9561: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9633,7 +9586,7 @@ fi
 
 
 echo $ac_n "checking if make is GNU make""... $ac_c" 1>&6
-echo "configure:9637: checking if make is GNU make" >&5
+echo "configure:9590: checking if make is GNU make" >&5
 if eval "test \"`echo '$''{'wx_cv_prog_makeisgnu'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9659,7 +9612,7 @@ fi
 
 if test "x$wx_cv_prog_makeisgnu" != "xyes"; then
 echo $ac_n "checking if make supports VPATH""... $ac_c" 1>&6
-echo "configure:9663: checking if make supports VPATH" >&5
+echo "configure:9616: checking if make supports VPATH" >&5
 if eval "test \"`echo '$''{'wx_cv_prog_makevpath'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9706,7 +9659,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:9710: checking for $ac_word" >&5
+echo "configure:9663: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9740,7 +9693,7 @@ test -n "$YACC" || YACC="yacc"
 # Extract the first word of "flex", so it can be a program name with args.
 set dummy flex; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:9744: checking for $ac_word" >&5
+echo "configure:9697: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9774,7 +9727,7 @@ then
   *) ac_lib=l ;;
   esac
   echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
-echo "configure:9778: checking for yywrap in -l$ac_lib" >&5
+echo "configure:9731: checking for yywrap in -l$ac_lib" >&5
 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -9782,7 +9735,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-l$ac_lib  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 9786 "configure"
+#line 9739 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -9793,7 +9746,7 @@ int main() {
 yywrap()
 ; return 0; }
 EOF
-if { (eval echo configure:9797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9817,7 +9770,7 @@ fi
 
 
 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:9821: checking whether ln -s works" >&5
+echo "configure:9774: checking whether ln -s works" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -9838,23 +9791,73 @@ else
 fi
 
 
+case "${host}" in
+  *-pc-os2_emx | *-pc-os2-emx )
+            LIBS="$LIBS -lstdcpp"
+      if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_GTK" = 1 -o "$wxUSE_X11" = 1; then
+                              echo $ac_n "checking for drand48 in -lcExt""... $ac_c" 1>&6
+echo "configure:9800: checking for drand48 in -lcExt" >&5
+ac_lib_var=`echo cExt'_'drand48 | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lcExt  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 9808 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char drand48();
+
+int main() {
+drand48()
+; return 0; }
+EOF
+if { (eval echo configure:9819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LIBS="$LIBS -lcExt"
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+      else
+                    RESPROGRAMOBJ="\${top_srcdir}/include/wx/os2/wx.res"
+      fi
+  ;;
+esac
+
 
 if test "$wxUSE_MAC" != 1; then
     for ac_hdr in strings.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:9848: checking for $ac_hdr" >&5
+echo "configure:9851: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9853 "configure"
+#line 9856 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9858: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9861: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9886,17 +9889,17 @@ for ac_hdr in stdlib.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:9890: checking for $ac_hdr" >&5
+echo "configure:9893: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9895 "configure"
+#line 9898 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9900: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9903: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9926,17 +9929,17 @@ for ac_hdr in malloc.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:9930: checking for $ac_hdr" >&5
+echo "configure:9933: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9935 "configure"
+#line 9938 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9940: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9943: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9966,17 +9969,17 @@ for ac_hdr in unistd.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:9970: checking for $ac_hdr" >&5
+echo "configure:9973: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 9975 "configure"
+#line 9978 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9980: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9983: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10006,17 +10009,17 @@ for ac_hdr in wchar.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10010: checking for $ac_hdr" >&5
+echo "configure:10013: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10015 "configure"
+#line 10018 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10020: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10023: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10048,17 +10051,17 @@ if test "$ac_cv_header_wchar_h" != "yes"; then
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10052: checking for $ac_hdr" >&5
+echo "configure:10055: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10057 "configure"
+#line 10060 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10062: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10065: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10090,17 +10093,17 @@ for ac_hdr in fnmatch.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10094: checking for $ac_hdr" >&5
+echo "configure:10097: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10099 "configure"
+#line 10102 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10104: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10107: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10131,12 +10134,12 @@ if test "x$ac_cv_header_fnmatch_h" = "xyes"; then
     for ac_func in fnmatch
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10135: checking for $ac_func" >&5
+echo "configure:10138: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10140 "configure"
+#line 10143 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10159,7 +10162,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:10163: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -10189,17 +10192,17 @@ for ac_hdr in langinfo.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10193: checking for $ac_hdr" >&5
+echo "configure:10196: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10198 "configure"
+#line 10201 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10203: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10206: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10232,17 +10235,17 @@ if test "$wxUSE_GUI" = "yes"; then
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10236: checking for $ac_hdr" >&5
+echo "configure:10239: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10241 "configure"
+#line 10244 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10246: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10249: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10273,12 +10276,12 @@ fi
 
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:10277: checking for working const" >&5
+echo "configure:10280: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 10282 "configure"
+#line 10285 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -10327,7 +10330,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:10331: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10334: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -10348,21 +10351,21 @@ EOF
 fi
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:10352: checking for inline" >&5
+echo "configure:10355: checking for inline" >&5
 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 10359 "configure"
+#line 10362 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:10366: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10369: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -10389,7 +10392,7 @@ esac
 
 
 echo $ac_n "checking size of char""... $ac_c" 1>&6
-echo "configure:10393: checking size of char" >&5
+echo "configure:10396: checking size of char" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_char'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -10397,9 +10400,10 @@ else
   ac_cv_sizeof_char=1
 else
   cat > conftest.$ac_ext <<EOF
-#line 10401 "configure"
+#line 10404 "configure"
 #include "confdefs.h"
 #include <stdio.h>
+#include <sys/types.h>
 main()
 {
   FILE *f=fopen("conftestval", "w");
@@ -10408,7 +10412,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:10412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:10416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_char=`cat conftestval`
 else
@@ -10428,7 +10432,7 @@ EOF
 
 
 echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:10432: checking size of short" >&5
+echo "configure:10436: checking size of short" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -10436,9 +10440,10 @@ else
   ac_cv_sizeof_short=2
 else
   cat > conftest.$ac_ext <<EOF
-#line 10440 "configure"
+#line 10444 "configure"
 #include "confdefs.h"
 #include <stdio.h>
+#include <sys/types.h>
 main()
 {
   FILE *f=fopen("conftestval", "w");
@@ -10447,7 +10452,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:10451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:10456: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
@@ -10467,7 +10472,7 @@ EOF
 
 
 echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:10471: checking size of void *" >&5
+echo "configure:10476: checking size of void *" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_void_p'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -10475,9 +10480,10 @@ else
   ac_cv_sizeof_void_p=4
 else
   cat > conftest.$ac_ext <<EOF
-#line 10479 "configure"
+#line 10484 "configure"
 #include "confdefs.h"
 #include <stdio.h>
+#include <sys/types.h>
 main()
 {
   FILE *f=fopen("conftestval", "w");
@@ -10486,7 +10492,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:10490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:10496: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_void_p=`cat conftestval`
 else
@@ -10506,7 +10512,7 @@ EOF
 
 
 echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:10510: checking size of int" >&5
+echo "configure:10516: checking size of int" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -10514,9 +10520,10 @@ else
   ac_cv_sizeof_int=4
 else
   cat > conftest.$ac_ext <<EOF
-#line 10518 "configure"
+#line 10524 "configure"
 #include "confdefs.h"
 #include <stdio.h>
+#include <sys/types.h>
 main()
 {
   FILE *f=fopen("conftestval", "w");
@@ -10525,7 +10532,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:10529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:10536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
@@ -10545,7 +10552,7 @@ EOF
 
 
 echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:10549: checking size of long" >&5
+echo "configure:10556: checking size of long" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -10553,9 +10560,10 @@ else
   ac_cv_sizeof_long=4
 else
   cat > conftest.$ac_ext <<EOF
-#line 10557 "configure"
+#line 10564 "configure"
 #include "confdefs.h"
 #include <stdio.h>
+#include <sys/types.h>
 main()
 {
   FILE *f=fopen("conftestval", "w");
@@ -10564,7 +10572,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:10568: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:10576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
@@ -10587,7 +10595,7 @@ EOF
 case "${host}" in
     arm-*-linux* )
         echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:10591: checking size of long long" >&5
+echo "configure:10599: checking size of long long" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -10595,9 +10603,10 @@ else
   ac_cv_sizeof_long_long=8
 else
   cat > conftest.$ac_ext <<EOF
-#line 10599 "configure"
+#line 10607 "configure"
 #include "confdefs.h"
 #include <stdio.h>
+#include <sys/types.h>
 main()
 {
   FILE *f=fopen("conftestval", "w");
@@ -10606,7 +10615,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:10610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:10619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_long_long=`cat conftestval`
 else
@@ -10628,7 +10637,7 @@ EOF
     ;;
     *-hp-hpux* )
         echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:10632: checking size of long long" >&5
+echo "configure:10641: checking size of long long" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -10636,9 +10645,10 @@ else
   ac_cv_sizeof_long_long=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 10640 "configure"
+#line 10649 "configure"
 #include "confdefs.h"
 #include <stdio.h>
+#include <sys/types.h>
 main()
 {
   FILE *f=fopen("conftestval", "w");
@@ -10647,7 +10657,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:10651: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:10661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_long_long=`cat conftestval`
 else
@@ -10672,7 +10682,7 @@ EOF
     ;;
     * )
         echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:10676: checking size of long long" >&5
+echo "configure:10686: checking size of long long" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -10680,9 +10690,10 @@ else
   ac_cv_sizeof_long_long=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 10684 "configure"
+#line 10694 "configure"
 #include "confdefs.h"
 #include <stdio.h>
+#include <sys/types.h>
 main()
 {
   FILE *f=fopen("conftestval", "w");
@@ -10691,7 +10702,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:10695: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:10706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_long_long=`cat conftestval`
 else
@@ -10713,19 +10724,32 @@ EOF
 esac
 
 echo $ac_n "checking size of wchar_t""... $ac_c" 1>&6
-echo "configure:10717: checking size of wchar_t" >&5
+echo "configure:10728: checking size of wchar_t" >&5
 if eval "test \"`echo '$''{'wx_cv_sizeof_wchar_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
     if test "$cross_compiling" = yes; then
-  wx_cv_sizeof_wchar_t=4
+  
+            case "${host}" in
+              *-pc-msdosdjgpp )
+                wx_cv_sizeof_wchar_t=0
+                ;;
+              * )
+                wx_cv_sizeof_wchar_t=4
+                ;;
+            esac
+        
     
 else
   cat > conftest.$ac_ext <<EOF
-#line 10727 "configure"
+#line 10747 "configure"
 #include "confdefs.h"
 
+            /* DJGPP only has fake wchar_t: */
+            #ifdef __DJGPP__
+            #  error "fake wchar_t"
+            #endif
             #ifdef HAVE_WCHAR_H
             #  ifdef __CYGWIN__
             #    include <stddef.h>
@@ -10745,7 +10769,7 @@ else
             }
         
 EOF
-if { (eval echo configure:10749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:10773: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   wx_cv_sizeof_wchar_t=`cat conftestval`
 else
@@ -10777,13 +10801,13 @@ if test "$enable_largefile" != no; then
             wx_largefile=no
     
     echo $ac_n "checking for _FILE_OFFSET_BITS value needed for large files""... $ac_c" 1>&6
-echo "configure:10781: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+echo "configure:10805: checking for _FILE_OFFSET_BITS value needed for large files" >&5
 if eval "test \"`echo '$''{'ac_cv_sys_file_offset_bits'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
           cat > conftest.$ac_ext <<EOF
-#line 10787 "configure"
+#line 10811 "configure"
 #include "confdefs.h"
 #define _FILE_OFFSET_BITS 64
                           #include <sys/types.h>
@@ -10794,7 +10818,7 @@ typedef struct {
 
 ; return 0; }
 EOF
-if { (eval echo configure:10798: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10822: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_sys_file_offset_bits=64
 else
@@ -10821,13 +10845,13 @@ EOF
     if test "x$wx_largefile" != "xyes"; then
         
     echo $ac_n "checking for _LARGE_FILES value needed for large files""... $ac_c" 1>&6
-echo "configure:10825: checking for _LARGE_FILES value needed for large files" >&5
+echo "configure:10849: checking for _LARGE_FILES value needed for large files" >&5
 if eval "test \"`echo '$''{'ac_cv_sys_large_files'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
           cat > conftest.$ac_ext <<EOF
-#line 10831 "configure"
+#line 10855 "configure"
 #include "confdefs.h"
 #define _LARGE_FILES 1
                           #include <sys/types.h>
@@ -10838,7 +10862,7 @@ typedef struct {
 
 ; return 0; }
 EOF
-if { (eval echo configure:10842: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10866: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_sys_large_files=1
 else
@@ -10865,7 +10889,7 @@ EOF
     fi
 
     echo $ac_n "checking if large file support is available""... $ac_c" 1>&6
-echo "configure:10869: checking if large file support is available" >&5
+echo "configure:10893: checking if large file support is available" >&5
     if test "x$wx_largefile" = "xyes"; then
         cat >> confdefs.h <<\EOF
 #define HAVE_LARGEFILE_SUPPORT 1
@@ -10886,14 +10910,14 @@ if test "x$wx_largefile" = "xyes"; then
 fi
 
 echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:10890: checking whether byte ordering is bigendian" >&5
+echo "configure:10914: checking whether byte ordering is bigendian" >&5
 if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_cv_c_bigendian=unknown
 # See if sys/param.h defines the BYTE_ORDER macro.
 cat > conftest.$ac_ext <<EOF
-#line 10897 "configure"
+#line 10921 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -10904,11 +10928,11 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:10908: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10932: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   # It does; now see whether it defined to BIG_ENDIAN or not.
 cat > conftest.$ac_ext <<EOF
-#line 10912 "configure"
+#line 10936 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -10919,7 +10943,7 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:10923: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10947: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
@@ -10939,7 +10963,7 @@ if test "$cross_compiling" = yes; then
   ac_cv_c_bigendian=unknown
 else
   cat > conftest.$ac_ext <<EOF
-#line 10943 "configure"
+#line 10967 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -10952,7 +10976,7 @@ main () {
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:10956: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:10980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_bigendian=no
 else
@@ -10980,7 +11004,7 @@ fi
 
 
 echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:10984: checking how to run the C++ preprocessor" >&5
+echo "configure:11008: checking how to run the C++ preprocessor" >&5
 if test -z "$CXXCPP"; then
 if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -10993,12 +11017,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
   CXXCPP="${CXX-g++} -E"
   cat > conftest.$ac_ext <<EOF
-#line 10997 "configure"
+#line 11021 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11002: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11026: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -11042,17 +11066,17 @@ cross_compiling=$ac_cv_prog_cxx_cross
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11046: checking for $ac_hdr" >&5
+echo "configure:11070: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11051 "configure"
+#line 11075 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11056: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11080: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11100,7 +11124,7 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 
   echo $ac_n "checking if C++ compiler supports bool""... $ac_c" 1>&6
-echo "configure:11104: checking if C++ compiler supports bool" >&5
+echo "configure:11128: checking if C++ compiler supports bool" >&5
 if eval "test \"`echo '$''{'wx_cv_cpp_bool'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -11115,7 +11139,7 @@ cross_compiling=$ac_cv_prog_cxx_cross
 
 
     cat > conftest.$ac_ext <<EOF
-#line 11119 "configure"
+#line 11143 "configure"
 #include "confdefs.h"
 
       
@@ -11127,7 +11151,7 @@ int main() {
       
 ; return 0; }
 EOF
-if { (eval echo configure:11131: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11155: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
         wx_cv_cpp_bool=yes
@@ -11165,7 +11189,7 @@ EOF
 
 
   echo $ac_n "checking if C++ compiler supports the explicit keyword""... $ac_c" 1>&6
-echo "configure:11169: checking if C++ compiler supports the explicit keyword" >&5
+echo "configure:11193: checking if C++ compiler supports the explicit keyword" >&5
 if eval "test \"`echo '$''{'wx_cv_explicit'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -11180,7 +11204,7 @@ cross_compiling=$ac_cv_prog_cxx_cross
 
 
             cat > conftest.$ac_ext <<EOF
-#line 11184 "configure"
+#line 11208 "configure"
 #include "confdefs.h"
 
         class Foo { public: explicit Foo(int) {} };
@@ -11191,11 +11215,11 @@ int main() {
       
 ; return 0; }
 EOF
-if { (eval echo configure:11195: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11219: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
         cat > conftest.$ac_ext <<EOF
-#line 11199 "configure"
+#line 11223 "configure"
 #include "confdefs.h"
 
                 class Foo { public: explicit Foo(int) {} };
@@ -11208,7 +11232,7 @@ int main() {
             
 ; return 0; }
 EOF
-if { (eval echo configure:11212: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11236: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wx_cv_explicit=no
 else
@@ -11313,8 +11337,7 @@ SEARCH_INCLUDE="\
     /usr/local/x11r5/include  \
     /usr/lpp/Xamples/include  \
                               \
-    /usr/openwin/share/include \
-    /usr/include"
+    /usr/openwin/share/include"
 
 SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s/include/lib/g` "
 
@@ -11369,13 +11392,13 @@ rm -f confcache
 
 if test "$USE_LINUX" = 1; then
     echo $ac_n "checking for glibc 2.1 or later""... $ac_c" 1>&6
-echo "configure:11373: checking for glibc 2.1 or later" >&5
+echo "configure:11396: checking for glibc 2.1 or later" >&5
 if eval "test \"`echo '$''{'wx_cv_lib_glibc21'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 11379 "configure"
+#line 11402 "configure"
 #include "confdefs.h"
 #include <features.h>
 int main() {
@@ -11386,7 +11409,7 @@ int main() {
             
 ; return 0; }
 EOF
-if { (eval echo configure:11390: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11413: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
                 wx_cv_lib_glibc21=yes
@@ -11434,17 +11457,17 @@ EOF
     if test "$wxUSE_REGEX" = "sys" -o "$wxUSE_REGEX" = "yes" ; then
                         ac_safe=`echo "regex.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for regex.h""... $ac_c" 1>&6
-echo "configure:11438: checking for regex.h" >&5
+echo "configure:11461: checking for regex.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11443 "configure"
+#line 11466 "configure"
 #include "confdefs.h"
 #include <regex.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11448: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11471: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11463,12 +11486,12 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   for ac_func in regcomp
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:11467: checking for $ac_func" >&5
+echo "configure:11490: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11472 "configure"
+#line 11495 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -11491,7 +11514,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:11495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -11549,17 +11572,17 @@ EOF
     if test "$wxUSE_ZLIB" = "sys" -o "$wxUSE_ZLIB" = "yes" ; then
         ac_safe=`echo "zlib.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for zlib.h""... $ac_c" 1>&6
-echo "configure:11553: checking for zlib.h" >&5
+echo "configure:11576: checking for zlib.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11558 "configure"
+#line 11581 "configure"
 #include "confdefs.h"
 #include <zlib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11563: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11586: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11576,7 +11599,7 @@ fi
 if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for deflate in -lz""... $ac_c" 1>&6
-echo "configure:11580: checking for deflate in -lz" >&5
+echo "configure:11603: checking for deflate in -lz" >&5
 ac_lib_var=`echo z'_'deflate | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -11584,7 +11607,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lz  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 11588 "configure"
+#line 11611 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11595,7 +11618,7 @@ int main() {
 deflate()
 ; return 0; }
 EOF
-if { (eval echo configure:11599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11622: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -11660,17 +11683,17 @@ EOF
                 if test "$wxUSE_LIBPNG" = "sys" -o "$wxUSE_LIBPNG" = "yes" ; then
             ac_safe=`echo "png.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for png.h""... $ac_c" 1>&6
-echo "configure:11664: checking for png.h" >&5
+echo "configure:11687: checking for png.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11669 "configure"
+#line 11692 "configure"
 #include "confdefs.h"
 #include <png.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11674: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11697: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11687,7 +11710,7 @@ fi
 if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for png_check_sig in -lpng""... $ac_c" 1>&6
-echo "configure:11691: checking for png_check_sig in -lpng" >&5
+echo "configure:11714: checking for png_check_sig in -lpng" >&5
 ac_lib_var=`echo png'_'png_check_sig | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -11695,7 +11718,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lpng -lz -lm $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 11699 "configure"
+#line 11722 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11706,7 +11729,7 @@ int main() {
 png_check_sig()
 ; return 0; }
 EOF
-if { (eval echo configure:11710: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11733: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -11740,7 +11763,7 @@ fi
                     wxUSE_LIBPNG=builtin
                 fi
             else
-                                wxUSE_LIBPNG=yes
+                                wxUSE_LIBPNG=sys
             fi
         fi
     fi
@@ -11769,12 +11792,12 @@ EOF
     if test "$wxUSE_MGL" != 1 ; then
                 if test "$wxUSE_LIBJPEG" = "sys" -o "$wxUSE_LIBJPEG" = "yes" ; then
                                                 echo $ac_n "checking for jpeglib.h""... $ac_c" 1>&6
-echo "configure:11773: checking for jpeglib.h" >&5
+echo "configure:11796: checking for jpeglib.h" >&5
             if eval "test \"`echo '$''{'ac_cv_header_jpeglib_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11778 "configure"
+#line 11801 "configure"
 #include "confdefs.h"
 
                         #undef HAVE_STDLIB_H
@@ -11786,7 +11809,7 @@ int main() {
                     
 ; return 0; }
 EOF
-if { (eval echo configure:11790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:11813: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_jpeglib_h=yes
 else
@@ -11804,7 +11827,7 @@ fi
 
             if test "$ac_cv_header_jpeglib_h" = "yes"; then
                 echo $ac_n "checking for jpeg_read_header in -ljpeg""... $ac_c" 1>&6
-echo "configure:11808: checking for jpeg_read_header in -ljpeg" >&5
+echo "configure:11831: checking for jpeg_read_header in -ljpeg" >&5
 ac_lib_var=`echo jpeg'_'jpeg_read_header | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -11812,7 +11835,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ljpeg  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 11816 "configure"
+#line 11839 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11823,7 +11846,7 @@ int main() {
 jpeg_read_header()
 ; return 0; }
 EOF
-if { (eval echo configure:11827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11850: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -11866,6 +11889,7 @@ fi
 
 TIFF_INCLUDE=
 TIFF_LINK=
+TIFF_PREREQ_LINKS=-lm
 if test "$wxUSE_LIBTIFF" != "no" ; then
     cat >> confdefs.h <<\EOF
 #define wxUSE_LIBTIFF 1
@@ -11873,19 +11897,25 @@ EOF
 
 
     if test "$wxUSE_LIBTIFF" = "sys" -o "$wxUSE_LIBTIFF" = "yes" ; then
+                        if test "$wxUSE_LIBJPEG" = "sys"; then
+            TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $JPEG_LINK"
+        fi
+        if test "$wxUSE_ZLIB" = "sys"; then
+            TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $ZLIB_LINK"
+        fi
         ac_safe=`echo "tiffio.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for tiffio.h""... $ac_c" 1>&6
-echo "configure:11879: checking for tiffio.h" >&5
+echo "configure:11909: checking for tiffio.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11884 "configure"
+#line 11914 "configure"
 #include "confdefs.h"
 #include <tiffio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11889: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11919: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11902,15 +11932,15 @@ fi
 if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for TIFFError in -ltiff""... $ac_c" 1>&6
-echo "configure:11906: checking for TIFFError in -ltiff" >&5
+echo "configure:11936: checking for TIFFError in -ltiff" >&5
 ac_lib_var=`echo tiff'_'TIFFError | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   ac_save_LIBS="$LIBS"
-LIBS="-ltiff -lm $LIBS"
+LIBS="-ltiff $TIFF_PREREQ_LINKS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 11914 "configure"
+#line 11944 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11921,7 +11951,7 @@ int main() {
 TIFFError()
 ; return 0; }
 EOF
-if { (eval echo configure:11925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11955: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -11966,6 +11996,7 @@ fi
 
 
 AFMINSTALL=
+WIN32INSTALL=
 
 TOOLKIT=
 TOOLKIT_INCLUDE=
@@ -11976,17 +12007,17 @@ if test "$USE_WIN32" = 1 ; then
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11980: checking for $ac_hdr" >&5
+echo "configure:12011: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 11985 "configure"
+#line 12016 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11990: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12021: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -12014,17 +12045,17 @@ done
 
     ac_safe=`echo "windows.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for windows.h""... $ac_c" 1>&6
-echo "configure:12018: checking for windows.h" >&5
+echo "configure:12049: checking for windows.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 12023 "configure"
+#line 12054 "configure"
 #include "confdefs.h"
 #include <windows.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12028: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12059: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -12050,13 +12081,13 @@ fi
 
 
         echo $ac_n "checking if w32api has good enough MSIE support""... $ac_c" 1>&6
-echo "configure:12054: checking if w32api has good enough MSIE support" >&5
+echo "configure:12085: checking if w32api has good enough MSIE support" >&5
 if eval "test \"`echo '$''{'wx_cv_w32api_win32_ie'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
       cat > conftest.$ac_ext <<EOF
-#line 12060 "configure"
+#line 12091 "configure"
 #include "confdefs.h"
 #include <w32api.h>
 int main() {
@@ -12072,7 +12103,7 @@ int main() {
                      
 ; return 0; }
 EOF
-if { (eval echo configure:12076: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12107: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
                         wx_cv_w32api_win32_ie=yes
@@ -12108,6 +12139,8 @@ echo "$ac_t""$wx_cv_w32api_win32_ie" 1>&6
 
     RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
     RESPROGRAMOBJ="\$(PROGRAM)_resources.o"
+
+        WIN32INSTALL=win32install
 fi
 
 if test "$USE_DARWIN" = 1; then
@@ -12139,7 +12172,7 @@ if test "$wxUSE_GUI" = "yes"; then
 
     if test "$wxUSE_GTK" = 1; then
         echo $ac_n "checking for GTK+ version""... $ac_c" 1>&6
-echo "configure:12143: checking for GTK+ version" >&5
+echo "configure:12176: checking for GTK+ version" >&5
 
         gtk_version_cached=1
         if eval "test \"`echo '$''{'wx_cv_lib_gtk'+set}'`\" = set"; then
@@ -12154,7 +12187,7 @@ else
                     GTK_MODULES=gthread
                 fi
 
-                wx_cv_lib_gtk=
+                                                wx_cv_lib_gtk=
                 if test "x$wxUSE_GTK2" = "xyes"; then
                     # Check whether --enable-gtktest or --disable-gtktest was given.
 if test "${enable_gtktest+set}" = set; then
@@ -12180,7 +12213,7 @@ fi
   # Extract the first word of "pkg-config", so it can be a program name with args.
 set dummy pkg-config; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:12184: checking for $ac_word" >&5
+echo "configure:12217: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -12228,7 +12261,7 @@ fi
 
   min_gtk_version=2.0.0
   echo $ac_n "checking for GTK+ - version >= $min_gtk_version""... $ac_c" 1>&6
-echo "configure:12232: checking for GTK+ - version >= $min_gtk_version" >&5
+echo "configure:12265: checking for GTK+ - version >= $min_gtk_version" >&5
 
   if test x$PKG_CONFIG != xno ; then
     ## don't try to run the test against uninstalled libtool libs
@@ -12263,7 +12296,7 @@ echo "configure:12232: checking for GTK+ - version >= $min_gtk_version" >&5
   echo $ac_n "cross compiling; assumed OK... $ac_c"
 else
   cat > conftest.$ac_ext <<EOF
-#line 12267 "configure"
+#line 12300 "configure"
 #include "confdefs.h"
 
 #include <gtk/gtk.h>
@@ -12338,7 +12371,7 @@ main ()
 }
 
 EOF
-if { (eval echo configure:12342: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:12375: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -12372,7 +12405,7 @@ fi
           CFLAGS="$CFLAGS $GTK_CFLAGS"
           LIBS="$LIBS $GTK_LIBS"
           cat > conftest.$ac_ext <<EOF
-#line 12376 "configure"
+#line 12409 "configure"
 #include "confdefs.h"
 
 #include <gtk/gtk.h>
@@ -12382,7 +12415,7 @@ int main() {
  return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); 
 ; return 0; }
 EOF
-if { (eval echo configure:12386: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12419: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
    echo "*** The test program compiled, but did not run. This usually means"
           echo "*** that the run-time linker is not finding GTK+ or finding the wrong"
@@ -12413,9 +12446,7 @@ rm -f conftest*
   
   rm -f conf.gtktest
 
-                fi
-
-                if test -z "$wx_cv_lib_gtk"; then
+                else
                     # Check whether --with-gtk-prefix or --without-gtk-prefix was given.
 if test "${with_gtk_prefix+set}" = set; then
   withval="$with_gtk_prefix"
@@ -12466,7 +12497,7 @@ fi
   # Extract the first word of "gtk-config", so it can be a program name with args.
 set dummy gtk-config; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:12470: checking for $ac_word" >&5
+echo "configure:12501: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_GTK_CONFIG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -12501,7 +12532,7 @@ fi
 
   min_gtk_version=1.2.7
   echo $ac_n "checking for GTK - version >= $min_gtk_version""... $ac_c" 1>&6
-echo "configure:12505: checking for GTK - version >= $min_gtk_version" >&5
+echo "configure:12536: checking for GTK - version >= $min_gtk_version" >&5
   no_gtk=""
   if test "$GTK_CONFIG" = "no" ; then
     no_gtk=yes
@@ -12524,7 +12555,7 @@ echo "configure:12505: checking for GTK - version >= $min_gtk_version" >&5
   echo $ac_n "cross compiling; assumed OK... $ac_c"
 else
   cat > conftest.$ac_ext <<EOF
-#line 12528 "configure"
+#line 12559 "configure"
 #include "confdefs.h"
 
 #include <gtk/gtk.h>
@@ -12602,7 +12633,7 @@ main ()
 }
 
 EOF
-if { (eval echo configure:12606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:12637: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -12636,7 +12667,7 @@ fi
           CFLAGS="$CFLAGS $GTK_CFLAGS"
           LIBS="$LIBS $GTK_LIBS"
           cat > conftest.$ac_ext <<EOF
-#line 12640 "configure"
+#line 12671 "configure"
 #include "confdefs.h"
 
 #include <gtk/gtk.h>
@@ -12646,7 +12677,7 @@ int main() {
  return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); 
 ; return 0; }
 EOF
-if { (eval echo configure:12650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12681: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
    echo "*** The test program compiled, but did not run. This usually means"
           echo "*** that the run-time linker is not finding GTK or finding the wrong"
@@ -12684,10 +12715,9 @@ rm -f conftest*
   
   rm -f conf.gtktest
 
-                fi
 
-                if test -z "$wx_cv_lib_gtk"; then
-                    # Check whether --with-gtk-prefix or --without-gtk-prefix was given.
+                    if test -z "$wx_cv_lib_gtk"; then
+                        # Check whether --with-gtk-prefix or --without-gtk-prefix was given.
 if test "${with_gtk_prefix+set}" = set; then
   withval="$with_gtk_prefix"
   gtk_config_prefix="$withval"
@@ -12737,7 +12767,7 @@ fi
   # Extract the first word of "gtk-config", so it can be a program name with args.
 set dummy gtk-config; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:12741: checking for $ac_word" >&5
+echo "configure:12771: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_GTK_CONFIG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -12772,7 +12802,7 @@ fi
 
   min_gtk_version=1.2.3
   echo $ac_n "checking for GTK - version >= $min_gtk_version""... $ac_c" 1>&6
-echo "configure:12776: checking for GTK - version >= $min_gtk_version" >&5
+echo "configure:12806: checking for GTK - version >= $min_gtk_version" >&5
   no_gtk=""
   if test "$GTK_CONFIG" = "no" ; then
     no_gtk=yes
@@ -12795,7 +12825,7 @@ echo "configure:12776: checking for GTK - version >= $min_gtk_version" >&5
   echo $ac_n "cross compiling; assumed OK... $ac_c"
 else
   cat > conftest.$ac_ext <<EOF
-#line 12799 "configure"
+#line 12829 "configure"
 #include "confdefs.h"
 
 #include <gtk/gtk.h>
@@ -12873,7 +12903,7 @@ main ()
 }
 
 EOF
-if { (eval echo configure:12877: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:12907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -12907,7 +12937,7 @@ fi
           CFLAGS="$CFLAGS $GTK_CFLAGS"
           LIBS="$LIBS $GTK_LIBS"
           cat > conftest.$ac_ext <<EOF
-#line 12911 "configure"
+#line 12941 "configure"
 #include "confdefs.h"
 
 #include <gtk/gtk.h>
@@ -12917,7 +12947,7 @@ int main() {
  return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); 
 ; return 0; }
 EOF
-if { (eval echo configure:12921: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
    echo "*** The test program compiled, but did not run. This usually means"
           echo "*** that the run-time linker is not finding GTK or finding the wrong"
@@ -12955,6 +12985,7 @@ rm -f conftest*
   
   rm -f conf.gtktest
 
+                    fi
                 fi
 
                 if test -z "$wx_cv_lib_gtk"; then
@@ -12974,6 +13005,7 @@ fi
 
         case "$wx_cv_lib_gtk" in
             2.0)    WXGTK20=1
+                    TOOLKIT_VERSION=2
                     ;;
             1.2.7)  WXGTK127=1
                     WXGTK12=1
@@ -12998,7 +13030,7 @@ equivalent variable and GTK+ is version 1.2.3 or above.
     # Extract the first word of "pkg-config", so it can be a program name with args.
 set dummy pkg-config; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:13002: checking for $ac_word" >&5
+echo "configure:13034: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -13042,19 +13074,19 @@ fi
      PKG_CONFIG_MIN_VERSION=0.9.0
      if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
         echo $ac_n "checking for pangoft2""... $ac_c" 1>&6
-echo "configure:13046: checking for pangoft2" >&5
+echo "configure:13078: checking for pangoft2" >&5
 
         if $PKG_CONFIG --exists "pangoft2" ; then
             echo "$ac_t""yes" 1>&6
             succeeded=yes
 
             echo $ac_n "checking PANGOFT2_CFLAGS""... $ac_c" 1>&6
-echo "configure:13053: checking PANGOFT2_CFLAGS" >&5
+echo "configure:13085: checking PANGOFT2_CFLAGS" >&5
             PANGOFT2_CFLAGS=`$PKG_CONFIG --cflags "pangoft2"`
             echo "$ac_t""$PANGOFT2_CFLAGS" 1>&6
 
             echo $ac_n "checking PANGOFT2_LIBS""... $ac_c" 1>&6
-echo "configure:13058: checking PANGOFT2_LIBS" >&5
+echo "configure:13090: checking PANGOFT2_LIBS" >&5
             PANGOFT2_LIBS=`$PKG_CONFIG --libs "pangoft2"`
             echo "$ac_t""$PANGOFT2_LIBS" 1>&6
         else
@@ -13088,6 +13120,69 @@ echo "configure:13058: checking PANGOFT2_LIBS" >&5
   fi
 
             fi
+        else
+            if test "$wxUSE_UNICODE" = "yes"; then
+                echo "configure: warning: Unicode configuration not supported with GTK+ 1.x" 1>&2
+                wxUSE_UNICODE=no
+            fi
+        fi
+
+                        if test "$USE_DARWIN" != 1; then
+            for ac_func in poll
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:13135: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 13140 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:13163: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
         fi
 
         TOOLKIT_INCLUDE="$wx_cv_cflags_gtk"
@@ -13098,7 +13193,7 @@ echo "configure:13058: checking PANGOFT2_LIBS" >&5
         GUIDIST=GTK_DIST
 
                 echo $ac_n "checking for gdk_im_open in -lgdk""... $ac_c" 1>&6
-echo "configure:13102: checking for gdk_im_open in -lgdk" >&5
+echo "configure:13197: checking for gdk_im_open in -lgdk" >&5
 ac_lib_var=`echo gdk'_'gdk_im_open | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13106,7 +13201,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgdk  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 13110 "configure"
+#line 13205 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -13117,7 +13212,7 @@ int main() {
 gdk_im_open()
 ; return 0; }
 EOF
-if { (eval echo configure:13121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -13144,7 +13239,7 @@ fi
 
     if test "$wxUSE_MGL" = 1; then
         echo $ac_n "checking for SciTech MGL library""... $ac_c" 1>&6
-echo "configure:13148: checking for SciTech MGL library" >&5
+echo "configure:13243: checking for SciTech MGL library" >&5
         if test "x$MGL_ROOT" = x ; then
             echo "$ac_t""not found" 1>&6
             { echo "configure: error: Cannot find MGL library. Make sure MGL_ROOT is set." 1>&2; exit 1; }
@@ -13154,7 +13249,7 @@ echo "configure:13148: checking for SciTech MGL library" >&5
 
                         case "${host}" in
             *-*-linux* )
-              mgl_os=linux/gcc/glibc
+              mgl_os="linux/gcc/glibc*"
               ;;
             *-pc-msdosdjgpp )
               mgl_os=dos32/dj2
@@ -13192,7 +13287,7 @@ echo "configure:13148: checking for SciTech MGL library" >&5
 
     if test "$wxUSE_MICROWIN" = 1; then
         echo $ac_n "checking for MicroWindows""... $ac_c" 1>&6
-echo "configure:13196: checking for MicroWindows" >&5
+echo "configure:13291: checking for MicroWindows" >&5
         if test "x$MICROWINDOWS" = x ; then
             echo "$ac_t""not found" 1>&6
             { echo "configure: error: Cannot find MicroWindows library. Make sure MICROWINDOWS is set." 1>&2; exit 1; }
@@ -13224,7 +13319,7 @@ echo "configure:13196: checking for MicroWindows" >&5
 # Uses ac_ vars as temps to allow command line to override cache and checks.
 # --without-x overrides everything else, but does not touch the cache.
 echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:13228: checking for X" >&5
+echo "configure:13323: checking for X" >&5
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
@@ -13286,12 +13381,12 @@ if test "$ac_x_includes" = NO; then
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 13290 "configure"
+#line 13385 "configure"
 #include "confdefs.h"
 #include <$x_direct_test_include>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13295: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:13390: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -13360,14 +13455,14 @@ if test "$ac_x_libraries" = NO; then
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 13364 "configure"
+#line 13459 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:13371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13466: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   LIBS="$ac_save_LIBS"
 # We can link X programs with no special library path.
@@ -13473,17 +13568,17 @@ else
     case "`(uname -sr) 2>/dev/null`" in
     "SunOS 5"*)
       echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
-echo "configure:13477: checking whether -R must be followed by a space" >&5
+echo "configure:13572: checking whether -R must be followed by a space" >&5
       ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
       cat > conftest.$ac_ext <<EOF
-#line 13480 "configure"
+#line 13575 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:13487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -13499,14 +13594,14 @@ rm -f conftest*
       else
 	LIBS="$ac_xsave_LIBS -R $x_libraries"
 	cat > conftest.$ac_ext <<EOF
-#line 13503 "configure"
+#line 13598 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:13510: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -13538,7 +13633,7 @@ rm -f conftest*
     # libraries were built with DECnet support.  And karl@cs.umb.edu says
     # the Alpha needs dnet_stub (dnet does not exist).
     echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:13542: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:13637: checking for dnet_ntoa in -ldnet" >&5
 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13546,7 +13641,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 13550 "configure"
+#line 13645 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -13557,7 +13652,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:13561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -13579,7 +13674,7 @@ fi
 
     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
       echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:13583: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:13678: checking for dnet_ntoa in -ldnet_stub" >&5
 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13587,7 +13682,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet_stub  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 13591 "configure"
+#line 13686 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -13598,7 +13693,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:13602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13697: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -13627,12 +13722,12 @@ fi
     # The nsl library prevents programs from opening the X display
     # on Irix 5.2, according to dickey@clark.net.
     echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:13631: checking for gethostbyname" >&5
+echo "configure:13726: checking for gethostbyname" >&5
 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 13636 "configure"
+#line 13731 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -13655,7 +13750,7 @@ gethostbyname();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_gethostbyname=yes"
 else
@@ -13676,7 +13771,7 @@ fi
 
     if test $ac_cv_func_gethostbyname = no; then
       echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:13680: checking for gethostbyname in -lnsl" >&5
+echo "configure:13775: checking for gethostbyname in -lnsl" >&5
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13684,7 +13779,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 13688 "configure"
+#line 13783 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -13695,7 +13790,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:13699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13794: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -13725,12 +13820,12 @@ fi
     # -lsocket must be given before -lnsl if both are needed.
     # We assume that if connect needs -lnsl, so does gethostbyname.
     echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:13729: checking for connect" >&5
+echo "configure:13824: checking for connect" >&5
 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 13734 "configure"
+#line 13829 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -13753,7 +13848,7 @@ connect();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13852: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_connect=yes"
 else
@@ -13774,7 +13869,7 @@ fi
 
     if test $ac_cv_func_connect = no; then
       echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:13778: checking for connect in -lsocket" >&5
+echo "configure:13873: checking for connect in -lsocket" >&5
 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13782,7 +13877,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 13786 "configure"
+#line 13881 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -13793,7 +13888,7 @@ int main() {
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:13797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -13817,12 +13912,12 @@ fi
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:13821: checking for remove" >&5
+echo "configure:13916: checking for remove" >&5
 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 13826 "configure"
+#line 13921 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -13845,7 +13940,7 @@ remove();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_remove=yes"
 else
@@ -13866,7 +13961,7 @@ fi
 
     if test $ac_cv_func_remove = no; then
       echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:13870: checking for remove in -lposix" >&5
+echo "configure:13965: checking for remove in -lposix" >&5
 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13874,7 +13969,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lposix  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 13878 "configure"
+#line 13973 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -13885,7 +13980,7 @@ int main() {
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:13889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -13909,12 +14004,12 @@ fi
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:13913: checking for shmat" >&5
+echo "configure:14008: checking for shmat" >&5
 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 13918 "configure"
+#line 14013 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -13937,7 +14032,7 @@ shmat();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_shmat=yes"
 else
@@ -13958,7 +14053,7 @@ fi
 
     if test $ac_cv_func_shmat = no; then
       echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:13962: checking for shmat in -lipc" >&5
+echo "configure:14057: checking for shmat in -lipc" >&5
 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -13966,7 +14061,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lipc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 13970 "configure"
+#line 14065 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -13977,7 +14072,7 @@ int main() {
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:13981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14010,7 +14105,7 @@ fi
   # libraries we check for below, so use a different variable.
   #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
   echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:14014: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:14109: checking for IceConnectionNumber in -lICE" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14018,7 +14113,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lICE $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 14022 "configure"
+#line 14117 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -14029,7 +14124,7 @@ int main() {
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:14033: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14128: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14065,7 +14160,7 @@ fi
 
         if test "$wxUSE_NANOX" = "yes"; then
             echo $ac_n "checking for MicroWindows/NanoX distribution""... $ac_c" 1>&6
-echo "configure:14069: checking for MicroWindows/NanoX distribution" >&5
+echo "configure:14164: checking for MicroWindows/NanoX distribution" >&5
             if test "x$MICROWIN" = x ; then
                 echo "$ac_t""not found" 1>&6
                 { echo "configure: error: Cannot find MicroWindows library. Make sure MICROWIN is set." 1>&2; exit 1; }
@@ -14080,10 +14175,10 @@ EOF
 
         xpm_link=
         echo $ac_n "checking for Xpm library""... $ac_c" 1>&6
-echo "configure:14084: checking for Xpm library" >&5
+echo "configure:14179: checking for Xpm library" >&5
         
 ac_find_libraries=
-for ac_dir in $SEARCH_LIB;
+for ac_dir in $SEARCH_LIB /usr/lib;
   do
     for ac_extension in a so sl dylib; do
       if test -f "$ac_dir/libXpm.$ac_extension"; then
@@ -14112,7 +14207,7 @@ EOF
             echo "$ac_t""found at $ac_find_libraries" 1>&6
         else
             cat > conftest.$ac_ext <<EOF
-#line 14116 "configure"
+#line 14211 "configure"
 #include "confdefs.h"
 
                     #include <X11/xpm.h>
@@ -14124,7 +14219,7 @@ int main() {
                 
 ; return 0; }
 EOF
-if { (eval echo configure:14128: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14223: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
                     xpm_link=" -lXpm"
@@ -14148,47 +14243,336 @@ fi
 rm -f conftest*
         fi
 
-        wxUSE_UNIVERSAL="yes"
-
-        if test "$wxUSE_NANOX" = "yes"; then
-            TOOLKIT_INCLUDE="-I\$(top_srcdir)/include/wx/x11/nanox -I\$(MICROWIN)/src/include $TOOLKIT_INCLUDE"
-            TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__NANOX__ -DMWPIXEL_FORMAT=MWPF_TRUECOLOR0888 -DHAVE_FILEIO -DHAVE_BMP_SUPPORT=1 -DHAVE_GIF_SUPPORT=1 -DHAVE_PNM_SUPPORT=1 -DHAVE_XPM_SUPPORT=1 -DLINUX=1 -DUNIX=1 -DUSE_EXPOSURE -DSCREEN_HEIGHT=480 -DSCREEN_WIDTH=640 -DSCREEN_DEPTH=4 -DX11=1"
-            GUI_TK_LIBRARY="$GUI_TK_LIBRARY \$(MICROWIN)/src/lib/libnano-X.a"
-        else
-            GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lX11$xpm_link"
-        fi
-
-        TOOLKIT_VPATH="\${top_srcdir}/src/x11"
-        TOOLKIT=X11
-        GUIDIST=X11_DIST
-    fi
+        if test "$wxUSE_UNICODE" = "yes"; then
+                
+  succeeded=no
 
-    if test "$wxUSE_WINE" = 1; then
-        ac_safe=`echo "windows.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for windows.h""... $ac_c" 1>&6
-echo "configure:14170: checking for windows.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  if test -z "$PKG_CONFIG"; then
+    # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:14255: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 14175 "configure"
-#include "confdefs.h"
-#include <windows.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:14180: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
+  case "$PKG_CONFIG" in
+  /*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+  ;;
+esac
+fi
+PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+if test -n "$PKG_CONFIG"; then
+  echo "$ac_t""$PKG_CONFIG" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  fi
+
+  if test "$PKG_CONFIG" = "no" ; then
+     echo "*** The pkg-config script could not be found. Make sure it is"
+     echo "*** in your path, or set the PKG_CONFIG environment variable"
+     echo "*** to the full path to pkg-config."
+     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+  else
+     PKG_CONFIG_MIN_VERSION=0.9.0
+     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+        echo $ac_n "checking for pangox""... $ac_c" 1>&6
+echo "configure:14299: checking for pangox" >&5
+
+        if $PKG_CONFIG --exists "pangox" ; then
+            echo "$ac_t""yes" 1>&6
+            succeeded=yes
+
+            echo $ac_n "checking PANGOX_CFLAGS""... $ac_c" 1>&6
+echo "configure:14306: checking PANGOX_CFLAGS" >&5
+            PANGOX_CFLAGS=`$PKG_CONFIG --cflags "pangox"`
+            echo "$ac_t""$PANGOX_CFLAGS" 1>&6
+
+            echo $ac_n "checking PANGOX_LIBS""... $ac_c" 1>&6
+echo "configure:14311: checking PANGOX_LIBS" >&5
+            PANGOX_LIBS=`$PKG_CONFIG --libs "pangox"`
+            echo "$ac_t""$PANGOX_LIBS" 1>&6
+        else
+            PANGOX_CFLAGS=""
+            PANGOX_LIBS=""
+            ## If we have a custom action on failure, don't print errors, but 
+            ## do set a variable so people can do so.
+            PANGOX_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "pangox"`
+            
+        fi
+
+        
+        
+     else
+        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+        echo "*** See http://www.freedesktop.org/software/pkgconfig"
+     fi
+  fi
+
+  if test $succeeded = yes; then
+     
+                        CXXFLAGS="$CXXFLAGS $PANGOX_CFLAGS"
+                        LIBS="$LIBS $PANGOX_LIBS"
+                    
+  else
+     
+                        { echo "configure: error: pangox library not found, library cannot be compiled in Unicode mode" 1>&2; exit 1; }
+                    
+                
+  fi
+
+                
+  succeeded=no
+
+  if test -z "$PKG_CONFIG"; then
+    # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:14350: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$PKG_CONFIG" in
+  /*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+  ;;
+esac
+fi
+PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+if test -n "$PKG_CONFIG"; then
+  echo "$ac_t""$PKG_CONFIG" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  fi
+
+  if test "$PKG_CONFIG" = "no" ; then
+     echo "*** The pkg-config script could not be found. Make sure it is"
+     echo "*** in your path, or set the PKG_CONFIG environment variable"
+     echo "*** to the full path to pkg-config."
+     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+  else
+     PKG_CONFIG_MIN_VERSION=0.9.0
+     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+        echo $ac_n "checking for pangoft2""... $ac_c" 1>&6
+echo "configure:14394: checking for pangoft2" >&5
+
+        if $PKG_CONFIG --exists "pangoft2" ; then
+            echo "$ac_t""yes" 1>&6
+            succeeded=yes
+
+            echo $ac_n "checking PANGOFT2_CFLAGS""... $ac_c" 1>&6
+echo "configure:14401: checking PANGOFT2_CFLAGS" >&5
+            PANGOFT2_CFLAGS=`$PKG_CONFIG --cflags "pangoft2"`
+            echo "$ac_t""$PANGOFT2_CFLAGS" 1>&6
+
+            echo $ac_n "checking PANGOFT2_LIBS""... $ac_c" 1>&6
+echo "configure:14406: checking PANGOFT2_LIBS" >&5
+            PANGOFT2_LIBS=`$PKG_CONFIG --libs "pangoft2"`
+            echo "$ac_t""$PANGOFT2_LIBS" 1>&6
+        else
+            PANGOFT2_CFLAGS=""
+            PANGOFT2_LIBS=""
+            ## If we have a custom action on failure, don't print errors, but 
+            ## do set a variable so people can do so.
+            PANGOFT2_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "pangoft2"`
+            
+        fi
+
+        
+        
+     else
+        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+        echo "*** See http://www.freedesktop.org/software/pkgconfig"
+     fi
+  fi
+
+  if test $succeeded = yes; then
+     
+                        CXXFLAGS="$CXXFLAGS $PANGOFT2_CFLAGS"
+                        LIBS="$LIBS $PANGOFT2_LIBS"
+                    
+  else
+     
+                        echo "configure: warning: pangoft2 library not found, library will be compiled without printing support" 1>&2
+                        wxUSE_PRINTING_ARCHITECTURE="no"
+                    
+                
+  fi
+
+                
+  succeeded=no
+
+  if test -z "$PKG_CONFIG"; then
+    # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:14446: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$PKG_CONFIG" in
+  /*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+  ;;
+esac
+fi
+PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+if test -n "$PKG_CONFIG"; then
+  echo "$ac_t""$PKG_CONFIG" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  fi
+
+  if test "$PKG_CONFIG" = "no" ; then
+     echo "*** The pkg-config script could not be found. Make sure it is"
+     echo "*** in your path, or set the PKG_CONFIG environment variable"
+     echo "*** to the full path to pkg-config."
+     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+  else
+     PKG_CONFIG_MIN_VERSION=0.9.0
+     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+        echo $ac_n "checking for pangoxft""... $ac_c" 1>&6
+echo "configure:14490: checking for pangoxft" >&5
+
+        if $PKG_CONFIG --exists "pangoxft" ; then
+            echo "$ac_t""yes" 1>&6
+            succeeded=yes
+
+            echo $ac_n "checking PANGOXFT_CFLAGS""... $ac_c" 1>&6
+echo "configure:14497: checking PANGOXFT_CFLAGS" >&5
+            PANGOXFT_CFLAGS=`$PKG_CONFIG --cflags "pangoxft"`
+            echo "$ac_t""$PANGOXFT_CFLAGS" 1>&6
+
+            echo $ac_n "checking PANGOXFT_LIBS""... $ac_c" 1>&6
+echo "configure:14502: checking PANGOXFT_LIBS" >&5
+            PANGOXFT_LIBS=`$PKG_CONFIG --libs "pangoxft"`
+            echo "$ac_t""$PANGOXFT_LIBS" 1>&6
+        else
+            PANGOXFT_CFLAGS=""
+            PANGOXFT_LIBS=""
+            ## If we have a custom action on failure, don't print errors, but 
+            ## do set a variable so people can do so.
+            PANGOXFT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "pangoxft"`
+            
+        fi
+
+        
+        
+     else
+        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+        echo "*** See http://www.freedesktop.org/software/pkgconfig"
+     fi
+  fi
+
+  if test $succeeded = yes; then
+     
+                        CXXFLAGS="$CXXFLAGS $PANGOXFT_CFLAGS"
+                        LIBS="$LIBS $PANGOXFT_LIBS"
+                    
+  else
+     
+                        echo "configure: warning: pangoxft library not found, library will be compiled without anti-aliasing support" 1>&2
+                    
+                
+  fi
+
+        fi
+
+        wxUSE_UNIVERSAL="yes"
+
+        if test "$wxUSE_NANOX" = "yes"; then
+            TOOLKIT_INCLUDE="-I\$(top_srcdir)/include/wx/x11/nanox -I\$(MICROWIN)/src/include $TOOLKIT_INCLUDE"
+            TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__NANOX__ -DMWPIXEL_FORMAT=MWPF_TRUECOLOR0888 -DHAVE_FILEIO -DHAVE_BMP_SUPPORT=1 -DHAVE_GIF_SUPPORT=1 -DHAVE_PNM_SUPPORT=1 -DHAVE_XPM_SUPPORT=1 -DLINUX=1 -DUNIX=1 -DUSE_EXPOSURE -DSCREEN_HEIGHT=480 -DSCREEN_WIDTH=640 -DSCREEN_DEPTH=4 -DX11=1"
+            GUI_TK_LIBRARY="$GUI_TK_LIBRARY \$(MICROWIN)/src/lib/libnano-X.a"
+        else
+            GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lX11$xpm_link"
+        fi
+
+        TOOLKIT_VPATH="\${top_srcdir}/src/x11"
+        TOOLKIT=X11
+        GUIDIST=X11_DIST
+    fi
+
+    if test "$wxUSE_WINE" = 1; then
+        ac_safe=`echo "windows.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for windows.h""... $ac_c" 1>&6
+echo "configure:14554: checking for windows.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 14559 "configure"
+#include "confdefs.h"
+#include <windows.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:14564: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
 fi
 if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
@@ -14203,10 +14587,10 @@ fi
 
         xpm_link=
         echo $ac_n "checking for Xpm library""... $ac_c" 1>&6
-echo "configure:14207: checking for Xpm library" >&5
+echo "configure:14591: checking for Xpm library" >&5
         
 ac_find_libraries=
-for ac_dir in $SEARCH_LIB;
+for ac_dir in $SEARCH_LIB /usr/lib;
   do
     for ac_extension in a so sl dylib; do
       if test -f "$ac_dir/libXpm.$ac_extension"; then
@@ -14231,10 +14615,10 @@ EOF
 
         mesa_link=
         echo $ac_n "checking for Mesa library""... $ac_c" 1>&6
-echo "configure:14235: checking for Mesa library" >&5
+echo "configure:14619: checking for Mesa library" >&5
         
 ac_find_libraries=
-for ac_dir in $SEARCH_LIB;
+for ac_dir in $SEARCH_LIB /usr/lib;
   do
     for ac_extension in a so sl dylib; do
       if test -f "$ac_dir/libMesaGL.$ac_extension"; then
@@ -14281,17 +14665,17 @@ else
     case "`(uname -sr) 2>/dev/null`" in
     "SunOS 5"*)
       echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
-echo "configure:14285: checking whether -R must be followed by a space" >&5
+echo "configure:14669: checking whether -R must be followed by a space" >&5
       ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
       cat > conftest.$ac_ext <<EOF
-#line 14288 "configure"
+#line 14672 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:14295: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -14307,14 +14691,14 @@ rm -f conftest*
       else
 	LIBS="$ac_xsave_LIBS -R $x_libraries"
 	cat > conftest.$ac_ext <<EOF
-#line 14311 "configure"
+#line 14695 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:14318: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -14346,7 +14730,7 @@ rm -f conftest*
     # libraries were built with DECnet support.  And karl@cs.umb.edu says
     # the Alpha needs dnet_stub (dnet does not exist).
     echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:14350: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:14734: checking for dnet_ntoa in -ldnet" >&5
 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14354,7 +14738,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 14358 "configure"
+#line 14742 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -14365,7 +14749,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:14369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14753: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14387,7 +14771,7 @@ fi
 
     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
       echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:14391: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:14775: checking for dnet_ntoa in -ldnet_stub" >&5
 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14395,7 +14779,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldnet_stub  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 14399 "configure"
+#line 14783 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -14406,7 +14790,7 @@ int main() {
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:14410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14794: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14435,12 +14819,12 @@ fi
     # The nsl library prevents programs from opening the X display
     # on Irix 5.2, according to dickey@clark.net.
     echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:14439: checking for gethostbyname" >&5
+echo "configure:14823: checking for gethostbyname" >&5
 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 14444 "configure"
+#line 14828 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -14463,7 +14847,7 @@ gethostbyname();
 
 ; return 0; }
 EOF
-if { (eval echo configure:14467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_gethostbyname=yes"
 else
@@ -14484,7 +14868,7 @@ fi
 
     if test $ac_cv_func_gethostbyname = no; then
       echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:14488: checking for gethostbyname in -lnsl" >&5
+echo "configure:14872: checking for gethostbyname in -lnsl" >&5
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14492,7 +14876,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 14496 "configure"
+#line 14880 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -14503,7 +14887,7 @@ int main() {
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:14507: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14533,12 +14917,12 @@ fi
     # -lsocket must be given before -lnsl if both are needed.
     # We assume that if connect needs -lnsl, so does gethostbyname.
     echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:14537: checking for connect" >&5
+echo "configure:14921: checking for connect" >&5
 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 14542 "configure"
+#line 14926 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -14561,7 +14945,7 @@ connect();
 
 ; return 0; }
 EOF
-if { (eval echo configure:14565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_connect=yes"
 else
@@ -14582,7 +14966,7 @@ fi
 
     if test $ac_cv_func_connect = no; then
       echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:14586: checking for connect in -lsocket" >&5
+echo "configure:14970: checking for connect in -lsocket" >&5
 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14590,7 +14974,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 14594 "configure"
+#line 14978 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -14601,7 +14985,7 @@ int main() {
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:14605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14625,12 +15009,12 @@ fi
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:14629: checking for remove" >&5
+echo "configure:15013: checking for remove" >&5
 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 14634 "configure"
+#line 15018 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -14653,7 +15037,7 @@ remove();
 
 ; return 0; }
 EOF
-if { (eval echo configure:14657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_remove=yes"
 else
@@ -14674,7 +15058,7 @@ fi
 
     if test $ac_cv_func_remove = no; then
       echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:14678: checking for remove in -lposix" >&5
+echo "configure:15062: checking for remove in -lposix" >&5
 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14682,7 +15066,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lposix  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 14686 "configure"
+#line 15070 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -14693,7 +15077,7 @@ int main() {
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:14697: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14717,12 +15101,12 @@ fi
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:14721: checking for shmat" >&5
+echo "configure:15105: checking for shmat" >&5
 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 14726 "configure"
+#line 15110 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -14745,7 +15129,7 @@ shmat();
 
 ; return 0; }
 EOF
-if { (eval echo configure:14749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_shmat=yes"
 else
@@ -14766,7 +15150,7 @@ fi
 
     if test $ac_cv_func_shmat = no; then
       echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:14770: checking for shmat in -lipc" >&5
+echo "configure:15154: checking for shmat in -lipc" >&5
 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14774,7 +15158,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lipc  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 14778 "configure"
+#line 15162 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -14785,7 +15169,7 @@ int main() {
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:14789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15173: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14818,7 +15202,7 @@ fi
   # libraries we check for below, so use a different variable.
   #  --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
   echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:14822: checking for IceConnectionNumber in -lICE" >&5
+echo "configure:15206: checking for IceConnectionNumber in -lICE" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -14826,7 +15210,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lICE $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 14830 "configure"
+#line 15214 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -14837,7 +15221,7 @@ int main() {
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:14841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15225: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -14866,16 +15250,16 @@ fi
           { echo "configure: error: X11 not found" 1>&2; exit 1; }
         fi
 
-        GUI_TK_LIBRARY="$X_LIBS"
-        TOOLKIT_INCLUDE="$X_CFLAGS"
+                        GUI_TK_LIBRARY=`echo $X_LIBS | sed 's/ -LNONE//'`
+        TOOLKIT_INCLUDE=`echo $X_CFLAGS | sed 's/ -INONE//'`
         AFMINSTALL=afminstall
         COMPILED_X_PROGRAM=0
 
         echo $ac_n "checking for Motif/Lesstif headers""... $ac_c" 1>&6
-echo "configure:14876: checking for Motif/Lesstif headers" >&5
+echo "configure:15260: checking for Motif/Lesstif headers" >&5
         
 ac_find_includes=
-for ac_dir in $SEARCH_INCLUDE;
+for ac_dir in $SEARCH_INCLUDE /usr/include;
   do
     if test -f "$ac_dir/Xm/Xm.h"; then
       ac_find_includes=$ac_dir
@@ -14886,19 +15270,22 @@ for ac_dir in $SEARCH_INCLUDE;
         if test "$ac_find_includes" != "" ; then
             echo "$ac_t""found in $ac_find_includes" 1>&6
             
-  ac_path_to_include=$ac_find_includes
-  echo "$TOOLKIT_INCLUDE" | grep "\-I$ac_find_includes" > /dev/null
-  result=$?
-  if test $result = 0; then
+    if test "x$ac_find_includes" = "x/usr/include"; then
     ac_path_to_include=""
   else
-    ac_path_to_include=" -I$ac_find_includes"
+    echo "$TOOLKIT_INCLUDE" | grep "\-I$ac_find_includes" > /dev/null
+    result=$?
+    if test $result = 0; then
+      ac_path_to_include=""
+    else
+      ac_path_to_include=" -I$ac_find_includes"
+    fi
   fi
 
             TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE$ac_path_to_include"
         else
             cat > conftest.$ac_ext <<EOF
-#line 14902 "configure"
+#line 15289 "configure"
 #include "confdefs.h"
 
                     #include <Xm/Xm.h>
@@ -14910,7 +15297,7 @@ int main() {
                 
 ; return 0; }
 EOF
-if { (eval echo configure:14914: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
                     echo "$ac_t""found in default search path" 1>&6
@@ -14931,10 +15318,10 @@ rm -f conftest*
 
         if test "$COMPILED_X_PROGRAM" = 0; then
             echo $ac_n "checking for Motif/Lesstif library""... $ac_c" 1>&6
-echo "configure:14935: checking for Motif/Lesstif library" >&5
+echo "configure:15322: checking for Motif/Lesstif library" >&5
             
 ac_find_libraries=
-for ac_dir in $SEARCH_LIB;
+for ac_dir in $SEARCH_LIB /usr/lib;
   do
     for ac_extension in a so sl dylib; do
       if test -f "$ac_dir/libXm.$ac_extension"; then
@@ -14962,7 +15349,7 @@ for ac_dir in $SEARCH_LIB;
                 CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
 
                 cat > conftest.$ac_ext <<EOF
-#line 14966 "configure"
+#line 15353 "configure"
 #include "confdefs.h"
 
                         #include <Xm/Xm.h>
@@ -14974,7 +15361,7 @@ int main() {
                     
 ; return 0; }
 EOF
-if { (eval echo configure:14978: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15365: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
                         echo "$ac_t""found in default search path" 1>&6
@@ -14998,10 +15385,10 @@ rm -f conftest*
 
         xpm_link=
         echo $ac_n "checking for Xpm library""... $ac_c" 1>&6
-echo "configure:15002: checking for Xpm library" >&5
+echo "configure:15389: checking for Xpm library" >&5
         
 ac_find_libraries=
-for ac_dir in $SEARCH_LIB;
+for ac_dir in $SEARCH_LIB /usr/lib;
   do
     for ac_extension in a so sl dylib; do
       if test -f "$ac_dir/libXpm.$ac_extension"; then
@@ -15034,7 +15421,7 @@ EOF
             CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
 
             cat > conftest.$ac_ext <<EOF
-#line 15038 "configure"
+#line 15425 "configure"
 #include "confdefs.h"
 
                     #include <X11/xpm.h>
@@ -15046,7 +15433,7 @@ int main() {
                 
 ; return 0; }
 EOF
-if { (eval echo configure:15050: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15437: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
                     xpm_link=" -lXpm"
@@ -15073,7 +15460,7 @@ rm -f conftest*
         fi
 
         echo $ac_n "checking if we need -lXp and/or -lSM -lICE""... $ac_c" 1>&6
-echo "configure:15077: checking if we need -lXp and/or -lSM -lICE" >&5
+echo "configure:15464: checking if we need -lXp and/or -lSM -lICE" >&5
         libp_link=""
         libsm_ice_link=""
         libs_found=0
@@ -15087,7 +15474,7 @@ echo "configure:15077: checking if we need -lXp and/or -lSM -lICE" >&5
                         CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
 
                         cat > conftest.$ac_ext <<EOF
-#line 15091 "configure"
+#line 15478 "configure"
 #include "confdefs.h"
 
                                 #include <Xm/Xm.h>
@@ -15102,7 +15489,7 @@ int main() {
                             
 ; return 0; }
 EOF
-if { (eval echo configure:15106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   
                                 libp_link="$libp"
@@ -15148,6 +15535,11 @@ rm -f conftest*
     if test "$wxUSE_PM" = 1; then
         TOOLKIT=PM
         GUIDIST=GTK_DIST
+        echo "configure: warning: OS/2 PM requires old resource format, re-enabled" 1>&2
+	wxUSE_PROLOGIO="yes"
+	wxUSE_RESOURCES="yes"
+        echo "configure: warning: OS/2 threads are not yet supported... disabled" 1>&2
+	wxUSE_THREADS="no"
     fi
 
         if test "$TOOLKIT" = "PM" ; then
@@ -15245,17 +15637,17 @@ if test "$wxUSE_OPENGL" = "yes"; then
     else
         ac_safe=`echo "GL/gl.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for GL/gl.h""... $ac_c" 1>&6
-echo "configure:15249: checking for GL/gl.h" >&5
+echo "configure:15641: checking for GL/gl.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15254 "configure"
+#line 15646 "configure"
 #include "confdefs.h"
 #include <GL/gl.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:15259: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:15651: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -15273,10 +15665,10 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   
                 echo $ac_n "checking for -lGL""... $ac_c" 1>&6
-echo "configure:15277: checking for -lGL" >&5
+echo "configure:15669: checking for -lGL" >&5
                 
 ac_find_libraries=
-for ac_dir in $SEARCH_LIB;
+for ac_dir in $SEARCH_LIB /usr/lib;
   do
     for ac_extension in a so sl dylib; do
       if test -f "$ac_dir/libGL.$ac_extension"; then
@@ -15306,10 +15698,10 @@ for ac_dir in $SEARCH_LIB;
                 else
                     echo "$ac_t""no" 1>&6
                     echo $ac_n "checking for -lMesaGL""... $ac_c" 1>&6
-echo "configure:15310: checking for -lMesaGL" >&5
+echo "configure:15702: checking for -lMesaGL" >&5
                     
 ac_find_libraries=
-for ac_dir in $SEARCH_LIB;
+for ac_dir in $SEARCH_LIB /usr/lib;
   do
     for ac_extension in a so sl dylib; do
       if test -f "$ac_dir/libMesaGL.$ac_extension"; then
@@ -15378,8 +15770,10 @@ if test "$wxUSE_DEBUG_FLAG" = "yes"; then
     lib_debug_suffix=d
 fi
 
-TOOLCHAIN_NAME="${TOOLKIT_DIR}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}-${WX_RELEASE}"
-TOOLCHAIN_NAME_GL="${TOOLKIT_DIR}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}_gl-${WX_RELEASE}"
+WX_VERSION_TAG=`echo WX${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}_${WX_RELEASE} | tr "[a-z]" "[A-Z]"`
+
+TOOLCHAIN_NAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}-${WX_RELEASE}"
+TOOLCHAIN_NAME_GL="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}_gl-${WX_RELEASE}"
 
 if test "$cross_compiling" = "yes"; then
     TOOLCHAIN_NAME="${TOOLCHAIN_NAME}-${host_alias}"
@@ -15388,6 +15782,7 @@ fi
 
 WX_LIBRARY="wx_${TOOLCHAIN_NAME}"
 WX_LIBRARY_GL="wx_${TOOLCHAIN_NAME_GL}"
+WX_LIBRARY_BASENAME="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}"
 
 WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
 WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
@@ -15444,19 +15839,64 @@ if test "$wxUSE_SHARED" = "yes"; then
     esac
 fi
 
-if test "$wxUSE_SHARED" = "yes"; then
-
-        if test "$wxUSE_OPENGL" = "yes"; then
-        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
-        WX_ALL="\$(build_libdir)/${WX_LIBRARY_LINK1} \$(build_libdir)/${WX_LIBRARY_LINK1_GL}"
-    else
-        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
-        WX_ALL="\$(build_libdir)/${WX_LIBRARY_LINK1}"
-    fi
+if test "$wxUSE_SHARED" = "yes"; then
+
+        if test "$wxUSE_OPENGL" = "yes"; then
+        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
+        WX_ALL="\$(build_libdir)/${WX_LIBRARY_LINK1} \$(build_libdir)/${WX_LIBRARY_LINK1_GL}"
+    else
+        WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
+        WX_ALL="\$(build_libdir)/${WX_LIBRARY_LINK1}"
+    fi
+
+        if test "$GCC" = "yes"; then
+                PIC_FLAG="-fPIC"
+    fi
+
+
+        
+  found_versioning=no
+
+    case "${host}" in
+    *-*-solaris2* )
+      if test "x$GCC" != "xyes" ; then
+          LDFLAGS_VERSIONING="-M \$(top_builddir)/version-script"
+          found_versioning=yes
+      fi
+    ;;
+  esac
+  
+    if test $found_versioning = no ; then
+      echo $ac_n "checking if the linker accepts --version-script""... $ac_c" 1>&6
+echo "configure:15872: checking if the linker accepts --version-script" >&5
+if eval "test \"`echo '$''{'wx_cv_version_script'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+        echo "VER_1 { *; };" >conftest.sym
+        echo "int main() { return 0; }" >conftest.cpp
+  
+        if { ac_try='
+                $CXX -o conftest.output $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.cpp
+                -Wl,--version-script,conftest.sym >/dev/null 2>conftest.stderr'; { (eval echo configure:15882: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } ; then
+          if test -s conftest.stderr ; then
+              wx_cv_version_script=no
+          else
+              wx_cv_version_script=yes
+          fi
+        else
+          wx_cv_version_script=no
+        fi
+        rm -f conftest.output conftest.stderr conftest.sym conftest.cpp
+      
+fi
+
+echo "$ac_t""$wx_cv_version_script" 1>&6
+      if test $wx_cv_version_script = yes ; then
+        LDFLAGS_VERSIONING="-Wl,--version-script,\$(top_builddir)/version-script"
+      fi
+  fi
 
-        if test "$GCC" = "yes"; then
-                PIC_FLAG="-fPIC"
-    fi
 
         SHARED_LD="${CXX} -shared -o"
 
@@ -15482,13 +15922,13 @@ if test "$wxUSE_SHARED" = "yes"; then
       *-*-linux* )
         if test "$GCC" != "yes"; then
             echo $ac_n "checking for Intel compiler""... $ac_c" 1>&6
-echo "configure:15486: checking for Intel compiler" >&5
+echo "configure:15926: checking for Intel compiler" >&5
 if eval "test \"`echo '$''{'wx_cv_prog_icc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
                 cat > conftest.$ac_ext <<EOF
-#line 15492 "configure"
+#line 15932 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -15499,7 +15939,7 @@ int main() {
                     
 ; return 0; }
 EOF
-if { (eval echo configure:15503: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15943: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wx_cv_prog_icc=yes
 else
@@ -15548,10 +15988,11 @@ echo "$ac_t""$wx_cv_prog_icc" 1>&6
       ;;
 
       *-*-aix* )
-                        # Extract the first word of "makeC++SharedLib", so it can be a program name with args.
+                if test "$GCC" != "yes"; then
+                                    # Extract the first word of "makeC++SharedLib", so it can be a program name with args.
 set dummy makeC++SharedLib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:15555: checking for $ac_word" >&5
+echo "configure:15996: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AIX_CXX_LD'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -15579,11 +16020,11 @@ else
 fi
 
 
-        SHARED_LD="$(AIX_CXX_LD) -p 0 -o"
+            SHARED_LD="$(AIX_CXX_LD) -p 0 -o"
+        fi
       ;;
 
       *-*-cygwin* | *-*-mingw32* )
-
         WX_LIBRARY_IMPORTLIB="${WX_LIBRARY_NAME_SHARED}.a"
 
         SHARED_LD="${CXX} -shared -Wl,--out-implib,lib/${WX_LIBRARY_IMPORTLIB} -o"
@@ -15603,9 +16044,14 @@ fi
                         SHARED_LD="${LD} -shared -o"
       ;;
 
+      *-*-irix* )
+                if test "$GCC" != "yes"; then
+            PIC_FLAG="-KPIC"
+        fi
+      ;;
+
       *-*-freebsd* | *-*-openbsd* | *-*-netbsd* | \
       *-*-sunos4* | \
-      *-*-irix5* | *-*-irix6* | \
       *-*-osf* | \
       *-*-dgux5* | \
       *-*-sysv5* )
@@ -15659,7 +16105,7 @@ if test "$wxUSE_MAC" = 1; then
     # Extract the first word of "Rez", so it can be a program name with args.
 set dummy Rez; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:15663: checking for $ac_word" >&5
+echo "configure:16109: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RESCOMP'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -15689,7 +16135,7 @@ fi
     # Extract the first word of "DeRez", so it can be a program name with args.
 set dummy DeRez; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:15693: checking for $ac_word" >&5
+echo "configure:16139: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_DEREZ'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -15717,13 +16163,8 @@ else
 fi
 
     MACOSX_BUNDLE="bundle"
-    if test "$wxUSE_SHARED" = "yes"; then
-                LIBWXMACRESCOMP="\$(RESCOMP) -t APPL Carbon.r -o \$(BIN_PROGRAM)"
-        LIBWXMACRESWXCONFIG="${RESCOMP} -t APPL Carbon.r -o"
-    else
-                LIBWXMACRESCOMP="\$(RESCOMP) -t APPL Carbon.r ${LIBWXMACRES} -o \$(BIN_PROGRAM)"
-        LIBWXMACRESWXCONFIG="${RESCOMP} -t APPL Carbon.r \${prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
-    fi
+            LIBWXMACRESCOMP="\$(RESCOMP) -t APPL Carbon.r ${LIBWXMACRES} -o \$(BIN_PROGRAM)"
+    LIBWXMACRESWXCONFIG="${RESCOMP} -t APPL Carbon.r \${prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
 else
     if test "$wxUSE_PM" = 1; then
         LIBWXMACRESCOMP="emxbind -ep \$(BIN_PROGRAM)"
@@ -15732,12 +16173,12 @@ fi
 
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:15736: checking for ANSI C header files" >&5
+echo "configure:16177: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15741 "configure"
+#line 16182 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -15745,7 +16186,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:15749: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:16190: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -15762,7 +16203,7 @@ rm -f conftest*
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 15766 "configure"
+#line 16207 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -15780,7 +16221,7 @@ fi
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 15784 "configure"
+#line 16225 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -15801,7 +16242,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 15805 "configure"
+#line 16246 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -15812,7 +16253,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:15816: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:16257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -15836,12 +16277,12 @@ EOF
 fi
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:15840: checking for mode_t" >&5
+echo "configure:16281: checking for mode_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15845 "configure"
+#line 16286 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -15869,12 +16310,12 @@ EOF
 fi
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:15873: checking for off_t" >&5
+echo "configure:16314: checking for off_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15878 "configure"
+#line 16319 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -15902,12 +16343,12 @@ EOF
 fi
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:15906: checking for pid_t" >&5
+echo "configure:16347: checking for pid_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15911 "configure"
+#line 16352 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -15935,12 +16376,12 @@ EOF
 fi
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:15939: checking for size_t" >&5
+echo "configure:16380: checking for size_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15944 "configure"
+#line 16385 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -15968,12 +16409,12 @@ EOF
 fi
 
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:15972: checking for uid_t in sys/types.h" >&5
+echo "configure:16413: checking for uid_t in sys/types.h" >&5
 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15977 "configure"
+#line 16418 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -16011,12 +16452,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
 echo $ac_n "checking if size_t is unsigned int""... $ac_c" 1>&6
-echo "configure:16015: checking if size_t is unsigned int" >&5
+echo "configure:16456: checking if size_t is unsigned int" >&5
 if eval "test \"`echo '$''{'wx_cv_size_t_is_uint'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
                           cat > conftest.$ac_ext <<EOF
-#line 16020 "configure"
+#line 16461 "configure"
 #include "confdefs.h"
 #include <stddef.h>
 int main() {
@@ -16029,7 +16470,7 @@ int main() {
         
 ; return 0; }
 EOF
-if { (eval echo configure:16033: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16474: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wx_cv_size_t_is_uint=no
 else
@@ -16052,12 +16493,12 @@ EOF
 
 else
     echo $ac_n "checking if size_t is unsigned long""... $ac_c" 1>&6
-echo "configure:16056: checking if size_t is unsigned long" >&5
+echo "configure:16497: checking if size_t is unsigned long" >&5
 if eval "test \"`echo '$''{'wx_cv_size_t_is_ulong'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16061 "configure"
+#line 16502 "configure"
 #include "confdefs.h"
 #include <stddef.h>
 int main() {
@@ -16070,7 +16511,7 @@ int main() {
             
 ; return 0; }
 EOF
-if { (eval echo configure:16074: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16515: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wx_cv_size_t_is_ulong=no
 else
@@ -16104,13 +16545,13 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 
 echo $ac_n "checking for pw_gecos in struct passwd""... $ac_c" 1>&6
-echo "configure:16108: checking for pw_gecos in struct passwd" >&5
+echo "configure:16549: checking for pw_gecos in struct passwd" >&5
 if eval "test \"`echo '$''{'wx_cv_struct_pw_gecos'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 16114 "configure"
+#line 16555 "configure"
 #include "confdefs.h"
 #include <pwd.h>
 int main() {
@@ -16121,7 +16562,7 @@ int main() {
              
 ; return 0; }
 EOF
-if { (eval echo configure:16125: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16566: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
                 wx_cv_struct_pw_gecos=yes
@@ -16161,12 +16602,12 @@ EOF
     for ac_func in wcslen
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16165: checking for $ac_func" >&5
+echo "configure:16606: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16170 "configure"
+#line 16611 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16189,7 +16630,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:16193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -16217,7 +16658,7 @@ done
     if test "$WCSLEN_FOUND" = 0; then
         if test "$TOOLKIT" = "MSW"; then
             echo $ac_n "checking for wcslen in -lmsvcrt""... $ac_c" 1>&6
-echo "configure:16221: checking for wcslen in -lmsvcrt" >&5
+echo "configure:16662: checking for wcslen in -lmsvcrt" >&5
 ac_lib_var=`echo msvcrt'_'wcslen | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -16225,7 +16666,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lmsvcrt  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 16229 "configure"
+#line 16670 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -16236,7 +16677,7 @@ int main() {
 wcslen()
 ; return 0; }
 EOF
-if { (eval echo configure:16240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16681: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -16258,7 +16699,7 @@ fi
 
         else
             echo $ac_n "checking for wcslen in -lw""... $ac_c" 1>&6
-echo "configure:16262: checking for wcslen in -lw" >&5
+echo "configure:16703: checking for wcslen in -lw" >&5
 ac_lib_var=`echo w'_'wcslen | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -16266,7 +16707,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lw  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 16270 "configure"
+#line 16711 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -16277,7 +16718,7 @@ int main() {
 wcslen()
 ; return 0; }
 EOF
-if { (eval echo configure:16281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -16313,12 +16754,12 @@ EOF
             for ac_func in wcsrtombs
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16317: checking for $ac_func" >&5
+echo "configure:16758: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16322 "configure"
+#line 16763 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16341,7 +16782,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:16345: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -16381,12 +16822,12 @@ cross_compiling=$ac_cv_prog_cxx_cross
 for ac_func in vsnprintf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16385: checking for $ac_func" >&5
+echo "configure:16826: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16390 "configure"
+#line 16831 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16412,7 +16853,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:16416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -16441,12 +16882,12 @@ if test "$wxUSE_UNICODE" = yes; then
         for ac_func in fputwc wprintf vswprintf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16445: checking for $ac_func" >&5
+echo "configure:16886: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16450 "configure"
+#line 16891 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16472,7 +16913,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:16476: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -16497,16 +16938,16 @@ fi
 done
 
                 echo $ac_n "checking for _vsnwprintf""... $ac_c" 1>&6
-echo "configure:16501: checking for _vsnwprintf" >&5
+echo "configure:16942: checking for _vsnwprintf" >&5
     cat > conftest.$ac_ext <<EOF
-#line 16503 "configure"
+#line 16944 "configure"
 #include "confdefs.h"
 #include <wchar.h>
 int main() {
 &_vsnwprintf;
 ; return 0; }
 EOF
-if { (eval echo configure:16510: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16951: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
                     cat >> confdefs.h <<\EOF
@@ -16558,7 +16999,7 @@ fi
 
 
   echo $ac_n "checking for iconv""... $ac_c" 1>&6
-echo "configure:16562: checking for iconv" >&5
+echo "configure:17003: checking for iconv" >&5
 if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -16566,7 +17007,7 @@ else
     am_cv_func_iconv="no, consider installing GNU libiconv"
     am_cv_lib_iconv=no
     cat > conftest.$ac_ext <<EOF
-#line 16570 "configure"
+#line 17011 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <iconv.h>
@@ -16576,7 +17017,7 @@ iconv_t cd = iconv_open("","");
        iconv_close(cd);
 ; return 0; }
 EOF
-if { (eval echo configure:16580: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   am_cv_func_iconv=yes
 else
@@ -16588,7 +17029,7 @@ rm -f conftest*
       am_save_LIBS="$LIBS"
       LIBS="$LIBS -liconv"
       cat > conftest.$ac_ext <<EOF
-#line 16592 "configure"
+#line 17033 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <iconv.h>
@@ -16598,7 +17039,7 @@ iconv_t cd = iconv_open("","");
          iconv_close(cd);
 ; return 0; }
 EOF
-if { (eval echo configure:16602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   am_cv_lib_iconv=yes
         am_cv_func_iconv=yes
@@ -16619,12 +17060,12 @@ echo "$ac_t""$am_cv_func_iconv" 1>&6
 EOF
 
     echo $ac_n "checking if iconv needs const""... $ac_c" 1>&6
-echo "configure:16623: checking if iconv needs const" >&5
+echo "configure:17064: checking if iconv needs const" >&5
 if eval "test \"`echo '$''{'wx_cv_func_iconv_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16628 "configure"
+#line 17069 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -16643,7 +17084,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:16647: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17088: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wx_cv_func_iconv_const="no"
 else
@@ -16688,12 +17129,12 @@ if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
     for ac_func in sigaction
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16692: checking for $ac_func" >&5
+echo "configure:17133: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16697 "configure"
+#line 17138 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16716,7 +17157,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:16720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -16757,13 +17198,13 @@ cross_compiling=$ac_cv_prog_cxx_cross
 
 
       echo $ac_n "checking for sa_handler type""... $ac_c" 1>&6
-echo "configure:16761: checking for sa_handler type" >&5
+echo "configure:17202: checking for sa_handler type" >&5
 if eval "test \"`echo '$''{'wx_cv_type_sa_handler'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 16767 "configure"
+#line 17208 "configure"
 #include "confdefs.h"
 #include <signal.h>
 int main() {
@@ -16775,7 +17216,7 @@ int main() {
                      
 ; return 0; }
 EOF
-if { (eval echo configure:16779: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17220: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
                         wx_cv_type_sa_handler=int
@@ -16812,12 +17253,12 @@ fi
 for ac_func in mkstemp mktemp
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16816: checking for $ac_func" >&5
+echo "configure:17257: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16821 "configure"
+#line 17262 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -16840,7 +17281,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:16844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17285: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -16866,12 +17307,12 @@ done
 
 
 echo $ac_n "checking for statfs""... $ac_c" 1>&6
-echo "configure:16870: checking for statfs" >&5
+echo "configure:17311: checking for statfs" >&5
 if eval "test \"`echo '$''{'wx_cv_func_statfs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16875 "configure"
+#line 17316 "configure"
 #include "confdefs.h"
 
              #if defined(__BSD__)
@@ -16892,7 +17333,7 @@ int main() {
         
 ; return 0; }
 EOF
-if { (eval echo configure:16896: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17337: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
              wx_cv_func_statfs=yes
@@ -16919,12 +17360,12 @@ EOF
 
 else
     echo $ac_n "checking for statvfs""... $ac_c" 1>&6
-echo "configure:16923: checking for statvfs" >&5
+echo "configure:17364: checking for statvfs" >&5
 if eval "test \"`echo '$''{'wx_cv_func_statvfs'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16928 "configure"
+#line 17369 "configure"
 #include "confdefs.h"
 
                  #include <sys/statvfs.h>
@@ -16940,7 +17381,7 @@ int main() {
             
 ; return 0; }
 EOF
-if { (eval echo configure:16944: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17385: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
                  wx_cv_func_statvfs=yes
@@ -16974,12 +17415,12 @@ if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
     for ac_func in fcntl flock
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:16978: checking for $ac_func" >&5
+echo "configure:17419: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 16983 "configure"
+#line 17424 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -17002,7 +17443,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17006: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17447: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -17036,12 +17477,12 @@ fi
 for ac_func in timegm
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17040: checking for $ac_func" >&5
+echo "configure:17481: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 17045 "configure"
+#line 17486 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -17064,7 +17505,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17068: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17509: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -17092,12 +17533,12 @@ done
 for ac_func in putenv setenv
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17096: checking for $ac_func" >&5
+echo "configure:17537: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 17101 "configure"
+#line 17542 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -17120,7 +17561,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -17167,12 +17608,12 @@ if test "$HAVE_SOME_SLEEP_FUNC" != 1; then
     for ac_func in nanosleep
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17171: checking for $ac_func" >&5
+echo "configure:17612: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 17176 "configure"
+#line 17617 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -17195,7 +17636,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17199: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -17220,7 +17661,7 @@ EOF
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for nanosleep in -lposix4""... $ac_c" 1>&6
-echo "configure:17224: checking for nanosleep in -lposix4" >&5
+echo "configure:17665: checking for nanosleep in -lposix4" >&5
 ac_lib_var=`echo posix4'_'nanosleep | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -17228,7 +17669,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lposix4  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 17232 "configure"
+#line 17673 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -17239,7 +17680,7 @@ int main() {
 nanosleep()
 ; return 0; }
 EOF
-if { (eval echo configure:17243: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -17267,12 +17708,12 @@ else
                     for ac_func in usleep
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17271: checking for $ac_func" >&5
+echo "configure:17712: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 17276 "configure"
+#line 17717 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -17295,7 +17736,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17740: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -17338,12 +17779,12 @@ fi
 for ac_func in uname gethostname
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17342: checking for $ac_func" >&5
+echo "configure:17783: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 17347 "configure"
+#line 17788 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -17366,7 +17807,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17811: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -17403,12 +17844,12 @@ cross_compiling=$ac_cv_prog_cxx_cross
 for ac_func in strtok_r
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17407: checking for $ac_func" >&5
+echo "configure:17848: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 17412 "configure"
+#line 17853 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -17434,7 +17875,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17438: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17879: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -17471,12 +17912,12 @@ INET_LINK=
 for ac_func in inet_addr
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17475: checking for $ac_func" >&5
+echo "configure:17916: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 17480 "configure"
+#line 17921 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -17499,7 +17940,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17503: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -17524,7 +17965,7 @@ EOF
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for inet_addr in -lnsl""... $ac_c" 1>&6
-echo "configure:17528: checking for inet_addr in -lnsl" >&5
+echo "configure:17969: checking for inet_addr in -lnsl" >&5
 ac_lib_var=`echo nsl'_'inet_addr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -17532,7 +17973,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lnsl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 17536 "configure"
+#line 17977 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -17543,7 +17984,7 @@ int main() {
 inet_addr()
 ; return 0; }
 EOF
-if { (eval echo configure:17547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17988: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -17562,7 +18003,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for inet_addr in -lresolv""... $ac_c" 1>&6
-echo "configure:17566: checking for inet_addr in -lresolv" >&5
+echo "configure:18007: checking for inet_addr in -lresolv" >&5
 ac_lib_var=`echo resolv'_'inet_addr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -17570,7 +18011,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lresolv  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 17574 "configure"
+#line 18015 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -17581,7 +18022,7 @@ int main() {
 inet_addr()
 ; return 0; }
 EOF
-if { (eval echo configure:17585: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18026: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -17600,7 +18041,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for inet_addr in -lsocket""... $ac_c" 1>&6
-echo "configure:17604: checking for inet_addr in -lsocket" >&5
+echo "configure:18045: checking for inet_addr in -lsocket" >&5
 ac_lib_var=`echo socket'_'inet_addr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -17608,7 +18049,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 17612 "configure"
+#line 18053 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -17619,7 +18060,7 @@ int main() {
 inet_addr()
 ; return 0; }
 EOF
-if { (eval echo configure:17623: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18064: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -17655,12 +18096,12 @@ done
 for ac_func in inet_aton
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17659: checking for $ac_func" >&5
+echo "configure:18100: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 17664 "configure"
+#line 18105 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -17683,7 +18124,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18128: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -17708,7 +18149,7 @@ EOF
 else
   echo "$ac_t""no" 1>&6
             echo $ac_n "checking for inet_aton in -l$INET_LINK""... $ac_c" 1>&6
-echo "configure:17712: checking for inet_aton in -l$INET_LINK" >&5
+echo "configure:18153: checking for inet_aton in -l$INET_LINK" >&5
 ac_lib_var=`echo $INET_LINK'_'inet_aton | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -17716,7 +18157,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-l$INET_LINK  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 17720 "configure"
+#line 18161 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -17727,7 +18168,7 @@ int main() {
 inet_aton()
 ; return 0; }
 EOF
-if { (eval echo configure:17731: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -17862,18 +18303,18 @@ if test "$TOOLKIT" != "MSW"; then
             case $flag in
                 none)
                     echo $ac_n "checking whether pthreads work without any flags""... $ac_c" 1>&6
-echo "configure:17866: checking whether pthreads work without any flags" >&5
+echo "configure:18307: checking whether pthreads work without any flags" >&5
                     ;;
 
                 -*)
                     echo $ac_n "checking whether pthreads work with $flag""... $ac_c" 1>&6
-echo "configure:17871: checking whether pthreads work with $flag" >&5
+echo "configure:18312: checking whether pthreads work with $flag" >&5
                     THREADS_CFLAGS="$flag"
                     ;;
 
                 *)
                     echo $ac_n "checking for the pthreads library -l$flag""... $ac_c" 1>&6
-echo "configure:17877: checking for the pthreads library -l$flag" >&5
+echo "configure:18318: checking for the pthreads library -l$flag" >&5
                     THREADS_LINK="-l$flag"
                     ;;
               esac
@@ -17884,14 +18325,14 @@ echo "configure:17877: checking for the pthreads library -l$flag" >&5
               CFLAGS="$THREADS_CFLAGS $CFLAGS"
 
               cat > conftest.$ac_ext <<EOF
-#line 17888 "configure"
+#line 18329 "configure"
 #include "confdefs.h"
 #include <pthread.h>
 int main() {
 pthread_create(0,0,0,0);
 ; return 0; }
 EOF
-if { (eval echo configure:17895: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   THREADS_OK=yes
 else
@@ -17920,10 +18361,14 @@ rm -f conftest*
           LIBS="$THREADS_LINK $LIBS"
 
           echo $ac_n "checking if more special flags are required for pthreads""... $ac_c" 1>&6
-echo "configure:17924: checking if more special flags are required for pthreads" >&5
+echo "configure:18365: checking if more special flags are required for pthreads" >&5
           flag=no
           case "${host}" in
-            *-aix* | *-freebsd*)
+            *-aix*)
+                                                                                                                LDFLAGS="-L/usr/lib/threads $LDFLAGS"
+                flag="-D_THREAD_SAFE"
+                ;;
+            *-freebsd*)
                 flag="-D_THREAD_SAFE"
                 ;;
             *-hp-hpux* )
@@ -17949,12 +18394,12 @@ echo "configure:17924: checking if more special flags are required for pthreads"
       for ac_func in thr_setconcurrency
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:17953: checking for $ac_func" >&5
+echo "configure:18398: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 17958 "configure"
+#line 18403 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -17977,7 +18422,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18426: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -18006,17 +18451,17 @@ done
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:18010: checking for $ac_hdr" >&5
+echo "configure:18455: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 18015 "configure"
+#line 18460 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:18020: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:18465: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -18044,12 +18489,12 @@ done
 
       if test "$ac_cv_header_sched_h" = "yes"; then
           echo $ac_n "checking for sched_yield""... $ac_c" 1>&6
-echo "configure:18048: checking for sched_yield" >&5
+echo "configure:18493: checking for sched_yield" >&5
 if eval "test \"`echo '$''{'ac_cv_func_sched_yield'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 18053 "configure"
+#line 18498 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char sched_yield(); below.  */
@@ -18072,7 +18517,7 @@ sched_yield();
 
 ; return 0; }
 EOF
-if { (eval echo configure:18076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_sched_yield=yes"
 else
@@ -18094,7 +18539,7 @@ else
   echo "$ac_t""no" 1>&6
 
                 echo $ac_n "checking for sched_yield in -lposix4""... $ac_c" 1>&6
-echo "configure:18098: checking for sched_yield in -lposix4" >&5
+echo "configure:18543: checking for sched_yield in -lposix4" >&5
 ac_lib_var=`echo posix4'_'sched_yield | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -18102,7 +18547,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lposix4  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 18106 "configure"
+#line 18551 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -18113,7 +18558,7 @@ int main() {
 sched_yield()
 ; return 0; }
 EOF
-if { (eval echo configure:18117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -18146,12 +18591,12 @@ fi
 
                                           HAVE_PRIOR_FUNCS=0
       echo $ac_n "checking for pthread_attr_getschedpolicy""... $ac_c" 1>&6
-echo "configure:18150: checking for pthread_attr_getschedpolicy" >&5
+echo "configure:18595: checking for pthread_attr_getschedpolicy" >&5
 if eval "test \"`echo '$''{'ac_cv_func_pthread_attr_getschedpolicy'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 18155 "configure"
+#line 18600 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char pthread_attr_getschedpolicy(); below.  */
@@ -18174,7 +18619,7 @@ pthread_attr_getschedpolicy();
 
 ; return 0; }
 EOF
-if { (eval echo configure:18178: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18623: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_pthread_attr_getschedpolicy=yes"
 else
@@ -18189,12 +18634,12 @@ fi
 if eval "test \"`echo '$ac_cv_func_'pthread_attr_getschedpolicy`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for pthread_attr_setschedparam""... $ac_c" 1>&6
-echo "configure:18193: checking for pthread_attr_setschedparam" >&5
+echo "configure:18638: checking for pthread_attr_setschedparam" >&5
 if eval "test \"`echo '$''{'ac_cv_func_pthread_attr_setschedparam'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 18198 "configure"
+#line 18643 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char pthread_attr_setschedparam(); below.  */
@@ -18217,7 +18662,7 @@ pthread_attr_setschedparam();
 
 ; return 0; }
 EOF
-if { (eval echo configure:18221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18666: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_pthread_attr_setschedparam=yes"
 else
@@ -18232,12 +18677,12 @@ fi
 if eval "test \"`echo '$ac_cv_func_'pthread_attr_setschedparam`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo $ac_n "checking for sched_get_priority_max""... $ac_c" 1>&6
-echo "configure:18236: checking for sched_get_priority_max" >&5
+echo "configure:18681: checking for sched_get_priority_max" >&5
 if eval "test \"`echo '$''{'ac_cv_func_sched_get_priority_max'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 18241 "configure"
+#line 18686 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes
 else
@@ -18262,7 +18707,7 @@ sched_get_priority_max();
 
 ; return 0; }
 EOF
-if { (eval echo configure:18266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18711: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_sched_get_priority_max=yes"
 else
@@ -18280,7 +18725,7 @@ if eval "test \"`echo '$ac_cv_func_'sched_get_priority_max`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for sched_get_priority_max in -lposix4""... $ac_c" 1>&6
-echo "configure:18284: checking for sched_get_priority_max in -lposix4" >&5
+echo "configure:18729: checking for sched_get_priority_max in -lposix4" >&5
 ac_lib_var=`echo posix4'_'sched_get_priority_max | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -18288,7 +18733,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lposix4  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 18292 "configure"
+#line 18737 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -18299,7 +18744,7 @@ int main() {
 sched_get_priority_max()
 ; return 0; }
 EOF
-if { (eval echo configure:18303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -18344,12 +18789,12 @@ EOF
       fi
 
       echo $ac_n "checking for pthread_cancel""... $ac_c" 1>&6
-echo "configure:18348: checking for pthread_cancel" >&5
+echo "configure:18793: checking for pthread_cancel" >&5
 if eval "test \"`echo '$''{'ac_cv_func_pthread_cancel'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 18353 "configure"
+#line 18798 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char pthread_cancel(); below.  */
@@ -18372,7 +18817,7 @@ pthread_cancel();
 
 ; return 0; }
 EOF
-if { (eval echo configure:18376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_pthread_cancel=yes"
 else
@@ -18397,13 +18842,13 @@ fi
 
 
       echo $ac_n "checking for pthread_cleanup_push/pop""... $ac_c" 1>&6
-echo "configure:18401: checking for pthread_cleanup_push/pop" >&5
+echo "configure:18846: checking for pthread_cleanup_push/pop" >&5
 if eval "test \"`echo '$''{'wx_cv_func_pthread_cleanup_push'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 18407 "configure"
+#line 18852 "configure"
 #include "confdefs.h"
 #include <pthread.h>
 int main() {
@@ -18413,7 +18858,7 @@ int main() {
                      
 ; return 0; }
 EOF
-if { (eval echo configure:18417: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18862: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
                         wx_cv_func_pthread_cleanup_push=yes
@@ -18441,13 +18886,13 @@ EOF
 
                                                 
       echo $ac_n "checking for pthread_mutexattr_t""... $ac_c" 1>&6
-echo "configure:18445: checking for pthread_mutexattr_t" >&5
+echo "configure:18890: checking for pthread_mutexattr_t" >&5
 if eval "test \"`echo '$''{'wx_cv_type_pthread_mutexattr_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
         cat > conftest.$ac_ext <<EOF
-#line 18451 "configure"
+#line 18896 "configure"
 #include "confdefs.h"
 #include <pthread.h>
 int main() {
@@ -18457,7 +18902,7 @@ int main() {
             
 ; return 0; }
 EOF
-if { (eval echo configure:18461: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18906: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
                wx_cv_type_pthread_mutexattr_t=yes
@@ -18484,13 +18929,13 @@ EOF
 
       else
                 echo $ac_n "checking for PTHREAD_RECURSIVE_MUTEX_INITIALIZER""... $ac_c" 1>&6
-echo "configure:18488: checking for PTHREAD_RECURSIVE_MUTEX_INITIALIZER" >&5
+echo "configure:18933: checking for PTHREAD_RECURSIVE_MUTEX_INITIALIZER" >&5
 if eval "test \"`echo '$''{'wx_cv_type_pthread_rec_mutex_init'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
             cat > conftest.$ac_ext <<EOF
-#line 18494 "configure"
+#line 18939 "configure"
 #include "confdefs.h"
 #include <pthread.h>
 int main() {
@@ -18499,7 +18944,7 @@ int main() {
                 
 ; return 0; }
 EOF
-if { (eval echo configure:18503: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18948: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
                     wx_cv_type_pthread_rec_mutex_init=yes
@@ -18534,7 +18979,7 @@ else
       case "${host}" in
         *-*-mingw32* )
                         echo $ac_n "checking if compiler supports -mthreads""... $ac_c" 1>&6
-echo "configure:18538: checking if compiler supports -mthreads" >&5
+echo "configure:18983: checking if compiler supports -mthreads" >&5
 if eval "test \"`echo '$''{'wx_cv_cflags_mthread'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -18542,14 +18987,14 @@ else
                     CFLAGS_OLD="$CFLAGS"
                     CFLAGS="$CFLAGS -mthreads"
                     cat > conftest.$ac_ext <<EOF
-#line 18546 "configure"
+#line 18991 "configure"
 #include "confdefs.h"
 
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:18553: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18998: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wx_cv_cflags_mthread=yes
 else
@@ -18588,7 +19033,7 @@ EOF
 else
       if test "$ac_cv_func_strtok_r" = "yes"; then
     echo $ac_n "checking if -D_REENTRANT is needed""... $ac_c" 1>&6
-echo "configure:18592: checking if -D_REENTRANT is needed" >&5
+echo "configure:19037: checking if -D_REENTRANT is needed" >&5
     if test "$NEEDS_D_REENTRANT_FOR_R_FUNCS" = 1; then
         TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D_REENTRANT"
         echo "$ac_t""yes" 1>&6
@@ -18688,10 +19133,13 @@ if test "$GCC" = "yes" ; then
         CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fno-pcc-struct-return"
     fi
 
-                            case "${host}" in
+                                                case "${host}" in
       powerpc*-*-aix* )
         CODE_GEN_FLAGS="$CODE_GEN_FLAGS -mminimal-toc"
         ;;
+      *-hppa* )
+        CODE_GEN_FLAGS="$CODE_GEN_FLAGS -ffunction-sections"
+        ;;
     esac
 fi
 
@@ -18973,12 +19421,12 @@ if test "$wxUSE_DATETIME" = "yes"; then
         for ac_func in strptime
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18977: checking for $ac_func" >&5
+echo "configure:19425: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 18982 "configure"
+#line 19430 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -19001,7 +19449,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:19005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19453: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -19027,13 +19475,13 @@ done
 
 
             echo $ac_n "checking for timezone variable in <time.h>""... $ac_c" 1>&6
-echo "configure:19031: checking for timezone variable in <time.h>" >&5
+echo "configure:19479: checking for timezone variable in <time.h>" >&5
 if eval "test \"`echo '$''{'wx_cv_var_timezone'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
                         cat > conftest.$ac_ext <<EOF
-#line 19037 "configure"
+#line 19485 "configure"
 #include "confdefs.h"
 
                                 #include <time.h>
@@ -19045,7 +19493,7 @@ int main() {
                             
 ; return 0; }
 EOF
-if { (eval echo configure:19049: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19497: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
                                 wx_cv_var_timezone=timezone
@@ -19056,7 +19504,7 @@ else
   rm -rf conftest*
   
                                 cat > conftest.$ac_ext <<EOF
-#line 19060 "configure"
+#line 19508 "configure"
 #include "confdefs.h"
 
                                         #include <time.h>
@@ -19068,7 +19516,7 @@ int main() {
                                     
 ; return 0; }
 EOF
-if { (eval echo configure:19072: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19520: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
                                         wx_cv_var_timezone=_timezone
@@ -19079,7 +19527,7 @@ else
   rm -rf conftest*
   
                                         cat > conftest.$ac_ext <<EOF
-#line 19083 "configure"
+#line 19531 "configure"
 #include "confdefs.h"
 
                                                 #include <time.h>
@@ -19091,7 +19539,7 @@ int main() {
                                             
 ; return 0; }
 EOF
-if { (eval echo configure:19095: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19543: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
                                                 wx_cv_var_timezone=__timezone
@@ -19132,12 +19580,12 @@ EOF
         for ac_func in localtime
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19136: checking for $ac_func" >&5
+echo "configure:19584: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 19141 "configure"
+#line 19589 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -19160,7 +19608,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:19164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -19187,13 +19635,13 @@ done
 
     if test "$ac_cv_func_localtime" = "yes"; then
         echo $ac_n "checking for tm_gmtoff in struct tm""... $ac_c" 1>&6
-echo "configure:19191: checking for tm_gmtoff in struct tm" >&5
+echo "configure:19639: checking for tm_gmtoff in struct tm" >&5
 if eval "test \"`echo '$''{'wx_cv_struct_tm_has_gmtoff'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
             cat > conftest.$ac_ext <<EOF
-#line 19197 "configure"
+#line 19645 "configure"
 #include "confdefs.h"
 
                     #include <time.h>
@@ -19205,7 +19653,7 @@ int main() {
                 
 ; return 0; }
 EOF
-if { (eval echo configure:19209: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19657: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
                     wx_cv_struct_tm_has_gmtoff=yes
@@ -19234,12 +19682,12 @@ EOF
             for ac_func in gettimeofday ftime
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19238: checking for $ac_func" >&5
+echo "configure:19686: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 19243 "configure"
+#line 19691 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -19262,7 +19710,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:19266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -19289,7 +19737,7 @@ done
 
     if test "$ac_cv_func_gettimeofday" = "yes"; then
         echo $ac_n "checking whether gettimeofday takes two arguments""... $ac_c" 1>&6
-echo "configure:19293: checking whether gettimeofday takes two arguments" >&5
+echo "configure:19741: checking whether gettimeofday takes two arguments" >&5
 if eval "test \"`echo '$''{'wx_cv_func_gettimeofday_has_2_args'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -19304,7 +19752,7 @@ cross_compiling=$ac_cv_prog_cxx_cross
 
 
             cat > conftest.$ac_ext <<EOF
-#line 19308 "configure"
+#line 19756 "configure"
 #include "confdefs.h"
 
                     #include <sys/time.h>
@@ -19317,7 +19765,7 @@ int main() {
                 
 ; return 0; }
 EOF
-if { (eval echo configure:19321: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19769: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wx_cv_func_gettimeofday_has_2_args=yes
 else
@@ -19325,7 +19773,7 @@ else
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 19329 "configure"
+#line 19777 "configure"
 #include "confdefs.h"
 
                         #include <sys/time.h>
@@ -19338,7 +19786,7 @@ int main() {
                     
 ; return 0; }
 EOF
-if { (eval echo configure:19342: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wx_cv_func_gettimeofday_has_2_args=no
 else
@@ -19393,12 +19841,12 @@ fi
 if test "$wxUSE_SOCKETS" = "yes"; then
         if test "$TOOLKIT" != "MSW"; then
                 echo $ac_n "checking for socket""... $ac_c" 1>&6
-echo "configure:19397: checking for socket" >&5
+echo "configure:19845: checking for socket" >&5
 if eval "test \"`echo '$''{'ac_cv_func_socket'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 19402 "configure"
+#line 19850 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char socket(); below.  */
@@ -19421,7 +19869,7 @@ socket();
 
 ; return 0; }
 EOF
-if { (eval echo configure:19425: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19873: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_socket=yes"
 else
@@ -19439,7 +19887,7 @@ if eval "test \"`echo '$ac_cv_func_'socket`\" = yes"; then
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
-echo "configure:19443: checking for socket in -lsocket" >&5
+echo "configure:19891: checking for socket in -lsocket" >&5
 ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -19447,7 +19895,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lsocket  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 19451 "configure"
+#line 19899 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -19458,7 +19906,7 @@ int main() {
 socket()
 ; return 0; }
 EOF
-if { (eval echo configure:19462: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -19494,7 +19942,7 @@ fi
 if test "$wxUSE_SOCKETS" = "yes" ; then
                 if test "$TOOLKIT" != "MSW"; then
                 echo $ac_n "checking what is the type of the third argument of getsockname""... $ac_c" 1>&6
-echo "configure:19498: checking what is the type of the third argument of getsockname" >&5
+echo "configure:19946: checking what is the type of the third argument of getsockname" >&5
 if eval "test \"`echo '$''{'wx_cv_type_getsockname3'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -19509,7 +19957,7 @@ cross_compiling=$ac_cv_prog_cxx_cross
 
 
                 cat > conftest.$ac_ext <<EOF
-#line 19513 "configure"
+#line 19961 "configure"
 #include "confdefs.h"
 
                         #include <sys/types.h>
@@ -19522,7 +19970,7 @@ int main() {
                     
 ; return 0; }
 EOF
-if { (eval echo configure:19526: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19974: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wx_cv_type_getsockname3=socklen_t
 else
@@ -19530,7 +19978,7 @@ else
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 19534 "configure"
+#line 19982 "configure"
 #include "confdefs.h"
 
                             #include <sys/types.h>
@@ -19543,7 +19991,7 @@ int main() {
                         
 ; return 0; }
 EOF
-if { (eval echo configure:19547: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19995: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wx_cv_type_getsockname3=size_t
 else
@@ -19551,7 +19999,7 @@ else
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 19555 "configure"
+#line 20003 "configure"
 #include "confdefs.h"
 
                                 #include <sys/types.h>
@@ -19564,7 +20012,7 @@ int main() {
                             
 ; return 0; }
 EOF
-if { (eval echo configure:19568: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20016: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   wx_cv_type_getsockname3=int
 else
@@ -19636,17 +20084,17 @@ if test "$wxUSE_GUI" = "yes"; then
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:19640: checking for $ac_hdr" >&5
+echo "configure:20088: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 19645 "configure"
+#line 20093 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:19650: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:20098: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -19700,12 +20148,12 @@ if test "$TOOLKIT" != "MSW"; then
                                                 for ac_func in dlopen
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19704: checking for $ac_func" >&5
+echo "configure:20152: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 19709 "configure"
+#line 20157 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -19728,7 +20176,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:19732: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -19756,7 +20204,7 @@ EOF
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:19760: checking for dlopen in -ldl" >&5
+echo "configure:20208: checking for dlopen in -ldl" >&5
 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -19764,7 +20212,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 19768 "configure"
+#line 20216 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -19775,7 +20223,7 @@ int main() {
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:19779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -19804,12 +20252,12 @@ else
                                 for ac_func in shl_load
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19808: checking for $ac_func" >&5
+echo "configure:20256: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 19813 "configure"
+#line 20261 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -19832,7 +20280,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:19836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -19860,7 +20308,7 @@ EOF
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for dld in -lshl_load""... $ac_c" 1>&6
-echo "configure:19864: checking for dld in -lshl_load" >&5
+echo "configure:20312: checking for dld in -lshl_load" >&5
 ac_lib_var=`echo shl_load'_'dld | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -19868,7 +20316,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lshl_load  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 19872 "configure"
+#line 20320 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -19879,7 +20327,7 @@ int main() {
 dld()
 ; return 0; }
 EOF
-if { (eval echo configure:19883: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -19918,12 +20366,12 @@ done
             for ac_func in dlerror
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:19922: checking for $ac_func" >&5
+echo "configure:20370: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 19927 "configure"
+#line 20375 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -19946,7 +20394,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:19950: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20398: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -19971,7 +20419,7 @@ EOF
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for dlerror in -ldl""... $ac_c" 1>&6
-echo "configure:19975: checking for dlerror in -ldl" >&5
+echo "configure:20423: checking for dlerror in -ldl" >&5
 ac_lib_var=`echo dl'_'dlerror | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -19979,7 +20427,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 19983 "configure"
+#line 20431 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -19990,7 +20438,7 @@ int main() {
 dlerror()
 ; return 0; }
 EOF
-if { (eval echo configure:19994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20442: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -20065,7 +20513,7 @@ EOF
 
   if test "$wxUSE_MSW" = 1 -a "$wxUSE_UNICODE_MSLU" = "yes"; then
         echo $ac_n "checking for main in -lunicows""... $ac_c" 1>&6
-echo "configure:20069: checking for main in -lunicows" >&5
+echo "configure:20517: checking for main in -lunicows" >&5
 ac_lib_var=`echo unicows'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -20073,14 +20521,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lunicows  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 20077 "configure"
+#line 20525 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:20084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:20532: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -20228,17 +20676,21 @@ if test "$wxUSE_PROLOGIO" = "yes" ; then
 #define wxUSE_PROLOGIO 1
 EOF
 
+    ALL_OBJECTS="$ALL_OBJECTS parser.o"
 fi
 
 if test "$wxUSE_RESOURCES" = "yes" ; then
     if test "$wxUSE_NANOX" = "yes"; then
         echo "configure: warning: Cannot use resource database functions in NanoX" 1>&2
-	else
-		cat >> confdefs.h <<\EOF
+    else
+        cat >> confdefs.h <<\EOF
 #define wxUSE_RESOURCES 1
 EOF
 
-		SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource"
+        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource"
+    fi
+    if test "$wxUSE_PROLOGIO" != "yes" ; then
+        ALL_OBJECTS="$ALL_OBJECTS parser.o"
     fi
 fi
 
@@ -20258,17 +20710,17 @@ if test "$wxUSE_MSW" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:20262: checking for $ac_hdr" >&5
+echo "configure:20714: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 20267 "configure"
+#line 20719 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:20272: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:20724: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -20307,9 +20759,9 @@ cross_compiling=$ac_cv_prog_cxx_cross
 
 
             echo $ac_n "checking if g++ requires -fvtable-thunks""... $ac_c" 1>&6
-echo "configure:20311: checking if g++ requires -fvtable-thunks" >&5
+echo "configure:20763: checking if g++ requires -fvtable-thunks" >&5
             cat > conftest.$ac_ext <<EOF
-#line 20313 "configure"
+#line 20765 "configure"
 #include "confdefs.h"
 #include <windows.h>
                             #include <ole2.h>
@@ -20317,7 +20769,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:20321: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20773: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""no" 1>&6
 else
@@ -20378,17 +20830,17 @@ if test "$wxUSE_WINE" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:20382: checking for $ac_hdr" >&5
+echo "configure:20834: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 20387 "configure"
+#line 20839 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:20392: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:20844: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -20427,9 +20879,9 @@ cross_compiling=$ac_cv_prog_cxx_cross
 
 
             echo $ac_n "checking if g++ requires -fvtable-thunks""... $ac_c" 1>&6
-echo "configure:20431: checking if g++ requires -fvtable-thunks" >&5
+echo "configure:20883: checking if g++ requires -fvtable-thunks" >&5
             cat > conftest.$ac_ext <<EOF
-#line 20433 "configure"
+#line 20885 "configure"
 #include "confdefs.h"
 #include <windows.h>
                             #include <ole2.h>
@@ -20437,7 +20889,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:20441: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:20893: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""no" 1>&6
 else
@@ -21281,7 +21733,249 @@ if test "$wxUSE_MAC" = 1 ; then
 fi
 
 
-LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK -lm $LIBS"
+LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK $LIBS"
+
+have_cos=0
+have_floor=0
+for ac_func in cos
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:21744: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 21749 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:21772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ have_cos=1
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_func in floor
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:21799: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 21804 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:21827: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ have_floor=1
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+echo $ac_n "checking if floating point functions link without -lm""... $ac_c" 1>&6
+echo "configure:21852: checking if floating point functions link without -lm" >&5
+if test "$have_cos" = 1 -a "$have_floor" = 1; then
+    echo "$ac_t""yes" 1>&6
+else
+    echo "$ac_t""no" 1>&6
+    LIBS="$LIBS -lm"
+    # use different functions to avoid configure caching
+    have_sin=0
+    have_ceil=0
+    for ac_func in sin
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:21864: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 21869 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:21892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ have_sin=1
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+    for ac_func in ceil
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:21919: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 21924 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:21947: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ have_ceil=1
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+    echo $ac_n "checking if floating point functions link with -lm""... $ac_c" 1>&6
+echo "configure:21972: checking if floating point functions link with -lm" >&5
+    if test "$have_sin" = 1 -a "$have_ceil" = 1; then
+        echo "$ac_t""yes" 1>&6
+    else
+        echo "$ac_t""no" 1>&6
+        # not sure we should warn the user, crash, etc.
+    fi
+fi
 
 if test "$wxUSE_GUI" = "yes"; then
 
@@ -21415,6 +22109,11 @@ SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq
 
 
 
+
+
+
+
+
 
 
 
@@ -21422,7 +22121,7 @@ SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq
 
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:21426: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:22125: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -21462,9 +22161,16 @@ wx_cv_program_ext=$PROGRAM_EXT
 wx_cv_target_library=$WX_TARGET_LIBRARY
 wx_cv_target_library_gl=$WX_TARGET_LIBRARY_GL
 wx_cv_target_libtype=$WX_TARGET_LIBRARY_TYPE
+wx_cv_library_basename=${WX_LIBRARY_BASENAME}
+wx_cv_release=${WX_RELEASE}
+wx_cv_current=${WX_CURRENT}
+wx_cv_revision=${WX_REVISION}
+wx_cv_age=${WX_AGE}
 export wx_cv_path_samplesubdirs wx_cv_if_gnu_make \
        wx_cv_path_ifs wx_cv_program_ext \
-       wx_cv_target_library wx_cv_target_library_gl wx_cv_target_libtype
+       wx_cv_target_library wx_cv_target_library_gl wx_cv_target_libtype \
+       wx_cv_library_basename wx_cv_release wx_cv_current wx_cv_revision wx_cv_age
+
 
 subdirs="demos samples utils contrib"
 
@@ -21572,6 +22278,7 @@ ac_given_INSTALL="$INSTALL"
 
 trap 'rm -fr `echo "
             wx-config
+            version-script
             src/make.env
             src/makeprog.env
             src/makelib.env
@@ -21648,6 +22355,10 @@ s%@X_CFLAGS@%$X_CFLAGS%g
 s%@X_PRE_LIBS@%$X_PRE_LIBS%g
 s%@X_LIBS@%$X_LIBS%g
 s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g
+s%@PANGOX_CFLAGS@%$PANGOX_CFLAGS%g
+s%@PANGOX_LIBS@%$PANGOX_LIBS%g
+s%@PANGOXFT_CFLAGS@%$PANGOXFT_CFLAGS%g
+s%@PANGOXFT_LIBS@%$PANGOXFT_LIBS%g
 s%@AIX_CXX_LD@%$AIX_CXX_LD%g
 s%@RESCOMP@%$RESCOMP%g
 s%@DEREZ@%$DEREZ%g
@@ -21659,6 +22370,7 @@ s%@WX_MINOR_VERSION_NUMBER@%$WX_MINOR_VERSION_NUMBER%g
 s%@WX_RELEASE_NUMBER@%$WX_RELEASE_NUMBER%g
 s%@WX_LIBRARY_NAME_STATIC@%$WX_LIBRARY_NAME_STATIC%g
 s%@WX_LIBRARY_NAME_SHARED@%$WX_LIBRARY_NAME_SHARED%g
+s%@WX_LIBRARY_BASENAME@%$WX_LIBRARY_BASENAME%g
 s%@WX_LIBRARY_IMPORTLIB@%$WX_LIBRARY_IMPORTLIB%g
 s%@WX_TARGET_LIBRARY@%$WX_TARGET_LIBRARY%g
 s%@WX_LIBRARY_LINK1@%$WX_LIBRARY_LINK1%g
@@ -21683,6 +22395,7 @@ s%@STATIC_FLAG@%$STATIC_FLAG%g
 s%@WXDEBUG_DEFINE@%$WXDEBUG_DEFINE%g
 s%@USE_GUI@%$USE_GUI%g
 s%@AFMINSTALL@%$AFMINSTALL%g
+s%@WIN32INSTALL@%$WIN32INSTALL%g
 s%@TOOLKIT@%$TOOLKIT%g
 s%@TOOLKIT_DIR@%$TOOLKIT_DIR%g
 s%@TOOLKIT_VPATH@%$TOOLKIT_VPATH%g
@@ -21705,10 +22418,12 @@ s%@PORT_FILES@%$PORT_FILES%g
 s%@DISTDIR@%$DISTDIR%g
 s%@SAMPLES_SUBDIRS@%$SAMPLES_SUBDIRS%g
 s%@LDFLAGS_GL@%$LDFLAGS_GL%g
+s%@LDFLAGS_VERSIONING@%$LDFLAGS_VERSIONING%g
 s%@LDFLAGS_EXE@%$LDFLAGS_EXE%g
 s%@OPENGL_LIBS@%$OPENGL_LIBS%g
 s%@DMALLOC_LIBS@%$DMALLOC_LIBS%g
 s%@EXTRADEFS@%$EXTRADEFS%g
+s%@WX_VERSION_TAG@%$WX_VERSION_TAG%g
 s%@RESFLAGS@%$RESFLAGS%g
 s%@RESPROGRAMOBJ@%$RESPROGRAMOBJ%g
 s%@WX_RESOURCES_MACOSX_ASCII@%$WX_RESOURCES_MACOSX_ASCII%g
@@ -21717,6 +22432,7 @@ s%@MACOSX_BUNDLE@%$MACOSX_BUNDLE%g
 s%@LIBWXMACRES@%$LIBWXMACRES%g
 s%@LIBWXMACRESCOMP@%$LIBWXMACRESCOMP%g
 s%@LIBWXMACRESWXCONFIG@%$LIBWXMACRESWXCONFIG%g
+s%@GCC@%$GCC%g
 s%@DLLTOOL@%$DLLTOOL%g
 s%@AS@%$AS%g
 s%@NM@%$NM%g
@@ -21767,6 +22483,7 @@ EOF
 cat >> $CONFIG_STATUS <<EOF
 
 CONFIG_FILES=\${CONFIG_FILES-"wx-config
+            version-script
             src/make.env
             src/makeprog.env
             src/makelib.env
@@ -22076,3 +22793,21 @@ if test "$no_recursion" != yes; then
 fi
 
 
+echo
+echo "Configured wxWindows ${WX_VERSION} for \`${host}'"
+echo ""
+echo "  Which GUI toolkit should wxWindows use?                 ${TOOLKIT:-base only}"
+
+echo "  Should wxWindows be compiled in debug mode?             ${wxUSE_DEBUG:-no}"
+echo "  Should wxWindows be linked as a shared library?         ${wxUSE_SHARED:-no}"
+echo "  Should wxWindows be compiled in Unicode mode?           ${wxUSE_UNICODE:-no}"
+
+echo "  Which libraries should wxWindows use?"
+echo "                                       jpeg               ${wxUSE_LIBJPEG-none}"
+echo "                                       png                ${wxUSE_LIBPNG-none}"
+echo "                                       regex              ${wxUSE_REGEX}"
+echo "                                       tiff               ${wxUSE_LIBTIFF-none}"
+echo "                                       zlib               ${wxUSE_ZLIB}"
+
+echo ""
+
diff --git a/configure.in b/configure.in
index ac95c8e3e4..5cb77a181f 100644
--- a/configure.in
+++ b/configure.in
@@ -48,7 +48,7 @@ dnl   libwx_$(TOOLKIT)-$(WX_RELEASE).so.$(WX_CURRENT).$(WX_REVISION).$(WX_AGE)
 
 WX_MAJOR_VERSION_NUMBER=2
 WX_MINOR_VERSION_NUMBER=3
-WX_RELEASE_NUMBER=3
+WX_RELEASE_NUMBER=4
 
 WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER
 WX_RELEASE=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER
@@ -187,15 +187,15 @@ case "${host}" in
   *-*-openbsd*)
     USE_BSD=1
     USE_OPENBSD=1
-    AC_DEFINE(__FREEBSD__)
     AC_DEFINE(__OPENBSD__)
+    AC_DEFINE(__BSD__)
     DEFAULT_DEFAULT_wxUSE_GTK=1
   ;;
   *-*-netbsd*)
     USE_BSD=1
     USE_NETBSD=1
-    AC_DEFINE(__FREEBSD__)
     AC_DEFINE(__NETBSD__)
+    AC_DEFINE(__BSD__)
     DEFAULT_DEFAULT_wxUSE_GTK=1
   ;;
   *-*-osf* )
@@ -224,8 +224,11 @@ case "${host}" in
     USE_AIX=1
     USE_SYSV=1
     USE_SVR4=1
-    dnl Irvin Probst <irvin.probst@fr.thalesgroup.com> reports that the shared
-    dnl libraries under AIX have the same suffix as the normal ones
+    dnl quoting from http://www-1.ibm.com/servers/esdd/articles/gnu.html:
+    dnl
+    dnl     Both archive libraries and shared libraries on AIX have an .a
+    dnl     extension. This will explain why you can't link with an .so and
+    dnl     why it works with the name changed to .a. 
     SO_SUFFIX=a
     AC_DEFINE(__AIX__)
     AC_DEFINE(__SYSV__)
@@ -552,8 +555,8 @@ else
   DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=yes
   DEFAULT_wxUSE_PRINTING_ARCHITECTURE=yes
 
-  DEFAULT_wxUSE_PROLOGIO=yes
-  DEFAULT_wxUSE_RESOURCES=yes
+  DEFAULT_wxUSE_PROLOGIO=no
+  DEFAULT_wxUSE_RESOURCES=no
   DEFAULT_wxUSE_CONSTRAINTS=yes
   DEFAULT_wxUSE_IPC=yes
   DEFAULT_wxUSE_HELP=yes
@@ -1127,27 +1130,6 @@ else
     AC_MSG_RESULT(base ($host_alias hosted) only)
 fi
 
-dnl ---------------------------------------------------------------------------
-dnl When we are using gcc on OS/2, we want to be either using resources (PM)
-dnl or a more complete POSIX emulation for Motif/GTK+/X11
-dnl ---------------------------------------------------------------------------
-dnl (OS/2-only piece)
-case "${host}" in
-  *-pc-os2_emx | *-pc-os2-emx )
-      dnl Explicitly link -lstdcpp, since we are using "gcc" not "g++"/"c++".
-      LIBS="$LIBS -lstdcpp"
-      if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_GTK" = 1 -o "$wxUSE_X11" = 1; then
-          dnl More complete Unix emulation for unix-like ports
-          dnl by linking in POSIX/2's cExt (if available).
-          AC_CHECK_LIB(cExt, drand48, LIBS="$LIBS -lcExt")
-      else
-          dnl Include resources for the "native" port (wxPM).
-          RESPROGRAMOBJ="\${top_srcdir}/include/wx/os2/wx.res"
-      fi
-  ;;
-esac
-dnl (end of OS/2-only piece)
-
 dnl ---------------------------------------------------------------------------
 dnl When we are using Cygwin with Motif/GTK+, we want it to appear like
 dnl 'just' a POSIX platform, so the Win32 API must not be available
@@ -1223,7 +1205,7 @@ dnl   defines GCC empty if not using gcc
 dnl   defines CFLAGS
 dnl
 dnl this magic incantation is needed to prevent AC_PROG_CC from setting the
-dnl default CFLAGS (something like "-g -O2") - we don't need this as add
+dnl default CFLAGS (something like "-g -O2") -- we don't need this as we add
 dnl -g and -O flags ourselves below
 CFLAGS=${CFLAGS:=}
 AC_PROG_CC
@@ -1357,6 +1339,27 @@ AC_PROG_LEX
 dnl needed for making link to setup.h
 AC_PROG_LN_S
 
+dnl ---------------------------------------------------------------------------
+dnl When we are using gcc on OS/2, we want to be either using resources (PM)
+dnl or a more complete POSIX emulation for Motif/GTK+/X11
+dnl ---------------------------------------------------------------------------
+dnl (OS/2-only piece)
+case "${host}" in
+  *-pc-os2_emx | *-pc-os2-emx )
+      dnl Explicitly link -lstdcpp, since we are using "gcc" not "g++"/"c++".
+      LIBS="$LIBS -lstdcpp"
+      if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_GTK" = 1 -o "$wxUSE_X11" = 1; then
+          dnl More complete Unix emulation for unix-like ports
+          dnl by linking in POSIX/2's cExt (if available).
+          AC_CHECK_LIB(cExt, drand48, LIBS="$LIBS -lcExt")
+      else
+          dnl Include resources for the "native" port (wxPM).
+          RESPROGRAMOBJ="\${top_srcdir}/include/wx/os2/wx.res"
+      fi
+  ;;
+esac
+dnl (end of OS/2-only piece)
+
 dnl ------------------------------------------------------------------------
 dnl Check for headers
 dnl ------------------------------------------------------------------------
@@ -1441,6 +1444,10 @@ AC_CACHE_CHECK([size of wchar_t], wx_cv_sizeof_wchar_t,
 [
     AC_TRY_RUN(
         [
+            /* DJGPP only has fake wchar_t: */
+            #ifdef __DJGPP__
+            #  error "fake wchar_t"
+            #endif
             #ifdef HAVE_WCHAR_H
             #  ifdef __CYGWIN__
             #    include <stddef.h>
@@ -1461,7 +1468,16 @@ AC_CACHE_CHECK([size of wchar_t], wx_cv_sizeof_wchar_t,
         ],
         wx_cv_sizeof_wchar_t=`cat conftestval`,
         wx_cv_sizeof_wchar_t=0,
-        wx_cv_sizeof_wchar_t=4
+        [
+            case "${host}" in
+              *-pc-msdosdjgpp )
+                wx_cv_sizeof_wchar_t=0
+                ;;
+              * )
+                wx_cv_sizeof_wchar_t=4
+                ;;
+            esac
+        ]
     )
 ])
 
@@ -1501,13 +1517,9 @@ dnl Define search path for includes and libraries: all headers and libs will be
 dnl looked for in all directories of this path
 dnl ---------------------------------------------------------------------------
 
-dnl notice that /usr/include should not be in this list, otherwise it breaks
-dnl compilation on Solaris/gcc because standard headers are included instead
-dnl of the gcc ones.  (recorrection.. sadly much depends on this since it was
-dnl first created and then 'corrected'..  removing /usr/include means system
-dnl GL and Xpm libs will dnl not be found on linux and probably other platforms
-dnl now.  We need to correct that first before removing /usr/include again.
-dnl see the various (ab)uses of WX_PATH_FIND_LIBRARIES below )
+dnl Notice that /usr/include should *not* be in this list, otherwise it breaks
+dnl compilation on Solaris/AIX/... with gcc because standard (non ANSI C)
+dnl headers are included instead of the "fixed" (ANSI-fied) gcc ones.
 dnl
 dnl Also try to put all directories which may contain X11R6 before those which
 dnl may contain X11R5/4 - we want to use R6 on machines which have both!
@@ -1574,8 +1586,7 @@ SEARCH_INCLUDE="\
     /usr/local/x11r5/include  \
     /usr/lpp/Xamples/include  \
                               \
-    /usr/openwin/share/include \
-    /usr/include"
+    /usr/openwin/share/include"
 
 SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s/include/lib/g` "
 
@@ -1747,7 +1758,7 @@ if test "$wxUSE_LIBPNG" != "no" ; then
                 fi
             else
                 dnl we are using the system library
-                wxUSE_LIBPNG=yes
+                wxUSE_LIBPNG=sys
             fi
         fi
     fi
@@ -1824,15 +1835,24 @@ dnl ------------------------------------------------------------------------
 
 TIFF_INCLUDE=
 TIFF_LINK=
+TIFF_PREREQ_LINKS=-lm
 if test "$wxUSE_LIBTIFF" != "no" ; then
     AC_DEFINE(wxUSE_LIBTIFF)
 
     if test "$wxUSE_LIBTIFF" = "sys" -o "$wxUSE_LIBTIFF" = "yes" ; then
+        dnl libtiff may depend on libjpeg and libz so use them in the test
+        dnl below or it would fail
+        if test "$wxUSE_LIBJPEG" = "sys"; then
+            TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $JPEG_LINK"
+        fi
+        if test "$wxUSE_ZLIB" = "sys"; then
+            TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $ZLIB_LINK"
+        fi
         AC_CHECK_HEADER(tiffio.h,
                         AC_CHECK_LIB(tiff, TIFFError,
                                      TIFF_LINK=" -ltiff",
                                      ,
-                                     -lm)
+                                     $TIFF_PREREQ_LINKS)
                        )
 
         if test "x$TIFF_LINK" = "x" ; then
@@ -1858,6 +1878,7 @@ dnl search for toolkit (widget sets)
 dnl ----------------------------------------------------------------
 
 AFMINSTALL=
+WIN32INSTALL=
 
 TOOLKIT=
 TOOLKIT_INCLUDE=
@@ -1913,6 +1934,9 @@ if test "$USE_WIN32" = 1 ; then
 
     RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
     RESPROGRAMOBJ="\$(PROGRAM)_resources.o"
+
+    dnl install Win32-specific files in "make install"
+    WIN32INSTALL=win32install
 fi
 
 if test "$USE_DARWIN" = 1; then
@@ -1965,17 +1989,17 @@ if test "$wxUSE_GUI" = "yes"; then
                     GTK_MODULES=gthread
                 fi
 
+                dnl note that if we fail to find GTK2 we abort and don't fall
+                dnl back to GTK1.x
                 wx_cv_lib_gtk=
                 if test "x$wxUSE_GTK2" = "xyes"; then
                     AM_PATH_GTK_2_0(2.0.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES)
-                fi
-
-                if test -z "$wx_cv_lib_gtk"; then
+                else
                     AM_PATH_GTK(1.2.7, wx_cv_lib_gtk=1.2.7, , $GTK_MODULES)
-                fi
 
-                if test -z "$wx_cv_lib_gtk"; then
-                    AM_PATH_GTK(1.2.3, wx_cv_lib_gtk=1.2.3, , $GTK_MODULES)
+                    if test -z "$wx_cv_lib_gtk"; then
+                        AM_PATH_GTK(1.2.3, wx_cv_lib_gtk=1.2.3, , $GTK_MODULES)
+                    fi
                 fi
 
                 if test -z "$wx_cv_lib_gtk"; then
@@ -1998,6 +2022,7 @@ if test "$wxUSE_GUI" = "yes"; then
 
         case "$wx_cv_lib_gtk" in
             2.0)    WXGTK20=1
+                    TOOLKIT_VERSION=2
                     ;;
             1.2.7)  WXGTK127=1
                     WXGTK12=1
@@ -2026,6 +2051,17 @@ equivalent variable and GTK+ is version 1.2.3 or above.
                     ]
                 )
             fi
+        else
+            if test "$wxUSE_UNICODE" = "yes"; then
+                AC_MSG_WARN([Unicode configuration not supported with GTK+ 1.x])
+                wxUSE_UNICODE=no
+            fi
+        fi
+
+        dnl we need poll() in src/gtk/app.cpp (we know that Darwin doesn't
+        dnl have it but we do the check for the others)
+        if test "$USE_DARWIN" != 1; then
+            AC_CHECK_FUNCS(poll)
         fi
 
         TOOLKIT_INCLUDE="$wx_cv_cflags_gtk"
@@ -2052,7 +2088,7 @@ equivalent variable and GTK+ is version 1.2.3 or above.
         dnl FIXME_MGL - test for MGL variants for freebsd etc.
         case "${host}" in
             *-*-linux* )
-              mgl_os=linux/gcc/glibc
+              mgl_os="linux/gcc/glibc*"
               ;;
             *-pc-msdosdjgpp )
               mgl_os=dos32/dj2
@@ -2171,6 +2207,37 @@ equivalent variable and GTK+ is version 1.2.3 or above.
             )
         fi
 
+        if test "$wxUSE_UNICODE" = "yes"; then
+                PKG_CHECK_MODULES(PANGOX, pangox,
+                    [
+                        CXXFLAGS="$CXXFLAGS $PANGOX_CFLAGS"
+                        LIBS="$LIBS $PANGOX_LIBS"
+                    ],
+                    [
+                        AC_MSG_ERROR([pangox library not found, library cannot be compiled in Unicode mode])
+                    ]
+                )
+                PKG_CHECK_MODULES(PANGOFT2, pangoft2,
+                    [
+                        CXXFLAGS="$CXXFLAGS $PANGOFT2_CFLAGS"
+                        LIBS="$LIBS $PANGOFT2_LIBS"
+                    ],
+                    [
+                        AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
+                        wxUSE_PRINTING_ARCHITECTURE="no"
+                    ]
+                )
+                PKG_CHECK_MODULES(PANGOXFT, pangoxft,
+                    [
+                        CXXFLAGS="$CXXFLAGS $PANGOXFT_CFLAGS"
+                        LIBS="$LIBS $PANGOXFT_LIBS"
+                    ],
+                    [
+                        AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support])
+                    ]
+                )
+        fi
+
         wxUSE_UNIVERSAL="yes"
 
         if test "$wxUSE_NANOX" = "yes"; then
@@ -2233,8 +2300,10 @@ equivalent variable and GTK+ is version 1.2.3 or above.
           AC_MSG_ERROR(X11 not found, please use --x-includes and/or --x-libraries options)
         fi
 
-        GUI_TK_LIBRARY="$X_LIBS"
-        TOOLKIT_INCLUDE="$X_CFLAGS"
+        dnl for some reason AC_PATH_XTRA seems to add -INONE and -LNONE to
+        dnl X_LIBS and X_CFLAGS respectively -- what for??
+        GUI_TK_LIBRARY=`echo $X_LIBS | sed 's/ -LNONE//'`
+        TOOLKIT_INCLUDE=`echo $X_CFLAGS | sed 's/ -INONE//'`
         AFMINSTALL=afminstall
         COMPILED_X_PROGRAM=0
 
@@ -2401,6 +2470,11 @@ equivalent variable and GTK+ is version 1.2.3 or above.
     if test "$wxUSE_PM" = 1; then
         TOOLKIT=PM
         GUIDIST=GTK_DIST
+        AC_MSG_WARN([OS/2 PM requires old resource format, re-enabled])
+	wxUSE_PROLOGIO="yes"
+	wxUSE_RESOURCES="yes"
+        AC_MSG_WARN([OS/2 threads are not yet supported... disabled])
+	wxUSE_THREADS="no"
     fi
 
     dnl the name of the directory where the files for this toolkit live
@@ -2577,8 +2651,10 @@ if test "$wxUSE_DEBUG_FLAG" = "yes"; then
     lib_debug_suffix=d
 fi
 
-TOOLCHAIN_NAME="${TOOLKIT_DIR}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}-${WX_RELEASE}"
-TOOLCHAIN_NAME_GL="${TOOLKIT_DIR}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}_gl-${WX_RELEASE}"
+WX_VERSION_TAG=`echo WX${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}_${WX_RELEASE} | tr "[[a-z]]" "[[A-Z]]"`
+
+TOOLCHAIN_NAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}-${WX_RELEASE}"
+TOOLCHAIN_NAME_GL="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}_gl-${WX_RELEASE}"
 
 if test "$cross_compiling" = "yes"; then
     TOOLCHAIN_NAME="${TOOLCHAIN_NAME}-${host_alias}"
@@ -2588,6 +2664,7 @@ fi
 dnl library link name
 WX_LIBRARY="wx_${TOOLCHAIN_NAME}"
 WX_LIBRARY_GL="wx_${TOOLCHAIN_NAME_GL}"
+WX_LIBRARY_BASENAME="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}"
 
 dnl the name of the shared library
 WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
@@ -2674,6 +2751,10 @@ if test "$wxUSE_SHARED" = "yes"; then
         PIC_FLAG="-fPIC"
     fi
 
+
+    dnl use versioned symbols if available on the platform
+    WX_VERSIONED_SYMBOLS([\$(top_builddir)/version-script])
+
     dnl the command to use for creating the shared library
     SHARED_LD="${CXX} -shared -o"
 
@@ -2757,16 +2838,18 @@ if test "$wxUSE_SHARED" = "yes"; then
       ;;
 
       *-*-aix* )
-        dnl the abs path below used to be hardcoded here so I guess it must
-        dnl be some sort of standard location under AIX?
-        AC_CHECK_PROG(AIX_CXX_LD, makeC++SharedLib,
-                      makeC++SharedLib, /usr/lpp/xlC/bin/makeC++SharedLib)
+        dnl default settings are ok for gcc
+        if test "$GCC" != "yes"; then
+            dnl the abs path below used to be hardcoded here so I guess it must
+            dnl be some sort of standard location under AIX?
+            AC_CHECK_PROG(AIX_CXX_LD, makeC++SharedLib,
+                          makeC++SharedLib, /usr/lpp/xlC/bin/makeC++SharedLib)
 
-        SHARED_LD="$(AIX_CXX_LD) -p 0 -o"
+            SHARED_LD="$(AIX_CXX_LD) -p 0 -o"
+        fi
       ;;
 
       *-*-cygwin* | *-*-mingw32* )
-
         WX_LIBRARY_IMPORTLIB="${WX_LIBRARY_NAME_SHARED}.a"
 
         SHARED_LD="${CXX} -shared -Wl,--out-implib,lib/${WX_LIBRARY_IMPORTLIB} -o"
@@ -2789,9 +2872,15 @@ if test "$wxUSE_SHARED" = "yes"; then
         SHARED_LD="${LD} -shared -o"
       ;;
 
+      *-*-irix* )
+        dnl default settings are ok for gcc
+        if test "$GCC" != "yes"; then
+            PIC_FLAG="-KPIC"
+        fi
+      ;;
+
       *-*-freebsd* | *-*-openbsd* | *-*-netbsd* | \
       *-*-sunos4* | \
-      *-*-irix5* | *-*-irix6* | \
       *-*-osf* | \
       *-*-dgux5* | \
       *-*-sysv5* )
@@ -2854,15 +2943,10 @@ if test "$wxUSE_MAC" = 1; then
     AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez)
     AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez)
     MACOSX_BUNDLE="bundle"
-    if test "$wxUSE_SHARED" = "yes"; then
-        dnl resources are bundled with shared library, not with applications
-        LIBWXMACRESCOMP="\$(RESCOMP) -t APPL Carbon.r -o \$(BIN_PROGRAM)"
-        LIBWXMACRESWXCONFIG="${RESCOMP} -t APPL Carbon.r -o"
-    else
-        dnl resources are bundled with applications, not with static library
-        LIBWXMACRESCOMP="\$(RESCOMP) -t APPL Carbon.r ${LIBWXMACRES} -o \$(BIN_PROGRAM)"
-        LIBWXMACRESWXCONFIG="${RESCOMP} -t APPL Carbon.r \${prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
-    fi
+    dnl resources are bundled both with shared library and applications
+    dnl since the carb resource *must* be included in the application
+    LIBWXMACRESCOMP="\$(RESCOMP) -t APPL Carbon.r ${LIBWXMACRES} -o \$(BIN_PROGRAM)"
+    LIBWXMACRESWXCONFIG="${RESCOMP} -t APPL Carbon.r \${prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
 else
     if test "$wxUSE_PM" = 1; then
         LIBWXMACRESCOMP="emxbind -ep \$(BIN_PROGRAM)"
@@ -3364,7 +3448,17 @@ if test "$TOOLKIT" != "MSW"; then
           AC_MSG_CHECKING([if more special flags are required for pthreads])
           flag=no
           case "${host}" in
-            *-aix* | *-freebsd*)
+            *-aix*)
+                dnl again quoting from
+                dnl http://www-1.ibm.com/servers/esdd/articles/gnu.html:
+                dnl
+                dnl     When compiling and linking with -pthread, the library
+                dnl     search path should include -L/usr/lib/threads at the
+                dnl     beginning of the path.
+                LDFLAGS="-L/usr/lib/threads $LDFLAGS"
+                flag="-D_THREAD_SAFE"
+                ;;
+            *-freebsd*)
                 flag="-D_THREAD_SAFE"
                 ;;
             *-hp-hpux* )
@@ -3626,11 +3720,19 @@ if test "$GCC" = "yes" ; then
     dnl for each subroutine by default -- using the switch below only creates
     dnl one entry per file instead at the price of minor performance penalty
     dnl
+    dnl As of wx2.4 a bug in the hppa gcc compiler causes a similar problem
+    dnl without -ffunction-sections.  No idea how long we'll need to maintain
+    dnl this, or even the extent of gcc/wx version combinations affected, but
+    dnl also as above, this 'fix' does not come without side effects.
+    dnl
     dnl TODO: test for the gcc version here (how?)
     case "${host}" in
       powerpc*-*-aix* )
         CODE_GEN_FLAGS="$CODE_GEN_FLAGS -mminimal-toc"
         ;;
+      *-hppa* )
+        CODE_GEN_FLAGS="$CODE_GEN_FLAGS -ffunction-sections"
+        ;;
     esac
 fi
 
@@ -4290,14 +4392,18 @@ fi
 
 if test "$wxUSE_PROLOGIO" = "yes" ; then
     AC_DEFINE(wxUSE_PROLOGIO)
+    ALL_OBJECTS="$ALL_OBJECTS parser.o"
 fi
 
 if test "$wxUSE_RESOURCES" = "yes" ; then
     if test "$wxUSE_NANOX" = "yes"; then
         AC_MSG_WARN([Cannot use resource database functions in NanoX])
-	else
-		AC_DEFINE(wxUSE_RESOURCES)
-		SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource"
+    else
+        AC_DEFINE(wxUSE_RESOURCES)
+        SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource"
+    fi
+    if test "$wxUSE_PROLOGIO" != "yes" ; then
+        ALL_OBJECTS="$ALL_OBJECTS parser.o"
     fi
 fi
 
@@ -4970,7 +5076,48 @@ dnl FIXME: should this be covered by the conditional above
 dnl given the -lm comment there?  Or should that comment (and
 dnl this one) be removed..   [ 7 Nov 2001 ]
 
-LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK -lm $LIBS"
+LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK $LIBS"
+
+dnl Only add the -lm library if floating point functions cannot be used
+dnl without it.  This check is important on cygwin because of the bizarre
+dnl way that they have organized functions into libraries.  On cygwin, both
+dnl libc.a and libm.a are symbolic links to a single lib libcygwin.a.  This
+dnl means that
+dnl   1) linking with -lm is not necessary, and
+dnl   2) linking with -lm is dangerous if the order of libraries is wrong
+dnl In particular, if you compile any program with -mno-cygwin and link with
+dnl -lm, it will crash instantly when it is run.  This happens because the
+dnl linker incorrectly links the Cygwin libm.a (==libcygwin.a), which replaces
+dnl the ___main function instead of allowing it to be defined by
+dnl /usr/lib/mingw/libmingw32.a as it should be.
+dnl
+dnl On MacOS X, this test will find that -lm is unnecessary and leave it out.
+dnl
+dnl Just check a few floating point functions. If they are all found without
+dnl -lm, then we must not need -lm.
+have_cos=0
+have_floor=0
+AC_CHECK_FUNCS(cos, have_cos=1)
+AC_CHECK_FUNCS(floor, have_floor=1)
+AC_MSG_CHECKING(if floating point functions link without -lm)
+if test "$have_cos" = 1 -a "$have_floor" = 1; then
+    AC_MSG_RESULT(yes)
+else
+    AC_MSG_RESULT(no)
+    LIBS="$LIBS -lm"
+    # use different functions to avoid configure caching
+    have_sin=0
+    have_ceil=0
+    AC_CHECK_FUNCS(sin, have_sin=1)
+    AC_CHECK_FUNCS(ceil, have_ceil=1)
+    AC_MSG_CHECKING(if floating point functions link with -lm)
+    if test "$have_sin" = 1 -a "$have_ceil" = 1; then
+        AC_MSG_RESULT(yes)
+    else
+        AC_MSG_RESULT(no)
+        # not sure we should warn the user, crash, etc.
+    fi
+fi
 
 if test "$wxUSE_GUI" = "yes"; then
 
@@ -5056,6 +5203,7 @@ AC_SUBST(WX_MINOR_VERSION_NUMBER)
 AC_SUBST(WX_RELEASE_NUMBER)
 AC_SUBST(WX_LIBRARY_NAME_STATIC)
 AC_SUBST(WX_LIBRARY_NAME_SHARED)
+AC_SUBST(WX_LIBRARY_BASENAME)
 AC_SUBST(WX_LIBRARY_IMPORTLIB)
 AC_SUBST(WX_TARGET_LIBRARY)
 AC_SUBST(WX_LIBRARY_LINK1)
@@ -5091,6 +5239,7 @@ AC_SUBST(WXDEBUG_DEFINE)
 dnl toolkit options
 AC_SUBST(USE_GUI)
 AC_SUBST(AFMINSTALL)
+AC_SUBST(WIN32INSTALL)
 AC_SUBST(TOOLKIT)
 AC_SUBST(TOOLKIT_DIR)
 AC_SUBST(TOOLKIT_VPATH)
@@ -5125,10 +5274,12 @@ AC_SUBST(SAMPLES_SUBDIRS)
 dnl additional libraries and linker settings
 AC_SUBST(LDFLAGS)
 AC_SUBST(LDFLAGS_GL)
+AC_SUBST(LDFLAGS_VERSIONING)
 AC_SUBST(LDFLAGS_EXE)
 AC_SUBST(OPENGL_LIBS)
 AC_SUBST(DMALLOC_LIBS)
 AC_SUBST(EXTRADEFS)
+AC_SUBST(WX_VERSION_TAG)
 
 dnl additional resurces settings
 AC_SUBST(RESCOMP)
@@ -5144,7 +5295,8 @@ AC_SUBST(LIBWXMACRES)
 AC_SUBST(LIBWXMACRESCOMP)
 AC_SUBST(LIBWXMACRESWXCONFIG)
 
-dnl These seem to be missing
+dnl other tools
+AC_SUBST(GCC)
 AC_SUBST(DLLTOOL)
 AC_SUBST(AS)
 AC_SUBST(NM)
@@ -5175,9 +5327,16 @@ wx_cv_program_ext=$PROGRAM_EXT
 wx_cv_target_library=$WX_TARGET_LIBRARY
 wx_cv_target_library_gl=$WX_TARGET_LIBRARY_GL
 wx_cv_target_libtype=$WX_TARGET_LIBRARY_TYPE
+wx_cv_library_basename=${WX_LIBRARY_BASENAME}
+wx_cv_release=${WX_RELEASE}
+wx_cv_current=${WX_CURRENT}
+wx_cv_revision=${WX_REVISION}
+wx_cv_age=${WX_AGE}
 export wx_cv_path_samplesubdirs wx_cv_if_gnu_make \
        wx_cv_path_ifs wx_cv_program_ext \
-       wx_cv_target_library wx_cv_target_library_gl wx_cv_target_libtype
+       wx_cv_target_library wx_cv_target_library_gl wx_cv_target_libtype \
+       wx_cv_library_basename wx_cv_release wx_cv_current wx_cv_revision wx_cv_age
+
 
 AC_CONFIG_SUBDIRS(demos samples utils contrib)
 
@@ -5186,6 +5345,7 @@ dnl (the original file name may be overriden by appending another name after a
 dnl colon)
 AC_OUTPUT([
             wx-config
+            version-script
             src/make.env
             src/makeprog.env
             src/makelib.env
@@ -5230,4 +5390,23 @@ AC_OUTPUT([
           ]
          )
 
-dnl vi: set et sts=4 sw=4:
+dnl report on what we decided to do
+echo
+echo "Configured wxWindows ${WX_VERSION} for \`${host}'"
+echo ""
+echo "  Which GUI toolkit should wxWindows use?                 ${TOOLKIT:-base only}"
+
+echo "  Should wxWindows be compiled in debug mode?             ${wxUSE_DEBUG:-no}"
+echo "  Should wxWindows be linked as a shared library?         ${wxUSE_SHARED:-no}"
+echo "  Should wxWindows be compiled in Unicode mode?           ${wxUSE_UNICODE:-no}"
+
+echo "  Which libraries should wxWindows use?"
+echo "                                       jpeg               ${wxUSE_LIBJPEG-none}"
+echo "                                       png                ${wxUSE_LIBPNG-none}"
+echo "                                       regex              ${wxUSE_REGEX}"
+echo "                                       tiff               ${wxUSE_LIBTIFF-none}"
+echo "                                       zlib               ${wxUSE_ZLIB}"
+
+echo ""
+
+dnl vi: set et sts=4 sw=4 com=\:dnl:
diff --git a/contrib/configure b/contrib/configure
index 32d878c135..cbf9a0ae02 100755
--- a/contrib/configure
+++ b/contrib/configure
@@ -691,6 +691,16 @@ fi
 PATH_IFS=$wx_cv_path_ifs
 WX_TARGET_LIBRARY=$wx_cv_target_library
 WX_TARGET_LIBRARY_TYPE=$wx_cv_target_libtype
+WX_LIBRARY_BASENAME=$wx_cv_library_basename
+WX_RELEASE=$wx_cv_release
+WX_CURRENT=$wx_cv_current
+WX_REVISION=$wx_cv_revision
+WX_AGE=$wx_cv_age
+
+
+
+
+
 
 
 
@@ -830,16 +840,17 @@ trap 'rm -fr `echo "
             samples/ogl/ogledit/Makefile
             samples/ogl/studio/Makefile
             samples/stc/Makefile
-            samples/svg/Makefile	    
+            samples/svg/Makefile
             samples/canvas/Makefile
             samples/canvas/test/Makefile
             samples/canvas/simple/Makefile
             samples/gizmos/Makefile
-            samples/gizmos/multicell/Makefile
-            samples/gizmos/splittree/Makefile
             samples/gizmos/editlbox/Makefile
             samples/gizmos/dynsash/Makefile
             samples/gizmos/dynsash_switch/Makefile
+            samples/gizmos/multicell/Makefile
+            samples/gizmos/splittree/Makefile
+            samples/gizmos/led/Makefile
             samples/xrc/Makefile
             samples/plot/Makefile
             samples/applet/Makefile
@@ -890,6 +901,11 @@ s%@PATH_IFS@%$PATH_IFS%g
 s%@ESD_LINK@%$ESD_LINK%g
 s%@WX_TARGET_LIBRARY@%$WX_TARGET_LIBRARY%g
 s%@WX_TARGET_LIBRARY_TYPE@%$WX_TARGET_LIBRARY_TYPE%g
+s%@WX_LIBRARY_BASENAME@%$WX_LIBRARY_BASENAME%g
+s%@WX_RELEASE@%$WX_RELEASE%g
+s%@WX_CURRENT@%$WX_CURRENT%g
+s%@WX_REVISION@%$WX_REVISION%g
+s%@WX_AGE@%$WX_AGE%g
 
 CEOF
 EOF
@@ -949,16 +965,17 @@ CONFIG_FILES=\${CONFIG_FILES-"src/Makefile
             samples/ogl/ogledit/Makefile
             samples/ogl/studio/Makefile
             samples/stc/Makefile
-            samples/svg/Makefile	    
+            samples/svg/Makefile
             samples/canvas/Makefile
             samples/canvas/test/Makefile
             samples/canvas/simple/Makefile
             samples/gizmos/Makefile
-            samples/gizmos/multicell/Makefile
-            samples/gizmos/splittree/Makefile
             samples/gizmos/editlbox/Makefile
             samples/gizmos/dynsash/Makefile
             samples/gizmos/dynsash_switch/Makefile
+            samples/gizmos/multicell/Makefile
+            samples/gizmos/splittree/Makefile
+            samples/gizmos/led/Makefile
             samples/xrc/Makefile
             samples/plot/Makefile
             samples/applet/Makefile
diff --git a/contrib/configure.in b/contrib/configure.in
index ef6db6c6ec..3047831472 100644
--- a/contrib/configure.in
+++ b/contrib/configure.in
@@ -26,11 +26,21 @@ dnl Final subst
 PATH_IFS=$wx_cv_path_ifs
 WX_TARGET_LIBRARY=$wx_cv_target_library
 WX_TARGET_LIBRARY_TYPE=$wx_cv_target_libtype
+WX_LIBRARY_BASENAME=$wx_cv_library_basename
+WX_RELEASE=$wx_cv_release
+WX_CURRENT=$wx_cv_current
+WX_REVISION=$wx_cv_revision
+WX_AGE=$wx_cv_age
 
 AC_SUBST(PATH_IFS)
 AC_SUBST(ESD_LINK)
 AC_SUBST(WX_TARGET_LIBRARY)
 AC_SUBST(WX_TARGET_LIBRARY_TYPE)
+AC_SUBST(WX_LIBRARY_BASENAME)
+AC_SUBST(WX_RELEASE)
+AC_SUBST(WX_CURRENT)
+AC_SUBST(WX_REVISION)
+AC_SUBST(WX_AGE)
 
 dnl -----------
 dnl File output
@@ -55,15 +65,17 @@ AC_OUTPUT([
             samples/ogl/ogledit/Makefile
             samples/ogl/studio/Makefile
             samples/stc/Makefile
+            samples/svg/Makefile
             samples/canvas/Makefile
             samples/canvas/test/Makefile
             samples/canvas/simple/Makefile
             samples/gizmos/Makefile
-            samples/gizmos/multicell/Makefile
-            samples/gizmos/splittree/Makefile
             samples/gizmos/editlbox/Makefile
             samples/gizmos/dynsash/Makefile
             samples/gizmos/dynsash_switch/Makefile
+            samples/gizmos/multicell/Makefile
+            samples/gizmos/splittree/Makefile
+            samples/gizmos/led/Makefile
             samples/xrc/Makefile
             samples/plot/Makefile
             samples/applet/Makefile
diff --git a/contrib/include/wx/canvas/bbox.h b/contrib/include/wx/canvas/bbox.h
index 6effa6951f..49a2e555ac 100644
--- a/contrib/include/wx/canvas/bbox.h
+++ b/contrib/include/wx/canvas/bbox.h
@@ -21,7 +21,7 @@ class wxBoundingBox
 {
 public:
     wxBoundingBox();
-    wxBoundingBox(wxBoundingBox&);
+    wxBoundingBox(const wxBoundingBox&);
     wxBoundingBox(const wxPoint2DDouble&);
     wxBoundingBox(double xmin, double ymin, double xmax, double ymax);
 
diff --git a/contrib/include/wx/fl/antiflickpl.h b/contrib/include/wx/fl/antiflickpl.h
index 32b0eb2988..e8569aa6df 100644
--- a/contrib/include/wx/fl/antiflickpl.h
+++ b/contrib/include/wx/fl/antiflickpl.h
@@ -26,7 +26,7 @@ antiflicker plugins within the application.
 Locking for multithreaded applications is not yet implemented.
 */
 
-class cbAntiflickerPlugin : public cbPluginBase
+class WXFL_DECLSPEC cbAntiflickerPlugin : public cbPluginBase
 {
     DECLARE_DYNAMIC_CLASS( cbAntiflickerPlugin )
 protected:
diff --git a/contrib/include/wx/fl/bardragpl.h b/contrib/include/wx/fl/bardragpl.h
index 953b8dff9c..6c225dd237 100644
--- a/contrib/include/wx/fl/bardragpl.h
+++ b/contrib/include/wx/fl/bardragpl.h
@@ -23,7 +23,7 @@
 Plugin class implementing bar dragging.
 */
 
-class cbBarDragPlugin : public cbPluginBase
+class WXFL_DECLSPEC cbBarDragPlugin : public cbPluginBase
 {
     DECLARE_DYNAMIC_CLASS( cbBarDragPlugin )
 protected:
diff --git a/contrib/include/wx/fl/barhintspl.h b/contrib/include/wx/fl/barhintspl.h
index 51a503145c..5f8da11d6d 100644
--- a/contrib/include/wx/fl/barhintspl.h
+++ b/contrib/include/wx/fl/barhintspl.h
@@ -24,7 +24,7 @@ This class intercepts bar-decoration and sizing events, and draws 3D hints
 around fixed and flexible bars, similar to those in Microsoft DevStudio 6.x
 */
 
-class cbBarHintsPlugin : public cbPluginBase
+class WXFL_DECLSPEC cbBarHintsPlugin : public cbPluginBase
 {
     DECLARE_DYNAMIC_CLASS( cbBarHintsPlugin )
 
diff --git a/contrib/include/wx/fl/cbcustom.h b/contrib/include/wx/fl/cbcustom.h
index 93ec7f7f43..6eaf27cfd4 100644
--- a/contrib/include/wx/fl/cbcustom.h
+++ b/contrib/include/wx/fl/cbcustom.h
@@ -24,7 +24,7 @@ menu and handling basic customization such as floating
 and horizontal/vertical alignment of the bar.
 */
 
-class cbSimpleCustomizationPlugin : public cbPluginBase
+class WXFL_DECLSPEC cbSimpleCustomizationPlugin : public cbPluginBase
 {
 public:
     DECLARE_DYNAMIC_CLASS( cbSimpleCustomizationPlugin )
diff --git a/contrib/include/wx/fl/controlbar.h b/contrib/include/wx/fl/controlbar.h
index dbe944fc9d..db829bc618 100644
--- a/contrib/include/wx/fl/controlbar.h
+++ b/contrib/include/wx/fl/controlbar.h
@@ -21,30 +21,31 @@
 #include "wx/string.h"
 #include "wx/window.h"
 #include "wx/dynarray.h"
+#include "wx/fl/fldefs.h"
 
 #define WXCONTROLBAR_VERSION      1.3
 
 // forward declarations
 
-class  wxFrameLayout;
+class  WXFL_DECLSPEC wxFrameLayout;
 
-class  cbDockPane;
-class  cbUpdatesManagerBase;
-class  cbBarDimHandlerBase;
-class  cbPluginBase;
-class  cbPluginEvent;
-class  cbPaneDrawPlugin;
+class  WXFL_DECLSPEC cbDockPane;
+class  WXFL_DECLSPEC cbUpdatesManagerBase;
+class  WXFL_DECLSPEC cbBarDimHandlerBase;
+class  WXFL_DECLSPEC cbPluginBase;
+class  WXFL_DECLSPEC cbPluginEvent;
+class  WXFL_DECLSPEC cbPaneDrawPlugin;
 
-class cbBarInfo;
-class cbRowInfo;
-class cbDimInfo;
-class cbCommonPaneProperties;
+class WXFL_DECLSPEC cbBarInfo;
+class WXFL_DECLSPEC cbRowInfo;
+class WXFL_DECLSPEC cbDimInfo;
+class WXFL_DECLSPEC cbCommonPaneProperties;
 
 typedef cbBarInfo* BarInfoPtrT;
 typedef cbRowInfo* RowInfoPtrT;
 
-WX_DEFINE_ARRAY( BarInfoPtrT, BarArrayT );
-WX_DEFINE_ARRAY( RowInfoPtrT, RowArrayT );
+WXFL_DEFINE_ARRAY( BarInfoPtrT, BarArrayT );
+WXFL_DEFINE_ARRAY( RowInfoPtrT, RowArrayT );
 
 // control bar states
 
@@ -97,7 +98,7 @@ Helper class, used for spying for unhandled mouse events on control bars
 and forwarding them to the frame layout.
 */
 
-class cbBarSpy : public wxEvtHandler
+class WXFL_DECLSPEC cbBarSpy : public wxEvtHandler
 {
 public:
     DECLARE_DYNAMIC_CLASS( cbBarSpy )
@@ -129,7 +130,7 @@ which can be docked along the top, bottom, right, or left side of the
 parent frame.
 */
 
-class wxFrameLayout : public wxEvtHandler
+class WXFL_DECLSPEC wxFrameLayout : public wxEvtHandler
 {
 public:
         // Default constructor, used only for serialization.
@@ -647,7 +648,7 @@ used by any particular updates-manager to store
 auxiliary information to be used by its updating algorithm.
 */
 
-class cbUpdateMgrData : public wxObject
+class WXFL_DECLSPEC cbUpdateMgrData : public wxObject
 {
     DECLARE_DYNAMIC_CLASS( cbUpdateMgrData )
 public:
@@ -687,7 +688,7 @@ to adjust the values in cbDimInfo::mSizes accordingly.
 Specific handlers can be hooked up to specific types of bar.
 */
 
-class cbBarDimHandlerBase : public wxObject
+class WXFL_DECLSPEC cbBarDimHandlerBase : public wxObject
 {
     DECLARE_ABSTRACT_CLASS( cbBarDimHandlerBase )
 
@@ -725,7 +726,7 @@ Helper class used internally by the wxFrameLayout class.
 Holds and manages information about bar dimensions.
 */
 
-class cbDimInfo : public wxObject
+class WXFL_DECLSPEC cbDimInfo : public wxObject
 {
     DECLARE_DYNAMIC_CLASS( cbDimInfo )
 public:
@@ -824,7 +825,7 @@ public:
 };
 
 // FIXME: this array definition compiles but probably doesn't do what was intended (GD)
-WX_DEFINE_ARRAY_LONG(float, cbArrayFloat);
+WXFL_DEFINE_ARRAY_LONG(float, cbArrayFloat);
 
 /*
 Helper class used internally by the wxFrameLayout class.
diff --git a/contrib/include/wx/fl/dyntbar.h b/contrib/include/wx/fl/dyntbar.h
index 52945f93ab..25a1593ca6 100644
--- a/contrib/include/wx/fl/dyntbar.h
+++ b/contrib/include/wx/fl/dyntbar.h
@@ -18,12 +18,13 @@
 
 #include "wx/tbarbase.h"
 #include "wx/dynarray.h"
+#include "wx/fl/fldefs.h"
 
 /*
 Tool layout item.
 */
 
-class wxToolLayoutItem : public wxObject
+class WXFL_DECLSPEC wxToolLayoutItem : public wxObject
 {
     DECLARE_DYNAMIC_CLASS(wxToolLayoutItem)
 
@@ -32,19 +33,19 @@ public:
     bool      mIsSeparator;
 };
 
-class wxDynToolInfo;
+class WXFL_DECLSPEC wxDynToolInfo;
 
 typedef wxToolLayoutItem* wxToolLayoutItemPtrT;
 typedef wxDynToolInfo*    wxDynToolInfoPtrT;
 
-WX_DEFINE_ARRAY( wxToolLayoutItemPtrT, wxLayoutItemArrayT  );
-WX_DEFINE_ARRAY( wxDynToolInfoPtrT,    wxDynToolInfoArrayT );
+WXFL_DEFINE_ARRAY( wxToolLayoutItemPtrT, wxLayoutItemArrayT  );
+WXFL_DEFINE_ARRAY( wxDynToolInfoPtrT,    wxDynToolInfoArrayT );
 
 /*
 This is a base class for layout algorithm implementations.
 */
 
-class LayoutManagerBase
+class WXFL_DECLSPEC LayoutManagerBase
 {
 public:
         // Constructor.
@@ -63,7 +64,7 @@ BagLayout lays out items in left-to-right order from
 top to bottom.
 */
 
-class BagLayout : public LayoutManagerBase
+class WXFL_DECLSPEC BagLayout : public LayoutManagerBase
 {
 public:
         // Constructor.
@@ -78,7 +79,7 @@ public:
 This class holds dynamic toolbar item information.
 */
 
-class wxDynToolInfo : public wxToolLayoutItem
+class WXFL_DECLSPEC wxDynToolInfo : public wxToolLayoutItem
 {
     DECLARE_DYNAMIC_CLASS(wxDynToolInfo)
 
@@ -98,7 +99,7 @@ public:
 wxDynamicToolBar manages containment and layout of tool windows.
 */
 
-class wxDynamicToolBar : public wxToolBarBase
+class WXFL_DECLSPEC wxDynamicToolBar : public wxToolBarBase
 {
 protected:
     friend class wxDynamicToolBarSerializer;
diff --git a/contrib/include/wx/fl/dyntbarhnd.h b/contrib/include/wx/fl/dyntbarhnd.h
index 95441c92b8..29446bdeb1 100644
--- a/contrib/include/wx/fl/dyntbarhnd.h
+++ b/contrib/include/wx/fl/dyntbarhnd.h
@@ -23,7 +23,7 @@
 Dynamic toolbar dimension handler.
 */
 
-class cbDynToolBarDimHandler : public cbBarDimHandlerBase
+class WXFL_DECLSPEC cbDynToolBarDimHandler : public cbBarDimHandlerBase
 {
     DECLARE_DYNAMIC_CLASS( cbDynToolBarDimHandler )
 public:
diff --git a/contrib/include/wx/fl/fldefs.h b/contrib/include/wx/fl/fldefs.h
new file mode 100644
index 0000000000..d8346b6229
--- /dev/null
+++ b/contrib/include/wx/fl/fldefs.h
@@ -0,0 +1,50 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        fldefs.h
+// Purpose:     Declaration of global types and defines.
+// Author:      David M. Falkinder (david_falkinder@hp.com)
+// Modified by:
+// Created:     18/09/2002
+// RCS-ID:      $Id$
+// Copyright:   (c) David M. Falkinder
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef __fldefs_H_INCLUDED__
+#define __fldefs_H_INCLUDED__
+
+#include "wx/defs.h"
+
+/*
+ * If we're using wx in Dynamic Library format do we 
+ * want FL to be in DLL form as well?
+ */
+#if defined(WXUSINGDLL) && \
+    (defined(WXMAKING_FL_DLL) || defined(WXUSING_FL_DLL))
+
+#if defined(WXMAKING_FL_DLL)
+    // When building the DLL WXFLDECLSPEC exports classes
+#   define WXFL_DECLSPEC            WXEXPORT
+#elif defined(WXUSING_FL_DLL)
+    // When building the DLL WXFLDECLSPEC imports classes
+#   define WXFL_DECLSPEC            WXIMPORT
+#endif // defined(WXBUILD_FL_DLL)
+
+#else
+// When building the static library nullify the effect of WXFL_DECLSPEC
+#define WXFL_DECLSPEC
+#endif // WXUSINGDLL && (WXMAKING_FL_DLL || WXUSING_FL_DLL)
+
+///////////////////////////////////////////////////////////////////////////////
+// Override some of the wxArray functions to
+// include our definitions
+///////////////////////////////////////////////////////////////////////////////
+#define WXFL_DEFINE_ARRAY(c,l)      \
+    class WXFL_DECLSPEC l;          \
+    WX_DEFINE_ARRAY(c,l)
+
+#define WXFL_DEFINE_ARRAY_LONG(t,l) \
+    class WXFL_DECLSPEC l;          \
+    WX_DEFINE_ARRAY_LONG(t,l)
+
+
+#endif // __fldefs_H_INCLUDED__
diff --git a/contrib/include/wx/fl/frmview.h b/contrib/include/wx/fl/frmview.h
index 8830ab8e0a..8abc9efa36 100644
--- a/contrib/include/wx/fl/frmview.h
+++ b/contrib/include/wx/fl/frmview.h
@@ -32,7 +32,7 @@ class wxFrameManager;
 It is not clear what this class does. It is not used elsewhere in FL.
 */
 
-class wxFrameView : public wxEvtHandler
+class WXFL_DECLSPEC wxFrameView : public wxEvtHandler
 {
 protected:
     wxStringList    mTopMenus;
@@ -87,7 +87,7 @@ class wxFrame;
 It is not clear what this class does. It is not used elsewhere in FL.
 */
 
-class wxFrameManager : wxObject
+class WXFL_DECLSPEC wxFrameManager : wxObject
 {
 protected:
     wxList       mViews;
diff --git a/contrib/include/wx/fl/garbagec.h b/contrib/include/wx/fl/garbagec.h
index b5f991abfa..652854fc01 100644
--- a/contrib/include/wx/fl/garbagec.h
+++ b/contrib/include/wx/fl/garbagec.h
@@ -17,6 +17,7 @@
 #endif
 
 #include "wx/list.h"
+#include "wx/fl/fldefs.h"
 
 struct GCItem
 {
@@ -33,7 +34,7 @@ inline void* gc_node_to_obj( wxNode* pGCNode )
 This class implements an extremely slow but simple garbage collection algorithm.
 */
 
-class GarbageCollector
+class WXFL_DECLSPEC GarbageCollector
 {
 protected:
     wxList mAllNodes;
diff --git a/contrib/include/wx/fl/gcupdatesmgr.h b/contrib/include/wx/fl/gcupdatesmgr.h
index 2bfc959f89..4a0310432f 100644
--- a/contrib/include/wx/fl/gcupdatesmgr.h
+++ b/contrib/include/wx/fl/gcupdatesmgr.h
@@ -93,7 +93,7 @@ to avoid dirty non-client areas of moved windows
 in some special cases of 'overlapping anomalies'.
 */
 
-class cbGCUpdatesMgr : public cbSimpleUpdatesMgr
+class WXFL_DECLSPEC cbGCUpdatesMgr : public cbSimpleUpdatesMgr
 {
     DECLARE_DYNAMIC_CLASS( cbGCUpdatesMgr )
 protected:
diff --git a/contrib/include/wx/fl/hintanimpl.h b/contrib/include/wx/fl/hintanimpl.h
index e35083386e..1a07c59d6d 100644
--- a/contrib/include/wx/fl/hintanimpl.h
+++ b/contrib/include/wx/fl/hintanimpl.h
@@ -20,13 +20,13 @@
 
 #include "wx/timer.h"
 
-class cbHintAnimTimer;
+class WXFL_DECLSPEC cbHintAnimTimer;
 
 /*
 A plugin to draw animated hints when the user drags a pane.
 */
 
-class cbHintAnimationPlugin : public cbPluginBase
+class WXFL_DECLSPEC cbHintAnimationPlugin : public cbPluginBase
 {
     DECLARE_DYNAMIC_CLASS( cbHintAnimationPlugin )
 protected:
@@ -101,7 +101,7 @@ public:
 A private helper class.
 */
 
-struct MorphInfoT
+struct WXFL_DECLSPEC MorphInfoT
 {
     wxPoint mFrom;
     wxPoint mTill;
@@ -111,7 +111,7 @@ struct MorphInfoT
 A private helper class.
 */
 
-class cbHintAnimTimer : public wxTimer 
+class WXFL_DECLSPEC cbHintAnimTimer : public wxTimer 
 {
 protected:
 
diff --git a/contrib/include/wx/fl/newbmpbtn.h b/contrib/include/wx/fl/newbmpbtn.h
index 73fcc32b59..507880b7ce 100644
--- a/contrib/include/wx/fl/newbmpbtn.h
+++ b/contrib/include/wx/fl/newbmpbtn.h
@@ -18,6 +18,7 @@
 
 #include "wx/button.h"
 #include "wx/string.h"
+#include "wx/fl/fldefs.h"
 
 // defaults
 #define NB_DEFAULT_MARGIN 2
@@ -31,8 +32,8 @@
 
 // classes declared in this header file
 
-class wxNewBitmapButton;
-class wxBorderLessBitmapButton;
+class WXFL_DECLSPEC wxNewBitmapButton;
+class WXFL_DECLSPEC wxBorderLessBitmapButton;
 
 /*
 This is an alternative class to wxBitmapButton. It is used
@@ -194,11 +195,6 @@ public:
         // Responds to a kill focus event.
     void OnKillFocus( wxFocusEvent& event );
 
-        // Maps bitmap to current system colours on Windows
-#ifdef __WXMSW__
-    WXHBITMAP MapBitmap(WXHBITMAP bitmap, int width, int height);
-#endif
-
     DECLARE_EVENT_TABLE()
 };
 
diff --git a/contrib/include/wx/fl/panedrawpl.h b/contrib/include/wx/fl/panedrawpl.h
index 781a9f39bc..e84f318fc6 100644
--- a/contrib/include/wx/fl/panedrawpl.h
+++ b/contrib/include/wx/fl/panedrawpl.h
@@ -27,7 +27,7 @@ would be enough for the frame layout to function properly
 (they are plugged in automatically by the wxFrameLayout class).
 */
 
-class cbPaneDrawPlugin : public cbPluginBase
+class WXFL_DECLSPEC cbPaneDrawPlugin : public cbPluginBase
 {
 public:
     DECLARE_DYNAMIC_CLASS( cbPaneDrawPlugin )
diff --git a/contrib/include/wx/fl/rowdragpl.h b/contrib/include/wx/fl/rowdragpl.h
index e9b94aea5b..831a7b7f94 100644
--- a/contrib/include/wx/fl/rowdragpl.h
+++ b/contrib/include/wx/fl/rowdragpl.h
@@ -25,7 +25,7 @@ The behaviour and appearance resembles drag and drop positioning
 of the toolbar rows in Netscape Communicator 4.xx.
 */
 
-class cbRowDragPlugin : public cbPluginBase
+class WXFL_DECLSPEC cbRowDragPlugin : public cbPluginBase
 {
     DECLARE_DYNAMIC_CLASS( cbRowDragPlugin )
 public:
@@ -217,7 +217,7 @@ public:
 Internal helper class.
 */
 
-class cbHiddenBarInfo : public wxObject
+class WXFL_DECLSPEC cbHiddenBarInfo : public wxObject
 {
     DECLARE_DYNAMIC_CLASS( cbHiddenBarInfo )
 public:
diff --git a/contrib/include/wx/fl/rowlayoutpl.h b/contrib/include/wx/fl/rowlayoutpl.h
index fa1bc52ebf..969140a8a5 100644
--- a/contrib/include/wx/fl/rowlayoutpl.h
+++ b/contrib/include/wx/fl/rowlayoutpl.h
@@ -23,7 +23,7 @@ Simple implementation of a plugin which handles row layout
 requests sent from a frame layout.
 */
 
-class cbRowLayoutPlugin : public cbPluginBase
+class WXFL_DECLSPEC cbRowLayoutPlugin : public cbPluginBase
 {
     DECLARE_DYNAMIC_CLASS( cbRowLayoutPlugin )
 protected:
diff --git a/contrib/include/wx/fl/toolwnd.h b/contrib/include/wx/fl/toolwnd.h
index c6509280e6..2024c0c3d0 100644
--- a/contrib/include/wx/fl/toolwnd.h
+++ b/contrib/include/wx/fl/toolwnd.h
@@ -19,6 +19,7 @@
 
 #include "wx/frame.h"
 #include "wx/dynarray.h"
+#include "wx/fl/fldefs.h"
 
 // fixed settings
 
@@ -26,18 +27,18 @@
 #define BTN_BOX_WIDTH        12
 #define BTN_X_WIEGHT         2
 
-class cbMiniButton;
+class WXFL_DECLSPEC cbMiniButton;
 
 typedef cbMiniButton* cbMinitButtonPtrT;
 
-WX_DEFINE_ARRAY( cbMinitButtonPtrT, cbMiniButtonArrayT );
+WXFL_DEFINE_ARRAY( cbMinitButtonPtrT, cbMiniButtonArrayT );
 
 /*
 A tool window is a special kind of frame that paints its own title, and
 can be used to implement small floating windows.
 */
 
-class wxToolWindow : public wxFrame
+class WXFL_DECLSPEC wxToolWindow : public wxFrame
 {
     DECLARE_DYNAMIC_CLASS( wxToolWindow )
 
@@ -221,7 +222,7 @@ public:
 cbCloseBox is a window close button, used in a wxToolWindow titlebar.
 */
 
-class cbCloseBox : public cbMiniButton
+class WXFL_DECLSPEC cbCloseBox : public cbMiniButton
 {
 public:
         // Draws the close button appearance.
@@ -232,7 +233,7 @@ public:
 cbCollapseBox is a window collapse button, used in a wxToolWindow titlebar.
 */
 
-class cbCollapseBox  : public cbMiniButton
+class WXFL_DECLSPEC cbCollapseBox  : public cbMiniButton
 {
 public:
     bool mIsAtLeft;
@@ -245,7 +246,7 @@ public:
 cbDockBox is a window dock button, used in a wxToolWindow titlebar.
 */
 
-class cbDockBox : public cbMiniButton
+class WXFL_DECLSPEC cbDockBox : public cbMiniButton
 {
 public:
         // Draws the dock button appearance.
@@ -257,7 +258,7 @@ cbFloatedBarWindow is a kind of wxToolWindow,
 implementing floating toolbars.
 */
 
-class cbFloatedBarWindow : public wxToolWindow
+class WXFL_DECLSPEC cbFloatedBarWindow : public wxToolWindow
 {
     DECLARE_DYNAMIC_CLASS( cbFloatedBarWindow )
 protected:
diff --git a/contrib/include/wx/fl/updatesmgr.h b/contrib/include/wx/fl/updatesmgr.h
index 027d51315b..52a3222b9f 100644
--- a/contrib/include/wx/fl/updatesmgr.h
+++ b/contrib/include/wx/fl/updatesmgr.h
@@ -23,7 +23,7 @@ This class implements slightly optimized logic for refreshing
 the areas of frame layout that actually need to be updated.
 */
 
-class cbSimpleUpdatesMgr : public cbUpdatesManagerBase
+class WXFL_DECLSPEC cbSimpleUpdatesMgr : public cbUpdatesManagerBase
 {
     DECLARE_DYNAMIC_CLASS( cbSimpleUpdatesMgr )
 protected:
diff --git a/contrib/include/wx/ogl/basic.h b/contrib/include/wx/ogl/basic.h
index 30c23cea36..a765fbe09d 100644
--- a/contrib/include/wx/ogl/basic.h
+++ b/contrib/include/wx/ogl/basic.h
@@ -22,11 +22,6 @@
 #define DEFAULT_MOUSE_TOLERANCE 3
 #endif
 
-// Edit these lines if you positively don't want PROLOGIO support
-#ifndef PROLOGIO
-#define PROLOGIO
-#endif
-
 // Key identifiers
 #define KEY_SHIFT 1
 #define KEY_CTRL  2
@@ -110,7 +105,7 @@ class wxControlPoint;
 class wxShapeRegion;
 class wxShape;
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
 class WXDLLEXPORT wxExpr;
 class WXDLLEXPORT wxExprDatabase;
 #endif
@@ -381,7 +376,7 @@ class wxShape: public wxShapeEvtHandler
   virtual void ClearText(int regionId = 0);
   void RemoveLine(wxLineShape *line);
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
   // I/O
   virtual void WriteAttributes(wxExpr *clause);
   virtual void ReadAttributes(wxExpr *clause);
@@ -613,7 +608,7 @@ class wxPolygonShape: public wxShape
   // Recalculates the centre of the polygon
   virtual void CalculatePolygonCentre();
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
   void WriteAttributes(wxExpr *clause);
   void ReadAttributes(wxExpr *clause);
 #endif
@@ -652,7 +647,7 @@ class wxRectangleShape: public wxShape
   void SetSize(double x, double y, bool recursive = TRUE);
   void SetCornerRadius(double rad); // If > 0, rounded corners
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
   void WriteAttributes(wxExpr *clause);
   void ReadAttributes(wxExpr *clause);
 #endif
@@ -682,8 +677,8 @@ class wxTextShape: public wxRectangleShape
 
   void OnDraw(wxDC& dc);
 
-#ifdef PROLOGIO
-  void WriteAttributes(wxExpr *clause);
+#if wxUSE_PROLOGIO
+    void WriteAttributes(wxExpr *clause);
 #endif
 
   // Does the copying for this object
@@ -704,7 +699,7 @@ class wxEllipseShape: public wxShape
   void OnDraw(wxDC& dc);
   void SetSize(double x, double y, bool recursive = TRUE);
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
   void WriteAttributes(wxExpr *clause);
   void ReadAttributes(wxExpr *clause);
 #endif
diff --git a/contrib/include/wx/ogl/basicp.h b/contrib/include/wx/ogl/basicp.h
index fddc8732ac..a1d60cedee 100644
--- a/contrib/include/wx/ogl/basicp.h
+++ b/contrib/include/wx/ogl/basicp.h
@@ -136,7 +136,8 @@ class wxShapeRegion: public wxObject
   ~wxShapeRegion();
 
   // Accessors
-  inline void SetText(const wxString& s) { m_regionText = s; }
+  inline void SetText(const wxString& s)
+    { m_regionText = s; m_formattedText.Append(new wxShapeTextLine(0,0,s));}
   void SetFont(wxFont *f);
   void SetMinSize(double w, double h);
   void SetSize(double w, double h);
diff --git a/contrib/include/wx/ogl/bmpshape.h b/contrib/include/wx/ogl/bmpshape.h
index 1b56477550..5389351fe4 100644
--- a/contrib/include/wx/ogl/bmpshape.h
+++ b/contrib/include/wx/ogl/bmpshape.h
@@ -27,7 +27,7 @@ class wxBitmapShape: public wxRectangleShape
 
   void OnDraw(wxDC& dc);
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
   // I/O
   void WriteAttributes(wxExpr *clause);
   void ReadAttributes(wxExpr *clause);
diff --git a/contrib/include/wx/ogl/composit.h b/contrib/include/wx/ogl/composit.h
index fc373fe505..618629d4ff 100644
--- a/contrib/include/wx/ogl/composit.h
+++ b/contrib/include/wx/ogl/composit.h
@@ -77,7 +77,7 @@ public:
   // Calculates size and position of composite object based on children
   void CalculateSize();
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
   void WriteAttributes(wxExpr *clause);
   void ReadAttributes(wxExpr *clause);
   // In case the object has constraints it needs to read in in a different pass
@@ -152,7 +152,7 @@ class wxDivisionShape: public wxCompositeShape
   void MakeMandatoryControlPoints();
   void ResetMandatoryControlPoints();
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
   void WriteAttributes(wxExpr *clause);
   void ReadAttributes(wxExpr *clause);
 #endif
diff --git a/contrib/include/wx/ogl/divided.h b/contrib/include/wx/ogl/divided.h
index a427a63062..6fc733eee3 100644
--- a/contrib/include/wx/ogl/divided.h
+++ b/contrib/include/wx/ogl/divided.h
@@ -46,7 +46,7 @@ class wxDividedShape: public wxRectangleShape
   void MakeMandatoryControlPoints();
   void ResetMandatoryControlPoints();
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
   void WriteAttributes(wxExpr *clause);
   void ReadAttributes(wxExpr *clause);
 #endif
diff --git a/contrib/include/wx/ogl/drawn.h b/contrib/include/wx/ogl/drawn.h
index 4bc00f91d3..dafde44d21 100644
--- a/contrib/include/wx/ogl/drawn.h
+++ b/contrib/include/wx/ogl/drawn.h
@@ -32,7 +32,7 @@ class wxPseudoMetaFile: public wxObject
 
   void Draw(wxDC& dc, double xoffset, double yoffset);
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
   void WriteAttributes(wxExpr *clause, int whichAngle);
   void ReadAttributes(wxExpr *clause, int whichAngle);
 #endif
@@ -139,7 +139,7 @@ class wxDrawnShape: public wxRectangleShape
 
   void OnDraw(wxDC& dc);
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
   // I/O
   void WriteAttributes(wxExpr *clause);
   void ReadAttributes(wxExpr *clause);
diff --git a/contrib/include/wx/ogl/drawnp.h b/contrib/include/wx/ogl/drawnp.h
index 98ca0a8b65..dd083219b8 100644
--- a/contrib/include/wx/ogl/drawnp.h
+++ b/contrib/include/wx/ogl/drawnp.h
@@ -65,9 +65,10 @@ public:
   inline virtual void Rotate(double x, double y, double theta, double sinTheta, double cosTheta) {};
   virtual void Do(wxDC& dc, double xoffset, double yoffset) = 0;
   virtual wxDrawOp *Copy(wxPseudoMetaFile *newImage) = 0;
+#if wxUSE_PROLOGIO
   virtual wxExpr *WriteExpr(wxPseudoMetaFile *image) = 0;
   virtual void ReadExpr(wxPseudoMetaFile *image, wxExpr *expr) = 0;
-
+#endif
   inline int GetOp() const { return m_op; }
 
   // Draw an outline using the current operation. By default, return FALSE (not drawn)
@@ -98,8 +99,10 @@ class wxOpSetGDI: public wxDrawOp
   wxOpSetGDI(int theOp, wxPseudoMetaFile *theImage, int theGdiIndex, int theMode = 0);
   void Do(wxDC& dc, double xoffset, double yoffset);
   wxDrawOp *Copy(wxPseudoMetaFile *newImage);
+#if wxUSE_PROLOGIO
   wxExpr *WriteExpr(wxPseudoMetaFile *image);
   void ReadExpr(wxPseudoMetaFile *image, wxExpr *expr);
+#endif
 
 public:
   int               m_mode;
@@ -123,8 +126,10 @@ public:
   void Scale(double xScale, double yScale);
   void Translate(double x, double y);
   wxDrawOp *Copy(wxPseudoMetaFile *newImage);
+#if wxUSE_PROLOGIO
   wxExpr *WriteExpr(wxPseudoMetaFile *image);
   void ReadExpr(wxPseudoMetaFile *image, wxExpr *expr);
+#endif
 
 public:
   double     m_x1;
@@ -149,8 +154,10 @@ class wxOpDraw: public wxDrawOp
   void Translate(double x, double y);
   void Rotate(double x, double y, double theta, double sinTheta, double cosTheta);
   wxDrawOp *Copy(wxPseudoMetaFile *newImage);
+#if wxUSE_PROLOGIO
   wxExpr *WriteExpr(wxPseudoMetaFile *image);
   void ReadExpr(wxPseudoMetaFile *image, wxExpr *expr);
+#endif
 
 public:
   double     m_x1;
@@ -179,8 +186,10 @@ public:
   void Translate(double x, double y);
   void Rotate(double x, double y, double theta, double sinTheta, double cosTheta);
   wxDrawOp *Copy(wxPseudoMetaFile *newImage);
+#if wxUSE_PROLOGIO
   wxExpr *WriteExpr(wxPseudoMetaFile *image);
   void ReadExpr(wxPseudoMetaFile *image, wxExpr *expr);
+#endif
 
   // Draw an outline using the current operation.
   virtual bool OnDrawOutline(wxDC& dc, double x, double y, double w, double h,
diff --git a/contrib/include/wx/ogl/lines.h b/contrib/include/wx/ogl/lines.h
index 0fb141ea98..22d7a3b22c 100644
--- a/contrib/include/wx/ogl/lines.h
+++ b/contrib/include/wx/ogl/lines.h
@@ -188,7 +188,7 @@ class wxLineShape: public wxShape
 
   bool HitTest(double x, double y, int *attachment, double *distance);
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
   // I/O
   virtual void WriteAttributes(wxExpr *clause);
   virtual void ReadAttributes(wxExpr *clause);
diff --git a/contrib/include/wx/ogl/ogldiag.h b/contrib/include/wx/ogl/ogldiag.h
index afe7db18c4..7a593f2466 100644
--- a/contrib/include/wx/ogl/ogldiag.h
+++ b/contrib/include/wx/ogl/ogldiag.h
@@ -67,7 +67,7 @@ public:
   // Make sure all text that should be centred, is centred.
   void RecentreAll(wxDC& dc);
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
   virtual bool SaveFile(const wxString& filename);
   virtual bool LoadFile(const wxString& filename);
 
diff --git a/contrib/include/wx/stc/stc.h b/contrib/include/wx/stc/stc.h
index 640eac8baf..82cd6684ff 100644
--- a/contrib/include/wx/stc/stc.h
+++ b/contrib/include/wx/stc/stc.h
@@ -24,6 +24,12 @@
 #include <wx/wx.h>
 #include <wx/dnd.h>
 
+#ifdef STCISDLL
+#define STCDLLEXPORT WXDLLEXPORT
+#else
+#define STCDLLEXPORT
+#endif
+
 //----------------------------------------------------------------------
 
 // Should a wxPopupWindow be used for the call tips and autocomplete windows?
@@ -43,12 +49,6 @@
 #define wxSTC_START 2000
 #define wxSTC_OPTIONAL_START 3000
 #define wxSTC_LEXER_START 4000
-
-// Redoes the next action on the undo history.
-#define wxSTC_CMD_REDO 2011
-
-// Select all the text in the document.
-#define wxSTC_CMD_SELECTALL 2013
 #define wxSTC_WS_INVISIBLE 0
 #define wxSTC_WS_VISIBLEALWAYS 1
 #define wxSTC_WS_VISIBLEAFTERINDENT 2
@@ -167,18 +167,6 @@
 #define wxSTC_FIND_MATCHCASE 4
 #define wxSTC_FIND_WORDSTART 0x00100000
 #define wxSTC_FIND_REGEXP 0x00200000
-
-// Undo one action in the undo history.
-#define wxSTC_CMD_UNDO 2176
-
-// Cut the selection to the clipboard.
-#define wxSTC_CMD_CUT 2177
-
-// Copy the selection to the clipboard.
-#define wxSTC_CMD_COPY 2178
-
-// Paste the contents of the clipboard into the document replacing the selection.
-#define wxSTC_CMD_PASTE 2179
 #define wxSTC_FOLDLEVELBASE 0x400
 #define wxSTC_FOLDLEVELWHITEFLAG 0x1000
 #define wxSTC_FOLDLEVELHEADERFLAG 0x2000
@@ -190,158 +178,6 @@
 #define wxSTC_CACHE_CARET 1
 #define wxSTC_CACHE_PAGE 2
 #define wxSTC_CACHE_DOCUMENT 3
-
-// Move caret down one line.
-#define wxSTC_CMD_LINEDOWN 2300
-
-// Move caret down one line extending selection to new caret position.
-#define wxSTC_CMD_LINEDOWNEXTEND 2301
-
-// Move caret up one line.
-#define wxSTC_CMD_LINEUP 2302
-
-// Move caret up one line extending selection to new caret position.
-#define wxSTC_CMD_LINEUPEXTEND 2303
-
-// Move caret left one character.
-#define wxSTC_CMD_CHARLEFT 2304
-
-// Move caret left one character extending selection to new caret position.
-#define wxSTC_CMD_CHARLEFTEXTEND 2305
-
-// Move caret right one character.
-#define wxSTC_CMD_CHARRIGHT 2306
-
-// Move caret right one character extending selection to new caret position.
-#define wxSTC_CMD_CHARRIGHTEXTEND 2307
-
-// Move caret left one word.
-#define wxSTC_CMD_WORDLEFT 2308
-
-// Move caret left one word extending selection to new caret position.
-#define wxSTC_CMD_WORDLEFTEXTEND 2309
-
-// Move caret right one word.
-#define wxSTC_CMD_WORDRIGHT 2310
-
-// Move caret right one word extending selection to new caret position.
-#define wxSTC_CMD_WORDRIGHTEXTEND 2311
-
-// Move caret to first position on line.
-#define wxSTC_CMD_HOME 2312
-
-// Move caret to first position on line extending selection to new caret position.
-#define wxSTC_CMD_HOMEEXTEND 2313
-
-// Move caret to last position on line.
-#define wxSTC_CMD_LINEEND 2314
-
-// Move caret to last position on line extending selection to new caret position.
-#define wxSTC_CMD_LINEENDEXTEND 2315
-
-// Move caret to first position in document.
-#define wxSTC_CMD_DOCUMENTSTART 2316
-
-// Move caret to first position in document extending selection to new caret position.
-#define wxSTC_CMD_DOCUMENTSTARTEXTEND 2317
-
-// Move caret to last position in document.
-#define wxSTC_CMD_DOCUMENTEND 2318
-
-// Move caret to last position in document extending selection to new caret position.
-#define wxSTC_CMD_DOCUMENTENDEXTEND 2319
-
-// Move caret one page up.
-#define wxSTC_CMD_PAGEUP 2320
-
-// Move caret one page up extending selection to new caret position.
-#define wxSTC_CMD_PAGEUPEXTEND 2321
-
-// Move caret one page down.
-#define wxSTC_CMD_PAGEDOWN 2322
-
-// Move caret one page down extending selection to new caret position.
-#define wxSTC_CMD_PAGEDOWNEXTEND 2323
-
-// Switch from insert to overtype mode or the reverse.
-#define wxSTC_CMD_EDITTOGGLEOVERTYPE 2324
-
-// Cancel any modes such as call tip or auto-completion list display.
-#define wxSTC_CMD_CANCEL 2325
-
-// Delete the selection or if no selection, the character before the caret.
-#define wxSTC_CMD_DELETEBACK 2326
-
-// If selection is empty or all on one line replace the selection with a tab character.
-// If more than one line selected, indent the lines.
-#define wxSTC_CMD_TAB 2327
-
-// Dedent the selected lines.
-#define wxSTC_CMD_BACKTAB 2328
-
-// Insert a new line, may use a CRLF, CR or LF depending on EOL mode.
-#define wxSTC_CMD_NEWLINE 2329
-
-// Insert a Form Feed character.
-#define wxSTC_CMD_FORMFEED 2330
-
-// Move caret to before first visible character on line.
-// If already there move to first character on line.
-#define wxSTC_CMD_VCHOME 2331
-
-// Like VCHome but extending selection to new caret position.
-#define wxSTC_CMD_VCHOMEEXTEND 2332
-
-// Magnify the displayed text by increasing the sizes by 1 point.
-#define wxSTC_CMD_ZOOMIN 2333
-
-// Make the displayed text smaller by decreasing the sizes by 1 point.
-#define wxSTC_CMD_ZOOMOUT 2334
-
-// Delete the word to the left of the caret.
-#define wxSTC_CMD_DELWORDLEFT 2335
-
-// Delete the word to the right of the caret.
-#define wxSTC_CMD_DELWORDRIGHT 2336
-
-// Cut the line containing the caret.
-#define wxSTC_CMD_LINECUT 2337
-
-// Delete the line containing the caret.
-#define wxSTC_CMD_LINEDELETE 2338
-
-// Switch the current line with the previous.
-#define wxSTC_CMD_LINETRANSPOSE 2339
-
-// Transform the selection to lower case.
-#define wxSTC_CMD_LOWERCASE 2340
-
-// Transform the selection to upper case.
-#define wxSTC_CMD_UPPERCASE 2341
-
-// Scroll the document down, keeping the caret visible.
-#define wxSTC_CMD_LINESCROLLDOWN 2342
-
-// Scroll the document up, keeping the caret visible.
-#define wxSTC_CMD_LINESCROLLUP 2343
-
-// Delete the selection or if no selection, the character before the caret.
-// Will not delete the character before at the start of a line.
-#define wxSTC_CMD_DELETEBACKNOTLINE 2344
-
-// Move caret to first position on display line.
-#define wxSTC_CMD_HOMEDISPLAY 2345
-
-// Move caret to first position on display line extending selection to 
-// new caret position.
-#define wxSTC_CMD_HOMEDISPLAYEXTEND 2346
-
-// Move caret to last position on display line.
-#define wxSTC_CMD_LINEENDDISPLAY 2347
-
-// Move caret to last position on display line extending selection to new 
-// caret position.
-#define wxSTC_CMD_LINEENDDISPLAYEXTEND 2348
 #define wxSTC_EDGE_NONE 0
 #define wxSTC_EDGE_LINE 1
 #define wxSTC_EDGE_BACKGROUND 2
@@ -866,6 +702,204 @@
 #define wxSTC_SCRIPTOL_COMMENTDOCKEYWORDERROR 18
 #define wxSTC_SCRIPTOL_COMMENTBASIC 19
 
+
+//-----------------------------------------
+// Commands that can be bound to keystrokes
+
+// Redoes the next action on the undo history.
+#define wxSTC_CMD_REDO 2011
+
+// Select all the text in the document.
+#define wxSTC_CMD_SELECTALL 2013
+
+// Undo one action in the undo history.
+#define wxSTC_CMD_UNDO 2176
+
+// Cut the selection to the clipboard.
+#define wxSTC_CMD_CUT 2177
+
+// Copy the selection to the clipboard.
+#define wxSTC_CMD_COPY 2178
+
+// Paste the contents of the clipboard into the document replacing the selection.
+#define wxSTC_CMD_PASTE 2179
+
+// Clear the selection.
+#define wxSTC_CMD_CLEAR 2180
+
+// Move caret down one line.
+#define wxSTC_CMD_LINEDOWN 2300
+
+// Move caret down one line extending selection to new caret position.
+#define wxSTC_CMD_LINEDOWNEXTEND 2301
+
+// Move caret up one line.
+#define wxSTC_CMD_LINEUP 2302
+
+// Move caret up one line extending selection to new caret position.
+#define wxSTC_CMD_LINEUPEXTEND 2303
+
+// Move caret left one character.
+#define wxSTC_CMD_CHARLEFT 2304
+
+// Move caret left one character extending selection to new caret position.
+#define wxSTC_CMD_CHARLEFTEXTEND 2305
+
+// Move caret right one character.
+#define wxSTC_CMD_CHARRIGHT 2306
+
+// Move caret right one character extending selection to new caret position.
+#define wxSTC_CMD_CHARRIGHTEXTEND 2307
+
+// Move caret left one word.
+#define wxSTC_CMD_WORDLEFT 2308
+
+// Move caret left one word extending selection to new caret position.
+#define wxSTC_CMD_WORDLEFTEXTEND 2309
+
+// Move caret right one word.
+#define wxSTC_CMD_WORDRIGHT 2310
+
+// Move caret right one word extending selection to new caret position.
+#define wxSTC_CMD_WORDRIGHTEXTEND 2311
+
+// Move caret to first position on line.
+#define wxSTC_CMD_HOME 2312
+
+// Move caret to first position on line extending selection to new caret position.
+#define wxSTC_CMD_HOMEEXTEND 2313
+
+// Move caret to last position on line.
+#define wxSTC_CMD_LINEEND 2314
+
+// Move caret to last position on line extending selection to new caret position.
+#define wxSTC_CMD_LINEENDEXTEND 2315
+
+// Move caret to first position in document.
+#define wxSTC_CMD_DOCUMENTSTART 2316
+
+// Move caret to first position in document extending selection to new caret position.
+#define wxSTC_CMD_DOCUMENTSTARTEXTEND 2317
+
+// Move caret to last position in document.
+#define wxSTC_CMD_DOCUMENTEND 2318
+
+// Move caret to last position in document extending selection to new caret position.
+#define wxSTC_CMD_DOCUMENTENDEXTEND 2319
+
+// Move caret one page up.
+#define wxSTC_CMD_PAGEUP 2320
+
+// Move caret one page up extending selection to new caret position.
+#define wxSTC_CMD_PAGEUPEXTEND 2321
+
+// Move caret one page down.
+#define wxSTC_CMD_PAGEDOWN 2322
+
+// Move caret one page down extending selection to new caret position.
+#define wxSTC_CMD_PAGEDOWNEXTEND 2323
+
+// Switch from insert to overtype mode or the reverse.
+#define wxSTC_CMD_EDITTOGGLEOVERTYPE 2324
+
+// Cancel any modes such as call tip or auto-completion list display.
+#define wxSTC_CMD_CANCEL 2325
+
+// Delete the selection or if no selection, the character before the caret.
+#define wxSTC_CMD_DELETEBACK 2326
+
+// If selection is empty or all on one line replace the selection with a tab character.
+// If more than one line selected, indent the lines.
+#define wxSTC_CMD_TAB 2327
+
+// Dedent the selected lines.
+#define wxSTC_CMD_BACKTAB 2328
+
+// Insert a new line, may use a CRLF, CR or LF depending on EOL mode.
+#define wxSTC_CMD_NEWLINE 2329
+
+// Insert a Form Feed character.
+#define wxSTC_CMD_FORMFEED 2330
+
+// Move caret to before first visible character on line.
+// If already there move to first character on line.
+#define wxSTC_CMD_VCHOME 2331
+
+// Like VCHome but extending selection to new caret position.
+#define wxSTC_CMD_VCHOMEEXTEND 2332
+
+// Magnify the displayed text by increasing the sizes by 1 point.
+#define wxSTC_CMD_ZOOMIN 2333
+
+// Make the displayed text smaller by decreasing the sizes by 1 point.
+#define wxSTC_CMD_ZOOMOUT 2334
+
+// Delete the word to the left of the caret.
+#define wxSTC_CMD_DELWORDLEFT 2335
+
+// Delete the word to the right of the caret.
+#define wxSTC_CMD_DELWORDRIGHT 2336
+
+// Cut the line containing the caret.
+#define wxSTC_CMD_LINECUT 2337
+
+// Delete the line containing the caret.
+#define wxSTC_CMD_LINEDELETE 2338
+
+// Switch the current line with the previous.
+#define wxSTC_CMD_LINETRANSPOSE 2339
+
+// Transform the selection to lower case.
+#define wxSTC_CMD_LOWERCASE 2340
+
+// Transform the selection to upper case.
+#define wxSTC_CMD_UPPERCASE 2341
+
+// Scroll the document down, keeping the caret visible.
+#define wxSTC_CMD_LINESCROLLDOWN 2342
+
+// Scroll the document up, keeping the caret visible.
+#define wxSTC_CMD_LINESCROLLUP 2343
+
+// Delete the selection or if no selection, the character before the caret.
+// Will not delete the character before at the start of a line.
+#define wxSTC_CMD_DELETEBACKNOTLINE 2344
+
+// Move caret to first position on display line.
+#define wxSTC_CMD_HOMEDISPLAY 2345
+
+// Move caret to first position on display line extending selection to
+// new caret position.
+#define wxSTC_CMD_HOMEDISPLAYEXTEND 2346
+
+// Move caret to last position on display line.
+#define wxSTC_CMD_LINEENDDISPLAY 2347
+
+// Move caret to last position on display line extending selection to new
+// caret position.
+#define wxSTC_CMD_LINEENDDISPLAYEXTEND 2348
+
+// Move to the previous change in capitalisation.
+#define wxSTC_CMD_WORDPARTLEFT 2390
+
+// Move to the previous change in capitalisation extending selection
+// to new caret position.
+#define wxSTC_CMD_WORDPARTLEFTEXTEND 2391
+
+// Move to the change next in capitalisation.
+#define wxSTC_CMD_WORDPARTRIGHT 2392
+
+// Move to the next change in capitalisation extending selection
+// to new caret position.
+#define wxSTC_CMD_WORDPARTRIGHTEXTEND 2393
+
+// Delete back from the current position to the start of the line.
+#define wxSTC_CMD_DELLINELEFT 2395
+
+// Delete forwards from the current position to the end of the line.
+#define wxSTC_CMD_DELLINERIGHT 2396
+
+
 // END of generated section
 //----------------------------------------------------------------------
 
@@ -873,8 +907,11 @@ class  ScintillaWX;                      // forward declare
 class  WordList;
 struct SCNotification;
 
-
-extern const wxChar* wxSTCNameStr;
+#ifndef SWIG
+extern STCDLLEXPORT const wxChar* wxSTCNameStr;
+class STCDLLEXPORT wxStyledTextCtrl;
+class STCDLLEXPORT wxStyledTextEvent;
+#endif
 
 //----------------------------------------------------------------------
 
@@ -1644,14 +1681,14 @@ public:
     // Move caret to first position on display line.
     void HomeDisplay();
 
-    // Move caret to first position on display line extending selection to 
+    // Move caret to first position on display line extending selection to
     // new caret position.
     void HomeDisplayExtend();
 
     // Move caret to last position on display line.
     void LineEndDisplay();
 
-    // Move caret to last position on display line extending selection to new 
+    // Move caret to last position on display line extending selection to new
     // caret position.
     void LineEndDisplayExtend();
 
@@ -1933,6 +1970,7 @@ private:
     void OnMouseMove(wxMouseEvent& evt);
     void OnMouseLeftUp(wxMouseEvent& evt);
     void OnMouseRightUp(wxMouseEvent& evt);
+    void OnMouseMiddleUp(wxMouseEvent& evt);
     void OnContextMenu(wxContextMenuEvent& evt);
     void OnMouseWheel(wxMouseEvent& evt);
     void OnChar(wxKeyEvent& evt);
@@ -1968,7 +2006,7 @@ private:
 
 //----------------------------------------------------------------------
 
-// SWIG can't handle "#if" type of conditionals, onlu "#ifdef"
+// SWIG can't handle "#if" type of conditionals, only "#ifdef"
 #ifdef SWIG
 #define STC_USE_DND 1
 #else
diff --git a/contrib/include/wx/xrc/xh_all.h b/contrib/include/wx/xrc/xh_all.h
index 5382b6ffb0..2ac1db392c 100644
--- a/contrib/include/wx/xrc/xh_all.h
+++ b/contrib/include/wx/xrc/xh_all.h
@@ -46,5 +46,6 @@
 #include "wx/xrc/xh_unkwn.h"
 #include "wx/xrc/xh_gdctl.h"
 #include "wx/xrc/xh_frame.h"
+#include "wx/xrc/xh_scwin.h"
 
 #endif // _WX_XMLRES_H_
diff --git a/contrib/include/wx/xrc/xh_scwin.h b/contrib/include/wx/xrc/xh_scwin.h
new file mode 100644
index 0000000000..1befc41215
--- /dev/null
+++ b/contrib/include/wx/xrc/xh_scwin.h
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        xh_scwin.h
+// Purpose:     XML resource handler for wxScrolledWindow
+// Author:      Vaclav Slavik
+// Created:     2002/10/18
+// RCS-ID:      $Id$
+// Copyright:   (c) 2002 Vaclav Slavik
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_XH_SCWIN_H_
+#define _WX_XH_SCWIN_H_
+
+#if defined(__GNUG__) && !defined(__APPLE__)
+#pragma interface "xh_scwin.h"
+#endif
+
+#include "wx/xrc/xmlres.h"
+#include "wx/defs.h"
+
+
+
+class WXXMLDLLEXPORT wxScrolledWindowXmlHandler : public wxXmlResourceHandler
+{
+public:
+    wxScrolledWindowXmlHandler();
+    virtual wxObject *DoCreateResource();
+    virtual bool CanHandle(wxXmlNode *node);
+};
+
+
+#endif // _WX_XH_SCWIN_H_
diff --git a/contrib/include/wx/xrc/xmlres.h b/contrib/include/wx/xrc/xmlres.h
index ca37a9cfa7..d0d6a831cd 100644
--- a/contrib/include/wx/xrc/xmlres.h
+++ b/contrib/include/wx/xrc/xmlres.h
@@ -37,6 +37,9 @@ class WXDLLEXPORT wxFrame;
 class WXDLLEXPORT wxToolBar;
 
 class WXXMLDLLEXPORT wxXmlResourceHandler;
+class WXXMLDLLEXPORT wxXmlSubclassFactory;
+class WXXMLDLLEXPORT wxXmlSubclassFactoriesList;
+class wxXmlResourceModule;
 
 
 // These macros indicate current version of XML resources (this information is
@@ -133,6 +136,11 @@ public:
 
     // Removes all handlers
     void ClearHandlers();
+    
+    // Registers subclasses factory for use in XRC. This function is not meant
+    // for public use, please see the comment above wxXmlSubclassFactory
+    // definition.
+    static void AddSubclassFactory(wxXmlSubclassFactory *factory);
 
     // Loads menu from resource. Returns NULL on failure.
     wxMenu *LoadMenu(const wxString& name);
@@ -216,7 +224,9 @@ public:
     static wxXmlResource *Set(wxXmlResource *res);
 
     // Returns flags, which may be a bitlist of wxXRC_USE_LOCALE and wxXRC_NO_SUBCLASSING.
-    int GetFlags() { return m_flags; }
+    int GetFlags() const { return m_flags; }
+    // Set flags after construction.
+    void SetFlags(int flags) { m_flags = flags; }
 
 protected:
     // Scans the resources list for unloaded files and loads them. Also reloads
@@ -244,6 +254,9 @@ private:
 #endif
 
     friend class wxXmlResourceHandler;
+    friend class wxXmlResourceModule;
+
+    static wxXmlSubclassFactoriesList *ms_subclassFactories;
 
     // singleton instance:
     static wxXmlResource *ms_instance;
@@ -438,6 +451,20 @@ protected:
 void wxXmlInitResourceModule();
 
 
+// This class is used to create instances of XRC "object" nodes with "subclass"
+// property. It is _not_ supposed to be used by XRC users, you should instead
+// register your subclasses via wxWindows' RTTI mechanism. This class is useful
+// only for language bindings developer who need a way to implement subclassing
+// in wxWindows ports that don't support wxRTTI (e.g. wxPython).
+class WXXMLDLLEXPORT wxXmlSubclassFactory
+{
+public:
+    // Try to create instance of given class and return it, return NULL on failure:
+    virtual wxObject *Create(const wxString& className) = 0;
+    virtual ~wxXmlSubclassFactory() {}
+};
+
+
 /* -------------------------------------------------------------------------
    Backward compatibility macros. Do *NOT* use, they may disappear in future
    versions of the XRC library!
diff --git a/contrib/samples/animate/AniTestVC.dsp b/contrib/samples/animate/AniTestVC.dsp
index 73f3d56884..dd74dd069c 100644
--- a/contrib/samples/animate/AniTestVC.dsp
+++ b/contrib/samples/animate/AniTestVC.dsp
@@ -111,7 +111,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib animd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/anitest.exe" /pdbtype:sept /libpath:"../../../lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib animd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/anitest.exe" /pdbtype:sept /libpath:"../../../lib"
 
 !ELSEIF  "$(CFG)" == "AniTestVC - Win32 Release DLL"
 
@@ -138,7 +138,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233.lib anim.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/anitest.exe" /libpath:"../../../lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib anim.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/anitest.exe" /libpath:"../../../lib"
 
 !ELSEIF  "$(CFG)" == "AniTestVC - Win32 UnivRelease"
 
diff --git a/contrib/samples/animate/Makefile.in b/contrib/samples/animate/Makefile.in
index d645e9ad99..29bf8fb02f 100644
--- a/contrib/samples/animate/Makefile.in
+++ b/contrib/samples/animate/Makefile.in
@@ -17,7 +17,7 @@ PROGRAM=anitest
 
 OBJECTS=$(PROGRAM).o
 
-APPEXTRALIBS=$(top_builddir)/lib/libwx_anim.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_anim-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/contrib/samples/applet/Makefile.in b/contrib/samples/applet/Makefile.in
index 08d399dcb9..4300fb618c 100644
--- a/contrib/samples/applet/Makefile.in
+++ b/contrib/samples/applet/Makefile.in
@@ -19,7 +19,7 @@ DATAFILES=about.html index.html
 
 OBJECTS=applet.o dialogs_wdr.o monitorapplet.o combobox.o
 
-APPEXTRALIBS=$(top_builddir)/lib/libapplet.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_applet-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/contrib/samples/canvas/simple/Makefile.in b/contrib/samples/canvas/simple/Makefile.in
index 1618e568a5..b92c3904af 100644
--- a/contrib/samples/canvas/simple/Makefile.in
+++ b/contrib/samples/canvas/simple/Makefile.in
@@ -17,7 +17,7 @@ PROGRAM=simple
 
 OBJECTS=simple.o
 
-APPEXTRALIBS=$(top_builddir)/lib/libcanvas.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_canvas-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/contrib/samples/canvas/simple/SimpleVC.dsp b/contrib/samples/canvas/simple/SimpleVC.dsp
index 4410a5d28b..aebbcb1a3d 100644
--- a/contrib/samples/canvas/simple/SimpleVC.dsp
+++ b/contrib/samples/canvas/simple/SimpleVC.dsp
@@ -109,7 +109,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib canvasd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/simple.exe" /pdbtype:sept /libpath:"../../../../lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib canvasd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/simple.exe" /pdbtype:sept /libpath:"../../../../lib"
 
 !ELSEIF  "$(CFG)" == "SimpleVC - Win32 Release DLL"
 
@@ -136,7 +136,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233.lib canvas.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/simple.exe" /libpath:"../../../../lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib canvas.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/simple.exe" /libpath:"../../../../lib"
 
 !ENDIF 
 
diff --git a/contrib/samples/canvas/test/Makefile.in b/contrib/samples/canvas/test/Makefile.in
index 500d2bdd8a..081537852d 100644
--- a/contrib/samples/canvas/test/Makefile.in
+++ b/contrib/samples/canvas/test/Makefile.in
@@ -19,7 +19,7 @@ OBJECTS=test.o
 
 DATAFILES = pat4.bmp pat36.bmp
 
-APPEXTRALIBS=$(top_builddir)/lib/libcanvas.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_canvas-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/contrib/samples/canvas/test/TestVC.dsp b/contrib/samples/canvas/test/TestVC.dsp
index e5aeae3652..bc011d489e 100644
--- a/contrib/samples/canvas/test/TestVC.dsp
+++ b/contrib/samples/canvas/test/TestVC.dsp
@@ -109,7 +109,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib canvasd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/test.exe" /pdbtype:sept /libpath:"../../../../lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib canvasd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/test.exe" /pdbtype:sept /libpath:"../../../../lib"
 
 !ELSEIF  "$(CFG)" == "TestVC - Win32 Release DLL"
 
@@ -136,7 +136,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233.lib canvas.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/test.exe" /libpath:"../../../../lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib canvas.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/test.exe" /libpath:"../../../../lib"
 
 !ENDIF 
 
diff --git a/contrib/samples/fl/fl_demo1/Makefile.in b/contrib/samples/fl/fl_demo1/Makefile.in
index 88f55027f9..83f4fe3496 100644
--- a/contrib/samples/fl/fl_demo1/Makefile.in
+++ b/contrib/samples/fl/fl_demo1/Makefile.in
@@ -17,7 +17,7 @@ TARGET = fl_demo1
 program_dir = contrib/samples/fl/$(TARGET)
 
 APPEXTRADEFS = -I$(top_srcdir)/contrib/include -DBMP_DIR=\"../bitmaps/\"
-APPEXTRALIBS = $(top_builddir)/lib/libfl.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS = $(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_fl-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 
 PROGRAM = $(TARGET)
 OBJECTS = $(TARGET).o
diff --git a/contrib/samples/fl/fl_demo1/fl_demo.dsp b/contrib/samples/fl/fl_demo1/fl_demo.dsp
index 5b443a2c1b..1a6c4a90eb 100644
--- a/contrib/samples/fl/fl_demo1/fl_demo.dsp
+++ b/contrib/samples/fl/fl_demo1/fl_demo.dsp
@@ -4,7 +4,7 @@
 
 # TARGTYPE "Win32 (x86) Application" 0x0101
 
-CFG=fl_demo1 - Win32 Debug
+CFG=fl_demo1 - Win32 Debug DLL
 !MESSAGE This is not a valid makefile. To build this project using NMAKE,
 !MESSAGE use the Export Makefile command and run
 !MESSAGE 
@@ -13,12 +13,14 @@ CFG=fl_demo1 - Win32 Debug
 !MESSAGE You can specify a configuration when running NMAKE
 !MESSAGE by defining the macro CFG on the command line. For example:
 !MESSAGE 
-!MESSAGE NMAKE /f "fl_demo.mak" CFG="fl_demo1 - Win32 Debug"
+!MESSAGE NMAKE /f "fl_demo.mak" CFG="fl_demo1 - Win32 Debug DLL"
 !MESSAGE 
 !MESSAGE Possible choices for configuration are:
 !MESSAGE 
 !MESSAGE "fl_demo1 - Win32 Release" (based on "Win32 (x86) Application")
 !MESSAGE "fl_demo1 - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE "fl_demo1 - Win32 Debug DLL" (based on "Win32 (x86) Application")
+!MESSAGE "fl_demo1 - Win32 Release DLL" (based on "Win32 (x86) Application")
 !MESSAGE 
 
 # Begin Project
@@ -81,12 +83,68 @@ LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmswd.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib regexd.lib fld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /pdbtype:sept /libpath:"../../../../lib"
 
+!ELSEIF  "$(CFG)" == "fl_demo1 - Win32 Debug DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug_DLL"
+# PROP BASE Intermediate_Dir "Debug_DLL"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "DebugDll"
+# PROP Intermediate_Dir "DebugDll"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/mswd" /D "_DEBUG" /D DEBUG=1 /D "__WXDEBUG__" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /Yu"wx/wxprec.h" /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/mswdlld" /D "_DEBUG" /D DEBUG=1 /D "__WXDEBUG__" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D "WXUSINGDLL" /D "WXUSING_FL_DLL" /Yu"wx/wxprec.h" /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "_DEBUG"
+# ADD RSC /l 0x809 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmswd.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib regexd.lib fld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /pdbtype:sept /libpath:"../../../../lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib regexd.lib fldlld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /pdbtype:sept /libpath:"../../../../lib"
+
+!ELSEIF  "$(CFG)" == "fl_demo1 - Win32 Release DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release_DLL"
+# PROP BASE Intermediate_Dir "Release_DLL"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "ReleaseDll"
+# PROP Intermediate_Dir "ReleaseDll"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MD /W3 /GX /O1 /Ob2 /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /Ob2 /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D "WXUSINGDLL" /D "WXUSING_FL_DLL" /YX /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "NDEBUG"
+# ADD RSC /l 0x809 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw.lib png.lib zlib.lib jpeg.lib tiff.lib regex.lib fl.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /nodefaultlib:"msvcrtd.lib" /libpath:"../../../../lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib png.lib zlib.lib jpeg.lib tiff.lib regex.lib fldll.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /nodefaultlib:"msvcrtd.lib" /libpath:"../../../../lib"
+
 !ENDIF 
 
 # Begin Target
 
 # Name "fl_demo1 - Win32 Release"
 # Name "fl_demo1 - Win32 Debug"
+# Name "fl_demo1 - Win32 Debug DLL"
+# Name "fl_demo1 - Win32 Release DLL"
 # Begin Source File
 
 SOURCE=.\fl_demo1.cpp
@@ -97,6 +155,13 @@ SOURCE=.\fl_demo1.cpp
 
 # ADD CPP /Yc"wx/wxprec.h"
 
+!ELSEIF  "$(CFG)" == "fl_demo1 - Win32 Debug DLL"
+
+# ADD BASE CPP /Yc"wx/wxprec.h"
+# ADD CPP /Yc"wx/wxprec.h"
+
+!ELSEIF  "$(CFG)" == "fl_demo1 - Win32 Release DLL"
+
 !ENDIF 
 
 # End Source File
diff --git a/contrib/samples/fl/fl_demo1/makefile.vc b/contrib/samples/fl/fl_demo1/makefile.vc
index 51eaae55ca..e997c2c79d 100644
--- a/contrib/samples/fl/fl_demo1/makefile.vc
+++ b/contrib/samples/fl/fl_demo1/makefile.vc
@@ -12,11 +12,25 @@ WXDIR = ..\..\..\..
 TARGET = fl_demo1
 
 EXTRAINC = -DBMP_DIR=\"../bitmaps/\"
+
+!if "$(WXUSING_FL_DLL)" == "1"
+# Define WXUSING_FL_DLL so the compiler knows it is set.
+EXTRAINC = $(EXTRAINC) -DWXUSING_FL_DLL
+# Set to use wxWin in DLL format...
+WXUSINGDLL = 1
+
+!if "$(FINAL)" == "1"
+EXTRALIBS = $(WXDIR)\lib\fldll.lib
+!else
+EXTRALIBS = $(WXDIR)\lib\fldlld.lib
+!endif
+!else
 !if "$(FINAL)" == "1"
 EXTRALIBS = $(WXDIR)\lib\fl.lib
 !else
 EXTRALIBS = $(WXDIR)\lib\fld.lib
 !endif
+!endif
 
 PROGRAM = $(TARGET)
 OBJECTS = $(TARGET).obj
diff --git a/contrib/samples/fl/fl_demo2/Makefile.in b/contrib/samples/fl/fl_demo2/Makefile.in
index 911f9b5b42..da24607db2 100644
--- a/contrib/samples/fl/fl_demo2/Makefile.in
+++ b/contrib/samples/fl/fl_demo2/Makefile.in
@@ -17,7 +17,7 @@ TARGET = fl_demo2
 program_dir = contrib/samples/fl/$(TARGET)
 
 APPEXTRADEFS = -I$(top_srcdir)/contrib/include -DBMP_DIR=\"../bitmaps/\"
-APPEXTRALIBS = $(top_builddir)/lib/libfl.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS = $(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_fl-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 
 PROGRAM = $(TARGET)
 OBJECTS = $(TARGET).o
diff --git a/contrib/samples/fl/fl_demo2/fl_demo.dsp b/contrib/samples/fl/fl_demo2/fl_demo.dsp
index a54daca6c2..39b64fb47e 100644
--- a/contrib/samples/fl/fl_demo2/fl_demo.dsp
+++ b/contrib/samples/fl/fl_demo2/fl_demo.dsp
@@ -4,7 +4,7 @@
 
 # TARGTYPE "Win32 (x86) Application" 0x0101
 
-CFG=fl_demo2 - Win32 Debug
+CFG=fl_demo2 - Win32 Debug DLL
 !MESSAGE This is not a valid makefile. To build this project using NMAKE,
 !MESSAGE use the Export Makefile command and run
 !MESSAGE 
@@ -13,12 +13,14 @@ CFG=fl_demo2 - Win32 Debug
 !MESSAGE You can specify a configuration when running NMAKE
 !MESSAGE by defining the macro CFG on the command line. For example:
 !MESSAGE 
-!MESSAGE NMAKE /f "fl_demo.mak" CFG="fl_demo2 - Win32 Debug"
+!MESSAGE NMAKE /f "fl_demo.mak" CFG="fl_demo2 - Win32 Debug DLL"
 !MESSAGE 
 !MESSAGE Possible choices for configuration are:
 !MESSAGE 
 !MESSAGE "fl_demo2 - Win32 Release" (based on "Win32 (x86) Application")
 !MESSAGE "fl_demo2 - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE "fl_demo2 - Win32 Debug DLL" (based on "Win32 (x86) Application")
+!MESSAGE "fl_demo2 - Win32 Release DLL" (based on "Win32 (x86) Application")
 !MESSAGE 
 
 # Begin Project
@@ -81,12 +83,68 @@ LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmswd.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib regexd.lib fld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /pdbtype:sept /libpath:"../../../../lib"
 
+!ELSEIF  "$(CFG)" == "fl_demo2 - Win32 Debug DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug_DLL"
+# PROP BASE Intermediate_Dir "Debug_DLL"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "DebugDll"
+# PROP Intermediate_Dir "DebugDll"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/mswd" /D "_DEBUG" /D DEBUG=1 /D "__WXDEBUG__" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /Yu"wx/wxprec.h" /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/mswdlld" /D "_DEBUG" /D DEBUG=1 /D "__WXDEBUG__" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D "WXUSINGDLL" /D "WXUSING_FL_DLL" /Yu"wx/wxprec.h" /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "_DEBUG"
+# ADD RSC /l 0x809 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmswd.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib regexd.lib fld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /pdbtype:sept /libpath:"../../../../lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib regexd.lib fldlld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /pdbtype:sept /libpath:"../../../../lib"
+
+!ELSEIF  "$(CFG)" == "fl_demo2 - Win32 Release DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release_DLL"
+# PROP BASE Intermediate_Dir "Release_DLL"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "ReleaseDll"
+# PROP Intermediate_Dir "ReleaseDll"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MD /W3 /GX /O1 /Ob2 /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /Ob2 /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D "WXUSINGDLL" /D "WXUSING_FL_DLL" /YX /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "NDEBUG"
+# ADD RSC /l 0x809 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw.lib png.lib zlib.lib jpeg.lib tiff.lib regex.lib fl.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /nodefaultlib:"msvcrtd.lib" /libpath:"../../../../lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib png.lib zlib.lib jpeg.lib tiff.lib regex.lib fldll.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /nodefaultlib:"msvcrtd.lib" /libpath:"../../../../lib"
+
 !ENDIF 
 
 # Begin Target
 
 # Name "fl_demo2 - Win32 Release"
 # Name "fl_demo2 - Win32 Debug"
+# Name "fl_demo2 - Win32 Debug DLL"
+# Name "fl_demo2 - Win32 Release DLL"
 # Begin Source File
 
 SOURCE=.\fl_demo2.cpp
@@ -97,6 +155,13 @@ SOURCE=.\fl_demo2.cpp
 
 # ADD CPP /Yc"wx/wxprec.h"
 
+!ELSEIF  "$(CFG)" == "fl_demo2 - Win32 Debug DLL"
+
+# ADD BASE CPP /Yc"wx/wxprec.h"
+# ADD CPP /Yc"wx/wxprec.h"
+
+!ELSEIF  "$(CFG)" == "fl_demo2 - Win32 Release DLL"
+
 !ENDIF 
 
 # End Source File
diff --git a/contrib/samples/fl/fl_demo2/makefile.vc b/contrib/samples/fl/fl_demo2/makefile.vc
index e05c0d699c..f3414ac254 100644
--- a/contrib/samples/fl/fl_demo2/makefile.vc
+++ b/contrib/samples/fl/fl_demo2/makefile.vc
@@ -12,11 +12,25 @@ WXDIR = ..\..\..\..
 TARGET = fl_demo2
 
 EXTRAINC = -DBMP_DIR=\"../bitmaps/\"
+
+!if "$(WXUSING_FL_DLL)" == "1"
+# Define WXUSING_FL_DLL so the compiler knows it is set.
+EXTRAINC = $(EXTRAINC) -DWXUSING_FL_DLL
+# Set to use wxWin in DLL format...
+WXUSINGDLL = 1
+
+!if "$(FINAL)" == "1"
+EXTRALIBS = $(WXDIR)\lib\fldll.lib
+!else
+EXTRALIBS = $(WXDIR)\lib\fldlld.lib
+!endif
+!else
 !if "$(FINAL)" == "1"
 EXTRALIBS = $(WXDIR)\lib\fl.lib
 !else
 EXTRALIBS = $(WXDIR)\lib\fld.lib
 !endif
+!endif
 
 PROGRAM = $(TARGET)
 OBJECTS = $(TARGET).obj
diff --git a/contrib/samples/fl/fl_sample1/Makefile.in b/contrib/samples/fl/fl_sample1/Makefile.in
index 11d671a280..ad507429e4 100644
--- a/contrib/samples/fl/fl_sample1/Makefile.in
+++ b/contrib/samples/fl/fl_sample1/Makefile.in
@@ -17,7 +17,7 @@ TARGET = fl_sample1
 program_dir = contrib/samples/fl/$(TARGET)
 
 APPEXTRADEFS = -I$(top_srcdir)/contrib/include -DBMP_DIR=\"../bitmaps/\"
-APPEXTRALIBS = $(top_builddir)/lib/libfl.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS = $(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_fl-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 
 PROGRAM = $(TARGET)
 OBJECTS = $(TARGET).o
diff --git a/contrib/samples/fl/fl_sample1/fl_demo.dsp b/contrib/samples/fl/fl_sample1/fl_demo.dsp
index 7f32ffaab0..7923a4a3cc 100644
--- a/contrib/samples/fl/fl_sample1/fl_demo.dsp
+++ b/contrib/samples/fl/fl_sample1/fl_demo.dsp
@@ -4,7 +4,7 @@
 
 # TARGTYPE "Win32 (x86) Application" 0x0101
 
-CFG=fl_sample1 - Win32 Debug
+CFG=fl_sample1 - Win32 Debug DLL
 !MESSAGE This is not a valid makefile. To build this project using NMAKE,
 !MESSAGE use the Export Makefile command and run
 !MESSAGE 
@@ -13,12 +13,14 @@ CFG=fl_sample1 - Win32 Debug
 !MESSAGE You can specify a configuration when running NMAKE
 !MESSAGE by defining the macro CFG on the command line. For example:
 !MESSAGE 
-!MESSAGE NMAKE /f "fl_demo.mak" CFG="fl_sample1 - Win32 Debug"
+!MESSAGE NMAKE /f "fl_demo.mak" CFG="fl_sample1 - Win32 Debug DLL"
 !MESSAGE 
 !MESSAGE Possible choices for configuration are:
 !MESSAGE 
 !MESSAGE "fl_sample1 - Win32 Release" (based on "Win32 (x86) Application")
 !MESSAGE "fl_sample1 - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE "fl_sample1 - Win32 Debug DLL" (based on "Win32 (x86) Application")
+!MESSAGE "fl_sample1 - Win32 Release DLL" (based on "Win32 (x86) Application")
 !MESSAGE 
 
 # Begin Project
@@ -81,12 +83,68 @@ LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmswd.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib regexd.lib fld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /pdbtype:sept /libpath:"../../../../lib"
 
+!ELSEIF  "$(CFG)" == "fl_sample1 - Win32 Debug DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug_DLL"
+# PROP BASE Intermediate_Dir "Debug_DLL"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "DebugDll"
+# PROP Intermediate_Dir "DebugDll"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/mswd" /D "_DEBUG" /D DEBUG=1 /D "__WXDEBUG__" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /Yu"wx/wxprec.h" /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/mswdlld" /D "_DEBUG" /D DEBUG=1 /D "__WXDEBUG__" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D "WXUSINGDLL" /D "WXUSING_FL_DLL" /Yu"wx/wxprec.h" /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "_DEBUG"
+# ADD RSC /l 0x809 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmswd.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib regexd.lib fld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /pdbtype:sept /libpath:"../../../../lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib regexd.lib fldlld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /pdbtype:sept /libpath:"../../../../lib"
+
+!ELSEIF  "$(CFG)" == "fl_sample1 - Win32 Release DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release_DLL"
+# PROP BASE Intermediate_Dir "Release_DLL"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "ReleaseDll"
+# PROP Intermediate_Dir "ReleaseDll"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MD /W3 /GX /O1 /Ob2 /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /Ob2 /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D "WXUSINGDLL" /D "WXUSING_FL_DLL" /YX /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "NDEBUG"
+# ADD RSC /l 0x809 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw.lib png.lib zlib.lib jpeg.lib tiff.lib regex.lib fl.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /nodefaultlib:"msvcrtd.lib" /libpath:"../../../../lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib png.lib zlib.lib jpeg.lib tiff.lib regex.lib fldll.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /nodefaultlib:"msvcrtd.lib" /libpath:"../../../../lib"
+
 !ENDIF 
 
 # Begin Target
 
 # Name "fl_sample1 - Win32 Release"
 # Name "fl_sample1 - Win32 Debug"
+# Name "fl_sample1 - Win32 Debug DLL"
+# Name "fl_sample1 - Win32 Release DLL"
 # Begin Source File
 
 SOURCE=.\fl_sample1.cpp
@@ -97,6 +155,13 @@ SOURCE=.\fl_sample1.cpp
 
 # ADD CPP /Yc"wx/wxprec.h"
 
+!ELSEIF  "$(CFG)" == "fl_sample1 - Win32 Debug DLL"
+
+# ADD BASE CPP /Yc"wx/wxprec.h"
+# ADD CPP /Yc"wx/wxprec.h"
+
+!ELSEIF  "$(CFG)" == "fl_sample1 - Win32 Release DLL"
+
 !ENDIF 
 
 # End Source File
diff --git a/contrib/samples/fl/fl_sample1/makefile.vc b/contrib/samples/fl/fl_sample1/makefile.vc
index 50f4d6e26b..fed37595d7 100644
--- a/contrib/samples/fl/fl_sample1/makefile.vc
+++ b/contrib/samples/fl/fl_sample1/makefile.vc
@@ -12,11 +12,25 @@ WXDIR = ..\..\..\..
 TARGET = fl_sample1
 
 EXTRAINC = -DBMP_DIR=\"../bitmaps/\"
+
+!if "$(WXUSING_FL_DLL)" == "1"
+# Define WXUSING_FL_DLL so the compiler knows it is set.
+EXTRAINC = $(EXTRAINC) -DWXUSING_FL_DLL
+# Set to use wxWin in DLL format...
+WXUSINGDLL = 1
+
+!if "$(FINAL)" == "1"
+EXTRALIBS = $(WXDIR)\lib\fldll.lib
+!else
+EXTRALIBS = $(WXDIR)\lib\fldlld.lib
+!endif
+!else
 !if "$(FINAL)" == "1"
 EXTRALIBS = $(WXDIR)\lib\fl.lib
 !else
 EXTRALIBS = $(WXDIR)\lib\fld.lib
 !endif
+!endif
 
 PROGRAM = $(TARGET)
 OBJECTS = $(TARGET).obj
diff --git a/contrib/samples/fl/fl_sample2/Makefile.in b/contrib/samples/fl/fl_sample2/Makefile.in
index 85b50b407c..6a863be5a1 100644
--- a/contrib/samples/fl/fl_sample2/Makefile.in
+++ b/contrib/samples/fl/fl_sample2/Makefile.in
@@ -17,7 +17,7 @@ TARGET = fl_sample2
 program_dir = contrib/samples/fl/$(TARGET)
 
 APPEXTRADEFS = -I$(top_srcdir)/contrib/include -DBMP_DIR=\"../bitmaps/\"
-APPEXTRALIBS = $(top_builddir)/lib/libfl.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS = $(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_fl-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 
 PROGRAM = $(TARGET)
 OBJECTS = $(TARGET).o
diff --git a/contrib/samples/fl/fl_sample2/fl_demo.dsp b/contrib/samples/fl/fl_sample2/fl_demo.dsp
index b1c478514e..fcd52de4bb 100644
--- a/contrib/samples/fl/fl_sample2/fl_demo.dsp
+++ b/contrib/samples/fl/fl_sample2/fl_demo.dsp
@@ -4,7 +4,7 @@
 
 # TARGTYPE "Win32 (x86) Application" 0x0101
 
-CFG=fl_sample2 - Win32 Debug
+CFG=fl_sample2 - Win32 Debug DLL
 !MESSAGE This is not a valid makefile. To build this project using NMAKE,
 !MESSAGE use the Export Makefile command and run
 !MESSAGE 
@@ -13,12 +13,14 @@ CFG=fl_sample2 - Win32 Debug
 !MESSAGE You can specify a configuration when running NMAKE
 !MESSAGE by defining the macro CFG on the command line. For example:
 !MESSAGE 
-!MESSAGE NMAKE /f "fl_demo.mak" CFG="fl_sample2 - Win32 Debug"
+!MESSAGE NMAKE /f "fl_demo.mak" CFG="fl_sample2 - Win32 Debug DLL"
 !MESSAGE 
 !MESSAGE Possible choices for configuration are:
 !MESSAGE 
 !MESSAGE "fl_sample2 - Win32 Release" (based on "Win32 (x86) Application")
 !MESSAGE "fl_sample2 - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE "fl_sample2 - Win32 Debug DLL" (based on "Win32 (x86) Application")
+!MESSAGE "fl_sample2 - Win32 Release DLL" (based on "Win32 (x86) Application")
 !MESSAGE 
 
 # Begin Project
@@ -81,12 +83,68 @@ LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmswd.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib regexd.lib fld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /pdbtype:sept /libpath:"../../../../lib"
 
+!ELSEIF  "$(CFG)" == "fl_sample2 - Win32 Debug DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug_DLL"
+# PROP BASE Intermediate_Dir "Debug_DLL"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "DebugDll"
+# PROP Intermediate_Dir "DebugDll"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/mswd" /D "_DEBUG" /D DEBUG=1 /D "__WXDEBUG__" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /Yu"wx/wxprec.h" /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/mswdlld" /D "_DEBUG" /D DEBUG=1 /D "__WXDEBUG__" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D "WXUSINGDLL" /D "WXUSING_FL_DLL" /Yu"wx/wxprec.h" /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "_DEBUG"
+# ADD RSC /l 0x809 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmswd.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib regexd.lib fld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /pdbtype:sept /libpath:"../../../../lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib regexd.lib fldlld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /pdbtype:sept /libpath:"../../../../lib"
+
+!ELSEIF  "$(CFG)" == "fl_sample2 - Win32 Release DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release_DLL"
+# PROP BASE Intermediate_Dir "Release_DLL"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "ReleaseDll"
+# PROP Intermediate_Dir "ReleaseDll"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MD /W3 /GX /O1 /Ob2 /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /Ob2 /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D "WXUSINGDLL" /D "WXUSING_FL_DLL" /YX /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "NDEBUG"
+# ADD RSC /l 0x809 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw.lib png.lib zlib.lib jpeg.lib tiff.lib regex.lib fl.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /nodefaultlib:"msvcrtd.lib" /libpath:"../../../../lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib png.lib zlib.lib jpeg.lib tiff.lib regex.lib fldll.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /nodefaultlib:"msvcrtd.lib" /libpath:"../../../../lib"
+
 !ENDIF 
 
 # Begin Target
 
 # Name "fl_sample2 - Win32 Release"
 # Name "fl_sample2 - Win32 Debug"
+# Name "fl_sample2 - Win32 Debug DLL"
+# Name "fl_sample2 - Win32 Release DLL"
 # Begin Source File
 
 SOURCE=.\fl_sample2.cpp
@@ -97,6 +155,13 @@ SOURCE=.\fl_sample2.cpp
 
 # ADD CPP /Yc"wx/wxprec.h"
 
+!ELSEIF  "$(CFG)" == "fl_sample2 - Win32 Debug DLL"
+
+# ADD BASE CPP /Yc"wx/wxprec.h"
+# ADD CPP /Yc"wx/wxprec.h"
+
+!ELSEIF  "$(CFG)" == "fl_sample2 - Win32 Release DLL"
+
 !ENDIF 
 
 # End Source File
diff --git a/contrib/samples/fl/fl_sample2/makefile.vc b/contrib/samples/fl/fl_sample2/makefile.vc
index dabd5660e5..22340ab393 100644
--- a/contrib/samples/fl/fl_sample2/makefile.vc
+++ b/contrib/samples/fl/fl_sample2/makefile.vc
@@ -12,11 +12,25 @@ WXDIR = ..\..\..\..
 TARGET = fl_sample2
 
 EXTRAINC = -DBMP_DIR=\"../bitmaps/\"
+
+!if "$(WXUSING_FL_DLL)" == "1"
+# Define WXUSING_FL_DLL so the compiler knows it is set.
+EXTRAINC = $(EXTRAINC) -DWXUSING_FL_DLL
+# Set to use wxWin in DLL format...
+WXUSINGDLL = 1
+
+!if "$(FINAL)" == "1"
+EXTRALIBS = $(WXDIR)\lib\fldll.lib
+!else
+EXTRALIBS = $(WXDIR)\lib\fldlld.lib
+!endif
+!else
 !if "$(FINAL)" == "1"
 EXTRALIBS = $(WXDIR)\lib\fl.lib
 !else
 EXTRALIBS = $(WXDIR)\lib\fld.lib
 !endif
+!endif
 
 PROGRAM = $(TARGET)
 OBJECTS = $(TARGET).obj
diff --git a/contrib/samples/fl/fl_sample3/Makefile.in b/contrib/samples/fl/fl_sample3/Makefile.in
index b19998869b..fab8e27cce 100644
--- a/contrib/samples/fl/fl_sample3/Makefile.in
+++ b/contrib/samples/fl/fl_sample3/Makefile.in
@@ -17,7 +17,7 @@ TARGET = fl_sample3
 program_dir = contrib/samples/fl/$(TARGET)
 
 APPEXTRADEFS = -I$(top_srcdir)/contrib/include -DBMP_DIR=\"../bitmaps/\"
-APPEXTRALIBS = $(top_builddir)/lib/libfl.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS = $(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_fl-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 
 PROGRAM = $(TARGET)
 OBJECTS = $(TARGET).o
diff --git a/contrib/samples/fl/fl_sample3/fl_demo.dsp b/contrib/samples/fl/fl_sample3/fl_demo.dsp
index 83830eb9db..11c877fa32 100644
--- a/contrib/samples/fl/fl_sample3/fl_demo.dsp
+++ b/contrib/samples/fl/fl_sample3/fl_demo.dsp
@@ -4,7 +4,7 @@
 
 # TARGTYPE "Win32 (x86) Application" 0x0101
 
-CFG=fl_sample3 - Win32 Debug
+CFG=fl_sample3 - Win32 Debug DLL
 !MESSAGE This is not a valid makefile. To build this project using NMAKE,
 !MESSAGE use the Export Makefile command and run
 !MESSAGE 
@@ -13,12 +13,14 @@ CFG=fl_sample3 - Win32 Debug
 !MESSAGE You can specify a configuration when running NMAKE
 !MESSAGE by defining the macro CFG on the command line. For example:
 !MESSAGE 
-!MESSAGE NMAKE /f "fl_demo.mak" CFG="fl_sample3 - Win32 Debug"
+!MESSAGE NMAKE /f "fl_demo.mak" CFG="fl_sample3 - Win32 Debug DLL"
 !MESSAGE 
 !MESSAGE Possible choices for configuration are:
 !MESSAGE 
 !MESSAGE "fl_sample3 - Win32 Release" (based on "Win32 (x86) Application")
 !MESSAGE "fl_sample3 - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE "fl_sample3 - Win32 Debug DLL" (based on "Win32 (x86) Application")
+!MESSAGE "fl_sample3 - Win32 Release DLL" (based on "Win32 (x86) Application")
 !MESSAGE 
 
 # Begin Project
@@ -81,12 +83,68 @@ LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmswd.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib regexd.lib fld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /pdbtype:sept /libpath:"../../../../lib"
 
+!ELSEIF  "$(CFG)" == "fl_sample3 - Win32 Debug DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug_DLL"
+# PROP BASE Intermediate_Dir "Debug_DLL"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "DebugDll"
+# PROP Intermediate_Dir "DebugDll"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/mswd" /D "_DEBUG" /D DEBUG=1 /D "__WXDEBUG__" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /Yu"wx/wxprec.h" /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/mswdlld" /D "_DEBUG" /D DEBUG=1 /D "__WXDEBUG__" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D "WXUSINGDLL" /D "WXUSING_FL_DLL" /Yu"wx/wxprec.h" /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "_DEBUG"
+# ADD RSC /l 0x809 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmswd.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib regexd.lib fld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /pdbtype:sept /libpath:"../../../../lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib regexd.lib fldlld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /pdbtype:sept /libpath:"../../../../lib"
+
+!ELSEIF  "$(CFG)" == "fl_sample3 - Win32 Release DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release_DLL"
+# PROP BASE Intermediate_Dir "Release_DLL"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "ReleaseDll"
+# PROP Intermediate_Dir "ReleaseDll"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MD /W3 /GX /O1 /Ob2 /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /Ob2 /I "../../../../include" /I "../../../../contrib/include" /I "../../../../lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D "WXUSINGDLL" /D "WXUSING_FL_DLL" /YX /FD /D BMP_DIR=\"../bitmaps/\" /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "NDEBUG"
+# ADD RSC /l 0x809 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw.lib png.lib zlib.lib jpeg.lib tiff.lib regex.lib fl.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /nodefaultlib:"msvcrtd.lib" /libpath:"../../../../lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib png.lib zlib.lib jpeg.lib tiff.lib regex.lib fldll.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /nodefaultlib:"msvcrtd.lib" /libpath:"../../../../lib"
+
 !ENDIF 
 
 # Begin Target
 
 # Name "fl_sample3 - Win32 Release"
 # Name "fl_sample3 - Win32 Debug"
+# Name "fl_sample3 - Win32 Debug DLL"
+# Name "fl_sample3 - Win32 Release DLL"
 # Begin Source File
 
 SOURCE=.\fl_sample3.cpp
@@ -97,6 +155,13 @@ SOURCE=.\fl_sample3.cpp
 
 # ADD CPP /Yc"wx/wxprec.h"
 
+!ELSEIF  "$(CFG)" == "fl_sample3 - Win32 Debug DLL"
+
+# ADD BASE CPP /Yc"wx/wxprec.h"
+# ADD CPP /Yc"wx/wxprec.h"
+
+!ELSEIF  "$(CFG)" == "fl_sample3 - Win32 Release DLL"
+
 !ENDIF 
 
 # End Source File
diff --git a/contrib/samples/fl/fl_sample3/makefile.vc b/contrib/samples/fl/fl_sample3/makefile.vc
index 699a66babc..d63277a77a 100644
--- a/contrib/samples/fl/fl_sample3/makefile.vc
+++ b/contrib/samples/fl/fl_sample3/makefile.vc
@@ -12,11 +12,25 @@ WXDIR = ..\..\..\..
 TARGET = fl_sample3
 
 EXTRAINC = -DBMP_DIR=\"../bitmaps/\"
+
+!if "$(WXUSING_FL_DLL)" == "1"
+# Define WXUSING_FL_DLL so the compiler knows it is set.
+EXTRAINC = $(EXTRAINC) -DWXUSING_FL_DLL
+# Set to use wxWin in DLL format...
+WXUSINGDLL = 1
+
+!if "$(FINAL)" == "1"
+EXTRALIBS = $(WXDIR)\lib\fldll.lib
+!else
+EXTRALIBS = $(WXDIR)\lib\fldlld.lib
+!endif
+!else
 !if "$(FINAL)" == "1"
 EXTRALIBS = $(WXDIR)\lib\fl.lib
 !else
 EXTRALIBS = $(WXDIR)\lib\fld.lib
 !endif
+!endif
 
 PROGRAM = $(TARGET)
 OBJECTS = $(TARGET).obj
diff --git a/contrib/samples/gizmos/Makefile.in b/contrib/samples/gizmos/Makefile.in
index 223d5330fe..25e545a2a9 100644
--- a/contrib/samples/gizmos/Makefile.in
+++ b/contrib/samples/gizmos/Makefile.in
@@ -1,6 +1,6 @@
 # $Id$
 
-CONTRIB_SAMPLES=multicell splittree editlbox dynsash dynsash_switch
+CONTRIB_SAMPLES=editlbox dynsash dynsash_switch multicell splittree led
 
 all:
 	@for d in $(CONTRIB_SAMPLES); do (cd $$d && $(MAKE)); done
diff --git a/contrib/samples/gizmos/dynsash/Makefile.in b/contrib/samples/gizmos/dynsash/Makefile.in
index 5e5fd58b72..5ec22a79b8 100644
--- a/contrib/samples/gizmos/dynsash/Makefile.in
+++ b/contrib/samples/gizmos/dynsash/Makefile.in
@@ -16,7 +16,7 @@ program_dir = contrib/samples/gizmos/dynsash
 PROGRAM=dynsash
 OBJECTS=dynsash.o
 
-APPEXTRALIBS=$(top_builddir)/lib/libgizmos.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_gizmos-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/contrib/samples/gizmos/dynsash/dynsash.dsp b/contrib/samples/gizmos/dynsash/dynsash.dsp
index 27f6530455..7f25c68842 100644
--- a/contrib/samples/gizmos/dynsash/dynsash.dsp
+++ b/contrib/samples/gizmos/dynsash/dynsash.dsp
@@ -108,7 +108,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 wxmsw233d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/dynsash.exe" /pdbtype:sept /libpath:"../../../../lib"
+# ADD LINK32 wxmsw234d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/dynsash.exe" /pdbtype:sept /libpath:"../../../../lib"
 
 !ELSEIF  "$(CFG)" == "dynsash - Win32 Release DLL"
 
@@ -135,7 +135,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 wxmsw233.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/dynsash.exe" /libpath:"../../../../lib"
+# ADD LINK32 wxmsw234.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/dynsash.exe" /libpath:"../../../../lib"
 
 !ENDIF 
 
diff --git a/contrib/samples/gizmos/dynsash_switch/Makefile.in b/contrib/samples/gizmos/dynsash_switch/Makefile.in
index b9796bb40e..1c104bba81 100644
--- a/contrib/samples/gizmos/dynsash_switch/Makefile.in
+++ b/contrib/samples/gizmos/dynsash_switch/Makefile.in
@@ -16,7 +16,7 @@ program_dir = contrib/samples/gizmos/dynsash_switch
 PROGRAM=dynsash_switch
 OBJECTS=dynsash_switch.o
 
-APPEXTRALIBS=$(top_builddir)/lib/libgizmos.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_gizmos-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/contrib/samples/gizmos/dynsash_switch/dynsash_switch.dsp b/contrib/samples/gizmos/dynsash_switch/dynsash_switch.dsp
index 91c16772ad..eb3a39a7c9 100644
--- a/contrib/samples/gizmos/dynsash_switch/dynsash_switch.dsp
+++ b/contrib/samples/gizmos/dynsash_switch/dynsash_switch.dsp
@@ -108,7 +108,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 wxmsw233d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/dynsash_switch.exe" /pdbtype:sept /libpath:"../../../../lib"
+# ADD LINK32 wxmsw234d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/dynsash_switch.exe" /pdbtype:sept /libpath:"../../../../lib"
 
 !ELSEIF  "$(CFG)" == "dynsash_switch - Win32 Release DLL"
 
@@ -135,7 +135,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 wxmsw233.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/dynsash_switch.exe" /libpath:"../../../../lib"
+# ADD LINK32 wxmsw234.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/dynsash_switch.exe" /libpath:"../../../../lib"
 
 !ENDIF 
 
diff --git a/contrib/samples/gizmos/editlbox/Makefile.in b/contrib/samples/gizmos/editlbox/Makefile.in
index 465981c704..1ffec80c2a 100644
--- a/contrib/samples/gizmos/editlbox/Makefile.in
+++ b/contrib/samples/gizmos/editlbox/Makefile.in
@@ -16,7 +16,7 @@ program_dir = contrib/samples/gizmos/editlbox
 PROGRAM=test
 OBJECTS=test.o
 
-APPEXTRALIBS=$(top_builddir)/lib/libgizmos.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_gizmos-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/contrib/samples/gizmos/editlbox/editlbox.dsp b/contrib/samples/gizmos/editlbox/editlbox.dsp
index 7de8a5b377..891930e28c 100644
--- a/contrib/samples/gizmos/editlbox/editlbox.dsp
+++ b/contrib/samples/gizmos/editlbox/editlbox.dsp
@@ -108,7 +108,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 wxmsw233d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/editlbox.exe" /pdbtype:sept /libpath:"../../../../lib"
+# ADD LINK32 wxmsw234d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/editlbox.exe" /pdbtype:sept /libpath:"../../../../lib"
 
 !ELSEIF  "$(CFG)" == "editlbox - Win32 Release DLL"
 
@@ -135,7 +135,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 wxmsw233.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/editlbox.exe" /libpath:"../../../../lib"
+# ADD LINK32 wxmsw234.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/editlbox.exe" /libpath:"../../../../lib"
 
 !ENDIF 
 
diff --git a/contrib/samples/gizmos/led/Makefile.in b/contrib/samples/gizmos/led/Makefile.in
new file mode 100644
index 0000000000..8ccc5e8741
--- /dev/null
+++ b/contrib/samples/gizmos/led/Makefile.in
@@ -0,0 +1,23 @@
+#
+# File:		Makefile.in
+# Author:	Julian Smart
+# Created:	2002
+# Updated:	
+# Copyright:	(c) 2002 Julian Smart
+#
+# "%W% %G%"
+#
+# Makefile for the led example (UNIX).
+
+top_srcdir = @top_srcdir@/..
+top_builddir = ../../../..
+program_dir = contrib/samples/gizmos/led
+
+PROGRAM=led
+OBJECTS=led.o
+
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_gizmos-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRADEFS=-I$(top_srcdir)/contrib/include
+
+include $(top_builddir)/src/makeprog.env
+
diff --git a/contrib/samples/gizmos/led/led.cpp b/contrib/samples/gizmos/led/led.cpp
new file mode 100644
index 0000000000..4818281f8b
--- /dev/null
+++ b/contrib/samples/gizmos/led/led.cpp
@@ -0,0 +1,341 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        led.cpp
+// Purpose:     LED sample
+// Author:      Julian Smart
+// Modified by:
+// Created:     04/01/98
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+// For compilers that support precompilation, includes "wx/wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+// for all others, include the necessary headers (this file is usually all you
+// need because it includes almost all "standard" wxWindows headers)
+#ifndef WX_PRECOMP
+    #include "wx/wx.h"
+#endif
+
+#include "../../../include/wx/gizmos/ledctrl.h"
+#include "wx/sizer.h"
+#include "wx/panel.h"
+
+// ----------------------------------------------------------------------------
+// private classes
+// ----------------------------------------------------------------------------
+
+class MyPanel : public wxPanel
+{
+public:
+    MyPanel(wxFrame *frame);
+
+    void OnIncrement();
+    void OnDecrement();
+    void OnSetValue();
+    void OnAlignLeft();
+    void OnAlignCenter();
+    void OnAlignRight();
+    void OnDrawFaded();
+
+private:
+    wxLEDNumberCtrl    *m_led;
+};
+
+// Define a new application type, each program should derive a class from wxApp
+class MyApp : public wxApp
+{
+public:
+    // override base class virtuals
+    // ----------------------------
+
+    // this one is called on application startup and is a good place for the app
+    // initialization (doing it here and not in the ctor allows to have an error
+    // return: if OnInit() returns false, the application terminates)
+    virtual bool OnInit();
+};
+
+// Define a new frame type: this is going to be our main frame
+class MyFrame : public wxFrame
+{
+public:
+    // ctor(s)
+    MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size,
+            long style = wxDEFAULT_FRAME_STYLE);
+
+    // event handlers (these functions should _not_ be virtual)
+    void OnQuit(wxCommandEvent& event);
+    void OnIncrement(wxCommandEvent& event);
+    void OnDecrement(wxCommandEvent& event);
+    void OnSetValue(wxCommandEvent& event);
+    void OnAlignLeft(wxCommandEvent& event);
+    void OnAlignCenter(wxCommandEvent& event);
+    void OnAlignRight(wxCommandEvent& event);
+    void OnDrawFaded(wxCommandEvent& event);
+    void OnAbout(wxCommandEvent& event);
+
+private:
+    MyPanel  *m_panel;
+
+    // any class wishing to process wxWindows events must use this macro
+    DECLARE_EVENT_TABLE()
+};
+
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
+
+// IDs for the controls and the menu commands
+enum
+{
+    // menu items
+    LED_Quit = 1,
+
+    LED_Edit_Increment,
+    LED_Edit_Decrement,
+    LED_Edit_SetValue,
+    LED_Edit_AlignLeft,
+    LED_Edit_AlignCenter,
+    LED_Edit_AlignRight,
+    LED_Edit_DrawFaded,
+
+    // it is important for the id corresponding to the "About" command to have
+    // this standard value as otherwise it won't be handled properly under Mac
+    // (where it is special and put into the "Apple" menu)
+    LED_About = wxID_ABOUT,
+
+    MY_PANEL,
+    MY_LED
+};
+
+// ----------------------------------------------------------------------------
+// event tables and other macros for wxWindows
+// ----------------------------------------------------------------------------
+
+// the event tables connect the wxWindows events with the functions (event
+// handlers) which process them. It can be also done at run-time, but for the
+// simple menu events like this the static method is much simpler.
+BEGIN_EVENT_TABLE(MyFrame, wxFrame)
+    EVT_MENU(LED_Quit,  MyFrame::OnQuit)
+    EVT_MENU(LED_Edit_Increment, MyFrame::OnIncrement)
+    EVT_MENU(LED_Edit_Decrement, MyFrame::OnDecrement)
+    EVT_MENU(LED_Edit_SetValue, MyFrame::OnSetValue)
+    EVT_MENU(LED_Edit_AlignLeft, MyFrame::OnAlignLeft)
+    EVT_MENU(LED_Edit_AlignCenter, MyFrame::OnAlignCenter)
+    EVT_MENU(LED_Edit_AlignRight, MyFrame::OnAlignRight)
+    EVT_MENU(LED_Edit_DrawFaded, MyFrame::OnDrawFaded)
+    EVT_MENU(LED_About, MyFrame::OnAbout)
+END_EVENT_TABLE()
+
+// Create a new application object: this macro will allow wxWindows to create
+// the application object during program execution (it's better than using a
+// static object for many reasons) and also declares the accessor function
+// wxGetApp() which will return the reference of the right type (i.e. MyApp and
+// not wxApp)
+IMPLEMENT_APP(MyApp)
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// the application class
+// ----------------------------------------------------------------------------
+
+// 'Main program' equivalent: the program execution "starts" here
+bool MyApp::OnInit()
+{
+    // create the main application window
+    MyFrame *frame = new MyFrame(_T("LED App"),
+                                 wxPoint(50, 50), wxSize(450, 340));
+
+    // and show it (the frames, unlike simple controls, are not shown when
+    // created initially)
+    frame->Show(TRUE);
+
+    // success: wxApp::OnRun() will be called which will enter the main message
+    // loop and the application will run. If we returned FALSE here, the
+    // application would exit immediately.
+    return TRUE;
+}
+
+// ----------------------------------------------------------------------------
+// main frame
+// ----------------------------------------------------------------------------
+
+// frame constructor
+MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size, long style)
+       : wxFrame(NULL, -1, title, pos, size, style)
+{
+#if wxUSE_MENUS
+    // create a menu bar
+    wxMenu *menuFile = new wxMenu;
+
+    // the "About" item should be in the help menu
+    wxMenu *helpMenu = new wxMenu;
+    helpMenu->Append(LED_About, _T("&About...\tF1"), _T("Show about dialog"));
+
+    menuFile->Append(LED_Quit, _T("E&xit\tAlt-X"), _T("Quit this program"));
+
+    wxMenu *editMenu = new wxMenu;
+    editMenu->Append(LED_Edit_Increment, _T("&Increment LED\tCtrl-I"));
+    editMenu->Append(LED_Edit_Decrement, _T("&Decrement LED\tCtrl-D"));
+    editMenu->Append(LED_Edit_SetValue, _T("&Set LED Value...\tCtrl-S"));
+    editMenu->AppendSeparator();
+    editMenu->AppendRadioItem(LED_Edit_AlignLeft, _T("Align &Left"));
+    editMenu->AppendRadioItem(LED_Edit_AlignCenter, _T("Align &Center"));
+    editMenu->AppendRadioItem(LED_Edit_AlignRight, _T("Align &Right"));
+    editMenu->AppendSeparator();
+    editMenu->AppendCheckItem(LED_Edit_DrawFaded, _T("Draw &Faded\tCtrl-F"));
+
+    editMenu->Check(LED_Edit_DrawFaded, TRUE);
+
+    // now append the freshly created menu to the menu bar...
+    wxMenuBar *menuBar = new wxMenuBar();
+    menuBar->Append(menuFile, _T("&File"));
+    menuBar->Append(editMenu, _T("&Edit"));
+    menuBar->Append(helpMenu, _T("&Help"));
+
+    // ... and attach this menu bar to the frame
+    SetMenuBar(menuBar);
+#endif // wxUSE_MENUS
+
+    m_panel = new MyPanel(this);
+}
+
+
+// event handlers
+
+void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
+{
+    // TRUE is to force the frame to close
+    Close(TRUE);
+}
+
+void MyFrame::OnIncrement(wxCommandEvent& event)
+{
+    m_panel->OnIncrement();
+}
+
+void MyFrame::OnDecrement(wxCommandEvent& event)
+{
+    m_panel->OnDecrement();
+}
+
+void MyFrame::OnSetValue(wxCommandEvent& event)
+{
+    m_panel->OnSetValue();
+}
+
+void MyFrame::OnAlignLeft(wxCommandEvent& event)
+{
+    m_panel->OnAlignLeft();
+}
+
+void MyFrame::OnAlignCenter(wxCommandEvent& event)
+{
+    m_panel->OnAlignCenter();
+}
+
+void MyFrame::OnAlignRight(wxCommandEvent& event)
+{
+    m_panel->OnAlignRight();
+}
+
+void MyFrame::OnDrawFaded(wxCommandEvent& event)
+{
+    m_panel->OnDrawFaded();
+}
+
+void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
+{
+    wxString msg;
+    msg.Printf( _T("This is the About dialog of the LED sample.\n")
+                _T("Welcome to %s"), wxVERSION_STRING);
+
+    wxMessageBox(msg, _T("About LED"), wxOK | wxICON_INFORMATION, this);
+}
+
+// --------------------------------------------------------------------------
+// MyPanel
+// --------------------------------------------------------------------------
+
+MyPanel::MyPanel(wxFrame *frame)
+                : wxPanel(frame, MY_PANEL)
+{
+    m_led = new wxLEDNumberCtrl(this, MY_LED,
+                                wxPoint(20, 20), wxSize(300, 200),
+                                wxLED_ALIGN_LEFT | wxLED_DRAW_FADED);
+
+    m_led->SetValue(_T("50"));
+}
+
+void MyPanel::OnIncrement()
+{
+    wxString strValue = m_led->GetValue();
+    if ( strValue == _T("99") )
+        return;
+
+    long lValue;
+    strValue.ToLong(&lValue);
+    ++lValue;
+    m_led->SetValue(wxString::Format(_T("%ld"), lValue));
+}
+
+void MyPanel::OnDecrement()
+{
+    wxString strValue = m_led->GetValue();
+
+    long lValue;
+    strValue.ToLong(&lValue);
+    if (lValue == 0)
+        return;
+
+    --lValue;
+    m_led->SetValue(wxString::Format(_T("%ld"), lValue));
+}
+
+void MyPanel::OnSetValue()
+{
+    wxString strValue = m_led->GetValue();
+
+    long lValue;
+    strValue.ToLong(&lValue);
+    lValue = ::wxGetNumberFromUser(_T("Please enter a number between 0 and 99"), _T(""), _T("Please enter a number"), lValue, 0, 99, this);
+
+    if (lValue != -1)
+        m_led->SetValue(wxString::Format(_T("%ld"), lValue));
+}
+
+void MyPanel::OnAlignLeft()
+{
+    m_led->SetAlignment(wxLED_ALIGN_LEFT);
+}
+
+void MyPanel::OnAlignCenter()
+{
+    m_led->SetAlignment(wxLED_ALIGN_CENTER);
+}
+
+void MyPanel::OnAlignRight()
+{
+    m_led->SetAlignment(wxLED_ALIGN_RIGHT);
+}
+
+void MyPanel::OnDrawFaded()
+{
+    m_led->SetDrawFaded(!(m_led->GetDrawFaded()));
+}
diff --git a/contrib/samples/gizmos/led/led.dsp b/contrib/samples/gizmos/led/led.dsp
new file mode 100644
index 0000000000..c5111efefe
--- /dev/null
+++ b/contrib/samples/gizmos/led/led.dsp
@@ -0,0 +1,177 @@
+# Microsoft Developer Studio Project File - Name="led" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=led - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "led.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "led.mak" CFG="led - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "led - Win32 Release" (based on "Win32 (x86) Application")
+!MESSAGE "led - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE "led - Win32 Debug DLL" (based on "Win32 (x86) Application")
+!MESSAGE "led - Win32 Release DLL" (based on "Win32 (x86) Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "led - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O1 /Ob2 /I "..\..\..\..\include" /I "..\..\include" /I "../../../../lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "NDEBUG"
+# ADD RSC /l 0x809 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 wxmsw.lib png.lib zlib.lib jpeg.lib tiff.lib regex.lib gizmos.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /nodefaultlib:"msvcrtd.lib" /out:"Release/led.exe" /libpath:"../../../../lib"
+
+!ELSEIF  "$(CFG)" == "led - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\include" /I "..\..\include" /I "../../../../lib/mswd" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D DEBUG=1 /D "__WXDEBUG__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /Yu"wx/wxprec.h" /FD /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "_DEBUG"
+# ADD RSC /l 0x809 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 wxmswd.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib regexd.lib gizmosd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /out:"Debug/led.exe" /pdbtype:sept /libpath:"../../../../lib"
+
+!ELSEIF  "$(CFG)" == "led - Win32 Debug DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "DebugDLL"
+# PROP BASE Intermediate_Dir "DebugDLL"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "DebugDLL"
+# PROP Intermediate_Dir "DebugDLL"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\include" /I "..\..\include" /I "../../../../lib/mswdlld" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D DEBUG=1 /D "__WXDEBUG__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D WXUSINGDLL=1 /Yu"wx/wxprec.h" /FD /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "_DEBUG"
+# ADD RSC /l 0x809 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 wxmsw233d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/led.exe" /pdbtype:sept /libpath:"../../../../lib"
+
+!ELSEIF  "$(CFG)" == "led - Win32 Release DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "ReleaseDLL"
+# PROP BASE Intermediate_Dir "ReleaseDLL"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "ReleaseDLL"
+# PROP Intermediate_Dir "ReleaseDLL"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O1 /Ob2 /I "..\..\..\..\include" /I "..\..\include" /I "../../../../lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D WXUSINGDLL=1 /FD /c
+# SUBTRACT CPP /YX
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x809 /d "NDEBUG"
+# ADD RSC /l 0x809 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 wxmsw.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/led.exe" /libpath:"../../../../lib"
+
+!ENDIF 
+
+# Begin Target
+
+# Name "led - Win32 Release"
+# Name "led - Win32 Debug"
+# Name "led - Win32 Debug DLL"
+# Name "led - Win32 Release DLL"
+# Begin Source File
+
+SOURCE=.\led.cpp
+
+!IF  "$(CFG)" == "led - Win32 Release"
+
+# ADD CPP /I "..\..\..\include"
+# SUBTRACT CPP /I "..\..\include"
+
+!ELSEIF  "$(CFG)" == "led - Win32 Debug"
+
+# ADD CPP /I "..\..\..\include"
+# SUBTRACT CPP /I "..\..\include" /YX /Yc /Yu
+
+!ELSEIF  "$(CFG)" == "led - Win32 Debug DLL"
+
+# SUBTRACT BASE CPP /YX /Yc /Yu
+# ADD CPP /I "..\..\..\include"
+# SUBTRACT CPP /I "..\..\include" /YX /Yc /Yu
+
+!ELSEIF  "$(CFG)" == "led - Win32 Release DLL"
+
+# ADD CPP /I "..\..\..\include"
+# SUBTRACT CPP /I "..\..\include"
+
+!ENDIF 
+
+# End Source File
+# End Target
+# End Project
diff --git a/contrib/samples/gizmos/multicell/Makefile.in b/contrib/samples/gizmos/multicell/Makefile.in
index f703be5269..10f2c56048 100644
--- a/contrib/samples/gizmos/multicell/Makefile.in
+++ b/contrib/samples/gizmos/multicell/Makefile.in
@@ -17,7 +17,7 @@ PROGRAM=multicell
 
 OBJECTS=mtest.o
 
-APPEXTRALIBS=$(top_builddir)/lib/libgizmos.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_gizmos-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/contrib/samples/gizmos/multicell/multicell.dsp b/contrib/samples/gizmos/multicell/multicell.dsp
index ea37c5a3b4..f594d433a3 100644
--- a/contrib/samples/gizmos/multicell/multicell.dsp
+++ b/contrib/samples/gizmos/multicell/multicell.dsp
@@ -108,7 +108,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 wxmsw233d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/mtest.exe" /pdbtype:sept /libpath:"../../../../lib"
+# ADD LINK32 wxmsw234d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/mtest.exe" /pdbtype:sept /libpath:"../../../../lib"
 
 !ELSEIF  "$(CFG)" == "multicell - Win32 Release DLL"
 
@@ -135,7 +135,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 wxmsw233.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/mtest.exe" /libpath:"../../../../lib"
+# ADD LINK32 wxmsw234.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/mtest.exe" /libpath:"../../../../lib"
 
 !ENDIF 
 
diff --git a/contrib/samples/gizmos/splittree/Makefile.in b/contrib/samples/gizmos/splittree/Makefile.in
index 7935a90651..8fc452aa91 100644
--- a/contrib/samples/gizmos/splittree/Makefile.in
+++ b/contrib/samples/gizmos/splittree/Makefile.in
@@ -16,7 +16,7 @@ program_dir = contrib/samples/gizmos/splittree
 PROGRAM=splittree
 OBJECTS=tree.o
 
-APPEXTRALIBS=$(top_builddir)/lib/libgizmos.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_gizmos-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/contrib/samples/gizmos/splittree/TreeVC.dsp b/contrib/samples/gizmos/splittree/TreeVC.dsp
index 800cc0da84..7e8dcbeecb 100644
--- a/contrib/samples/gizmos/splittree/TreeVC.dsp
+++ b/contrib/samples/gizmos/splittree/TreeVC.dsp
@@ -108,7 +108,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 wxmsw233d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/tree.exe" /pdbtype:sept /libpath:"../../../../lib"
+# ADD LINK32 wxmsw234d.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/tree.exe" /pdbtype:sept /libpath:"../../../../lib"
 
 !ELSEIF  "$(CFG)" == "TreeVC - Win32 Release DLL"
 
@@ -135,7 +135,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 wxmsw233.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/tree.exe" /libpath:"../../../../lib"
+# ADD LINK32 wxmsw234.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/tree.exe" /libpath:"../../../../lib"
 
 !ENDIF 
 
diff --git a/contrib/samples/mmedia/MMboardVC.dsp b/contrib/samples/mmedia/MMboardVC.dsp
index f041494a25..d4997a9d0c 100644
--- a/contrib/samples/mmedia/MMboardVC.dsp
+++ b/contrib/samples/mmedia/MMboardVC.dsp
@@ -108,7 +108,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib mmediad.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/mmboard.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib mmediad.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/mmboard.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ELSEIF  "$(CFG)" == "MMboardVC - Win32 Release DLL"
 
@@ -135,7 +135,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233.lib mmedia.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/mmboard.exe" /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib mmedia.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/mmboard.exe" /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ENDIF 
 
diff --git a/contrib/samples/mmedia/Makefile.in b/contrib/samples/mmedia/Makefile.in
index 7c4c5cbbba..9a06dcb206 100644
--- a/contrib/samples/mmedia/Makefile.in
+++ b/contrib/samples/mmedia/Makefile.in
@@ -9,7 +9,7 @@ PROGRAM=mmboard
 
 OBJECTS=mmboard.o mmbman.o
 
-APPEXTRALIBS=$(top_builddir)/lib/libmmedia.@WX_TARGET_LIBRARY_TYPE@ @ESD_LINK@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_mmedia-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@ @ESD_LINK@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/contrib/samples/ogl/ogledit/Makefile.in b/contrib/samples/ogl/ogledit/Makefile.in
index 055739c441..cd83570f71 100644
--- a/contrib/samples/ogl/ogledit/Makefile.in
+++ b/contrib/samples/ogl/ogledit/Makefile.in
@@ -9,7 +9,7 @@ PROGRAM=ogledit
 
 OBJECTS=$(PROGRAM).o doc.o view.o palette.o
 
-APPEXTRALIBS=$(top_builddir)/lib/libogl.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_ogl-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/contrib/samples/ogl/ogledit/OGLEditVC.dsp b/contrib/samples/ogl/ogledit/OGLEditVC.dsp
index 30d7da70f7..c640dc7dd5 100644
--- a/contrib/samples/ogl/ogledit/OGLEditVC.dsp
+++ b/contrib/samples/ogl/ogledit/OGLEditVC.dsp
@@ -108,7 +108,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib ogld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/ogledit.exe" /pdbtype:sept /libpath:"../../../../lib" /libpath:"../../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib ogld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/ogledit.exe" /pdbtype:sept /libpath:"../../../../lib" /libpath:"../../../../contrib/lib"
 
 !ELSEIF  "$(CFG)" == "OGLEditVC - Win32 Release DLL"
 
@@ -135,7 +135,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233.lib ogl.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/ogledit.exe" /libpath:"../../../../lib" /libpath:"../../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib ogl.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/ogledit.exe" /libpath:"../../../../lib" /libpath:"../../../../contrib/lib"
 
 !ENDIF 
 
diff --git a/contrib/samples/ogl/studio/Makefile.in b/contrib/samples/ogl/studio/Makefile.in
index 1f6d9c4673..1e0b48dd54 100644
--- a/contrib/samples/ogl/studio/Makefile.in
+++ b/contrib/samples/ogl/studio/Makefile.in
@@ -12,7 +12,7 @@ DATAFILES=studio_resources.wxr
 OBJECTS=$(PROGRAM).o doc.o shapes.o symbols.o view.o cspalette.o\
   mainfrm.o project.o dialogs.o csprint.o
 
-APPEXTRALIBS=$(top_builddir)/lib/libogl.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_ogl-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include -I$(top_srcdir)/$(program_dir)/bitmaps
 
 include $(top_builddir)/src/makeprog.env
diff --git a/contrib/samples/ogl/studio/StudioVC.dsp b/contrib/samples/ogl/studio/StudioVC.dsp
index e72fa51356..86e03d09ce 100644
--- a/contrib/samples/ogl/studio/StudioVC.dsp
+++ b/contrib/samples/ogl/studio/StudioVC.dsp
@@ -108,7 +108,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib ogld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/studio.exe" /pdbtype:sept /libpath:"../../../../lib" /libpath:"../../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib ogld.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/studio.exe" /pdbtype:sept /libpath:"../../../../lib" /libpath:"../../../../contrib/lib"
 
 !ELSEIF  "$(CFG)" == "StudioVC - Win32 Release DLL"
 
diff --git a/contrib/samples/plot/Makefile.in b/contrib/samples/plot/Makefile.in
index 8ba9e2abff..32b1812b66 100644
--- a/contrib/samples/plot/Makefile.in
+++ b/contrib/samples/plot/Makefile.in
@@ -9,7 +9,7 @@ PROGRAM=plot
 
 OBJECTS=plot.o
 
-APPEXTRALIBS=$(top_builddir)/lib/libwx_plot.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_plot-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/contrib/samples/plot/PlotVC.dsp b/contrib/samples/plot/PlotVC.dsp
index 39f842bcfd..d9a9ffe10f 100644
--- a/contrib/samples/plot/PlotVC.dsp
+++ b/contrib/samples/plot/PlotVC.dsp
@@ -109,7 +109,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib plotd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/plot.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib plotd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/plot.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ELSEIF  "$(CFG)" == "PlotVC - Win32 Release DLL"
 
@@ -136,7 +136,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233.lib plot.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/plot.exe" /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib plot.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/plot.exe" /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ENDIF 
 
diff --git a/contrib/samples/stc/Makefile.in b/contrib/samples/stc/Makefile.in
index cffdcc78d7..0de249989a 100644
--- a/contrib/samples/stc/Makefile.in
+++ b/contrib/samples/stc/Makefile.in
@@ -13,7 +13,7 @@ PROGRAM=stctest
 
 OBJECTS=$(PROGRAM).o
 
-APPEXTRALIBS=$(top_builddir)/lib/libstc.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_stc-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 DATAFILES=stctest.cpp
diff --git a/contrib/samples/stc/StcTestVC.dsp b/contrib/samples/stc/StcTestVC.dsp
index f7e9b6e7e4..f51fb28c6f 100644
--- a/contrib/samples/stc/StcTestVC.dsp
+++ b/contrib/samples/stc/StcTestVC.dsp
@@ -108,7 +108,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib stcd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/stctest.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib stcd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/stctest.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ELSEIF  "$(CFG)" == "StcTestVC - Win32 Release DLL"
 
@@ -135,7 +135,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233.lib stc.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/stctest.exe" /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib stc.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/stctest.exe" /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ENDIF 
 
diff --git a/contrib/samples/svg/Makefile.in b/contrib/samples/svg/Makefile.in
index 8c63b68960..5f1ba42210 100644
--- a/contrib/samples/svg/Makefile.in
+++ b/contrib/samples/svg/Makefile.in
@@ -9,7 +9,7 @@ PROGRAM=svgtest
 
 OBJECTS=svgtest.o
 
-APPEXTRALIBS=$(top_builddir)/lib/libwx_dcsvg.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_dcsvg-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/contrib/samples/xrc/Makefile.in b/contrib/samples/xrc/Makefile.in
index 74b1001946..512deacc5e 100644
--- a/contrib/samples/xrc/Makefile.in
+++ b/contrib/samples/xrc/Makefile.in
@@ -16,7 +16,7 @@ OBJECTS=$(PROGRAM).o \
         derivdlg.o \
 	custclas.o
 
-APPEXTRALIBS=$(top_builddir)/lib/libwxxrc.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_xrc-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 DATADIRS = rc
@@ -31,6 +31,7 @@ DATAFILES = rc/artprov.xrc \
 	rc/toolbar.xrc \
 	rc/uncenter.xrc \
 	rc/variable.xrc \
+	rc/appicon.xpm \
 	rc/artprov.xpm \
 	rc/basicdlg.xpm \
 	rc/controls.xpm \
diff --git a/contrib/samples/xrc/XrcDemoVC.dsp b/contrib/samples/xrc/XrcDemoVC.dsp
index 5bef50036a..61c5c6314a 100644
--- a/contrib/samples/xrc/XrcDemoVC.dsp
+++ b/contrib/samples/xrc/XrcDemoVC.dsp
@@ -109,7 +109,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib wxxrcd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/xmldemo.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib wxxrcd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/xmldemo.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ELSEIF  "$(CFG)" == "XrcDemoVC - Win32 Release DLL"
 
@@ -136,7 +136,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233.lib wxxrc.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/xmldemo.exe" /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib wxxrc.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/xmldemo.exe" /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ENDIF 
 
diff --git a/contrib/samples/xrc/custclas.cpp b/contrib/samples/xrc/custclas.cpp
index 020a14e4b5..ba30c5f7f7 100644
--- a/contrib/samples/xrc/custclas.cpp
+++ b/contrib/samples/xrc/custclas.cpp
@@ -156,7 +156,7 @@ void MyResizableListCtrl::SetColumnWidths()
     
     // This is just a debug message in case you want to watch the 
     // events scroll by as you resize.
-    wxLogDebug( "Successfully set column widths" );
+    wxLogDebug( wxT("Successfully set column widths") );
 }
 
 
diff --git a/contrib/samples/xrc/derivdlg.cpp b/contrib/samples/xrc/derivdlg.cpp
index a9a719c49d..437615d60b 100644
--- a/contrib/samples/xrc/derivdlg.cpp
+++ b/contrib/samples/xrc/derivdlg.cpp
@@ -61,7 +61,7 @@ END_EVENT_TABLE()
 // Constructor (Notice how small and easy it is)
 PreferencesDialog::PreferencesDialog(wxWindow* parent)
 {    
-    wxXmlResource::Get()->LoadDialog(this, parent, "derived_dialog");                                                            
+    wxXmlResource::Get()->LoadDialog(this, parent, wxT("derived_dialog"));
 }
 
 // Destructor. (Empty, as I don't need anything special done when destructing).
diff --git a/contrib/samples/xrc/myframe.cpp b/contrib/samples/xrc/myframe.cpp
index 2d03b22e44..594d8769e1 100644
--- a/contrib/samples/xrc/myframe.cpp
+++ b/contrib/samples/xrc/myframe.cpp
@@ -109,18 +109,18 @@ MyFrame::MyFrame(wxWindow* parent)
     // since this frame will always be the top window, and thus parentless. 
     // However, the current approach has source code that can be recycled 
     // for other frames that aren't the top level window.]
-    wxXmlResource::Get()->LoadFrame(this, parent, "main_frame");
+    wxXmlResource::Get()->LoadFrame(this, parent, wxT("main_frame"));
 
     // Set the icon for the frame.
     SetIcon(wxICON(appicon));
 
     // Load the menubar from XRC and set this frame's menubar to it.
-    SetMenuBar(wxXmlResource::Get()->LoadMenuBar("main_menu"));
+    SetMenuBar(wxXmlResource::Get()->LoadMenuBar(wxT("main_menu")));
     // Load the toolbar from XRC and set this frame's toolbar to it.
     // NOTE: For toolbars you currently should do it exactly like this.
     // With toolbars, you currently can't create one, and set it later. It
     // needs to be all in one step.
-    SetToolBar(wxXmlResource::Get()->LoadToolBar(this, "main_toolbar"));
+    SetToolBar(wxXmlResource::Get()->LoadToolBar(this, wxT("main_toolbar")));
     
     // Give the frame a optional statusbar. The '1' just means one field. 
     // A gripsizer will automatically get put on into the corner, if that 
@@ -146,7 +146,7 @@ void MyFrame::OnNonDerivedDialogToolOrMenuCommand(wxCommandEvent& WXUNUSED(event
     wxDialog dlg;
     // "non_derived_dialog" is the name of the wxDialog XRC node that should
     // be loaded.
-    wxXmlResource::Get()->LoadDialog(&dlg, this, "non_derived_dialog");
+    wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("non_derived_dialog"));
     dlg.ShowModal();
 
 }
@@ -166,7 +166,7 @@ void MyFrame::OnDerivedDialogToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnControlsToolOrMenuCommand(wxCommandEvent& WXUNUSED(event)) 
 {
     wxDialog dlg;
-    wxXmlResource::Get()->LoadDialog(&dlg, this, "controls_dialog");
+    wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("controls_dialog"));
 
 #if wxUSE_LISTCTRL
     // There is no data in the listctrl. This will add some columns
@@ -211,7 +211,7 @@ void MyFrame::OnControlsToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnUncenteredToolOrMenuCommand(wxCommandEvent& WXUNUSED(event)) 
 {
     wxDialog dlg;
-    wxXmlResource::Get()->LoadDialog(&dlg, this, "uncentered_dialog");
+    wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("uncentered_dialog"));
     dlg.ShowModal();
 }
 
@@ -219,7 +219,7 @@ void MyFrame::OnUncenteredToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnCustomClassToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 {
     wxDialog dlg;
-    wxXmlResource::Get()->LoadDialog(&dlg, this, "custom_class_dialog");
+    wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("custom_class_dialog"));
     
     // Make an instance of our new custom class. 
     MyResizableListCtrl* a_myResizableListCtrl = new MyResizableListCtrl(&dlg, 
@@ -231,7 +231,7 @@ void MyFrame::OnCustomClassToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
     
     // "custom_control_placeholder" is the name of the "unknown" tag in the 
     // custctrl.xrc XRC file.
-    wxXmlResource::Get()->AttachUnknownControl("custom_control_placeholder",
+    wxXmlResource::Get()->AttachUnknownControl(wxT("custom_control_placeholder"),
                                                 a_myResizableListCtrl);
     dlg.ShowModal();
 }
@@ -240,7 +240,7 @@ void MyFrame::OnCustomClassToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnPlatformPropertyToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 {
     wxDialog dlg;
-    wxXmlResource::Get()->LoadDialog(&dlg, this, "platform_property_dialog");
+    wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("platform_property_dialog"));
     dlg.ShowModal();
 }
 
@@ -248,7 +248,7 @@ void MyFrame::OnPlatformPropertyToolOrMenuCommand(wxCommandEvent& WXUNUSED(event
 void MyFrame::OnArtProviderToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 {
     wxDialog dlg;
-    wxXmlResource::Get()->LoadDialog(&dlg, this, "art_provider_dialog");
+    wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("art_provider_dialog"));
     dlg.ShowModal();
 }
 
@@ -256,7 +256,7 @@ void MyFrame::OnArtProviderToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnVariableExpansionToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 {
     wxDialog dlg;
-    wxXmlResource::Get()->LoadDialog(&dlg, this, "variable_expansion_dialog");
+    wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("variable_expansion_dialog"));
     dlg.ShowModal();
 }
 
@@ -267,5 +267,5 @@ void MyFrame::OnAboutToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
     msg.Printf( _T("This is the about dialog of XML resources demo.\n")
                 _T("Welcome to %s"), wxVERSION_STRING);
 
-    wxMessageBox(msg, "About XML resources demo", wxOK | wxICON_INFORMATION, this);
+    wxMessageBox(msg, _("About XML resources demo"), wxOK | wxICON_INFORMATION, this);
 }
diff --git a/contrib/samples/xrc/xrcdemo.cpp b/contrib/samples/xrc/xrcdemo.cpp
index f7d755352c..c904f52e28 100644
--- a/contrib/samples/xrc/xrcdemo.cpp
+++ b/contrib/samples/xrc/xrcdemo.cpp
@@ -88,27 +88,27 @@ bool MyApp::OnInit()
     // into one giant XRC file if you wanted, but then they become more 
     // diffcult to manage, and harder to reuse in later projects.   
     // The menubar
-    wxXmlResource::Get()->Load("rc/menu.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/menu.xrc"));
     // The toolbar
-    wxXmlResource::Get()->Load("rc/toolbar.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/toolbar.xrc"));
     // Non-derived dialog example
-    wxXmlResource::Get()->Load("rc/basicdlg.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/basicdlg.xrc"));
     // Derived dialog example
-    wxXmlResource::Get()->Load("rc/derivdlg.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/derivdlg.xrc"));
     // Controls property example
-    wxXmlResource::Get()->Load("rc/controls.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/controls.xrc"));
     // Frame example
-    wxXmlResource::Get()->Load("rc/frame.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/frame.xrc"));
     // Uncentered example
-    wxXmlResource::Get()->Load("rc/uncenter.xrc");    
+    wxXmlResource::Get()->Load(wxT("rc/uncenter.xrc"));    
     // Custom class example
-    wxXmlResource::Get()->Load("rc/custclas.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/custclas.xrc"));
     // wxArtProvider example
-    wxXmlResource::Get()->Load("rc/artprov.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/artprov.xrc"));
     // Platform property example
-    wxXmlResource::Get()->Load("rc/platform.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/platform.xrc"));
     // Variable expansion example
-    wxXmlResource::Get()->Load("rc/variable.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/variable.xrc"));
 
     // Make an instance of your derived frame. Passing NULL (the default value 
     // of MyFrame's constructor is NULL) as the frame doesn't have a frame
diff --git a/contrib/src/animate/Makefile.in b/contrib/src/animate/Makefile.in
index a902f90775..a749a523d8 100644
--- a/contrib/src/animate/Makefile.in
+++ b/contrib/src/animate/Makefile.in
@@ -4,11 +4,12 @@ top_srcdir = @top_srcdir@/..
 top_builddir = ../../..
 libsrc_dir = contrib/src/animate
 
-TARGET_LIBNAME=libwx_anim
+TARGET_LIBNAME=lib@WX_LIBRARY_BASENAME@_animate-@WX_RELEASE@
+
+LIBVERSION_CURRENT=@WX_CURRENT@
+LIBVERSION_REVISION=@WX_REVISION@
+LIBVERSION_AGE=@WX_AGE@
 
-LIBVERSION_CURRENT=1
-LIBVERSION_REVISION=0
-LIBVERSION_AGE=0
 
 HEADER_PATH=$(top_srcdir)/contrib/include/wx
 HEADER_SUBDIR=plot
diff --git a/contrib/src/applet/Makefile.in b/contrib/src/applet/Makefile.in
index 1cfa1d7264..e1e99f6a30 100644
--- a/contrib/src/applet/Makefile.in
+++ b/contrib/src/applet/Makefile.in
@@ -4,11 +4,12 @@ top_srcdir = @top_srcdir@/..
 top_builddir = ../../..
 libsrc_dir = contrib/src/applet
 
-TARGET_LIBNAME=libapplet
+TARGET_LIBNAME=lib@WX_LIBRARY_BASENAME@_applet-@WX_RELEASE@
+
+LIBVERSION_CURRENT=@WX_CURRENT@
+LIBVERSION_REVISION=@WX_REVISION@
+LIBVERSION_AGE=@WX_AGE@
 
-LIBVERSION_CURRENT=1
-LIBVERSION_REVISION=0
-LIBVERSION_AGE=0
 
 HEADER_PATH=$(top_srcdir)/contrib/include/wx
 HEADER_SUBDIR=applet
diff --git a/contrib/src/canvas/Makefile.in b/contrib/src/canvas/Makefile.in
index 277ad0c0f4..555666e305 100644
--- a/contrib/src/canvas/Makefile.in
+++ b/contrib/src/canvas/Makefile.in
@@ -4,11 +4,12 @@ top_srcdir = @top_srcdir@/..
 top_builddir = ../../..
 libsrc_dir = contrib/src/canvas
 
-TARGET_LIBNAME=libcanvas
+TARGET_LIBNAME=lib@WX_LIBRARY_BASENAME@_canvas-@WX_RELEASE@
+
+LIBVERSION_CURRENT=@WX_CURRENT@
+LIBVERSION_REVISION=@WX_REVISION@
+LIBVERSION_AGE=@WX_AGE@
 
-LIBVERSION_CURRENT=1
-LIBVERSION_REVISION=0
-LIBVERSION_AGE=0
 
 HEADER_PATH=$(top_srcdir)/contrib/include/wx
 HEADER_SUBDIR=canvas
diff --git a/contrib/src/canvas/bbox.cpp b/contrib/src/canvas/bbox.cpp
index 227b0d1c33..b284a86c76 100644
--- a/contrib/src/canvas/bbox.cpp
+++ b/contrib/src/canvas/bbox.cpp
@@ -26,7 +26,7 @@ wxBoundingBox::wxBoundingBox()
 }
 
 
-wxBoundingBox::wxBoundingBox(wxBoundingBox &other)
+wxBoundingBox::wxBoundingBox(const wxBoundingBox &other)
 {
     m_minx = other.m_minx;
     m_miny = other.m_miny;
diff --git a/contrib/src/fl/Makefile.in b/contrib/src/fl/Makefile.in
index e902c419f7..c1ac8f3190 100644
--- a/contrib/src/fl/Makefile.in
+++ b/contrib/src/fl/Makefile.in
@@ -4,11 +4,12 @@ top_srcdir = @top_srcdir@/..
 top_builddir = ../../..
 libsrc_dir = contrib/src/fl
 
-TARGET_LIBNAME = libfl
+TARGET_LIBNAME=lib@WX_LIBRARY_BASENAME@_fl-@WX_RELEASE@
+
+LIBVERSION_CURRENT=@WX_CURRENT@
+LIBVERSION_REVISION=@WX_REVISION@
+LIBVERSION_AGE=@WX_AGE@
 
-LIBVERSION_CURRENT=1
-LIBVERSION_REVISION=0
-LIBVERSION_AGE=0
 
 HEADER_PATH=$(top_srcdir)/contrib/include/wx
 HEADER_SUBDIR=fl
diff --git a/contrib/src/fl/flVC.dsp b/contrib/src/fl/flVC.dsp
index 0d1adf1f93..89f23075d5 100644
--- a/contrib/src/fl/flVC.dsp
+++ b/contrib/src/fl/flVC.dsp
@@ -2,9 +2,10 @@
 # Microsoft Developer Studio Generated Build File, Format Version 6.00
 # ** DO NOT EDIT **
 
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
 # TARGTYPE "Win32 (x86) Static Library" 0x0104
 
-CFG=flVC - Win32 Debug
+CFG=flVC - Win32 Release DLL
 !MESSAGE This is not a valid makefile. To build this project using NMAKE,
 !MESSAGE use the Export Makefile command and run
 !MESSAGE 
@@ -13,20 +14,20 @@ CFG=flVC - Win32 Debug
 !MESSAGE You can specify a configuration when running NMAKE
 !MESSAGE by defining the macro CFG on the command line. For example:
 !MESSAGE 
-!MESSAGE NMAKE /f "flVC.mak" CFG="flVC - Win32 Debug"
+!MESSAGE NMAKE /f "flVC.mak" CFG="flVC - Win32 Release DLL"
 !MESSAGE 
 !MESSAGE Possible choices for configuration are:
 !MESSAGE 
 !MESSAGE "flVC - Win32 Release" (based on "Win32 (x86) Static Library")
 !MESSAGE "flVC - Win32 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE "flVC - Win32 Debug DLL" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "flVC - Win32 Release DLL" (based on "Win32 (x86) Dynamic-Link Library")
 !MESSAGE 
 
 # Begin Project
 # PROP AllowPerConfigDependencies 0
 # PROP Scc_ProjName ""
 # PROP Scc_LocalPath ""
-CPP=cl.exe
-RSC=rc.exe
 
 !IF  "$(CFG)" == "flVC - Win32 Release"
 
@@ -40,9 +41,11 @@ RSC=rc.exe
 # PROP Output_Dir "Release"
 # PROP Intermediate_Dir "Release"
 # PROP Target_Dir ""
+LINK32=link.exe
+CPP=cl.exe
 # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O1 /Ob2 /I "../../../include" /I "../../include" /I "../../../lib/msw" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__HACK_MY_MSDEV40__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /FD /c
-# SUBTRACT CPP /YX
+# ADD CPP /nologo /MD /W3 /GX /O1 /Ob2 /I "../../../include" /I "../../include" /I "../../../lib/msw" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__HACK_MY_MSDEV40__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /YX /FD /c
+RSC=rc.exe
 # ADD BASE RSC /l 0x809
 # ADD RSC /l 0x809
 BSC32=bscmake.exe
@@ -64,9 +67,11 @@ LIB32=link.exe -lib
 # PROP Output_Dir "Debug"
 # PROP Intermediate_Dir "Debug"
 # PROP Target_Dir ""
+LINK32=link.exe
+CPP=cl.exe
 # ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../../include" /I "../../include" /I "../../../lib/mswd" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D DEBUG=1 /D "__WXDEBUG__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /FD /c
-# SUBTRACT CPP /YX
+# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../../include" /I "../../include" /I "../../../lib/mswd" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D DEBUG=1 /D "__WXDEBUG__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /YX /FD /c
+RSC=rc.exe
 # ADD BASE RSC /l 0x809
 # ADD RSC /l 0x809
 BSC32=bscmake.exe
@@ -76,12 +81,82 @@ LIB32=link.exe -lib
 # ADD BASE LIB32 /nologo
 # ADD LIB32 /nologo /out:"..\..\..\lib\fld.lib"
 
+!ELSEIF  "$(CFG)" == "flVC - Win32 Debug DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug_DLL"
+# PROP BASE Intermediate_Dir "Debug_DLL"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\lib"
+# PROP Intermediate_Dir "Debug_DLL"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo /out:"..\..\..\lib\fld.lib"
+# ADD LIB32 /nologo /out:"..\..\..\lib\fld.lib"
+CPP=cl.exe
+# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../../include" /I "../../include" /I "../../../lib/mswd" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D DEBUG=1 /D "__WXDEBUG__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /FD /c
+# SUBTRACT BASE CPP /YX
+# ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../../include" /I "../../include" /I "../../../lib/mswdlld" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D DEBUG=1 /D "__WXDEBUG__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D "WXUSINGDLL" /D "WXMAKING_FL_DLL" /YX /FD /c
+# SUBTRACT CPP /u
+MTL=midl.exe
+RSC=rc.exe
+# ADD BASE RSC /l 0x809
+# ADD RSC /l 0x809
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 /machine:IX86
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib odbc32.lib uuid.lib rpcrt4.lib comctl32.lib wsock32.lib winmm.lib wxmsw234d.lib /nologo /version:1.0 /dll /debug /machine:IX86 /out:"../../../lib/fldlld.dll" /libpath:"../../../lib"
+# SUBTRACT LINK32 /pdb:none
+
+!ELSEIF  "$(CFG)" == "flVC - Win32 Release DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "flVC___Win32_Release_DLL"
+# PROP BASE Intermediate_Dir "flVC___Win32_Release_DLL"
+# PROP BASE Ignore_Export_Lib 0
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "..\..\..\lib"
+# PROP Intermediate_Dir "Release_DLL"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo /out:"..\..\..\lib\fld.lib"
+# ADD LIB32 /nologo /out:"..\..\..\lib\fld.lib"
+CPP=cl.exe
+# ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /I "../../../include" /I "../../include" /I "../../../lib/mswdlld" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D DEBUG=1 /D "__WXDEBUG__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D WXUSINGDLL=1 /D "WXBUILD_FL_DLL" /YX /FD /c
+# SUBTRACT BASE CPP /u
+# ADD CPP /nologo /MD /W3 /GX /Zi /O2 /Ob2 /I "../../../include" /I "../../include" /I "../../../lib/mswdlld" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D "WXUSINGDLL" /D "WXMAKING_FL_DLL" /YX /FD /c
+# SUBTRACT CPP /u
+MTL=midl.exe
+RSC=rc.exe
+# ADD BASE RSC /l 0x809
+# ADD RSC /l 0x809
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib odbc32.lib uuid.lib rpcrt4.lib comctl32.lib wsock32.lib winmm.lib wxmsw234d.lib /nologo /version:1.0 /dll /debug /machine:IX86 /out:"../../../lib/fldlld.dll" /libpath:"../../../lib"
+# SUBTRACT BASE LINK32 /pdb:none
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib odbc32.lib uuid.lib rpcrt4.lib comctl32.lib wsock32.lib winmm.lib wxmsw234.lib /nologo /version:1.0 /dll /machine:IX86 /out:"../../../lib/fldll.dll" /libpath:"../../../lib"
+# SUBTRACT LINK32 /pdb:none /incremental:no /debug
+
 !ENDIF 
 
 # Begin Target
 
 # Name "flVC - Win32 Release"
 # Name "flVC - Win32 Debug"
+# Name "flVC - Win32 Debug DLL"
+# Name "flVC - Win32 Release DLL"
 # Begin Group "Headers"
 
 # PROP Default_Filter ""
@@ -119,6 +194,10 @@ SOURCE=..\..\include\wx\fl\dyntbarhnd.h
 # End Source File
 # Begin Source File
 
+SOURCE=..\..\include\wx\fl\fldefs.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\include\wx\fl\frmview.h
 # End Source File
 # Begin Source File
diff --git a/contrib/src/fl/newbmpbtn.cpp b/contrib/src/fl/newbmpbtn.cpp
index 740bf206d8..0659bea4ac 100644
--- a/contrib/src/fl/newbmpbtn.cpp
+++ b/contrib/src/fl/newbmpbtn.cpp
@@ -525,7 +525,7 @@ void wxNewBitmapButton::RenderLabelImage( wxBitmap*& destBmp, wxBitmap* srcBmp,
     
 #ifdef __WXMSW__
     // Map to system colours
-    (void) MapBitmap(destBmp->GetHBITMAP(), destBmp->GetWidth(), destBmp->GetHeight());
+    (void) wxToolBar::MapBitmap(destBmp->GetHBITMAP(), destBmp->GetWidth(), destBmp->GetHeight());
 #endif    
 }
 
@@ -799,49 +799,3 @@ void wxNewBitmapButton::OnKillFocus( wxFocusEvent& event )
     wxMessageBox("kill-focus for button!");
 }
 
-#ifdef __WXMSW__
-WXHBITMAP wxNewBitmapButton::MapBitmap(WXHBITMAP bitmap, int width, int height)
-{
-    MemoryHDC hdcMem;
-
-    if ( !hdcMem )
-    {
-        wxLogLastError(_T("CreateCompatibleDC"));
-
-        return bitmap;
-    }
-
-    SelectInHDC bmpInHDC(hdcMem, (HBITMAP)bitmap);
-
-    if ( !bmpInHDC )
-    {
-        wxLogLastError(_T("SelectObject"));
-
-        return bitmap;
-    }
-
-    wxCOLORMAP *cmap = wxGetStdColourMap();
-
-    for ( int i = 0; i < width; i++ )
-    {
-        for ( int j = 0; j < height; j++ )
-        {
-            COLORREF pixel = ::GetPixel(hdcMem, i, j);
-
-            for ( size_t k = 0; k < wxSTD_COL_MAX; k++ )
-            {
-                COLORREF col = cmap[k].from;
-                if ( abs(GetRValue(pixel) - GetRValue(col)) < 10 &&
-                     abs(GetGValue(pixel) - GetGValue(col)) < 10 &&
-                     abs(GetBValue(pixel) - GetBValue(col)) < 10 )
-                {
-                    ::SetPixel(hdcMem, i, j, cmap[k].to);
-                    break;
-                }
-            }
-        }
-    }
-
-    return bitmap;
-}
-#endif
diff --git a/contrib/src/gizmos/Makefile.in b/contrib/src/gizmos/Makefile.in
index 2e8619349b..436da14ab3 100644
--- a/contrib/src/gizmos/Makefile.in
+++ b/contrib/src/gizmos/Makefile.in
@@ -4,11 +4,12 @@ top_srcdir = @top_srcdir@/..
 top_builddir = ../../..
 libsrc_dir = contrib/src/gizmos
 
-TARGET_LIBNAME=libgizmos
+TARGET_LIBNAME=lib@WX_LIBRARY_BASENAME@_gizmos-@WX_RELEASE@
+
+LIBVERSION_CURRENT=@WX_CURRENT@
+LIBVERSION_REVISION=@WX_REVISION@
+LIBVERSION_AGE=@WX_AGE@
 
-LIBVERSION_CURRENT=1
-LIBVERSION_REVISION=0
-LIBVERSION_AGE=0
 
 HEADER_PATH=$(top_srcdir)/contrib/include/wx
 HEADER_SUBDIR=gizmos
diff --git a/contrib/src/gizmos/editlbox.cpp b/contrib/src/gizmos/editlbox.cpp
index e7c065127d..e7d6160a03 100644
--- a/contrib/src/gizmos/editlbox.cpp
+++ b/contrib/src/gizmos/editlbox.cpp
@@ -41,7 +41,7 @@ public:
                   const wxSize &size = wxDefaultSize,
                   long style = wxLC_ICON,
                   const wxValidator& validator = wxDefaultValidator,
-                  const wxString &name = "listctrl")
+                  const wxString &name = _T("listctrl"))
          : wxListCtrl(parent, id, pos, size, style, validator, name)
     {
         CreateColumns();
diff --git a/contrib/src/mmedia/Makefile.in b/contrib/src/mmedia/Makefile.in
index ace479e123..aed8a229d5 100644
--- a/contrib/src/mmedia/Makefile.in
+++ b/contrib/src/mmedia/Makefile.in
@@ -4,11 +4,12 @@ top_srcdir = @top_srcdir@/..
 top_builddir = ../../..
 libsrc_dir = contrib/src/mmedia
 
-TARGET_LIBNAME=libmmedia
+TARGET_LIBNAME=lib@WX_LIBRARY_BASENAME@_mmedia-@WX_RELEASE@
+
+LIBVERSION_CURRENT=@WX_CURRENT@
+LIBVERSION_REVISION=@WX_REVISION@
+LIBVERSION_AGE=@WX_AGE@
 
-LIBVERSION_CURRENT=1
-LIBVERSION_REVISION=0
-LIBVERSION_AGE=0
 
 HEADER_PATH=$(top_srcdir)/contrib/include/wx
 HEADER_SUBDIR=mmedia
diff --git a/contrib/src/mmedia/makefile.b32 b/contrib/src/mmedia/makefile.b32
index 219a6e3080..9120a5e490 100644
--- a/contrib/src/mmedia/makefile.b32
+++ b/contrib/src/mmedia/makefile.b32
@@ -13,7 +13,7 @@ LIBTARGET=$(WXDIR)\contrib\lib\mmedia.lib
 
 OBJECTS = cdbase.obj cdwin.obj g711.obj g721.obj g723_24.obj \
   g723_40.obj g72x.obj sndaiff.obj sndbase.obj sndcodec.obj \
-  sndcpcm.obj sndfile.obj sndg72x.obj sndpcm.obj sndulaw.obj \
+  sndcpcm.obj sndfile.obj sndg72x.obj sndmsad.obj sndpcm.obj sndulaw.obj \
   sndwav.obj sndwin.obj vidbase.obj vidwin.obj
 
 !include $(WXDIR)\src\makelib.b32
diff --git a/contrib/src/mmedia/makefile.g95 b/contrib/src/mmedia/makefile.g95
index 4311548bf0..b6d00bf4ad 100644
--- a/contrib/src/mmedia/makefile.g95
+++ b/contrib/src/mmedia/makefile.g95
@@ -12,7 +12,7 @@ WXDIR = ../../..
 LIBTARGET=$(WXDIR)/contrib/lib/libmmedia.a
 OBJECTS = cdbase.o cdwin.o g711.o g721.o g723_24.o \
   g723_40.o g72x.o sndaiff.o sndbase.o sndcodec.o \
-  sndcpcm.o sndfile.o sndg72x.o sndpcm.o sndulaw.o \
+  sndcpcm.o sndfile.o sndg72x.o sndmsad.o sndpcm.o sndulaw.o \
   sndwav.o sndwin.o vidbase.o vidwin.o
 
 include $(WXDIR)/src/makelib.g95
diff --git a/contrib/src/net/Makefile.in b/contrib/src/net/Makefile.in
index 9809ddec64..5d9bce041c 100644
--- a/contrib/src/net/Makefile.in
+++ b/contrib/src/net/Makefile.in
@@ -4,14 +4,15 @@ top_srcdir = @top_srcdir@/..
 top_builddir = ../../..
 libsrc_dir = contrib/src/net
 
-TARGET_LIBNAME=libwx_net
+TARGET_LIBNAME=lib@WX_LIBRARY_BASENAME@_net-@WX_RELEASE@
+
+LIBVERSION_CURRENT=@WX_CURRENT@
+LIBVERSION_REVISION=@WX_REVISION@
+LIBVERSION_AGE=@WX_AGE@
 
-LIBVERSION_CURRENT=1
-LIBVERSION_REVISION=0
-LIBVERSION_AGE=0
 
 HEADER_PATH=$(top_srcdir)/contrib/include/wx
-HEADER_SUBDIR=plot
+HEADER_SUBDIR=net
 
 HEADERS=msg.h email.h web.h
 
diff --git a/contrib/src/ogl/Makefile.in b/contrib/src/ogl/Makefile.in
index 2b86eff47a..f3094fe3cf 100644
--- a/contrib/src/ogl/Makefile.in
+++ b/contrib/src/ogl/Makefile.in
@@ -4,11 +4,12 @@ top_srcdir = @top_srcdir@/..
 top_builddir = ../../..
 libsrc_dir = contrib/src/ogl
 
-TARGET_LIBNAME=libogl
+TARGET_LIBNAME=lib@WX_LIBRARY_BASENAME@_ogl-@WX_RELEASE@
+
+LIBVERSION_CURRENT=@WX_CURRENT@
+LIBVERSION_REVISION=@WX_REVISION@
+LIBVERSION_AGE=@WX_AGE@
 
-LIBVERSION_CURRENT=1
-LIBVERSION_REVISION=0
-LIBVERSION_AGE=0
 
 HEADER_PATH=$(top_srcdir)/contrib/include/wx
 HEADER_SUBDIR=ogl
diff --git a/contrib/src/ogl/basic.cpp b/contrib/src/ogl/basic.cpp
index a78d178bf5..261243d542 100644
--- a/contrib/src/ogl/basic.cpp
+++ b/contrib/src/ogl/basic.cpp
@@ -1697,7 +1697,7 @@ void wxShape::RemoveLine(wxLineShape *line)
   m_lines.DeleteObject(line);
 }
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
 void wxShape::WriteAttributes(wxExpr *clause)
 {
   clause->AddAttributeValueString("type", GetClassInfo()->GetClassName());
diff --git a/contrib/src/ogl/basic2.cpp b/contrib/src/ogl/basic2.cpp
index 5dd361faa4..33ed98da8a 100644
--- a/contrib/src/ogl/basic2.cpp
+++ b/contrib/src/ogl/basic2.cpp
@@ -581,7 +581,7 @@ void wxPolygonShape::ResetControlPoints()
 }
 
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
 void wxPolygonShape::WriteAttributes(wxExpr *clause)
 {
   wxShape::WriteAttributes(clause);
@@ -940,7 +940,7 @@ bool wxRectangleShape::GetPerimeterPoint(double x1, double y1,
   return TRUE;
 }
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
 void wxRectangleShape::WriteAttributes(wxExpr *clause)
 {
   wxShape::WriteAttributes(clause);
@@ -1013,7 +1013,7 @@ void wxTextShape::Copy(wxShape& copy)
   wxRectangleShape::Copy(copy);
 }
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
 void wxTextShape::WriteAttributes(wxExpr *clause)
 {
   wxRectangleShape::WriteAttributes(clause);
@@ -1080,7 +1080,7 @@ void wxEllipseShape::SetSize(double x, double y, bool recursive)
   SetDefaultRegionSize();
 }
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
 void wxEllipseShape::WriteAttributes(wxExpr *clause)
 {
   wxShape::WriteAttributes(clause);
diff --git a/contrib/src/ogl/bmpshape.cpp b/contrib/src/ogl/bmpshape.cpp
index 10b1748517..7125c98300 100644
--- a/contrib/src/ogl/bmpshape.cpp
+++ b/contrib/src/ogl/bmpshape.cpp
@@ -52,7 +52,7 @@ void wxBitmapShape::OnDraw(wxDC& dc)
 {
   if (!m_bitmap.Ok())
     return;
-    
+
   wxMemoryDC tempDC;
   tempDC.SelectObject(m_bitmap);
   double x, y;
@@ -76,7 +76,7 @@ void wxBitmapShape::SetSize(double w, double h, bool recursive)
   SetDefaultRegionSize();
 }
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
 void wxBitmapShape::WriteAttributes(wxExpr *clause)
 {
   // Can't really save the bitmap; so instantiate the bitmap
diff --git a/contrib/src/ogl/composit.cpp b/contrib/src/ogl/composit.cpp
index ded8e3be12..3602cac170 100644
--- a/contrib/src/ogl/composit.cpp
+++ b/contrib/src/ogl/composit.cpp
@@ -33,10 +33,11 @@
 #include <wx/ogl/misc.h>
 #include <wx/ogl/canvas.h>
 
+#if wxUSE_PROLOGIO
 // Sometimes, objects need to access the whole database to
 // construct themselves.
 wxExprDatabase *GlobalwxExprDatabase = NULL;
-
+#endif
 
 /*
  * Division control point
@@ -598,7 +599,7 @@ bool wxCompositeShape::Constrain()
   return changed;
 }
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
 void wxCompositeShape::WriteAttributes(wxExpr *clause)
 {
   wxRectangleShape::WriteAttributes(clause);
@@ -984,7 +985,7 @@ void wxDivisionShape::Copy(wxShape& copy)
   // Division geometry copying is handled at the wxCompositeShape level.
 }
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
 void wxDivisionShape::WriteAttributes(wxExpr *clause)
 {
   wxCompositeShape::WriteAttributes(clause);
diff --git a/contrib/src/ogl/divided.cpp b/contrib/src/ogl/divided.cpp
index 8bac0783fc..146ca96d68 100644
--- a/contrib/src/ogl/divided.cpp
+++ b/contrib/src/ogl/divided.cpp
@@ -415,7 +415,7 @@ void wxDividedShape::ResetMandatoryControlPoints()
   }
 }
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
 void wxDividedShape::WriteAttributes(wxExpr *clause)
 {
   wxRectangleShape::WriteAttributes(clause);
diff --git a/contrib/src/ogl/drawn.cpp b/contrib/src/ogl/drawn.cpp
index 24db4482d9..07a3036997 100644
--- a/contrib/src/ogl/drawn.cpp
+++ b/contrib/src/ogl/drawn.cpp
@@ -35,6 +35,8 @@
 #include <wx/ogl/drawnp.h>
 #include <wx/ogl/misc.h>
 
+#include <math.h>
+
 static void IntToHex(unsigned int dec, char *buf);
 static unsigned long HexToInt(char *buf);
 extern char *oglBuffer;
@@ -234,7 +236,7 @@ bool wxDrawnShape::GetPerimeterPoint(double x1, double y1,
     return wxRectangleShape::GetPerimeterPoint(x1, y1, x2, y2, x3, y3);
 }
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
 void wxDrawnShape::WriteAttributes(wxExpr *clause)
 {
   wxRectangleShape::WriteAttributes(clause);
@@ -520,6 +522,7 @@ wxDrawOp *wxOpSetGDI::Copy(wxPseudoMetaFile *newImage)
   return newOp;
 }
 
+#if wxUSE_PROLOGIO
 wxExpr *wxOpSetGDI::WriteExpr(wxPseudoMetaFile *image)
 {
   wxExpr *expr = new wxExpr(wxExprList);
@@ -580,6 +583,7 @@ void wxOpSetGDI::ReadExpr(wxPseudoMetaFile *image, wxExpr *expr)
       break;
   }
 }
+#endif
 
 /*
  * Set/destroy clipping
@@ -634,6 +638,7 @@ void wxOpSetClipping::Translate(double x, double y)
   m_y1 += y;
 }
 
+#if wxUSE_PROLOGIO
 wxExpr *wxOpSetClipping::WriteExpr(wxPseudoMetaFile *image)
 {
   wxExpr *expr = new wxExpr(wxExprList);
@@ -670,6 +675,7 @@ void wxOpSetClipping::ReadExpr(wxPseudoMetaFile *image, wxExpr *expr)
       break;
   }
 }
+#endif
 
 /*
  * Draw line, rectangle, rounded rectangle, ellipse, point, arc, text
@@ -878,6 +884,7 @@ void wxOpDraw::Rotate(double x, double y, double theta, double sinTheta, double
   }
 }
 
+#if wxUSE_PROLOGIO
 wxExpr *wxOpDraw::WriteExpr(wxPseudoMetaFile *image)
 {
   wxExpr *expr = new wxExpr(wxExprList);
@@ -989,6 +996,7 @@ void wxOpDraw::ReadExpr(wxPseudoMetaFile *image, wxExpr *expr)
     }
   }
 }
+#endif
 
 /*
  * Draw polygon, polyline, spline
@@ -1102,6 +1110,7 @@ void wxOpPolyDraw::Rotate(double x, double y, double theta, double sinTheta, dou
   }
 }
 
+#if wxUSE_PROLOGIO
 wxExpr *wxOpPolyDraw::WriteExpr(wxPseudoMetaFile *image)
 {
   wxExpr *expr = new wxExpr(wxExprList);
@@ -1190,6 +1199,7 @@ void wxOpPolyDraw::ReadExpr(wxPseudoMetaFile *image, wxExpr *expr)
     i ++;
   }
 }
+#endif
 
 // Draw an outline using the current operation.
 bool wxOpPolyDraw::OnDrawOutline(wxDC& dc, double x, double y, double w, double h, double oldW, double oldH)
@@ -1446,7 +1456,7 @@ void wxPseudoMetaFile::Rotate(double x, double y, double theta)
   m_currentRotation = theta;
 }
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
 void wxPseudoMetaFile::WriteAttributes(wxExpr *clause, int whichAngle)
 {
   wxString widthStr;
@@ -1817,7 +1827,7 @@ void wxPseudoMetaFile::Copy(wxPseudoMetaFile& copy)
 
 bool wxPseudoMetaFile::LoadFromMetaFile(char *filename, double *rwidth, double *rheight)
 {
-  if (!FileExists(filename))
+  if (!wxFileExists(filename))
     return NULL;
 
   wxXMetaFile *metaFile = new wxXMetaFile;
diff --git a/contrib/src/ogl/lines.cpp b/contrib/src/ogl/lines.cpp
index 2b94575298..7c816e5414 100644
--- a/contrib/src/ogl/lines.cpp
+++ b/contrib/src/ogl/lines.cpp
@@ -1373,7 +1373,7 @@ void wxLineShape::ResetControlPoints()
   }
 }
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
 void wxLineShape::WriteAttributes(wxExpr *clause)
 {
   wxShape::WriteAttributes(clause);
diff --git a/contrib/src/ogl/ogldiag.cpp b/contrib/src/ogl/ogldiag.cpp
index f5b880414b..d7ec3fc0b6 100644
--- a/contrib/src/ogl/ogldiag.cpp
+++ b/contrib/src/ogl/ogldiag.cpp
@@ -225,7 +225,7 @@ void wxDiagram::RecentreAll(wxDC& dc)
 }
 
 // Input/output
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
 bool wxDiagram::SaveFile(const wxString& filename)
 {
   wxBeginBusyCursor();
diff --git a/contrib/src/plot/Makefile.in b/contrib/src/plot/Makefile.in
index 7b5c8a7fbf..f5435cd265 100644
--- a/contrib/src/plot/Makefile.in
+++ b/contrib/src/plot/Makefile.in
@@ -4,11 +4,11 @@ top_srcdir = @top_srcdir@/..
 top_builddir = ../../..
 libsrc_dir = contrib/src/plot
 
-TARGET_LIBNAME=libwx_plot
+TARGET_LIBNAME=lib@WX_LIBRARY_BASENAME@_plot-@WX_RELEASE@
 
-LIBVERSION_CURRENT=1
-LIBVERSION_REVISION=0
-LIBVERSION_AGE=0
+LIBVERSION_CURRENT=@WX_CURRENT@
+LIBVERSION_REVISION=@WX_REVISION@
+LIBVERSION_AGE=@WX_AGE@
 
 HEADER_PATH=$(top_srcdir)/contrib/include/wx
 HEADER_SUBDIR=plot
diff --git a/contrib/src/stc/Makefile.in b/contrib/src/stc/Makefile.in
index 01b2877cb8..042da17f87 100644
--- a/contrib/src/stc/Makefile.in
+++ b/contrib/src/stc/Makefile.in
@@ -9,13 +9,13 @@ top_srcdir = @top_srcdir@/..
 top_builddir = ../../..
 
 scintilla_dir = $(top_srcdir)/contrib/src/stc/scintilla
-libsrc_dir = contrib/src/stc@PATH_IFS@$(scintilla_dir)/src
+libsrc_dir = contrib/src/stc/scintilla/src:$(top_srcdir)/contrib/src/stc
 
-TARGET_LIBNAME=libstc
+TARGET_LIBNAME=lib@WX_LIBRARY_BASENAME@_stc-@WX_RELEASE@
 
-LIBVERSION_CURRENT=1
-LIBVERSION_REVISION=0
-LIBVERSION_AGE=0
+LIBVERSION_CURRENT=@WX_CURRENT@
+LIBVERSION_REVISION=@WX_REVISION@
+LIBVERSION_AGE=@WX_AGE@
 
 HEADER_PATH=$(top_srcdir)/contrib/include/wx
 HEADER_SUBDIR=stc
diff --git a/contrib/src/stc/PlatWX.cpp b/contrib/src/stc/PlatWX.cpp
index 8abff4b97d..eaf9899f03 100644
--- a/contrib/src/stc/PlatWX.cpp
+++ b/contrib/src/stc/PlatWX.cpp
@@ -804,7 +804,7 @@ void ListBox::Clear() {
 }
 
 void ListBox::Append(char *s) {
-    GETLB(id)->Append(s);
+    GETLB(id)->Append(stc2wx(s));
 }
 
 int ListBox::Length() {
diff --git a/contrib/src/stc/ScintillaWX.cpp b/contrib/src/stc/ScintillaWX.cpp
index f1c0e43a0a..e389534c80 100644
--- a/contrib/src/stc/ScintillaWX.cpp
+++ b/contrib/src/stc/ScintillaWX.cpp
@@ -338,7 +338,7 @@ void ScintillaWX::Copy() {
         SelectionText st;
         CopySelectionRange(&st);
         if (wxTheClipboard->Open()) {
-            wxTheClipboard->UsePrimarySelection();
+            wxTheClipboard->UsePrimarySelection(FALSE);
             wxString text = stc2wx(st.s, st.len);
             wxTheClipboard->SetData(new wxTextDataObject(text));
             wxTheClipboard->Close();
@@ -355,7 +355,7 @@ void ScintillaWX::Paste() {
     bool gotData = FALSE;
 
     if (wxTheClipboard->Open()) {
-        wxTheClipboard->UsePrimarySelection();
+        wxTheClipboard->UsePrimarySelection(FALSE);
         gotData = wxTheClipboard->GetData(data);
         wxTheClipboard->Close();
     }
@@ -380,7 +380,7 @@ bool ScintillaWX::CanPaste() {
         wxTheClipboard->Open();
 
     if (wxTheClipboard->IsOpened()) {
-        wxTheClipboard->UsePrimarySelection();
+        wxTheClipboard->UsePrimarySelection(FALSE);
         canPaste = wxTheClipboard->IsSupported(wxUSE_UNICODE ? wxDF_UNICODETEXT : wxDF_TEXT);
         if (didOpen)
             wxTheClipboard->Close();
@@ -405,8 +405,22 @@ void ScintillaWX::AddToPopUp(const char *label, int cmd, bool enabled) {
 }
 
 
+// This is called by the Editor base class whenever something is selected
 void ScintillaWX::ClaimSelection() {
-
+#ifdef __WXGTK__
+    // Put the selected text in the PRIMARY selection
+    if (currentPos != anchor) {
+        SelectionText st;
+        CopySelectionRange(&st);
+        if (wxTheClipboard->Open()) {
+            wxTheClipboard->UsePrimarySelection(TRUE);
+            wxString text = stc2wx(st.s, st.len);
+            wxTheClipboard->SetData(new wxTextDataObject(text));
+            wxTheClipboard->UsePrimarySelection(FALSE);
+            wxTheClipboard->Close();
+        }
+    }
+#endif
 }
 
 
@@ -547,23 +561,64 @@ void ScintillaWX::DoSysColourChange() {
     InvalidateStyleData();
 }
 
-void ScintillaWX::DoButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt) {
+void ScintillaWX::DoLeftButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt) {
     ButtonDown(pt, curTime, shift, ctrl, alt);
 }
 
-void ScintillaWX::DoButtonUp(Point pt, unsigned int curTime, bool ctrl) {
+void ScintillaWX::DoLeftButtonUp(Point pt, unsigned int curTime, bool ctrl) {
     ButtonUp(pt, curTime, ctrl);
 }
 
-void ScintillaWX::DoButtonMove(Point pt) {
+void ScintillaWX::DoLeftButtonMove(Point pt) {
     ButtonMove(pt);
 }
 
+void ScintillaWX::DoMiddleButtonUp(Point pt) {
+#ifdef __WXGTK__
+    // Set the current position to the mouse click point and
+    // then paste in the PRIMARY selection, if any.  wxGTK only.
+    int newPos = PositionFromLocation(pt);
+    MovePositionTo(newPos, 0, 1);
+
+    pdoc->BeginUndoAction();
+    wxTextDataObject data;
+    bool gotData = FALSE;
+    if (wxTheClipboard->Open()) {
+        wxTheClipboard->UsePrimarySelection(TRUE);
+        gotData = wxTheClipboard->GetData(data);
+        wxTheClipboard->UsePrimarySelection(FALSE);
+        wxTheClipboard->Close();
+    }
+    if (gotData) {
+        wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(data.GetText());
+        int        len = strlen(buf);
+        pdoc->InsertString(currentPos, buf, len);
+        SetEmptySelection(currentPos + len);
+    }
+    pdoc->EndUndoAction();
+    NotifyChange();
+    Redraw();
+
+    ShowCaretAtCurrentPosition();
+    EnsureCaretVisible();
+#endif
+}
+
 
 void ScintillaWX::DoAddChar(int key) {
+#if wxUSE_UNICODE
+    char ansiChars[3];
+    ansiChars[0] = key;
+    ansiChars[1] = 0;
+    wxString uniChar(ansiChars, wxConvLocal);
+    wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(uniChar);
+    AddCharUTF((char*)buf.data(), strlen(buf));
+#else
     AddChar(key);
+#endif
 }
 
+
 int  ScintillaWX::DoKeyDown(int key, bool shift, bool ctrl, bool alt, bool* consumed) {
 #if defined(__WXGTK__) || defined(__WXMAC__)
     // Ctrl chars (A-Z) end up with the wrong keycode on wxGTK...
diff --git a/contrib/src/stc/ScintillaWX.h b/contrib/src/stc/ScintillaWX.h
index 5f87911952..d904fc3c18 100644
--- a/contrib/src/stc/ScintillaWX.h
+++ b/contrib/src/stc/ScintillaWX.h
@@ -122,9 +122,10 @@ public:
     void DoLoseFocus();
     void DoGainFocus();
     void DoSysColourChange();
-    void DoButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt);
-    void DoButtonUp(Point pt, unsigned int curTime, bool ctrl);
-    void DoButtonMove(Point pt);
+    void DoLeftButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt);
+    void DoLeftButtonUp(Point pt, unsigned int curTime, bool ctrl);
+    void DoLeftButtonMove(Point pt);
+    void DoMiddleButtonUp(Point pt);
     void DoMouseWheel(int rotation, int delta, int linesPerAction, int ctrlDown, bool isPageScroll);
     void DoAddChar(int key);
     int  DoKeyDown(int key, bool shift, bool ctrl, bool alt, bool* consumed);
diff --git a/contrib/src/stc/gen_iface.py b/contrib/src/stc/gen_iface.py
index b5342b73e6..6689380466 100644
--- a/contrib/src/stc/gen_iface.py
+++ b/contrib/src/stc/gen_iface.py
@@ -36,7 +36,13 @@ valPrefixes = [('SCI_', ''),
 ]
 
 # Message function values that should have a CMD_ constant as well
-cmdValues = [ (2300, 2350), 2011, 2013, (2176, 2180) ]
+cmdValues = [ (2300, 2349),
+              2011,
+              2013,
+              (2176, 2180),
+              (2390, 2393),
+              (2395, 2396),
+            ]
 
 
 # Map some generic typenames to wx types, using return value syntax
@@ -420,6 +426,54 @@ methodOverrideMap = {
                        0),
 
 
+    'GetDocPointer' : (0,
+                       'void* %s();',
+                       '''void* %s() {
+                           return (void*)SendMsg(%s);''',
+                       0),
+
+    'SetDocPointer' : (0,
+                       'void %s(void* docPointer);',
+                       '''void %s(void* docPointer) {
+                           SendMsg(%s, 0, (long)docPointer);''',
+                       0),
+
+    'CreateDocument' : (0,
+                       'void* %s();',
+                       '''void* %s() {
+                           return (void*)SendMsg(%s);''',
+                        0),
+
+    'AddRefDocument' : (0,
+                       'void %s(void* docPointer);',
+                       '''void %s(void* docPointer) {
+                           SendMsg(%s, 0, (long)docPointer);''',
+                        0),
+
+    'ReleaseDocument' : (0,
+                       'void %s(void* docPointer);',
+                       '''void %s(void* docPointer) {
+                           SendMsg(%s, 0, (long)docPointer);''',
+                         0),
+    'SetCodePage' : (0,
+                     0,
+                     '''void %s(int codePage) {
+#if wxUSE_UNICODE
+    wxASSERT_MSG(codePage == wxSTC_CP_UTF8,
+                 wxT("Only wxSTC_CP_UTF8 may be used when wxUSE_UNICODE is on."));
+#else
+    wxASSERT_MSG(codePage != wxSTC_CP_UTF8,
+                 wxT("wxSTC_CP_UTF8 may not be used when wxUSE_UNICODE is off."));
+#endif
+                 SendMsg(%s, codePage);''',
+                         ("Set the code page used to interpret the bytes of the document as characters.",) ),
+
+
+    'GrabFocus' : (None, 0, 0, 0),
+    'SetFocus'  : ('SetSTCFocus', 0, 0, 0),
+    'GetFocus'  : ('GetSTCFocus', 0, 0, 0),
+
+
 
     # Remove all methods that are key commands since they can be
     # executed with CmdKeyExecute
@@ -470,53 +524,6 @@ methodOverrideMap = {
     'DeleteBackNotLine' : (None, 0, 0, 0),
 
 
-    'GetDocPointer' : (0,
-                       'void* %s();',
-                       '''void* %s() {
-                           return (void*)SendMsg(%s);''',
-                       0),
-
-    'SetDocPointer' : (0,
-                       'void %s(void* docPointer);',
-                       '''void %s(void* docPointer) {
-                           SendMsg(%s, 0, (long)docPointer);''',
-                       0),
-
-    'CreateDocument' : (0,
-                       'void* %s();',
-                       '''void* %s() {
-                           return (void*)SendMsg(%s);''',
-                        0),
-
-    'AddRefDocument' : (0,
-                       'void %s(void* docPointer);',
-                       '''void %s(void* docPointer) {
-                           SendMsg(%s, 0, (long)docPointer);''',
-                        0),
-
-    'ReleaseDocument' : (0,
-                       'void %s(void* docPointer);',
-                       '''void %s(void* docPointer) {
-                           SendMsg(%s, 0, (long)docPointer);''',
-                         0),
-    'SetCodePage' : (0,
-                     0,
-                     '''void %s(int codePage) {
-#if wxUSE_UNICODE
-    wxASSERT_MSG(codePage == wxSTC_CP_UTF8,
-                 wxT("Only wxSTC_CP_UTF8 may be used when wxUSE_UNICODE is on."));
-#else
-    wxASSERT_MSG(codePage != wxSTC_CP_UTF8,
-                 wxT("wxSTC_CP_UTF8 may not be used when wxUSE_UNICODE is off."));
-#endif
-                 SendMsg(%s, codePage);''',
-                         ("Set the code page used to interpret the bytes of the document as characters.",) ),
-
-
-    'GrabFocus' : (None, 0, 0, 0),
-    'SetFocus'  : ('SetSTCFocus', 0, 0, 0),
-    'GetFocus'  : ('GetSTCFocus', 0, 0, 0),
-
 
 
     '' : ('', 0, 0, 0),
@@ -529,6 +536,7 @@ def processIface(iface, h_tmplt, cpp_tmplt, h_dest, cpp_dest):
     curDocStrings = []
     values = []
     methods = []
+    cmds = []
 
     # parse iface file
     fi = FileInput(iface)
@@ -547,7 +555,7 @@ def processIface(iface, h_tmplt, cpp_tmplt, h_dest, cpp_dest):
             curDocStrings = []
 
         elif op == 'fun ' or op == 'set ' or op == 'get ':
-            parseFun(line[4:], methods, curDocStrings, values)
+            parseFun(line[4:], methods, curDocStrings, cmds)
             curDocStrings = []
 
         elif op == 'cat ':
@@ -570,6 +578,7 @@ def processIface(iface, h_tmplt, cpp_tmplt, h_dest, cpp_dest):
     # process templates
     data = {}
     data['VALUES'] = processVals(values)
+    data['CMDS']   = processVals(cmds)
     defs, imps = processMethods(methods)
     data['METHOD_DEFS'] = defs
     data['METHOD_IMPS'] = imps
@@ -747,10 +756,10 @@ def parseFun(line, methods, docs, values):
     param1 = parseParam(param1)
     param2 = parseParam(param2)
 
-    # Special case.  For the key command functionss we want a value defined too
+    # Special case.  For the key command functions we want a value defined too
     num = string.atoi(number)
     for v in cmdValues:
-        if (type(v) == type(()) and v[0] <= num < v[1]) or v == num:
+        if (type(v) == type(()) and v[0] <= num <= v[1]) or v == num:
             parseVal('CMD_%s=%s' % (string.upper(name), number), values, docs)
 
     #if retType == 'void' and not param1 and not param2:
diff --git a/contrib/src/stc/scintilla/include/SString.h b/contrib/src/stc/scintilla/include/SString.h
index 6bfe50fccd..3c7ccc33a5 100644
--- a/contrib/src/stc/scintilla/include/SString.h
+++ b/contrib/src/stc/scintilla/include/SString.h
@@ -369,7 +369,11 @@ public:
  */
 inline char *StringDup(
 	const char *s,			///< The string to duplicate
-	SString::lenpos_t len=SString::measure_length)	///< The length of memory to allocate. Optional.
+        /* gcc 2.96 doesn't seem to like this syntax: gives
+           'non-local function uses anonymous type'
+           SString::lenpos_t len=SString::measure_length)	///< The length of memory to allocate. Optional.
+        */
+        SString::lenpos_t len=0xffffffffU)	///< The length of memory to allocate. Optional.
 {
 	return SString::StringAllocate(s, len);
 }
diff --git a/contrib/src/stc/scintilla/include/Scintilla.iface b/contrib/src/stc/scintilla/include/Scintilla.iface
index 776fe8f2b7..d6383b103b 100644
--- a/contrib/src/stc/scintilla/include/Scintilla.iface
+++ b/contrib/src/stc/scintilla/include/Scintilla.iface
@@ -1130,14 +1130,14 @@ fun void DeleteBackNotLine=2344(,)
 # Move caret to first position on display line.
 fun void HomeDisplay=2345(,)
 
-# Move caret to first position on display line extending selection to 
+# Move caret to first position on display line extending selection to
 # new caret position.
 fun void HomeDisplayExtend=2346(,)
 
 # Move caret to last position on display line.
 fun void LineEndDisplay=2347(,)
 
-# Move caret to last position on display line extending selection to new 
+# Move caret to last position on display line extending selection to new
 # caret position.
 fun void LineEndDisplayExtend=2348(,)
 
diff --git a/contrib/src/stc/scintilla/src/ScintillaBase.cxx b/contrib/src/stc/scintilla/src/ScintillaBase.cxx
index a5e5a065d1..ab6e9a19b4 100644
--- a/contrib/src/stc/scintilla/src/ScintillaBase.cxx
+++ b/contrib/src/stc/scintilla/src/ScintillaBase.cxx
@@ -70,7 +70,7 @@ void ScintillaBase::AddCharUTF(char *s, unsigned int len, bool treatAsDBCS) {
 	}
 	if (ac.Active()) {
 		AutoCompleteCharacterAdded(s[0]);
-		// For fill ups add the character after the autocompletion has 
+		// For fill ups add the character after the autocompletion has
 		// triggered so containers see the key so can display a calltip.
 		if (isFillUp) {
 			Editor::AddCharUTF(s, len, treatAsDBCS);
@@ -317,6 +317,7 @@ void ScintillaBase::AutoCompleteCompleted() {
 		scn.nmhdr.code = SCN_USERLISTSELECTION;
 		scn.message = 0;
 		scn.wParam = listType;
+		scn.listType = listType;
 		scn.lParam = 0;
 		scn.text = userListSelected.c_str();
 		NotifyParent(scn);
diff --git a/contrib/src/stc/stc.cpp b/contrib/src/stc/stc.cpp
index d675e8da9d..17cf6ee406 100644
--- a/contrib/src/stc/stc.cpp
+++ b/contrib/src/stc/stc.cpp
@@ -90,10 +90,8 @@ BEGIN_EVENT_TABLE(wxStyledTextCtrl, wxControl)
     EVT_SCROLL                  (wxStyledTextCtrl::OnScroll)
     EVT_SIZE                    (wxStyledTextCtrl::OnSize)
     EVT_LEFT_DOWN               (wxStyledTextCtrl::OnMouseLeftDown)
-#if defined(__WXMSW__) || defined(__WXMAC__)
     // Let Scintilla see the double click as a second click
     EVT_LEFT_DCLICK             (wxStyledTextCtrl::OnMouseLeftDown)
-#endif
     EVT_MOTION                  (wxStyledTextCtrl::OnMouseMove)
     EVT_LEFT_UP                 (wxStyledTextCtrl::OnMouseLeftUp)
 #if defined(__WXGTK__) || defined(__WXMAC__)
@@ -102,6 +100,7 @@ BEGIN_EVENT_TABLE(wxStyledTextCtrl, wxControl)
     EVT_CONTEXT_MENU            (wxStyledTextCtrl::OnContextMenu)
 #endif
     EVT_MOUSEWHEEL              (wxStyledTextCtrl::OnMouseWheel)
+    EVT_MIDDLE_UP               (wxStyledTextCtrl::OnMouseMiddleUp)
     EVT_CHAR                    (wxStyledTextCtrl::OnChar)
     EVT_KEY_DOWN                (wxStyledTextCtrl::OnKeyDown)
     EVT_KILL_FOCUS              (wxStyledTextCtrl::OnLoseFocus)
@@ -1478,7 +1477,7 @@ void wxStyledTextCtrl::HomeDisplay() {
     SendMsg(2345, 0, 0);
 }
 
-// Move caret to first position on display line extending selection to 
+// Move caret to first position on display line extending selection to
 // new caret position.
 void wxStyledTextCtrl::HomeDisplayExtend() {
     SendMsg(2346, 0, 0);
@@ -1489,7 +1488,7 @@ void wxStyledTextCtrl::LineEndDisplay() {
     SendMsg(2347, 0, 0);
 }
 
-// Move caret to last position on display line extending selection to new 
+// Move caret to last position on display line extending selection to new
 // caret position.
 void wxStyledTextCtrl::LineEndDisplayExtend() {
     SendMsg(2348, 0, 0);
@@ -1959,18 +1958,18 @@ void wxStyledTextCtrl::OnSize(wxSizeEvent& evt) {
 void wxStyledTextCtrl::OnMouseLeftDown(wxMouseEvent& evt) {
     SetFocus();
     wxPoint pt = evt.GetPosition();
-    m_swx->DoButtonDown(Point(pt.x, pt.y), m_stopWatch.Time(),
+    m_swx->DoLeftButtonDown(Point(pt.x, pt.y), m_stopWatch.Time(),
                       evt.ShiftDown(), evt.ControlDown(), evt.AltDown());
 }
 
 void wxStyledTextCtrl::OnMouseMove(wxMouseEvent& evt) {
     wxPoint pt = evt.GetPosition();
-    m_swx->DoButtonMove(Point(pt.x, pt.y));
+    m_swx->DoLeftButtonMove(Point(pt.x, pt.y));
 }
 
 void wxStyledTextCtrl::OnMouseLeftUp(wxMouseEvent& evt) {
     wxPoint pt = evt.GetPosition();
-    m_swx->DoButtonUp(Point(pt.x, pt.y), m_stopWatch.Time(),
+    m_swx->DoLeftButtonUp(Point(pt.x, pt.y), m_stopWatch.Time(),
                       evt.ControlDown());
 }
 
@@ -1981,6 +1980,11 @@ void wxStyledTextCtrl::OnMouseRightUp(wxMouseEvent& evt) {
 }
 
 
+void wxStyledTextCtrl::OnMouseMiddleUp(wxMouseEvent& evt) {
+    wxPoint pt = evt.GetPosition();
+    m_swx->DoMiddleButtonUp(Point(pt.x, pt.y));
+}
+
 void wxStyledTextCtrl::OnContextMenu(wxContextMenuEvent& evt) {
     wxPoint pt = evt.GetPosition();
     ScreenToClient(&pt.x, &pt.y);
@@ -1998,8 +2002,6 @@ void wxStyledTextCtrl::OnMouseWheel(wxMouseEvent& evt) {
 
 
 void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) {
-    int key = evt.GetKeyCode();
-
     // On (some?) non-US keyboards the AltGr key is required to enter some
     // common characters.  It comes to us as both Alt and Ctrl down so we need
     // to let the char through in that case, otherwise if only ctrl or only
@@ -2008,10 +2010,13 @@ void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) {
     bool alt  = evt.AltDown();
     bool skip = ((ctrl || alt) && ! (ctrl && alt));
 
+    int key = evt.GetKeyCode();
+
 //     printf("OnChar key:%d  consumed:%d  ctrl:%d  alt:%d  skip:%d\n",
 //            key, m_lastKeyDownConsumed, ctrl, alt, skip);
 
-    if (key <= WXK_START && /*key >= 32 &&*/ !m_lastKeyDownConsumed && !skip) {
+    if ( (key <= WXK_START || key > WXK_NUMPAD_DIVIDE) &&
+         !m_lastKeyDownConsumed && !skip) {
         m_swx->DoAddChar(key);
         return;
     }
@@ -2076,6 +2081,20 @@ void wxStyledTextCtrl::NotifyChange() {
     GetEventHandler()->ProcessEvent(evt);
 }
 
+
+static void SetEventText(wxStyledTextEvent& evt, const char* text,
+                         size_t length) {
+    if(!text) return;
+
+    // The unicode conversion MUST have a null byte to terminate the
+    // string so move it into a buffer first and give it one.
+    wxMemoryBuffer buf(length+1);
+    buf.AppendData((void*)text, length);
+    buf.AppendByte(0);
+    evt.SetText(stc2wx(buf));
+}
+
+
 void wxStyledTextCtrl::NotifyParent(SCNotification* _scn) {
     SCNotification& scn = *_scn;
     wxStyledTextEvent evt(0, GetId());
@@ -2121,14 +2140,7 @@ void wxStyledTextCtrl::NotifyParent(SCNotification* _scn) {
     case SCN_MODIFIED:
         evt.SetEventType(wxEVT_STC_MODIFIED);
         evt.SetModificationType(scn.modificationType);
-        if (scn.text) {
-            // The unicode conversion MUST have a null byte to terminate the
-            // string so move it into a buffer first and give it one.
-            wxMemoryBuffer buf(scn.length+1);
-            buf.AppendData((void*)scn.text, scn.length);
-            buf.AppendByte(0);
-            evt.SetText(stc2wx(buf));
-        }
+        SetEventText(evt, scn.text, scn.length);
         evt.SetLength(scn.length);
         evt.SetLinesAdded(scn.linesAdded);
         evt.SetLine(scn.line);
@@ -2160,12 +2172,12 @@ void wxStyledTextCtrl::NotifyParent(SCNotification* _scn) {
     case SCN_USERLISTSELECTION:
         evt.SetEventType(wxEVT_STC_USERLISTSELECTION);
         evt.SetListType(scn.listType);
-        evt.SetText(scn.text);
+        SetEventText(evt, scn.text, strlen(scn.text));
         break;
 
     case SCN_URIDROPPED:
         evt.SetEventType(wxEVT_STC_URIDROPPED);
-        evt.SetText(scn.text);
+        SetEventText(evt, scn.text, strlen(scn.text));
         break;
 
     case SCN_DWELLSTART:
diff --git a/contrib/src/stc/stc.cpp.in b/contrib/src/stc/stc.cpp.in
index 3e1b761faf..0ab9afdc5e 100644
--- a/contrib/src/stc/stc.cpp.in
+++ b/contrib/src/stc/stc.cpp.in
@@ -90,10 +90,8 @@ BEGIN_EVENT_TABLE(wxStyledTextCtrl, wxControl)
     EVT_SCROLL                  (wxStyledTextCtrl::OnScroll)
     EVT_SIZE                    (wxStyledTextCtrl::OnSize)
     EVT_LEFT_DOWN               (wxStyledTextCtrl::OnMouseLeftDown)
-#if defined(__WXMSW__) || defined(__WXMAC__)
     // Let Scintilla see the double click as a second click
     EVT_LEFT_DCLICK             (wxStyledTextCtrl::OnMouseLeftDown)
-#endif
     EVT_MOTION                  (wxStyledTextCtrl::OnMouseMove)
     EVT_LEFT_UP                 (wxStyledTextCtrl::OnMouseLeftUp)
 #if defined(__WXGTK__) || defined(__WXMAC__)
@@ -102,6 +100,7 @@ BEGIN_EVENT_TABLE(wxStyledTextCtrl, wxControl)
     EVT_CONTEXT_MENU            (wxStyledTextCtrl::OnContextMenu)
 #endif
     EVT_MOUSEWHEEL              (wxStyledTextCtrl::OnMouseWheel)
+    EVT_MIDDLE_UP               (wxStyledTextCtrl::OnMouseMiddleUp)
     EVT_CHAR                    (wxStyledTextCtrl::OnChar)
     EVT_KEY_DOWN                (wxStyledTextCtrl::OnKeyDown)
     EVT_KILL_FOCUS              (wxStyledTextCtrl::OnLoseFocus)
@@ -337,18 +336,18 @@ void wxStyledTextCtrl::OnSize(wxSizeEvent& evt) {
 void wxStyledTextCtrl::OnMouseLeftDown(wxMouseEvent& evt) {
     SetFocus();
     wxPoint pt = evt.GetPosition();
-    m_swx->DoButtonDown(Point(pt.x, pt.y), m_stopWatch.Time(),
+    m_swx->DoLeftButtonDown(Point(pt.x, pt.y), m_stopWatch.Time(),
                       evt.ShiftDown(), evt.ControlDown(), evt.AltDown());
 }
 
 void wxStyledTextCtrl::OnMouseMove(wxMouseEvent& evt) {
     wxPoint pt = evt.GetPosition();
-    m_swx->DoButtonMove(Point(pt.x, pt.y));
+    m_swx->DoLeftButtonMove(Point(pt.x, pt.y));
 }
 
 void wxStyledTextCtrl::OnMouseLeftUp(wxMouseEvent& evt) {
     wxPoint pt = evt.GetPosition();
-    m_swx->DoButtonUp(Point(pt.x, pt.y), m_stopWatch.Time(),
+    m_swx->DoLeftButtonUp(Point(pt.x, pt.y), m_stopWatch.Time(),
                       evt.ControlDown());
 }
 
@@ -359,6 +358,11 @@ void wxStyledTextCtrl::OnMouseRightUp(wxMouseEvent& evt) {
 }
 
 
+void wxStyledTextCtrl::OnMouseMiddleUp(wxMouseEvent& evt) {
+    wxPoint pt = evt.GetPosition();
+    m_swx->DoMiddleButtonUp(Point(pt.x, pt.y));
+}
+
 void wxStyledTextCtrl::OnContextMenu(wxContextMenuEvent& evt) {
     wxPoint pt = evt.GetPosition();
     ScreenToClient(&pt.x, &pt.y);
@@ -376,8 +380,6 @@ void wxStyledTextCtrl::OnMouseWheel(wxMouseEvent& evt) {
 
 
 void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) {
-    int key = evt.GetKeyCode();
-
     // On (some?) non-US keyboards the AltGr key is required to enter some
     // common characters.  It comes to us as both Alt and Ctrl down so we need
     // to let the char through in that case, otherwise if only ctrl or only
@@ -386,10 +388,13 @@ void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) {
     bool alt  = evt.AltDown();
     bool skip = ((ctrl || alt) && ! (ctrl && alt));
 
+    int key = evt.GetKeyCode();
+
 //     printf("OnChar key:%%d  consumed:%%d  ctrl:%%d  alt:%%d  skip:%%d\n",
 //            key, m_lastKeyDownConsumed, ctrl, alt, skip);
 
-    if (key <= WXK_START && /*key >= 32 &&*/ !m_lastKeyDownConsumed && !skip) {
+    if ( (key <= WXK_START || key > WXK_NUMPAD_DIVIDE) &&
+         !m_lastKeyDownConsumed && !skip) {
         m_swx->DoAddChar(key);
         return;
     }
@@ -454,6 +459,20 @@ void wxStyledTextCtrl::NotifyChange() {
     GetEventHandler()->ProcessEvent(evt);
 }
 
+
+static void SetEventText(wxStyledTextEvent& evt, const char* text,
+                         size_t length) {
+    if(!text) return;
+
+    // The unicode conversion MUST have a null byte to terminate the
+    // string so move it into a buffer first and give it one.
+    wxMemoryBuffer buf(length+1);
+    buf.AppendData((void*)text, length);
+    buf.AppendByte(0);
+    evt.SetText(stc2wx(buf));
+}
+
+
 void wxStyledTextCtrl::NotifyParent(SCNotification* _scn) {
     SCNotification& scn = *_scn;
     wxStyledTextEvent evt(0, GetId());
@@ -499,14 +518,7 @@ void wxStyledTextCtrl::NotifyParent(SCNotification* _scn) {
     case SCN_MODIFIED:
         evt.SetEventType(wxEVT_STC_MODIFIED);
         evt.SetModificationType(scn.modificationType);
-        if (scn.text) {
-            // The unicode conversion MUST have a null byte to terminate the
-            // string so move it into a buffer first and give it one.
-            wxMemoryBuffer buf(scn.length+1);
-            buf.AppendData((void*)scn.text, scn.length);
-            buf.AppendByte(0);
-            evt.SetText(stc2wx(buf));
-        }
+        SetEventText(evt, scn.text, scn.length);
         evt.SetLength(scn.length);
         evt.SetLinesAdded(scn.linesAdded);
         evt.SetLine(scn.line);
@@ -538,12 +550,12 @@ void wxStyledTextCtrl::NotifyParent(SCNotification* _scn) {
     case SCN_USERLISTSELECTION:
         evt.SetEventType(wxEVT_STC_USERLISTSELECTION);
         evt.SetListType(scn.listType);
-        evt.SetText(scn.text);
+        SetEventText(evt, scn.text, strlen(scn.text));
         break;
 
     case SCN_URIDROPPED:
         evt.SetEventType(wxEVT_STC_URIDROPPED);
-        evt.SetText(scn.text);
+        SetEventText(evt, scn.text, strlen(scn.text));
         break;
 
     case SCN_DWELLSTART:
diff --git a/contrib/src/stc/stc.h.in b/contrib/src/stc/stc.h.in
index 157a7bfc23..0a3360359e 100644
--- a/contrib/src/stc/stc.h.in
+++ b/contrib/src/stc/stc.h.in
@@ -24,6 +24,12 @@
 #include <wx/wx.h>
 #include <wx/dnd.h>
 
+#ifdef STCISDLL
+#define STCDLLEXPORT WXDLLEXPORT
+#else
+#define STCDLLEXPORT
+#endif
+
 //----------------------------------------------------------------------
 
 // Should a wxPopupWindow be used for the call tips and autocomplete windows?
@@ -38,6 +44,12 @@
 
 %(VALUES)s
 
+
+//-----------------------------------------
+// Commands that can be bound to keystrokes
+%(CMDS)s
+
+
 // END of generated section
 //----------------------------------------------------------------------
 
@@ -45,8 +57,11 @@ class  ScintillaWX;                      // forward declare
 class  WordList;
 struct SCNotification;
 
-
-extern const wxChar* wxSTCNameStr;
+#ifndef SWIG
+extern STCDLLEXPORT const wxChar* wxSTCNameStr;
+class STCDLLEXPORT wxStyledTextCtrl;
+class STCDLLEXPORT wxStyledTextEvent;
+#endif
 
 //----------------------------------------------------------------------
 
@@ -175,6 +190,7 @@ private:
     void OnMouseMove(wxMouseEvent& evt);
     void OnMouseLeftUp(wxMouseEvent& evt);
     void OnMouseRightUp(wxMouseEvent& evt);
+    void OnMouseMiddleUp(wxMouseEvent& evt);
     void OnContextMenu(wxContextMenuEvent& evt);
     void OnMouseWheel(wxMouseEvent& evt);
     void OnChar(wxKeyEvent& evt);
@@ -210,7 +226,7 @@ private:
 
 //----------------------------------------------------------------------
 
-// SWIG can't handle "#if" type of conditionals, onlu "#ifdef"
+// SWIG can't handle "#if" type of conditionals, only "#ifdef"
 #ifdef SWIG
 #define STC_USE_DND 1
 #else
diff --git a/contrib/src/svg/Makefile.in b/contrib/src/svg/Makefile.in
index 9f1f1e253b..904597247e 100644
--- a/contrib/src/svg/Makefile.in
+++ b/contrib/src/svg/Makefile.in
@@ -4,14 +4,14 @@ top_srcdir = @top_srcdir@/..
 top_builddir = ../../..
 libsrc_dir = contrib/src/svg
 
-TARGET_LIBNAME=libwx_dcsvg
+TARGET_LIBNAME=lib@WX_LIBRARY_BASENAME@_dcsvg-@WX_RELEASE@
 
-LIBVERSION_CURRENT=1
-LIBVERSION_REVISION=0
-LIBVERSION_AGE=0
+LIBVERSION_CURRENT=@WX_CURRENT@
+LIBVERSION_REVISION=@WX_REVISION@
+LIBVERSION_AGE=@WX_AGE@
 
 HEADER_PATH=$(top_srcdir)/contrib/include/wx
-HEADER_SUBDIR=dcsvg
+HEADER_SUBDIR=svg
 
 HEADERS=dcsvg.h
 
diff --git a/contrib/src/xrc/Makefile.in b/contrib/src/xrc/Makefile.in
index f645274010..ca0f650ca8 100644
--- a/contrib/src/xrc/Makefile.in
+++ b/contrib/src/xrc/Makefile.in
@@ -7,11 +7,11 @@ expat_dir = $(top_srcdir)/contrib/src/xrc/expat
 libsrc_dir = contrib/src/xrc@PATH_IFS@$(expat_dir)/xmlparse@PATH_IFS@$(expat_dir)/xmltok
 
 
-TARGET_LIBNAME=libwxxrc
+TARGET_LIBNAME=lib@WX_LIBRARY_BASENAME@_xrc-@WX_RELEASE@
 
-LIBVERSION_CURRENT=0
-LIBVERSION_REVISION=1
-LIBVERSION_AGE=0
+LIBVERSION_CURRENT=@WX_CURRENT@
+LIBVERSION_REVISION=@WX_REVISION@
+LIBVERSION_AGE=@WX_AGE@
 
 HEADER_PATH=$(top_srcdir)/contrib/include/wx
 HEADER_SUBDIR=xrc
@@ -22,9 +22,9 @@ EXPAT_OBJECTS=xmltok.o xmlrole.o xmlparse.o
 HEADERS=xh_all.h xh_bttn.h xh_chckb.h xh_chckl.h xh_choic.h xh_combo.h \
         xh_dlg.h xh_gauge.h xh_html.h xh_menu.h xh_notbk.h xh_panel.h \
         xh_radbt.h xh_radbx.h xh_sizer.h xh_slidr.h xh_spin.h xh_stbmp.h \
-        xh_sttxt.h xh_text.h xh_listb.h xml.h xmlio.h xmlres.h xh_toolb.h \
+        xh_sttxt.h xh_text.h xh_listb.h xml.h xmlres.h xh_toolb.h \
         xh_bmpbt.h xh_cald.h xh_listc.h xh_scrol.h xh_stbox.h xh_tree.h \
-        xh_stlin.h xh_bmp.h xh_unkwn.h xh_frame.h xh_gdctl.h
+        xh_stlin.h xh_bmp.h xh_unkwn.h xh_frame.h xh_gdctl.h xh_scwin.h
 
 OBJECTS=$(EXPAT_OBJECTS) \
         xml.o xmlres.o xmlrsall.o \
@@ -33,7 +33,7 @@ OBJECTS=$(EXPAT_OBJECTS) \
         xh_radbx.o xh_sizer.o xh_slidr.o xh_spin.o xh_stbmp.o xh_sttxt.o \
         xh_text.o xh_listb.o xh_toolb.o xh_stlin.o xh_bmp.o xh_unkwn.o \
         xh_bmpbt.o xh_cald.o xh_listc.o xh_scrol.o xh_stbox.o xh_tree.o \
-        xh_frame.o xh_gdctl.o
+        xh_frame.o xh_gdctl.o xh_scwin.o
 DEPFILES=$(OBJECTS:.o=.d)
 
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include $(EXPAT_DEFS)
diff --git a/contrib/src/xrc/XrcVC.dsp b/contrib/src/xrc/XrcVC.dsp
index 44c9ba9a78..174c339711 100644
--- a/contrib/src/xrc/XrcVC.dsp
+++ b/contrib/src/xrc/XrcVC.dsp
@@ -184,6 +184,10 @@ SOURCE=.\xh_scrol.cpp
 # End Source File
 # Begin Source File
 
+SOURCE=.\xh_scwin.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=.\xh_sizer.cpp
 # End Source File
 # Begin Source File
diff --git a/contrib/src/xrc/makefile.b32 b/contrib/src/xrc/makefile.b32
index dc7d4fa68a..2024abb133 100644
--- a/contrib/src/xrc/makefile.b32
+++ b/contrib/src/xrc/makefile.b32
@@ -27,7 +27,7 @@ OBJECTS=$(EXPAT_OBJECTS) \
         xh_radbx.obj xh_sizer.obj xh_slidr.obj xh_spin.obj xh_stbmp.obj xh_sttxt.obj \
         xh_text.obj xh_listb.obj xh_toolb.obj xh_stlin.obj xh_bmp.obj \
         xh_bmpbt.obj xh_cald.obj xh_listc.obj xh_scrol.obj xh_stbox.obj \
-        xh_tree.obj xh_unkwn.obj xh_frame.obj xh_gdctl.obj
+        xh_tree.obj xh_unkwn.obj xh_frame.obj xh_gdctl.obj xh_scwin.obj
 
 !include $(WXDIR)\src\makelib.b32
 
diff --git a/contrib/src/xrc/makefile.g95 b/contrib/src/xrc/makefile.g95
index 8a4bfb322f..00b31580dc 100644
--- a/contrib/src/xrc/makefile.g95
+++ b/contrib/src/xrc/makefile.g95
@@ -28,7 +28,7 @@ OBJECTS= $(XMLPARSEDIR_OBJECTS) $(XMLTOKDIR_OBJECTS) \
         xh_radbx.o xh_sizer.o xh_slidr.o xh_spin.o xh_stbmp.o xh_sttxt.o \
         xh_text.o xh_listb.o xh_toolb.o xh_stlin.o xh_bmp.o xh_unkwn.o \
         xh_bmpbt.o xh_cald.o xh_listc.o xh_scrol.o xh_stbox.o xh_tree.o \
-        xh_frame.o xh_gdctl.o
+        xh_frame.o xh_gdctl.o xh_scwin.o
 
 include $(WXDIR)/src/makelib.g95
 
diff --git a/contrib/src/xrc/makefile.vc b/contrib/src/xrc/makefile.vc
index 51bf90f9b4..6065d42e49 100644
--- a/contrib/src/xrc/makefile.vc
+++ b/contrib/src/xrc/makefile.vc
@@ -57,7 +57,7 @@ OBJECTS=$(EXPAT_OBJS) \
         $(D)\xh_text.obj $(D)\xh_listb.obj $(D)\xh_toolb.obj \
         $(D)\xh_bmpbt.obj $(D)\xh_cald.obj $(D)\xh_listc.obj $(D)\xh_scrol.obj \
         $(D)\xh_stbox.obj $(D)\xh_tree.obj $(D)\xh_stlin.obj $(D)\xh_bmp.obj \
-        $(D)\xh_unkwn.obj $(D)\xh_gdctl.obj
+        $(D)\xh_unkwn.obj $(D)\xh_gdctl.obj $(D)\xh_scwin.obj
 
 !include $(WXDIR)\src\makelib.vc
 
diff --git a/contrib/src/xrc/makefile.wat b/contrib/src/xrc/makefile.wat
index 43cfc46647..d4069fc0f6 100644
--- a/contrib/src/xrc/makefile.wat
+++ b/contrib/src/xrc/makefile.wat
@@ -18,7 +18,7 @@ OBJECTS=xml.obj xmlres.obj xmlrsall.obj &
         xh_radbx.obj xh_sizer.obj xh_slidr.obj xh_spin.obj xh_stbmp.obj xh_sttxt.obj &
         xh_text.obj xh_listb.obj xh_toolb.obj xh_stlin.obj xh_bmp.obj &
         xh_bmpbt.obj xh_cald.obj xh_listc.obj xh_scrol.obj xh_stbox.obj &
-        xh_tree.obj xh_unkwn.obj xh_frame.obj
+        xh_tree.obj xh_unkwn.obj xh_frame.obj xh_scwin.obj
 
 
 all: $(WXXMLLIB)
diff --git a/contrib/src/xrc/xh_dlg.cpp b/contrib/src/xrc/xh_dlg.cpp
index d44ad16a91..3c916a9e1d 100644
--- a/contrib/src/xrc/xh_dlg.cpp
+++ b/contrib/src/xrc/xh_dlg.cpp
@@ -41,6 +41,8 @@ wxDialogXmlHandler::wxDialogXmlHandler() : wxXmlResourceHandler()
     XRC_ADD_STYLE(wxTAB_TRAVERSAL);
     XRC_ADD_STYLE(wxWS_EX_VALIDATE_RECURSIVELY);
     XRC_ADD_STYLE(wxCLIP_CHILDREN);
+    XRC_ADD_STYLE(wxMAXIMIZE_BOX);
+    XRC_ADD_STYLE(wxMINIMIZE_BOX);
 
     AddWindowStyles();
 }
diff --git a/contrib/src/xrc/xh_scwin.cpp b/contrib/src/xrc/xh_scwin.cpp
new file mode 100644
index 0000000000..9aedfefe57
--- /dev/null
+++ b/contrib/src/xrc/xh_scwin.cpp
@@ -0,0 +1,52 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        xh_scwin.cpp
+// Purpose:     XRC resource for wxScrolledWindow
+// Author:      Vaclav Slavik
+// Created:     2002/10/18
+// RCS-ID:      $Id$
+// Copyright:   (c) 2002 Vaclav Slavik
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+ 
+#ifdef __GNUG__
+#pragma implementation "xh_scwin.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#include "wx/xrc/xh_scwin.h"
+#include "wx/scrolwin.h"
+
+
+wxScrolledWindowXmlHandler::wxScrolledWindowXmlHandler() 
+: wxXmlResourceHandler() 
+{
+    XRC_ADD_STYLE(wxHSCROLL);
+    XRC_ADD_STYLE(wxVSCROLL);
+    AddWindowStyles();
+}
+
+wxObject *wxScrolledWindowXmlHandler::DoCreateResource()
+{ 
+    XRC_MAKE_INSTANCE(control, wxScrolledWindow)
+
+    control->Create(m_parentAsWindow,
+                    GetID(),
+                    GetPosition(), GetSize(),
+                    GetStyle(wxT("style"), wxHSCROLL | wxVSCROLL),
+                    GetName());
+
+    SetupWindow(control);
+    
+    return control;
+}
+
+bool wxScrolledWindowXmlHandler::CanHandle(wxXmlNode *node)
+{
+    return IsOfClass(node, wxT("wxScrolledWindow"));
+}
diff --git a/contrib/src/xrc/xmlres.cpp b/contrib/src/xrc/xmlres.cpp
index 0a1b72cd3a..859a9eaa10 100644
--- a/contrib/src/xrc/xmlres.cpp
+++ b/contrib/src/xrc/xmlres.cpp
@@ -146,7 +146,6 @@ void wxXmlResource::ClearHandlers()
 }
 
 
-
 wxMenu *wxXmlResource::LoadMenu(const wxString& name)
 {
     return (wxMenu*)CreateResFromNode(FindResource(name, wxT("wxMenu")), NULL, NULL);
@@ -261,7 +260,7 @@ static void ProcessPlatformProperty(wxXmlNode *node)
             isok = TRUE;
         else
         {
-            wxStringTokenizer tkn(s, " |");
+            wxStringTokenizer tkn(s, wxT(" |"));
 
             while (tkn.HasMoreTokens())
             {
@@ -408,10 +407,25 @@ wxXmlNode *wxXmlResource::DoFindResource(wxXmlNode *parent,
         if ( node->GetType() == wxXML_ELEMENT_NODE &&
                  (node->GetName() == wxT("object") ||
                   node->GetName() == wxT("object_ref")) &&
-                (!classname ||
-                 node->GetPropVal(wxT("class"), wxEmptyString) == classname) &&
-                node->GetPropVal(wxT("name"), &dummy) && dummy == name )
-            return node;
+             node->GetPropVal(wxT("name"), &dummy) && dummy == name )
+        {
+            wxString cls(node->GetPropVal(wxT("class"), wxEmptyString));
+            if (!classname || cls == classname)
+                return node;
+            // object_ref may not have 'class' property:
+            if (cls.empty() && node->GetName() == wxT("object_ref"))
+            {
+                wxString refName = node->GetPropVal(wxT("ref"), wxEmptyString);
+                if (refName.empty())
+                    continue;
+                wxXmlNode* refNode = FindResource(refName, wxEmptyString, TRUE);
+                if (refNode &&
+                    refNode->GetPropVal(wxT("class"), wxEmptyString) == classname)
+                {
+                    return node;
+                }
+            }
+        }
     }
 
     if ( recursive )
@@ -487,7 +501,7 @@ static void MergeNodes(wxXmlNode& dest, wxXmlNode& with)
         for (dnode = dest.GetChildren(); dnode; dnode = dnode->GetNext() )
         {
             if ( dnode->GetName() == node->GetName() &&
-                 dnode->GetPropVal("name", wxEmptyString) == name &&
+                 dnode->GetPropVal(wxT("name"), wxEmptyString) == name &&
                  dnode->GetType() == node->GetType() )
             {
                 MergeNodes(*dnode, *node);
@@ -547,6 +561,40 @@ wxObject *wxXmlResource::CreateResFromNode(wxXmlNode *node, wxObject *parent, wx
 }
 
 
+#include "wx/listimpl.cpp"
+WX_DECLARE_LIST(wxXmlSubclassFactory, wxXmlSubclassFactoriesList);
+WX_DEFINE_LIST(wxXmlSubclassFactoriesList);
+
+wxXmlSubclassFactoriesList *wxXmlResource::ms_subclassFactories = NULL;
+
+/*static*/ void wxXmlResource::AddSubclassFactory(wxXmlSubclassFactory *factory)
+{
+    if (!ms_subclassFactories)
+    {
+        ms_subclassFactories = new wxXmlSubclassFactoriesList;
+        ms_subclassFactories->DeleteContents(TRUE);
+    }
+    ms_subclassFactories->Append(factory);
+}
+
+class wxXmlSubclassFactoryCXX : public wxXmlSubclassFactory
+{
+public:
+    ~wxXmlSubclassFactoryCXX() {}
+
+    wxObject *Create(const wxString& className)
+    {
+        wxClassInfo* classInfo = wxClassInfo::FindClass(className);
+
+        if (classInfo)
+            return classInfo->CreateObject();
+        else
+            return NULL;
+    }
+};
+
+
+
 
 
 wxXmlResourceHandler::wxXmlResourceHandler()
@@ -568,18 +616,23 @@ wxObject *wxXmlResourceHandler::CreateResource(wxXmlNode *node, wxObject *parent
         !(m_resource->GetFlags() & wxXRC_NO_SUBCLASSING))
     {
         wxString subclass = node->GetPropVal(wxT("subclass"), wxEmptyString);
-        wxClassInfo* classInfo = wxClassInfo::FindClass(subclass);
-
-        if (classInfo)
-            m_instance = classInfo->CreateObject();
-
-        if (!m_instance)
+        if (!subclass.empty())
         {
-            wxLogError(_("Subclass '%s' not found for resource '%s', not subclassing!"),
-                       subclass.c_str(), node->GetPropVal(wxT("name"), wxEmptyString).c_str());
-        }
+            for (wxXmlSubclassFactoriesList::Node *i = wxXmlResource::ms_subclassFactories->GetFirst();
+                 i; i = i->GetNext())
+            {
+                m_instance = i->GetData()->Create(subclass);
+                if (m_instance)
+                    break;
+            }
 
-        m_instance = classInfo->CreateObject();
+            if (!m_instance)
+            {
+                wxString name = node->GetPropVal(wxT("name"), wxEmptyString);
+                wxLogError(_("Subclass '%s' not found for resource '%s', not subclassing!"),
+                           subclass.c_str(), name.c_str());
+            }
+        }
     }
 
     m_node = node;
@@ -634,7 +687,7 @@ int wxXmlResourceHandler::GetStyle(const wxString& param, int defaults)
 
     if (!s) return defaults;
 
-    wxStringTokenizer tkn(s, wxT("| "), wxTOKEN_STRTOK);
+    wxStringTokenizer tkn(s, wxT("| \t\n"), wxTOKEN_STRTOK);
     int style = 0;
     int index;
     wxString fl;
@@ -733,6 +786,7 @@ int wxXmlResourceHandler::GetID()
     stdID(wxID_STATIC); stdID(wxID_FORWARD); stdID(wxID_BACKWARD);
     stdID(wxID_DEFAULT); stdID(wxID_MORE); stdID(wxID_SETUP);
     stdID(wxID_RESET); stdID(wxID_HELP_CONTEXT);
+    stdID(wxID_CLOSE_ALL);
 #undef stdID
     else return wxXmlResource::GetXRCID(sid);
 }
@@ -845,6 +899,8 @@ wxIcon wxXmlResourceHandler::GetIcon(const wxString& param,
 
 wxXmlNode *wxXmlResourceHandler::GetParamNode(const wxString& param)
 {
+    wxCHECK_MSG(m_node, NULL, wxT("You can't access handler data before it was initialized!"));
+
     wxXmlNode *n = m_node->GetChildren();
 
     while (n)
@@ -1166,11 +1222,13 @@ public:
     wxXmlResourceModule() {}
     bool OnInit()
     {
+        wxXmlResource::AddSubclassFactory(new wxXmlSubclassFactoryCXX);
         return TRUE;
     }
     void OnExit()
     {
         delete wxXmlResource::Set(NULL);
+        wxDELETE(wxXmlResource::ms_subclassFactories);
         CleanXRCID_Records();
     }
 };
diff --git a/contrib/src/xrc/xmlrsall.cpp b/contrib/src/xrc/xmlrsall.cpp
index b55badc9f9..5d933f9490 100644
--- a/contrib/src/xrc/xmlrsall.cpp
+++ b/contrib/src/xrc/xmlrsall.cpp
@@ -94,4 +94,5 @@ void wxXmlResource::InitAllHandlers()
     AddHandler(new wxGenericDirCtrlXmlHandler);
 #endif
     AddHandler(new wxFrameXmlHandler);
+    AddHandler(new wxScrolledWindowXmlHandler);
 }
diff --git a/contrib/utils/convertrc/ConvertVC.dsp b/contrib/utils/convertrc/ConvertVC.dsp
index 31de3d7b5e..97c2c7f155 100644
--- a/contrib/utils/convertrc/ConvertVC.dsp
+++ b/contrib/utils/convertrc/ConvertVC.dsp
@@ -110,7 +110,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/wxconvert.exe" /pdbtype:sept /libpath:"..\..\..\lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/wxconvert.exe" /pdbtype:sept /libpath:"..\..\..\lib"
 
 !ELSEIF  "$(CFG)" == "ConvertVC - Win32 Release DLL"
 
@@ -137,7 +137,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/wxconvert.exe" /libpath:"..\..\..\lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/wxconvert.exe" /libpath:"..\..\..\lib"
 
 !ENDIF 
 
diff --git a/contrib/utils/convertrc/rc2xml.h b/contrib/utils/convertrc/rc2xml.h
index 184a8dadfb..9f1c18b29e 100644
--- a/contrib/utils/convertrc/rc2xml.h
+++ b/contrib/utils/convertrc/rc2xml.h
@@ -92,4 +92,4 @@ protected:
 };
 
 
-#endif
\ No newline at end of file
+#endif
diff --git a/contrib/utils/wxrc/Makefile.in b/contrib/utils/wxrc/Makefile.in
index 9685e6f172..b20802bbb0 100644
--- a/contrib/utils/wxrc/Makefile.in
+++ b/contrib/utils/wxrc/Makefile.in
@@ -9,7 +9,7 @@ PROGRAM=wxrc
 OBJECTS=wxrc.o
 
 
-APPEXTRALIBS=$(top_builddir)/lib/libwxxrc.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_xrc-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/contrib/utils/wxrc/wxRcVC.dsp b/contrib/utils/wxrc/wxRcVC.dsp
index 24ae29e1e7..4d62151234 100644
--- a/contrib/utils/wxrc/wxRcVC.dsp
+++ b/contrib/utils/wxrc/wxRcVC.dsp
@@ -110,7 +110,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/wxrc.exe" /pdbtype:sept /libpath:"..\..\..\lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/wxrc.exe" /pdbtype:sept /libpath:"..\..\..\lib"
 
 !ELSEIF  "$(CFG)" == "wxRcVC - Win32 Release DLL"
 
@@ -137,7 +137,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/wxrc.exe" /libpath:"..\..\..\lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/wxrc.exe" /libpath:"..\..\..\lib"
 
 !ENDIF 
 
diff --git a/contrib/utils/wxrc/wxrc.cpp b/contrib/utils/wxrc/wxrc.cpp
index 23b27952a7..ff536b0ef8 100644
--- a/contrib/utils/wxrc/wxrc.cpp
+++ b/contrib/utils/wxrc/wxrc.cpp
@@ -84,18 +84,18 @@ int XmlResApp::OnRun()
 {
     static const wxCmdLineEntryDesc cmdLineDesc[] =
     {
-        { wxCMD_LINE_SWITCH, "h", "help",  "show help message", 
+        { wxCMD_LINE_SWITCH, _T("h"), _T("help"),  _T("show help message"), 
               wxCMD_LINE_VAL_NONE, wxCMD_LINE_OPTION_HELP },
-        { wxCMD_LINE_SWITCH, "v", "verbose", "be verbose" },
-        { wxCMD_LINE_SWITCH, "c", "cpp-code",  "output C++ source rather than .rsc file" },
-        { wxCMD_LINE_SWITCH, "p", "python-code",  "output wxPython source rather than .rsc file" },
-        { wxCMD_LINE_SWITCH, "g", "gettext",  "output list of translatable strings (to stdout or file if -o used)" },
-        { wxCMD_LINE_OPTION, "n", "function",  "C++/Python function name (with -c or -p) [InitXmlResource]" },
-        { wxCMD_LINE_OPTION, "o", "output",  "output file [resource.xrs/cpp]" },
+        { wxCMD_LINE_SWITCH, _T("v"), _T("verbose"), _T("be verbose") },
+        { wxCMD_LINE_SWITCH, _T("c"), _T("cpp-code"),  _T("output C++ source rather than .rsc file") },
+        { wxCMD_LINE_SWITCH, _T("p"), _T("python-code"),  _T("output wxPython source rather than .rsc file") },
+        { wxCMD_LINE_SWITCH, _T("g"), _T("gettext"),  _T("output list of translatable strings (to stdout or file if -o used)") },
+        { wxCMD_LINE_OPTION, _T("n"), _T("function"),  _T("C++/Python function name (with -c or -p) [InitXmlResource]") },
+        { wxCMD_LINE_OPTION, _T("o"), _T("output"),  _T("output file [resource.xrs/cpp]") },
 #if 0 // not yet implemented
-        { wxCMD_LINE_OPTION, "l", "list-of-handlers",  "output list of neccessary handlers to this file" },
+        { wxCMD_LINE_OPTION, _T("l"), _T("list-of-handlers",  _T("output list of neccessary handlers to this file" },
 #endif
-        { wxCMD_LINE_PARAM,  NULL, NULL, "input file(s)",
+        { wxCMD_LINE_PARAM,  NULL, NULL, _T("input file(s)"),
               wxCMD_LINE_VAL_STRING, 
               wxCMD_LINE_PARAM_MULTIPLE | wxCMD_LINE_OPTION_MANDATORY },
 
@@ -139,30 +139,30 @@ int XmlResApp::OnRun()
 
 void XmlResApp::ParseParams(const wxCmdLineParser& cmdline)
 {
-    flagGettext = cmdline.Found("g");
-    flagVerbose = cmdline.Found("v");
-    flagCPP = cmdline.Found("c");
-    flagPython = cmdline.Found("p");
+    flagGettext = cmdline.Found(_T("g"));
+    flagVerbose = cmdline.Found(_T("v"));
+    flagCPP = cmdline.Found(_T("c"));
+    flagPython = cmdline.Found(_T("p"));
 
-    if (!cmdline.Found("o", &parOutput)) 
+    if (!cmdline.Found(_T("o"), &parOutput)) 
     {
         if (flagGettext)
             parOutput = wxEmptyString;
         else
         {
             if (flagCPP)
-                parOutput = "resource.cpp";
+                parOutput = _T("resource.cpp");
             else if (flagPython)
-                parOutput = "resource.py";
+                parOutput = _T("resource.py");
             else
-                parOutput = "resource.xrs";
+                parOutput = _T("resource.xrs");
         }
     }
     parOutputPath = wxPathOnly(parOutput);
-    if (!parOutputPath) parOutputPath = ".";
+    if (!parOutputPath) parOutputPath = _T(".");
 
-    if (!cmdline.Found("n", &parFuncname)) 
-        parFuncname = "InitXmlResource";
+    if (!cmdline.Found(_T("n"), &parFuncname)) 
+        parFuncname = _T("InitXmlResource");
 
     for (size_t i = 0; i < cmdline.GetParamCount(); i++)
         parFiles.Add(cmdline.GetParam(i));
@@ -194,19 +194,19 @@ void XmlResApp::CompileRes()
 wxString XmlResApp::GetInternalFileName(const wxString& name, const wxArrayString& flist)
 {
     wxString name2 = name;
-    name2.Replace(":", "_");
-    name2.Replace("/", "_");
-    name2.Replace("\\", "_");
-    name2.Replace("*", "_");
-    name2.Replace("?", "_");
+    name2.Replace(_T(":"), _T("_"));
+    name2.Replace(_T("/"), _T("_"));
+    name2.Replace(_T("\\"), _T("_"));
+    name2.Replace(_T("*"), _T("_"));
+    name2.Replace(_T("?"), _T("_"));
     
-    wxString s = wxFileNameFromPath(parOutput) + "$" + name2;
+    wxString s = wxFileNameFromPath(parOutput) + _T("$") + name2;
 
     if (wxFileExists(s) && flist.Index(s) == wxNOT_FOUND)
     {        
         for (int i = 0;; i++)
         {
-            s.Printf(wxFileNameFromPath(parOutput) + "$%03i-" + name2, i);
+            s.Printf(wxFileNameFromPath(parOutput) + _T("$%03i-") + name2, i);
             if (!wxFileExists(s) || flist.Index(s) != wxNOT_FOUND)
                 break;
         }
@@ -221,13 +221,13 @@ wxArrayString XmlResApp::PrepareTempFiles()
     for (size_t i = 0; i < parFiles.Count(); i++)
     {
         if (flagVerbose) 
-            wxPrintf("processing " + parFiles[i] +  "...\n");
+            wxPrintf(_T("processing ") + parFiles[i] +  _T("...\n"));
 
         wxXmlDocument doc;
         
         if (!doc.Load(parFiles[i]))
         {
-            wxLogError("Error parsing file " + parFiles[i]);
+            wxLogError(_T("Error parsing file ") + parFiles[i]);
             retCode = 1;
             continue;
         }
@@ -239,7 +239,7 @@ wxArrayString XmlResApp::PrepareTempFiles()
 
         wxString internalName = GetInternalFileName(parFiles[i], flist);
         
-        doc.Save(parOutputPath + "/" + internalName);
+        doc.Save(parOutputPath + _T("/") + internalName);
         flist.Add(internalName);
     }
     
@@ -251,42 +251,55 @@ wxArrayString XmlResApp::PrepareTempFiles()
 // find all files mentioned in structure, e.g. <bitmap>filename</bitmap>
 void XmlResApp::FindFilesInXML(wxXmlNode *node, wxArrayString& flist, const wxString& inputPath)
 {
-    wxXmlNode *n = node;
-    if (n == NULL) return;
-    n = n->GetChildren();
-    
+    // Is 'node' XML node element?
+    if (node == NULL) return;
+    if (node->GetType() != wxXML_ELEMENT_NODE) return;
+
+    // Does 'node' contain filename information at all?
+    bool containsFilename = (
+        // Any bitmaps:
+        (node->GetName() == _T("bitmap")) ||
+        // URLs in wxHtmlWindow:
+        (node->GetName() == _T("url")) ||
+        // wxBitmapButton:
+        (node->GetParent() != NULL && 
+         node->GetParent()->GetPropVal(_T("class"), _T("")) == _T("wxBitmapButton") &&
+           (node->GetName() == _T("focus") || 
+            node->GetName() == _T("disabled") ||
+            node->GetName() == _T("selected")))
+        );
+
+    wxXmlNode *n = node->GetChildren();
     while (n)
     {
-        if ((node->GetType() == wxXML_ELEMENT_NODE) &&
-            // parent is an element, i.e. has subnodes...
+        if (containsFilename &&
             (n->GetType() == wxXML_TEXT_NODE || 
-            n->GetType() == wxXML_CDATA_SECTION_NODE) &&
-            // ...it is textnode...
-            ((node/*not n!*/->GetName() == "bitmap") ||
-             (node/*not n!*/->GetName() == "url")))
-            // ...and known to contain filename
+             n->GetType() == wxXML_CDATA_SECTION_NODE))
         {
             wxString fullname;
-            if (wxIsAbsolutePath(n->GetContent()) || inputPath == "") fullname = n->GetContent();
-            else fullname = inputPath + "/" + n->GetContent();
+            if (wxIsAbsolutePath(n->GetContent()) || inputPath.empty())
+                fullname = n->GetContent();
+            else
+                fullname = inputPath + _T("/") + n->GetContent();
 
             if (flagVerbose) 
-                wxPrintf("adding     " + fullname +  "...\n");
-            
+                wxPrintf(_T("adding     ") + fullname +  _T("...\n"));
+
             wxString filename = GetInternalFileName(n->GetContent(), flist);
             n->SetContent(filename);
 
-            flist.Add(filename);
+            if (flist.Index(filename) == wxNOT_FOUND)
+                flist.Add(filename);
 
             wxFileInputStream sin(fullname);
-            wxFileOutputStream sout(parOutputPath + "/" + filename);
+            wxFileOutputStream sout(parOutputPath + _T("/") + filename);
             sin.Read(sout); // copy the stream
         }
-        
+
         // subnodes:
         if (n->GetType() == wxXML_ELEMENT_NODE)
             FindFilesInXML(n, flist, inputPath);
-        
+
         n = n->GetNext();
     }
 }
@@ -296,7 +309,7 @@ void XmlResApp::FindFilesInXML(wxXmlNode *node, wxArrayString& flist, const wxSt
 void XmlResApp::DeleteTempFiles(const wxArrayString& flist)
 {
     for (size_t i = 0; i < flist.Count(); i++)
-        wxRemoveFile(parOutputPath + "/" + flist[i]);
+        wxRemoveFile(parOutputPath + _T("/") + flist[i]);
 }
 
 
@@ -306,17 +319,17 @@ void XmlResApp::MakePackageZIP(const wxArrayString& flist)
     wxString files;
     
     for (size_t i = 0; i < flist.Count(); i++)
-        files += flist[i] + " ";
+        files += flist[i] + _T(" ");
     files.RemoveLast();
     
     if (flagVerbose) 
-        wxPrintf("compressing " + parOutput +  "...\n");
+        wxPrintf(_T("compressing ") + parOutput +  _T("...\n"));
 
-    if (wxExecute("zip -9 -j " + wxString(flagVerbose ? "" : "-q ") + 
-                  parOutput + " " + files, TRUE) == -1)
+    if (wxExecute(_T("zip -9 -j ") + wxString(flagVerbose ? _T("") : _T("-q ")) + 
+                  parOutput + _T(" ") + files, TRUE) == -1)
     {
-        wxLogError("Unable to execute zip program. Make sure it is in the path.");
-        wxLogError("You can download it at http://www.cdrom.com/pub/infozip/");
+        wxLogError(_T("Unable to execute zip program. Make sure it is in the path."));
+        wxLogError(_T("You can download it at http://www.cdrom.com/pub/infozip/"));
         retCode = 1;
         return;
     }
@@ -333,9 +346,9 @@ static wxString FileToCppArray(wxString filename, int num)
     wxFFile file(filename, "rb");
     size_t lng = file.Length();
     
-    snum.Printf("%i", num);
-    output.Printf("static size_t xml_res_size_" + snum + " = %i;\n", lng);
-    output += "static unsigned char xml_res_file_" + snum + "[] = {\n";
+    snum.Printf(_T("%i"), num);
+    output.Printf(_T("static size_t xml_res_size_") + snum + _T(" = %i;\n"), lng);
+    output += _T("static unsigned char xml_res_file_") + snum + _T("[] = {\n");
     // we cannot use string literals because MSVC is dumb wannabe compiler
     // with arbitrary limitation to 2048 strings :(
     
@@ -344,12 +357,12 @@ static wxString FileToCppArray(wxString filename, int num)
     
     for (size_t i = 0, linelng = 0; i < lng; i++)
     {
-        tmp.Printf("%i", buffer[i]);
-        if (i != 0) output << ',';
+        tmp.Printf(_T("%i"), buffer[i]);
+        if (i != 0) output << _T(',');
         if (linelng > 70)
         {
             linelng = 0;
-            output << "\n";
+            output << _T("\n");
         }
         output << tmp;
         linelng += tmp.Length()+1;
@@ -357,7 +370,7 @@ static wxString FileToCppArray(wxString filename, int num)
     
     delete[] buffer;
     
-    output += "};\n\n";
+    output += _T("};\n\n");
     
     return output;
 }
@@ -369,61 +382,61 @@ void XmlResApp::MakePackageCPP(const wxArrayString& flist)
     size_t i;
 
     if (flagVerbose) 
-        wxPrintf("creating C++ source file " + parOutput +  "...\n");
+        wxPrintf(_T("creating C++ source file ") + parOutput +  _T("...\n"));
     
-    file.Write("\
-//\n\
-// This file was automatically generated by wxrc, do not edit by hand.\n\
-//\n\n\
-#include <wx/wxprec.h>\n\
-\n\
-#ifdef __BORLANDC__\n\
-    #pragma hdrstop\n\
-#endif\n\
-\n\
-#ifndef WX_PRECOMP\n\
-    #include <wx/wx.h>\n\
-#endif\n\
-\
-#include <wx/filesys.h>\n\
-#include <wx/fs_mem.h>\n\
-#include <wx/xrc/xmlres.h>\n\
-#include <wx/xrc/xh_all.h>\n\
-\n");
+    file.Write(_T("")
+_T("//\n")
+_T("// This file was automatically generated by wxrc, do not edit by hand.\n")
+_T("//\n\n")
+_T("#include <wx/wxprec.h>\n")
+_T("\n")
+_T("#ifdef __BORLANDC__\n")
+_T("    #pragma hdrstop\n")
+_T("#endif\n")
+_T("\n")
+_T("#ifndef WX_PRECOMP\n")
+_T("    #include <wx/wx.h>\n")
+_T("#endif\n")
+_T("")
+_T("#include <wx/filesys.h>\n")
+_T("#include <wx/fs_mem.h>\n")
+_T("#include <wx/xrc/xmlres.h>\n")
+_T("#include <wx/xrc/xh_all.h>\n")
+_T("\n"));
 
     for (i = 0; i < flist.Count(); i++)
         file.Write(FileToCppArray(flist[i], i));
     
-    file.Write("\
-void " + parFuncname + "()\n\
-{\n\
-\n\
-    // Check for memory FS. If not present, load the handler:\n\
-    {\n\
-        wxMemoryFSHandler::AddFile(\"XRC_resource/dummy_file\", \"dummy one\");\n\
-        wxFileSystem fsys;\n\
-        wxFSFile *f = fsys.OpenFile(\"memory:XRC_resource/dummy_file\");\n\
-        wxMemoryFSHandler::RemoveFile(\"XRC_resource/dummy_file\");\n\
-        if (f) delete f;\n\
-        else wxFileSystem::AddHandler(new wxMemoryFSHandler);\n\
-    }\n\
-\n");
+    file.Write(_T("")
+_T("void " + parFuncname + "()\n")
+_T("{\n")
+_T("\n")
+_T("    // Check for memory FS. If not present, load the handler:\n")
+_T("    {\n")
+_T("        wxMemoryFSHandler::AddFile(\"XRC_resource/dummy_file\", \"dummy one\");\n")
+_T("        wxFileSystem fsys;\n")
+_T("        wxFSFile *f = fsys.OpenFile(\"memory:XRC_resource/dummy_file\");\n")
+_T("        wxMemoryFSHandler::RemoveFile(\"XRC_resource/dummy_file\");\n")
+_T("        if (f) delete f;\n")
+_T("        else wxFileSystem::AddHandler(new wxMemoryFSHandler);\n")
+_T("    }\n")
+_T("\n"));
 
     for (i = 0; i < flist.Count(); i++)
     {
         wxString s;
-        s.Printf("    wxMemoryFSHandler::AddFile(\"XRC_resource/" + flist[i] +
-                 "\", xml_res_file_%i, xml_res_size_%i);\n", i, i);
+        s.Printf(_T("    wxMemoryFSHandler::AddFile(\"XRC_resource/") + flist[i] +
+                 _T("\", xml_res_file_%i, xml_res_size_%i);\n"), i, i);
         file.Write(s);
     }
 
     for (i = 0; i < parFiles.Count(); i++)
     {
-        file.Write("    wxXmlResource::Get()->Load(\"memory:XRC_resource/" + 
-                   GetInternalFileName(parFiles[i], flist) + "\");\n");
+        file.Write(_T("    wxXmlResource::Get()->Load(\"memory:XRC_resource/") + 
+                   GetInternalFileName(parFiles[i], flist) + _T("\");\n"));
     }
     
-    file.Write("}\n");
+    file.Write(_T("}\n"));
 
 
 }
@@ -436,8 +449,8 @@ static wxString FileToPythonArray(wxString filename, int num)
     wxFFile file(filename, "rb");
     size_t lng = file.Length();
     
-    snum.Printf("%i", num);
-    output = "    xml_res_file_" + snum + " = \"\"\"\\\n";
+    snum.Printf(_T("%i"), num);
+    output = _T("    xml_res_file_") + snum + _T(" = \"\"\"\\\n");
     
     unsigned char *buffer = new unsigned char[lng];
     file.Read(buffer, lng);
@@ -451,15 +464,15 @@ static wxString FileToPythonArray(wxString filename, int num)
             linelng = 0;
         }
         else if (c < 32 || c > 127)
-            tmp.Printf("\\x%02x", c);
+            tmp.Printf(_T("\\x%02x"), c);
         else if (c == '\\')
-            tmp = "\\\\";
+            tmp = _T("\\\\");
         else
             tmp = (wxChar)c;
         if (linelng > 70)
         {
             linelng = 0;
-            output << "\\\n";
+            output << _T("\\\n");
         }
         output << tmp;
         linelng += tmp.Length();
@@ -467,7 +480,7 @@ static wxString FileToPythonArray(wxString filename, int num)
     
     delete[] buffer;
     
-    output += "\"\"\"\n\n";
+    output += _T("\"\"\"\n\n");
     
     return output;
 }
@@ -479,18 +492,18 @@ void XmlResApp::MakePackagePython(const wxArrayString& flist)
     size_t i;
 
     if (flagVerbose) 
-        wxPrintf("creating Python source file " + parOutput +  "...\n");
+        wxPrintf(_T("creating Python source file ") + parOutput +  _T("...\n"));
     
     file.Write(
-       "#\n"
-       "# This file was automatically generated by wxrc, do not edit by hand.\n"
-       "#\n\n"
-       "from wxPython.wx import *\n"
-       "from wxPython.xrc import *\n\n"
+       _T("#\n")
+       _T("# This file was automatically generated by wxrc, do not edit by hand.\n")
+       _T("#\n\n")
+       _T("from wxPython.wx import *\n")
+       _T("from wxPython.xrc import *\n\n")
     );
 
     
-    file.Write("def " + parFuncname + "():\n");
+    file.Write(_T("def ") + parFuncname + _T("():\n"));
 
     for (i = 0; i < flist.Count(); i++)
         file.Write(FileToPythonArray(flist[i], i));
@@ -498,7 +511,7 @@ void XmlResApp::MakePackagePython(const wxArrayString& flist)
     for (i = 0; i < flist.Count(); i++)
     {
         wxString s;
-        s.Printf("    wxXmlResource_Get().LoadFromString(xml_res_file_%i)\n", i);
+        s.Printf(_T("    wxXmlResource_Get().LoadFromString(xml_res_file_%i)\n"), i);
         file.Write(s);
     }
 }
@@ -511,7 +524,7 @@ void XmlResApp::OutputGettext()
     
     wxFFile fout;
     if (!parOutput) fout.Attach(stdout);
-    else fout.Open(parOutput, _T("wt"));
+    else fout.Open(parOutput, "wt");
     
     for (size_t i = 0; i < str.GetCount(); i++)
         fout.Write(_T("_(\"") + str[i] + _T("\");\n"));
@@ -528,12 +541,12 @@ wxArrayString XmlResApp::FindStrings()
     for (size_t i = 0; i < parFiles.Count(); i++)
     {
         if (flagVerbose) 
-            wxPrintf("processing " + parFiles[i] +  "...\n");
+            wxPrintf(_T("processing ") + parFiles[i] +  _T("...\n"));
 
         wxXmlDocument doc;        
         if (!doc.Load(parFiles[i]))
         {
-            wxLogError("Error parsing file " + parFiles[i]);
+            wxLogError(_T("Error parsing file ") + parFiles[i]);
             retCode = 1;
             continue;
         }
@@ -567,7 +580,13 @@ static wxString ConvertText(const wxString& str)
                 case wxT('\n') : str2 << wxT("\\n"); break;
                 case wxT('\t') : str2 << wxT("\\t"); break;
                 case wxT('\r') : str2 << wxT("\\r"); break;
-                case wxT('\\') : str2 << wxT("\\\\"); break;
+                case wxT('\\') : if ((*(dt+1) != 'n') &&
+                                     (*(dt+1) != 't') &&
+                                     (*(dt+1) != 'r'))
+                                     str2 << wxT("\\\\");
+                                 else
+                                     str2 << wxT("\\");    
+                                 break;
                 case wxT('"')  : str2 << wxT("\\\""); break;
                 default        : str2 << *dt; break;
             }
diff --git a/contrib/utils/wxrcedit/Makefile.in b/contrib/utils/wxrcedit/Makefile.in
index 8f84122ee3..7fef156197 100644
--- a/contrib/utils/wxrcedit/Makefile.in
+++ b/contrib/utils/wxrcedit/Makefile.in
@@ -25,7 +25,7 @@ DATAFILES = df/break.df df/control.df df/menu_item.df df/notebookpage.df \
             df/wxStaticLine.df df/wxStaticText.df df/wxTextCtrl.df \
             df/wxToolBar.df df/wxTreeCtrl.df 
             
-APPEXTRALIBS=$(top_builddir)/lib/libwxxrc.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_xrc-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/contrib/utils/wxrcedit/editor.cpp b/contrib/utils/wxrcedit/editor.cpp
index affbc9e01b..a84cc5f336 100644
--- a/contrib/utils/wxrcedit/editor.cpp
+++ b/contrib/utils/wxrcedit/editor.cpp
@@ -494,8 +494,7 @@ void EditorFrame::OnTreeSel(wxTreeEvent& event)
         }
         RecursivelyExpand(m_TreeCtrl, event.GetItem());
 
-        PreviewFrame::Get()->Preview(node,m_Resource->GetRoot()->GetPropVal(
-                                      wxT("version"), wxT("0.0.0.0")));
+        PreviewFrame::Get()->Preview(node,m_Resource);
     }
 }
 
@@ -509,8 +508,7 @@ void EditorFrame::OnToolbar(wxCommandEvent& event)
             {
             XmlTreeData* dt = (XmlTreeData*)m_TreeCtrl->GetItemData(m_TreeCtrl->GetSelection());;
             if (dt != NULL && dt->Node != NULL)
-                PreviewFrame::Get()->Preview(dt->Node,m_Resource->GetRoot()->GetPropVal(
-                                      wxT("version"), wxT("0.0.0.0")));
+                PreviewFrame::Get()->Preview(dt->Node, m_Resource);
             break;
             }
 
diff --git a/contrib/utils/wxrcedit/preview.cpp b/contrib/utils/wxrcedit/preview.cpp
index ddf3be2b61..a7ffa2eacd 100644
--- a/contrib/utils/wxrcedit/preview.cpp
+++ b/contrib/utils/wxrcedit/preview.cpp
@@ -140,8 +140,10 @@ void PreviewFrame::MakeDirty()
 
 
 
-void PreviewFrame::Preview(wxXmlNode *node,const wxString &version)
+void PreviewFrame::Preview(wxXmlNode *node, wxXmlDocument *orig_doc)
 {
+   wxString version = orig_doc->GetRoot()->GetPropVal(wxT("version"), wxT("0.0.0.0"));
+
    while (node->GetParent()->GetParent() != NULL) node = node->GetParent();
 
    {
@@ -150,6 +152,7 @@ void PreviewFrame::Preview(wxXmlNode *node,const wxString &version)
        root->AddProperty(new wxXmlProperty(wxT("version"),version,NULL));
        doc.SetRoot(root);
        doc.GetRoot()->AddChild(new wxXmlNode(*node));
+       doc.SetFileEncoding(orig_doc->GetFileEncoding());
 
        if (XmlGetClass(doc.GetRoot()->GetChildren()) == _T("wxDialog")) 
            XmlSetClass(doc.GetRoot()->GetChildren(), _T("wxPanel"));   
@@ -168,7 +171,7 @@ void PreviewFrame::Preview(wxXmlNode *node,const wxString &version)
    }
 
    m_Node = node;
-   m_Version = version;
+   m_Doc = orig_doc;
 
    m_LogCtrl->Clear();
    wxLogTextCtrl mylog(m_LogCtrl);
@@ -237,5 +240,5 @@ END_EVENT_TABLE()
 
 void PreviewFrame::OnMouseEnter(wxMouseEvent& event)
 {
-    if (m_Dirty) Preview(m_Node,m_Version);
+    if (m_Dirty) Preview(m_Node,m_Doc);
 }
diff --git a/contrib/utils/wxrcedit/preview.h b/contrib/utils/wxrcedit/preview.h
index abacbc1578..50b690a9df 100644
--- a/contrib/utils/wxrcedit/preview.h
+++ b/contrib/utils/wxrcedit/preview.h
@@ -31,7 +31,7 @@ class PreviewFrame : public wxFrame
         PreviewFrame();
         ~PreviewFrame();
         
-        void Preview(wxXmlNode *node,const wxString &version);
+        void Preview(wxXmlNode *node,wxXmlDocument *doc);
         void MakeDirty();
                 // current node updated, needs preview refresh
                 // (will be done once mouse enters preview win)
@@ -47,7 +47,7 @@ class PreviewFrame : public wxFrame
     private:
         static PreviewFrame *ms_Instance;
         wxXmlNode *m_Node;
-        wxString m_Version;
+        wxXmlDocument *m_Doc;
         wxScrolledWindow *m_ScrollWin;
         wxTextCtrl *m_LogCtrl;
         wxSplitterWindow *m_Splitter;
diff --git a/contrib/utils/wxrcedit/wxRcEditVC.dsp b/contrib/utils/wxrcedit/wxRcEditVC.dsp
index eddeaab732..406acc175a 100644
--- a/contrib/utils/wxrcedit/wxRcEditVC.dsp
+++ b/contrib/utils/wxrcedit/wxRcEditVC.dsp
@@ -110,7 +110,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib wxxrcd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/wxrcedit.exe" /pdbtype:sept /libpath:"..\..\..\lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib wxxrcd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/wxrcedit.exe" /pdbtype:sept /libpath:"..\..\..\lib"
 
 !ELSEIF  "$(CFG)" == "wxRcEditVC - Win32 Release DLL"
 
@@ -137,7 +137,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233.lib wxxrc.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/wxrcedit.exe" /libpath:"..\..\..\lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib wxxrc.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/wxrcedit.exe" /libpath:"..\..\..\lib"
 
 !ENDIF 
 
diff --git a/debian/changelog b/debian/changelog
index f50761b210..e966ae0a1a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,41 @@
+wxwindows2.3 (2.3.4) unstable; urgency=low
+
+  * 2.4.0pre1 I guess.
+  * Added -ffunction-sections for broken hppa linker. Closes: #162948
+
+ -- Ron Lee <ron@debian.org>  Mon, 18 Nov 2002 18:54:21 -0800
+
+wxwindows2.3 (2.3.3.2) unstable; urgency=low
+
+  * The one more for luck release.
+  * Debian-wise, it fixes the problem with contrib lib name clashes;
+    code-wise, lots of little issues (and a couple of big 'uns) from
+    2.3.3 -- see the more regular change or cvs logs for details...
+  * Yes, it's still the unstable branch, yes the request for testing
+    to see if we can reasonably obsolete 2.2 in post-woody debian
+    is still current, and yes we're still working toward a stable
+    2.4 release as fast as we can.   Big thanks to everyone who's
+    been patient and/or active fixing things.
+
+ -- Ron Lee <ron@debian.org>  Thu, 26 Sep 2002 17:43:05 -0700
+
+wxwindows2.3 (2.3.3.1) unstable; urgency=low
+
+  * Ok, Robin says wxPython is good to go.
+  * Since wx2.2 has crashed and burned with the new releases of
+    python and png, Could package maintainers with packages that
+    depend on wx please recompile with this package and let me
+    know if they still need 2.2 in woody?   If not I'll have them
+    removed.  There should be a 2.4 release following very soon.
+    (hah, let's see how the date on that comment testifies!)
+  * Yes, I know wxpython is missing man pages for some of its
+    scripts.  File a bug if you must, but preferably, if you know
+    what they do, attach a patch containing one.  I don't use them
+    myself or could even do more than guess what they do today.
+    Sorry, C++.
+
+ -- Ron Lee <ron@debian.org>  Thu, 19 Sep 2002 16:25:12 -0700
+
 wxwindows2.3 (2.3.3) unstable; urgency=low
 
   * The "If it sucks, You whined for it!" release.
diff --git a/debian/control.in b/debian/control.in
index 3d02a9e5f0..218a57954b 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -116,7 +116,7 @@ Description: wxWindows Cross-platform C++ GUI toolkit (GTK+ development)
 Package: libwxgtk=V-python
 Architecture: any
 Section: interpreters
-Depends: python (>=2.1), python (<<2.2), ${shlibs:Depends}
+Depends: python (>=2.2), python (<<2.3), ${shlibs:Depends}
 Suggests: wxwin=V-doc, wxwin=V-examples
 Conflicts: libwxgtk=V-python-contrib, python-wxwin
 Replaces: libwxgtk=V-python-contrib, python-wxwin
diff --git a/debian/libwxgtk-contrib-dev.files b/debian/libwxgtk-contrib-dev.files
index c88f73cd31..d569a54361 100644
--- a/debian/libwxgtk-contrib-dev.files
+++ b/debian/libwxgtk-contrib-dev.files
@@ -1,12 +1,12 @@
 usr/include/wx/
-usr/lib/libcanvas.so
-usr/lib/libfl.so
-usr/lib/libgizmos.so
-usr/lib/libmmedia.so
-usr/lib/libogl.so
-usr/lib/libstc.so
-usr/lib/libwx_dcsvg.so
-usr/lib/libwx_net.so
-usr/lib/libwx_plot.so
-usr/lib/libwxxrc.so
+usr/lib/libwx_gtk_canvas-*.so
+usr/lib/libwx_gtk_dcsvg-*.so
+usr/lib/libwx_gtk_fl-*.so
+usr/lib/libwx_gtk_gizmos-*.so
+usr/lib/libwx_gtk_mmedia-*.so
+usr/lib/libwx_gtk_net-*.so
+usr/lib/libwx_gtk_ogl-*.so
+usr/lib/libwx_gtk_plot-*.so
+usr/lib/libwx_gtk_stc-*.so
+usr/lib/libwx_gtk_xrc-*.so
 
diff --git a/debian/rules b/debian/rules
index 03e582f943..a534bbee40 100755
--- a/debian/rules
+++ b/debian/rules
@@ -562,7 +562,8 @@ install-gtk-dev: build-gtk-static-stamp install-gtk-lib
 	dh_clean -k
 	dh_installdirs
 	dh_movefiles --sourcedir=debian/$(package_gtk_lib)
-	cp $(objdir_gtk_static)/lib/libwx_gtk*.a debian/$(package_gtk_dev)/usr/lib
+	cp $(objdir_gtk_static)/lib/libwx_gtk-*.a debian/$(package_gtk_dev)/usr/lib
+	cp $(objdir_gtk_static)/lib/libwx_gtk_gl-*.a debian/$(package_gtk_dev)/usr/lib
 
 install-gtk-dbg: DH_OPTIONS=-p$(package_gtk_dbg)
 install-gtk-dbg: build-gtk-debug-stamp
@@ -601,7 +602,8 @@ install-gtk-contrib-dev: build-contrib-static-stamp install-gtk-dev
 	dh_installdirs
 	dh_movefiles --sourcedir=debian/$(package_gtk_contrib)
 	cp $(objdir_gtk_static)/lib/*.a debian/$(package_gtk_contrib_dev)/usr/lib
-	rm -f debian/$(package_gtk_contrib_dev)/usr/lib/libwx_gtk*.a
+	rm -f debian/$(package_gtk_contrib_dev)/usr/lib/libwx_gtk-*.a
+	rm -f debian/$(package_gtk_contrib_dev)/usr/lib/libwx_gtk_gl-*.a
 
 install-gtk-py: DH_OPTIONS=-p$(package_gtk_py)
 install-gtk-py: build-gtk-py-stamp
diff --git a/demos/bombs/bombs.dsp b/demos/bombs/bombs.dsp
index 6982b81d40..26661ced69 100644
--- a/demos/bombs/bombs.dsp
+++ b/demos/bombs/bombs.dsp
@@ -45,17 +45,17 @@ RSC=rc.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MD /W4 /O2 /I "../../include" /I "../../lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "WXUSINGDLL" /YX /FD /I../../..\lib\mswdll /c
+# ADD CPP /nologo /MD /W4 /O2 /I "..\..\include" /I "..\..\lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "WXUSINGDLL" /YX /FD /I..\..\lib\mswdll /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "NDEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /d "NDEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\wxmsw233.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw234.lib /nologo /subsystem:windows /machine:I386
 
 !ELSEIF  "$(CFG)" == "bombs - Win32 Debug DLL"
 
@@ -71,17 +71,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MDd /W4 /Zi /Od /I "../../include" /I "../../lib/mswdlld" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /D "WXUSINGDLL" /YX /FD /I../../..\lib\mswdlld /c
+# ADD CPP /nologo /MDd /W4 /Zi /Od /I "..\..\include" /I "..\..\lib/mswdlld" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /D "WXUSINGDLL" /YX /FD /I..\..\lib\mswdlld /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "_DEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /d "_DEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\wxmsw233d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw234d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 
 !ELSEIF  "$(CFG)" == "bombs - Win32 Release"
 
@@ -97,17 +97,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MD /W4 /O2 /I "../../include" /I "../../lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /YX /FD /I../../..\lib\msw /c
+# ADD CPP /nologo /MD /W4 /O2 /I "..\..\include" /I "..\..\lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /YX /FD /I..\..\lib\msw /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "NDEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /d "NDEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\zlib.lib ../..\lib\regex.lib ../..\lib\png.lib ../..\lib\jpeg.lib ../..\lib\tiff.lib ../..\lib\wxmsw.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\zlib.lib ..\..\lib\regex.lib ..\..\lib\png.lib ..\..\lib\jpeg.lib ..\..\lib\tiff.lib ..\..\lib\wxmsw.lib /nologo /subsystem:windows /machine:I386
 
 !ELSEIF  "$(CFG)" == "bombs - Win32 Debug"
 
@@ -123,17 +123,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MDd /W4 /Zi /Od /I "../../include" /I "../../lib/mswd" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /I../../..\lib\mswd /c
+# ADD CPP /nologo /MDd /W4 /Zi /Od /I "..\..\include" /I "..\..\lib/mswd" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /I..\..\lib\mswd /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "_DEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /d "_DEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\zlibd.lib ../..\lib\regexd.lib ../..\lib\pngd.lib ../..\lib\jpegd.lib ../..\lib\tiffd.lib ../..\lib\wxmswd.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\zlibd.lib ..\..\lib\regexd.lib ..\..\lib\pngd.lib ..\..\lib\jpegd.lib ..\..\lib\tiffd.lib ..\..\lib\wxmswd.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 
 !ENDIF 
 
@@ -151,8 +151,7 @@ SOURCE=.\bombs.cpp
 
 SOURCE=.\bombs.rc
 # ADD BASE RSC /l 0x809
-# ADD RSC /l 0x809 /i "../../include"
-# SUBTRACT RSC /i "../../../include"
+# ADD RSC /l 0x809 /i "..\..\include"
 # End Source File
 # Begin Source File
 
diff --git a/demos/dbbrowse/dbbrowse.dsp b/demos/dbbrowse/dbbrowse.dsp
index af2e12d045..859bf92c6a 100644
--- a/demos/dbbrowse/dbbrowse.dsp
+++ b/demos/dbbrowse/dbbrowse.dsp
@@ -45,17 +45,17 @@ RSC=rc.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MD /W4 /O2 /I "../../include" /I "../../lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "WXUSINGDLL" /YX /FD /I../../..\lib\mswdll /c
+# ADD CPP /nologo /MD /W4 /O2 /I "..\..\include" /I "..\..\lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "WXUSINGDLL" /YX /FD /I..\..\lib\mswdll /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "NDEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /i "../../lib/mswdll" /d "NDEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /i "..\..\lib/mswdll" /d "NDEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\wxmsw233.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw234.lib /nologo /subsystem:windows /machine:I386
 
 !ELSEIF  "$(CFG)" == "dbbrowse - Win32 Debug DLL"
 
@@ -71,17 +71,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MDd /W4 /Zi /Od /I "../../include" /I "../../lib/mswdlld" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /D "WXUSINGDLL" /YX /FD /I../../..\lib\mswdlld /c
+# ADD CPP /nologo /MDd /W4 /Zi /Od /I "..\..\include" /I "..\..\lib/mswdlld" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /D "WXUSINGDLL" /YX /FD /I..\..\lib\mswdlld /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "_DEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /i "../../lib/mswdlld" /d "_DEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /i "..\..\lib/mswdlld" /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\wxmsw233d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw234d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 
 !ELSEIF  "$(CFG)" == "dbbrowse - Win32 Release"
 
@@ -97,17 +97,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MD /W4 /O2 /I "../../include" /I "../../lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /YX /FD /I../../..\lib\msw /c
+# ADD CPP /nologo /MD /W4 /O2 /I "..\..\include" /I "..\..\lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /YX /FD /I..\..\lib\msw /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "NDEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /i "../../lib/msw" /d "NDEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /i "..\..\lib/msw" /d "NDEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../../..\lib\zlib.lib ../../..\lib\regex.lib ../../..\lib\png.lib ../..\lib\jpeg.lib ../..\lib\tiff.lib ../..\lib\wxmsw.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\zlib.lib ..\..\lib\regex.lib ..\..\lib\png.lib ..\..\lib\jpeg.lib ..\..\lib\tiff.lib ..\..\lib\wxmsw.lib /nologo /subsystem:windows /machine:I386
 
 !ELSEIF  "$(CFG)" == "dbbrowse - Win32 Debug"
 
@@ -123,17 +123,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MDd /W4 /Zi /Od /I "../../include" /I "../../lib/mswd" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /I../../..\lib\mswd /c
+# ADD CPP /nologo /MDd /W4 /Zi /Od /I "..\..\include" /I "..\..\lib/mswd" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /I..\..\lib\mswd /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "_DEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /i "../../lib/mswd" /d "_DEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /i "..\..\lib/mswd" /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\zlibd.lib ../..\lib\regexd.lib ../..\lib\pngd.lib ../..\lib\jpegd.lib ../..\lib\tiffd.lib ../..\lib\wxmswd.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\zlibd.lib ..\..\lib\regexd.lib ..\..\lib\pngd.lib ..\..\lib\jpegd.lib ..\..\lib\tiffd.lib ..\..\lib\wxmswd.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 
 !ENDIF 
 
@@ -155,8 +155,7 @@ SOURCE=.\dbbrowse.cpp
 
 SOURCE=.\dbbrowse.rc
 # ADD BASE RSC /l 0x809
-# ADD RSC /l 0x809 /i "../../include"
-# SUBTRACT RSC /i "../../../include"
+# ADD RSC /l 0x809 /i "..\..\include"
 # End Source File
 # Begin Source File
 
diff --git a/demos/forty/forty.dsp b/demos/forty/forty.dsp
index 83bb08020d..d4713fa117 100644
--- a/demos/forty/forty.dsp
+++ b/demos/forty/forty.dsp
@@ -45,17 +45,17 @@ RSC=rc.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MD /W4 /O2 /I "../../include" /I "../../lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "WXUSINGDLL" /YX /FD /I../../..\lib\mswdll /c
+# ADD CPP /nologo /MD /W4 /O2 /I "../../include" /I "../../lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "WXUSINGDLL" /YX /FD /I..\..\lib\mswdll /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "NDEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /d "NDEBUG"
+# ADD BASE RSC /l 0x409 /i "../../include" /d "NDEBUG"
+# ADD RSC /l 0x409 /i "../../include" /d "NDEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\wxmsw233.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw234.lib /nologo /subsystem:windows /machine:I386
 
 !ELSEIF  "$(CFG)" == "forty - Win32 Debug DLL"
 
@@ -71,17 +71,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MDd /W4 /Zi /Od /I "../../include" /I "../../lib/mswdlld" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /D "WXUSINGDLL" /YX /FD /I../../..\lib\mswdlld /c
+# ADD CPP /nologo /MDd /W4 /Zi /Od /I "../../include" /I "../../lib/mswdlld" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /D "WXUSINGDLL" /YX /FD /I..\..\lib\mswdlld /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "_DEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /d "_DEBUG"
+# ADD BASE RSC /l 0x409 /i "../../include" /d "_DEBUG"
+# ADD RSC /l 0x409 /i "../../include" /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\wxmsw233d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw234d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 
 !ELSEIF  "$(CFG)" == "forty - Win32 Release"
 
@@ -97,17 +97,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MD /W4 /O2 /I "../../include" /I "../../lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /YX /FD /I../../..\lib\msw /c
+# ADD CPP /nologo /MD /W4 /O2 /I "../../include" /I "../../lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /YX /FD /I..\..\lib\msw /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "NDEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /d "NDEBUG"
+# ADD BASE RSC /l 0x409 /i "../../include" /d "NDEBUG"
+# ADD RSC /l 0x409 /i "../../include" /d "NDEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\zlib.lib ../..\lib\regex.lib ../..\lib\png.lib ../..\lib\jpeg.lib ../..\lib\tiff.lib ../..\lib\wxmsw.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\zlib.lib ..\..\lib\regex.lib ..\..\lib\png.lib ..\..\lib\jpeg.lib ..\..\lib\tiff.lib ..\..\lib\wxmsw.lib /nologo /subsystem:windows /machine:I386
 
 !ELSEIF  "$(CFG)" == "forty - Win32 Debug"
 
@@ -123,17 +123,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MDd /W4 /Zi /Od /I "../../include" /I "../../lib/mswd" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /I../../..\lib\mswd /c
+# ADD CPP /nologo /MDd /W4 /Zi /Od /I "../../include" /I "../../lib/mswd" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /I..\..\lib\mswd /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "_DEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /d "_DEBUG"
+# ADD BASE RSC /l 0x409 /i "../../include" /d "_DEBUG"
+# ADD RSC /l 0x409 /i "../../include" /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\zlibd.lib ../..\lib\regexd.lib ../..\lib\pngd.lib ../..\lib\jpegd.lib ../..\lib\tiffd.lib ../..\lib\wxmswd.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\zlibd.lib ..\..\lib\regexd.lib ..\..\lib\pngd.lib ..\..\lib\jpegd.lib ..\..\lib\tiffd.lib ..\..\lib\wxmswd.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 
 !ENDIF 
 
@@ -160,7 +160,6 @@ SOURCE=.\forty.cpp
 SOURCE=.\forty.rc
 # ADD BASE RSC /l 0x809
 # ADD RSC /l 0x809 /i "../../include"
-# SUBTRACT RSC /i "../../../include"
 # End Source File
 # Begin Source File
 
diff --git a/demos/fractal/fractal.dsp b/demos/fractal/fractal.dsp
index b2ab319f57..14057516dc 100644
--- a/demos/fractal/fractal.dsp
+++ b/demos/fractal/fractal.dsp
@@ -45,17 +45,17 @@ RSC=rc.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MD /W4 /O2 /I "../../include" /I "../../lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "WXUSINGDLL" /YX /FD /I../../..\lib\mswdll /c
+# ADD CPP /nologo /MD /W4 /O2 /I "..\..\include" /I "..\..\lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "WXUSINGDLL" /YX /FD /I..\..\lib\mswdll /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "NDEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /d "NDEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\wxmsw233.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw234.lib /nologo /subsystem:windows /machine:I386
 
 !ELSEIF  "$(CFG)" == "fractal - Win32 Debug DLL"
 
@@ -71,17 +71,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MDd /W4 /Zi /Od /I "../../include" /I "../../lib/mswdlld" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /D "WXUSINGDLL" /YX /FD /I../../..\lib\mswdlld /c
+# ADD CPP /nologo /MDd /W4 /Zi /Od /I "..\..\include" /I "..\..\lib/mswdlld" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /D "WXUSINGDLL" /YX /FD /I..\..\lib\mswdlld /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "_DEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /d "_DEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\wxmsw233d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw234d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 
 !ELSEIF  "$(CFG)" == "fractal - Win32 Release"
 
@@ -97,17 +97,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MD /W4 /O2 /I "../../include" /I "../../lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /YX /FD /I../../..\lib\msw /c
+# ADD CPP /nologo /MD /W4 /O2 /I "..\..\include" /I "..\..\lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /YX /FD /I..\..\lib\msw /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "NDEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /d "NDEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\zlib.lib ../..\lib\regex.lib ../..\lib\png.lib ../..\lib\jpeg.lib ../..\lib\tiff.lib ../..\lib\wxmsw.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\zlib.lib ..\..\lib\regex.lib ..\..\lib\png.lib ..\..\lib\jpeg.lib ..\..\lib\tiff.lib ..\..\lib\wxmsw.lib /nologo /subsystem:windows /machine:I386
 
 !ELSEIF  "$(CFG)" == "fractal - Win32 Debug"
 
@@ -123,17 +123,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MDd /W4 /Zi /Od /I "../../include" /I "../../lib/mswd" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /I../../..\lib\mswd /c
+# ADD CPP /nologo /MDd /W4 /Zi /Od /I "..\..\include" /I "..\..\lib/mswd" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /I..\..\lib\mswd /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "_DEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /d "_DEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\zlibd.lib ../..\lib\regexd.lib ../..\lib\pngd.lib ../..\lib\jpegd.lib ../..\lib\tiffd.lib ../..\lib\wxmswd.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\zlibd.lib ..\..\lib\regexd.lib ..\..\lib\pngd.lib ..\..\lib\jpegd.lib ..\..\lib\tiffd.lib ..\..\lib\wxmswd.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 
 !ENDIF 
 
@@ -151,8 +151,7 @@ SOURCE=.\fractal.cpp
 
 SOURCE=.\fractal.rc
 # ADD BASE RSC /l 0x809
-# ADD RSC /l 0x809 /i "../../include"
-# SUBTRACT RSC /i "../../../include"
+# ADD RSC /l 0x809 /i "..\..\include"
 # End Source File
 # End Target
 # End Project
diff --git a/demos/life/life.dsp b/demos/life/life.dsp
index e711056638..5a18ee0dd9 100644
--- a/demos/life/life.dsp
+++ b/demos/life/life.dsp
@@ -45,17 +45,17 @@ RSC=rc.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MD /W4 /O2 /I "../../include" /I "../../lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "WXUSINGDLL" /YX /FD /I../../..\lib\mswdll /c
+# ADD CPP /nologo /MD /W4 /O2 /I "..\..\include" /I "..\..\lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "WXUSINGDLL" /YX /FD /I..\..\lib\mswdll /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "NDEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /d "NDEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\wxmsw233.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw234.lib /nologo /subsystem:windows /machine:I386
 
 !ELSEIF  "$(CFG)" == "life - Win32 Debug DLL"
 
@@ -71,17 +71,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MDd /W4 /Zi /Od /I "../../include" /I "../../lib/mswdlld" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /D "WXUSINGDLL" /YX /FD /I../../..\lib\mswdlld /c
+# ADD CPP /nologo /MDd /W4 /Zi /Od /I "..\..\include" /I "..\..\lib/mswdlld" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /D "WXUSINGDLL" /YX /FD /I..\..\lib\mswdlld /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "_DEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /d "_DEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\wxmsw233d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw234d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 
 !ELSEIF  "$(CFG)" == "life - Win32 Release"
 
@@ -97,17 +97,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MD /W4 /O2 /I "../../include" /I "../../lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /YX /FD /I../../..\lib\msw /c
+# ADD CPP /nologo /MD /W4 /O2 /I "..\..\include" /I "..\..\lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /YX /FD /I..\..\lib\msw /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "NDEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /d "NDEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\zlib.lib ../..\lib\regex.lib ../..\lib\png.lib ../..\lib\jpeg.lib ../..\lib\tiff.lib ../..\lib\wxmsw.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\zlib.lib ..\..\lib\regex.lib ..\..\lib\png.lib ..\..\lib\jpeg.lib ..\..\lib\tiff.lib ..\..\lib\wxmsw.lib /nologo /subsystem:windows /machine:I386
 
 !ELSEIF  "$(CFG)" == "life - Win32 Debug"
 
@@ -123,17 +123,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MDd /W4 /Zi /Od /I "../../include" /I "../../lib/mswd" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /I../../..\lib\mswd /c
+# ADD CPP /nologo /MDd /W4 /Zi /Od /I "..\..\include" /I "..\..\lib/mswd" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /I..\..\lib\mswd /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "_DEBUG"
-# ADD RSC /l 0x409 /i "../../../include" /d "_DEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\zlibd.lib ../..\lib\regexd.lib ../..\lib\pngd.lib ../..\lib\jpegd.lib ../..\lib\tiffd.lib ../..\lib\wxmswd.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\zlibd.lib ..\..\lib\regexd.lib ..\..\lib\pngd.lib ..\..\lib\jpegd.lib ..\..\lib\tiffd.lib ..\..\lib\wxmswd.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 
 !ENDIF 
 
@@ -159,8 +159,7 @@ SOURCE=.\life.cpp
 
 SOURCE=.\life.rc
 # ADD BASE RSC /l 0x809
-# ADD RSC /l 0x809 /i "../../include"
-# SUBTRACT RSC /i "../../../include"
+# ADD RSC /l 0x809 /i "..\..\include"
 # End Source File
 # Begin Source File
 
diff --git a/demos/poem/poem.dsp b/demos/poem/poem.dsp
index e2a0182619..3e0c6e0cd9 100644
--- a/demos/poem/poem.dsp
+++ b/demos/poem/poem.dsp
@@ -45,17 +45,17 @@ RSC=rc.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MD /W4 /O2 /I "../../include" /I "../../lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "WXUSINGDLL" /YX /FD /I../../..\lib\mswdll /c
+# ADD CPP /nologo /MD /W4 /O2 /I "..\..\include" /I "..\..\lib/mswdll" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "WXUSINGDLL" /YX /FD /I..\..\lib\mswdll /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "NDEBUG"
-# ADD RSC /l 0x409 /i "../../include" /d "NDEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\wxmsw233.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw234.lib /nologo /subsystem:windows /machine:I386
 
 !ELSEIF  "$(CFG)" == "poem - Win32 Debug DLL"
 
@@ -71,17 +71,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MDd /W4 /Zi /Od /I "../../include" /I "../../lib/mswdlld" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /D "WXUSINGDLL" /YX /FD /I../../..\lib\mswdlld /c
+# ADD CPP /nologo /MDd /W4 /Zi /Od /I "..\..\include" /I "..\..\lib/mswdlld" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /D "WXUSINGDLL" /YX /FD /I..\..\lib\mswdlld /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "_DEBUG"
-# ADD RSC /l 0x409 /i "../../include" /d "_DEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\wxmsw233d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw234d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 
 !ELSEIF  "$(CFG)" == "poem - Win32 Release"
 
@@ -97,17 +97,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MD /W4 /O2 /I "../../include" /I "../../lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /YX /FD /I../../..\lib\msw /c
+# ADD CPP /nologo /MD /W4 /O2 /I "..\..\include" /I "..\..\lib/msw" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /YX /FD /I..\..\lib\msw /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "NDEBUG"
-# ADD RSC /l 0x409 /i "../../include" /d "NDEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /d "NDEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\zlib.lib ../..\lib\regex.lib ../..\lib\png.lib ../..\lib\jpeg.lib ../..\lib\tiff.lib ../..\lib\wxmsw.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\zlib.lib ..\..\lib\regex.lib ..\..\lib\png.lib ..\..\lib\jpeg.lib ..\..\lib\tiff.lib ..\..\lib\wxmsw.lib /nologo /subsystem:windows /machine:I386
 
 !ELSEIF  "$(CFG)" == "poem - Win32 Debug"
 
@@ -123,17 +123,17 @@ LINK32=link.exe
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W4 /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
-# ADD CPP /nologo /MDd /W4 /Zi /Od /I "../../include" /I "../../lib/mswd" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /I../../..\lib\mswd /c
+# ADD CPP /nologo /MDd /W4 /Zi /Od /I "..\..\include" /I "..\..\lib/mswd" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /I..\..\lib\mswd /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
-# ADD BASE RSC /l 0x409 /i "../../../include" /d "_DEBUG"
-# ADD RSC /l 0x409 /i "../../include" /d "_DEBUG"
+# ADD BASE RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
+# ADD RSC /l 0x409 /i "..\..\include" /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../..\lib\zlibd.lib ../..\lib\regexd.lib ../..\lib\pngd.lib ../..\lib\jpegd.lib ../..\lib\tiffd.lib ../..\lib\wxmswd.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\zlibd.lib ..\..\lib\regexd.lib ..\..\lib\pngd.lib ..\..\lib\jpegd.lib ..\..\lib\tiffd.lib ..\..\lib\wxmswd.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 
 !ENDIF 
 
diff --git a/distrib/msw/contrib.rsp b/distrib/msw/contrib.rsp
index b176cf90ff..7a05380ced 100644
--- a/distrib/msw/contrib.rsp
+++ b/distrib/msw/contrib.rsp
@@ -65,8 +65,8 @@ contrib/samples/gizmos/multicell/*.txt
 contrib/samples/gizmos/multicell/*.ico
 contrib/samples/gizmos/multicell/*.bmp
 contrib/samples/gizmos/multicell/*.rc
-contrib/samples/gizmos/multicell/MulticellVC.dsp
-contrib/samples/gizmos/multicell/MulticellVC.dsw
+contrib/samples/gizmos/multicell/multicell.dsp
+contrib/samples/gizmos/multicell/multicell.dsw
 
 contrib/samples/gizmos/splittree/*.cpp
 contrib/samples/gizmos/splittree/*.h
@@ -91,8 +91,8 @@ contrib/samples/gizmos/editlbox/*.txt
 contrib/samples/gizmos/editlbox/*.ico
 contrib/samples/gizmos/editlbox/*.bmp
 contrib/samples/gizmos/editlbox/*.rc
-contrib/samples/gizmos/editlbox/EditlboxVC.dsp
-contrib/samples/gizmos/editlbox/EditlboxVC.dsw
+contrib/samples/gizmos/editlbox/editlbox.dsp
+contrib/samples/gizmos/editlbox/editlbox.dsw
 
 contrib/samples/gizmos/dynsash/*.cpp
 contrib/samples/gizmos/dynsash/*.h
@@ -104,8 +104,8 @@ contrib/samples/gizmos/dynsash/*.txt
 contrib/samples/gizmos/dynsash/*.ico
 contrib/samples/gizmos/dynsash/*.bmp
 contrib/samples/gizmos/dynsash/*.rc
-contrib/samples/gizmos/dynsash/DynsashVC.dsp
-contrib/samples/gizmos/dynsash/SynsashVC.dsw
+contrib/samples/gizmos/dynsash/dynsash.dsp
+contrib/samples/gizmos/dynsash/dynsash.dsw
 
 contrib/samples/gizmos/dynsash_switch/*.cpp
 contrib/samples/gizmos/dynsash_switch/*.h
@@ -117,8 +117,8 @@ contrib/samples/gizmos/dynsash_switch/*.txt
 contrib/samples/gizmos/dynsash_switch/*.ico
 contrib/samples/gizmos/dynsash_switch/*.bmp
 contrib/samples/gizmos/dynsash_switch/*.rc
-contrib/samples/gizmos/dynsash_switch/DynsashSwitchVC.dsp
-contrib/samples/gizmos/dynsash_switch/DynsashSwitchVC.dsw
+contrib/samples/gizmos/dynsash_switch/dynsash_switch.dsp
+contrib/samples/gizmos/dynsash_switch/dynsash_switch.dsw
 
 contrib/samples/animate/*.cpp
 contrib/samples/animate/*.h
@@ -130,8 +130,8 @@ contrib/samples/animate/*.txt
 contrib/samples/animate/*.ico
 contrib/samples/animate/*.bmp
 contrib/samples/animate/*.rc
-contrib/samples/animate/AnimVC.dsp
-contrib/samples/animate/AnimVC.dsw
+contrib/samples/animate/AniTestVC.dsp
+contrib/samples/animate/AniTestVC.dsw
 
 contrib/samples/fl/makefile*
 contrib/samples/fl/bitmaps/*.bmp
diff --git a/distrib/msw/copybase.bat b/distrib/msw/copybase.bat
index 8512cde9d4..a34195b618 100755
--- a/distrib/msw/copybase.bat
+++ b/distrib/msw/copybase.bat
@@ -1,9 +1,10 @@
 @echo off
 
-rem VZ: this is quick and _very_ dirty
+rem VZ: this is quick and _very_ dirty, to be replaced by a script directly
+rem     parsing the files.txt and include/wx/version.h...
 
-set VER=2.3.3
-set DEST=s:\upload\wxBase-%VER%
+set VER=2.3.4
+set DEST=t:\wxBase-%VER%
 
 mkdir %DEST%
 mkdir %DEST%\include
@@ -20,26 +21,46 @@ mkdir %DEST%\src\msw
 mkdir %DEST%\src\regex
 mkdir %DEST%\src\unix
 mkdir %DEST%\src\zlib
+mkdir %DEST%\lib
 
 chdir %WXWIN%
 
 rem Copy the files to the root directory
 
+copy /q configure.in %DEST%
+copy /q configure %DEST%
+copy /q wxwin.m4 %DEST%
+copy /q aclocal.m4 %DEST%
+copy /q config.sub %DEST%
+copy /q config.guess %DEST%
+copy /q install-sh %DEST%
+copy /q mkinstalldirs %DEST%
+copy /q wx-config.in %DEST%
+copy /q setup.h.in %DEST%
+copy /q Makefile.in %DEST%
+copy /q wxBase.spec %DEST%
 copy /q docs\changes.txt %DEST%\CHANGES.txt
 copy /q docs\licence.txt %DEST%\LICENCE.txt
-copy /q docs\install.txt %DEST%\README.txt
-copy /q docs\symbols.txt %DEST%\SYMBOLS.txt
+copy /q docs\base\readme.txt %DEST%\README.txt
 
-rem Copy the project files
+rem Copy the project/make files
 
 copy /q src\wxBase.dsp %DEST%\src\wxBase.dsp
 copy /q src\wxBase.dsw %DEST%\src\wxBase.dsw
-copy /q include\wx\msw\setup.h %DEST%\include\wx\msw\setup.h
+copy /q include\wx\msw\setup0.h %DEST%\include\wx\msw\setup.h
+copy /q src\makeb32.env %DEST%\src\makeb32.env
+copy /q src\makelib.b32 %DEST%\src\makelib.b32
+copy /q src\makeprog.b32 %DEST%\src\makeprog.b32
+copy /q src\msw\makebase.b32 %DEST%\src\msw\makebase.b32
+copy /q src\*.in %DEST%\src
 
 rem Copy the sample
 
 copy /q samples\console\console.cpp %DEST%\samples\console\console.cpp
 copy /q samples\console\console.dsp %DEST%\samples\console\console.dsp
+copy /q samples\console\makefile.b32 %DEST%\samples\console\makefile.b32
+copy /q samples\console\makefile.unx %DEST%\samples\console
+copy /q samples\console\Makefile.in %DEST%\samples\console
 copy /q samples\console\testdata.fc %DEST%\samples\console\testdata.fc
 
 rem Copy regex and zlib files
@@ -51,13 +72,117 @@ rem The files not in src/files.lst
 copy /q src\msw\dummy.cpp %DEST%\src\msw\dummy.cpp
 copy /q src\msw\dummydll.cpp %DEST%\src\msw\dummydll.cpp
 
+copy /q src\common\execcmn.cpp %DEST%\src\common\execcmn.cpp
 copy /q src\common\unictabl.inc %DEST%\src\common\unictabl.inc
+copy /q src\common\unzip.h %DEST%\src\common\unzip.h
 
-rem The rest is generated from src/files.lst
+copy /q include\wx\msw\gsockmsw.h %DEST%\include\wx\msw\gsockmsw.h
+copy /q include\wx\msw\missing.h %DEST%\include\wx\msw\missing.h
+copy /q include\wx\msw\mslu.h %DEST%\include\wx\msw\mslu.h
+copy /q include\wx\msw\msvcrt.h %DEST%\include\wx\msw\msvcrt.h
+copy /q include\wx\msw\private.h %DEST%\include\wx\msw\private.h
+copy /q include\wx\msw\regconf.h %DEST%\include\wx\msw\regconf.h
+copy /q include\wx\msw\registry.h %DEST%\include\wx\msw\registry.h
+
+rem The rest is generated from src/files.lst by pasting the ALL_SOURCES and
+rem ALL_HEADERS here and doing
+rem
+rem .,$s@^\s*\(.*\)/\([^ ]*\)\( \\\)\?$@copy /q src\\\1\\\2 %DEST%\\src\\\1\\\2
+rem
+rem and
+rem
+rem .,$s@/@\\@|exe "normal "|.,$s@^\s*\([^ ]*\)\( \\\)\?$@copy /q include\\wx\\\1 %DEST%\\include\\wx\\\1
+rem 
+copy /q src\common\init.cpp %DEST%\src\common\init.cpp
+copy /q src\common\appcmn.cpp %DEST%\src\common\appcmn.cpp
+copy /q src\common\clntdata.cpp %DEST%\src\common\clntdata.cpp
+copy /q src\common\cmdline.cpp %DEST%\src\common\cmdline.cpp
+copy /q src\common\config.cpp %DEST%\src\common\config.cpp
+copy /q src\common\datetime.cpp %DEST%\src\common\datetime.cpp
+copy /q src\common\datstrm.cpp %DEST%\src\common\datstrm.cpp
+copy /q src\common\db.cpp %DEST%\src\common\db.cpp
+copy /q src\common\dbtable.cpp %DEST%\src\common\dbtable.cpp
+copy /q src\common\dircmn.cpp %DEST%\src\common\dircmn.cpp
+copy /q src\common\dynarray.cpp %DEST%\src\common\dynarray.cpp
+copy /q src\common\dynlib.cpp %DEST%\src\common\dynlib.cpp
+copy /q src\common\dynload.cpp %DEST%\src\common\dynload.cpp
+copy /q src\common\encconv.cpp %DEST%\src\common\encconv.cpp
+copy /q src\common\event.cpp %DEST%\src\common\event.cpp
+copy /q src\common\extended.c %DEST%\src\common\extended.c
+copy /q src\common\ffile.cpp %DEST%\src\common\ffile.cpp
+copy /q src\common\file.cpp %DEST%\src\common\file.cpp
+copy /q src\common\fileconf.cpp %DEST%\src\common\fileconf.cpp
+copy /q src\common\filefn.cpp %DEST%\src\common\filefn.cpp
+copy /q src\common\filename.cpp %DEST%\src\common\filename.cpp
+copy /q src\common\filesys.cpp %DEST%\src\common\filesys.cpp
+copy /q src\common\fontmap.cpp %DEST%\src\common\fontmap.cpp
+copy /q src\common\fs_inet.cpp %DEST%\src\common\fs_inet.cpp
+copy /q src\common\fs_mem.cpp %DEST%\src\common\fs_mem.cpp
+copy /q src\common\fs_zip.cpp %DEST%\src\common\fs_zip.cpp
+copy /q src\common\ftp.cpp %DEST%\src\common\ftp.cpp
+copy /q src\common\hash.cpp %DEST%\src\common\hash.cpp
+copy /q src\common\hashmap.cpp %DEST%\src\common\hashmap.cpp
+copy /q src\common\http.cpp %DEST%\src\common\http.cpp
+copy /q src\common\intl.cpp %DEST%\src\common\intl.cpp
+copy /q src\common\ipcbase.cpp %DEST%\src\common\ipcbase.cpp
+copy /q src\common\list.cpp %DEST%\src\common\list.cpp
+copy /q src\common\log.cpp %DEST%\src\common\log.cpp
+copy /q src\common\longlong.cpp %DEST%\src\common\longlong.cpp
+copy /q src\common\memory.cpp %DEST%\src\common\memory.cpp
+copy /q src\common\mimecmn.cpp %DEST%\src\common\mimecmn.cpp
+copy /q src\common\module.cpp %DEST%\src\common\module.cpp
+copy /q src\common\msgout.cpp %DEST%\src\common\msgout.cpp
+copy /q src\common\mstream.cpp %DEST%\src\common\mstream.cpp
+copy /q src\common\object.cpp %DEST%\src\common\object.cpp
+copy /q src\common\process.cpp %DEST%\src\common\process.cpp
+copy /q src\common\protocol.cpp %DEST%\src\common\protocol.cpp
+copy /q src\common\regex.cpp %DEST%\src\common\regex.cpp
+copy /q src\common\sckaddr.cpp %DEST%\src\common\sckaddr.cpp
+copy /q src\common\sckfile.cpp %DEST%\src\common\sckfile.cpp
+copy /q src\common\sckipc.cpp %DEST%\src\common\sckipc.cpp
+copy /q src\common\sckstrm.cpp %DEST%\src\common\sckstrm.cpp
+copy /q src\common\socket.cpp %DEST%\src\common\socket.cpp
+copy /q src\common\strconv.cpp %DEST%\src\common\strconv.cpp
+copy /q src\common\stream.cpp %DEST%\src\common\stream.cpp
+copy /q src\common\string.cpp %DEST%\src\common\string.cpp
+copy /q src\common\sysopt.cpp %DEST%\src\common\sysopt.cpp
+copy /q src\common\textbuf.cpp %DEST%\src\common\textbuf.cpp
+copy /q src\common\textfile.cpp %DEST%\src\common\textfile.cpp
+copy /q src\common\timercmn.cpp %DEST%\src\common\timercmn.cpp
+copy /q src\common\tokenzr.cpp %DEST%\src\common\tokenzr.cpp
+copy /q src\common\txtstrm.cpp %DEST%\src\common\txtstrm.cpp
+copy /q src\common\unzip.c %DEST%\src\common\unzip.c
+copy /q src\common\url.cpp %DEST%\src\common\url.cpp
+copy /q src\common\utilscmn.cpp %DEST%\src\common\utilscmn.cpp
+copy /q src\common\variant.cpp %DEST%\src\common\variant.cpp
+copy /q src\common\wfstream.cpp %DEST%\src\common\wfstream.cpp
+copy /q src\common\wxchar.cpp %DEST%\src\common\wxchar.cpp
+copy /q src\common\zipstrm.cpp %DEST%\src\common\zipstrm.cpp
+copy /q src\common\zstream.cpp %DEST%\src\common\zstream.cpp
+copy /q src\unix\dir.cpp %DEST%\src\unix\dir.cpp
+copy /q src\unix\gsocket.c %DEST%\src\unix\gsocket.c
+copy /q src\unix\mimetype.cpp %DEST%\src\unix\mimetype.cpp
+copy /q src\unix\snglinst.cpp %DEST%\src\unix\snglinst.cpp
+copy /q src\unix\threadpsx.cpp %DEST%\src\unix\threadpsx.cpp
+copy /q src\unix\utilsunx.cpp %DEST%\src\unix\utilsunx.cpp
+copy /q src\msw\dde.cpp %DEST%\src\msw\dde.cpp
+copy /q src\msw\dir.cpp %DEST%\src\msw\dir.cpp
+copy /q src\msw\gsocket.c %DEST%\src\msw\gsocket.c
+copy /q src\msw\gsockmsw.c %DEST%\src\msw\gsockmsw.c
+copy /q src\msw\main.cpp %DEST%\src\msw\main.cpp
+copy /q src\msw\mimetype.cpp %DEST%\src\msw\mimetype.cpp
+copy /q src\msw\regconf.cpp %DEST%\src\msw\regconf.cpp
+copy /q src\msw\registry.cpp %DEST%\src\msw\registry.cpp
+copy /q src\msw\snglinst.cpp %DEST%\src\msw\snglinst.cpp
+copy /q src\msw\thread.cpp %DEST%\src\msw\thread.cpp
+copy /q src\msw\utils.cpp %DEST%\src\msw\utils.cpp
+copy /q src\msw\utilsexc.cpp %DEST%\src\msw\utilsexc.cpp
+copy /q src\msw\volume.cpp %DEST%\src\msw\volume.cpp
 
 copy /q include\wx\app.h %DEST%\include\wx\app.h
 copy /q include\wx\arrimpl.cpp %DEST%\include\wx\arrimpl.cpp
 copy /q include\wx\buffer.h %DEST%\include\wx\buffer.h
+copy /q include\wx\build.h %DEST%\include\wx\build.h
 copy /q include\wx\chkconf.h %DEST%\include\wx\chkconf.h
 copy /q include\wx\clntdata.h %DEST%\include\wx\clntdata.h
 copy /q include\wx\cmdline.h %DEST%\include\wx\cmdline.h
@@ -75,8 +200,10 @@ copy /q include\wx\defs.h %DEST%\include\wx\defs.h
 copy /q include\wx\dir.h %DEST%\include\wx\dir.h
 copy /q include\wx\dynarray.h %DEST%\include\wx\dynarray.h
 copy /q include\wx\dynlib.h %DEST%\include\wx\dynlib.h
+copy /q include\wx\dynload.h %DEST%\include\wx\dynload.h
 copy /q include\wx\encconv.h %DEST%\include\wx\encconv.h
 copy /q include\wx\event.h %DEST%\include\wx\event.h
+copy /q include\wx\features.h %DEST%\include\wx\features.h
 copy /q include\wx\ffile.h %DEST%\include\wx\ffile.h
 copy /q include\wx\file.h %DEST%\include\wx\file.h
 copy /q include\wx\fileconf.h %DEST%\include\wx\fileconf.h
@@ -90,9 +217,13 @@ copy /q include\wx\fs_mem.h %DEST%\include\wx\fs_mem.h
 copy /q include\wx\fs_zip.h %DEST%\include\wx\fs_zip.h
 copy /q include\wx\gsocket.h %DEST%\include\wx\gsocket.h
 copy /q include\wx\hash.h %DEST%\include\wx\hash.h
+copy /q include\wx\hashmap.h %DEST%\include\wx\hashmap.h
 copy /q include\wx\intl.h %DEST%\include\wx\intl.h
 copy /q include\wx\ioswrap.h %DEST%\include\wx\ioswrap.h
+copy /q include\wx\ipc.h %DEST%\include\wx\ipc.h
 copy /q include\wx\ipcbase.h %DEST%\include\wx\ipcbase.h
+copy /q include\wx\isql.h %DEST%\include\wx\isql.h
+copy /q include\wx\isqlext.h %DEST%\include\wx\isqlext.h
 copy /q include\wx\list.h %DEST%\include\wx\list.h
 copy /q include\wx\listimpl.cpp %DEST%\include\wx\listimpl.cpp
 copy /q include\wx\log.h %DEST%\include\wx\log.h
@@ -102,16 +233,15 @@ copy /q include\wx\memory.h %DEST%\include\wx\memory.h
 copy /q include\wx\memtext.h %DEST%\include\wx\memtext.h
 copy /q include\wx\mimetype.h %DEST%\include\wx\mimetype.h
 copy /q include\wx\module.h %DEST%\include\wx\module.h
+copy /q include\wx\msgout.h %DEST%\include\wx\msgout.h
 copy /q include\wx\mstream.h %DEST%\include\wx\mstream.h
 copy /q include\wx\object.h %DEST%\include\wx\object.h
-copy /q include\wx\objstrm.h %DEST%\include\wx\objstrm.h
 copy /q include\wx\platform.h %DEST%\include\wx\platform.h
 copy /q include\wx\process.h %DEST%\include\wx\process.h
 copy /q include\wx\regex.h %DEST%\include\wx\regex.h
 copy /q include\wx\sckaddr.h %DEST%\include\wx\sckaddr.h
 copy /q include\wx\sckipc.h %DEST%\include\wx\sckipc.h
 copy /q include\wx\sckstrm.h %DEST%\include\wx\sckstrm.h
-copy /q include\wx\serbase.h %DEST%\include\wx\serbase.h
 copy /q include\wx\snglinst.h %DEST%\include\wx\snglinst.h
 copy /q include\wx\socket.h %DEST%\include\wx\socket.h
 copy /q include\wx\strconv.h %DEST%\include\wx\strconv.h
@@ -121,16 +251,17 @@ copy /q include\wx\sysopt.h %DEST%\include\wx\sysopt.h
 copy /q include\wx\textbuf.h %DEST%\include\wx\textbuf.h
 copy /q include\wx\textfile.h %DEST%\include\wx\textfile.h
 copy /q include\wx\thread.h %DEST%\include\wx\thread.h
+copy /q include\wx\thrimpl.cpp %DEST%\include\wx\thrimpl.cpp
 copy /q include\wx\time.h %DEST%\include\wx\time.h
 copy /q include\wx\timer.h %DEST%\include\wx\timer.h
 copy /q include\wx\tokenzr.h %DEST%\include\wx\tokenzr.h
 copy /q include\wx\txtstrm.h %DEST%\include\wx\txtstrm.h
-copy /q include\wx\unzip.h %DEST%\include\wx\unzip.h
 copy /q include\wx\url.h %DEST%\include\wx\url.h
 copy /q include\wx\utils.h %DEST%\include\wx\utils.h
 copy /q include\wx\variant.h %DEST%\include\wx\variant.h
 copy /q include\wx\vector.h %DEST%\include\wx\vector.h
 copy /q include\wx\version.h %DEST%\include\wx\version.h
+copy /q include\wx\volume.h %DEST%\include\wx\volume.h
 copy /q include\wx\wfstream.h %DEST%\include\wx\wfstream.h
 copy /q include\wx\wx.h %DEST%\include\wx\wx.h
 copy /q include\wx\wxchar.h %DEST%\include\wx\wxchar.h
@@ -140,92 +271,10 @@ copy /q include\wx\zstream.h %DEST%\include\wx\zstream.h
 copy /q include\wx\unix\gsockunx.h %DEST%\include\wx\unix\gsockunx.h
 copy /q include\wx\unix\mimetype.h %DEST%\include\wx\unix\mimetype.h
 copy /q include\wx\msw\dde.h %DEST%\include\wx\msw\dde.h
+copy /q include\wx\msw\gccpriv.h %DEST%\include\wx\msw\gccpriv.h
 copy /q include\wx\msw\mimetype.h %DEST%\include\wx\msw\mimetype.h
+copy /q include\wx\msw\winundef.h %DEST%\include\wx\msw\winundef.h
 copy /q include\wx\protocol\file.h %DEST%\include\wx\protocol\file.h
 copy /q include\wx\protocol\ftp.h %DEST%\include\wx\protocol\ftp.h
 copy /q include\wx\protocol\http.h %DEST%\include\wx\protocol\http.h
 copy /q include\wx\protocol\protocol.h %DEST%\include\wx\protocol\protocol.h
-
-copy /q src\common\init.cpp %DEST%\src\common\init.cpp
-copy /q src\common\appcmn.cpp %DEST%\src\common\appcmn.cpp
-copy /q src\common\clntdata.cpp %DEST%\src\common\clntdata.cpp
-copy /q src\common\cmdline.cpp %DEST%\src\common\cmdline.cpp
-copy /q src\common\config.cpp %DEST%\src\common\config.cpp
-copy /q src\common\datetime.cpp %DEST%\src\common\datetime.cpp
-copy /q src\common\datstrm.cpp %DEST%\src\common\datstrm.cpp
-copy /q src\common\db.cpp %DEST%\src\common\db.cpp
-copy /q src\common\dbtable.cpp %DEST%\src\common\dbtable.cpp
-copy /q src\common\dircmn.cpp %DEST%\src\common\dircmn.cpp
-copy /q src\common\dynarray.cpp %DEST%\src\common\dynarray.cpp
-copy /q src\common\dynlib.cpp %DEST%\src\common\dynlib.cpp
-copy /q src\common\encconv.cpp %DEST%\src\common\encconv.cpp
-copy /q src\common\event.cpp %DEST%\src\common\event.cpp
-copy /q src\common\extended.c %DEST%\src\common\extended.c
-copy /q src\common\ffile.cpp %DEST%\src\common\ffile.cpp
-copy /q src\common\file.cpp %DEST%\src\common\file.cpp
-copy /q src\common\fileconf.cpp %DEST%\src\common\fileconf.cpp
-copy /q src\common\filefn.cpp %DEST%\src\common\filefn.cpp
-copy /q src\common\filename.cpp %DEST%\src\common\filename.cpp
-copy /q src\common\filesys.cpp %DEST%\src\common\filesys.cpp
-copy /q src\common\fontmap.cpp %DEST%\src\common\fontmap.cpp
-copy /q src\common\fs_inet.cpp %DEST%\src\common\fs_inet.cpp
-copy /q src\common\fs_mem.cpp %DEST%\src\common\fs_mem.cpp
-copy /q src\common\fs_zip.cpp %DEST%\src\common\fs_zip.cpp
-copy /q src\common\ftp.cpp %DEST%\src\common\ftp.cpp
-copy /q src\common\hash.cpp %DEST%\src\common\hash.cpp
-copy /q src\common\http.cpp %DEST%\src\common\http.cpp
-copy /q src\common\intl.cpp %DEST%\src\common\intl.cpp
-copy /q src\common\ipcbase.cpp %DEST%\src\common\ipcbase.cpp
-copy /q src\common\list.cpp %DEST%\src\common\list.cpp
-copy /q src\common\log.cpp %DEST%\src\common\log.cpp
-copy /q src\common\longlong.cpp %DEST%\src\common\longlong.cpp
-copy /q src\common\memory.cpp %DEST%\src\common\memory.cpp
-copy /q src\common\mimecmn.cpp %DEST%\src\common\mimecmn.cpp
-copy /q src\common\module.cpp %DEST%\src\common\module.cpp
-copy /q src\common\mstream.cpp %DEST%\src\common\mstream.cpp
-copy /q src\common\object.cpp %DEST%\src\common\object.cpp
-copy /q src\common\objstrm.cpp %DEST%\src\common\objstrm.cpp
-copy /q src\common\process.cpp %DEST%\src\common\process.cpp
-copy /q src\common\protocol.cpp %DEST%\src\common\protocol.cpp
-copy /q src\common\regex.cpp %DEST%\src\common\regex.cpp
-copy /q src\common\sckaddr.cpp %DEST%\src\common\sckaddr.cpp
-copy /q src\common\sckfile.cpp %DEST%\src\common\sckfile.cpp
-copy /q src\common\sckipc.cpp %DEST%\src\common\sckipc.cpp
-copy /q src\common\sckstrm.cpp %DEST%\src\common\sckstrm.cpp
-copy /q src\common\serbase.cpp %DEST%\src\common\serbase.cpp
-copy /q src\common\socket.cpp %DEST%\src\common\socket.cpp
-copy /q src\common\strconv.cpp %DEST%\src\common\strconv.cpp
-copy /q src\common\stream.cpp %DEST%\src\common\stream.cpp
-copy /q src\common\string.cpp %DEST%\src\common\string.cpp
-copy /q src\common\sysopt.cpp %DEST%\src\common\sysopt.cpp
-copy /q src\common\textbuf.cpp %DEST%\src\common\textbuf.cpp
-copy /q src\common\textfile.cpp %DEST%\src\common\textfile.cpp
-copy /q src\common\timercmn.cpp %DEST%\src\common\timercmn.cpp
-copy /q src\common\tokenzr.cpp %DEST%\src\common\tokenzr.cpp
-copy /q src\common\txtstrm.cpp %DEST%\src\common\txtstrm.cpp
-copy /q src\common\unzip.c %DEST%\src\common\unzip.c
-copy /q src\common\url.cpp %DEST%\src\common\url.cpp
-copy /q src\common\utilscmn.cpp %DEST%\src\common\utilscmn.cpp
-copy /q src\common\variant.cpp %DEST%\src\common\variant.cpp
-copy /q src\common\wfstream.cpp %DEST%\src\common\wfstream.cpp
-copy /q src\common\wxchar.cpp %DEST%\src\common\wxchar.cpp
-copy /q src\common\zipstrm.cpp %DEST%\src\common\zipstrm.cpp
-copy /q src\common\zstream.cpp %DEST%\src\common\zstream.cpp
-copy /q src\unix\dir.cpp %DEST%\src\unix\dir.cpp
-copy /q src\unix\gsocket.c %DEST%\src\unix\gsocket.c
-copy /q src\unix\mimetype.cpp %DEST%\src\unix\mimetype.cpp
-copy /q src\unix\snglinst.cpp %DEST%\src\unix\snglinst.cpp
-copy /q src\unix\threadpsx.cpp %DEST%\src\unix\threadpsx.cpp
-copy /q src\unix\utilsunx.cpp %DEST%\src\unix\utilsunx.cpp
-copy /q src\msw\dde.cpp %DEST%\src\msw\dde.cpp
-copy /q src\msw\dir.cpp %DEST%\src\msw\dir.cpp
-copy /q src\msw\gsocket.c %DEST%\src\msw\gsocket.c
-copy /q src\msw\gsockmsw.c %DEST%\src\msw\gsockmsw.c
-copy /q src\msw\main.cpp %DEST%\src\msw\main.cpp
-copy /q src\msw\mimetype.cpp %DEST%\src\msw\mimetype.cpp
-copy /q src\msw\regconf.cpp %DEST%\src\msw\regconf.cpp
-copy /q src\msw\registry.cpp %DEST%\src\msw\registry.cpp
-copy /q src\msw\snglinst.cpp %DEST%\src\msw\snglinst.cpp
-copy /q src\msw\thread.cpp %DEST%\src\msw\thread.cpp
-copy /q src\msw\utils.cpp %DEST%\src\msw\utils.cpp
-copy /q src\msw\utilsexc.cpp %DEST%\src\msw\utilsexc.cpp
diff --git a/distrib/msw/filerepl.bat b/distrib/msw/filerepl.bat
index 815fc0b19b..450a30b609 100755
--- a/distrib/msw/filerepl.bat
+++ b/distrib/msw/filerepl.bat
@@ -10,6 +10,7 @@ set files=%3
 echo s/%keyword/%repl/g > script.tmp
 
 call %wxwin\distrib\msw\expdwild.bat %3 list.tmp
+Rem goto end
 
 set len=%@LINES[%files]
 do i = 0 to %len by 1
diff --git a/distrib/msw/generic.rsp b/distrib/msw/generic.rsp
index 7e61bcc925..027773fd44 100644
--- a/distrib/msw/generic.rsp
+++ b/distrib/msw/generic.rsp
@@ -8,11 +8,9 @@ config.sub
 configure.in
 setup.h.in
 install-sh
-missing
 mkinstalldirs
-modules
-template.mak
 wx-config.in
+version-script.in
 setup.h_vms
 
 distrib/msw/*.rsp
@@ -28,19 +26,18 @@ distrib/msw/tmake/makeall.bat
 distrib/msw/tmake/makeall.sh
 distrib/msw/tmake/wxwin.pro
 distrib/msw/tmake/tmake.conf
-distrib/gtk/*
 
 locale/*.po
-locale/*.mo
 locale/Makefile
 
 art/*.xpm
+art/*.ico
+art/*.png
 art/motif/*.xpm
 art/gtk/*.xpm
 
 docs/readme.txt
 docs/readme_vms.txt
-docs/install.txt
 docs/changes.txt
 docs/todo.txt
 docs/licence.txt
@@ -48,18 +45,10 @@ docs/licendoc.txt
 docs/preamble.txt
 docs/gpl.txt
 docs/lgpl.txt
-docs/symbols.txt
-docs/bugs.txt
 docs/index.htm
 docs/html/*.htm
 docs/html/*.gif
-docs/html/*.png
-docs/html/icons/*.gif
-docs/html/icons/*.png
-docs/html/icons/*.jpg
 docs/html/images/*.gif
-docs/html/images/*.png
-docs/html/images/*.jpg
 docs/tech/*.txt
 docs/tech/*.htm
 
@@ -152,19 +141,9 @@ lib/dummy
 
 tools/gettext/*.*
 
-bitmaps/xpm/16x16/*.*
-bitmaps/xpm/32x32/*.*
-bitmaps/xpm/64x64/*.*
-bitmaps/xpm/misc/*.*
-bitmaps/*.*
-bitmaps/bmp/16x15/*.*
-bitmaps/bmp/10x8/*.*
-bitmaps/ico/32x32/*.*
-
 misc/afm/*.afm
 misc/gs_afm/*.afm
 
-utils/*.txt
 utils/make*.*
 utils/configure
 utils/configure.in
diff --git a/distrib/msw/innobott.txt b/distrib/msw/innobott.txt
index 4fda9d8113..215c8ec6d3 100644
--- a/distrib/msw/innobott.txt
+++ b/distrib/msw/innobott.txt
@@ -32,10 +32,10 @@
 ; DO NOT DELETE THEM or you may be unable to reload the script
 
 ;[ScriptSetup]
-;VerNum=2.3.3
+;VerNum=2.3.4
 ;InnoVer=1.3
 ;AddVerTo=AppVerName
 ;SetupFilename=setup.exe
-;OutputFolder=C:\wx2dev\wxWindows\deliver
+;OutputFolder=C:\wx24\wxWindows\deliver
 ;CopyrightText=Copyright © The wxWindows Team
 
diff --git a/distrib/msw/innotop.txt b/distrib/msw/innotop.txt
index 7e5c76ba20..526c9de73f 100644
--- a/distrib/msw/innotop.txt
+++ b/distrib/msw/innotop.txt
@@ -4,13 +4,13 @@
 
 [Setup]
     MinVersion=4.0,4.0
-    AppName=wxWindows 2.3.3
+    AppName=wxWindows 2.3.4
     AppId=wxWindows
     CreateUninstallRegKey=1
     UsePreviousAppDir=0
     UsePreviousGroup=0
-    AppVersion=2.3.3
-    AppVerName=wxWindows 2.3.3
+    AppVersion=2.3.4
+    AppVerName=wxWindows 2.3.4
     AppCopyright=Copyright © The wxWindows Team
     BackColor=$FF0000
     BackColor2=$000000
@@ -19,7 +19,7 @@
     WindowStartMaximized=1
     WindowVisible=1
     WindowResizable=1
-    UninstallDisplayName=wxWindows 2.3.3
+    UninstallDisplayName=wxWindows 2.3.4
     UninstallLogMode=Append
     DirExistsWarning=auto
     UninstallFilesDir={app}
@@ -28,19 +28,19 @@
     CreateAppDir=1
     DisableProgramGroupPage=0
     AlwaysCreateUninstallIcon=1
-    UninstallIconName=Uninstall wxWindows 2.3.3
+    UninstallIconName=Uninstall wxWindows 2.3.4
     Uninstallable=1
-    DefaultDirName=c:\wxWindows_2.3.3
-    DefaultGroupName=wxWindows 2.3.3
-    LicenseFile=C:\wx2dev\wxWindows\docs\licence.txt
-    InfoBeforeFile=C:\wx2dev\wxWindows\docs\readme.txt
-    InfoAfterFile=C:\wx2dev\wxWindows\docs\msw\install.txt
+    DefaultDirName=c:\wxWindows_2.3.4
+    DefaultGroupName=wxWindows 2.3.4
+    LicenseFile=C:\wx24\wxWindows\docs\licence.txt
+    InfoBeforeFile=C:\wx24\wxWindows\docs\readme.txt
+    InfoAfterFile=C:\wx24\wxWindows\docs\msw\install.txt
     MessagesFile=compiler:default.isl
     DiskSpanning=1
     DiskSize=1457664
     DiskClusterSize=512
     ReserveBytes=0
     UseSetupLdr=1
-    SourceDir=c:\wx2dev\wxWindows\deliver\wxWindows-2.3.3
-    OutputDir=c:\wx2dev\wxWindows\deliver
+    SourceDir=c:\wx24\wxWindows\deliver\wxWindows-2.3.4
+    OutputDir=c:\wx24\wxWindows\deliver
 
diff --git a/distrib/msw/tardist b/distrib/msw/tardist
index 4093e66f17..2c8a21b2aa 100644
--- a/distrib/msw/tardist
+++ b/distrib/msw/tardist
@@ -29,347 +29,437 @@ expandlines()
     done
 }
 
+doinit()
+{
+  cd $WXSRC
+  echo Removing backup files...
+  rm *~ */*~ */*/*~ */*/*/*~ */*/*/*/*~
+
+  rm -f $WXDEST/wx*-${WXVER}*.tar.gz
+  # Copy setup files
+  cp $WXSRC/include/wx/os2/SETUP0.H $WXSRC/include/wx/os2/setup.h
+  cp $WXSRC/include/wx/msw/setup0.h $WXSRC/include/wx/msw/setup.h
+  cp $WXSRC/include/wx/univ/setup0.h $WXSRC/include/wx/univ/setup.h
+
+  # Copy readme and other files
+
+  cp $WXSRC/docs/readme.txt $WXDEST/readme-${WXVER}.txt
+  cp $WXSRC/docs/changes.txt $WXDEST/changes-${WXVER}.txt
+  cp $WXSRC/docs/mgl/readme.txt $WXDEST/readme-mgl-${WXVER}.txt
+  cp $WXSRC/docs/mgl/install.txt $WXDEST/install-mgl-${WXVER}.txt
+  cp $WXSRC/docs/x11/readme.txt $WXDEST/readme-x11-${WXVER}.txt
+  cp $WXSRC/docs/x11/readme-nanox.txt $WXDEST/readme-nanox-${WXVER}.txt
+  cp $WXSRC/docs/x11/install.txt $WXDEST/install-x11-${WXVER}.txt
+  cp $WXSRC/docs/motif/readme.txt $WXDEST/readme-motif-${WXVER}.txt
+  cp $WXSRC/docs/motif/install.txt $WXDEST/install-motif-${WXVER}.txt
+  cp $WXSRC/docs/msw/readme.txt $WXDEST/readme-msw-${WXVER}.txt
+  cp $WXSRC/docs/msw/install.txt $WXDEST/install-msw-${WXVER}.txt
+  cp $WXSRC/docs/gtk/readme.txt $WXDEST/readme-gtk-${WXVER}.txt
+  cp $WXSRC/docs/gtk/install.txt $WXDEST/install-gtk-${WXVER}.txt
+  cp $WXSRC/docs/mac/readme.txt $WXDEST/readme-mac-${WXVER}.txt
+  cp $WXSRC/docs/mac/install.txt $WXDEST/install-mac-${WXVER}.txt
+  cp $WXSRC/docs/os2/install.txt $WXDEST/install-os2-${WXVER}.txt
+}
 
-init=""
-if [ "$1" = "" ]
-then
-  echo Usage: tardist wx-dir output-dir version
-  exit
-fi
-
-if [ "$2" = "" ]
-then
-  echo Usage: tardist wx-dir output-dir version
-  exit
-fi
-
-if [ "$3" = "" ]
-then
-  echo Usage: tardist wx-dir output-dir version
-  exit
-fi
-
-WXVER=$3
-
-echo About to archive wxWindows:
-echo   From   $1
-echo   To     $2
-echo CTRL-C if this is not correct.
-read dummy
-
-cd $1
-
-echo Removing backup files...
-rm *~ */*~ */*/*~ */*/*/*~ */*/*/*/*~
-
-rm -f $2/wx*-${WXVER}*.tar.gz
-
-# Copy setup files
-cp $1/include/wx/os2/SETUP0.H $1/include/wx/os2/setup.h
-cp $1/include/wx/msw/setup0.h $1/include/wx/msw/setup.h
-
-echo Tarring...
-
-### Generic
-#cat $1/distrib/msw/generic.rsp $1/distrib/msw/contrib.rsp $1/distrib/msw/xml.rsp $1/distrib/msw/makefile.rsp > /tmp/wxgen_in.txt
-#expandlines /tmp/wxgen_in.txt /tmp/wxgen.txt
-#$TAR cf $2/wxWindows-${WXVER}-gen.tar -T /tmp/wxgen.txt
-#gzip $2/wxWindows-${WXVER}-gen.tar
-#mv $2/wxWindows-${WXVER}-gen.tar.gz $2/wxWindows-${WXVER}-gen.tgz
+dospinwxgtk()
+{
+echo Tarring wxGTK...
 
-### wxGTK
-cd $1
-cat $1/distrib/msw/generic.rsp $1/distrib/msw/contrib.rsp $1/distrib/msw/xml.rsp $1/distrib/msw/utils.rsp $1/distrib/msw/ogl.rsp $1/distrib/msw/tex2rtf.rsp $1/distrib/msw/dialoged.rsp $1/distrib/msw/gtk.rsp $1/distrib/msw/makefile.rsp $1/distrib/msw/tiff.rsp $1/distrib/msw/jpeg.rsp > /tmp/wxgtk_in.txt
+cd $WXSRC
+cat $WXSRC/distrib/msw/generic.rsp $WXSRC/distrib/msw/contrib.rsp $WXSRC/distrib/msw/xml.rsp $WXSRC/distrib/msw/utils.rsp $WXSRC/distrib/msw/ogl.rsp $WXSRC/distrib/msw/tex2rtf.rsp $WXSRC/distrib/msw/dialoged.rsp $WXSRC/distrib/msw/gtk.rsp $WXSRC/distrib/msw/makefile.rsp $WXSRC/distrib/msw/tiff.rsp $WXSRC/distrib/msw/jpeg.rsp > /tmp/wxgtk_in.txt
 expandlines /tmp/wxgtk_in.txt /tmp/wxgtk.txt
-$TAR cf $2/wxGTK-${WXVER}.tar -T /tmp/wxgtk.txt
+$TAR cf $WXDEST/wxGTK-${WXVER}.tar -T /tmp/wxgtk.txt
 
 echo Re-tarring wxGTK in a subdirectory...
-cd $2
-mkdir wxWindows-${WXVER}
-cd wxWindows-${WXVER}
+cd $WXDEST
+mkdir wxGTK-${WXVER}
+cd wxGTK-${WXVER}
 $TAR xf ../wxGTK-${WXVER}.tar
 cd ..
 rm -f wxGTK-${WXVER}.tar
-$TAR cf $2/wxGTK-${WXVER}.tar wxWindows-${WXVER}/*
-rm -f -r wxWindows-${WXVER}
-gzip $2/wxGTK-${WXVER}.tar
+$TAR cf $WXDEST/wxGTK-${WXVER}.tar wxGTK-${WXVER}/*
+rm -f -r wxGTK-${WXVER}
+gzip $WXDEST/wxGTK-${WXVER}.tar
+}
+
+dospinwxmotif()
+{
+echo Tarring wxMotif...
 
-### wxMotif
-cd $1
-cat $1/distrib/msw/generic.rsp $1/distrib/msw/motif.rsp $1/distrib/msw/contrib.rsp $1/distrib/msw/xml.rsp $1/distrib/msw/ogl.rsp $1/distrib/msw/makefile.rsp $1/distrib/msw/tiff.rsp $1/distrib/msw/jpeg.rsp > /tmp/wxmotif_in.txt
+cd $WXSRC
+cat $WXSRC/distrib/msw/generic.rsp $WXSRC/distrib/msw/motif.rsp $WXSRC/distrib/msw/contrib.rsp $WXSRC/distrib/msw/xml.rsp $WXSRC/distrib/msw/ogl.rsp $WXSRC/distrib/msw/makefile.rsp $WXSRC/distrib/msw/tiff.rsp $WXSRC/distrib/msw/jpeg.rsp > /tmp/wxmotif_in.txt
 expandlines /tmp/wxmotif_in.txt /tmp/wxmotif.txt
-$TAR cf $2/wxMotif-${WXVER}.tar -T /tmp/wxmotif.txt
+$TAR cf $WXDEST/wxMotif-${WXVER}.tar -T /tmp/wxmotif.txt
 
 echo Re-tarring wxMotif in a subdirectory...
-cd $2
-mkdir wxWindows-${WXVER}
-cd wxWindows-${WXVER}
+cd $WXDEST
+mkdir wxMotif-${WXVER}
+cd wxMotif-${WXVER}
 $TAR xf ../wxMotif-${WXVER}.tar
 cd ..
 rm -f wxMotif-${WXVER}.tar
-$TAR cf $2/wxMotif-${WXVER}.tar wxWindows-${WXVER}/*
-rm -f -r wxWindows-${WXVER}
-gzip $2/wxMotif-${WXVER}.tar
+$TAR cf $WXDEST/wxMotif-${WXVER}.tar wxMotif-${WXVER}/*
+rm -f -r wxMotif-${WXVER}
+gzip $WXDEST/wxMotif-${WXVER}.tar
+}
+
+dospinwxx11()
+{
+echo Tarring wxX11...
 
 ### wxX11: combined wxMotif and wxX11 distributions
-cd $1
-cat $1/distrib/msw/generic.rsp $1/distrib/msw/motif.rsp $1/distrib/msw/x11.rsp $1/distrib/msw/univ.rsp $1/distrib/msw/contrib.rsp $1/distrib/msw/utils.rsp $1/distrib/msw/xml.rsp $1/distrib/msw/dialoged.rsp $1/distrib/msw/ogl.rsp $1/distrib/msw/makefile.rsp $1/distrib/msw/tiff.rsp $1/distrib/msw/jpeg.rsp > /tmp/wxx11_in.txt
+cd $WXSRC
+cat $WXSRC/distrib/msw/generic.rsp $WXSRC/distrib/msw/motif.rsp $WXSRC/distrib/msw/x11.rsp $WXSRC/distrib/msw/univ.rsp $WXSRC/distrib/msw/contrib.rsp $WXSRC/distrib/msw/utils.rsp $WXSRC/distrib/msw/xml.rsp $WXSRC/distrib/msw/dialoged.rsp $WXSRC/distrib/msw/ogl.rsp $WXSRC/distrib/msw/makefile.rsp $WXSRC/distrib/msw/tiff.rsp $WXSRC/distrib/msw/jpeg.rsp > /tmp/wxx11_in.txt
 expandlines /tmp/wxx11_in.txt /tmp/wxx11.txt
-$TAR cf $2/wxX11-${WXVER}.tar -T /tmp/wxx11.txt
+$TAR cf $WXDEST/wxX11-${WXVER}.tar -T /tmp/wxx11.txt
 
 echo Re-tarring wxX11 in a subdirectory...
-cd $2
-mkdir wxWindows-${WXVER}
-cd wxWindows-${WXVER}
+cd $WXDEST
+mkdir wxX11-${WXVER}
+cd wxX11-${WXVER}
 $TAR xf ../wxX11-${WXVER}.tar
 cd ..
 rm -f wxX11-${WXVER}.tar
-$TAR cf $2/wxX11-${WXVER}.tar wxWindows-${WXVER}/*
-rm -f -r wxWindows-${WXVER}
-gzip $2/wxX11-${WXVER}.tar
+$TAR cf $WXDEST/wxX11-${WXVER}.tar wxX11-${WXVER}/*
+rm -f -r wxX11-${WXVER}
+gzip $WXDEST/wxX11-${WXVER}.tar
+}
 
 ### wxMSW
-# cd $1
-# cat $1/distrib/msw/msw.rsp $1/distrib/msw/vc.rsp $1/distrib/msw/bc.rsp $1/distrib/msw/contrib.rsp $1/distrib/msw/xml.rsp $1/distrib/msw/makefile.rsp $1/distrib/msw/tiff.rsp $1/distrib/msw/jpeg.rsp > /tmp/wxmsw_in.txt
+# cd $WXSRC
+# cat $WXSRC/distrib/msw/msw.rsp $WXSRC/distrib/msw/vc.rsp $WXSRC/distrib/msw/bc.rsp $WXSRC/distrib/msw/contrib.rsp $WXSRC/distrib/msw/xml.rsp $WXSRC/distrib/msw/makefile.rsp $WXSRC/distrib/msw/tiff.rsp $WXSRC/distrib/msw/jpeg.rsp > /tmp/wxmsw_in.txt
 # expandlines /tmp/wxmsw_in.txt /tmp/wxmsw.txt
-# $TAR cf $2/wxMSW-${WXVER}.tar -T /tmp/wxmsw.txt
-# gzip $2/wxMSW-${WXVER}.tar
+# $TAR cf $WXDEST/wxMSW-${WXVER}.tar -T /tmp/wxmsw.txt
+# gzip $WXDEST/wxMSW-${WXVER}.tar
 
+dospinwxmac()
+{
+echo Tarring wxMac...
 ### wxMac
-cp $1/include/wx/mac/setup0.h $1/include/wx/setup.h
-cd $1
-cat $1/distrib/msw/mac.rsp $1/distrib/msw/generic.rsp $1/distrib/msw/cw_mac.rsp $1/distrib/msw/tex2rtf.rsp $1/distrib/msw/utils.rsp $1/distrib/msw/dialoged.rsp $1/distrib/msw/ogl.rsp $1/distrib/msw/stc.rsp $1/distrib/msw/xml.rsp $1/distrib/msw/contrib.rsp $1/distrib/msw/makefile.rsp $1/distrib/msw/tiff.rsp $1/distrib/msw/jpeg.rsp > /tmp/wxmac_in.txt
+cp $WXSRC/include/wx/mac/setup0.h $WXSRC/include/wx/setup.h
+cd $WXSRC
+cat $WXSRC/distrib/msw/mac.rsp $WXSRC/distrib/msw/generic.rsp $WXSRC/distrib/msw/cw_mac.rsp $WXSRC/distrib/msw/tex2rtf.rsp $WXSRC/distrib/msw/utils.rsp $WXSRC/distrib/msw/dialoged.rsp $WXSRC/distrib/msw/ogl.rsp $WXSRC/distrib/msw/stc.rsp $WXSRC/distrib/msw/xml.rsp $WXSRC/distrib/msw/contrib.rsp $WXSRC/distrib/msw/makefile.rsp $WXSRC/distrib/msw/tiff.rsp $WXSRC/distrib/msw/jpeg.rsp > /tmp/wxmac_in.txt
 expandlines /tmp/wxmac_in.txt /tmp/wxmac.txt
-$TAR cf $2/wxMac-${WXVER}.tar -T /tmp/wxmac.txt
+$TAR cf $WXDEST/wxMac-${WXVER}.tar -T /tmp/wxmac.txt
 
-rm -f $1/include/wx/setup.h
+rm -f $WXSRC/include/wx/setup.h
 
 echo Re-tarring wxMac in a subdirectory...
-cd $2
-mkdir wxWindows-${WXVER}
-cd wxWindows-${WXVER}
+cd $WXDEST
+mkdir wxMac-${WXVER}
+cd wxMac-${WXVER}
 $TAR xf ../wxMac-${WXVER}.tar
 rm -f -r contrib/src/mmedia contrib/samples/mmedia
 cd ..
 rm -f wxMac-${WXVER}.tar
-$TAR cf $2/wxMac-${WXVER}.tar wxWindows-${WXVER}/*
-rm -f -r wxWindows-${WXVER}
-gzip $2/wxMac-${WXVER}.tar
+$TAR cf $WXDEST/wxMac-${WXVER}.tar wxMac-${WXVER}/*
+rm -f -r wxMac-${WXVER}
+gzip $WXDEST/wxMac-${WXVER}.tar
+}
 
 ### wxUniv: universal-specific files
-cd $1
-cat $1/distrib/msw/univ.rsp > /tmp/wxuniv_in.txt
-expandlines /tmp/wxuniv_in.txt /tmp/wxuniv.txt
-$TAR cf $2/wxWindows-${WXVER}-Univ.tar -T /tmp/wxuniv.txt
+#cd $WXSRC
+#cat $WXSRC/distrib/msw/univ.rsp > /tmp/wxuniv_in.txt
+#expandlines /tmp/wxuniv_in.txt /tmp/wxuniv.txt
+#$TAR cf $WXDEST/wxWindows-${WXVER}-Univ.tar -T /tmp/wxuniv.txt
+#
+#echo Re-tarring wxUniversal in a subdirectory...
+#cd $WXDEST
+#mkdir wxWindows-${WXVER}
+#cd wxWindows-${WXVER}
+#$TAR xf ../wxWindows-${WXVER}-Univ.tar
+#cd ..
+#rm -f wxWindows-${WXVER}-Univ.tar
+#$TAR cf $WXDEST/wxWindows-${WXVER}-Univ.tar wxWindows-${WXVER}/*
+#rm -f -r wxWindows-${WXVER}
+#gzip $WXDEST/wxWindows-${WXVER}-Univ.tar
 
-echo Re-tarring wxUniversal in a subdirectory...
-cd $2
-mkdir wxWindows-${WXVER}
-cd wxWindows-${WXVER}
-$TAR xf ../wxWindows-${WXVER}-Univ.tar
-cd ..
-rm -f wxWindows-${WXVER}-Univ.tar
-$TAR cf $2/wxWindows-${WXVER}-Univ.tar wxWindows-${WXVER}/*
-rm -f -r wxWindows-${WXVER}
-gzip $2/wxWindows-${WXVER}-Univ.tar
+dospinwxall()
+{
+echo Tarring wxAll...
 
 ### wxAll: all distributions in one giant archive
-cd $1
-cat $1/distrib/msw/generic.rsp $1/distrib/msw/msw.rsp $1/distrib/msw/vc.rsp $1/distrib/msw/cw.rsp $1/distrib/msw/cw_mac.rsp $1/distrib/msw/gtk.rsp $1/distrib/msw/x11.rsp $1/distrib/msw/motif.rsp $1/distrib/msw/mac.rsp $1/distrib/msw/os2.rsp $1/distrib/msw/x11.rsp $1/distrib/msw/univ.rsp $1/distrib/msw/mgl.rsp $1/distrib/msw/contrib.rsp $1/distrib/msw/utilmake.rsp $1/distrib/msw/utils.rsp $1/distrib/msw/mmedia.rsp $1/distrib/msw/tex2rtf.rsp $1/distrib/msw/stc.rsp $1/distrib/msw/xml.rsp $1/distrib/msw/dialoged.rsp $1/distrib/msw/ogl.rsp $1/distrib/msw/makefile.rsp $1/distrib/msw/tiff.rsp $1/distrib/msw/jpeg.rsp $1/distrib/msw/docsrc.rsp | uniq > /tmp/wxall_in.txt
+cd $WXSRC
+cat $WXSRC/distrib/msw/generic.rsp $WXSRC/distrib/msw/msw.rsp $WXSRC/distrib/msw/vc.rsp $WXSRC/distrib/msw/cw.rsp $WXSRC/distrib/msw/cw_mac.rsp $WXSRC/distrib/msw/gtk.rsp $WXSRC/distrib/msw/x11.rsp $WXSRC/distrib/msw/motif.rsp $WXSRC/distrib/msw/mac.rsp $WXSRC/distrib/msw/os2.rsp $WXSRC/distrib/msw/x11.rsp $WXSRC/distrib/msw/univ.rsp $WXSRC/distrib/msw/mgl.rsp $WXSRC/distrib/msw/contrib.rsp $WXSRC/distrib/msw/utilmake.rsp $WXSRC/distrib/msw/utils.rsp $WXSRC/distrib/msw/mmedia.rsp $WXSRC/distrib/msw/tex2rtf.rsp $WXSRC/distrib/msw/stc.rsp $WXSRC/distrib/msw/xml.rsp $WXSRC/distrib/msw/dialoged.rsp $WXSRC/distrib/msw/ogl.rsp $WXSRC/distrib/msw/makefile.rsp $WXSRC/distrib/msw/tiff.rsp $WXSRC/distrib/msw/jpeg.rsp $WXSRC/distrib/msw/docsrc.rsp | uniq > /tmp/wxall_in.txt
 expandlines /tmp/wxall_in.txt /tmp/wxall.txt
-$TAR cf $2/wxAll-${WXVER}.tar -T /tmp/wxall.txt
+$TAR cf $WXDEST/wxAll-${WXVER}.tar -T /tmp/wxall.txt
 
 echo Re-tarring wxAll in a subdirectory...
-cd $2
+cd $WXDEST
 mkdir wxWindows-${WXVER}
 
 # If we have the full set of VC++ project files,
 # get them
-if [ -f $2/extra/wxWindows-${WXVER}-VC.zip ]; then
-  unzip -o $2/extra/wxWindows-${WXVER}-VC.zip
+if [ -f $WXDEST/extra/wxWindows-${WXVER}-VC.zip ]; then
+  unzip -o $WXDEST/extra/wxWindows-${WXVER}-VC.zip
 else
-  echo "Warning - did not find $2/deliver/extra/wxWindows-${WXVER}-VC.zip"
+  echo "Warning - did not find $WXDEST/deliver/extra/wxWindows-${WXVER}-VC.zip"
 fi
 
 cd wxWindows-${WXVER}
 $TAR xf ../wxAll-${WXVER}.tar
 
 # Translate all .dsp and .dsw files to DOS format
-unix2dos --unix2dos `cat $1/distrib/msw/vc.rsp`
+unix2dos --unix2dos `cat $WXSRC/distrib/msw/vc.rsp`
 
 # Copy OS/2 specific configure files
-cp $1/distrib/os2/os2-specific.zip docs/os2
+cp $WXSRC/distrib/os2/os2-specific.zip docs/os2
 
 # Copy the OS/2 files which probably haven't been copied yet
 mkdir include/wx/os2
 mkdir src/os2
-cp $1/include/wx/os2/*.H include/wx/os2
-cp $1/src/os2/*.CPP $1/src/os2/*.I src/os2
+cp $WXSRC/include/wx/os2/*.H include/wx/os2
+cp $WXSRC/src/os2/*.CPP $WXSRC/src/os2/*.I src/os2
 
 # Make all OS/2 files lower case
-$1/distrib/msw/namedown include/wx/os2/*.H
-$1/distrib/msw/namedown src/os2/*.CPP src/os2/*.I
+$WXSRC/distrib/msw/namedown include/wx/os2/*.H
+$WXSRC/distrib/msw/namedown src/os2/*.CPP src/os2/*.I
 
 cd ..
 rm -f wxAll-${WXVER}.tar
-$TAR cf $2/wxAll-${WXVER}.tar wxWindows-${WXVER}/*
+$TAR cf $WXDEST/wxAll-${WXVER}.tar wxWindows-${WXVER}/*
 rm -f -r wxWindows-${WXVER}
-gzip $2/wxAll-${WXVER}.tar
+gzip $WXDEST/wxAll-${WXVER}.tar
+}
 
+dospinwxdocs()
+{
+echo Tarring wxDocs...
 
 ### Doc sources
-#cd $1
-#cat $1/distrib/msw/docsrc.rsp > /tmp/docsrc_in.txt
+#cd $WXSRC
+#cat $WXSRC/distrib/msw/docsrc.rsp > /tmp/docsrc_in.txt
 #expandlines /tmp/docsrc_in.txt /tmp/docsrc.txt
-#$TAR cf $2/wxWindows-${WXVER}-doc.tar -T /tmp/docsrc.txt
+#$TAR cf $WXDEST/wxWindows-${WXVER}-doc.tar -T /tmp/docsrc.txt
 #
 #echo Re-tarring docs in a subdirectory...
-#cd $2
+#cd $WXDEST
 #mkdir wxWindows-${WXVER}
 #cd wxWindows-${WXVER}
 #$TAR xf ../wxWindows-${WXVER}-doc.tar
 #cd ..
 #rm -f wxWindows-${WXVER}-doc.tar
-#$TAR cf $2/wxWindows-${WXVER}-doc.tar wxWindows-${WXVER}/*
+#$TAR cf $WXDEST/wxWindows-${WXVER}-doc.tar wxWindows-${WXVER}/*
 #rm -f -r wxWindows-${WXVER}
-#gzip $2/wxWindows-${WXVER}-doc.tar
+#gzip $WXDEST/wxWindows-${WXVER}-doc.tar
 
 ### HTML docs
-cd $1
-cat $1/distrib/msw/wx_html.rsp > /tmp/html_in.txt
+cd $WXSRC
+cat $WXSRC/distrib/msw/wx_html.rsp > /tmp/html_in.txt
 expandlines /tmp/html_in.txt /tmp/html.txt
-$TAR cf $2/wxWindows-${WXVER}-HTML.tar -T /tmp/html.txt
+$TAR cf $WXDEST/wxWindows-${WXVER}-HTML.tar -T /tmp/html.txt
 
 echo Re-tarring HTML in a subdirectory...
-cd $2
+cd $WXDEST
 mkdir wxWindows-${WXVER}
 cd wxWindows-${WXVER}
 $TAR xf ../wxWindows-${WXVER}-HTML.tar
 cd ..
 rm -f wxWindows-${WXVER}-HTML.tar
-$TAR cf $2/wxWindows-${WXVER}-HTML.tar wxWindows-${WXVER}/*
+$TAR cf $WXDEST/wxWindows-${WXVER}-HTML.tar wxWindows-${WXVER}/*
 rm -f -r wxWindows-${WXVER}
-gzip $2/wxWindows-${WXVER}-HTML.tar
+gzip $WXDEST/wxWindows-${WXVER}-HTML.tar
 
 ### HTB docs
-cd $1
-cat $1/distrib/msw/wx_htb.rsp > /tmp/htb_in.txt
+cd $WXSRC
+cat $WXSRC/distrib/msw/wx_htb.rsp > /tmp/htb_in.txt
 expandlines /tmp/htb_in.txt /tmp/htb.txt
-$TAR cf $2/wxWindows-${WXVER}-HTB.tar -T /tmp/htb.txt
+$TAR cf $WXDEST/wxWindows-${WXVER}-HTB.tar -T /tmp/htb.txt
 
 echo Re-tarring HTB in a subdirectory...
-cd $2
+cd $WXDEST
 mkdir wxWindows-${WXVER}
 cd wxWindows-${WXVER}
 $TAR xf ../wxWindows-${WXVER}-HTB.tar
 cd ..
 rm -f wxWindows-${WXVER}-HTB.tar
-$TAR cf $2/wxWindows-${WXVER}-HTB.tar wxWindows-${WXVER}/*
+$TAR cf $WXDEST/wxWindows-${WXVER}-HTB.tar wxWindows-${WXVER}/*
 rm -f -r wxWindows-${WXVER}
-gzip $2/wxWindows-${WXVER}-HTB.tar
+gzip $WXDEST/wxWindows-${WXVER}-HTB.tar
 
 ### PDF docs
-cd $1
-cat $1/distrib/msw/wx_pdf.rsp > /tmp/pdf_in.txt
+cd $WXSRC
+cat $WXSRC/distrib/msw/wx_pdf.rsp > /tmp/pdf_in.txt
 expandlines /tmp/pdf_in.txt /tmp/pdf.txt
-$TAR cf $2/wxWindows-${WXVER}-PDF.tar -T /tmp/pdf.txt
+$TAR cf $WXDEST/wxWindows-${WXVER}-PDF.tar -T /tmp/pdf.txt
 
 echo Re-tarring PDF in a subdirectory...
-cd $2
+cd $WXDEST
 mkdir wxWindows-${WXVER}
 cd wxWindows-${WXVER}
 $TAR xf ../wxWindows-${WXVER}-PDF.tar
 cd ..
 rm -f wxWindows-${WXVER}-PDF.tar
-$TAR cf $2/wxWindows-${WXVER}-PDF.tar wxWindows-${WXVER}/*
+$TAR cf $WXDEST/wxWindows-${WXVER}-PDF.tar wxWindows-${WXVER}/*
 rm -f -r wxWindows-${WXVER}
-gzip $2/wxWindows-${WXVER}-PDF.tar
+gzip $WXDEST/wxWindows-${WXVER}-PDF.tar
+}
 
 ### Tex2RTF
-#cd $1
-#cat $1/distrib/msw/tex2rtf.rsp > /tmp/tex2rtf_in.txt
+#cd $WXSRC
+#cat $WXSRC/distrib/msw/tex2rtf.rsp > /tmp/tex2rtf_in.txt
 #expandlines /tmp/tex2rtf_in.txt /tmp/tex2rtf.txt
-#$TAR cf $2/wxWindows-${WXVER}-tex2rtf.tar -T /tmp/tex2rtf.txt
+#$TAR cf $WXDEST/wxWindows-${WXVER}-tex2rtf.tar -T /tmp/tex2rtf.txt
 #
 #echo Re-tarring Tex2RTF in a subdirectory...
-#cd $2
+#cd $WXDEST
 #mkdir wxWindows-${WXVER}
 #cd wxWindows-${WXVER}
 #$TAR xf ../wxWindows-${WXVER}-tex2rtf.tar
 #cd ..
 #rm -f wxWindows-${WXVER}-tex2rtf.tar
-#$TAR cf $2/wxWindows-${WXVER}-tex2rtf.tar wxWindows-${WXVER}/*
+#$TAR cf $WXDEST/wxWindows-${WXVER}-tex2rtf.tar wxWindows-${WXVER}/*
 #rm -f -r wxWindows-${WXVER}
-#gzip $2/wxWindows-${WXVER}-tex2rtf.tar
+#gzip $WXDEST/wxWindows-${WXVER}-tex2rtf.tar
 
 ### OGL
-#cd $1
-#cat $1/distrib/msw/ogl.rsp > /tmp/ogl_in.txt
+#cd $WXSRC
+#cat $WXSRC/distrib/msw/ogl.rsp > /tmp/ogl_in.txt
 #expandlines /tmp/ogl_in.txt /tmp/ogl.txt
-#$TAR cf $2/wxWindows-${WXVER}-ogl.tar -T /tmp/ogl.txt
+#$TAR cf $WXDEST/wxWindows-${WXVER}-ogl.tar -T /tmp/ogl.txt
 #
 #echo Re-tarring OGL in a subdirectory...
-#cd $2
+#cd $WXDEST
 #mkdir wxWindows-${WXVER}
 #cd wxWindows-${WXVER}
 #$TAR xf ../wxWindows-${WXVER}-ogl.tar
 #cd ..
 #rm -f wxWindows-${WXVER}-ogl.tar
-#$TAR cf $2/wxWindows-${WXVER}-ogl.tar wxWindows-${WXVER}/*
+#$TAR cf $WXDEST/wxWindows-${WXVER}-ogl.tar wxWindows-${WXVER}/*
 #rm -f -r wxWindows-${WXVER}
-#gzip $2/wxWindows-${WXVER}-ogl.tar
+#gzip $WXDEST/wxWindows-${WXVER}-ogl.tar
 
 ### JPEG
-#cd $1
-#cat $1/distrib/msw/jpeg.rsp > /tmp/jpeg_in.txt
+#cd $WXSRC
+#cat $WXSRC/distrib/msw/jpeg.rsp > /tmp/jpeg_in.txt
 #expandlines /tmp/jpeg_in.txt /tmp/jpeg.txt
-#$TAR cf $2/wxWindows-${WXVER}-jpeg.tar -T /tmp/jpeg.txt
+#$TAR cf $WXDEST/wxWindows-${WXVER}-jpeg.tar -T /tmp/jpeg.txt
 #
 #echo Re-tarring jpeg in a subdirectory...
-#cd $2
+#cd $WXDEST
 #mkdir wxWindows-${WXVER}
 #cd wxWindows-${WXVER}
 #$TAR xf ../wxWindows-${WXVER}-jpeg.tar
 #cd ..
 #rm -f wxWindows-${WXVER}-jpeg.tar
-#$TAR cf $2/wxWindows-${WXVER}-jpeg.tar wxWindows-${WXVER}/*
+#$TAR cf $WXDEST/wxWindows-${WXVER}-jpeg.tar wxWindows-${WXVER}/*
 #rm -f -r wxWindows-${WXVER}
-#gzip $2/wxWindows-${WXVER}-jpeg.tar
+#gzip $WXDEST/wxWindows-${WXVER}-jpeg.tar
 
 ### TIFF
-#cd $1
-#cat $1/distrib/msw/tiff.rsp > /tmp/tiff_in.txt
+#cd $WXSRC
+#cat $WXSRC/distrib/msw/tiff.rsp > /tmp/tiff_in.txt
 #expandlines /tmp/tiff_in.txt /tmp/tiff.txt
-#$TAR cf $2/wxWindows-${WXVER}-tiff.tar -T /tmp/tiff.txt
+#$TAR cf $WXDEST/wxWindows-${WXVER}-tiff.tar -T /tmp/tiff.txt
 #
 #echo Re-tarring docs in a subdirectory...
-#cd $2
+#cd $WXDEST
 #mkdir wxWindows-${WXVER}
 #cd wxWindows-${WXVER}
 #$TAR xf ../wxWindows-${WXVER}-tiff.tar
 #cd ..
 #rm -f wxWindows-${WXVER}-tiff.tar
-#$TAR cf $2/wxWindows-${WXVER}-tiff.tar wxWindows-${WXVER}/*
+#$TAR cf $WXDEST/wxWindows-${WXVER}-tiff.tar wxWindows-${WXVER}/*
 #rm -f -r wxWindows-${WXVER}
-#gzip $2/wxWindows-${WXVER}-tiff.tar
-
-# Copy readme and other files
-cd $1
-cp $1/docs/readme.txt $2/readme-${WXVER}.txt
-cp $1/docs/changes.txt $2/changes-${WXVER}.txt
-cp $1/docs/mgl/readme.txt $2/readme-mgl-${WXVER}.txt
-cp $1/docs/mgl/install.txt $2/install-mgl-${WXVER}.txt
-cp $1/docs/x11/readme.txt $2/readme-x11-${WXVER}.txt
-cp $1/docs/x11/readme-nanox.txt $2/readme-nanox-${WXVER}.txt
-cp $1/docs/x11/install.txt $2/install-x11-${WXVER}.txt
-cp $1/docs/motif/readme.txt $2/readme-motif-${WXVER}.txt
-cp $1/docs/motif/install.txt $2/install-motif-${WXVER}.txt
-cp $1/docs/msw/readme.txt $2/readme-msw-${WXVER}.txt
-cp $1/docs/msw/install.txt $2/install-msw-${WXVER}.txt
-cp $1/docs/gtk/readme.txt $2/readme-gtk-${WXVER}.txt
-cp $1/docs/gtk/install.txt $2/install-gtk-${WXVER}.txt
-cp $1/docs/mac/readme.txt $2/readme-mac-${WXVER}.txt
-cp $1/docs/mac/install.txt $2/install-mac-${WXVER}.txt
-cp $1/docs/os2/install.txt $2/install-os2-${WXVER}.txt
-
-echo Done!
+#gzip $WXDEST/wxWindows-${WXVER}-tiff.tar
+
+init=""
+if [ "$1" = "" ]
+then
+  echo Usage: tardist wx-dir output-dir version
+  exit
+fi
+
+if [ "$2" = "" ]
+then
+  echo Usage: tardist wx-dir output-dir version
+  exit
+fi
+
+if [ "$3" = "" ]
+then
+  echo Usage: tardist wx-dir output-dir version
+  exit
+fi
+
+PROGNAME=$0
+WXSRC=$1
+WXDEST=$2
+WXVER=$3
+
+SPINWXALL=0
+SPINWXX11=0
+SPINWXGTK=0
+SPINWXMOTIF=0
+SPINWXMAC=0
+SPINWXDOCS=0
+SPINEVERYTHING=0
+
+usage()
+{
+    echo Usage: $PROGNAME "src-dir dest-dir version-number [ options ]"
+    echo Options:
+    echo "    --help         Display this help message"
+    echo "    --wxall        Spin wxAll"
+    echo "    --wxgtk        Spin wxGTK"
+    echo "    --wxmotif      Spin wxMotif"
+    echo "    --wxmac        Spin wxMac"
+    echo "    --wxx11        Spin wxX11"
+    echo "    --wxdocs       Spin docs"
+    echo "    --all          Spin EVERYTHING"
+
+    exit 1
+}
+
+# Process command line options.
+shift 3
+for i in "$@"; do
+    case "$i" in
+	--wxall) SPINWXALL=1 ;;
+	--wxx11) SPINWXX11=1 ;;
+	--wxgtk) SPINWXGTK=1 ;;
+	--wxmotif) SPINWXMOTIF=1 ;;
+	--wxmac) SPINWXMAC=1 ;;
+	--wxdocs) SPINWXDOCS=1 ;;
+	--all) SPINEVERYTHING=1 ;;
+	*)
+	    usage
+	    exit
+	    ;;
+    esac
+done
+
+echo About to archive wxWindows:
+echo   From    $WXSRC
+echo   To      $WXDEST
+echo   Version $WXVER
+echo CTRL-C if this is not correct.
+read dummy
+
+doinit
+
+if [ "$SPINWXX11" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
+  dospinwxx11
+fi
+
+if [ "$SPINWXGTK" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
+  dospinwxgtk
+fi
+
+if [ "$SPINWXMAC" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
+  dospinwxmac
+fi
+
+if [ "$SPINWXMOTIF" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
+  dospinwxmotif
+fi
+
+if [ "$SPINWXDOCS" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
+  dospinwxdocs
+fi
+
+if [ "$SPINWXALL" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
+  dospinwxall
+fi
+
+
diff --git a/distrib/msw/tarwxall b/distrib/msw/tarwxall
index a6cecb08d8..b38bddd888 100755
--- a/distrib/msw/tarwxall
+++ b/distrib/msw/tarwxall
@@ -103,6 +103,7 @@ $1/distrib/msw/namedown include/wx/os2/*.H
 $1/distrib/msw/namedown src/os2/*.CPP src/os2/*.I
 
 cd ..
+
 rm -f wxAll-${WXVER}.tar
 $TAR cf $2/wxAll-${WXVER}.tar wxWindows-${WXVER}/*
 rm -f -r wxWindows-${WXVER}
diff --git a/distrib/msw/tarwxmac b/distrib/msw/tarwxmac
index d4b27af39e..1e2b159d1c 100755
--- a/distrib/msw/tarwxmac
+++ b/distrib/msw/tarwxmac
@@ -63,7 +63,7 @@ echo Removing backup files...
 rm *~ */*~ */*/*~ */*/*/*~ */*/*/*/*~
 
 rm -f $2/wxMac-${WXVER}*.tar.gz
-rm -f -r $2/wxWindows-${WXVER}
+rm -f -r $2/wxMac-${WXVER}
 
 cp $1/include/wx/mac/setup0.h $1/include/wx/setup.h
 
@@ -78,8 +78,8 @@ rm -f $1/include/wx/setup.h
 
 echo Re-tarring in a subdirectory...
 cd $2
-mkdir wxWindows-${WXVER}
-cd wxWindows-${WXVER}
+mkdir wxMac-${WXVER}
+cd wxMac-${WXVER}
 $TAR xf ../wxMac-${WXVER}.tar
 
 # Remove mmedia
@@ -87,8 +87,8 @@ rm -f -r contrib/src/mmedia contrib/samples/mmedia
 cd ..
 rm -f wxMac-${WXVER}.tar
 
-$TAR cf $2/wxMac-${WXVER}.tar wxWindows-${WXVER}/*
-rm -f -r wxWindows-${WXVER}
+$TAR cf $2/wxMac-${WXVER}.tar wxMac-${WXVER}/*
+rm -f -r wxMac-${WXVER}
 gzip $2/wxMac-${WXVER}.tar
 
 # Copy readme and other files
diff --git a/distrib/msw/tarwxx11 b/distrib/msw/tarwxx11
new file mode 100755
index 0000000000..065f67c0d4
--- /dev/null
+++ b/distrib/msw/tarwxx11
@@ -0,0 +1,85 @@
+#!/bin/sh
+# tarwxall: make up a tar.gz distribution of wxX11
+# Supply a source (e.g. ~/wx2) and destination (e.g. ~/wx2/deliver)
+
+# We can't use e.g. this:
+# ls `cat $SRC/distrib/msw/makefile.rsp` zip -@ -u $DEST/wxWindows-$VERSION-gen.zip
+# because there's not enough space on the command line, plus we need to ignore the
+# blank lines.
+
+TAR=tar
+ARCH=`arch`
+if [ "$ARCH" = "ppc" ]; then
+  TAR=gnutar
+fi
+
+expandlines()
+{
+    toexpand=$1
+    outputfile=$2
+
+    rm -f $outputfile
+    touch $outputfile
+    for line in `cat $toexpand` ; do
+      if [ "$line" != "" ]; then
+        ls $line >> $outputfile
+      fi
+    uniq < $outputfile > /tmp/uniqtemp.txt
+    mv /tmp/uniqtemp.txt $outputfile
+    done
+}
+
+
+init=""
+if [ "$1" = "" ]
+then
+  echo Usage: tarwxx11 wx-dir output-dir version
+  exit
+fi
+
+if [ "$2" = "" ]
+then
+  echo Usage: tarwxx11 wx-dir output-dir version
+  exit
+fi
+
+if [ "$3" = "" ]
+then
+  echo Usage: tarwxx11 wx-dir output-dir version
+  exit
+fi
+
+WXVER=$3
+
+echo About to archive wxAll:
+echo   From   $1
+echo   To     $2
+echo CTRL-C if this is not correct.
+read dummy
+
+cd $1
+
+echo Removing backup files...
+rm *~ */*~ */*/*~ */*/*/*~ */*/*/*/*~
+
+rm -f $2/wxX11-${WXVER}*.tar.gz
+rm -f $2/wxX11-${WXVER}
+
+### wxX11: combined wxMotif and wxX11 distributions
+cd $1
+cat $1/distrib/msw/generic.rsp $1/distrib/msw/motif.rsp $1/distrib/msw/x11.rsp $1/distrib/msw/univ.rsp $1/distrib/msw/contrib.rsp $1/distrib/msw/utils.rsp $1/distrib/msw/xml.rsp $1/distrib/msw/dialoged.rsp $1/distrib/msw/ogl.rsp $1/distrib/msw/makefile.rsp $1/distrib/msw/tiff.rsp $1/distrib/msw/jpeg.rsp > /tmp/wxx11_in.txt
+expandlines /tmp/wxx11_in.txt /tmp/wxx11.txt
+$TAR cf $2/wxX11-${WXVER}.tar -T /tmp/wxx11.txt
+
+echo Re-tarring wxX11 in a subdirectory...
+cd $2
+mkdir wxX11-${WXVER}
+cd wxX11-${WXVER}
+$TAR xf ../wxX11-${WXVER}.tar
+cd ..
+rm -f wxX11-${WXVER}.tar
+$TAR cf $2/wxX11-${WXVER}.tar wxX11-${WXVER}/*
+rm -f -r wxX11-${WXVER}
+gzip $2/wxX11-${WXVER}.tar
+
+
diff --git a/distrib/msw/tmake/b32.t b/distrib/msw/tmake/b32.t
index 5f0f0f5605..4201fc3f53 100644
--- a/distrib/msw/tmake/b32.t
+++ b/distrib/msw/tmake/b32.t
@@ -13,12 +13,20 @@
     IncludeTemplate("filelist.t");
 
     #! now transform these hashes into $project tags
-    foreach $file (sort keys %wxGeneric) {
-        my $tag = "";
-        next if $wxGeneric{$file} =~ /\b(PS|G|16|U)\b/;
+    foreach $file (sort keys %wxUNIV) {
+        next if $wxUNIV{$file} =~ /\T\b/;
 
         $file =~ s/cp?p?$/obj/;
-        $project{"WXGENERICOBJS"} .= "\$(MSWDIR)\\" . $file . " "
+        $obj = "\$(UNIVDIR)\\" . $file . " ";
+        $project{"WXUNIVOBJS"} .= "\$(MSWDIR)\\" . $file . " "
+    }
+
+    foreach $file (sort keys %wxUNIV) {
+        next unless $wxUNIV{$file} =~ /\T\b/;
+
+        $file =~ s/cp?p?$/obj/;
+        $obj = "\$(UNIVTHEMEDIR)\\" . $file . " ";
+        $project{"WXUNIVTHEMEOBJS"} .= "\$(MSWDIR)\\" . $file . " "
     }
 
     foreach $file (sort keys %wxHTML) {
@@ -38,6 +46,7 @@
         $project{"WXCOBJS"} .= $obj if $isCFile;
     }
 
+#! MSW dir for native port
     foreach $file (sort keys %wxMSW) {
         next if $wxMSW{$file} =~ /\b16\b/;
 
@@ -61,6 +70,57 @@
         }
         $project{"WXCOBJS"} .= $obj if $isCFile;
     }
+
+#! Now do MSW dir for UNIV
+    foreach $file (sort keys %wxMSW) {
+        next unless $wxMSW{$file} =~ /\b(L|B)\b/;
+
+#!        if ( $file =~ /^automtn/ ) {
+#!            #! comment in old makefile.b32 seems to imply that this file can not
+#!            #! be compiled with Borland (leads to crash in oleauto sample)
+#!            No longer true, at least for BC++ 5.2
+#!            next;
+#!        }
+
+        $isCFile = $file =~ /\.c$/;
+
+        my $isOleObj = $wxMSW{$file} =~ /\bO\b/;
+        $file =~ s/cp?p?$/obj/;
+        my $obj = "\$(MSWDIR)\\" . $file . " ";
+
+        $project{"WXMSWUNIVOBJS"} .= $obj;
+        if ( $isOleObj ) {
+            #! remember that this file is in ole subdir
+            $project{"WXOLEUNIVOBJS"} .= $obj;
+        }
+        $project{"WXCUNIVOBJS"} .= $obj if $isCFile;
+    }
+
+#! Generic Dir for Native Port
+    foreach $file (sort keys %wxGeneric) {
+        my $tag = "";
+        next if $wxGeneric{$file} =~ /\b(PS|G|16|U)\b/;
+
+        $file =~ s/cp?p?$/obj/;
+        $project{"WXGENERICOBJS"} .= "\$(MSWDIR)\\" . $file . " "
+    }
+
+#! Generic Dir for UNIV Port
+    foreach $file (sort keys %wxGeneric) {
+	my $filereal = $file;
+	if ( $file =~ /^([^.]+)g.cpp$/ ) {
+	    $filereal = "$1.cpp";
+	}
+        $file =~ s/cp?p?$/obj/;
+        $filereal =~ s/cp?p?$/obj/;
+
+	next if $project{"WXMSWUNIVOBJS"} =~ /\b$filereal\b/ ||
+		$project{"WXUNIVOBJS"} =~ /\b$filereal\b/;
+
+        
+        $project{"WXGENERICUNIVOBJS"} .= "\$(MSWDIR)\\" . $file . " "
+    }
+
 #$}
 
 # This file was automatically generated by tmake
@@ -87,6 +147,7 @@
 WXDIR = $(WXWIN)
 THISDIR = $(WXDIR)\src\msw
 
+
 # Set all these to 1 if you want to build a dynamic library
 !if "$(DLL)" == "1"
 WXMAKINGDLL=1
@@ -128,31 +189,35 @@ GENDIR=..\generic
 COMMDIR=..\common
 HTMLDIR=..\html
 OLEDIR=.\ole
+UNIVDIR=..\univ
+UNIVTHEMEDIR=..\univ\themes
 MSWDIR=.
 
 DOCDIR = $(WXDIR)\docs
 
 GENERICOBJS= #$ ExpandList("WXGENERICOBJS");
 
-# Not needed:
-#  $(MSWDIR)\colrdlgg.obj \
-#  $(MSWDIR)\fontdlgg.obj \
-#  $(MSWDIR)\msgdlgg.obj \
-#  $(MSWDIR)\printps.obj \
-#  $(MSWDIR)\prntdlgg.obj \
-#  $(MSWDIR)\listctrl.obj \
-#  $(MSWDIR)\notebook.obj \
-#  $(MSWDIR)\treectrl.obj
+MSWOBJS = #$ ExpandList("WXMSWOBJS");
 
-COMMONOBJS = \
-        $(MSWDIR)\y_tab.obj \
-        #$ ExpandList("WXCOMMONOBJS");
+GENERICUNIVOBJS= #$ ExpandList("WXGENERICUNIVOBJS");
 
-MSWOBJS = #$ ExpandList("WXMSWOBJS");
+MSWUNIVOBJS = #$ ExpandList("WXMSWUNIVOBJS");
+
+UNIVOBJS = #$ ExpandList("WXUNIVOBJS");
+
+UNIVTHEMEOBJS = #$ ExpandList("WXUNIVTHEMEOBJS");
 
 HTMLOBJS = #$ ExpandList("WXHTMLOBJS");
 
+COMMONOBJS = \
+        $(MSWDIR)\y_tab.obj \
+        #$ ExpandList("WXCOMMONOBJS");
+
+!if "$(WXUSINGUNIV)" == "1"
+OBJECTS = $(COMMONOBJS) $(GENERICUNIVOBJS) $(MSWUNIVOBJS) $(HTMLOBJS) $(UNIVOBJS) $(UNIVTHEMEOBJS)
+!else
 OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) $(HTMLOBJS)
+!endif
 
 default:    wx
 
@@ -168,7 +233,7 @@ makesetuph:
 
 # Copy include\wx\msw\setup.h to the architecture-specific location
 makearchsetuph:
-     copy $(WXDIR)\include\wx\msw\setup.h $(ARCHSETUPH)
+     copy $(SETUPSRCDIR)\setup.h $(ARCHSETUPH)
      cd $(WXDIR)\src\msw
 
 $(ARCHINCDIR)\wx:
@@ -219,6 +284,27 @@ $(COMMDIR)\lex_yy.c:    $(COMMDIR)\doslex.c
 
 # $(OBJECTS):   $(WXDIR)\include\wx\setup.h
 
+!if "$(WXUSINGUNIV)" == "1"
+########################################################
+# MSW objects (compile Native or UNIV) - UNIV
+
+#${
+    $_ = $project{"WXMSWUNIVOBJS"};
+    my @objs = split;
+    foreach (@objs) {
+        $text .= $_ . ": ";
+        if ( $project{"WXOLEOBJS"} =~ /\Q$_/ ) { s/MSWDIR/OLEDIR/; }
+        $suffix = $project{"WXCUNIVOBJS"} =~ /\Q$_/ ? "c" : '$(SRCSUFF)';
+        s/obj$/$suffix/;
+        $text .= $_ . "\n\n";
+    }
+#$}
+
+
+!else
+########################################################
+# MSW objects (compile Native or UNIV) - Native
+
 #${
     $_ = $project{"WXMSWOBJS"};
     my @objs = split;
@@ -230,6 +316,38 @@ $(COMMDIR)\lex_yy.c:    $(COMMDIR)\doslex.c
         $text .= $_ . "\n\n";
     }
 #$}
+!endif
+
+!if "$(WXUSINGUNIV)" == "1"
+########################################################
+# UNIV objects 
+#${
+    $_ = $project{"WXUNIVOBJS"};
+    my @objs = split;
+    foreach (@objs) {
+        $text .= $_ . ": ";
+        s/MSWDIR/UNIVDIR/;
+        s/obj$/\$(SRCSUFF)/;
+        $text .= $_ . "\n\n";
+    }
+#$}
+
+
+########################################################
+# UNIV THEME objects 
+
+#${
+    $_ = $project{"WXUNIVTHEMEOBJS"};
+    my @objs = split;
+    foreach (@objs) {
+        $text .= $_ . ": ";
+        s/MSWDIR/UNIVTHEMEDIR/;
+        s/obj$/\$(SRCSUFF)/;
+        $text .= $_ . "\n\n";
+    }
+#$}
+
+!endif
 
 ########################################################
 # Common objects (always compiled)
@@ -246,9 +364,29 @@ $(COMMDIR)\lex_yy.c:    $(COMMDIR)\doslex.c
     }
 #$}
 
+!if "$(WXUSINGUNIV)" == "1"
+########################################################
+# Generic objects (not always compiled, depending on
+# whether platforms have native implementations)
+# Native
+
+
+#${
+    $_ = $project{"WXGENERICUNIVOBJS"};
+    my @objs = split;
+    foreach (@objs) {
+        $text .= $_ . ": ";
+        s/MSWDIR/GENDIR/;
+        s/obj$/\$(SRCSUFF)/;
+        $text .= $_ . "\n\n";
+    }
+#$}
+
+!else
 ########################################################
 # Generic objects (not always compiled, depending on
 # whether platforms have native implementations)
+# Native
 
 #${
     $_ = $project{"WXGENERICOBJS"};
@@ -260,6 +398,7 @@ $(COMMDIR)\lex_yy.c:    $(COMMDIR)\doslex.c
         $text .= $_ . "\n\n";
     }
 #$}
+!endif
 
 ########################################################
 # HTML objects (always compiled)
@@ -293,7 +432,7 @@ all_execs:
 
 png:    $(CFG)
         cd $(WXDIR)\src\png
-        ${MAKE} -f makefile.b32
+        ${MAKE} -f makefile.b32 FINAL=$(FINAL)
         cd $(WXDIR)\src\msw
 
 clean_png:
@@ -303,7 +442,7 @@ clean_png:
 
 zlib:   $(CFG)
         cd $(WXDIR)\src\zlib
-        ${MAKE} -f makefile.b32 lib
+        ${MAKE} -f makefile.b32 FINAL=$(FINAL) lib
         cd $(WXDIR)\src\msw
 
 clean_zlib:
@@ -313,7 +452,7 @@ clean_zlib:
 
 jpeg:    $(CFG)
         cd $(WXDIR)\src\jpeg
-        ${MAKE} -f makefile.b32
+        ${MAKE} -f makefile.b32 FINAL=$(FINAL)
         cd $(WXDIR)\src\msw
 
 clean_jpeg:
@@ -323,7 +462,7 @@ clean_jpeg:
 
 regex:   $(CFG)
         cd $(WXDIR)\src\regex
-        ${MAKE} -f makefile.b32 lib
+        ${MAKE} -f makefile.b32 FINAL=$(FINAL) lib
         cd $(WXDIR)\src\msw
 
 clean_regex:
@@ -333,7 +472,7 @@ clean_regex:
 
 tiff:   $(CFG)
         cd $(WXDIR)\src\tiff
-        ${MAKE} -f makefile.b32 lib
+        ${MAKE} -f makefile.b32 FINAL=$(FINAL) lib
         cd $(WXDIR)\src\msw
 
 clean_tiff:
@@ -360,7 +499,7 @@ $(CFG): makefile.b32
 
 -L$(BCCDIR)\lib;$(BCCDIR)\lib\psdk
 -D__WXWIN__
--D__WXMSW__
+-D$(PORT)
 -D__WINDOWS__
 -DWIN32
 $(OPT)
diff --git a/distrib/msw/tmake/b32base.t b/distrib/msw/tmake/b32base.t
index c80f5de01d..9366f8c9e9 100644
--- a/distrib/msw/tmake/b32base.t
+++ b/distrib/msw/tmake/b32base.t
@@ -85,8 +85,8 @@ wxUSE_GUI=0
 !include $(WXDIR)\src\makeb32.env
 
 PERIPH_LIBS=
-PERIPH_TARGET=zlib png jpeg tiff regex $(PERIPH_TARGET)
-PERIPH_CLEAN_TARGET=clean_zlib clean_png clean_jpeg clean_tiff clean_regex $(PERIPH_CLEAN_TARGET)
+PERIPH_TARGET=zlib regex $(PERIPH_TARGET)
+PERIPH_CLEAN_TARGET=clean_zlib clean_regex $(PERIPH_CLEAN_TARGET)
 
 !if "$(DLL)" == "0"
 DUMMY=dummy
@@ -106,7 +106,6 @@ MSWDIR=.
 DOCDIR = $(WXDIR)\docs
 
 COMMONOBJS = \
-    $(MSWDIR)\y_tab.obj \
     #$ ExpandList("WXCOMMONOBJS");
 
 MSWOBJS = #$ ExpandList("WXMSWOBJS");
@@ -164,19 +163,6 @@ dummydll.obj: dummydll.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\includ
 version.res:
     brc32 -r -i$(WXDIR)\include\ $(MSWDIR)\version.rc
 
-$(MSWDIR)\y_tab.obj:     $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c
-
-#        cl @<<
-# $(CPPFLAGS2) /c $*.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@
-# <<
-
-$(COMMDIR)\y_tab.c:     $(COMMDIR)\dosyacc.c
-        copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c
-
-$(COMMDIR)\lex_yy.c:    $(COMMDIR)\doslex.c
-    copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c
-
-
 #${
     $_ = $project{"WXMSWOBJS"};
     my @objs = split;
@@ -305,8 +291,6 @@ clean: $(PERIPH_CLEAN_TARGET)
     -erase *.pch
     -erase *.csm
     -erase "wx32.#??"
-    -erase ..\common\y_tab.c
-    -erase ..\common\lex_yy.c
 
 cleanall: clean
 
diff --git a/distrib/msw/tmake/b32univ.t b/distrib/msw/tmake/b32univ.t
deleted file mode 100644
index 65220c2419..0000000000
--- a/distrib/msw/tmake/b32univ.t
+++ /dev/null
@@ -1,722 +0,0 @@
-#!#############################################################################
-#! File:    b32.t
-#! Purpose: tmake template file from which makefile.b32 is generated by running
-#!          tmake -t b32 wxwin.pro
-#! Author:  Vadim Zeitlin
-#! Created: 14.07.99
-#! Version: $Id$
-#!#############################################################################
-
-#${
-    #! include the code which parses filelist.txt file and initializes
-    #! %wxCommon, %wxGeneric and %wxMSW hashes.
-    IncludeTemplate("filelist.t");
-
-    #! now transform these hashes into $project tags
-
-    foreach $file (sort keys %wxUNIV) {
-        next if $wxUNIV{$file} =~ /\T\b/;
-
-        $file =~ s/cp?p?$/obj/;
-        $obj = "\$(UNIVDIR)\\" . $file . " ";
-        $project{"WXUNIVOBJS"} .= "\$(MSWDIR)\\" . $file . " "
-    }
-
-    foreach $file (sort keys %wxUNIV) {
-        next unless $wxUNIV{$file} =~ /\T\b/;
-
-        $file =~ s/cp?p?$/obj/;
-        $obj = "\$(UNIVTHEMEDIR)\\" . $file . " ";
-        $project{"WXUNIVTHEMEOBJS"} .= "\$(MSWDIR)\\" . $file . " "
-    }
-
-    foreach $file (sort keys %wxHTML) {
-        next if $wxHTML{$file} =~ /\b16\b/;
-
-        $file =~ s/cp?p?$/obj/;
-        $project{"WXHTMLOBJS"} .= "\$(MSWDIR)\\" . $file . " "
-    }
-
-    foreach $file (sort keys %wxCommon) {
-        next if $wxCommon{$file} =~ /\b(16|U)\b/;
-
-        $isCFile = $file =~ /\.c$/;
-        $file =~ s/cp?p?$/obj/;
-        $obj = "\$(MSWDIR)\\" . $file . " ";
-        $project{"WXCOMMONOBJS"} .= $obj;
-        $project{"WXCOBJS"} .= $obj if $isCFile;
-    }
-
-    foreach $file (sort keys %wxMSW) {
-        next unless $wxMSW{$file} =~ /\b(L|B)\b/;
-
-#!        if ( $file =~ /^automtn/ ) {
-#!            #! comment in old makefile.b32 seems to imply that this file can not
-#!            #! be compiled with Borland (leads to crash in oleauto sample)
-#!            No longer true, at least for BC++ 5.2
-#!            next;
-#!        }
-
-        $isCFile = $file =~ /\.c$/;
-
-        my $isOleObj = $wxMSW{$file} =~ /\bO\b/;
-        $file =~ s/cp?p?$/obj/;
-        my $obj = "\$(MSWDIR)\\" . $file . " ";
-
-        $project{"WXMSWOBJS"} .= $obj;
-        if ( $isOleObj ) {
-            #! remember that this file is in ole subdir
-            $project{"WXOLEOBJS"} .= $obj;
-        }
-        $project{"WXCOBJS"} .= $obj if $isCFile;
-    }   
-
-    foreach $file (sort keys %wxGeneric) {
-	my $filereal = $file;
-	if ( $file =~ /^([^.]+)g.cpp$/ ) {
-	    $filereal = "$1.cpp";
-	}
-        $file =~ s/cp?p?$/obj/;
-        $filereal =~ s/cp?p?$/obj/;
-
-	next if $project{"WXMSWOBJS"} =~ /\b$filereal\b/ ||
-		$project{"WXUNIVOBJS"} =~ /\b$filereal\b/;
-
-        
-        $project{"WXGENERICOBJS"} .= "\$(MSWDIR)\\" . $file . " "
-    }
-
-#$}
-
-# This file was automatically generated by tmake 
-# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE B32.T!
-
-#
-# File:     makefile.b32
-# Author:   Julian Smart
-# Created:  1998
-# Updated:
-# Copyright:
-#
-# "%W% %G%"
-#
-# Makefile : Builds wxWindows library wx.lib for MS Windows,
-# and Borland C++ (32-bit).
-
-# BCCDIR now defined in ../makeb32.env
-
-!if "$(WXWIN)" == ""
-!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx
-!endif
-
-WXDIR = $(WXWIN)
-THISDIR = $(WXDIR)\src\msw
-
-# Set all these to 1 if you want to build a dynamic library
-!if "$(DLL)" == "1"
-WXMAKINGDLL=1
-WXBUILDDLL=1
-!endif
-
-!include $(WXDIR)\src\makeb32.env
-
-# Please set these according to the settings in wx_setup.h, so we can include
-# the appropriate libraries in wx.lib
-USE_CTL3D=0
-
-PERIPH_LIBS=
-PERIPH_TARGET=
-PERIPH_CLEAN_TARGET=
-
-!if "$(USE_CTL3D)" == "1"
-#Use WIN32S/WIN95 32 bit version ctl3d32.dll under win95 (Andre Beltman)
-PERIPH_LIBS=$(WXDIR)\lib\ctl3d32.lib $(PERIPH_LIBS)
-PERIPH_TARGET=ctl3d $(PERIPH_TARGET)
-PERIPH_CLEAN_TARGET=clean_ctl3d $(PERIPH_CLEAN_TARGET)
-!endif
-
-#PERIPH_LIBS=$(WXDIR)\lib\zlib.lib $(WXDIR)\lib\winpng.lib $(WXDIR)\lib\jpeg.lib $(WXDIR)\lib\tiff.lib $(PERIPH_LIBS)
-PERIPH_LIBS=
-PERIPH_TARGET=zlib png jpeg tiff regex $(PERIPH_TARGET)
-PERIPH_CLEAN_TARGET=clean_zlib clean_png clean_jpeg clean_tiff clean_regex $(PERIPH_CLEAN_TARGET)
-
-!if "$(DLL)" == "0"
-DUMMY=dummy
-!else
-DUMMY=dummydll
-LIBS= cw32mti import32 ole2w32 odbc32 zlib winpng jpeg tiff regex
-!endif
-
-LIBTARGET=$(WXLIB)
-
-GENDIR=..\generic
-COMMDIR=..\common
-HTMLDIR=..\html
-OLEDIR=.\ole
-UNIVDIR=..\univ
-UNIVTHEMEDIR=..\univ\themes
-MSWDIR=.
-
-DOCDIR = $(WXDIR)\docs
-
-GENERICOBJS= #$ ExpandList("WXGENERICOBJS");
-
-# Not needed:
-#  $(MSWDIR)\colrdlgg.obj \
-#  $(MSWDIR)\fontdlgg.obj \
-#  $(MSWDIR)\msgdlgg.obj \
-#  $(MSWDIR)\printps.obj \
-#  $(MSWDIR)\prntdlgg.obj \
-#  $(MSWDIR)\listctrl.obj \
-#  $(MSWDIR)\notebook.obj \
-#  $(MSWDIR)\treectrl.obj
-
-COMMONOBJS = \
-		$(MSWDIR)\y_tab.obj \
-		#$ ExpandList("WXCOMMONOBJS");
-
-MSWOBJS = #$ ExpandList("WXMSWOBJS");
-
-HTMLOBJS = #$ ExpandList("WXHTMLOBJS");
-
-UNIVOBJS = #$ ExpandList("WXUNIVOBJS");
-
-UNIVTHEMEOBJS = #$ ExpandList("WXUNIVTHEMEOBJS");
-
-OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) $(HTMLOBJS) $(UNIVOBJS) $(UNIVTHEMEOBJS)
-
-default:	wx
-
-wx:    $(ARCHINCDIR)\wx makesetuph makearchsetuph $(CFG) $(DUMMY).obj $(OBJECTS) $(PERIPH_TARGET) $(LIBTARGET)
-
-all:	wx
-
-# Copy the in-CVS setup0.h to setup.h if necessary
-makesetuph:
-     cd $(WXDIR)\include\wx\msw
-     if not exist setup.h copy setup0.h setup.h
-     cd $(WXDIR)\src\msw
-
-# Copy include\wx\univ\setup.h to the architecture-specific location
-makearchsetuph:
-     copy $(WXDIR)\include\wx\univ\setup.h $(ARCHSETUPH)
-     cd $(WXDIR)\src\msw
-
-$(ARCHINCDIR)\wx:
-    -mkdir $(ARCHINCDIR)
-    -mkdir $(ARCHINCDIR)\wx
-
-!if "$(DLL)" == "0"
-
-$(LIBTARGET): $(DUMMY).obj $(OBJECTS)
-        -erase $(LIBTARGET)
-	tlib "$(LIBTARGET)" /P1024 @&&!
-+$(OBJECTS:.obj =.obj +) +$(PERIPH_LIBS:.lib =.lib +)
-!
-
-!else
-
-$(LIBTARGET): $(DUMMY).obj $(OBJECTS)
-	-erase $(LIBTARGET)
-	-erase $(WXLIBDIR)\wx.dll
-        $(LINK) $(LINK_FLAGS) /L$(WXLIBDIR);$(BCCDIR)\lib;$(BCCDIR)\lib\psdk /v @&&!
-c0d32.obj $(OBJECTS)
-$(WXLIBDIR)\wx
-nul
-$(PERIPH_LIBS) $(LIBS)
-wxb32
-!
-	-erase $(WXLIBDIR)\version.res
-        brc32 -r -i$(WXDIR)\include\ $(MSWDIR)\version.rc
-        implib -c $(LIBTARGET) $(WXLIBDIR)\wx.dll
-
-!endif
-
-dummy.obj: dummy.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h
-dummydll.obj: dummydll.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h version.res
-
-$(MSWDIR)\y_tab.obj:     $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c
-
-#        cl @<<
-# $(CPPFLAGS2) /c $*.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@
-# <<
-
-$(COMMDIR)\y_tab.c:     $(COMMDIR)\dosyacc.c
-        copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c
-
-$(COMMDIR)\lex_yy.c:    $(COMMDIR)\doslex.c
-    copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c
-
-# $(OBJECTS):	$(WXDIR)\include\wx\setup.h
-
-#${
-    $_ = $project{"WXMSWOBJS"};
-    my @objs = split;
-    foreach (@objs) {
-        $text .= $_ . ": ";
-        if ( $project{"WXOLEOBJS"} =~ /\Q$_/ ) { s/MSWDIR/OLEDIR/; }
-        $suffix = $project{"WXCOBJS"} =~ /\Q$_/ ? "c" : '$(SRCSUFF)';
-        s/obj$/$suffix/;
-        $text .= $_ . "\n\n";
-    }
-#$}
-
-########################################################
-# Common objects (always compiled)
-
-#${
-    $_ = $project{"WXCOMMONOBJS"};
-    my @objs = split;
-    foreach (@objs) {
-        $text .= $_ . ": ";
-        $suffix = $project{"WXCOBJS"} =~ /\Q$_/ ? "c" : '$(SRCSUFF)';
-        s/MSWDIR/COMMDIR/;
-        s/obj$/$suffix/;
-        $text .= $_ . "\n\n";
-    }
-#$}
-
-########################################################
-# Generic objects (not always compiled, depending on
-# whether platforms have native implementations)
-
-#${
-    $_ = $project{"WXGENERICOBJS"};
-    my @objs = split;
-    foreach (@objs) {
-        $text .= $_ . ": ";
-        s/MSWDIR/GENDIR/;
-        s/obj$/\$(SRCSUFF)/;
-        $text .= $_ . "\n\n";
-    }
-#$}
-
-########################################################
-# HTML objects (always compiled)
-
-#${
-    $_ = $project{"WXHTMLOBJS"};
-    my @objs = split;
-    foreach (@objs) {
-        $text .= $_ . ": ";
-        s/MSWDIR/HTMLDIR/;
-        s/obj$/\$(SRCSUFF)/;
-        $text .= $_ . "\n\n";
-    }
-#$}
-
-
-########################################################
-# UNIV objects (always compiled)
-
-#${
-    $_ = $project{"WXUNIVOBJS"};
-    my @objs = split;
-    foreach (@objs) {
-        $text .= $_ . ": ";
-        s/MSWDIR/UNIVDIR/;
-        s/obj$/\$(SRCSUFF)/;
-        $text .= $_ . "\n\n";
-    }
-#$}
-
-
-########################################################
-# UNIV THEME objects (always compiled)
-
-#${
-    $_ = $project{"WXUNIVTHEMEOBJS"};
-    my @objs = split;
-    foreach (@objs) {
-        $text .= $_ . ": ";
-        s/MSWDIR/UNIVTHEMEDIR/;
-        s/obj$/\$(SRCSUFF)/;
-        $text .= $_ . "\n\n";
-    }
-#$}
-
-
-all_utils:
-    cd $(WXDIR)\utils
-    make -f makefile.b32
-    cd $(WXDIR)\src\msw
-
-all_samples:
-    cd $(WXDIR)\samples
-    make -f makefile.b32
-    cd $(WXDIR)\src\msw
-
-all_execs:
-    cd $(WXDIR)\utils
-    make -f makefile.b32 all_execs
-    cd $(WXDIR)\src\msw
-
-png:    $(CFG)
-        cd $(WXDIR)\src\png
-        make -f makefile.b32
-        cd $(WXDIR)\src\msw
-
-clean_png:
-        cd $(WXDIR)\src\png
-        make -f makefile.b32 clean
-        cd $(WXDIR)\src\msw
-
-zlib:   $(CFG)
-        cd $(WXDIR)\src\zlib
-        make -f makefile.b32 lib
-        cd $(WXDIR)\src\msw
-
-clean_zlib:
-        cd $(WXDIR)\src\zlib
-        make -f makefile.b32 clean
-        cd $(WXDIR)\src\msw
-
-jpeg:    $(CFG)
-        cd $(WXDIR)\src\jpeg
-        make -f makefile.b32
-        cd $(WXDIR)\src\msw
-
-clean_jpeg:
-        cd $(WXDIR)\src\jpeg
-        make -f makefile.b32 clean
-        cd $(WXDIR)\src\msw
-
-regex:   $(CFG)
-        cd $(WXDIR)\src\regex
-        make -f makefile.b32 lib
-        cd $(WXDIR)\src\msw
-
-clean_regex:
-        cd $(WXDIR)\src\regex
-        make -f makefile.b32 clean
-        cd $(WXDIR)\src\msw
-
-tiff:   $(CFG)
-        cd $(WXDIR)\src\tiff
-        make -f makefile.b32 lib
-        cd $(WXDIR)\src\msw
-
-clean_tiff:
-        cd $(WXDIR)\src\tiff
-        make -f makefile.b32 clean
-        cd $(WXDIR)\src\msw
-
-$(CFG): makeuniv.b32
-	copy &&!
--Hc
--H=$(WXDIR)\src\msw\wx32.csm
--3
--d
--a1 # byte alignment
--R-
--X
--w-par
--w-aus
--w-hid # virtual function A hides virtual function B
--tWM
-
--I$(ARCHINCDIR);$(WXINC);$(BCCDIR)\include;$(WXDIR)/src/generic;$(WXDIR)/src/png;$(WXDIR)/src/jpeg;$(WXDIR)/src/zlib;$(WXDIR)/src/tiff
--I$(WXDIR)\include\wx\msw\gnuwin32
-
--L$(BCCDIR)\lib;$(BCCDIR)\lib\psdk
--D__WXWIN__
--D__WINDOWS__
--D__WXUNIVERSAL__
--D_WIN32
--DWIN32
-$(OPT)
-$(DEBUG_FLAGS)
-$(WIN95FLAG)
-! $(CFG)
-
-clean: $(PERIPH_CLEAN_TARGET)
-    -erase $(LIBTARGET)
-    -erase $(WXLIBDIR)\wx.dll
-    -erase $(WXLIBDIR)\wx.tds
-    -erase $(WXLIBDIR)\wx.il?
-    -erase *.obj
-    -erase *.pch
-    -erase *.csm
-    -erase *.cfg
-    -erase "wx32.#??"
-    -erase ..\common\y_tab.c
-    -erase ..\common\lex_yy.c
-
-cleanall: clean
-
-
-# Making documents
-docs:   allhlp allhtml allpdfrtf
-alldocs: docs
-hlp:    wxhlp portinghlp
-wxhlp:  $(DOCDIR)/winhelp/wx.hlp
-prophlp: $(DOCDIR)/winhelp/prop.hlp
-refhlp: $(DOCDIR)/winhelp/techref.hlp
-rtf:    $(DOCDIR)/winhelp/wx.rtf
-proprtf: $(DOCDIR)/winhelp/prop.rtf
-pdfrtf:    $(DOCDIR)/pdf/wx.rtf
-proppdfrtf: $(DOCDIR)/pdf/prop.rtf
-refpdfrtf: $(DOCDIR)/pdf/techref.rtf
-html:	wxhtml portinghtml
-wxhtml:	$(DOCDIR)\html\wx\wx.htm
-htmlhelp: $(DOCDIR)\html\wx\wx.chm
-prophtml: $(DOCDIR)\html\proplist\prop.htm
-ps:     wxps referencps
-wxps:	$(WXDIR)\docs\ps\wx.ps
-propps:	$(WXDIR)\docs\ps\prop.ps
-referencps:	$(WXDIR)\docs\ps\referenc.ps
-
-portinghtml: $(DOCDIR)\html\porting\port.htm
-portingrtf: $(DOCDIR)/winhelp/porting.rtf
-portinghlp: $(DOCDIR)/winhelp/porting.hlp
-portingpdfrtf: $(DOCDIR)/pdf/porting.rtf
-portingps:	$(WXDIR)\docs\ps\porting.ps
-
-allhlp: wxhlp portinghlp prophlp
-        cd $(WXDIR)\utils\dialoged\src
-        make -f makefile.b32 hlp
-        cd $(THISDIR)
-
-#        cd $(WXDIR)\utils\wxhelp\src
-#        make -f makefile.b32 hlp
-#        cd $(WXDIR)\utils\tex2rtf\src
-#        make -f makefile.b32 hlp
-#        cd $(WXDIR)\utils\wxgraph\src
-#        make -f makefile.b32 hlp
-#        cd $(WXDIR)\utils\wxchart\src
-#        make -f makefile.b32 hlp
-#        cd $(WXDIR)\utils\wxtree\src
-#        make -f makefile.b32 hlp
-#        cd $(WXDIR)\utils\wxbuild\src
-#        make -f makefile.b32 hlp
-#        cd $(WXDIR)\utils\wxgrid\src
-#        make -f makefile.b32 hlp
-
-allhtml: wxhtml portinghtml prophtml
-        cd $(WXDIR)\utils\dialoged\src
-        make -f makefile.b32 html
-        cd $(THISDIR)
-
-#        make -f makefile.b32 html
-#        cd $(WXDIR)\utils\dialoged\src
-#        make -f makefile.b32 html
-#        cd $(WXDIR)\utils\hytext\src
-#        make -f makefile.b32 html
-#        cd $(WXDIR)\utils\wxhelp\src
-#        make -f makefile.b32 html
-#        cd $(WXDIR)\utils\tex2rtf\src
-#        make -f makefile.b32 html
-#        cd $(WXDIR)\utils\wxgraph\src
-#        make -f makefile.b32 html
-#        cd $(WXDIR)\utils\wxchart\src
-#        make -f makefile.b32 html
-#        cd $(WXDIR)\utils\wxtree\src
-#        make -f makefile.b32 html
-
-allps: wxps referencps portingps propps
-        cd $(WXDIR)\utils\dialoged\src
-        make -f makefile.b32 ps
-        cd $(THISDIR)
-
-allpdfrtf: pdfrtf portingpdfrtf proppdfrtf
-        cd $(WXDIR)\utils\dialoged\src
-        make -f makefile.b32 pdfrtf
-        cd $(THISDIR)
-
-#        cd $(WXDIR)\utils\wxhelp\src
-#        make -f makefile.b32 ps
-#        cd $(WXDIR)\utils\tex2rtf\src
-#        make -f makefile.b32 ps
-#        cd $(WXDIR)\utils\wxgraph\src
-#        make -f makefile.b32 ps
-#        cd $(WXDIR)\utils\wxchart\src
-#        make -f makefile.b32 ps
-#        cd $(WXDIR)\utils\wxtree\src
-#        make -f makefile.b32 ps
-#        cd $(THISDIR)
-
-$(DOCDIR)/winhelp/wx.hlp:         $(DOCDIR)/latex/wx/wx.rtf $(DOCDIR)/latex/wx/wx.hpj
-        cd $(DOCDIR)/latex/wx
-        -erase wx.ph
-        hc wx
-        move wx.hlp $(DOCDIR)\winhelp\wx.hlp
-        move wx.cnt $(DOCDIR)\winhelp\wx.cnt
-        cd $(THISDIR)
-
-$(DOCDIR)/winhelp/porting.hlp:         $(DOCDIR)/latex/porting/porting.rtf $(DOCDIR)/latex/porting/porting.hpj
-        cd $(DOCDIR)/latex/porting
-        -erase porting.ph
-        hc porting
-        move porting.hlp $(DOCDIR)\winhelp\porting.hlp
-        move porting.cnt $(DOCDIR)\winhelp\porting.cnt
-        cd $(THISDIR)
-
-$(DOCDIR)/winhelp/prop.hlp:         $(DOCDIR)/latex/proplist/prop.rtf $(DOCDIR)/latex/proplist/prop.hpj
-        cd $(DOCDIR)/latex/proplist
-        -erase prop.ph
-        hc prop
-        move prop.hlp $(DOCDIR)\winhelp\prop.hlp
-        move prop.cnt $(DOCDIR)\winhelp\prop.cnt
-        cd $(THISDIR)
-
-$(DOCDIR)/winhelp/techref.hlp:         $(DOCDIR)/latex/techref/techref.rtf $(DOCDIR)/latex/techref/techref.hpj
-        cd $(DOCDIR)/latex/techref
-        -erase techref.ph
-        hc techref
-        move techref.hlp $(DOCDIR)\winhelp\techref.hlp
-        move techref.cnt $(DOCDIR)\winhelp\techref.cnt
-        cd $(THISDIR)
-
-$(DOCDIR)/latex/wx/wx.rtf:         $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/manual.tex
-        cd $(DOCDIR)\latex\wx
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/wx/manual.tex $(DOCDIR)/latex/wx/wx.rtf -twice -winhelp
-        cd $(THISDIR)
-
-$(DOCDIR)/latex/porting/porting.rtf:         $(DOCDIR)/latex/porting/porting.tex
-        cd $(DOCDIR)\latex\porting
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/porting/porting.tex $(DOCDIR)/latex/porting/porting.rtf -twice -winhelp
-        cd $(THISDIR)
-
-$(DOCDIR)/latex/proplist/prop.rtf:         $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/body.tex $(DOCDIR)/latex/proplist/classes.tex $(DOCDIR)/latex/proplist/changes.tex
-        cd $(DOCDIR)\latex\proplist
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/prop.rtf -twice -winhelp
-        cd $(THISDIR)
-
-$(DOCDIR)/latex/techref/techref.rtf:         $(DOCDIR)/latex/techref/techref.tex
-        cd $(DOCDIR)\latex\techref
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/latex/techref/techref.rtf -twice -winhelp
-        cd $(THISDIR)
-
-$(DOCDIR)/pdf/wx.rtf:         $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/manual.tex
-        cd $(DOCDIR)\latex\wx
-        -copy *.wmf $(DOCDIR)\pdf
-        -copy *.bmp $(DOCDIR)\pdf
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/wx/manual.tex $(DOCDIR)/pdf/wx.rtf -twice -rtf
-        cd $(THISDIR)
-
-$(DOCDIR)/pdf/porting.rtf:         $(DOCDIR)/latex/porting/porting.tex
-        cd $(DOCDIR)\latex\porting
-        -copy *.wmf $(DOCDIR)\pdf
-        -copy *.bmp $(DOCDIR)\pdf
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/porting/porting.tex $(DOCDIR)/pdf/porting.rtf -twice -rtf
-        cd $(THISDIR)
-
-$(DOCDIR)/pdf/prop.rtf:         $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/body.tex $(DOCDIR)/latex/proplist/classes.tex $(DOCDIR)/latex/proplist/changes.tex
-        cd $(DOCDIR)\latex\proplist
-        -copy *.wmf $(DOCDIR)\pdf
-        -copy *.bmp $(DOCDIR)\pdf
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/pdf/prop.rtf -twice -rtf
-        cd $(THISDIR)
-
-$(DOCDIR)/pdf/techref.rtf:         $(DOCDIR)/latex/techref/techref.tex
-        cd $(DOCDIR)\latex\techref
-        -copy *.wmf $(DOCDIR)\pdf
-        -copy *.bmp $(DOCDIR)\pdf
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/pdf/techref.rtf -twice -rtf
-        cd $(THISDIR)
-
-$(DOCDIR)\html\wx\wx.htm:         $(DOCDIR)\latex\wx\classes.tex $(DOCDIR)\latex\wx\body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)\latex\wx\manual.tex
-        cd $(DOCDIR)\latex\wx
-        -mkdir $(DOCDIR)\html\wx
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\wx\manual.tex $(DOCDIR)\html\wx\wx.htm -twice -html
-        -erase $(DOCDIR)\html\wx\*.con
-        -erase $(DOCDIR)\html\wx\*.ref
-        -erase $(DOCDIR)\latex\wx\*.con
-        -erase $(DOCDIR)\latex\wx\*.ref
-         cd $(THISDIR)
-
-$(DOCDIR)\html\wx\wx.chm : $(DOCDIR)\html\wx\wx.htm $(DOCDIR)\html\wx\wx.hhp
-	cd $(DOCDIR)\html\wx
-	-hhc wx.hhp
-	cd $(THISDIR)
-
-
-$(DOCDIR)\html\porting\port.htm:         $(DOCDIR)\latex\porting\porting.tex
-        cd $(DOCDIR)\latex\porting
-        -mkdir $(DOCDIR)\html\porting
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\porting\porting.tex $(DOCDIR)\html\porting\port.htm -twice -html
-        -erase $(DOCDIR)\html\porting\*.con
-        -erase $(DOCDIR)\html\porting\*.ref
-        -erase $(DOCDIR)\latex\porting\*.con
-        -erase $(DOCDIR)\latex\porting\*.ref
-        cd $(THISDIR)
-
-$(DOCDIR)\html\proplist\prop.htm:         $(DOCDIR)\latex\proplist\prop.tex $(DOCDIR)\latex\proplist\body.tex $(DOCDIR)\latex\proplist\classes.tex $(DOCDIR)\latex\proplist\changes.tex
-        cd $(DOCDIR)\latex\proplist
-        -mkdir $(DOCDIR)\html\proplist
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\proplist\prop.tex $(DOCDIR)\html\proplist\prop.htm -twice -html
-        -erase $(DOCDIR)\html\proplist\*.con
-        -erase $(DOCDIR)\html\proplist\*.ref
-        -erase $(DOCDIR)\latex\proplist\*.con
-        -erase $(DOCDIR)\latex\proplist\*.ref
-        cd $(THISDIR)
-
-$(WXDIR)\docs\latex\wx\manual.dvi:	$(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/manual.tex
-	cd $(WXDIR)\docs\latex\wx
-        -latex manual
-        -latex manual
-        -makeindx manual
-        -bibtex manual
-        -latex manual
-        -latex manual
-        cd $(THISDIR)
-
-$(WXDIR)\docs\latex\porting\porting.dvi:	$(DOCDIR)/latex/porting/porting.tex
-	cd $(WXDIR)\docs\latex\porting
-        -latex porting
-        -latex porting
-        -makeindx porting
-        -bibtex porting
-        -latex porting
-        -latex porting
-        cd $(THISDIR)
-
-$(WXDIR)\docs\ps\wx.ps:	$(WXDIR)\docs\latex\wx\manual.dvi
-	cd $(WXDIR)\docs\latex\wx
-        -dvips32 -o wx.ps manual
-        move wx.ps $(WXDIR)\docs\ps\wx.ps
-        cd $(THISDIR)
-
-$(WXDIR)\docs\ps\porting.ps:	$(WXDIR)\docs\latex\porting\porting.dvi
-	cd $(WXDIR)\docs\latex\porting
-        -dvips32 -o porting.ps porting
-        move porting.ps $(WXDIR)\docs\ps\porting.ps
-        cd $(THISDIR)
-
-$(WXDIR)\docs\latex\wx\referenc.dvi:	$(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/referenc.tex
-	cd $(WXDIR)\docs\latex\wx
-        -latex referenc
-        -latex referenc
-        -makeindx referenc
-        -bibtex referenc
-        -latex referenc
-        -latex referenc
-        cd $(THISDIR)
-
-$(WXDIR)\docs\ps\referenc.ps:	$(WXDIR)\docs\latex\wx\referenc.dvi
-	cd $(WXDIR)\docs\latex\wx
-        -dvips32 -o referenc.ps referenc
-        move referenc.ps $(WXDIR)\docs\ps\referenc.ps
-        cd $(THISDIR)
-
-# In order to force document reprocessing
-touchmanual:
-    -touch $(WXDIR)\docs\latex\wx\manual.tex
-
-updatedocs: touchmanual alldocs
-
-# Start Word, running the GeneratePDF macro. MakeManual.dot should be in the
-# Office StartUp folder, and PDFMaker should be installed.
-updatepdf:  # touchmanual pdfrtf
-    start $(WAITFLAG) "winword d:\wx2\wxWindows\docs\latex\pdf\wx.rtf /mGeneratePDF"
-
-
-MFTYPE=b32
-# Can't use this or we'll have to distribute all tmake files with wxWindows
-# makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t
-
-self:
-	cd $(WXWIN)\distrib\msw\tmake
-	tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE)
-	copy makefile.$(MFTYPE) $(WXWIN)\src\msw
-
diff --git a/distrib/msw/tmake/filelist.t b/distrib/msw/tmake/filelist.t
index 5ad041fd2d..c4d9540fa4 100644
--- a/distrib/msw/tmake/filelist.t
+++ b/distrib/msw/tmake/filelist.t
@@ -97,6 +97,8 @@
             $wxGTKINCLUDE{$filename} = $fileflags;
         } elsif ( $filetype eq "OS2H" ) {
             $wxOS2PMINCLUDE{$filename} = $fileflags;
+        } elsif ( $filetype eq "MGLH" ) {
+            $wxMGLINCLUDE{$filename} = $fileflags;
         } elsif ( $filetype eq "X11H" ) {
             $wxX11INCLUDE{$filename} = $fileflags;
         } elsif ( $filetype eq "UnivH" ) {
diff --git a/distrib/msw/tmake/filelist.txt b/distrib/msw/tmake/filelist.txt
index e38f4ced4a..afb753fd9a 100644
--- a/distrib/msw/tmake/filelist.txt
+++ b/distrib/msw/tmake/filelist.txt
@@ -30,6 +30,7 @@
 #  MotifH	/include/wx/motif
 #  MSWH	/include/wx/msw
 #  OS2H	/include/wx/os2
+#  MGLH /include/wx/mgl
 #  X11H	/include/wx/x11
 #  GenericH	/include/wx/generic
 #  HtmlH	/include/wx/html
@@ -90,7 +91,7 @@ imaglist.cpp	Generic	NotWin32
 laywin.cpp	Generic
 listctrl.cpp	Generic	NotWin32
 logg.cpp	Generic
-mdig.cpp	Generic	NotWin32,NotGTK,NotOS2,NotMac
+mdig.cpp	Generic	NotWin32,NotGTK,NotMac
 msgdlgg.cpp	Generic	Generic
 notebook.cpp	Generic	NotWin32,NotGTK,NotOS2,NotMGL,NotX11,NotMac,NotMicro
 numdlgg.cpp	Generic
@@ -294,7 +295,9 @@ enhmeta.cpp	MSW	Win32Only
 helpbest.cpp	MSW	Win32Only
 evtloop.cpp	MSW	LowLevel
 fdrepdlg.cpp	MSW	Win32Only
-filedlg.cpp	MSW
+# FIXME: the generic implementation doesn't work under MSW, so we must
+#        the native dialog under MSW
+filedlg.cpp	MSW	LowLevel
 font.cpp	MSW	LowLevel
 fontdlg.cpp	MSW
 fontenum.cpp	MSW	LowLevel
@@ -687,12 +690,10 @@ iniconf.cpp	OS2
 joystick.cpp	OS2
 listbox.cpp	OS2
 main.cpp	OS2
-mdi.cpp	OS2
 menu.cpp	OS2
 menuitem.cpp	OS2
 metafile.cpp	OS2
 mimetype.cpp	OS2
-minifram.cpp	OS2
 msgdlg.cpp	OS2
 nativdlg.cpp	OS2
 notebook.cpp	OS2
@@ -745,7 +746,6 @@ m_list.cpp	HTML
 m_dflist.cpp	HTML
 m_pre.cpp	HTML
 m_tables.cpp	HTML
-m_meta.cpp	HTML
 m_style.cpp	HTML
 htmprint.cpp	HTML
 
@@ -1230,6 +1230,28 @@ textctrl.h	X11H
 toplevel.h	X11H
 window.h	X11H
 
+app.h	MGLH
+bitmap.h	MGLH
+brush.h	MGLH
+clipbrd.h	MGLH
+colour.h	MGLH
+cursor.h	MGLH
+dc.h	MGLH
+dcclient.h	MGLH
+dcmemory.h	MGLH
+dcscreen.h	MGLH
+font.h	MGLH
+fontutil.h	MGLH
+gdiobj.h	MGLH
+icon.h	MGLH
+palette.h	MGLH
+pen.h	MGLH
+popupwin.h	MGLH
+private.h	MGLH
+region.h	MGLH
+toplevel.h	MGLH
+window.h	MGLH
+
 accel.h	MSWH
 app.h	MSWH
 bitmap.h	MSWH
@@ -1267,7 +1289,7 @@ fontdlg.h	MSWH
 frame.h	MSWH
 gauge95.h	MSWH
 gaugemsw.h	MSWH
-gccpriv.h	MSWH
+gccpriv.h	MSWH	Base
 gdiimage.h	MSWH
 gdiobj.h	MSWH
 glcanvas.h	MSWH
@@ -1392,7 +1414,6 @@ dialog.h	OS2H
 radiobox.h	OS2H
 toolbar.h	OS2H
 checkbox.h	OS2H
-mdi.h	OS2H
 radiobut.h	OS2H
 tooltip.h	OS2H
 checklst.h	OS2H
@@ -1479,7 +1500,7 @@ helphtml.h	GenericH
 imaglist.h	GenericH
 laywin.h	GenericH
 listctrl.h	GenericH	NotWin32
-mdig.h	GenericH	NotWin32,NotGTK,NotOS2,NotMac
+mdig.h	GenericH	NotWin32,NotGTK,NotMac
 msgdlgg.h	GenericH
 notebook.h	GenericH
 paletteg.h	GenericH	NotMSW,NotX,NotX11,NotOS2
diff --git a/distrib/msw/tmake/g95.t b/distrib/msw/tmake/g95.t
index 7fb2d7fd44..f1c494ef52 100644
--- a/distrib/msw/tmake/g95.t
+++ b/distrib/msw/tmake/g95.t
@@ -343,9 +343,12 @@ $(ARCHINCDIR)/wx:
 	mkdir $(subst $(PATH_SUBST),$(PATH_SEPARATOR),$(ARCHINCDIR))
 	mkdir $(subst $(PATH_SUBST),$(PATH_SEPARATOR),$(ARCHINCDIR)/wx)
 
+# Copy ALWAYS uses forward slashes now.
+
 $(SETUP_H): $(ARCHINCDIR)/wx
-	$(COPY) $(WXDIR)/include/wx/msw/setup.h $@
+	$(COPY) $(WXDIR)/include/wx/msw/setup.h $(subst $(BACKSLASH),/,$@)
 
+#	$(COPY) $(WXDIR)/include/wx/msw/setup.h $@
 #	$(COPY) $(subst $(PATH_SUBST),$(PATH_SEPARATOR),$(WXDIR)/include/wx/msw/setup.h) $(subst $(PATH_SUBST),$(PATH_SEPARATOR),$@)
 
 ifndef WXMAKINGDLL
diff --git a/distrib/msw/tmake/gtk.t b/distrib/msw/tmake/gtk.t
index 0c2ea827de..798d035553 100644
--- a/distrib/msw/tmake/gtk.t
+++ b/distrib/msw/tmake/gtk.t
@@ -13,8 +13,6 @@
     IncludeTemplate("filelist.t");
 
     #! find all our sources
-    $project{"COMMONOBJS"} .= "parser.o ";
-
     foreach $file (sort keys %wxGeneric) {
         next if $wxGeneric{$file} =~ /\bNotGTK\b/;
 
diff --git a/distrib/msw/tmake/mac.t b/distrib/msw/tmake/mac.t
index 6e7bd9b304..0315d6af52 100644
--- a/distrib/msw/tmake/mac.t
+++ b/distrib/msw/tmake/mac.t
@@ -13,7 +13,6 @@
     IncludeTemplate("filelist.t");
 
     #! find all our sources
-    $project{"COMMONOBJS"} .= "parser.o ";
     #! MoreFiles sources
     $project{"GUIOBJS"} .= "DirectoryCopy.o ";
     $project{"GUIOBJS"} .= "FSpCompat.o ";
diff --git a/distrib/msw/tmake/mgl.t b/distrib/msw/tmake/mgl.t
index af07954f30..56da38c497 100644
--- a/distrib/msw/tmake/mgl.t
+++ b/distrib/msw/tmake/mgl.t
@@ -13,7 +13,6 @@
     IncludeTemplate("filelist.t");
 
     #! find all our sources
-    $project{"COMMONOBJS"} .= "parser.o ";
 
     foreach $file (sort keys %wxGeneric) {
         next if $wxGeneric{$file} =~ /\bNotMGL\b/;
diff --git a/distrib/msw/tmake/motif.t b/distrib/msw/tmake/motif.t
index dbca7fc9e5..9cc31f2883 100644
--- a/distrib/msw/tmake/motif.t
+++ b/distrib/msw/tmake/motif.t
@@ -13,7 +13,6 @@
     IncludeTemplate("filelist.t");
 
     #! find all our sources
-    $project{"COMMONOBJS"} .= "parser.o ";
     $project{"GUIOBJS"} .= "xmcombo.o ";
 
     foreach $file (sort keys %wxGeneric) {
diff --git a/distrib/msw/tmake/msw.t b/distrib/msw/tmake/msw.t
index cfdd651f73..32681accc9 100644
--- a/distrib/msw/tmake/msw.t
+++ b/distrib/msw/tmake/msw.t
@@ -13,8 +13,6 @@
     IncludeTemplate("filelist.t");
 
     #! find all our sources
-    $project{"COMMONOBJS"} .= "parser.o ";
-
     foreach $file (sort keys %wxGeneric) {
         next if $wxGeneric{$file} =~ /\b(PS|G|U|16)\b/;
 
diff --git a/distrib/msw/tmake/vc.t b/distrib/msw/tmake/vc.t
index b594d5d854..983890a164 100644
--- a/distrib/msw/tmake/vc.t
+++ b/distrib/msw/tmake/vc.t
@@ -589,19 +589,26 @@ $(DOCDIR)/pdf/wx.rtf:         $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/
         -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/wx/manual.tex $(DOCDIR)/pdf/wx.rtf -twice -rtf
         cd $(THISDIR)
 
+# This target does two sets of HTML: one using a style sheet, for
+# the purposes of the CHM file, and one without.
 $(DOCDIR)\html\wx\wx.htm:         $(DOCDIR)\latex\wx\classes.tex $(DOCDIR)\latex\wx\body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)\latex\wx\manual.tex
         cd $(DOCDIR)\latex\wx
         -mkdir $(DOCDIR)\html\wx
         copy *.gif $(DOCDIR)\html\wx
         -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\wx\manual.tex $(DOCDIR)\html\wx\wx.htm -twice -html
+        -mkdir $(DOCDIR)\mshtml
+        -mkdir $(DOCDIR)\mshtml\wx
+        copy *.gif $(DOCDIR)\mshtml\wx
+        -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\wx\manual.tex $(DOCDIR)\mshtml\wx\wx.htm -twice -html -macros $(DOCDIR)\latex\wx\tex2rtf_css.ini
         -erase $(DOCDIR)\html\wx\*.con
         -erase $(DOCDIR)\html\wx\*.ref
         -erase $(DOCDIR)\latex\wx\*.con
         -erase $(DOCDIR)\latex\wx\*.ref
          cd $(THISDIR)
 
-$(DOCDIR)\htmlhelp\wx.chm : $(DOCDIR)\html\wx\wx.htm $(DOCDIR)\html\wx\wx.hhp
-	cd $(DOCDIR)\html\wx
+$(DOCDIR)\htmlhelp\wx.chm : $(DOCDIR)\html\wx\wx.htm $(DOCDIR)\mshtml\wx\wx.htm $(DOCDIR)\mshtml\wx\wx.hhp
+	cd $(DOCDIR)\mshtml\wx
+    copy $(DOCDIR)\latex\wx\wx.css .
 	-hhc wx.hhp
     -mkdir ..\..\htmlhelp
     -erase $(DOCDIR)\htmlhelp\wx.chm
diff --git a/distrib/msw/tmake/vc6app.t b/distrib/msw/tmake/vc6app.t
index 39ff9c463e..9ceace9bb1 100644
--- a/distrib/msw/tmake/vc6app.t
+++ b/distrib/msw/tmake/vc6app.t
@@ -49,7 +49,7 @@
     } else {
 	$project{"VC_PROJ_TYPE"} = 'Win32 (x86) Console Application';
 	$project{"VC_PROJ_CODE"} = '0x0103';
-	$vc_base_libs = 'kernel32.lib user32.lib advapi32.lib ';
+	$vc_base_libs = 'kernel32.lib user32.lib advapi32.lib shell32.lib ';
 	if ( Config("wx") ) {
 	    $vc_base_libs .= 'wsock32.lib ';
 	}
diff --git a/distrib/msw/tmake/x11.t b/distrib/msw/tmake/x11.t
index f493412685..fd4ebb3957 100644
--- a/distrib/msw/tmake/x11.t
+++ b/distrib/msw/tmake/x11.t
@@ -13,8 +13,6 @@
     IncludeTemplate("filelist.t");
 
     #! find all our sources
-    $project{"COMMONOBJS"} .= "parser.o ";
-
     foreach $file (sort keys %wxX11) {
         ($fileobj = $file) =~ s/cp?p?$/\o/;
 
diff --git a/distrib/msw/vc.rsp b/distrib/msw/vc.rsp
index 940fdff5ba..42254c1616 100644
--- a/distrib/msw/vc.rsp
+++ b/distrib/msw/vc.rsp
@@ -285,6 +285,8 @@ utils/helpgen/src/HelpGenVC.dsw
 
 utils/helpview/src/helpview.dsp
 utils/helpview/src/helpview.dsw
+utils/helpview/src/client.dsp
+utils/helpview/src/client.dsw
 
 contrib/src/ogl/OglVC.dsp
 contrib/src/ogl/OglVC.dsw
diff --git a/distrib/msw/zipdistinno.bat b/distrib/msw/zipdistinno.bat
index 6e044141e8..9040126a6e 100755
--- a/distrib/msw/zipdistinno.bat
+++ b/distrib/msw/zipdistinno.bat
@@ -7,7 +7,7 @@ set webfiles=c:\wx2dev\wxWebSite
 set inno=1
 
 Rem Set this to the required version
-set version=2.3.3
+set version=2.3.4
 
 if "%src" == "" goto usage
 if "%dest" == "" goto usage
@@ -45,7 +45,7 @@ if direxist %dest\wx erase /sxyz %dest\wx\
 if not direxist %dest mkdir %dest
 if direxist %dest%\wxWindows-%version% erase /sxyz %dest%\wxWindows-%version%
 
-# Copy FAQ from wxWebSite CVS
+Rem Copy FAQ from wxWebSite CVS
 if not direxist %webfiles% echo Error - %webfiles% does not exist
 if not direxist %webfiles% goto end
 echo Copying FAQ and other files from %webfiles
@@ -56,6 +56,7 @@ copy %webfiles%\site\i18n.htm %src\docs\html
 Rem Copy setup0.h files to setup.h
 copy %src%\include\wx\os2\setup0.h %src%\include\wx\os2\setup.h
 copy %src%\include\wx\msw\setup0.h %src%\include\wx\msw\setup.h
+copy %src%\include\wx\univ\setup0.h %src%\include\wx\univ\setup.h
 
 cd %src%
 echo Zipping...
diff --git a/distrib/msw/zipmac.bat b/distrib/msw/zipmac.bat
index 2d18635834..a50770e1af 100755
--- a/distrib/msw/zipmac.bat
+++ b/distrib/msw/zipmac.bat
@@ -5,7 +5,7 @@ set src=%wxwin%
 set dest=%src%\deliver
 
 Rem Set this to the required version
-set version=2.3.1
+set version=2.3.4
 
 if "%src%" == "" goto usage
 if "%dest%" == "" goto usage
diff --git a/distrib/msw/zipwxmac.bat b/distrib/msw/zipwxmac.bat
index 2ae9621a16..472d01ccd4 100755
--- a/distrib/msw/zipwxmac.bat
+++ b/distrib/msw/zipwxmac.bat
@@ -7,7 +7,7 @@ set webfiles=c:\wx2dev\wxWebSite
 set stuffit="c:\Program Files\Aladdin Systems\StuffIt 7.5\StuffIt.exe"
 
 Rem Set this to the required version
-set version=2.3.3
+set version=2.3.4
 
 if "%src" == "" goto usage
 if "%dest" == "" goto usage
@@ -47,10 +47,10 @@ zip32 -u -@ %dest%\wxMac-%version%.zip < %src%\distrib\msw\makefile.rsp
 
 erase /Y %src%\include\wx\setup.h
 
-if direxist %dest%\wxWindows-%version% erase /sxyz %dest%\wxWindows-%version%
+if direxist %dest%\wxMac-%version% erase /sxyz %dest%\wxMac-%version%
 
-mkdir %dest%\wxWindows-%version%
-cd %dest%\wxWindows-%version%
+mkdir %dest%\wxMac-%version%
+cd %dest%\wxMac-%version%
 unzip32 ..\wxMac-%version%.zip
 erase /Y src\gtk\descrip.mms src\motif\descrip.mms docs\pdf\*.pdf
 erase /SXY docs\html\dialoged docs\html\tex2rtf
@@ -58,7 +58,9 @@ erase /SXY docs\html\dialoged docs\html\tex2rtf
 cd %dest%
 
 erase wxMac-%version%.zip
-zip32 -r wxMac-%version%.zip wxWindows-%version%/*
+zip32 -r wxMac-%version%.zip wxMac-%version%/*
+
+erase /sxyz %dest%\wxMac-%version%
 
 Rem echo Making StuffIt archive...
 Rem set stuffitcmd=%stuffit% -stuff -create wxMac-%version%.sit wxWindows-%version%\*
diff --git a/distrib/msw/zipwxos2.bat b/distrib/msw/zipwxos2.bat
index 5aeb6a40da..079245d0ff 100755
--- a/distrib/msw/zipwxos2.bat
+++ b/distrib/msw/zipwxos2.bat
@@ -5,7 +5,7 @@ set dest=%src\deliver
 set webfiles=c:\wx2dev\wxWebSite
 
 Rem Set this to the required version
-set version=2.3.3
+set version=2.3.4
 
 if "%src" == "" goto usage
 if "%dest" == "" goto usage
@@ -44,10 +44,10 @@ zip32 -u -@ %dest%\wxOS2-%version%.zip < %src%\distrib\msw\makefile.rsp
 
 Rem erase /Y %src%\include\wx\setup.h
 
-if direxist %dest%\wxWindows-%version% erase /sxyz %dest%\wxWindows-%version%
+if direxist %dest%\wxOS2-%version% erase /sxyz %dest%\wxOS2-%version%
 
-mkdir %dest%\wxWindows-%version%
-cd %dest%\wxWindows-%version%
+mkdir %dest%\wxOS2-%version%
+cd %dest%\wxOS2-%version%
 unzip32 ..\wxOS2-%version%.zip
 echo Overwriting with OS2-specific versions of configure files...
 unzip32 -o %src%\distrib\os2\os2-specific.zip
@@ -64,7 +64,8 @@ call %src%\distrib\msw\lower.bat
 cd %dest%
 
 erase wxOS2-%version%.zip
-zip32 -r wxOS2-%version%.zip wxWindows-%version%/*
+zip32 -r wxOS2-%version%.zip wxOS2-%version%/*
+erase /sxyz wxOS2-%version%
 
 echo wxOS2 archived.
 
diff --git a/distrib/os2/os2-specific.zip b/distrib/os2/os2-specific.zip
index c1876468ee3d5d04f4d69d424f732cd5625b7585..c6f195df68d06fc27d9db45eed3818ec658d7996 100644
GIT binary patch
literal 130661
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%0D1Jo=e3qhG
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%0A969awc_}ojXGoa$_@EsEm4_AK
z`UvxAd_<_p72gZe%PZ)@OLo^qhpp^7<EWK=Y}%zL(VJrVs);KJ-ToNguOcS8It|ZY
zt5O}|O0TR%Qk5^8^H2uv-bKNh9Y4leE&L=7kDFeMRj-J|Qv@frR7@#uydn>%<N4h3
zXwsLCW@00CQ5<n?mWg`^lW&-{>+D)Pti+!ktQWV5!|B95HNzVoF4^Q%Boo;EL8umc
zhQ^jdCxq>t3%{m$N{LpCjClRlS62BUC*I5)j5dz}Lqvm>vL|A}rn}Jm-7-74DkJ`F
zJ2HXI{icaq%xq7aGi5vjUbOr!UQT$9CLyjJ@KMGY<~r{-S><hDsPtyAm>)ne1lwEG
z%Pq6BTXFq&Ly*<Rx3$T{2C*GLhWDnEz1Z=5QN8V&SKdP!$9@~;)A`-0ZqW?}NdVPJ
zGOWqX166`I<ksYd;PFxyapS3zX|ew8na1$S2lD8mqKDfDv;8-!EFK!p&lM?M#f{DP
zZs*rdn!W8>M!)KB3^ZA?IaIfkKVj*5*~MX?T`rb+{@6jENwMIVCZ12i889Ifm@aoo
zcJH~HK}l8>(O-(Fkh2qcoNc690f%>JJlnwmU(9Q}#+iB)<`cX+5ez@-(wdLLRnW^N
z=kdW-ifYeam%TGzY>jR>*3mf9ekiCg*QvDny>G3)5-(mqv5XbP=$u9^S21D{-`8O9
znI}S5^1AMGNq96ygQLDuzA4MQxZkm@%ORHINM)nfT=55yKk#i~@oc6yBg>ZkG~Rfu
zVsN>YjKBtGR2^ToMvo)%>#MKSV&<jkP3A4PtE|%<KEicm=RDwC`39iJenF&Ogke_=
z=#Mq$DzDgOTlWgSd?tjOhAu$e@f^3x6G?n$%t;GF4aN=Z*!5!9PufZliQ~9CkUC1$
zqX!hIC<vs}P~d5akyIu71W415a{+5{`e|JZzDGW`DklyYvyf!+iW8t(%j?Vxdv1np
zxJFzo3SB#RYSiLq1N`w{7RtNJY|_`up0KRWI@C~aLFpPZ5RG|kyv2o%#ZDqC^lU3u
z;q<Y}-Gw#F1FVnPM&*tHHRmtVy#0$-Pmvw>rGA@(gq~*6HDr{J?F{bpN>BNx?+N*=
zf3?JXPksWFq5CW?V5G#@1xMHc&{M!qlzM`9Qtta8n}*|O@0HaU-}>JPuqlo3BJNK~
zfM`JL^UX;iYevA(dMhk#*BN$u+ck!J+Y=2h=*H+^hO|t(oRj%9?kpR8i+{*$D+C27
zf79qAomDvtYagVZ?a0Zv3n${te8^yT>-(mL36Oz+1F?@%UsFK27jef=R-EPUwhV`X
z&U6psnSP0qQZ*Lg7}gZ|ZKfEp;KtGw#(XJX$?h6$*n2I1-ORm5^w!OwJ)tYdDC3?n
z-71GKa?X)w!{9R;!U2_O4SUWrVC3x1GTA_p59UAzxYzAu=YI3q^<;_l<!;b1z)VC}
zwewEiV}C6>WV)ZnDC-??2)zY(Z!xryBzYgf3ctb`)aB`6Ih>SEM?<_(%<6NSOPm-z
z0d&1M(Kdi$pAnccl8H&Cj+THy47SNebs%xhI@=>Y)5!!BWD5yM@5+I*yQlI84X~Rw
zAsir&<E=6%*Bs@jA3xM4u<Q1}A&eW408_SUmOyG%!XxW$sKQKajMEC6BT=va42y#G
z+u$xCkdPZ9{k?73jJsbZbJ{8DEc=VMCnMI67cWh2Ts1atRoqo|L4GP9v9@Fx$H@sD
zbC61<lL|@9v9^LXL_MJWW$QwxKN0^dqMz1~T1IgwNs{2Di(f&_i=xSpz(h)I#y=HK
zjKFP4eiJ^!PYCk7G<9>0OwWEUsBleNNVU5eI~n)b8*9%@<pHWZoX3}ZT6^17LEm$x
zbjj0Cc2RnZT0*0L4mOo>UQj3f=29QZw=gE;kkYV7Yt=AfX~J%PDRINcv6s<wbB$uN
z0uDPEwb<>d3ntqqORVyK8Iu*jui2m9H4gzWV)PAn3_7hnE$u5;Cv7)2%BdpkrU83!
z(a%^%)vF|}<%yAo6%;bfVcJK$P&Ip2VdP0hnVIXamR5yrcA+~9<qPw79YiVb#T%w=
z*Y|i6%?J=xfrVHDamJlm+7%1L1Cl)Q`*R*u3&)ZUOe#-gdA!WQ4I~}e&Ff>H_ImkK
zB~{fs^TSG21^^3vwdwS(qi_&|?Ab^s1I3_C<4OfX|4?P}c8iA9`MpW}tm?69%W%(@
zORN7$$i?HhxcWJ~*qdkRhzOIdW1_T+cY7R?UBA}Uy~I`zJP2F(b?0)6#SG||svzP#
z7V7mn6#A4lq~-zNYC1vG6@bEblfJxD%XY=@3k@z*PVVvd7H;dLHUJrAKjuaz!&t`E
z55%$VFRu%^ZJYxcYPi*Y@aS>z#U7V8^0m(o;XeJufGjieb}Dar94}CEvbT%Xbns&4
zlO_2c-*c6)y>&emZyw=3i8xO2#(n2&TF2zT?8BcLp|rO}cCPn06lnCI*qptJ)l>8>
zl0TWiV#|a=*cMj(yT;wh!z4?8f9!I~U9-7^K7q5dg<ak!fprKH72zjDzi6l*YH4l_
zl(QgStIgR1Vsm;Y=g&sjXSqvn5?lssz9j96jy8o=4^!?YxLEjVSeCEe)MWZ-$b++e
z(3oh2cQ{N1QiP2z@hJ9mCACZrb+r0w8vAqY&Of^>v@1pd{1d#3&}><<3o+5%5FdJt
z=~=T2Qxe9^mWIs_y1bJjm(A2<yt)b=RaZmDI~YcvF?*<Fvl4%2PIEeox;M7U%}_QR
z;_~=)BHs5?My?zH`wcWFlE8B-h{1#1z*}So!<WQaP70=bb9o<VFcLlrXABH7kBhFN
zEoTbdi>-VPcI@|6t-Y2>#0J?nGUng7>JYhjGMhbl5DaMhA_5LN3Y}nY>+<iO*m(jk
z=m60z-45p%yx&$V^xg=-C2f^gI?$eAeuS`XmCl_N@w15BoAQ3jLfMWkncLkE;dbaz
zai9#BNGYu2teq>H)8UjaCxZ7DC%KWhE6H}Vum3s574y|L{_Wn8%lf9Mx*VEQ(&w-G
zMkn@MO1PoZ(TZxpDw~x6eok`1@?Q5UYxS^2Erf<!j&FF`=I8&v;U&oY+)ON@D@i=+
zR%rgCoxg~5+K-D+ge&BS#&d%xz0f>8Ox4OmeTd2};2SIrLJl{|B(X(Q5|R=(?OYtb
z`tK*zw=LfW+a~#s@*J2rm!_<U+9(yavi1l2PS_IPZe}TbJgznfwQ_XuW?7XX6ZR4%
zlGjd5H?f}-P=Eh+pckpw9u0I96`<%)TDjV6C`)GKWt2g{8H8jkyFe9+#*J`;;7>~P
za|Ao!I)pleGlcCudomlm`cAW3c_qQY2V+sUVmyr)dx_E!qJ=w05m#oPh2e>Y(|w(Z
zZJi0m@(ZoqhV_`RZT4gD@Y@H{Z7?f*pzZ-R56TocJ!IX9$r8*V=jpq%ZdD+e&K<ps
zzGh^}!1o1QsAZ~a2ARAz{B6*57adRYUX6TR%X59eEd7?hA|u#@WWVvJ@@Jz>&FFC|
zWU4E2|6Ms=VKr?unH6+FZ(xUBmRX1e;ny!;wvXZBx(E6RPTkvjj{~c%R`Og77dC+b
z1Q^-A2I-Y90nOJQ{a>^iUA&_1yn$k9;&9pw*IU^et0f)2ne`BvJ^o?gukHxZYk>5p
z`YBDdmAT(3D{RB?Bvcy)#B#~#)t|PfVrgWw`9vQelLO!Q%_GEgia&`mS4Udqvm@1I
z883%ed4S|_n%)t&q44yRXRtfW;AlLHm%vetf?_ySJdDA;iK1U=SgkXrv}$nh45|CR
z`&B1vagV<*UwUAp{`pAdKgjD<LCB=kH@+AfL$_k;I4}T)LH>9njE1}w8fYqv4i6Tl
z=z<p7<K$e+A5?OJ75>B_Bw&$BL+X=!b%oY2u)Aww8C-gI_>IsuaM-ZGo_Sx3rRCWf
zFi3REJS$qS=zZ1Ps8V6IQTMSGp;M$9Vg5jA)^fPlx8e7k=!E)mR49z%VVjPdN@$YD
z6`iagiZ?(0U8P1S2^Qhg05&e9UUHM_qGY(g7MUeDr{Y<0)NI;|Ka-T;%eOPDJCr2z
zeg>@Z3DYQSZ=@@6jj7AW!X2N&pe$@jPZ$T^FM>~DQ2K*c5~_#Q#_M83<ElgBIy56e
z`VMKum1JH+ArZdvsdyJ8k*%*!uq;`D^hVay8C>?Jx}eETzh<ApR=m4rMqpXhkA>)O
zW)$aNk;tCc`zFM;vZWH;@hUrMPynA4v-q@bANx|&vcJv74j(+uD}6O~HV}f3et3pe
zR)B`VLwE}X1BC?T<?PPvl51u9A`1<L3_^iIex1<%vp_?ULpA#U*)y`UHMKBvaWwgN
zjQO=h=(mM$C+&MEsH4okON9Q3(aJ&pi8(u37_$D?xYw)1B17F&fc{ltf#v(R#Nwa0
zrvo&Uv5Ae{zmyjLzV?4BF#0Dvl?V;>f9j0>9sh3vjep{?t<X^aOQ-Sg@PC{C{}YD#
f>vmy)p#M7!psWCo@aG_e*VPdk3To}~b%6SRw~JMH

delta 124754
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

diff --git a/docs/changes.txt b/docs/changes.txt
index 9107de419e..9f637ce476 100644
--- a/docs/changes.txt
+++ b/docs/changes.txt
@@ -170,6 +170,44 @@ wxThread and related classes:
 OTHER CHANGES
 =============
 
+2.4.0
+-----
+
+wxMSW:
+
+- fixed loss of client data in wxChoice::SetString()
+
+2.3.4
+-----
+
+All:
+
+- added (partial) Indonesian translations (Bambang Purnomosidi D. P.)
+- added wxSizer::Show()/Hide() (Carl Godkin)
+- fixed bugs in wxDateTime::SetToWeekDay()/GetWeek()
+
+Unix (Base/GUI):
+
+- minor OpenBSD compilation/linking fixes, now builds OOB under OpenBSD 3.1
+- don't include -I/usr/include nor -I/usr/local/include in wx-config output
+- shared library symbols are now versioned on platforms that support it (Linux)
+
+wxGTK:
+- Further work for GTK 2.0 and Unicode support.
+- Addition of native frame site grip.
+
+wxX11:
+- Unicode support through Pango library.
+
+wxMSW:
+
+- fixed crashes in wxListCtrl under XP
+- added context menu for rich edit wxTextCtrl
+
+wxHTML:
+
+- fixed wxHTML to work in Unicode build
+
 2.3.3
 -----
 
diff --git a/docs/gtk/install.txt b/docs/gtk/install.txt
index e57ebdf5d1..c261b9aa29 100644
--- a/docs/gtk/install.txt
+++ b/docs/gtk/install.txt
@@ -11,7 +11,7 @@ IMPORTANT NOTE:
 
   When sending bug reports tell us what version of wxWindows you are
   using (including the beta) and what compiler on what system. One
-  example: wxGTK 2.3.3, gcc 2.95.4, Redhat 6.2
+  example: wxGTK 2.3.4, gcc 2.95.4, Redhat 6.2
 
 * The simplest case
 -------------------
@@ -44,7 +44,7 @@ If you want to remove wxWindows on Unix you can do this:
 * The GTK+ 2 case
 -----------------
 
-wxGTK 2.3.3 has support for the new version 2.0.X of GTK+. This means
+wxGTK 2.3.4 has support for the new version 2.0.X of GTK+. This means
 that wxGTK apps can now make use Unicode as the underlying encoding
 for all text operations. This is a very fundamental change and will
 need time to stabilize, so be careful. Anyways, after installing a
@@ -73,7 +73,7 @@ such as for GTK and Motif, you can now build two complete libraries and use
 them concurrently. For this end, you have to create a directory for each build
 of wxWindows - you may also want to create different versions of wxWindows
 and test them concurrently. Most typically, this would be a version configured
-with --enable-debug_flag and one without. Note, that only one build can
+with --enable-debug and one without. Note, that only one build can
 currently be installed, so you'd have to use local version of the library for
 that purpose.
 
@@ -94,7 +94,7 @@ cd ..
 
 md buildgtkd
 cd buildgtkd
-../configure --with-gtk --enable-debug_flag
+../configure --with-gtk --enable-debug
 make
 cd ..
 
@@ -341,6 +341,12 @@ The following options handle the kind of library you want to build.
                             must be compiled with the same debug
                             options.
 
+    --enable-debug          Same as --enable-debug_info and
+                            --enable-debug_flag together. Unless you have
+                            some very specific needs, you should use this
+                            option instead of --enable-debug_info/flag ones
+                            separately.
+
 * Feature Options
 -----------------
 
diff --git a/docs/html/faq.htm b/docs/html/faq.htm
index dc7bbb8f35..7c9721c4c9 100644
--- a/docs/html/faq.htm
+++ b/docs/html/faq.htm
@@ -1,45 +1,48 @@
+<html>
 
-<HTML>
+<head>
+<title>wxWindows 2 FAQ</title>
+</head>
 
-<HEAD>
-<TITLE>wxWindows 2 FAQ</TITLE>
-</HEAD>
+<body bgcolor=#ffffff text=#000000 vlink="#00376a" link="#00529c" alink="#313063">
 
-<BODY BGCOLOR=#FFFFFF TEXT=#000000 VLINK="#00376A" LINK="#00529C" ALINK="#313063">
-
-<font face="Arial, Lucida Sans, Helvetica">
+<font face="arial, lucida sans, helvetica">
 
 <table width=100% border=0 cellpadding=3 cellspacing=0>
 <tr>
 <td bgcolor="#004080" align=left height=24 background="images/bluetitlegradient.gif">
-<font size=+1 face="Arial, Lucida Sans, Helvetica" color="#FFFFFF">
+<font size=+1 face="arial, lucida sans, helvetica" color="#ffffff">
 <b>wxWindows 2 FAQ</b>
 </font>
 </td>
 </tr>
 </table>
 
-<P>
+<p>
 
-Welcome to the wxWindows FAQ. Please select a category:<P>
+Welcome to the wxWindows FAQ. Please select a category:<p>
 
 <ul>
 <li><a href="faqgen.htm">General questions</a>
-<li><a href="faqgtk.htm">wxWindows 2 for GTK+</a>
-<li><a href="faqmsw.htm">wxWindows 2 for Windows</a>
-<li><a href="faqmot.htm">wxWindows 2 for Motif</a>
-<li><a href="faqx11.htm">wxWindows 2 for X11</a>
-<li><a href="faqmac.htm">wxWindows 2 for Mac</a>
+<li><a href="faqcmn.htm">Questions common to all platforms</a>
+<li><a href="faqgtk.htm">GTK+ questions</a>
+<li><a href="faqmsw.htm">MS Windows questions</a>
+<li><a href="faqmot.htm">Motif questions</a>
+<li><a href="faqx11.htm">X11 questions</a>
+<li><a href="faqmac.htm">Mac questions</a>
 </ul>
 
-<P>
+<p>
 
-For further information, please see the <a href="http://www.wxwindows.org" target=_top>wxWindows Web site</a>,
-plus install.txt (per port), todo.txt (per port), and bugs.txt (all ports).
-<P>
+For further information, please see the
+<a href="http://www.wxwindows.org" target=_top>wxWindows Web site</a>,
+<a href="http://mintzer.pqdot.net/cgi-bin/wiki/wiki.pl" target=_top>wxWiki</a>
+and install.txt (per port), todo.txt (per port), and bugs.txt (all ports) files
+in your wxWindows installation.
+<p>
 
 </font>
 
-</BODY>
+</body>
 
-</HTML>
+</html>
diff --git a/docs/html/faqgen.htm b/docs/html/faqgen.htm
index 43776e0578..f75ce4688e 100644
--- a/docs/html/faqgen.htm
+++ b/docs/html/faqgen.htm
@@ -1,3 +1,4 @@
+
 <HTML>
 
 <HEAD>
@@ -25,15 +26,18 @@ See also <a href="faq.htm">top-level FAQ page</a>.
 <h3>List of questions in this category</h3>
 <ul>
 <li><a href="#whatis">What is wxWindows?</a></li>
+<li><a href="#licence">Can I use wxWindows 2 for both proprietary projects, and GPL&#39;ed projects?</a></li>
+<li><a href="#support">Is there support?</a></li>
 <li><a href="#users">Who uses wxWindows?</a></li>
-<li><a href="#platforms">What platforms are supported by wxWindows 2?</a></li>
-<li><a href="#specific">How does wxWindows 2 support platform-specific features?</a></li>
+<li><a href="#platforms">What platforms are supported by wxWindows?</a></li>
+<li><a href="#specific">How does wxWindows support platform-specific features?</a></li>
 <li><a href="#stl">Does wxWindows use STL? or the standard string class?</a></li>
-<li><a href="#richedit">Is there a rich edit/markup widget for wxWindows 2?</a></ li>
+<li><a href="#richedit">Is there a rich edit/markup widget for wxWindows?</a></ li>
 <li><a href="#exceptions">How to use C++ exceptions with wxWindows?</a></ li>
-<li><a href="#dev">How is wxWindows 2 being developed?</a></li>
-<li><a href="#distrib">How is wxWindows 2 distributed?</a></li>
+<li><a href="#dev">How is wxWindows being developed?</a></li>
+<li><a href="#distrib">How is wxWindows distributed?</a></li>
 <li><a href="#future">What are the plans for the future?</a></li>
+<li><a href="#base">What is wxBase?</a></li>
 <li><a href="#univ">What is wxUniversal?</a></li>
 <li><a href="#jave">What about Java?</a></li>
 <li><a href="#help">How can I help the project?</a></li>
@@ -54,7 +58,7 @@ You don&#39;t have to use C++ to use wxWindows: there is a <a href="http://wxpyt
 and also a <a href="http://wxperl.sourceforge.net" target=_top>Perl interface</a>.
 <P>
 
-<h3>Can I use wxWindows 2 for both proprietary (commercial) projects, and GPL&#39;ed projects?</h3>
+<h3><a name="licence">Can I use wxWindows 2 for both proprietary (commercial) projects, and GPL&#39;ed projects?</a></h3>
 
 Yes. Please see the <a href="newlicen.htm">licence</a> for details, but basically
 you can distribute proprietary binaries without distributing any source code, and neither will wxWindows
@@ -64,7 +68,7 @@ The conditions for using wxWindows 2 are the same whether you are a personal, ac
 or commercial developer.
 <P>
 
-<h3>Is there support?</h3>
+<h3><a name="support">Is there support?</a></h3>
 
 No official support, but the mailing list is very helpful and some people say that
 wxWindows support is better than for much commercial software. The developers are
@@ -81,6 +85,9 @@ quite large for a list of this type.<P>
 
 See <a href="users.htm">Users</a> for a list of some users and their applications, and
 also <A href="feedback.htm">Feedback</a> for comments.<P>
+Our highest-profile user yet is industry veteran and Lotus Corp. founder Mitch Kapor
+and his <a href="http://www.osafoundation.org" target=_new>Open Source Applications Foundation</a>.
+<P>
 
 <H3><a name="platforms">What platforms are supported by wxWindows 2?</a></H3>
 
@@ -159,10 +166,9 @@ or by adding this to a header before you include any STL files:<P>
 These are the possibilities so far:<P>
 
 <ul>
-<li>The richedit sample has a text editor that does markup.
 <li>See <a href="http://www.scintilla.org" target=_top>www.scintilla.org</a> for
-a very nice syntax-highlighting editor widget. Robin Dunn is writing a wxWindows wrapper
-for this widget.
+a very nice syntax-highlighting editor widget. Robin Dunn has written a wxWindows wrapper
+for this widget, available in the wxWindows distribution under contrib/src/stc.
 <li>If you only need to display marked-up information, rather than edit it,
 then wxHTML will suit your needs. wxHTML is built into wxWindows - please see the reference
 manual for details, and samples/html.
@@ -200,29 +206,29 @@ There are a few issues to keep in mind, though:
 
 <p>
 
-<H3><a name="dev">How is wxWindows 2 being developed?</a></H3>
+<H3><a name="dev">How is wxWindows being developed?</a></H3>
 
 We are using the <a href="cvs.htm">CVS</a> system to develop and maintain wxWindows. This allows
-us to make alterations and upload them instantly to the SourceForge server, from
+us to make alterations and upload them instantly to the server, from
 which others can update their source.<P>
 
 To build source from CVS, see the file BuildCVS.txt in the top-level wxWindows distribution
 directory.<P>
 
-<H3><a name="distrib">How is wxWindows 2 distributed?</a></H3>
+<H3><a name="distrib">How is wxWindows distributed?</a></H3>
 
 By ftp, and via the <a href="cdrom2.htm">wxWindows CD-ROM</a>.
 <P>
 If you are feeling adventurous, you may also check out the sources directly
-from the <a href="cvs.htm">cvs</a>
+from <a href="cvs.htm">cvs</a>.
 <p>
 
 <H3><a name="future">What are the plans for the future?</a></H3>
 
-Currently we&#39;re working too hard on getting wxWindows 2 finished (are GUI toolkits ever
+Currently we&#39;re working too hard on getting wxWindows finished (are GUI toolkits ever
 finished?) to think very far ahead. However, we know we want to make wxWindows as robust
 and well-publicised as possible. We also want to aim for better platform-independence of
-resources such as icons and bitmaps, standardising on the PNG for all platforms.<P>
+resources such as icons and bitmaps, standardising on PNG and XPM for all platforms.<P>
 
 Other possibilities include: DCOM/CORBA compatibility; a wxWindows book;
 <a href="http://wxworkshop.sourceforge.net/">wxWorkshop</a>, an IDE;
@@ -234,12 +240,24 @@ their product.<P>
 The high-level goal of wxWindows is to be thought of as the number one C++ framework,
 for virtually any platform. Move over, MFC!<P>
 
+<h3><a name="base">What is wxBase?</a></h3>
+
+wxBase is a subset of wxWindows comprised by the non-GUI classes. It includes
+wxWindows container and primitive data type classes (including wxString,
+wxDateTime and so on) and also useful wrappers for the operating system objects
+such as files, processes, threads, sockets and so on. With very minor
+exceptions wxBase may be used in exactly the same way as wxWindows but it
+doesn&#39;t require a GUI to run and so is ideal for creating console mode
+utilities or server programs. It is also possible to create a program which can
+be compiled either as a console application (using wxBase) or a GUI one (using
+a full featured wxWindows port).
+
 <H3><a name="univ">What is wxUniversal?</a></H3>
 
-wxUniversal is a new port of wxWindows being currently actively developed. The
-main difference is that wxUniversal implements all controls (or widgets) in
-wxWindows itself thus allowing to have much more flexibility (i.e. support for
-themes even under MS Windows!). It also means that it is now much easier to
+The main difference between wxUniversal-based ports (such as wxX11, wxMGL) and other ports (such as wxMSW, wxGTK+, wxMac)
+is that wxUniversal implements all controls (or widgets) in
+wxWindows itself thus allowing to have much more flexibility (for example, support for
+themes even under MS Windows). It also means that it is now much easier to
 port wxWindows to a new platform as only the low-level classes must be ported
 which make for a small part of the library.
 <p>
@@ -255,7 +273,7 @@ from Java, and the level of interest in wxWindows is as high as ever.<P>
 
 Please check out the <a href="http://www.wxwindows.org/develop2.htm">Community</a> pages,
 in particular the <a href="projects.htm">suggested projects</a>, and
-mail <a href="mailto:julian.smart@btopenworld.com">Julian Smart</a> or the developers&#39; mailing list with your own suggestions.<P>
+mail the developers&#39; mailing list with your own suggestions.<P>
 
 </font>
 
diff --git a/docs/html/faqgtk.htm b/docs/html/faqgtk.htm
index c93ebad47e..df33965ef4 100644
--- a/docs/html/faqgtk.htm
+++ b/docs/html/faqgtk.htm
@@ -1,3 +1,4 @@
+
 <HTML>
 
 <HEAD>
@@ -25,12 +26,13 @@ See also <a href="faq.htm">top-level FAQ page</a>.
 <h3>List of questions in this category</h3>
 
 <ul>
-<li><a href="#wxgtk">What is wxWindows 2 for GTK?</a></li>
+<li><a href="#wxgtk">What is wxWindows 2 for GTK+?</a></li>
 <li><a href="#locale">Why doesn&#39;t reading floating point numbers work when using wxWindows?</a></li>
 <li><a href="#gnome">Does wxGTK have GNOME support?</a></li>
 <li><a href="#redhat">Warning about GTK libraries supplied with RedHat</a></li>
-<li><a href="#wxgtk">What is wxWindows 2 for GTK?</a></li>
 <li><a href="#bincompat">What range of Intel Linux platforms will a given application binary be usable on?</a></li>
+<li><a href="#static">Can I statically link the GTK+ library?</a></li>
+<li><a href="#charinframe">Why does my simple program using <tt>EVT_CHAR</tt> doesn't work?</a></li>
 </ul>
 
 <hr>
@@ -69,9 +71,9 @@ so may be added without dependence on libraries. Other features may be supported
 future, probably as a separate library.
 <P>
 
-<h3><a name="redhat">Warning about GTK libraries supplied with RedHat</a></h3>
+<h3><a name="redhat">Warning about GTK+ libraries supplied with RedHat</a></h3>
 
-It seems that some versions of RedHat include a badly patched version of GTK (not wxGTK)
+It seems that some versions of RedHat include a badly patched version of GTK+ (not wxGTK)
 which causes some trouble with wxWindows&#39; socket code. Common symptoms are that when
 a client tries to establish a connection to an existing server which refuses the request,
 the client will get notified twice, first getting a LOST event and then a CONNECT event.
@@ -89,6 +91,23 @@ and programs linked against it will not run with version
 on a 2.1.X system. It will then run on practically all
 Linux distros (if you link you app statically against
 the image libraries and std C++ lib)."
+<P>
+
+<h3><a name="#static">Can I statically link the GTK+ library?</a></h3>
+
+No, this is not possible. It leads to crashes in GTK+.
+<P>
+
+<h3><a name="#charinframe">Why does my simple program using
+<tt>EVT_CHAR</tt> doesn't work?</a></h3>
+
+In wxGTK, the frames never get focus and so can never receive <tt>CHAR</tt>
+nor <tt>KEY</tt> events so an <tt>EVT_CHAR</tt> handler for a frame will be
+never called. To receive these events, you should create a <tt>wxPanel</tt>
+inside the frame and register the key event handlers for the panel, not the
+frame.
+
+<p>
 
 </font>
 
diff --git a/docs/html/faqmsw.htm b/docs/html/faqmsw.htm
index 2c56fedb31..346e9de28d 100644
--- a/docs/html/faqmsw.htm
+++ b/docs/html/faqmsw.htm
@@ -1,3 +1,4 @@
+
 <HTML>
 
 <HEAD>
@@ -201,7 +202,8 @@ Statically-linked wxWindows 2 programs are smaller than wxWindows 1.xx programs,
 wxWindows 2 has been designed to reduce dependencies between classes, and other
 techniques. The linker will not include code from the library that is not (directly or
 indirectly) referenced
-by your application. So for example, the &#39;minimal&#39; sample is less than 300KB using VC++ 6.<P>
+by your application. So for example, the &#39;minimal&#39; sample is less than 500KB using VC++ 6
+(note that this figure may be greater for the latest version of wxWindows).<P>
 
 If you want to distribute really small executables, you can
 use <a href="http://www.un4seen.com/petite/" target=_top>Petite</a>
@@ -210,6 +212,12 @@ will shrink to a mere 250KB. With this sort of size, there is reduced incentive
 use DLLs. Another good compression tool is <a href="http://upx.sourceforge.net/" target=_top>UPX</a>.
 <P>
 
+Please do not be surprised if MinGW produces a statically-linked minimal executable of 1 MB. Firstly, gcc
+produces larger executables than some compilers. Secondly, this figure will
+include most of the overhead of wxWindows, so as your application becomes more
+complex, the overhead becomes proportionaly less significant. And thirdly, trading executable compactness
+for the enormous increase in productivity you get with wxWindows is almost always well worth it.
+
 <H3><a name="mfc">Is wxWindows compatible with MFC?</a></H3>
 
 There is a sample which demonstrates MFC and wxWindows code co-existing in the same
@@ -392,7 +400,11 @@ VZ
 
 This can happen if you have a child window intercepting EVT_CHAR events and swallowing
 all keyboard input. You should ensure that event.Skip() is called for all input that
-isn&#39;used by the event handler.
+isn&#39;used by the event handler.<P>
+
+It can also happen if you append the submenu to the parent
+menu {\it before} you have added your menu items. Do the append {\it after} adding
+your items, or accelerators may not be registered properly.<P>
 
 <H3><a name="#regconfig">Why can I not write to the HKLM part of the registry with wxRegConfig?</a></H3>
 
@@ -414,7 +426,7 @@ First, you can use wxRegKey directly, for example:
     regKey.SetName(idName);
 
     {
-        wxLogNull dummy;  
+        wxLogNull dummy; 
         if (!regKey.Create())
         {
             idName = wxT("HKEY_CURRENT_USER\\SOFTWARE\\My Company\\My Product\\Stuff\\");
diff --git a/docs/html/i18n.htm b/docs/html/i18n.htm
index b5fa8b7dd9..a82dd9277c 100644
--- a/docs/html/i18n.htm
+++ b/docs/html/i18n.htm
@@ -124,6 +124,13 @@ translations as of wxWindows 2.3.
                                    </td>
 </tr>
 
+<tr>
+    <td valign=center>Greek</td>
+    <td align=center valign=center><IMG SRC="images/no.gif" ALT="Done"></td>
+    <td align=center valign=center><A HREF="mailto:tsolako1@otenet.gr">Tsolakos Stavros</A>
+                                   </td>
+</tr>
+
 <tr>
     <td valign=center>Hungarian</td>
     <td align=center valign=center><IMG SRC="images/yes.gif" ALT="Done"></td>
@@ -131,6 +138,14 @@ translations as of wxWindows 2.3.
                                    </td>
 </tr>
 
+<tr>
+    <td valign=center>Indonesian</td>
+    <td align=center valign=center><IMG SRC="images/yes.gif" ALT="Done"></td>
+    <td align=center valign=center>
+        <a href="mailto:bambang@3wsi.com">Bambang Purnomosidi D. P.</a>
+    </td>
+</tr>
+
 <tr>
     <td valign=center>Italian</td>
     <td align=center valign=center><IMG SRC="images/yes.gif" ALT="Done"></td>
@@ -157,6 +172,7 @@ translations as of wxWindows 2.3.
     <td align=center valign=center><IMG SRC="images/yes.gif" ALT="Ok"></td>
     <td align=center valign=center><A HREF="mailto:rolinsky@mema.ucl.ac.be">Roman Rolinsky</A>,
                                    <A HREF="mailto:vadim@wxwindows.org">Vadim Zeitlin</A>
+                                   <A HREF="mailto:kai@cmail.ru">Andrew V. Samoilov</A>
                                    </td>
 </tr>
 
@@ -179,6 +195,13 @@ translations as of wxWindows 2.3.
                                    <A HREF="mailto:kgb@compart.fi">Kaj G Backas</A></td>
 </tr>
 
+<tr>
+    <td valign=center>Turkish</td>
+    <td align=center valign=center><IMG SRC="images/yes.gif" ALT="Ok"></td>
+    <td align=center valign=center><A HREF="mailto:dogusanh@dynaset.org">Hakki Dogusan</A></td>
+</tr>
+
+
 </table>
 
 <br>
@@ -196,15 +219,14 @@ translations. Here are the the steps you should follow:
 <ol>
     <li>Get the latest version of the file <tt>locale/wxstd.po</tt> from the
         wxWindows source tree: if you&#39;re using <a href="cvs.htm">cvs</a>
-        or the <a href="http://wxwindows.sf.net/snapshots/">daily
-        snapshots</a>, you should already have it. Otherwise you can always
+        or the <a href="http://wxwindows.sf.net/snapshots/">daily snapshots</a>,
+        you should already have it. Otherwise you can always
         retrieve it directly from the cvs repository via the Web interface
-        <a href="http://cvs.wxwindows.org/cgi-bin/viewcvs.cgi/wxWindows/locale/wxstd.po">
-        here</a>.
+        <a href="http://cvs.wxwindows.org/viewcvs.cgi/wxWindows/locale/wxstd.po">here</a>.
 
     <li>Rename it to <tt>XY.po</tt> where <tt>"XY"</tt> is the 2 letter
-        <a href="http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html">
-        ISO country code</a> for your language.
+        <a href="http://lcweb.loc.gov/standards/iso639-2/englangn.html">ISO 639-1 language code</a>
+        for your language.
 
     <li>Translate the strings in this file using either your favourite text
         editor or a specialized tool such as Vaclav Slavik&#39;s excellent
diff --git a/docs/html/platform.htm b/docs/html/platform.htm
index cb2e2d6feb..46ef6cbc89 100644
--- a/docs/html/platform.htm
+++ b/docs/html/platform.htm
@@ -1,6 +1,6 @@
 <html>
 <head>
-   <title>Platforms supported by wxWindows 2.x</title>
+   <title>Platforms supported by wxWindows 2.4</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="Author" content="Vadim Zeitlin">
 </head>
@@ -20,10 +20,11 @@
 
 </p>
 
-You will find below the list of all supported platforms for different ports of wxWindows 2.x (wxMSW/wxGTK/wxMotif ports
-only). The cross icon in the third column doesn&#39;t mean that the platform is not supported, but just that wxWindows hasn&#39;t
-been tested on it recently (the table is being updated for wxWindows 2.3.3
-currently).
+You will find below the list of all supported platforms for different ports of
+wxWindows 2.x (wxMSW/wxGTK/wxMotif ports only). The cross icon in the third
+column doesn&#39;t mean that the platform is not supported, but just that
+wxWindows hasn&#39;t been tested on it recently (the table is being updated for
+wxWindows 2.4.0 currently).
 <p>
 See also:
 
@@ -86,9 +87,20 @@ often don&#39;t work.
 <tr> <td>wxMotif with gcc 2.95</td><td align=center><IMG SRC="images/yes.gif" ALT=Ok></td><td><br></td><td>with <a href="http://www.openmotif.org">OpenMotif</a></td>
 </tr>
 
+<tr> <td bgcolor="#fafafa"><br></td><td bgcolor="#fafafa" colspan=5> All BSD systems tests are for wxGTK using gcc. </td>
 <tr>
 <td bgcolor="#F0F0F0" align=center valign=center rowspan=1>FreeBSD</td>
-     <td>wxGTK with gcc</td><td align=center><IMG SRC="images/yes.gif" ALT=Ok></td><td>VZ</td><td>Limited thread support on older systems</td>
+     <td>version from 3.2 to 4.6, x86</td><td align=center><IMG SRC="images/yes.gif" ALT=Ok></td><td>VZ</td><td><br></td>
+</tr>
+
+<tr>
+<td bgcolor="#FFFFFF" align=center valign=center rowspan=1>NetBSD</td>
+     <td>1.6, Alpha</td><td align=center><IMG SRC="images/yes.gif" ALT=Ok></td><td>VZ</td><td><br></td>
+</tr>
+
+<tr>
+<td bgcolor="#F0F0F0" align=center valign=center rowspan=1>OpenBSD</td>
+     <td>3.1, Alpha</td><td align=center><IMG SRC="images/yes.gif" ALT=Ok></td><td>VZ</td><td>Some problems with shared libraries, ok with static ones</td>
 </tr>
 
 <tr>
diff --git a/docs/latex/wx/category.tex b/docs/latex/wx/category.tex
index 85ddafa64c..dba0aa01a0 100644
--- a/docs/latex/wx/category.tex
+++ b/docs/latex/wx/category.tex
@@ -93,6 +93,7 @@ that are not static can have \helpref{validators}{wxvalidator} associated with t
 \twocolitem{\helpref{wxStaticBox}{wxstaticbox}}{A static, or group box for visually grouping related controls}
 \twocolitem{\helpref{wxListBox}{wxlistbox}}{A list of strings for single or multiple selection}
 \twocolitem{\helpref{wxListCtrl}{wxlistctrl}}{A control for displaying lists of strings and/or icons, plus a multicolumn report view}
+\twocolitem{\helpref{wxListView}{wxlistview}}{A simpler interface ({\it fa\c{c}ade} for wxListCtrl in report mode}
 \twocolitem{\helpref{wxTabCtrl}{wxtabctrl}}{Manages several tabs}
 \twocolitem{\helpref{wxTextCtrl}{wxtextctrl}}{Single or multiline text editing control}
 \twocolitem{\helpref{wxTreeCtrl}{wxtreectrl}}{Tree (hierarchy) control}
diff --git a/docs/latex/wx/classes.tex b/docs/latex/wx/classes.tex
index 6e6487a91f..646ee733c3 100644
--- a/docs/latex/wx/classes.tex
+++ b/docs/latex/wx/classes.tex
@@ -174,6 +174,7 @@
 \input listctrl.tex
 \input listevt.tex
 \input listitem.tex
+\input listview.tex
 \input locale.tex
 \input log.tex
 \input longlong.tex
diff --git a/docs/latex/wx/combobox.tex b/docs/latex/wx/combobox.tex
index 1d2b124cda..04deea757c 100644
--- a/docs/latex/wx/combobox.tex
+++ b/docs/latex/wx/combobox.tex
@@ -67,6 +67,8 @@ Constructor, creating and showing a combobox.
 
 \docparam{id}{Window identifier. A value of -1 indicates a default value.}
 
+\docparam{value}{Initial selection string. An empty string indicates no selection.}
+
 \docparam{pos}{Window position.}
 
 \docparam{size}{Window size. If the default size (-1, -1) is specified then the window is sized
diff --git a/docs/latex/wx/config.tex b/docs/latex/wx/config.tex
index 9d8c865fba..b00e4624c6 100644
--- a/docs/latex/wx/config.tex
+++ b/docs/latex/wx/config.tex
@@ -368,18 +368,13 @@ a local or global config file is created or used. If the flag is present but
 the parameter is empty, the parameter will be set to a default. If the
 parameter is present but the style flag not, the relevant flag will be added
 to the style. For wxFileConfig you can also add wxCONFIG\_USE\_RELATIVE\_PATH 
-by logicaly or'ing it to either of the \_FILE options to tell wxFileConfig to 
+by logically or'ing it to either of the \_FILE options to tell wxFileConfig to 
 use relative instead of absolute paths.  For wxFileConfig, you can also 
 add wxCONFIG\_USE\_NO\_ESCAPE\_CHARACTERS which will turn off character 
 escaping for the values of entries stored in the config file: for example 
-a {\it foo} key with some backslash characters will be stored as 
-\begin{verbatim}
-  foo=C:\mydir
-\end{verbatim}
-instead of the usual storage of 
-\begin{verbatim}
-  foo=C:\\mydir
-\end{verbatim}
+a {\it foo} key with some backslash characters will be stored as {\tt foo=C:$\backslash$mydir} instead
+of the usual storage of {\tt foo=C:$\backslash\backslash$mydir}.
+
 The wxCONFIG\_USE\_NO\_ESCAPE\_CHARACTERS style can be helpful if your config 
 file must be read or written to by a non-wxWindows program (which might not 
 understand the escape characters). Note, however, that if 
diff --git a/docs/latex/wx/critsect.tex b/docs/latex/wx/critsect.tex
index 2451e97d04..545954a1d8 100644
--- a/docs/latex/wx/critsect.tex
+++ b/docs/latex/wx/critsect.tex
@@ -1,6 +1,6 @@
 \section{\class{wxCriticalSection}}\label{wxcriticalsection}
 
-A critical section object is used for the same exactly purpose as 
+A critical section object is used for exactly the same purpose as 
 \helpref{mutexes}{wxmutex}. The only difference is that under Windows platform
 critical sections are only visible inside one process, while mutexes may be
 shared between processes, so using critical sections is slightly more
diff --git a/docs/latex/wx/datetime.tex b/docs/latex/wx/datetime.tex
index 3baa8dab1c..9de18864b2 100644
--- a/docs/latex/wx/datetime.tex
+++ b/docs/latex/wx/datetime.tex
@@ -235,6 +235,7 @@ values were correct as constructors can not return an error code.
 \helpref{Set(double jdn)}{wxdatetimesetjdn}\\
 \helpref{Set(h, m, s, ms)}{wxdatetimesettime}\\
 \helpref{Set(day, mon, year, h, m, s, ms)}{wxdatetimesetdate}\\
+\helpref{SetFromDOS(unsigned long ddt)}{wxdatetimesetfromdos}\\
 \helpref{ResetTime}{wxdatetimeresettime}\\
 \helpref{SetYear}{wxdatetimesetyear}\\
 \helpref{SetMonth}{wxdatetimesetmonth}\\
@@ -268,7 +269,8 @@ some more complicated calculations to find the answer are under the
 \helpref{GetWeekOfMonth}{wxdatetimegetweekofmonth}\\
 \helpref{GetYearDay}{wxdatetimegetyearday}\\
 \helpref{IsWorkDay}{wxdatetimeisworkday}\\
-\helpref{IsGregorianDate}{wxdatetimeisgregoriandate}
+\helpref{IsGregorianDate}{wxdatetimeisgregoriandate}\\
+\helpref{GetAsDOS}{wxdatetimegetasdos}
 
 \membersection{Date comparison}
 
@@ -882,6 +884,24 @@ Returns {\tt TRUE} if the given date os later than the date of adoption of the
 Gregorian calendar in the given country (and hence the Gregorian calendar
 calculations make sense for it).
 
+%%%%%%%%%%%%%%%%%%%%%% dos date and time format %%%%%%%%%%%%%%%%%%%%%%%
+
+\membersection{wxDateTime::SetFromDOS}\label{wxdatetimesetfromdos}
+
+\func{wxDateTime\&}{Set}{\param{unsigned long }{ddt}}
+
+Sets the date from the date and time in 
+\urlref{DOS}{http://developer.novell.com/ndk/doc/smscomp/index.html?page=/ndk/doc/smscomp/sms\_docs/data/hc2vlu5i.html} 
+format.
+
+\membersection{wxDateTime::GetAsDOS}\label{wxdatetimegetasdos}
+
+\constfunc{unsigned long}{GetAsDOS}{\void}
+
+Returns the date and time in 
+\urlref{DOS}{http://developer.novell.com/ndk/doc/smscomp/index.html?page=/ndk/doc/smscomp/sms\_docs/data/hc2vlu5i.html} 
+format.
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%% comparison %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 \membersection{wxDateTime::IsEqualTo}\label{wxdatetimeisequalto}
@@ -1127,7 +1147,7 @@ This function returns the time representation in the ISO 8601 format
 
 \membersection{wxDateTime::SetToWeekDayInSameWeek}\label{wxdatetimesettoweekdayinsameweek}
 
-\func{wxDateTime\&}{SetToWeekDayInSameWeek}{\param{WeekDay }{weekday}}
+\func{wxDateTime\&}{SetToWeekDayInSameWeek}{\param{WeekDay }{weekday}, \param{WeekFlags}{flags = {\tt Monday\_First}}}
 
 Adjusts the date so that it will still lie in the same week as before, but its
 week day will be the given one.
@@ -1136,9 +1156,9 @@ Returns the reference to the modified object itself.
 
 \membersection{wxDateTime::GetWeekDayInSameWeek}\label{wxdatetimegetweekdayinsameweek}
 
-\constfunc{wxDateTime}{GetWeekDayInSameWeek}{\param{WeekDay }{weekday}}
+\constfunc{wxDateTime}{GetWeekDayInSameWeek}{\param{WeekDay }{weekday}, \param{WeekFlags}{flags = {\tt Monday\_First}}}
 
-Returns the copy of this object to which
+Returns the copy of this object to which 
 \helpref{SetToWeekDayInSameWeek}{wxdatetimesettoweekdayinsameweek} was
 applied.
 
@@ -1216,7 +1236,7 @@ Returns the copy of this object to which
 
 \membersection{wxDateTime::SetToTheWeek}\label{wxdatetimesettotheweek}
 
-\func{bool}{SetToTheWeek}{\param{wxDateTime\_t }{numWeek}, \param{WeekDay }{weekday = Mon}}
+\func{bool}{SetToTheWeek}{\param{wxDateTime\_t }{numWeek}, \param{WeekDay }{weekday = Mon}, \param{WeekFlags}{flags = {\tt Monday\_First}}}
 
 Set the date to the given {\it weekday} in the week with given number
 {\it numWeek}. The number should be in range $1\ldots53$ and {\tt FALSE} will
@@ -1225,7 +1245,7 @@ date was changed successfully.
 
 \membersection{wxDateTime::GetWeek}\label{wxdatetimegetweek}
 
-\constfunc{wxDateTime}{GetWeek}{\param{wxDateTime\_t }{numWeek}, \param{WeekDay }{weekday = Mon}}
+\constfunc{wxDateTime}{GetWeek}{\param{wxDateTime\_t }{numWeek}, \param{WeekDay }{weekday = Mon}, \param{WeekFlags}{flags = {\tt Monday\_First}}}
 
 Returns the copy of this object to which
 \helpref{SetToTheWeek}{wxdatetimesettotheweek} was applied.
diff --git a/docs/latex/wx/dialog.tex b/docs/latex/wx/dialog.tex
index d598319fa4..4262dbd4d1 100644
--- a/docs/latex/wx/dialog.tex
+++ b/docs/latex/wx/dialog.tex
@@ -65,7 +65,7 @@ the dialog to respond to system close events.
 \twocolwidtha{5cm}
 \begin{twocollist}\itemsep=0pt
 \twocolitem{\windowstyle{wxCAPTION}}{Puts a caption on the dialog box.}
-\twocolitem{\windowstyle{wxDEFAULT\_DIALOG\_STYLE}}{Equivalent to a combination of wxCAPTION, wxSYSTEM\_MENU and wxTHICK\_FRAME}
+\twocolitem{\windowstyle{wxDEFAULT\_DIALOG\_STYLE}}{Equivalent to a combination of wxCAPTION and wxSYSTEM\_MENU (the latter is not used under Unix)}
 \twocolitem{\windowstyle{wxRESIZE\_BORDER}}{Display a resizeable frame around the window.}
 \twocolitem{\windowstyle{wxSYSTEM\_MENU}}{Display a system menu.}
 \twocolitem{\windowstyle{wxTHICK\_FRAME}}{Display a thick frame around the window.}
diff --git a/docs/latex/wx/dragimag.tex b/docs/latex/wx/dragimag.tex
index 72cca31294..42eab1e207 100644
--- a/docs/latex/wx/dragimag.tex
+++ b/docs/latex/wx/dragimag.tex
@@ -28,6 +28,14 @@ override \helpref{wxDragImage::DoDrawImage}{wxdragimagedodrawimage} and
 
 Please see {\tt samples/dragimag} for an example.
 
+%\wxheading{Notes}
+%
+%Using the native Windows implementation, you must supply an image with a mask, or
+%the image will not show when dragged. It is not clear if this is a bug
+%in Windows or in the wxDragImage implementation. You can add a mask
+%with a call to wxImage::SetMaskColour, passing RGB values not likely
+%to be in the image. [CURED by creating the ImageList with ILC_MASK]
+
 \wxheading{Derived from}
 
 \helpref{wxObject}{wxobject}
diff --git a/docs/latex/wx/filedlg.tex b/docs/latex/wx/filedlg.tex
index 6e95b41ec0..5f2b412dd6 100644
--- a/docs/latex/wx/filedlg.tex
+++ b/docs/latex/wx/filedlg.tex
@@ -164,7 +164,7 @@ Sets the default filename.
 
 \func{void}{SetFilterIndex}{\param{int }{filterIndex}}
 
-Sets the default filter index, starting from zero. Windows only.
+Sets the default filter index, starting from zero.
 
 \membersection{wxFileDialog::SetMessage}\label{wxfiledialogsetmessage}
 
diff --git a/docs/latex/wx/filename.tex b/docs/latex/wx/filename.tex
index f56df752b3..1749fbdcfb 100644
--- a/docs/latex/wx/filename.tex
+++ b/docs/latex/wx/filename.tex
@@ -89,7 +89,7 @@ on the file name format and the only portable way to answer to this question is
 to use \helpref{IsAbsolute}{wxfilenameisabsolute} method. To ensure that the
 filename is absolute you may use \helpref{Normalize}{wxfilenamenormalize}. There
 is also an inverse function \helpref{MakeRelativeTo}{wxfilenamemakerelativeto} 
-which undoes what \helpref{Normalize(wxPATH\_NORM\_DOTS}{wxfilenamenormalize} 
+which undoes what \helpref{Normalize(wxPATH\_NORM\_DOTS)}{wxfilenamenormalize} 
 does.
 
 Other functions returning information about the file format provided by this
@@ -598,7 +598,7 @@ Deletes the specified directory from the file system.
 
 \membersection{wxFileName::SameAs}\label{wxfilenamesameas}
 
-\func{bool}{SameAs}{\param{const wxFileName\& }{filepath}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
+\constfunc{bool}{SameAs}{\param{const wxFileName\& }{filepath}, \param{wxPathFormat }{format = wxPATH\_NATIVE}}
 
 Compares the filename using the rules of this platform.
 
@@ -674,9 +674,19 @@ Assigns the new value to this filename object.
 
 \membersection{wxFileName::operator==}\label{wxfilenameoperatorequal}
 
-\func{bool operator}{operator==}{\param{const wxFileName\& }{filename}}
+\constfunc{bool operator}{operator==}{\param{const wxFileName\& }{filename}}
 
-\func{bool operator}{operator==}{\param{const wxString\& }{filename}}
+\constfunc{bool operator}{operator==}{\param{const wxString\& }{filename}}
 
-Returns {\tt TRUE} if the filenames are equal for the native file format.
+Returns {\tt TRUE} if the filenames are equal. The string {\it filenames} is
+interpreted as a path in the native filename format.
+
+\membersection{wxFileName::operator!=}\label{wxfilenameoperatornotequal}
+
+\constfunc{bool operator}{operator!=}{\param{const wxFileName\& }{filename}}
+
+\constfunc{bool operator}{operator!=}{\param{const wxString\& }{filename}}
+
+Returns {\tt TRUE} if the filenames are different. The string {\it filenames}
+is interpreted as a path in the native filename format.
 
diff --git a/docs/latex/wx/font.tex b/docs/latex/wx/font.tex
index 8d920e7c3b..7053109138 100644
--- a/docs/latex/wx/font.tex
+++ b/docs/latex/wx/font.tex
@@ -211,7 +211,7 @@ Returns {\tt TRUE} if the font is a fixed width (or monospaced) font,
 
 \func{static wxFontEncoding}{GetDefaultEncoding}{\void}
 
-Returns the current applications default encoding.
+Returns the current application's default encoding.
 
 \wxheading{See also}
 
diff --git a/docs/latex/wx/frame.tex b/docs/latex/wx/frame.tex
index 118d48be72..1ee544180c 100644
--- a/docs/latex/wx/frame.tex
+++ b/docs/latex/wx/frame.tex
@@ -52,14 +52,14 @@ a wxEVT\_HELP event if the user clicked on an application window. {\it Note} tha
 style and must be set by calling \helpref{SetExtraStyle}{wxwindowsetextrastyle} before Create is called (two-step construction).
 You cannot use this style together with wxMAXIMIZE\_BOX or wxMINIMIZE\_BOX, so
 you should use 
-{\tt wxDEFAULT\_FRAME\_STYLE \& \~ (wxMINIMIZE\_BOX | wxMAXIMIZE\_BOX)} for the
+{\tt wxDEFAULT\_FRAME\_STYLE \& \verb$~$ (wxMINIMIZE\_BOX | wxMAXIMIZE\_BOX)} for the
 frames having this style (the dialogs don't have minimize nor maximize box by
 default)}
 \end{twocollist}
 
 The default frame style is for normal, resizeable frames. To create a frame
 which can not be resized by user, you may use the following combination of
-styles: {\tt wxDEFAULT\_FRAME\_STYLE \& \~ (wxRESIZE\_BORDER \pipe wxRESIZE\_BOX \pipe wxMAXIMIZE\_BOX)}.
+styles: {\tt wxDEFAULT\_FRAME\_STYLE \& \verb$~$ (wxRESIZE\_BORDER \pipe wxRESIZE\_BOX \pipe wxMAXIMIZE\_BOX)}.
 % Note: the space after the tilde is necessary or Tex2RTF complains.
 
 See also \helpref{window styles overview}{windowstyles}.
diff --git a/docs/latex/wx/fs_mem.tex b/docs/latex/wx/fs_mem.tex
index 1b9f8d61bc..733b6d61f8 100644
--- a/docs/latex/wx/fs_mem.tex
+++ b/docs/latex/wx/fs_mem.tex
@@ -22,7 +22,7 @@ Example:
 void MyFrame::OnAbout(wxCommandEvent&)
 {
     wxBusyCursor bcur;
-    
+    wxFileSystem::AddHandler(new wxMemoryFSHandler);
     wxMemoryFSHandler::AddFile("logo.pcx", wxBITMAP(logo), wxBITMAP_TYPE_PCX);
     wxMemoryFSHandler::AddFile("about.htm", 
                                "<html><body>About: "
diff --git a/docs/latex/wx/ftp.tex b/docs/latex/wx/ftp.tex
index eb0bf3fe87..def46870b0 100644
--- a/docs/latex/wx/ftp.tex
+++ b/docs/latex/wx/ftp.tex
@@ -115,6 +115,13 @@ Default constructor.
 
 Destructor will close the connection if connected.
 
+\membersection{wxFTP::Abort}\label{wxftpabort}
+
+\func{bool}{Abort}{\void}
+
+Aborts the download currently in process, returns {\tt TRUE} if ok, {\tt FALSE} 
+if an error occured.
+
 \membersection{wxFTP::CheckCommand}
 
 \func{bool}{CheckCommand}{\param{const wxString\&}{ command}, \param{char }{ret}}
@@ -246,6 +253,21 @@ to specify a user and a password.
 
 % ----------------------------------------------------------------------------
 
+\membersection{wxFTP::FileExists}\label{wxftpfileexists}
+
+\func{bool}{FileExists}{\param{const wxString\&}{ filename}}
+
+Returns {\tt TRUE} if the given remote file exists, {\tt FALSE} otherwise.
+
+\membersection{wxFTP::GetFileSize}\label{wxftpgetfilesize}
+
+\func{int}{GetFileSize}{\param{const wxString\&}{ filename}}
+
+Returns the file size in bytes or $-1$ if the file doesn't exist or the size
+couldn't be determined. Notice that this size can be approximative size only
+and shouldn't be used for allocating the buffer in which the remote file is
+copied, for example.
+
 \membersection{wxFTP::GetDirList}\label{wxftpgetdirlist}
 
 \func{bool}{GetDirList}{\param{wxArrayString\& }{files}, \param{const wxString\&}{ wildcard = ""}}
diff --git a/docs/latex/wx/function.tex b/docs/latex/wx/function.tex
index 2a31f788cd..14fdda7baf 100644
--- a/docs/latex/wx/function.tex
+++ b/docs/latex/wx/function.tex
@@ -153,6 +153,8 @@ the corresponding topic.
 \helpref{wxLogTrace}{wxlogtrace}\\
 \helpref{wxLogVerbose}{wxlogverbose}\\
 \helpref{wxLogWarning}{wxlogwarning}\\
+\helpref{wxLL}{wxll}\\
+\helpref{wxLongLongFmtSpec}{wxlonglongfmtspec}\\
 \helpref{wxMakeMetafilePlaceable}{wxmakemetafileplaceable}\\
 \helpref{wxMatchWild}{wxmatchwild}\\
 \helpref{wxMessageBox}{wxmessagebox}\\
@@ -399,8 +401,8 @@ once for each previous successful call to \helpref{wxInitialize}{wxinitialize}.
 
 Calls \helpref{wxApp::Yield}{wxappyield}.
 
-This function is kept only for backwards compatibility, please use 
-\helpref{wxApp::Yield}{wxappyield}method instead in any new code.
+This function is kept only for backwards compatibility. Please use 
+the \helpref{wxApp::Yield}{wxappyield} method instead in any new code.
 
 \wxheading{Include files}
 
@@ -2109,6 +2111,44 @@ the compiler supports it or nothing otherwise. Thus, it can be used even in the
 code which might have to be compiled with an old compiler without support for
 this language feature but still take advantage of it when it is available.
 
+\membersection{wxLL}\label{wxll}
+
+\func{wxLongLong\_t}{wxLL}{\param{}{number}}
+
+This macro is defined for the platforms with a native 64 bit integer type and
+allows to define 64 bit compile time constants:
+
+\begin{verbatim}
+    #ifdef wxLongLong_t
+        wxLongLong_t ll = wxLL(0x1234567890abcdef);
+    #endif
+\end{verbatim}
+
+\wxheading{Include files}
+
+<wx/longlong.h>
+
+\membersection{wxLongLongFmtSpec}\label{wxlonglongfmtspec}
+
+This macro is defined to contain the {\tt printf()} format specifier using
+which 64 bit integer numbers (i.e. those of type {\tt wxLongLong\_t}) can be
+printed. Example of using it:
+
+\begin{verbatim}
+    #ifdef wxLongLong_t
+        wxLongLong_t ll = wxLL(0x1234567890abcdef);
+        printf("Long long = %" wxLongLongFmtSpec "x\n", ll);
+    #endif
+\end{verbatim}
+
+\wxheading{See also}
+
+\helpref{wxLL}{wxll}
+
+\wxheading{Include files}
+
+<wx/longlong.h>
+
 \membersection{::wxNewId}\label{wxnewid}
 
 \func{long}{wxNewId}{\void}
@@ -2576,7 +2616,7 @@ class wxFrame: public wxWindow
   DECLARE_DYNAMIC_CLASS(wxFrame)
 
  private:
-  const wxString\& frameTitle;
+  const wxString& frameTitle;
  public:
   ...
 };
diff --git a/docs/latex/wx/helpinst.tex b/docs/latex/wx/helpinst.tex
index 405a855d7c..43a266c295 100644
--- a/docs/latex/wx/helpinst.tex
+++ b/docs/latex/wx/helpinst.tex
@@ -45,7 +45,7 @@ a similar style to the Microsoft HTML Help viewer and using some of the same fil
 Although it has an API compatible with other help controllers, it has more advanced features, so it is
 recommended that you use the specific API for this class instead. Note that if you
 use .zip or .htb formats for your books, you
-must add this line to your application initialization: \verb$wxFileSystem::AddHandler(new wxZipFSHandler);$
+must add this line to your application initialization: {\tt wxFileSystem::AddHandler(new wxZipFSHandler);}
 or nothing will be shown in your help window.
 \end{itemize}
 
diff --git a/docs/latex/wx/htcontnr.tex b/docs/latex/wx/htcontnr.tex
index a723a4420d..6739b4d0fd 100644
--- a/docs/latex/wx/htcontnr.tex
+++ b/docs/latex/wx/htcontnr.tex
@@ -41,6 +41,13 @@ Returns container's horizontal alignment.
 
 Returns container's vertical alignment.
 
+\membersection{wxHtmlContainerCell::GetBackgroundColour}\label{wxhtmlcontainercellgetbackgroundcolour}
+
+\func{wxColour}{GetBackgroundColour}{\void}
+
+Returns the background colour of the container or {\tt wxNullColour} if no background
+colour is set.
+
 \membersection{wxHtmlContainerCell::GetFirstCell}\label{wxhtmlcontainercellgetfirstcell}
 
 \func{wxHtmlCell*}{GetFirstCell}{\void}
diff --git a/docs/latex/wx/htparser.tex b/docs/latex/wx/htparser.tex
index f198bb9887..91eff929ad 100644
--- a/docs/latex/wx/htparser.tex
+++ b/docs/latex/wx/htparser.tex
@@ -256,3 +256,12 @@ Sets the virtual file system that will be used to request additional
 files. (For example {\tt <IMG>} tag handler requests wxFSFile with the
 image data.)
 
+\membersection{wxHtmlParser::StopParsing}\label{wxhtmlparserstopparsing}
+
+\func{void}{StopParsing}{\void}
+
+Call this function to interrupt parsing from a tag handler. No more tags
+will be parsed afterward. This function may only be called from
+\helpref{wxHtmlParser::Parse}{wxhtmlparserparse} or any function called
+by it (i.e. from tag handlers).
+
diff --git a/docs/latex/wx/image.tex b/docs/latex/wx/image.tex
index 4986bf1c19..5f2dd48af5 100644
--- a/docs/latex/wx/image.tex
+++ b/docs/latex/wx/image.tex
@@ -911,7 +911,7 @@ Returns 'this' object.
 
 \membersection{wxImage::operator $==$}
 
-\func{bool}{operator $==$}{\param{const wxImage\& }{image}}
+\constfunc{bool}{operator $==$}{\param{const wxImage\& }{image}}
 
 Equality operator. This operator tests whether the internal data pointers are
 equal (a fast test).
@@ -926,7 +926,7 @@ Returns TRUE if the images were effectively equal, FALSE otherwise.
 
 \membersection{wxImage::operator $!=$}
 
-\func{bool}{operator $!=$}{\param{const wxImage\& }{image}}
+\constfunc{bool}{operator $!=$}{\param{const wxImage\& }{image}}
 
 Inequality operator. This operator tests whether the internal data pointers are
 unequal (a fast test).
diff --git a/docs/latex/wx/list.tex b/docs/latex/wx/list.tex
index 2f07958847..7a1a8ec9d1 100644
--- a/docs/latex/wx/list.tex
+++ b/docs/latex/wx/list.tex
@@ -68,9 +68,11 @@ future versions completely. The use of the latter is especially discouraged as
 it is not only unsafe but is also much less efficient than 
 \helpref{wxArrayString}{wxarraystring} class.
 
-In the documentation of the list classes below, you should replace wxNode with
-wxListName::Node and wxObject with the list element type (i.e. the first
-parameter of WX\_DECLARE\_LIST) for the template lists.
+In the documentation of the list classes below, the template notations are
+used even though these classes are not really templates at all -- but it helps
+to think about them as if they were. You should replace wxNode<T> with
+wxListName::Node and T itself with the list element type (i.e. the first
+parameter of WX\_DECLARE\_LIST).
 
 \wxheading{Derived from}
 
@@ -138,9 +140,9 @@ members for getting to the next or previous node.
 
 \func{}{wxList}{\param{unsigned int}{ key\_type}}
 
-\func{}{wxList}{\param{int}{ n}, \param{wxObject *}{objects[]}}
+\func{}{wxList}{\param{int}{ n}, \param{T *}{objects[]}}
 
-\func{}{wxList}{\param{wxObject *}{object}, ...}
+\func{}{wxList}{\param{T *}{object}, ...}
 
 Constructors. {\it key\_type} is one of wxKEY\_NONE, wxKEY\_INTEGER, or wxKEY\_STRING,
 and indicates what sort of keying is required (if any).
@@ -159,15 +161,16 @@ client data held in the nodes.
 
 \membersection{wxList::Append}\label{wxlistappend}
 
-\func{wxNode *}{Append}{\param{wxObject *}{object}}
+\func{wxNode<T> *}{Append}{\param{T *}{object}}
 
-\func{wxNode *}{Append}{\param{long}{ key}, \param{wxObject *}{object}}
+\func{wxNode<T> *}{Append}{\param{long}{ key}, \param{T *}{object}}
 
-\func{wxNode *}{Append}{\param{const wxString\& }{key}, \param{wxObject *}{object}}
+\func{wxNode<T> *}{Append}{\param{const wxString\& }{key}, \param{T *}{object}}
 
-Appends a new {\bf wxNode} to the end of the list and puts a pointer to the
-\rtfsp{\it object} in the node.  The last two forms store a key with the object for
-later retrieval using the key. The new node is returned in each case.
+Appends a new \helpref{wxNode}{wxnode} to the end of the list and puts a
+pointer to the \rtfsp{\it object} in the node.  The last two forms store a key
+with the object for later retrieval using the key. The new node is returned in
+each case.
 
 The key string is copied and stored by the list implementation.
 
@@ -187,22 +190,26 @@ a node whenever the node is destroyed. The default is {\tt FALSE}.
 
 \membersection{wxList::DeleteNode}\label{wxlistdeletenode}
 
-\func{bool}{DeleteNode}{\param{wxNode *}{node}}
+\func{bool}{DeleteNode}{\param{wxNode<T> *}{node}}
 
 Deletes the given node from the list, returning {\tt TRUE} if successful.
 
 \membersection{wxList::DeleteObject}\label{wxlistdeleteobject}
 
-\func{bool}{DeleteObject}{\param{wxObject *}{object}}
+\func{bool}{DeleteObject}{\param{T *}{object}}
 
 Finds the given client {\it object} and deletes the appropriate node from the list, returning
 {\tt TRUE} if successful. The application must delete the actual object separately.
 
 \membersection{wxList::Find}\label{wxlistfind}
 
-\func{wxNode *}{Find}{\param{long}{ key}}
+\func{wxNode<T> *}{Find}{\param{T *}{ object}}
 
-\func{wxNode *}{Find}{\param{const wxString\& }{key}}
+Returns the node whose client date is {\it object} or NULL if none found.
+
+\func{wxNode<T> *}{Find}{\param{long}{ key}}
+
+\func{wxNode<T> *}{Find}{\param{const wxString\& }{key}}
 
 Returns the node whose stored key matches {\it key}. Use on a keyed list only.
 
@@ -214,37 +221,37 @@ Returns the number of elements in the list.
 
 \membersection{wxList::GetFirst}\label{wxlistgetfirst}
 
-\func{wxNode *}{GetFirst}{\void}
+\func{wxNode<T> *}{GetFirst}{\void}
 
 Returns the first node in the list (NULL if the list is empty).
 
 \membersection{wxList::GetLast}\label{wxlistgetlast}
 
-\func{wxNode *}{GetLast}{\void}
+\func{wxNode<T> *}{GetLast}{\void}
 
 Returns the last node in the list (NULL if the list is empty).
 
 \membersection{wxList::IndexOf}\label{wxlistindexof}
 
-\func{int}{IndexOf}{\param{wxObject*}{ obj }}
+\func{int}{IndexOf}{\param{T*}{ obj }}
 
 Returns the index of {\it obj} within the list or wxNOT\_FOUND if {\it obj} 
 is not found in the list.
 
 \membersection{wxList::Insert}\label{wxlistinsert}
 
-\func{wxNode *}{Insert}{\param{wxObject *}{object}}
+\func{wxNode<T> *}{Insert}{\param{T *}{object}}
 
 Insert object at front of list.
 
-\func{wxNode *}{Insert}{\param{size\_t }{position}, \param{wxObject *}{object}}
+\func{wxNode<T> *}{Insert}{\param{size\_t }{position}, \param{T *}{object}}
 
 Insert object before {\it position}, i.e. the index of the new item in the
 list will be equal to {\it position}. {\it position} should be less than or
 equal to \helpref{GetCount}{wxlistgetcount}; if it is equal to it, this is the
 same as calling \helpref{Append}{wxlistappend}.
 
-\func{wxNode *}{Insert}{\param{wxNode *}{node}, \param{wxObject *}{object}}
+\func{wxNode<T> *}{Insert}{\param{wxNode<T> *}{node}, \param{T *}{object}}
 
 Inserts the object before the given {\it node}.
 
@@ -257,13 +264,13 @@ Returns {\tt TRUE} if the list is empty, {\tt FALSE} otherwise.
 % Use different label name to avoid clashing with wxListItem label
 \membersection{wxList::Item}\label{wxlistitemfunc}
 
-\constfunc{wxNode *}{Item}{\param{size\_t }{index}}
+\constfunc{wxNode<T> *}{Item}{\param{size\_t }{index}}
 
 Returns the node at given position in the list.
 
 \membersection{wxList::Member}\label{wxlistmember}
 
-\func{wxNode *}{Member}{\param{wxObject *}{object}}
+\func{wxNode<T> *}{Member}{\param{T *}{object}}
 
 {\bf NB:} This function is deprecated, use \helpref{Find}{wxlistfind} instead.
 
@@ -271,7 +278,7 @@ Returns the node associated with {\it object} if it is in the list, NULL otherwi
 
 \membersection{wxList::Nth}\label{wxlistnth}
 
-\func{wxNode *}{Nth}{\param{int}{ n}}
+\func{wxNode<T> *}{Nth}{\param{int}{ n}}
 
 {\bf NB:} This function is deprecated, use \helpref{Item}{wxlistitemfunc} instead.
 
diff --git a/docs/latex/wx/listbox.tex b/docs/latex/wx/listbox.tex
index c81cb93fb6..07b133a76c 100644
--- a/docs/latex/wx/listbox.tex
+++ b/docs/latex/wx/listbox.tex
@@ -284,7 +284,7 @@ it.
 
 \membersection{wxListBox::InsertItems}\label{wxlistboxinsertitems}
 
-\func{void}{InsertItems}{\param{int}{ nItems}, \param{const wxString}{ items}, \param{int}{ pos}}
+\func{void}{InsertItems}{\param{int}{ nItems}, \param{const wxString}{ *items}, \param{int}{ pos}}
 
 Insert the given number of strings before the specified position.
 
@@ -331,9 +331,11 @@ TRUE if the given item is selected, FALSE otherwise.
 
 \membersection{wxListBox::Set}\label{wxlistboxset}
 
-\func{void}{Set}{\param{int}{ n}, \param{const wxString*}{ choices}}
+\func{void}{Set}{\param{int}{ n}, \param{const wxString*}{ choices}, \param{void}{ **clientData = {\tt NULL}}}
 
-Clears the list box and adds the given strings. Not implemented for GTK.
+\func{void}{Set}{\param{const wxArrayString\&}{ choices}, \param{void}{ **clientData = {\tt NULL}}}
+
+Clears the list box and adds the given strings to it.
 
 \wxheading{Parameters}
 
@@ -341,10 +343,12 @@ Clears the list box and adds the given strings. Not implemented for GTK.
 
 \docparam{choices}{An array of strings to set.}
 
+\docparam{clientData}{Options array of client data pointers}
+
 \wxheading{Remarks}
 
-Deallocate the array from the calling program
-after this function has been called.
+You may free the array from the calling program after this function has been
+called.
 
 \membersection{wxListBox::SetClientData}\label{wxlistboxsetclientdata}
 
diff --git a/docs/latex/wx/listctrl.tex b/docs/latex/wx/listctrl.tex
index 9aef15d27c..9cfbf90f6e 100644
--- a/docs/latex/wx/listctrl.tex
+++ b/docs/latex/wx/listctrl.tex
@@ -14,7 +14,12 @@ without consuming much memory. To use virtual list control you must use
 \helpref{OnGetItemText}{wxlistctrlongetitemtext} (and optionally 
 \helpref{OnGetItemImage}{wxlistctrlongetitemimage} and 
 \helpref{OnGetItemAttr}{wxlistctrlongetitemattr}) to return the information
-about the items when the control requests it.
+about the items when the control requests it. Virtual list control can be used
+as a normal one except that no operations which can take time proportional to
+the number of items in the control happen -- this is required to allow having a
+practically infinite number of items. For example, in a multiple selection
+virtual list control, the selections won't be sent when many items are selected
+at once because this could mean iterating over all the items.
 
 Using many of wxListCtrl features is shown in the
 \helpref{corresponding sample}{samplelistctrl}.
@@ -606,12 +611,12 @@ the given {\it column} for the specified {\tt item}.
 
 \func{bool}{ScrollList}{\param{int }{dx}, \param{int }{dy}}
 
-Scrolls the list control. If in icon, small icon or report view mode,
-dx specifies the number of pixels to scroll. If in list view mode, dx
-specifies the number of columns to scroll.
+Scrolls the list control. If in icon, small icon or report view mode, 
+{\it dx} specifies the number of pixels to scroll. If in list view mode, 
+{\it dx} specifies the number of columns to scroll. {\it dy} always specifies
+the number of pixels to scroll vertically.
 
-If in icon, small icon or list view mode, dy specifies the number of pixels
-to scroll. If in report view mode, dy specifies the number of lines to scroll.
+{\bf NB:} This method is currently only implemented in the Windows version.
 
 \membersection{wxListCtrl::SetBackgroundColour}\label{wxlistctrlsetbackgroundcolour}
 
diff --git a/docs/latex/wx/listview.tex b/docs/latex/wx/listview.tex
new file mode 100644
index 0000000000..76138d5310
--- /dev/null
+++ b/docs/latex/wx/listview.tex
@@ -0,0 +1,145 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Name:        listview.tex
+%% Purpose:     wxListView documentation
+%% Author:      Vadim Zeitlin
+%% Modified by:
+%% Created:     07.11.02
+%% RCS-ID:      $Id$
+%% Copyright:   (c) 2002 Vadim Zeitlin <vadim@wxwindows.org>
+%% License:     wxWindows license
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\section{\class{wxListView}}\label{wxlistview}
+
+This class currently simply presents a simpler to use interface for the 
+\helpref{wxListCtrl}{wxlistctrl} -- it can be thought of as a {\it fa\c{c}ade}
+for that complicated class. Using it is preferable to using 
+\helpref{wxListCtrl}{wxlistctrl} directly whenever possible because in the
+future some ports might implement wxListView but not the full set of wxListCtrl
+features.
+
+Other than different interface, this class is identical to wxListCtrl. In
+particular, it uses the same events, same windows styles and so on.
+
+\wxheading{Derived from}
+
+\helpref{wxListCtrl}{wxlistctrl}\\
+\helpref{wxControl}{wxcontrol}\\
+\helpref{wxWindow}{wxwindow}\\
+\helpref{wxEvtHandler}{wxevthandler}\\
+\helpref{wxObject}{wxobject}
+
+\wxheading{Include files}
+
+<wx/listctrl.h>
+
+%%%%%%%%%%%%% Methods in alphabetic order %%%%%%%%%%%%%
+\latexignore{\rtfignore{\wxheading{Members}}}
+
+\membersection{wxListView::ClearColumnImage}\label{wxlistviewclearcolumnimage}
+
+\func{void}{ClearColumnImage}{\param{int }{col}}
+
+Resets the column image -- after calling this function, no image will be shown.
+
+\wxheading{Parameters}
+
+\docparam{col}{the column to clear image for}
+
+\wxheading{See also}
+
+\helpref{SetColumnImage}{wxlistviewsetcolumnimage}
+
+
+\membersection{wxListView::Focus}\label{wxlistviewfocus}
+
+\func{void}{Focus}{\param{long }{index}}
+
+Sets focus to the item with the given {\it index}.
+
+
+\membersection{wxListView::GetFirstSelected}\label{wxlistviewgetfirstselected}
+
+\constfunc{long}{GetFirstSelected}{\void}
+
+Returns the first selected item in a (presumably) multiple selection control.
+Tigether with \helpref{GetNextSelected}{wxlistviewgetnextselected} it can be
+used to iterate over all selected items in the control.
+
+\wxheading{Return value}
+
+The fisrt selected item, if any, $-1$ otherwise.
+
+
+\membersection{wxListView::GetFocusedItem}\label{wxlistviewgetfocuseditem}
+
+\constfunc{long}{GetFocusedItem}{\void}
+
+Returns the currently focused item or $-1$ if none.
+
+\wxheading{See also}
+
+\helpref{IsSelected}{wxlistviewisselected},\\
+\helpref{Focus}{wxlistviewfocus}
+
+
+\membersection{wxListView::GetNextSelected}\label{wxlistviewgetnextselected}
+
+\constfunc{long}{GetNextSelected}{\param{long }{item}}
+
+Used together with \helpref{GetFirstSelected}{wxlistviewgetfirstselected} to
+iterate oevr all selected items in the control.
+
+\wxheading{Return value}
+
+Returns the next selected item or $-1$ if there are no more of them.
+
+
+\membersection{wxListView::IsSelected}\label{wxlistviewisselected}
+
+\func{bool}{IsSelected}{\param{long }{index}}
+
+Returns {\tt TRUE} if the item with the given {\it index} is selected, 
+{\tt FALSE} otherwise.
+
+\wxheading{See also}
+
+\helpref{GetFirstSelected}{wxlistviewgetfirstselected},\\
+\helpref{GetNextSelected}{wxlistviewgetnextselected}
+
+
+\membersection{wxListView::Select}\label{wxlistviewselect}
+
+\func{void}{Select}{long n, \param{bool }{on = TRUE}}
+
+Selects or unselects the given item.
+
+\wxheading{Parameters}
+
+\docparam{n}{the item to select or unselect}
+
+\docparam{on}{if {\tt TRUE} (default), selects the item, otherwise unselects it}
+
+\wxheading{See also}
+
+\helpref{SetItemState}{wxlistctrlsetitemstate}
+
+
+\membersection{wxListView::SetColumnImage}\label{wxlistviewsetcolumnimage}
+
+\func{void}{SetColumnImage}{\param{int }{col}, \param{int }{image}}
+
+Sets the column image for the specified column. To use the column images, the
+control must have a valid image list with at least one image.
+
+\wxheading{Parameters}
+
+\docparam{col}{the column to set image for}
+
+\docparam{image}{the index of the column image in the controls image list}
+
+\wxheading{See also}
+
+\helpref{ClearColumnImage}{wxlistviewclearcolumnimage},\\
+\helpref{SetImageList}{wxlistctrlsetimagelist}
+
diff --git a/docs/latex/wx/log.tex b/docs/latex/wx/log.tex
index 1a88333182..aed457e94d 100644
--- a/docs/latex/wx/log.tex
+++ b/docs/latex/wx/log.tex
@@ -380,7 +380,9 @@ wxLogChain *logChain = new wxLogChain(new wxLogStderr);
 // all the log messages are sent to stderr and also processed as usually
 ...
 
-delete logChain;
+// don't delete logChain directly as this would leave a dangling
+// pointer as active log target, use SetActiveTarget() instead
+delete wxLog::SetActiveTarget(...something else or NULL...);
 
 \end{verbatim}
 
diff --git a/docs/latex/wx/longlong.tex b/docs/latex/wx/longlong.tex
index 37f62f17eb..e3e44f2785 100644
--- a/docs/latex/wx/longlong.tex
+++ b/docs/latex/wx/longlong.tex
@@ -25,10 +25,16 @@ also has operators for implicit construction from and conversion to the native
 
 You would usually use this type in exactly the same manner as any other
 (built-in) arithmetic type. Note that wxLongLong is a signed type, if you
-want unsigned values use wxULongLong.
+want unsigned values use wxULongLong which has exactly the same API as
+wxLongLong except when explicitly mentioned otherwise.
 
 If a native (i.e. supported directly by the compiler) 64 bit integer type was
-found a typedef {\it wxLongLong\_t} will be defined to correspond it.
+found to exist, {\it wxLongLong\_t} macro will be defined to correspond to it.
+Also, in this case only, two additional macros will be defined: 
+\helpref{wxLongLongFmtSpec}{wxlonglongfmtspec} for printing 64 bit integers
+using the standard {\tt printf()} function (but see also 
+\helpref{ToString()}{wxlonglongtostring} for a more portable solution) and
+\helpref{wxLL}{wxll} for defining 64 bit integer compile-time constants.
 
 \wxheading{Derived from}
 
diff --git a/docs/latex/wx/manual.tex b/docs/latex/wx/manual.tex
index bc1608cc7d..91e3b2aa0e 100644
--- a/docs/latex/wx/manual.tex
+++ b/docs/latex/wx/manual.tex
@@ -26,13 +26,13 @@
 %\special{!/@scaleunit 1 def}
 \parskip=10pt
 \parindent=0pt
-\title{wxWindows 2.3: A portable C++ and Python GUI toolkit}
+\title{wxWindows 2.3.4: A portable C++ and Python GUI toolkit}
 \winhelponly{\author{by Julian Smart et al
 %\winhelponly{\\$$\image{1cm;0cm}{wxwin.wmf}$$}
 }}
 \winhelpignore{\author{Julian Smart, Robert Roebling, Vadim Zeitlin,
 Robin Dunn, et al}
-\date{August 2002}
+\date{November 2002}
 }
 \makeindex
 \begin{document}
diff --git a/docs/latex/wx/mbconv.tex b/docs/latex/wx/mbconv.tex
index 5aaf60b65c..dd5653d371 100644
--- a/docs/latex/wx/mbconv.tex
+++ b/docs/latex/wx/mbconv.tex
@@ -37,15 +37,36 @@ Constructor.
 
 \constfunc{virtual size\_t}{MB2WC}{\param{wchar\_t* }{buf}, \param{const char* }{psz}, \param{size\_t }{n}}
 
-Converts from multibyte encoding to Unicode, using the libc routine mbstowcs()
-(this is overridden by derived classes). Returns the size of the destination buffer.
+Converts from a string {\it psz} in multibyte encoding to Unicode putting the
+output into the buffer {\it buf} of the size {\it n} (in wide characters, not
+bytes). If {\it buf} is {\tt NULL}, nothing is written to it but the length of
+the string which would result from the conversion is calculated and returned.
+Note that this is the length and not size, i.e. the returned value does 
+{\bf not} include the trailing NUL. But when the function is called with a
+non-{\tt NULL} buffer, the {\it n} parameter should be the size of the buffer
+and so it {\bf should} take into account the trailing NUL.
+
+\wxheading{Parameters}
+
+\docparam{buf}{the output buffer, may be {\tt NULL} if the caller is only
+interested in the length of the resulting string}
+
+\docparam{psz}{the {\tt NUL}-terminated input string, cannot be {\tt NULL}}
+
+\docparam{n}{the size of the output buffer, ignored if {\it buf} is {\tt NULL}}
+
+\wxheading{Return value}
+
+The length of the converted string.
 
 \membersection{wxMBConv::WC2MB}\label{wxmbconvwc2mb}
 
 \constfunc{virtual size\_t}{WC2MB}{\param{char* }{buf}, \param{const wchar\_t* }{psz}, \param{size\_t }{n}}
 
-Converts from Unicode to multibyte encoding, using the libc routine wcstombs()
-(this is overridden by derived classes). Returns the size of the destination buffer.
+Converts from Unicode to multibyte encoding. The semantics of this function
+(including the return value meaning) is the same as for 
+\helpref{MB2WC}{wxmbconvmb2wc}.
+
 
 \membersection{wxMBConv::cMB2WC}\label{wxmbconvcmb2wc}
 
diff --git a/docs/latex/wx/menu.tex b/docs/latex/wx/menu.tex
index b5626089db..5a42e562f8 100644
--- a/docs/latex/wx/menu.tex
+++ b/docs/latex/wx/menu.tex
@@ -27,6 +27,13 @@ of the item positions inserting or removing the items in the menu containing
 the radio items risks to not work correctly. Finally note that the radio items
 are only supported under Windows and GTK+ currently.
 
+\wxheading{Allocation strategy}
+
+All menus except the popup ones must be created on the heap. All menus
+attached to a menubar or to another menu will be deleted by their parent when
+it is deleted. As the frame menubar is deleted by the frame itself, it means
+that normally all menus used are deleted automatically.
+
 \wxheading{Derived from}
 
 \helpref{wxEvtHandler}{wxevthandler}\\
@@ -104,7 +111,9 @@ Adds a string item to the end of the menu.
 \func{void}{Append}{\param{int}{ id}, \param{const wxString\& }{ item}, \param{wxMenu *}{subMenu},\rtfsp
 \param{const wxString\& }{helpString = ""}}
 
-Adds a pull-right submenu to the end of the menu.
+Adds a pull-right submenu to the end of the menu. Append the submenu to the parent
+menu {\it after} you have added your menu items, or accelerators may not be
+registered properly.
 
 \func{void}{Append}{\param{wxMenuItem*}{ menuItem}}
 
diff --git a/docs/latex/wx/menuitem.tex b/docs/latex/wx/menuitem.tex
index 903794c0b3..16691f6bbb 100644
--- a/docs/latex/wx/menuitem.tex
+++ b/docs/latex/wx/menuitem.tex
@@ -36,7 +36,9 @@ Constructs a wxMenuItem object.
 
 \docparam{id}{Identifier for this menu item, or ID\_SEPARATOR to indicate a separator.}
 
-\docparam{text}{Text for the menu item, as shown on the menu.}
+\docparam{text}{Text for the menu item, as shown on the menu. An accelerator
+key can be specified using the ampersand '\&' character. In order to embed an
+ampersand character in the menu item text, the ampersand must be doubled.}
 
 \docparam{helpString}{Optional help string that will be shown on the status bar.}
 
diff --git a/docs/latex/wx/node.tex b/docs/latex/wx/node.tex
index c2b6600772..de3f30e362 100644
--- a/docs/latex/wx/node.tex
+++ b/docs/latex/wx/node.tex
@@ -1,12 +1,19 @@
-\section{\class{wxNodeBase}}\label{wxnode}
-
-A node structure used in linked lists (see \helpref{wxList}{wxlist}) and
-derived classes. You should never use wxNodeBase class directly because it
-works with untyped (void *) data and this is unsafe. Use wxNode-derived classes
-which are defined by WX\_DECLARE\_LIST and WX\_DEFINE\_LIST macros instead as
-described in \helpref{wxList}{wxlist} documentation (see example there). wxNode
-is defined for compatibility as wxNodeBase containing "wxObject *" pointer, but
-usage of this class is deprecated.
+\section{\class{wxNode}}\label{wxnode}
+
+wxNodeBase is the node structure used in linked lists (see 
+\helpref{wxList}{wxlist}) and derived classes. You should never use wxNodeBase
+class directly, however, because it works with untyped ({\tt void *}) data and
+this is unsafe. Use wxNodeBase-derived classes which are automatically defined
+by WX\_DECLARE\_LIST and WX\_DEFINE\_LIST macros instead as described in
+\helpref{wxList}{wxlist} documentation (see example there). Also note that
+although there is a class called wxNode, it is defined for backwards
+compatibility only and usage of this class is strongly deprecated.
+
+In the documentation below, the type {\tt T} should be thought of as a
+``template'' parameter: this is the type of data stored in the linked list or,
+in other words, the first argument of WX\_DECLARE\_LIST macro. Also, wxNode is
+written as wxNode<T> even though it isn't really a template class -- but it
+helps to think of it as if it were.
 
 \wxheading{Derived from}
 
@@ -22,32 +29,32 @@ None.
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
-\membersection{wxNodeBase::GetData}
+\membersection{wxNode<T>::GetData}
 
-\func{void *}{Data}{\void}
+\constfunc{T *}{GetData}{\void}
 
 Retrieves the client data pointer associated with the node.
 
-\membersection{wxNodeBase::GetNext}
+\membersection{wxNode<T>::GetNext}
 
-\func{wxNodeBase *}{Next}{\void}
+\constfunc{wxNode<T> *}{GetNext}{\void}
 
-Retrieves the next node (NULL if at end of list).
+Retrieves the next node or NULL if this node is the last one.
 
-\membersection{wxNodeBase::GetPrevious}
+\membersection{wxNode<T>::GetPrevious}
 
-\func{wxNodeBase *}{GetPrevious}{\void}
+\func{wxNode<T> *}{GetPrevious}{\void}
 
-Retrieves the previous node (NULL if at start of list).
+Retrieves the previous node or NULL if this node is the first one in the list.
 
-\membersection{wxNodeBase::SetData}
+\membersection{wxNode<T>::SetData}
 
-\func{void}{SetData}{\param{void *}{data}}
+\func{void}{SetData}{\param{T *}{data}}
 
 Sets the data associated with the node (usually the pointer will have been
 set when the node was created).
 
-\membersection{wxNodeBase::IndexOf}
+\membersection{wxNode<T>::IndexOf}
 
 \func{int}{IndexOf}{\void}
 
diff --git a/docs/latex/wx/notebook.tex b/docs/latex/wx/notebook.tex
index 9f91ec35dc..f0d414855a 100644
--- a/docs/latex/wx/notebook.tex
+++ b/docs/latex/wx/notebook.tex
@@ -24,10 +24,11 @@ managed by wxNotebook.
 \twocolwidtha{5cm}
 \begin{twocollist}\itemsep=0pt
 
-\twocolitem{\windowstyle{wxNB\_FIXEDWIDTH}}{(Windows only)All tabs will have same width.}
 \twocolitem{\windowstyle{wxNB\_LEFT}}{Place tabs on the left side.}
 \twocolitem{\windowstyle{wxNB\_RIGHT}}{Place tabs on the right side.}
 \twocolitem{\windowstyle{wxNB\_BOTTOM}}{Place tabs under instead of above the notebook pages.}
+\twocolitem{\windowstyle{wxNB\_FIXEDWIDTH}}{(Windows only) All tabs will have same width.}
+\twocolitem{\windowstyle{wxNB\_MULTILINE}}{(Windows only) There can be several rows of tabs.}
 
 \end{twocollist}
 
diff --git a/docs/latex/wx/panel.tex b/docs/latex/wx/panel.tex
index 6dfeb8fe6e..63b331c13f 100644
--- a/docs/latex/wx/panel.tex
+++ b/docs/latex/wx/panel.tex
@@ -43,7 +43,7 @@ A panel may be loaded from a wxWindows resource file (extension {\tt wxr}).
 
 Default constructor.
 
-\func{}{wxPanel}{\param{wxWindow* }{parent}, \param{wxWindowID }{id},\rtfsp
+\func{}{wxPanel}{\param{wxWindow* }{parent}, \param{wxWindowID }{id = $-1$},\rtfsp
 \param{const wxPoint\& }{pos = wxDefaultPosition},\rtfsp
 \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
 \param{long}{ style = wxTAB\_TRAVERSAL},\rtfsp
diff --git a/docs/latex/wx/radiobut.tex b/docs/latex/wx/radiobut.tex
index 9146afe3c0..c9b5f647ed 100644
--- a/docs/latex/wx/radiobut.tex
+++ b/docs/latex/wx/radiobut.tex
@@ -19,6 +19,9 @@ exclusive options. It has a text label next to a (usually) round button.
 \twocolwidtha{5cm}
 \begin{twocollist}\itemsep=0pt
 \twocolitem{\windowstyle{wxRB\_GROUP}}{Marks the beginning of a new group of radio buttons.}
+\twocolitem{\windowstyle{wxRB\_SINGLE}}{If your radio buttons are not
+consecutive siblings, they cannot form a group under Windows and you should use
+this style to indicate that each of them is handled individually.}
 \end{twocollist}
 
 See also \helpref{window styles overview}{windowstyles}.
diff --git a/docs/latex/wx/scpdarry.tex b/docs/latex/wx/scpdarry.tex
index 9164885ea7..baa23718ea 100644
--- a/docs/latex/wx/scpdarry.tex
+++ b/docs/latex/wx/scpdarry.tex
@@ -47,7 +47,7 @@ pointer array.
 \end{verbatim}
 
 A smart pointer holds a pointer to an object (which must be complete
-when wxDEFINE_SCOPED_ARRAY() is called). The memory used by the object is
+when wxDEFINE\_SCOPED\_ARRAY() is called). The memory used by the object is
 deleted when the smart pointer goes out of scope. The first argument
 of the macro is the pointer type, the second is the name of the new
 smart pointer class being created.  Below we will use wxScopedArray to
diff --git a/docs/latex/wx/scpdptr.tex b/docs/latex/wx/scpdptr.tex
index f5ae98c0c4..844aefbe2f 100644
--- a/docs/latex/wx/scpdptr.tex
+++ b/docs/latex/wx/scpdptr.tex
@@ -47,7 +47,7 @@ pointer array.
 \end{verbatim}
 
 A smart pointer holds a pointer to an object (which must be complete
-when wxDEFINE_SCOPED_PTR() is called). The memory used by the object is
+when wxDEFINE\_SCOPED\_PTR() is called). The memory used by the object is
 deleted when the smart pointer goes out of scope. The first argument
 of the macro is the pointer type, the second is the name of the new
 smart pointer class being created.  Below we will use wxScopedPtr to
diff --git a/docs/latex/wx/scrolevt.inc b/docs/latex/wx/scrolevt.inc
index 90d5758865..f33a53d0e6 100644
--- a/docs/latex/wx/scrolevt.inc
+++ b/docs/latex/wx/scrolevt.inc
@@ -5,9 +5,9 @@ member functions that take a wxScrollEvent argument. You can use
 {\tt EVT\_COMMAND\_SCROLL...} macros with window IDs for when intercepting
 scroll events from controls, or {\tt EVT\_SCROLL...} macros without window IDs
 for intercepting scroll events from the receiving window - except for this,
-the macros behave exactly the same
+the macros behave exactly the same.
 
-\twocolwidtha{7cm}
+\twocolwidtha{9cm}
 \begin{twocollist}\itemsep=0pt
 \twocolitem{{\bf EVT\_SCROLL(func)}}{Process all scroll events.}
 \twocolitem{{\bf EVT\_SCROLL\_TOP(func)}}{Process wxEVT\_SCROLL\_TOP scroll-to-top events (minium position).}
@@ -34,3 +34,22 @@ sent as the user drags the thumbtrack).}
 \end{twocollist}%
 
 
+
+\wxheading{The difference between {\tt EVT\_SCROLL\_THUMBRELEASE} and {\tt EVT\_SCROLL\_ENDSCROLL}}
+
+The {\tt EVT\_SCROLL\_THUMBRELEASE} event is only emitted when actually dragging
+the thumb using the mouse and releasing it (This {\tt EVT\_SCROLL\_THUMBRELEASE}
+event is also followed by an {\tt EVT\_SCROLL\_ENDSCROLL} event).
+
+The {\tt EVT\_SCROLL\_ENDSCROLL} event also occurs when using the keyboard to
+change the thumb position, and when clicking next to the thumb (In all these
+cases the {\tt EVT\_SCROLL\_THUMBRELEASE} event does not happen).
+
+In short, the {\tt EVT\_SCROLL\_ENDSCROLL} event is triggered when scrolling/
+moving has finished. The only exception (unfortunately) is that changing the
+thumb position using the mousewheel does give a {\tt EVT\_SCROLL\_THUMBRELEASE}
+event but NOT an {\tt EVT\_SCROLL\_ENDSCROLL} event.
+
+Please see the widgets sample ("Slider" page) to see the difference
+between {\tt EVT\_SCROLL\_THUMBRELEASE} and {\tt EVT\_SCROLL\_ENDSCROLL} in action.
+
diff --git a/docs/latex/wx/scrolwin.tex b/docs/latex/wx/scrolwin.tex
index 15c5be4cc1..9507fb04be 100644
--- a/docs/latex/wx/scrolwin.tex
+++ b/docs/latex/wx/scrolwin.tex
@@ -4,7 +4,47 @@ The wxScrolledWindow class manages scrolling for its client area, transforming
 the coordinates according to the scrollbar positions, and setting the
 scroll positions, thumb sizes and ranges according to the area in view.
 
-As with all windows, an application can draw onto a wxScrolledWindow using a \helpref{device context}{dcoverview}.
+Starting from version 2.4 of wxWindows, there are several ways to use a
+wxScrolledWindow. In particular, there are now three ways to set the
+size of the scrolling area:
+
+One way is to set the scrollbars directly using a call to
+\helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars}.
+This is the way it used to be in any previous version of wxWindows
+and it will be kept for backwards compatibility.
+
+An additional method of manual control, which requires a little less
+computation of your own, is to set the total size of the scrolling area by
+calling either \helpref{wxWindow::SetVirtualSize}{wxwindowsetvirtualsize},
+or \helpref{wxWindow::FitInside}{wxwindowfitinside}, and setting the
+scrolling increments for it by calling
+\helpref{wxScrolledWindow::SetScrollRate}{wxscrolledwindowsetscrollrate}.
+Scrolling in some orientation is enabled by setting a non zero increment
+for it.
+
+The most automatic and newest way is to simply let sizers determine the
+scrolling area. This is now the default when you set an interior sizer
+into a wxScrolledWindow with \helpref{wxWindow::SetSizer}{wxwindowsetsizer}.
+The scrolling area will be set to the size requested by the sizer and
+the scrollbars will be assigned for each orientation according to the need
+for them and the scrolling increment set by 
+\helpref{wxScrolledWindow::SetScrollRate}{wxscrolledwindowsetscrollrate}.
+As above, scrolling is only enabled in orientations with a non-zero
+increment.  You can influence the minimum size of the scrolled area
+controlled by a sizer by calling
+\helpref{wxWindow::SetVirtualSizeHints}{wxwindowsetvirtualsizehints}.
+(calling \helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars}
+ has analogous effects in wxWindows 2.4 -- in later versions it may not continue
+ to override the sizer)
+
+Note:  if Maximum size hints are still supported by SetVirtualSizeHints, use
+them at your own dire risk.  They may or may not have been removed for 2.4,
+but it really only makes sense to set minimum size hints here.  We should
+probably replace SetVirtualSizeHints with SetMinVirtualSize or similar
+and remove it entirely in future.
+
+As with all windows, an application can draw onto a wxScrolledWindow using
+a \helpref{device context}{dcoverview}.
 
 You have the option of handling the OnPaint handler
 or overriding the \helpref{OnDraw}{wxscrolledwindowondraw} function, which is passed
diff --git a/docs/latex/wx/semaphor.tex b/docs/latex/wx/semaphor.tex
index 88190caa8b..68da8177ec 100644
--- a/docs/latex/wx/semaphor.tex
+++ b/docs/latex/wx/semaphor.tex
@@ -60,7 +60,7 @@ Destructor is not virtual, don't use this class polymorphically.
 \func{wxSemaError }{Post}{\void}
 
 Increments the semaphore count and signals one of the waiting
-threads in an atomic way. Returns wxSEMA_OVERFLOW if the count
+threads in an atomic way. Returns wxSEMA\_OVERFLOW if the count
 would increase the counter past the maximum.
 
 \wxheading{Return value}
diff --git a/docs/latex/wx/sizer.tex b/docs/latex/wx/sizer.tex
index e052026c43..b7d1b8ee4e 100644
--- a/docs/latex/wx/sizer.tex
+++ b/docs/latex/wx/sizer.tex
@@ -54,11 +54,11 @@ The destructor.
 
 \membersection{wxSizer::Add}\label{wxsizeradd}
 
-\func{void}{Add}{\param{wxWindow* }{window}, \param{int }{option = 0},\param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
+\func{void}{Add}{\param{wxWindow* }{window}, \param{int }{proportion = 0},\param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
 
-\func{void}{Add}{\param{wxSizer* }{sizer}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
+\func{void}{Add}{\param{wxSizer* }{sizer}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
 
-\func{void}{Add}{\param{int }{width}, \param{int }{height}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
+\func{void}{Add}{\param{int }{width}, \param{int }{height}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
 
 Adds the {\it window} to the sizer. As wxSizer itself is an abstract class, the parameters
 have no meaning in the wxSizer class itself, but as there currently is only one class
@@ -76,11 +76,11 @@ horizontal boxes on the level beneath).}
 \docparam{width and height}{The dimension of a spacer to be added to the sizer. Adding spacers to sizers
 gives more flexibility in the design of dialogs; imagine for example a horizontal box with two buttons at the
 bottom of a dialog: you might want to insert a space between the two buttons and make that space stretchable
-using the {\it option} flag and the result will be that the left button will be aligned with the left
+using the {\it proportion} flag and the result will be that the left button will be aligned with the left
 side of the dialog and the right button with the right side - the space in between will shrink and grow with
 the dialog.}
 
-\docparam{option}{Although the meaning of this parameter is undefined in wxSizer, it is used in wxBoxSizer
+\docparam{proportion}{Although the meaning of this parameter is undefined in wxSizer, it is used in wxBoxSizer
 to indicate if a child of a sizer can change its size in the main orientation of the wxBoxSizer - where
 0 stands for not changeable and a value of more than zero is interpreted relative to the value of other
 children of the same wxBoxSizer. For example, you might have a horizontal wxBoxSizer with three children, two
@@ -93,7 +93,7 @@ using these flags. One is the border around a window: the {\it border}
 parameter determines the border width whereas the flags given here determine
 where the border may be (wxTOP, wxBOTTOM, wxLEFT, wxRIGHT or wxALL). The other
 flags determine the child window's behaviour if the size of the sizer changes.
-However this is not - in contrast to the {\it option} flag - in the main
+However this is not - in contrast to the {\it proportion} flag - in the main
 orientation, but in the respectively other orientation. So if you created a
 wxBoxSizer with the wxVERTICAL option, these flags will be relevant if the
 sizer changes its horizontal size. A child may get resized to completely fill
@@ -106,7 +106,7 @@ in the main orientation using wxALIGN\_CENTER\_VERTICAL (same as
 wxALIGN\_CENTRE\_VERTICAL) and wxALIGN\_CENTER\_HORIZONTAL (same as
 wxALIGN\_CENTRE\_HORIZONTAL) flags. Finally, you can also specify
 wxADJUST\_MINSIZE flag to make the minimal size of the control dynamically adjust
-to the value returned by its \helpref{GetBestSize()}{wxwindowgetbestsize}
+to the value returned by its \helpref{GetAdjustedBestSize()}{wxwindowgetadjustedbestsize}
 method - this allows, for example, for correct relayouting of a static text
 control even if its text is changed during run-time.}
 
@@ -114,7 +114,7 @@ control even if its text is changed during run-time.}
 
 \docparam{userData}{Allows an extra object to be attached to the sizer
 item, for use in derived classes when sizing information is more
-complex than the {\it option} and {\it flag} will allow for.}
+complex than the {\it proportion} and {\it flag} will allow for.}
 
 \membersection{wxSizer::CalcMin}\label{wxsizercalcmin}
 
@@ -175,11 +175,11 @@ the current dimension.
 
 \membersection{wxSizer::Prepend}\label{wxsizerprepend}
 
-\func{void}{Prepend}{\param{wxWindow* }{window}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
+\func{void}{Prepend}{\param{wxWindow* }{window}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
 
-\func{void}{Prepend}{\param{wxSizer* }{sizer}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
+\func{void}{Prepend}{\param{wxSizer* }{sizer}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border = 0}, \param{wxObject* }{userData = NULL}}
 
-\func{void}{Prepend}{\param{int }{width}, \param{int }{height}, \param{int }{option = 0}, \param{int }{flag = 0}, \param{int }{border= 0}, \param{wxObject* }{userData = NULL}}
+\func{void}{Prepend}{\param{int }{width}, \param{int }{height}, \param{int }{proportion = 0}, \param{int }{flag = 0}, \param{int }{border= 0}, \param{wxObject* }{userData = NULL}}
 
 Same as \helpref{wxSizer::Add}{wxsizeradd}, but prepends the items to the beginning of the
 list of items (windows, subsizers or spaces) owned by this sizer.
@@ -254,9 +254,18 @@ see sample in the description of \helpref{wxBoxSizer}{wxboxsizer} if the window
 \func{void}{SetVirtualSizeHints}{\param{wxWindow* }{window}}
 
 Tell the sizer to set the minimal size of the {\it window} virtual area to match the sizer's
-minimal size.  For windows with managed scrollbars this will set them appropriately.
+minimal size. For windows with managed scrollbars this will set them appropriately.
 
 \wxheading{See also}
 
 \helpref{wxScrolledWindow::SetScrollbars}{wxscrolledwindowsetscrollbars}
 
+\membersection{wxSizer::Show}\label{wxsizershow}
+
+\func{void}{Show}{\param{wxWindow* }{window}, \param{bool }{show = TRUE}}
+
+\func{void}{Show}{\param{wxSizer* }{sizer}, \param{bool }{show = TRUE}}
+
+Shows or hides a window or sizer. To make a sizer item disappear or 
+reappear, use Show() followed by Layout().
+
diff --git a/docs/latex/wx/statbmp.tex b/docs/latex/wx/statbmp.tex
index 78ea1aac9c..3c9922ebfb 100644
--- a/docs/latex/wx/statbmp.tex
+++ b/docs/latex/wx/statbmp.tex
@@ -37,7 +37,7 @@ palette problems.
 Default constructor.
 
 \func{}{wxStaticBitmap}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp
-\param{const wxBitmap\& }{label = ``"}, \param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
+\param{const wxBitmap\& }{label}, \param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
 \param{long}{ style = 0}, \param{const wxString\& }{name = ``staticBitmap"}}
 
 Constructor, creating and showing a text control.
@@ -65,7 +65,7 @@ Constructor, creating and showing a text control.
 \membersection{wxStaticBitmap::Create}\label{wxstaticbitmapcreate}
 
 \func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp
-\param{const wxBitmap\& }{label = ``"}, \param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
+\param{const wxBitmap\& }{label}, \param{const wxPoint\& }{pos}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
 \param{long}{ style = 0}, \param{const wxString\& }{name = ``staticBitmap"}}
 
 Creation function, for two-step construction. For details see \helpref{wxStaticBitmap::wxStaticBitmap}{wxstaticbitmapconstr}.
diff --git a/docs/latex/wx/tcommdlg.tex b/docs/latex/wx/tcommdlg.tex
index ccea6686b5..cd91cc9036 100644
--- a/docs/latex/wx/tcommdlg.tex
+++ b/docs/latex/wx/tcommdlg.tex
@@ -167,7 +167,7 @@ The wildcard may be a specification for multiple
 types of file with a description for each, such as:
 
 \begin{verbatim}
- "BMP files (*.bmp) | *.bmp | GIF files (*.gif) | *.gif"
+ "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif"
 \end{verbatim}
 
 \subsection{wxDirDialog overview}\label{wxdirdialogoverview}
diff --git a/docs/latex/wx/tdb.tex b/docs/latex/wx/tdb.tex
index 449efdbfc3..401f78758e 100644
--- a/docs/latex/wx/tdb.tex
+++ b/docs/latex/wx/tdb.tex
@@ -404,8 +404,8 @@ member.
 
 \begin{verbatim}
     wxDbConnectInf DbConnectInf;
-    DbConnectInf.SetDsn,"MyDSN");
-    DbConnectInf.SetUserID,"MyUserName");
+    DbConnectInf.SetDsn("MyDSN");
+    DbConnectInf.SetUserID("MyUserName");
     DbConnectInf.SetPassword("MyPassword");
     DbConnectInf.SetDefaultDir("");
 \end{verbatim}
@@ -832,7 +832,7 @@ this example it was stored in "DbConnectInf.Henv") have been closed, then
 it is safe to release the environment handle:
 
 \begin{verbatim}
-    DbConnectInf->FreeHenv());
+    DbConnectInf->FreeHenv();
 \end{verbatim}
 
 Or, if the long form of the constructor was used and the constructor was allowed 
diff --git a/docs/latex/wx/tex2rtf.ini b/docs/latex/wx/tex2rtf.ini
index cbb9b01c42..60b0948b4a 100644
--- a/docs/latex/wx/tex2rtf.ini
+++ b/docs/latex/wx/tex2rtf.ini
@@ -1,4 +1,6 @@
-;;; Tex2RTF initialisation file
+;;; Tex2RTF initialisation file, using NO style sheet for HTML. See
+;;; tex2rtf_css.ini for a version using a style sheet. You can use
+;;; -macros tex2rtf.ini to specify the ini file.
 runTwice = yes
 titleFontSize = 12
 authorFontSize = 10
@@ -32,7 +34,7 @@ htmlFaceName = "Arial, Lucida, Helvetica"
 \textbackslash [0]{{\tt$\backslash$}}
 \gifsep [0]{\par}
 ignoreInput = "ltx.tex"
-htmlStylesheet = "wx.css"
+; htmlStylesheet = "wx.css"
 
 ;\overview [2] {\rtfonly{See also }\settransparency{on}\sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}\settransparency{off}}
 ;\htmlonly{\image{}{books.gif}}\helpref{#1}{#2}
diff --git a/docs/latex/wx/tex2rtf_css.ini b/docs/latex/wx/tex2rtf_css.ini
new file mode 100644
index 0000000000..e6a089d119
--- /dev/null
+++ b/docs/latex/wx/tex2rtf_css.ini
@@ -0,0 +1,54 @@
+;;; Tex2RTF initialisation file, using a style sheet for HTML.
+;;; See tex2rtf.ini for a version using no style sheet, and instead
+;;; setting explicit fonts. You can use -macros tex2rtf_css.ini to
+;;; specify the ini file.
+runTwice = yes
+titleFontSize = 12
+authorFontSize = 10
+authorFontSize = 10
+chapterFontSize = 12
+sectionFontSize = 12
+subsectionFontSize = 12
+contentsDepth = 2
+headerRule = yes
+footerRule = yes
+useHeadingStyles = yes
+listItemIndent=40
+generateHPJ = yes
+htmlBrowseButtons = bitmap
+winHelpContents = yes
+winHelpVersion = 3 ; 3 for Windows 3.x, 4 for Windows 95
+winHelpTitle = "wxWindows Manual"
+truncateFilenames = yes
+combineSubSections = yes
+;;
+;; These two are for generating MS HTML Help project, contents and index files.
+;;
+htmlWorkshopFiles = true
+htmlIndex = true
+
+; Finally, a way to specify face names
+;htmlFaceName = "Arial, Lucida, Helvetica"
+
+\textasciitilde [0]{{\tt\~}}
+\textasciicircum [0]{{\tt\^}}
+\textbackslash [0]{{\tt$\backslash$}}
+\gifsep [0]{\par}
+ignoreInput = "ltx.tex"
+htmlStylesheet = "wx.css"
+
+;\overview [2] {\rtfonly{See also }\settransparency{on}\sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}\settransparency{off}}
+;\htmlonly{\image{}{books.gif}}\helpref{#1}{#2}
+;\sethotspotcolour{on}\sethotspotunderline{on}}
+\overview [2] {\helpref{#1}{#2}}
+\docparam [2]{\parskip{0}{\it #1}\htmlignore{\par}\parskip{10}\indented{1cm}{#2}}
+\wxheading [1]{{\bf \htmlignore{\fcol{blue}{#1}}\htmlonly{\fcol{red}{#1}}}}
+\const [0] {{\bf const}}
+\constfunc [3] {{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}}
+\windowstyle [1] {{\bf #1}\index{#1}}
+\bftt [1] {\bf{\tt{#1}}}
+\pythonnote [1] {{\bf \fcol{blue}{wxPython note:}} #1}
+%\pythonnote [1] {}
+\perlnote [1] {{\bf \fcol{blue}{wxPerl note:}} #1}
+%\perlnote [1] {}
+
diff --git a/docs/latex/wx/text.tex b/docs/latex/wx/text.tex
index c7f58237a3..32527801c3 100644
--- a/docs/latex/wx/text.tex
+++ b/docs/latex/wx/text.tex
@@ -125,6 +125,29 @@ it to always show it. It doesn't do anything under other platforms.}
 See also \helpref{window styles overview}{windowstyles} and
 \helpref{wxTextCtrl::wxTextCtrl}{wxtextctrlconstr}.
 
+\wxheading{wxTextCtrl text format}
+
+The multiline text controls always store the text as a sequence of lines
+separated by {\tt $\backslash$n} characters, i.e. in the Unix text format even
+on non-Unix platforms. This allows the user code to ignore the differences
+between the platforms but at a price: the indices in the control such as those
+returned by \helpref{GetInsertionPoint}{wxtextctrlgetinsertionpoint} or 
+\helpref{GetSelection}{wxtextctrlgetselection} can {\bf not} be used as
+indices into the string returned by \helpref{GetValue}{wxtextctrlgetvalue} as
+they're going to be slightly off for platforms using 
+{\tt $\backslash$r$\backslash$n} as separator (as Windows does), for example.
+
+Instead, if you need to obtain a substring between the $2$ indices obtained
+from the control with the help of the functions mentioned above, you should
+use \helpref{GetRange}{wxtextctrlgetrange}. And the indices themselves can
+only be passed to other methods, for example 
+\helpref{SetInsertionPoint}{wxtextctrlsetinsertionpoint} or 
+\helpref{SetSelection}{wxtextctrlsetselection}.
+
+To summarize: never use the indices returned by (multiline) wxTextCtrl as
+indices into the string it contains, but only as arguments to be passed back
+to the other wxTextCtrl methods.
+
 \wxheading{wxTextCtrl styles}
 
 Multi-line text controls support the styles, i.e. provide a possibility to set
@@ -554,8 +577,9 @@ returned string is empty.
 \constfunc{wxString}{GetValue}{\void}
 
 Gets the contents of the control. Notice that for a multiline text control,
-the lines will be separated by (Unix-style) $\backslash$n characters, even under
-Windows where they are separated by a $\backslash$r$\backslash$n sequence in the native control.
+the lines will be separated by (Unix-style) $\backslash$n characters, even
+under Windows where they are separated by a $\backslash$r$\backslash$n
+sequence in the native control.
 
 \membersection{wxTextCtrl::IsEditable}\label{wxtextctrliseditable}
 
diff --git a/docs/latex/wx/tfontenc.tex b/docs/latex/wx/tfontenc.tex
index d35e87cc0a..b83964d8c2 100644
--- a/docs/latex/wx/tfontenc.tex
+++ b/docs/latex/wx/tfontenc.tex
@@ -55,20 +55,19 @@ The situation is particularly complicated with Cyrillic encodings for which
 used on the Internet), ISO8859-5 (ISO standard for Cyrillic) and CP1251
 (WinCyrillic).
 
-This abundance of (incompatible) encoding:w
-s should make it clear that using
+This abundance of (incompatible) encodings should make it clear that using
 encodings is less easy than it might seem. The problems arise both from the
 fact that the standard encodings for the given language (say Russian, which is
 written in Cyrillic) are different on different platforms and because the
 fonts in the given encoding might just not be installed (this is especially a
 problem with Unix, or, in general, non-Win32 systems).
 
-To allow to see clearer in this, \helpref{wxFontEnumerator}{wxfontenumerator} 
+To clarify, the \helpref{wxFontEnumerator}{wxfontenumerator} 
 class may be used to enumerate both all available encodings and to find the
 facename(s) in which the given encoding exists. If you can find the font in
 the correct encoding with wxFontEnumerator then your troubles are over, but,
 unfortunately, sometimes this is not enough. For example, there is no standard
-way (I know of, please tell me if you do!) to find a font on a Windows system
+way (that I know of, please tell me if you do!) to find a font on a Windows system
 for KOI8 encoding (only for WinCyrillic one which is quite different), so 
 \helpref{wxFontEnumerator}{wxfontenumerator} will never return one, even if
 the user has installed a KOI8 font on his system.
@@ -80,7 +79,7 @@ course, it would be fairly useless if it tried to determine these mappings by
 itself, so, instead, it (optionally) ask the user and remember his answers
 so that the next time the program will automatically choose the correct font.
 
-All these topics are illustrated by the \helpref{font sample}{samplefont},
+All these topics are illustrated by the \helpref{font sample}{samplefont};
 please refer to it and the documentation of the classes mentioned here for
 further explanations.
 
diff --git a/docs/latex/wx/timer.tex b/docs/latex/wx/timer.tex
index 7830183b5d..262e8332fc 100644
--- a/docs/latex/wx/timer.tex
+++ b/docs/latex/wx/timer.tex
@@ -20,6 +20,8 @@ In any case, you must start the timer with \helpref{Start}{wxtimerstart}
 after constructing it before it actually starts sending notifications. It can
 be stopped later with \helpref{Stop}{wxtimerstop}.
 
+{\bf NB:} note that timer can only be used from the main thread currently.
+
 \wxheading{Derived from}
 
 \helpref{wxObject}{wxobject}
diff --git a/docs/latex/wx/treectrl.tex b/docs/latex/wx/treectrl.tex
index 894fafe40d..4ded4a8c80 100644
--- a/docs/latex/wx/treectrl.tex
+++ b/docs/latex/wx/treectrl.tex
@@ -1,7 +1,8 @@
 \section{\class{wxTreeCtrl}}\label{wxtreectrl}
 
 A tree control presents information as a hierarchy, with items that may be expanded
-to show further items. Items in a tree control are referenced by wxTreeItemId handles.
+to show further items. Items in a tree control are referenced by wxTreeItemId handles,
+which may be tested for validity by calling wxTreeItemId::IsOk.
 
 To intercept events from a tree control, use the event table macros described in \helpref{wxTreeEvent}{wxtreeevent}.
 
@@ -233,13 +234,23 @@ Creates the tree control. See \helpref{wxTreeCtrl::wxTreeCtrl}{wxtreectrlconstr}
 
 \func{void}{Delete}{\param{const wxTreeItemId\&}{ item}}
 
-Deletes the specified item.
+Deletes the specified item. A {\tt EVT\_TREE\_DELETE\_ITEM} event will be
+generated.
 
 \membersection{wxTreeCtrl::DeleteAllItems}\label{wxtreectrldeleteallitems}
 
 \func{void}{DeleteAllItems}{\void}
 
-Deletes all the items in the control.
+Deletes all the items in the control. Note that this will {\bf not} generate
+any events unlike \helpref{Delete}{wxtreectrldelete} method.
+
+\membersection{wxTreeCtrl::DeleteChildren}\label{wxtreectrldeletechildren}
+
+\func{void}{DeleteChildren}{\param{const wxTreeItemId\& }{item}}
+
+Deletes all children of the given item (but not the item itself). Note that
+this will {\bf not} generate any events unlike 
+\helpref{Delete}{wxtreectrldelete} method.
 
 \membersection{wxTreeCtrl::EditLabel}\label{wxtreectrleditlabel}
 
@@ -338,13 +349,14 @@ For this enumeration function you must pass in a `cookie' parameter
 which is opaque for the application but is necessary for the library
 to make these functions reentrant (i.e. allow more than one
 enumeration on one and the same object simultaneously). The cookie passed to
-GetFirstChild and GetNextChild should be the same.
+GetFirstChild and GetNextChild should be the same variable.
 
 Returns an invalid tree item if there are no further children.
 
 \wxheading{See also}
 
-\helpref{wxTreeCtrl::GetNextChild}{wxtreectrlgetnextchild}
+\helpref{wxTreeCtrl::GetNextChild}{wxtreectrlgetnextchild},
+\helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling}
 
 \pythonnote{In wxPython the returned wxTreeItemId and the new cookie
 value are both returned as a tuple containing the two values.}
@@ -370,6 +382,12 @@ Returns the normal image list.
 
 Returns the current tree control indentation.
 
+\membersection{wxTreeCtrl::GetItemBackgroundColour}\label{wxtreectrlgetitembackgroundcolour}
+
+\constfunc{wxColour}{GetItemBackgroundColour}{\param{const wxTreeItemId\&}{ item}}
+
+Returns the background colour of the item.
+
 \membersection{wxTreeCtrl::GetItemData}\label{wxtreectrlgetitemdata}
 
 \constfunc{wxTreeItemData*}{GetItemData}{\param{const wxTreeItemId\&}{ item}}
@@ -397,6 +415,12 @@ tree->GetItemData( item )->GetData(); ).}
 \end{twocollist}}
 }
 
+\membersection{wxTreeCtrl::GetItemFont}\label{wxtreectrlgetitemfont}
+
+\constfunc{wxFont}{GetItemFont}{\param{const wxTreeItemId\&}{ item}}
+
+Returns the font of the item label.
+
 \membersection{wxTreeCtrl::GetItemImage}\label{wxtreectrlgetitemimage}
 
 \constfunc{int}{GetItemImage}{\param{const wxTreeItemId\& }{item},
@@ -421,6 +445,12 @@ item is expanded and the normal image is shown when it is collapsed)
 
 Returns the item label.
 
+\membersection{wxTreeCtrl::GetItemTextColour}\label{wxtreectrlgetitemtextcolour}
+
+\constfunc{wxColour}{GetItemTextColour}{\param{const wxTreeItemId\&}{ item}}
+
+Returns the colour of the item label.
+
 \membersection{wxTreeCtrl::GetLastChild}\label{wxtreectrlgetlastchild}
 
 \constfunc{wxTreeItemId}{GetLastChild}{\param{const wxTreeItemId\&}{ item}}
@@ -430,6 +460,7 @@ Returns the last child of the item (or an invalid tree item if this item has no
 \wxheading{See also}
 
 \helpref{GetFirstChild}{wxtreectrlgetfirstchild},
+\helpref{wxTreeCtrl::GetNextSibling}{wxtreectrlgetnextsibling},
 \helpref{GetLastChild}{wxtreectrlgetlastchild}
 
 \membersection{wxTreeCtrl::GetNextChild}\label{wxtreectrlgetnextchild}
diff --git a/docs/latex/wx/treeevt.tex b/docs/latex/wx/treeevt.tex
index 3889143b0f..98980ad290 100644
--- a/docs/latex/wx/treeevt.tex
+++ b/docs/latex/wx/treeevt.tex
@@ -20,8 +20,8 @@ functions that take a wxTreeEvent argument.
 
 \twocolwidtha{9cm}
 \begin{twocollist}\itemsep=0pt
-\twocolitem{{\bf EVT\_TREE\_BEGIN\_DRAG(id, func)}}{The user has started dragging an item with the left mouse button.}
-\twocolitem{{\bf EVT\_TREE\_BEGIN\_RDRAG(id, func)}}{The user has started dragging an item with the right mouse button.}
+\twocolitem{{\bf EVT\_TREE\_BEGIN\_DRAG(id, func)}}{The user has started dragging an item with the left mouse button. The event handler must call {\bf wxTreeEvent::Allow()} for the drag operation to continue.}
+\twocolitem{{\bf EVT\_TREE\_BEGIN\_RDRAG(id, func)}}{The user has started dragging an item with the right mouse button. The event handler must call {\bf wxTreeEvent::Allow()} for the drag operation to continue.}
 \twocolitem{{\bf EVT\_TREE\_BEGIN\_LABEL\_EDIT(id, func)}}{Begin editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.}
 \twocolitem{{\bf EVT\_TREE\_END\_DRAG(id, func)}}{The user has released the mouse after dragging an item.}
 \twocolitem{{\bf EVT\_TREE\_END\_LABEL\_EDIT(id, func)}}{The user has finished editing a label. This can be prevented by calling \helpref{Veto()}{wxnotifyeventveto}.}
diff --git a/docs/latex/wx/tsizer.tex b/docs/latex/wx/tsizer.tex
index 4f60169188..618c9f7b04 100644
--- a/docs/latex/wx/tsizer.tex
+++ b/docs/latex/wx/tsizer.tex
@@ -3,7 +3,8 @@
 Classes: \helpref{wxSizer}{wxsizer}, \helpref{wxGridSizer}{wxgridsizer}, 
 \helpref{wxFlexGridSizer}{wxflexgridsizer}, \helpref{wxBoxSizer}{wxboxsizer}, 
 \helpref{wxStaticBoxSizer}{wxstaticboxsizer}, 
-\helpref{wxNotebookSizer}{wxnotebooksizer}
+\helpref{wxNotebookSizer}{wxnotebooksizer},
+\helpref{CreateButtonSizer}{createbuttonsizer}
 
 Sizers, as represented by the wxSizer class and its descendants in
 the wxWindows class hierarchy, have become the method of choice to
@@ -192,7 +193,7 @@ the buttons shall be centred as the width of the dialog changes.
 It is the unique feature of a box sizer, that it can grow in both directions (height and
 width) but can distribute its growth in the main direction (horizontal for a row) {\it unevenly} 
 among its children. In our example case, the vertical sizer is supposed to propagate all its
-height changes to only the text area, not to the button area. This is determined by the {\it option} parameter
+height changes to only the text area, not to the button area. This is determined by the {\it proportion} parameter
 when adding a window (or another sizer) to a sizer. It is interpreted
 as a weight factor, i.e. it can be zero, indicating that the window may not be resized
 at all, or above zero. If several windows have a value above zero, the value is interpreted
@@ -312,3 +313,25 @@ aware of:
 box around the sizer. Note that this static box has to be created 
 separately.
 
+\subsection{CreateButtonSizer}\label{createbuttonsizer}
+
+As a convenience, CreateButtonSizer ( long flags ) can be used to create a standard button sizer
+in which standard buttons are displayed. The following flags can be passed to this function:
+
+
+\begin{verbatim}
+    wxYES_NO // Add Yes/No subpanel
+    wxYES    // return wxID_YES
+    wxNO     // return wxID_NO
+    wxNO_DEFAULT // make the wxNO button the default, otherwise wxYES or wxOK button will be default
+    
+    wxOK     // return wxID_OK
+    wxCANCEL // return wxID_CANCEL
+    wxHELP   // return wxID_HELP
+    
+    wxFORWARD   // return wxID_FORWARD  
+    wxBACKWARD  // return wxID_BACKWARD 
+    wxSETUP     // return wxID_SETUP    
+    wxMORE      // return wxID_MORE     
+
+\end{verbatim}
diff --git a/docs/latex/wx/tstring.tex b/docs/latex/wx/tstring.tex
index b40d241257..d69304d57e 100644
--- a/docs/latex/wx/tstring.tex
+++ b/docs/latex/wx/tstring.tex
@@ -9,8 +9,8 @@ wxString is a class which represents a character string of arbitrary length (lim
 arbitrary characters. The ASCII NUL character is allowed, although care should be
 taken when passing strings containing it to other functions.
 
-wxString works with both ASCII (8 bit characters) as well as UNICODE (16 but
-characters) strings.
+wxString works with both ASCII (traditional, 7 or 8 bit, characters) as well as
+Unicode (wide characters) strings.
 
 This class has all the standard operations you can expect to find in a string class:
 dynamic memory management (string extends to accommodate new characters),
@@ -48,9 +48,10 @@ very useful but don't exist in most of other string classes: for example,
 \helpref{BeforeLast}{wxstringbeforelast}, \helpref{operator<<}{wxstringoperatorout} 
 or \helpref{Printf}{wxstringprintf}. Of course, all the standard string
 operations are supported as well.
-\item {\bf UNICODE} In this release, wxString only supports {\it construction} from
-a UNICODE string, but in the next one it will be capable of also storing its
-internal data in either ASCII or UNICODE format.
+\item {\bf Unicode} wxString is Unicode friendly: it allows to easily convert
+to and from ANSI and Unicode strings in any build mode (see the 
+\helpref{Unicode overview}{unicode} for more details) and maps to either
+{\tt string} or {\tt wstring} transparently depending on the current mode.
 \item {\bf Used by wxWindows} And, of course, this class is used everywhere
 inside wxWindows so there is no performance loss which would result from
 conversions of objects of any other string class (including std::string) to
diff --git a/docs/latex/wx/ttreectl.tex b/docs/latex/wx/ttreectl.tex
index 30847cf1d9..4298d96a6b 100644
--- a/docs/latex/wx/ttreectl.tex
+++ b/docs/latex/wx/ttreectl.tex
@@ -6,7 +6,8 @@ The tree control displays its items in a tree like structure. Each item has its
 own (optional) icon and a label. An item may be either collapsed (meaning that
 its children are not visible) or expanded (meaning that its children are
 shown). Each item in the tree is identified by its {\it itemId} which is of
-opaque data type {\it wxTreeItemId}.
+opaque data type {\it wxTreeItemId}. You can test whether an item is valid
+by calling wxTreeItemId::IsOk.
 
 The items text and image may be retrieved and changed with 
 \helpref{GetItemText}{wxtreectrlgetitemtext}/\helpref{SetItemText}{wxtreectrlsetitemtext} 
diff --git a/docs/latex/wx/tunicode.tex b/docs/latex/wx/tunicode.tex
index 693edee8e5..bbbc90c9ee 100644
--- a/docs/latex/wx/tunicode.tex
+++ b/docs/latex/wx/tunicode.tex
@@ -160,7 +160,7 @@ Although everything works fine inside the program, things can get nasty when
 it tries to communicate with the outside world which, sadly, often expects
 ANSI strings (a notable exception is the entire Win32 API which accepts either
 Unicode or ANSI strings and which thus makes it unnecessary to ever perform
-any conversions in the program).
+any conversions in the program). GTK 2.0 only accepts UTF-8 strings.
 
 To get a ANSI string from a wxString, you may use the 
 mb\_str() function which always returns an ANSI
@@ -175,7 +175,8 @@ the Unicode string.
 \subsection{Unicode-related compilation settings}
 
 You should define {\tt wxUSE\_UNICODE} to $1$ to compile your program in
-Unicode mode. Note that it currently only works in Win32 and that some parts of
+Unicode mode. Note that it currently only works in Win32 and GTK 2.0 and
+that some parts of
 wxWindows are not Unicode-compliant yet (ODBC classes, for example). If you
 compile your program in ANSI mode you can still define {\tt wxUSE\_WCHAR\_T} 
 to get some limited support for {\tt wchar\_t} type.
diff --git a/docs/latex/wx/upduievt.tex b/docs/latex/wx/upduievt.tex
index 925f4b6ef0..ef4cd1fbb1 100644
--- a/docs/latex/wx/upduievt.tex
+++ b/docs/latex/wx/upduievt.tex
@@ -5,6 +5,7 @@ to give an application the chance to update various user interface elements.
 
 \wxheading{Derived from}
 
+\helpref{wxCommandEvent}{wxcommandevent}\\
 \helpref{wxEvent}{wxevent}\\
 \helpref{wxObject}{wxobject}
 
diff --git a/docs/latex/wx/valtext.tex b/docs/latex/wx/valtext.tex
index 0973e9df20..87ca0bb22b 100644
--- a/docs/latex/wx/valtext.tex
+++ b/docs/latex/wx/valtext.tex
@@ -55,8 +55,8 @@ checks if each input character is in the list (one character per list element),
 
 \docparam{valPtr}{A pointer to a wxString variable that contains the value. This variable
 should have a lifetime equal to or longer than the validator lifetime (which is usually
-determined by the lifetime of the window). If NULL, the validator uses its own internal
-storage for the value.}
+determined by the lifetime of the window). % If NULL, the validator uses its own internal storage for the value. NOT TRUE
+}
 
 \membersection{wxTextValidator::\destruct{wxTextValidator}}
 
diff --git a/docs/latex/wx/window.tex b/docs/latex/wx/window.tex
index a885f34a52..c784cfbb04 100644
--- a/docs/latex/wx/window.tex
+++ b/docs/latex/wx/window.tex
@@ -3,13 +3,13 @@
 wxWindow is the base class for all windows. Any children of the window will be deleted
 automatically by the destructor before the window itself is deleted.
 
-Please note that we documented a number of handler functions (OnChar(), OnMouse() etc.) in this
-help text. These must not be called by a user program and are documented only for illustration.
-On several platforms, only a few of these handlers are actually written (they are not always
-needed) and if you are uncertain on how to add a certain behaviour to a window class, intercept
-the respective event as usual and call \helpref{wxEvent::Skip}{wxeventskip} so that the native
-platform can implement its native behaviour or just ignore the event if nothing needs to be
-done.
+%Please note that we documented a number of handler functions (OnChar(), OnMouse() etc.) in this
+%help text. These must not be called by a user program and are documented only for illustration.
+%On several platforms, only a few of these handlers are actually written (they are not always
+%needed) and if you are uncertain on how to add a certain behaviour to a window class, intercept
+%the respective event as usual and call \helpref{wxEvent::Skip}{wxeventskip} so that the native
+%platform can implement its native behaviour or just ignore the event if nothing needs to be
+%done.
 
 \wxheading{Derived from}
 
@@ -521,6 +521,16 @@ The search is recursive in both cases.
 Sizes the window so that it fits around its subwindows. This function won't do
 anything if there are no subwindows.
 
+\membersection{wxWindow::FitInside}\label{wxwindowfitinside}
+
+\func{virtual void}{FitInside}{\void}
+
+Similar to \helpref{Fit}{wxwindowfit}, but sizes the interior (virtual) size
+of a window.  Mainly useful with scrolled windows to reset scrollbars after
+sizing changes that do not trigger a size event, and/or scrolled windows without
+an interior sizer.  This function similarly won't do anything if there are no
+subwindows.
+
 \membersection{wxWindow::Freeze}\label{wxwindowfreeze}
 
 \func{virtual void}{Freeze}{\void}
@@ -535,6 +545,16 @@ wxTextCtrl under wxGTK) but is not implemented on all platforms nor for all
 controls so it is mostly just a hint to wxWindows and not a mandatory
 directive.
 
+\membersection{wxWindow::GetAdjustedBestSize}\label{wxwindowgetadjustedbestsize}
+
+\constfunc{wxSize}{GetAdjustedBestSize}{\void}
+
+This method is similar to \helpref{GetBestSize}{wxwindowgetbestsize}, except
+in one thing.  GetBestSize should return the minimum untruncated size of the
+window, while this method will return the largest of BestSize and any user
+specified minimum size.  ie. it is the minimum size the window should currently
+be drawn at, not the minimal size it can possibly tolerate.
+
 \membersection{wxWindow::GetBackgroundColour}\label{wxwindowgetbackgroundcolour}
 
 \constfunc{virtual wxColour}{GetBackgroundColour}{\void}
@@ -1759,6 +1779,19 @@ erased.}
 \docparam{rect}{If non-NULL, only the given rectangle will
 be treated as damaged.}
 
+\wxheading{See also}
+
+\helpref{wxWindow::RefreshRect}{wxwindowrefreshrect}
+
+\membersection{wxWindow::RefreshRect}\label{wxwindowrefreshrect}
+
+\func{virtual void}{Refresh}{\param{const wxRect\& }{rect}}
+
+Redraws the contents of the given rectangle: the area inside it will be
+repainted.
+
+This is the same as \helpref{Refresh}{wxwindowrefresh} but has a nicer syntax.
+
 \membersection{wxWindow::ReleaseMouse}\label{wxwindowreleasemouse}
 
 \func{virtual void}{ReleaseMouse}{\void}
@@ -2682,6 +2715,17 @@ Returns {\tt FALSE} if a transfer failed.
 \helpref{wxWindow::TransferDataFromWindow}{wxwindowtransferdatafromwindow},\rtfsp
 \helpref{wxValidator}{wxvalidator}, \helpref{wxWindow::Validate}{wxwindowvalidate}
 
+\membersection{wxWindow::Update}\label{wxwindowupdate}
+
+\func{virtual void}{Update}{\void}
+
+Calling this method immediately repaints the invalidated area of the window
+while this would usually only happen when the flow of control returns to the
+event loop. Notice that this function doesn't refresh the window and does
+nothing if the window hadn't been already repainted. Use 
+\helpref{Refresh}{wxwindowrefresh} first if you want to immediately redraw the
+window unconditionally.
+
 \membersection{wxWindow::Validate}\label{wxwindowvalidate}
 
 \func{virtual bool}{Validate}{\void}
diff --git a/docs/latex/wx/wizard.tex b/docs/latex/wx/wizard.tex
index 2ae93d6650..5bb32f8170 100644
--- a/docs/latex/wx/wizard.tex
+++ b/docs/latex/wx/wizard.tex
@@ -134,9 +134,9 @@ also \helpref{GetBitmap}{wxwizardpagegetbitmap}.}
 \docparam{pos}{The position of the dialog, it will be centered on the screen
 by default.}
 
-\membersection{wxWizard::Fit}\label{wxwizardfit}
+\membersection{wxWizard::FitToPage}\label{wxwizardfittopage}
 
-\func{void}{Fit}{\param{const wxWizardPage* }{firstPage}}
+\func{void}{FittoPage}{\param{const wxWizardPage* }{firstPage}}
 
 Sets the page size to be big enough for all the pages accessible via the
 given {\it firstPage}, i.e. this page, its next page and so on.
@@ -160,6 +160,32 @@ Get the current page while the wizard is running. {\tt NULL} is returned if
 
 Returns the size available for the pages.
 
+\membersection{wxWizard::HasNextPage}\label{wxwizardhasnextpage}
+
+\func{virtual bool}{HasNextPage}{\param{wxWizardPage *}{page}}
+
+Return {\tt TRUE} if this page is not the last one in the wizard. The base
+class version implements this by calling 
+\helpref{page->GetNext}{wxwizardpagegetnext} but this could be undesirable if,
+for example, the pages are created on demand only.
+
+\wxheading{See also}
+
+\helpref{HasPrevPage}{wxwizardhasprevpage}
+
+\membersection{wxWizard::HasPrevPage}\label{wxwizardhasprevpage}
+
+\func{virtual bool}{HasPrevPage}{\param{wxWizardPage *}{page}}
+
+Return {\tt TRUE} if this page is not the last one in the wizard. The base
+class version implements this by calling 
+\helpref{page->GetPrev}{wxwizardpagegetprev} but this could be undesirable if,
+for example, the pages are created on demand only.
+
+\wxheading{See also}
+
+\helpref{HasNextPage}{wxwizardhasnextpage}
+
 \membersection{wxWizard::RunWizard}\label{wxwizardrunwizard}
 
 \func{bool}{RunWizard}{\param{wxWizardPage* }{firstPage}}
diff --git a/docs/latex/wx/wx.css b/docs/latex/wx/wx.css
new file mode 100644
index 0000000000..56240ba5ce
--- /dev/null
+++ b/docs/latex/wx/wx.css
@@ -0,0 +1,180 @@
+body
+{
+  padding: 0px 0px 0px 26px;
+  background: #ffffff; 
+  color: #000000;
+  font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+
+div
+{
+  width: 90%;
+  border: 2px solid #999999;
+  padding: 4px 8px;
+  background: #cccccc;
+}
+  
+h1, h2, h3, h4
+{
+  font-family: Verdana, Arial, Helvetica, sans-serif;
+  margin-left: -26px;
+}
+  
+h1
+{
+  font-size: 200%;
+  margin-top: 1em;
+  margin-bottom: .6em; 
+}
+  
+h2
+{
+  font-size: 150%;
+  margin-top: 1em;
+  margin-bottom: .6em; 
+}
+  
+h3
+{
+  font-size: 120%;
+  margin-left: 0px;
+  margin-bottom: 0.2em;
+  margin-top: 1.5em;
+}
+  
+h4
+{
+  margin-top: 1em;
+  margin-bottom: .6em; 
+}
+
+h5
+{
+  margin-bottom: 1em;
+  margin-top: 1.5em;
+}
+
+
+ul p, ol p, dl p
+{
+  margin-left: 0em;
+}
+
+p
+{
+  margin-top: .6em;
+  margin-bottom: .6em;
+}
+
+dl
+{
+  margin-top: 0em; 
+}
+
+dd
+{
+  margin-bottom: 0em;  
+  margin-left: 1.5em; 
+}
+
+dt
+{
+  margin-top: .6em; 
+}
+
+ul, ol
+{
+  margin-top: .6em;   
+  margin-bottom: 0em;
+}
+  
+ol
+{
+  margin-left: 3.6em; 
+} 
+  
+ul
+{
+  list-style-type: disc; 
+  margin-left: 1.9em; 
+}
+
+li
+{
+  margin-bottom: .6em;
+}
+
+tt
+{
+  font-family: Andale Mono, Courier New, Courier, mono;
+}
+
+pre
+{
+  margin-top: .6em;
+  margin-bottom: .6em;
+  margin-left: 2em;
+  margin-right: 2em;
+  font-family: Andale Mono, Courier New, Courier, mono;
+  color: #550000;
+  background: #eeeeee;
+}
+
+table
+{
+  width: 90%;
+  background: #999999;
+  margin-top: 0em;
+  margin-bottom: .3em;
+  background: #ffffff;
+}
+    
+th
+{ 
+  padding: 2px 4px;
+  background: #dddddd;
+  text-align: left;
+  vertical-align: top;
+  margin: .25em;
+}
+    
+td
+{ 
+  margin: .25em;
+  padding: 2px 4px;
+  background: #eeeeee;
+  vertical-align: top;
+}
+
+tr
+{ 
+  margin: .25em;
+  vertical-align: top;
+}
+
+a:link
+{
+  color: #0066ff;
+}
+  
+a:visited
+{
+  color: #996600; 
+}
+
+a:hover
+{
+  color: #cc9900;
+}
+
+
+
+body, td, pre, tt
+{
+  font-size: 100%;
+}
+
+h4, th
+{
+  font-size: 120%;
+}
diff --git a/docs/latex/wx/wx.hpj b/docs/latex/wx/wx.hpj
index 07caa08bae..037b040bba 100644
--- a/docs/latex/wx/wx.hpj
+++ b/docs/latex/wx/wx.hpj
@@ -1,5 +1,5 @@
 [OPTIONS]
-BMROOT=c:\wx2dev\wxWind~1\docs/latex/wx ; Assume that bitmaps are where the source is
+BMROOT=c:\wx24\wxwind~1\docs/latex/wx ; Assume that bitmaps are where the source is
 TITLE=wxWindows Manual
 CONTENTS=Contents
 COMPRESS=HIGH
diff --git a/docs/latex/wx/wxgtk.tex b/docs/latex/wx/wxgtk.tex
index 8d12d3b588..2b2d8c176b 100644
--- a/docs/latex/wx/wxgtk.tex
+++ b/docs/latex/wx/wxgtk.tex
@@ -5,7 +5,7 @@ from www.gtk.org. It makes use of GTK+'s native widgets wherever
 possible and uses wxWindows' generic controls when needed. GTK+
 itself has been ported to a number of systems, but so far only the
 original X11 version is supported. Support for the recently released
-GTK+ 2.0 including Unicode support is still under construction.
+GTK+ 2.0 including Unicode support is work in progress.
 
 You will need GTK+ 1.2.3 or higher which is available from:
 
diff --git a/docs/latex/wx/wxstring.tex b/docs/latex/wx/wxstring.tex
index 9ab8067f36..0ba4b7638a 100644
--- a/docs/latex/wx/wxstring.tex
+++ b/docs/latex/wx/wxstring.tex
@@ -660,7 +660,7 @@ If {\it fromEnd} is TRUE, reverse search direction.
 
 If {\bf caseSensitive}, comparison is case sensitive (the default).
 
-Returns the index of the first item matched, or NOT\_FOUND.
+Returns the index of the first item matched, or wxNOT\_FOUND.
 
 % TODO
 %\membersection{wxString::insert}\label{wxstringinsert}
diff --git a/docs/latex/wx/xmlres.tex b/docs/latex/wx/xmlres.tex
index 16d57d69fa..1b5974706a 100644
--- a/docs/latex/wx/xmlres.tex
+++ b/docs/latex/wx/xmlres.tex
@@ -229,6 +229,12 @@ Loads a toolbar.
 
 Sets the global resources object and returns a pointer to the previous one (may be NULL).
 
+\membersection{wxXmlResource::SetFlags}\label{wxxmlresourcesetflags}
+
+\func{int}{SetFlags}{\void}
+
+Sets flags (bitlist of wxXRC\_USE\_LOCALE and wxXRC\_NO\_SUBCLASSING).
+
 \membersection{wxXmlResource::UpdateResources}\label{wxxmlresourceupdateresources}
 
 \func{void}{UpdateResources}{\void}
diff --git a/docs/latex/wx/xmlresh.tex b/docs/latex/wx/xmlresh.tex
index b469b224bc..eb6e2ba273 100644
--- a/docs/latex/wx/xmlresh.tex
+++ b/docs/latex/wx/xmlresh.tex
@@ -56,6 +56,13 @@ Add styles common to all wxWindow-derived classes.
 Returns TRUE if it understands this node and can create
 a resource from it, FALSE otherwise.
 
+\wxheading{Note}
+
+You must {\bf not} call any wxXmlResourceHandler methods except 
+\helpref{IsOfClass}{wxxmlresourcehandlerisofclass} from this method! The instance
+is not yet initialized with node data at the time CanHandle is called and it is only
+safe to operate on {\it node} directly or to call IsOfClass.
+
 \membersection{wxXmlResourceHandler::CreateChildren}\label{wxxmlresourcehandlercreatechildren}
 
 \func{void}{CreateChildren}{\param{wxObject* }{parent}, \param{bool }{this\_hnd\_only = FALSE}}
diff --git a/docs/mac/SetTypeFromExtension.sea.hqx b/docs/mac/SetTypeFromExtension.sea.hqx
index c13813779d..8ec967d057 100755
--- a/docs/mac/SetTypeFromExtension.sea.hqx
+++ b/docs/mac/SetTypeFromExtension.sea.hqx
@@ -1,2637 +1,3137 @@
 (This file must be converted with BinHex 4.0)
-:'&0PG&4jF'9'FQpY4AKdC@jcD@pZ,R0PB3""8&"-BA9cG#%!N!0(8J!"U0@CV90
-dG@CQ5A3J+'-T-6Nj0bda16Ni)%&XB@4ND@iJ8hPcG'9YFb`J5@jM,L`JD(4dF$S
-[,hH3!bjKE'&NC'PZFhPc,Q0[E5p6G(9QCNPd,`d+'J!&%!!!4e)!N!0b!!%!N!0
-b6G80TD95CA0PFRCPC+@P!+@3"!%!!%3!!,D!![bh`B*6!*!0&(4i!*!18f9d9(P
-`C8CbEfe&H(4PER0TEfi!!4VV39"36%&8)$8K!2q3"!#3#S!!N!QDZ3!!4QS!N!3
-2!%,"e5%)JpM$!kkic&Td8mAl6IVd3E%@86&kQ$[45S*0"IHbqmDJL)!VXqR0Je#
-@%QEr**63T5KSfm4Np%h3qbFJHVP!@%DRCII$[9X[JemmSP!j%Ql[h4[3A-Uj6`k
-Q[CH*1C&EL%5jZ90"J-Cp$Lk3!1f4j'825BlL[D)#Y[6Ta[5SHTYJN`2`IN6&2p0
-bB-,qRNfpZ2i`b1I)q!DQk6q&C#Eca,UeiSK2DA-+FPXIpi9&r&!DEEp-3Q9Z@AG
-4l+Pa'8U-DDIY%rTl@A*6p*ESM[GF+"N1PYR-6HZB89V3lUKJF-1SmI#F(i-$l`&
-FYd+R8eVEHQEIQmXJjrkG*IPLRK8rQmkBfAZ#Rk3MG3kVc+hDfcIJ59p0Tkb8"Dc
-25mFIU,lPLT5SIp2iR8TcIU)q*%V!@0&VFY!r)q8SkI8FB&L4B0mQF+H0JE2,3+)
-M9"b14MNMU8YMV0r`V0'1ZRDL[b`bX'&-DB,rNCJD1+EP`m#kA)&*me2Rk$B6B'6
-$Q&#f($idf0['m,S#pZIGlKB)LLTb`ZXXBIp$VmPVl$$i%0AbCGQp9pf@K,IAF2j
-`N!#-(2(f0QAF85Bijrq[(3UYF+$Cp@8PC6KQ5F9)j6c%m3P!A1#@-3Kfm$1+FUi
-fjA(Heh6p@L64-`AZal#r,&!%1aHSbcQ"S[fJq3$APc[#Sq0mJVmJGr1GN!#0(eb
-a4`YF'U@j8ADj$YAYcpc2mCXlr'1U&1aE(U@&L$cpNV[lIh2IZHZl!eXpYek2Y['
-Zm-+E[PTB+*kLI8h9Jj5mb,BCmpH0Gk9$X'!aiQYUK0'$CqE,A!Bf"aX%8h$*P!H
-$ke$(bq'K!*p"mSQX+4J%A-$9'-2K56cEiRGRAqD+`!m+N!!#`mp2TPV"6b4Jk9d
-iXj4qIULT09M@JN4FA%D8ma0Y1Q,*JY-Td3Hqd[i`US0KTpqP$RkR,C@d+&5Xiai
-MAC-5#MGDcpD6GKKkrM@E#rH(ND#%hBd,%"RJX-&CCRL4@Q1!'3,`5d`f&f[MFa(
-9LRaLhYlKjKXPRNI%!Y9pR@4Z,kQ2e@1AqTHYN[ihdL1$1AL@[lEZbQ%RYZM"@X)
-%aLNRY@U`92`am&dVXSj$%IHZXIi8Y#56CHbEP[2P-XG#J8hQ[([faTrYh2*k4$'
-#E4T@Afe#'[`plfLMY!M,0eN"i[&IE2)I$`$$9r+cNcB2Z-$#CDm,j#63qHNFd5E
-0l3)fE'UQdmNU#9X5XN0M#H9frZdN$)Gm)$@dXZH(U2lA9)j2PjBC&jYL@K4pEr`
-ffK&pR$Xak[3Z+NG42B51m(*+0FrbDC!!pMiS43eIfCa1aP)`Tr"(#TCcS$ESaaD
-"A%U`Y'5%R*l(&PbdNH4E`(c0JhH5`CRkM0P#qe%ihK%ZC$ZN3IA6Te%B)Q-kF2V
-0rf&@$F5Pb&brajp8"Ni`(,*e"A"C`#fElhD,,#U1pqGr2CpVrD5f(Ub1E'+6"lV
-,a89e56%hR-8lb%8Z[[AY8c+D@i`@Uq6c0SRefM$$VpdKC,FE`AMk0RYcIr+A(4e
-CHhK0p893KM)4LUVjJAmBdKU""8*SI8i`5--Nl4rFil"PfU+-e0KU0*Q#)BQK$9$
-lhGImAYl,kUX'NcMil#lLer)H`dNB*6klaedYE2*J2U16!%Vl-rE&I$Pke5VTc(@
-GPDijhDUPbmjk@Jaahe"QR(`QRHmYF8mH"QU%"E8bYX3ZC&6r([Mq&ZrHbakH#rA
-[e&G2[&6,IVk6)V*rk),CfKDL'EX!GIK$TF#3!'SVclI!@2Qb"FHMpM,K*h%KabN
-'fZp#'XrMcl5R8jYA%UFH$!9NI"CP#P"h9p-AG0EkH!5Za96fTqJ5T'!M&RX-L,J
-'bLadPJBc`ca1pdf#Jij*H15aY2)l[rh4TJT$9XZ$NNEY"2G-MFTMqUD(Rp-GNIq
-'L(B)5+CV2*1!qE*FMibI$YJIp%V(2XG30qVqbEH"b*JGXp*2QJ"!@eF!J(fKi"6
-afHRBC1YHShA*Q0m&qr1KIZlQ#-lVm,pV,l%S+&C5Y-'56mj3YM8M2h4Y(8GE606
-+Fje2dT!!1D0lT)I2qRN1Z(cLYl3#`U,B4G5,UjG#*U@6JfCi2Pp4+4,FIAfipTq
-ie"$R8EYE-)Af#NqMQGKKJaAk&$4dDM#+XZe&Gbl+6LNZbl4PF+C$jSe)bi9"RXM
-j*k83%3De!JY0'eD8U3[JJ,J5VPd`Tl`,Rjc2*ACTpHrP6C2&kAE14EH,C*[M,)4
-M6%ik,ccJ"q,p+qi#rI5QHARa4qqbjbAV2`rDPNP#iXIVBCFKiRLrLGD1pI5"@j4
-6E+SVHIi4c44@[6j5hM@,-G2m+KEU,MV2`9UFcAYVa6eH2CQ5`*8rP+9ZmE9Qb$1
-&lAGi#P9Z6aIR$Zblh*UI-+3%V"Ph)'((F9l&fQ`qUckD65L+BCT`mj-`XQk$0q+
-'a52lf2-+l*khjbhlCCQN3qfbS8[133a%$p!+-'q)&#MmF(f[JVq@hdQZk!B)FSK
-Gj02%)5[`j1PD-"!CU6[hZ)9rk&Vef&+hQIM4+90F2`S8Y)I00cLMVLHfiD4T@B2
-"E5,,hBkZJ&%a0FpkSB&-c6)iKLLj025M48Y%Ck4cZ'CQIha8hlfcRepYi4diUcc
-MGpd8RJ+A",'rMpD3!%)d)&9Zaf4ZijKIrUJEka@VmB#ZdIHj&qiq-q2"LQhq)2L
-i-#Y'HLGR4eK5)I`Np"CD9S906I!-[D#e`-#lmdX0MS2T&RYRJ6%ad%&#DDS@CYD
-"cbQ`B[05P-M-Qba[#C!!G'AK)Y$ARQppR!LUN!#(#0Lcp"cYF8HMZG'`TUGQ6GJ
-H`4mf1V'fqL5TJ(9%Mrh`2SVRiIMeGZQBA"&i58m"BG1F@TaA#!D28-XLY+4!AV4
-MFDl3&j&)"ZKla,VVJ-8BP3IAVLr0iQkpJSQk5%*2Am%U3Nk&G(99KpmfD[C0qRC
-Lc)q*(dQF"Gpd0cR5Xa%G#Ji[FC-PHkHlS59ZY)(#&pH5#f$&(B5$U@LY5-@Y214
-0'lpDCSl@DP`plkDj#TI$+#l`[&4Td4rP061CpqFFVXX`8A3)a)C+"h$2&Z9+)Jp
-$5!l8r#F5%j-UY6Vf[r%,V$"3I#MXj%$#Sbi#!(jDB3fG[HrHU53j6b,S[YQK'ph
-TI*Xjb(T@R6cP$4X`TQi[cBPThhPhA%X418#(190'T[GZ2DC4,(hB36X[HT!!#fq
-rR&hmG+ZCb4ZY`T16S3m5VQ8eAcK,*Z)H(,,,LYF%fcj25MKa(BVf0"(YD!3d-TB
-md(R2(cPK!Njaqhk29[PeJ,e$DDF+DD,Ye5X&"Zk`ireH@XAT(6@L3EZBNI`X'k9
-",,pAB5bAZK*d'Aa`pDhQ@6%TBQ+SRD&V2APMc6mChCC%SkEUR&a`EqH*bhXb#')
-Z91'pmAZ-U"CY4@P!kb"IlR$FX,!Ee,%9am2X10Sdj*68#B1CA(U1NTcm(LH0D)S
-HDG!PepIG4T%`)0pFP#J84*3QD90&L[*D%@h0Vj+VZBZ,pYJ+"dlPR*+3!&"PU(Q
-R2q+hPFRrP(SM0i+%3e@lCC[VjkBE-P0C@0q3!%'KR8dhd"EqEP5NVZ'a'G8"04!
-A4(5D36(,GH-kS[4mCBZp4H&[*E*5PeEY0K9e5BVNF`lK9K#1K&5ekR!B)S4$8$q
-@h60h-XE2JQcJ!9bK[V&T@U05P$ml"h1C+M%`VQFG0D#GqD"Zc%c$ka%bC'5"pEZ
-U@(J1UQN+%%(%i@FcrLleX-C3GTX+VV!LDFh4Nm9F9Ki&$e[1+(li[Zci8D,Q0)F
-V4q+$'6mr+A5jC63B,),Mi+fYHGRRNB0D9$GRY!Kf#CC8aHfBP$&FhHdL05aM,$V
-3-9Z'*"Ga3Q!+lUaXA-Z!Fa@N[r3XC$3#*#3$m*!!$2@6Bid'I(Y,Se@,Z'cBCf!
-Be(i+rb)bZHYE$[Jf1(H!5GrB2D"550a0NZ@JG&@'#D&fM2Sd%NLLIaI"`dhQ26+
-hbIG+`Qm'ZfQAV8Fe$!1)II))fj!!AppKl2(YZ##EEpi[pq$V%X5[Kb8J"k#lp$Q
-)e4YAfX2d$"kHYlD*4SM)8SFDQ@9(H@Gc6ZP9IeI'4"NIU&eR5A[pjUcFjl1NiUC
-kGRFd1C%Z+m*c#BGDam%-2h1k%39FRrbH,Gll!dEGj@$"!G)&RJqFd`$'K+8rT%+
-C2[9A2kbNkfj*`4e+S,mpIXQR1CB%46&EN!!k4dl+rrE!"M%*h%dBA)$"mTI`2"8
-"&'ia0))R*XPd`A4R6[ea-Yij3-3d85@U+Uf`6iG[GTVc`B@,cfTdCPE!H`1-M"c
-I,FF5AHj!2lqd(0If,YeBFJK58++5R)8,YG*6'+Jh0Rfm$1P9FAhcBY'0CPkVj`8
-SZ5k`9rfM0"F*@c@(RemjL"B@M26'0GR)55I"SMR9jkh5Ml+Xl-fILF#RkS6[1Ii
-m#@VfE@L&lE2jPaN&0U1CiNcmc'bbM(4q$'Z5ICSc#Hr9fe`38,h"h'qrBRCDpBf
-KIh40Pe,EH)rPcT+&'ARB"QKZ4&@CSf0#+d8!h4j`(B8'-A%l!*Q%!P#$`MZKdYd
-'-RNp"!0l9&'-IK9TRV`'*Uhr`SRJbQKdTX$S12'JjEeI*6l[L`G+IH+CflJPXee
-F"em*f5K&mp!UGl+FAi%fRN($!#fR8#Nm[GcUAMf5p4FPXi@HBYR9dXYeIB,Y)6B
-XbG0b&hck(1JR63Q9XAl!'d#DFjQff5!ahKF%9cVk,0d#m*L$,3$VMM@'+`4"-#8
-iA!jmbc11H&p*Qi-&'(I3C&-#ZBBaK3'U(di(dIcESk@R1l)k)%)PTPkB)@-lmSL
-LkF3dKbJ*9*q,$VaC(Y!(H)8(fa)q9E-prHB!#8mZN!"ScTL)$941X-RiC8ALAq4
-3C8J@kc0dG9(i@!M26Vr*pmSJ6c00l0ci$c`p,4F+*3)bJdGfpiMr2P&1db`E(j9
-@"Tc9+VAV(aUa0#T321!eZ#8Sk9%[&0I'V9FC6G&[@XkYf4Jkiaad2I+#NVmaqJ$
-BAX"4",PN,Mp[KeY2Pm,MP&+pL*2lf`FfaZ#NcFL$De9d%re9X-UdYKh#4--PMHm
-m*T42Q5B4KC,RldfZ&d9dTS0YAj!!mbqcce)HKV,(b"fN!U`kj[M&bLmE,N2)L8P
-0P!K9`BV3UH!,5[cJ2['1"*TRPTZ(KeLK$C2f`9$KSFM"fUINm@8iAk%)'f2-+,i
-1mMLS`JDP,bXY%9mFQ5RVp,,jece0AcRe$Q'D,#-)-9aU$35LAc$qALIT)A$3$#V
-irhZ#)0bH!0YA6dkR$Jj8&1"48a4b'e4XFUIpb"L,TP[`AHQfT@G*T(0aU8,HRYm
-,HprR0rHFB'!XGd#H5Fjp3B4UbG%8ADh,H'A81YRqcPScF""Y2c`Sc%+[8h[NFA`
-`q09#kZF)c1Jd%FUIJY0ViXTla#im5(&F%h0h1@YZ["dB,(qZ#[r$5HkKU0L$JL+
-Ua8qc92'hTEfPHfA@!4V5-K2r#!SLYEBQq@,[,djbEV(9qA,'$lp'Hk!Ah$cfJ`E
-'Nqq,)ZFUJ36+'XCX!rVKc3(9"[aArCa9mSL2U#AALTm`dMCD48%M&r9FcG@e!Mq
-NAQe4ZABB'dNNbE9IRE0,(NZ!Dmc`dQ2F,%GPd$Md6B'!RS)d"XJ4Yde$!SqH!1D
-ilT&[2JkY@0,)0a6-1#D'r+hGIc&I@V9%BEKG%d[kacSrb0FIr-EZrkKZ9YGJq4+
-9!jHG$4Xlh"Y(bZ`Fl8j+4(P[95NDADd[4Z+R2U#ifGdB-L'X,BEJpGS"flBpFK"
-IV8i(Q'e`#Pm@,VHLTq[`!(HhYP&T",qP'L4)e)D'cT1MmpR(`a@A`S+F6"HPm`0
-I6+XUJCr0SD$h&rT,Q2[-3fc5UG,eE66KPHaPm[jZ$V'A!f'!a%3L,bJEa%3b*40
-LM#Hq5p$NCmlY&j03Nd1!#m&iI&jf@DA[Y5$NI84'X"$YA,XJETqSN3)J31q`EjP
-3D`#%bpXcp1`qGBA6!8dbV4Kk*@EZ9&QjDCPeFe8@Md!MUlG!G!E6iQNEhe2!c0f
-9$jJ0ILa996cPar"f35FeNeR0DVHE`Ih-5AKZG8GkN6MZ*,k"TF$)Ud'5G3pCY6'
-B#Zd0&ar*4J#3!$9mVGND9YX!U)kQ8YmV0L-pmMC"fhf!6hpP(`ESe6`45`ILfKQ
-F&8EADQeUA1NCqRNmBNZSLcd*,#"6)K$ElYAh%5XpFb,L0+E%X@RS'F6LeaEe,QD
-2dC+&)[VV1jdIhX4IV%D1Tm"mHAiDLL`j6L[D$&j+cYSqFfXq5%F-42cHDd!4-bK
-XZLF-[*6"`mTr682P58"E%YbrGC%cN!"m$V4)G19-"e3G-ckMd@EK03qSKmL`9fb
-'[kiA!Ha&S)mK-E[1QK9)"&KrQ2%$-D1M)j*&V2`rEd,*&K+0VN6(FDLbM5hb'Y3
-eK%KQpSJ[dZ56cF`&J2MJF4A8+L@$U&q!BISHJ`3AeYk*KU-I,U"V&i+i6L3[#U2
-l4*'X[#PL2HEXimhFVS8G@,d)'F&@KUfc*i(%r!DXBkaJMZ$3l9RUX41feEIGc4-
-&MF6ADLU#(pR"QQc0l,pC2[aUCIG`5EGY0`IM5Lldl`0kd(l'k1kBZe5U!-TN$4(
-i9#N*6cZ,U0R`0`'bX),AbMDR-!DpU*m0&R%mBEKVSSYmFE8T@@+mK-JYLL+H-Zr
-KhhBD[L3U@)0%q#Jbqm9e@jcVj$'p6ji%9,HRb!hr5Hi66c*+1VNV1bk+f)2h+DZ
-NDkhKNT!!J6A'AqY$[KdU!+ALUA"6Xf3fHKM'EBKAQf!rPC,diVHLQM1Bd8(0,iC
-aJUHbF!8hMP6r!"Sp511JLrb!LDGli9mmJp#Z$rU&-QkYkQB*5k24E30lp86@aq3
-S#82(dSlk9EX+&fTD)9'9`JMaPEA2[,FNLmcpFiQD-S4FdaMZY*YF1d4miJrP!JE
-p+Z4mSrp4G,JrbTLZJmf9[QG4*Dq4qiSH!`kk5UmM+8KF`m5EUdpGk!3FaqrM45N
-)4h`QF2%0F9*6IKfeKLCc9+Vf9[JAJc%llXeMP'',F'FVDH!4,-f"''C+YTjRBB+
-r4pS8mcE%DjK,U@i6h-hfeaZ1b%0F-8TLfZ3@kTmE`0'MRL$Z(+XrcU("+DjpDRC
-d"p#hJejMF(HQpHQhUJrR2FBd#b"P$fELbFQ!0k16P@c*qNbi#@KEfG,bLFC4QY"
-YGNf81Y0GhjSQEmEQISiE)2TC4-NfRrYY*m(1DXU`4S3(*V9Ll35EGqKCJPZ1bJI
-HNH!4)mrD6D)PVGiTS3#p6R&JpA(TrCB0&0504+U#VYj5DbY#N!!I1mSe%iKPjX%
-@a(Qhj'@[M6EdcchCdj%'ID!GE0$ICl[@M%kV5&rFPMM['QJ33fH&54r*RZ!AV#8
-mPN#9Epql-k3p$,Ch-FfM'JidZ"KHY3"!&-PY(f23R"B&TU)6B$p(L[)Xh0SYLCN
-0PYEJ"3,6EH1diMLC9XBTIZRLhM(q0(U0JeTd()Zmrkr3J8-L(+hm(Ic%U@D6[mr
-"6%piFH"cDr(pX!Q"'40-U-dr[I[6ERCcrDD2L[6C-!H"A01S'AhHU%JdVq[2fE2
-!M#&5EckCjBDZlIrR6EA5#IeeQ0Db#0cBMiAC5MTTMJ6ca"E#rdkE'Cb+!dQaY22
-JXATXqdBq9)Q)LY6&IZec9)ib`'*ZrekrYJTXI+i91"5C-X$@DQS8GC(lq(#Y(`Y
-,%9'82dGmRc65LB0bU3jdGmK2D0-LSmaEZSpKP(rS0iT+Y%mh8fb`ap6bPCT@'11
-)&Qei1*jGm0MTUB-3C8iMbBpVAiXPDYe`UY35ZA4qZR'@SQ$6-)BhMk8JZRK[pi4
-)+1!ZiVVQ4S!%I%(kX$[l5X[X@hj#C%6Z`CQ6D2,%YNcl6[,'K+aNcj@QM[0lml@
-dk+6mKea+,p)L@NXML[ATIfU!,@Q`l9jJ3X5a+Xm6YEcMXCid8"EqbVI$$r&L1p(
-l6"@Sl%q(*ld%fHBF3,J6Xk[$cE"$L#4f,Q8ZA`%F0L#$(VP#hEY&`'hcYZG#!AB
-19Zc6(*cd&2U4bebE`'$1!E2TaMQl+rSbZkLeNNj)m1l,pSZ'-Z2ZXh'GC8Lfd0$
-*8J3Pd'cBP3T+qfN@!63A2Vh,9Brehb"P`KJhUfVHYfREUmq(6Q,Q)ajFlF[GS9E
-U"(mTGL`qB"'pfQ%hBGlDIBjhN6GTQ"#,F-YT5I@hTD"`bKlQfUCZ#0%iCK'@%F1
-FAc-ZI"42YY8hK,3Aac9ENJT-LXd[iFU1T"&Z'1bqK@h*&G65`p)PN5EmKY(T-mf
-4G812PkVGhM3+Fl@E6SaF%Ia0i6E'((H1N!#C2)[-40P23Ip(f)FXjN4E0(rkk`P
-Sbj[X9!laT)F2X@ThX@3IRhDF,j'NcpQF130XN!"q!U8JZE)S5!X`M2E#cSXJ--V
-*K,!jB8B25A46JUjJRi9$(LX2,rJNC%Zi[1,1EDh2fqmF,8Mdm)DBLqQRR+*M@T6
-iXh9TemApm)`AeIe-$hDHkDMAid0NeDXJ*bJ3&1VkNA%!YI,0YGLN5X5864rI*Tj
-jZj%+#-f$4MBe0Q`+bMDr51N3B[&,ZZ6lIcID`IUcf62`#-PhibM%r40%q4eAM8b
-@DBIi"[%0JGVMHmTHL&P0QaFZ08j9#GE!QP3'cil$9Dme2bb$#FTmERb$ic-'LTA
-dLeQpa[(,PcfhBYKqB4Hh8&%9RZdrPJ$R$CV&B*iKFeZ@q`MBMFHaQJH8*kaRYed
-#R-l#A1!BbL)HSCi`RfEe@%aN*-CjMj!!qeUb0Xd(KBVUXp`CC`%iiDJGd1ERA$a
-XqX$"pY(N,38$mh1&%QhV-daMefp"ibLXjSbR!XjR5"*!dGGmq+8lBK9Th(,Z&BB
-(LdGqS45B99$pK51a9erL6hUA+C8cjm8#X"TX&,H[`[0Y4A+FL)p[VQcK#CURkM*
-!e$l5K,VbJ&)!'a0Z,a[q4l6C%"dm#A3-+FYhqND4JKficlPCcpS0dhklE,H6#C!
-!Z38m$r#bc`8bhpbFPbP4m&`RhZ2G&ITrV-&XG0jp"NN4LJ0jE"MDmSP,[))qLF'
-@&Nf4CjG!kCT0"l84,NGhal8SG`*+fE4)'XZfA59)!Ja0B[YPRHkLPK#9ITXR'Ak
-NHK&QZc&QIYjLdRLFfQ"$!(GJURN9,)HeYedb1IQr2QcV$fT'GcSp!a!AXV-F1Vd
-6h0mHS0DJIbd!c3Q,+dR"G&aSdh5m6rXHiMPaKeK$1RHZ8'CT2'X&U9Q9@PqNXU*
-)0CZ*&1e!LA+aX@,(-LI1j@DKH6bEchm&`ceM`-2)@5!9V,SqAhj,T2d!'VS#P8+
-(DBFi*R%Ylk3fci8r`4(dqX-8G(%i%mRXU+G6q$)d9!DZ`1m8'K&p4NmMj(fc$43
-%P%*aSA*e3+"MmK2j9YFGMU9*D4`J2"K'%A$hTK"L-+ICKV#1prS1VEi@E98fG@&
-kY,GL!4X%QbK32'3pDZmh3a-1IC5QI@!D441T&N6D5h&RSE(2lF$pd%YKRF1XDKj
-BUjrEFATIE&)m(4DZGAYiGIr40#G%j8@LYeDZ#eCq,Q88j%DBjB3F2`TehR88MfT
-T3jIN*-#IkJEJr--2ZThT8@JQT*)$6GCiaJlL['XP0mmS%FX0aPa"c@GDbkN5MEX
-Y"55A1JKPYl)@f[q[1aG1T1`m"Z'$&rh6kT*YZmB!r&2m'hGHm05)S!jhijX2%3@
-DLe%RRf8,RYX&%N0&[TJV""ei)0p[i$ACmc3e))A(hLV+N8dY$NZT+LAdd1#klBE
-cZ+-2bS8-bpb,*a5Ap-H-5[%*YEY8+XYd'c-)Uj36ZfkrB9I[#cjNR(E!'N-,bGQ
-HrqKi&M&prkC)VmBkTrq%)43Q[Z%21qJG$eVeEZ!M%Y`EEhHB9a269(Jc'h1M1jB
-626*i"Pd2TA1C'GS[F)`2l#k'MCiimZ%"pBKQcKHaaVGF+Akd-6I(M$R*I)MZEa@
-8%JcMBIdRE3aK@eeBM9E[FHLRGNcP95H@r&#0aM)LkA"m+CerDq(9Q4dSA#"6%9J
-QIETG@[lN-PG@+L9T%4IFf54FLYIK[F3(4&4UFeqTqM-V6@1#+pCm[RR`P51M"cK
-&Q(lfQjlT9U&TK0J@K`RRUciG$"aY[PlAaelR--eEaJYM0k&aTB[IYf@UAK9ETX1
-Sd3T"f8XdK@dhlFCU9KVFi@rLq'cpCXQ24Q-KK2q-N4Ql6KaH"@)hjBYSbll(8E#
-!&rPq((rhTP3JkPUb#KRa),#LQ"JFe6dRJ2iRFG8KJ+cD89Y&3mZqmFTkXbIdDYh
-VcA*h+2SQXr!F+1%XXA4NR2I,B"[D%3HYSS*kk!l6Y"I"hV4K%DAjVAc13!J!AD!
-)5$CAkH-P%hd[V'Cp328MR[bB-UBQkT,%JS,$L$QE#NHcl+l1fbS2'Z)3Y#)S@9q
-KH(Z9kamM2+&k#G,XSQe%DBqSil8@mC3$2V"P)Ck9TP94b54[HR,!A8i41DL03G6
-SYTaLrb`5Nq)-[GjY%GQ&8F`38B%IilS"VYYSp68,%L3Fa&$(b`6%TEUH!Z)&m+U
-dQ(2e[X%CeA!4lZQY$P)B0*DcX1[Bq,VE#PH2D)GBim-iD4T`SpCFi(cf`BcEZD3
-0e(e"D92K%KZNFJ(K"k10-%0(2dNZSZYIB5`6Zec*`Gq%D-)Xd'Cf2490%YkH'Lp
-$[)kD@@!jJ1I9[f(#r$fq%J5T+DQN*P9F"r&(QK[Ge94$[EUdLYD5V%ZC[%!9-Gh
-M(rT[0RPTKY6LETY61p#N8ScS"II&J-&-mD8D2*HBMNJcUTZM,aN6`Zpdj&V4aVS
-*b)r!LGpJlk[Q""(64823l#'$1K6JXh[hTRdl3rX2"QMjELPi0T-4FU+c910Kc[3
-c0$IXCY#@-pFfNRip1$+N&k9MMdJYT,"T401QSq)%Qi#XEfGEA)a5b#m+V8+6$-c
-!kd6R!HjQp[(89JGr2DcUb(i,MhXA*FN1f,N,(ecR2aY1m'TEi"VmEkS%HYDYSm-
-q2#Jc[2#&4ql5`#I@ea4qqX6YY(Qa(%-c5V),&@bYE3f)8(JH@$+#lbRM*lX$6bd
-FYkY)4Hq!LQ$G%)#Y9l8EEZA'#F)mMM0lmYQ%-5US2i`pKSGj5If&#pFZ#AY*eZ&
-E9e#rqPJmD,!B"@5b5%@1ahbTpM4L`4mf&@ciL@pe%S,KP@"r-2B+8j1)cC!!9qD
-iU'P3m@[3VDe#aGmCV6bL*p(1VVl@LNK5A9H9SNf1r*5GR"JN&5SMc@QJ2meTLPG
-TU-`VHDDd!V0Am%(GEa%2%L#eAGDllRC&q+%8rh(f9Tm%)SjQC!3A1YmU4&jG&Rl
-+fq#JNrKb'VYp*0G4eh2l20!Li(0)+`(4fr1ISR"K`36F1Z)Hb@CFC3G6FpPEbd(
-ID1FXG*ZX"e-BGZLkNB!d*2,+4PS@URlh'1cD`G*R#@5`2AA%-*-h6fV8[cc6k0C
-H'c59XFj6D[$Q#Q%$k#Jh95JmMeSeC31i+GT%#+X,E*PlTCq6"BPrmqqHC!Uc'IV
-mBlV0BRaA@h+"pEaX6bQcB1`M0Vc`2`M8d[ZPIpIVF*b+0F"(jX5L$NL)LC)[M!-
-krI$qMHJiMbafjJ%XR+C1`M(mC2A[L-3de"A)$Mbh$#)E95S`e9QE[jA0ChU-@QT
-AFdD!#XEpZAUThIkTLFibM6F(VR#CP3#X'YU1H!T4r`BE,BTPDTF,DGFm-1j`#54
-kbfca+#P[L1p#i,544cCN*RPEiV`'jU0kIH$F$UmHFJbLA,cV&TX[8E$RCcqC25(
-lb8I&6lba@+l6SmX`p[6MAHPC0MRPj@YqEVjcVp#Y9QrY'-X@jGkl)#bCdkB(qGX
-`65lfiD0hGi3RQI$DeUiMRE9IKc2-#1ErZBZ'U3#[2K'9Si40l[4mr92%[@k[S"m
-6D2Q8X#j$ZJFY2"N5ICcK"B,Iih$arlVI'S'+Ya3Ui*[SrNAjF45Fh%2*@822&RX
-9Tp5qf+ma'8Q-%kUYdJk)HI[i,H+IAkCVV-)QDUq%+kpTiUYE[[VZ8@XDARK9"JM
-X1E4acGfAQ2b)LH*04r'jjkZS)LSR2SUk%RJST`@3!,$IBiE*ZITHc"&b2aDMA+c
-iA5[25&4F#I3a8hXK[[GSNkpUDRZ&Aqi!,qNSm,ZC1f6PH#Ja%mP)L&Jh!eDF!9"
-j'Va9%&f`cURUid5ST[1@2a2rN`H5X[)`6aA6#E00[erI+r*q$&T%%(PPAXj%Dr'
-`E`@qLcIc+5I14af6mTl4m*RB5HSZa262M@fI1pT1'VL,jF4U3H4IBi&G5MA*DRQ
-l(5l@8fZ#T0,FSIrHlc#3!&ak@pfMD&I3d(l2qa3d$LiYe%Z,M`$P'#GX)lA`m!m
-0IA'CJRi0bhQ0)1F"pf'QT$!Cd[d5YSNFGFREU'Qd2`d@bQV'PS*D1&$pPEKG'if
-iXA&K"qfICi[4jP-#4K6K[8JGUa5[NH"BhN%1VBkrUY*ab'T9GUN86Ed+JHF0FUb
-6Te"9)Eiq!qMr1XAVfF6%53eE@d3SM+Jq0*DMBE3m1%lq--@G6i3YlGaTV&THh#2
-2$1P&ar)-Q@Hi-0HZZkGh60rFJh"00IRLLD"@)!Rf8H6'GqJpfMRd`%`,,LAHcPc
-,La$X(5#0`Vp4`Z6e'iRfYJMS"fKARf+C9DmEGQYQ@e292%c"[fGcKimHFd#+cc@
-YB1@,KTY3Peh(%e3SB"(&e"&TaHiB&mElk8Q,Rl83-N0mG-J9T0&Ya+YU#[QNl1m
-CNP!R3`'KIAAbB%#UmiV'6p0(LPG*'*Zc6NX!IRM#Vje+rD$`09Y"ldlYCVFD9K!
-TNqj,(9lPH*%0(4MfQ[LEjD'a*8,F,)hLPb!kHV(eiehIehYXAhJU$BJZ1lR)5(I
-Njm`STr-q8kYTkUQ3!,qAc'%'D1MN'rcYUZph2MFUD8eCUeZ*+G2CAQick%#J0k6
-@h!U'f$+V-1"kTQ0e)paV-5K*eLS05S[jBPHk9K%lS2@!R$0Ma9BQ#A0Rc&R(V`)
-dM*!!hfV`l#"JU,1KA)f@V,H6&@"hBTqp436QfI[9G`FY&+`G1#@[hpl3X1N"NYe
-D)'b"-63$Ka08%09(NYRP(85KBi"`@L)bNe"@,1%hQfaB(@!U(lZ)$kTU,C!!(e8
-@GfIlTdE"kZJ-&)h[jfBP1PJ(Rj2I$ljmG2BGdN#F3NDGTr2S)VEcCeH5cT5qTk*
-eTC4PCR#p0IClc0ZCCQ"6E`9b+K"qKN3l(,k2S$lk,H`[K[DDk-pm,Cla6mrDiQG
-VRhDBB$pZI([KIca9HBcJ93I!L4H%B2YHkP)dT%rX,NUjl#i@qk`V,qNMI+L#V#D
-rK&fabYf-'0HT33k"2RH(V3k-Hk4FYYN3acT'cr9QK-q[0d+BfY3qH#ibQaK@2lr
-+pqV1De'NU(GlNXqQRJUKpHAT&ZH3!2,IU[$(IjY"3pD3!(N(3!dB,pU"r#`eRX1
-FdaqVC)D6Tph3p,iF3J$[V@)V[NNF#R53!+GhX09qL(I,,&0qahH#j'SZE+b86LD
-U0DSj(*2ikq"3m!*DD6T+UU8JSPJ&QC1%d1kd`035ASTj29lG9A"eSZUHP,e!MlD
-j+BK3lYCA`IjjM$PMj49SA1DLVrl40"H"'BrY0p-FZTMSF6!1kJHqE1MFaIV!&cm
-'9Hjlj*M6TG+P0"P1Kcem[QbdfJ`[hT6RTUUdLTXcb0R18U)Q!m[i,'j-ApmUPpI
-UQY!bb#$dA#2Vq93G'"&D@pX@qXq`#k$eTZ#fq,FD1U8pX5i&kc!X$IfC$-YR-HB
-rX4fl@4U[Q5NS0$VF0j&fT+IdrG"qSb1JK*F6&L)C-rU$@8cC)SKC*4PA@L6Vc9Z
-L5eLi(`e2+l'TmC5`$ARR33NZl)F)9%$2KiI-A9RaqA'8R[8M#EE4"r%Uq1`dl(E
-'Jb@kPbfj#$X(DC(mTHHP4H4p,aGN'c+EQBb8-PU5-@qMrAmU(IU'!rZ5`4@C@pJ
-MZ&FX2ZPVUMBLZCFVRVc0kEc0j!ShKZjAG#bGe`B(!9aaDXcrA"'rKe"F-Nh,,XS
-)D6+Dd`'M'5ZR$%VpBM"e%h!C3b4Mj,MUNhdfdh`hGB6F0D',6hYV3XL-E$m0cQd
-YSL)D,0IIDTp8DHHlJ!rdb6SL@kJFRV%K&jM!UdBei4YPjPB!Y)9qc6UF1U)mQXH
-cb2BTJ"E&S['aH+#jqD6-9Qf$H!l)KHi14#$8!F+6X'KL"E!PbbM&2GeE3V1"PAr
-`cE9[[+"YI%(@$&&qT1a2N!!YKk11j++F`,!2ab"m+T3eh'6jS$-!XG2,ljV85KQ
-PBNSEqmb9a1fKm[1LMHS*SN)f`"l*"`S#@'QY!LQ%eVTqN6GYDrU,jDXbN3qE"Jr
-rhq2IGKAU13DF)@1YKejLe2ceT"&kKilhD0Xhb,DhUE'cLZalL+KV6cZl[4FdqNL
-bPT'XV8fXiH@-@F*6VEe4fk)Y6mkUpV1XYah3j#[lF[-Xh(8-BhVJZfSb($Df0de
-fDICp-fi#YC!!I)R+8q1I-3MNT(H&48i`(5RM"9"PE+Y(M"h&VJ%kNJ*qfMbQTJC
-5,h*GD%*r@jTE+D--)e2ZQb'XH-B$)aJ6EUp#YTGE%FN8J)4HpTfp0I',Le3Y)hM
-KCr6KbN34YiNBQ`D6HaSXB&J`hmQD["DBL`"(&[Y'bk!RfU6Qhf8kZMc[S'6+VPJ
-bJGER5A5Fc06IB5"Qm3E!'YPfFQF)rrXIXDEYIfkF+NpKbFba*El8DQ5`jNlFjKL
-DHNR0[qXJ&C`BrcIJEA0CSGGbqpUNN!#iCa,MN4F%BH$LDDE"pa`V+SG9UT[5KcH
-p%5NdXX1G@LqUH3,025Y[V,b%)Yr-0dN9BQHhh0G,N!"9Kd%eHKrjZ",-JFJ-&6#
-`)M1-0)8T-KcrRENC5Jj$fiPi+k2#%$1Fk`AK-FUX1@HMkYMCa6e[fa5@qpR#5iC
-1iMXVhkeJIPUiJ%dbcpi4eBL0'EhIrYQ66(hb9`3**lD&d$@qTQDfecL8eZ9+pd6
-fGJMr6U[BA2k9*E60`hG@"4pZNrq-m5@D+GJQ(lF'SeR9Q3TAI(lqb'4N-@&+BSQ
-I#V0a45aj3kR6hXm&M1dp@F58p@5"FJT)KLLmEd"RM22b@"qI$J)F*+eNM)"(BAe
-kdlpUd*'!JJ%AZ54)c8a0Pkb'LU8S"[-Np@&4&4kK#mTT)rQCF#`Q6P1Dh-6Zr[&
-XaD8$Z'JeANf,1RlkNi,$X08LIaklfb((p[,B1eqh-pZ3!!6'IC8c95+KaaULKrr
-Kq&8%SQ%c3m`#VM,k&%q4hQrbMNk`p["0Mj21qRq3!,UD-N4Yfa8'S&5XePK&Nm@
-qDl!j84l83Kadh'4EfND"QE%dY&"eYL!)H+NZ$4Xl#R'%M9i,TdqpFMD"G0HHCf4
-Mj--H(dcT5DNIqk(`TIR1e#6eYM@pFRDGFdTdmfUPfL!3!YU5@"CZd900c&2PdEU
-fEE)ekFMSr5CrAXd6i0AX5+d$j[)H`4a*0pjBL#Dj!@fpe[0UU'[J03q!%'NBkD-
-SDD0[PKRmQ@[&9T`+905bbHE2EHj-DT92T+(YR1IfDlkGIh%0JaJL@2KXF2@@'6-
-8@Ih#C5!RKQeFqhE&QTG'bm'%9V5FEpmr6l(4(16Nq-FJ"c+EcY"[N!$Qk,)JNV&
-2EFf(M`FkE"@[q3N0qTNa&8l2EpiTdHL&MhUZ2YY4CD`db,6G!B"F!q(V@l['T8@
-a*r`m((qHV$FM(`NK)$d5"pCrXr8f%Y!&+[4eG6r2p%Up,re5qK2GS),EqAEeDrY
-qIklIXN#4bl!A69c*AJ`cJ5aQZ1[U[T3!9BVAP-+Gm%(hQ,@N+#jM4Tc5+*efCGR
-l&i,6iU!5CmNr+!#Q#+NafQ'%##*MTAqM+U1NYY)Q`#)fe13b1&"IIP1(!rATJBB
-2A+X6'HhMjhDHi&b1b5+9h3ieiX(VH!'YBH#X02PJ,4-b1-(XPCAjIhP1F)%lLQH
-PiLF$NDVZUPj0HAiB,kLh,E4HIJ+UVXMHRq9fA'TGNFb0bLcjK*'NV6CLkC&YfE"
-PkGQ0Z6Xp$3i`XmV*K!0S`Z98#VX*EaLc'48B$"+a0Y9VfpBpqiKBLV#mZ"#kXkU
-iae8eXTi3C5&XH*!!V9HT5+mFe4(l*35+(RQV-1P&Vcc!S*YAeSZE1@A$b3S&r,E
-+U1Ci2%cqCS*QBMd$HM-f0JA41`eI0E3lcLZY,CA*X%E,"fEdMhdMU2bN5@N#e(X
-`mP(1rXH&perppkQj'i5BVIq(Z+9KRl#"(GXf*ahJfK1Her*CMYM4BEpbm[jrYrI
-'Kqfe[T[mJq!l6M!SR#6&[C2QIKF3A`fS(E4YJ#PR&$@19fCQALQp+E#ap[eLc-j
-H4)0C$cX`dJ$fi`20aCi6X`e8UQUl"M596#m5pF0h(jAE@k#aaQqFcQQV4)bj1*r
-JEri$2Q!H11[-UM#!BTP2+Hhp*HhjSk[J)@"`YeUMT,GFK8Uf(#!(0G,8H-Q4a@I
-9A@-,SP#Hjk`QKYq,$4"M0mqK!)reLrEb-UX%024@DcQ,[UD&YGCQ1EVZiYEUXLC
-XCqmLhY`qKh)31UJ1E*[f+2(B@E0!cdPP3S6k6+iT!#XblfecbQY4EB#&Q4p[UjL
-A9E(4p!-`Fec`3QAjY&[+,$4,)KN5Z6,E9Ae3)MT'i1+G%dDJQ0EGB[ZBD0YL5aj
-ARCX!p['Nlke1'[L"ppHlB"'$*bT%j$THrRKr4f!MVNp&RQT2AN-EIDH6$X8!Xb)
-C!%6mGeLfrdNNH&I$2DDVGQ[+a8mNMVf94Q'#H9#YB"'4ZqBRXUJdQe&!'T*eY@e
-m3-r03I@)12C"kl`E,-9elC'`HDa%L-5+R6!$T,&N-(caI(Ke#+T,!$Ja8f9DD-#
-'iL@4q)dhj-[E%M*Vd!F%jAIm[1YB(6BXPY8&L4lmU[`cK!2abpe'PaFqrY8K&90
-a*!pD90-*+kJrmK!c[)CHpG[N*i"88d`*DE`Yq-Y,m!-jHN$8!JKmX25&44!9QXr
-)*e(a3MhDH@ajX8H)6%$5r@6hKra`E8)8%`-p9R)GjSV18Pa22d[LINlqe[ab8RF
-L[e@)4AbQZ$q4a0@b#T+2[de)%3Q&JdF$@biREem[&G8cZ"JIhqdjma!d)3[4H[*
-ZJfL'pM4#B6dZZ))GdDR[6HR6fakf4D8Jac*[2mQR@EM+ePr3jZKY4(6T)jD)`q*
-d3E*-h5PjKjjML`RKcq[SZ*YUAi#N`r)RJi1!NrTK4&HrXR8pc"DkQfh#M)%5&kk
-qqX)#'bl$mH1UFPX1TT8*aL60L50Qa#4T3&k#lA1dZNiMpGVqE&4rVU2dfCiPmSP
-LF[6iCiALSZBf,pi'8l9KT69[i6p%R55f2$4cTR"'Q-1XRYkS2ZfpI#E(9cKXY$R
-AX1lIP+CPAAAIPFFlCY@kX*LF6%j)mi)8(T6)9TEHE[d1rjbI+(PGD$SA6!N9dk8
-6PZ*Xl!dPXUc#ZML8rkBkFPJ+496q+rD#CZY9pL0@QhiJNcXFFK!5UcAMQ0LJ)90
-$-d4rpT!!C%P-Zrh$#[CPIK5j$3i@a`IZ)eRqK1YN2eJE9e94`qNFF1-Db+Ph@$%
-Z`(1LielZXeDje1YTQViC*ijia#pd**I!Jb9G&(,14FMKmmmSN!"-K'8dkPUHY)K
-B!4f1J%hjAFNjR10Df1ZmC[)%C)dq)e)8#H,e$+NNLAP+b@@R8A&5#ca%-jkGEN'
-"I'$84,@M%HqL+jHlG'frBD5EMq0ZQ[GDfA4UY@(XfbN*lDri@03[DS9&96-p953
-qT'[+A&YckU'B4BHE4TXi8,X4`&pUQ+LmfR9(Iq[5h+BcVdBQZ$1KS@YL%k4fGFD
-!Jm)M5%&6Gj9G[k6!!"j(HpbM-JEFa`4q&+-BX0FE$618l9(J`L*hEeF4UkI''Ia
-SRJ)"YmT-!(%Bf3Jd@iQkS,0@+``[K"4b[lR0M(KiYB%A4XJYe32Ck16DVA,cXBE
-PTkcc!i)(G2pIF8Jb#j(50Z*(3i`Q1E2VU`relCer2!&H1M+1*QB'["[00++4)hb
-*rbQAU5,eH2S'NhGdJ`!plm@#[IdII'YN%CiSDKcb#IJ$1XYNaTR#qHXehj4dp$T
-JJ(1KljFkF+%+f(XiNFePm`#F'(Y8HNKrh-0Fe$jaH93QP*b3!,9mMZ0q[P[rqhp
-(iL9#`ea+6h+Pdrrpc5K0f[%N[!a'N!#XaXBhR$c8h4cY1G6E#4V5[(RC"&3cH!-
-rH)c&kAGjBBV&81IkIJIA+&N++KXI")"C*TLK1%$Hd8'SI2L1l8,+d$M!Q6Kr#*E
-(hD)'ie9i,G(G-[6EjPGbQQD3!1'*dNcm!'eZT)DQ`JZ,CHR-#rYRUr6mQ#p"fjD
-Aqd19IKl$ZmP9006LJIp(&(Nd+fB,iPT5McK[P&V-pf$mjFEC@AL!b%,H25P%p2N
-&9[''RVQPP-U)*LriEhVSr-b#ml9pUmG)Z+`&QVkCD+"N2NEA!2QA)cD3!+0%hT0
-1iFmFEe3dc4IXrbQcCkqI$amTeGApZ5FXdihV+m,P@1Vm$+C["6Q)VK8e"#ca6Tf
-I2$A9R4*[rfMX2GejAh!BR[9la40S#92)%YR1F32T'f6@9GHUUp8Z3lA6'SQ0H!k
-()GP*JiDJ1r%NU1''qL*U'N5k)5QF%Aqp'YGki,idYh!IPKJCDp8$4PB+pC`!Q8B
-XcZd%F,[!dA!bb`je95c8SrpZ#S)+4+l9H0AKHB"fmj&#ipEUqeRlYh21G+EQ@T4
-GM020,GLr4NjDiRh`8$d1%1`e2f4S@X@'E[ICBbp58J%PUI[)5QA0HV9IR8-4HXl
-T9H0B9'E*Iqdd$`@F$0QM3L!+8Pf12N2STUmEIqVK0Ha9B$%0fd@FD8&H-3I"q-R
-Br,J"0DHQG3L+KGrVAf8`6jZ0-"SR&R*AqS%&(UG5*C`1fh"PUk1e&&N'km4S@1I
-X`3M23!q!3m[V%"MQFmPU%pQA62NdD)d0#+'R#MB,%"KiQ*8FS[D05lLY8'P1!q[
-h$1M)DH#`Dr,p![@K&k$mibBhZ2-#KMGb8dXHYDfJ1fk98bY$eSM3$MH$L%f"ieM
-JVC)I9frUT4J8eZGqk*D[J%dU`S`G,63mYb50*)`CMq*588b2QfArKTV$lK,H![r
-MaL#5aS05aXZ8EGlbR9H'M3,ilPjlkbF!$Z%Bfh-+`mUr0@430HUc"9,U0BrABcB
-EBMJ'd"jPl5mrPB9ZQKj%A0S@@`1*jMqU'N9`lD*JBTU&28KhX@[UMM'(kE4G1SD
-cBK1c#Bp[j`"5K[9jP6MphC4ETb@@IG[C,"%D4*@4Nefb(cAGAq+%ELX5!%pcVJR
-)K1%&F&9!bP[%)aTRaTfUQfKqQi3fj@-%J11U46h-NX#5@X)dM"q2#`,Reh,C0*S
-Cf@(5&Rf`ech,HIQPm'q*5B0(D4pKJMDT!Tmb,-Fd)Cf()jM#*+P$q[!K-N@$Dqm
-Y8MNh3RPbk%jY#dYF!HELJ6ra5(8b4b`T[FFQiUFR6[dA5F#aY1aEp0Nj`b,rqF)
-Th-1L8lQ$,1$6TP3L3E+%AELE6'AJEKe'H+Sd#B&'f4Cf-+DlKSAd%lN59*0c5+`
-V4QBch'bpCc8Ne(&fHAPDS!'%)L*fA',0%K-J+X"$2lFdl)cc-pf,mk8mM1RafT(
-fa"hJr)&8*2SKa5K+qcUUBAfr#+ep(dDGTb(5T)!DB-+(dBl6P5bhmYM0ZHpq2i-
--VB)-&)NmJXUYZq)aj#(YTqcUQNlXpbJP)ZiaMd1NAf#Hr3f&EH0r!&h)dk&U@jK
-8Lf,K1"5VR--(Q0#XqI[m#c4d$3L*$fY4"pa,Q*bJJ(@cf0lXJV`@ck+K,&h*NMS
-AAN4Yhm2qm90H[0C!X$m+$le5)cL+[K4lpe@Tf$Dm3eF,cU6L4)Pjp&dNh#QY,NS
-bFE(NMZ3QV8l)r0f"M6i2j9LQDdJYa5!h2B[4E2h8hCVrU#qaIECHrmb[*ANr"hU
-I3kN$M4RY4mAPbT@q()-6B!L+VPM!X&Ym3Y2PNhMEhLFdX!fL,%,*UhM-MSMiY"f
-QDB5Y5h#"R(d[P5VN5ZYdk%(Klj!!D0Z*c0DC8!0PSfV5'pEEE3m&I'R!rYN,11@
-IPR8!jC5PiL2b6i44EJd6aG5q5G-&a*4%'kc#(`ECTKejrjqM3(&[f%5h`&dNBqb
-Zk4EYBYjacQI@mYhZ0aSLD+f,4[#[A"!LDQpkdFU0(,`LmJ,TmZGP[$0@XK-HV#`
-j%NDp[SN'Q%#amhH`FV$+(8'Xf'Cpik8XrY-4&l%SXV$I5bK-$q%ei*cpCjN+hTG
-d-A@jEkATd*CV(kqF"fkDTf!)9Gh!j3("2eS1Yp-qck6abf%hD'1NecIE!Tf-Hdr
-Q3PVc2mR%03$pXkHF))3bQAALpP6&&Z#QQb(#@T1fEqkJ(rk-FM@3!!GfS6bBc0Z
-MXhq,c1Z,Q0jI,(U[$hdK*ji"PJF(SFm%U(QS#@'C'iGPrk9k%@*[ab5lA8q&Ad1
-CK1lIr$f+b*qZQ(UVLL'a4%Lp,&A8+f)HbIMHBI!RMpYGaGdGHT46`SGmTP&),F)
-1D3TGYF'XAXh@-BU25(lG#6XR&LR*`$5&`LX@PRkk(#GSC[TR6cdMp(aFAlCKXR-
-&E96-DeE39K3-Z@eErY93l"N'RH0'I"6EQ,ZQPI-)!jk#UA-T9S9MDq55iqB0&IL
-HiYI*%d3elEF,'TQaeF3+3`dmNbV-KP8NTB@6#M-$hTl9cV`,EKi9UmrR3I54YBf
-e$i!H06a,p9L3!13*S(kh()0LSlFdD*35k#0E6"H*6*J5k(q)35G0I(3@VH4Lr8M
-ZPFM1b$'Kk`4Kb5iNBaHhHmq5,@db&$@[U-[5ZQ&GpQ*8h$kaH+"l+a3m'irbC(F
-HdCp#@T0j'AkcjhCjVJI9IQ&BGZ#RcPFU9&jaZ@82(C!!fU2mk#C3aGrq"MDIMRD
-e#NTXkP4h!rARD`HU4N*j#(eB3h[4"(NYLSPIH@d5)prc"#%TGi9K+dVQB5Rm#*C
-)E,!`QlM64cr*lJ"phiJY%$IM'8hF69DN6E3`6p)-#UPPV4ZYBU9)B+klN!$mF@"
--iYX(%[hqCc&&'@d1d*m60r%"'3@&IfE8PdXS6)GVJLcK6SPi8A+pRV0k$VRd2',
--qM"FD'#d,0MN"Vf@qjE"+[rBQdZ9(,Q0CH%J@a&8c9#ra`GfT,pQBZ#@I)SR"*N
-ALP,E"3P*IMA-IAp98hXG2[VUCffbI1GQRAGXTUB+YZ-V6RlSDl*qm0Q8EVlSrEp
-VSaPSTUNeeJ(B5`2F`%a'ekdc2$)#iP%2RmXaca+S"Xcec6mhTa53!#pMGjidj%4
-BSlMF%idNfS%XXrNdk@!i!p5Z-CVpK8#K!E[*`*NQGm8hJ#bUr,4)0F-V$e+`)e`
-PqM`3JECH#-Zd9lr$*6KPN!"r9k-!`a%iM*m&&Er`MVQ-VVdlXZS1("iT%eEfD'q
-@Yrp@V9ZR'Amd[KFTK-,%'jM!ZE&AZTX6L&5C+rVi`@@$&9*!QA%Bk,HV,)V53@6
-@(*,DRL)b9@-RblY2JeS#30iaTjHk4Tb3!$@Ce@8c593Aeqf'YHAD2hC42q*rkR-
-Hk#K"+j[pjA&I113MHr'H@UB5B*Y!9Bh#PHIPINCIheiUjE)LZ5em9P0TGAXQMM4
-CP%hP4)*)EmpNj$38YRl%Y1UP,P$-#2ZLMF9TR9KK[ZJjm"Tb9iKlmR(QPBDd&eI
-!A2qHMJDB[M`B)Ml8-Ih6Q0bQB&2-Z-N`9V3%KG*l"@DFc0"F#&4BU6-iBQd*25e
-`&Vj)ff9@h6h)[N+Y#Er9ZUrf+1XLD&T2CRT8-3XirHPUdh#)T,IYQ'e@ZjF%DcS
-[MkjZRC[28aA#a5U"!M[rX*`0S@hIXZT46iJlY6he&&4#f"5B6V156r1MSrph'r8
-pP&a&F!D-#2apqAlb'c$'JS5AlRdC)E!XY6[3R&-Z!V59UCXL-`&1kNBq3!qp&"e
-!AJMhYbfEj@&[!b(Ucqi05)JY4%31ERE[')4,cH&'U*G%&-j,ep#3!#[mF90c+II
-F1&lI`4l1+l),X488bi06UFi`bL-LES!P!L6["-Lq+G`BT-bI+k-N!a((N6!6ZK8
-@!Tjp-Vm5TbbEN!$V)Z$i5DiR"ZeX1`QlFli3J-#ImYj$Q!CFr4&daM[K0j3crhf
-XPI%##2#m3"Qd+LBdNRKP"*ZkRE`k4@Ibq-R+VfiHq@B%ZcE@X8mh[KD$[!'T!Tr
-db1'6I1HjP'plDE`GSX"T%R#j4j!!1HC3i@&C6Z@9p`Fld'*%fHSa$q&RKplUMh!
-SX-K@fjLr@Bmkc,fG5J*M8h1hm'p+&'VVjlN(X(D#GTAq@Tpr&-43hC'9f0XGG4E
-e!pNqV-e4R)hJ`#(ZX[DVA4SH#6kidEiBKJRqf+-&,pH2dH5@qXq!TQlc#%b9rq0
-hhkJE3!Bkl$$U(5&m`DH+C,,`%RAYGZA`mc9c3Zpm4`M'2S`aL"4b`[VJ(2'&Umf
-(F0rIPGB5pD)jEHjE(P@D'!bH%XpEhe6CZkXBl-pRZCq4@(Gf8##FGr@,63EXQbR
-d+QSeV#X+,EMD"I%9&qDC8JH5c%G55[S35ZI'82X9N!#*QB(fNkfqAE0#'@aiA4E
-i'ATTQeS'E""G3C[0@p`DU&BHTG"f2-Sl3%Ic(-Uih[QVL%(LlD39rIh3VhjU3ZB
-MR38QE6[(6[mU1cb`$49rr+"D)Rq6UQFmQ#fY2S[J9&iU1id'lf(jbP8R+(8YheY
-Q@p%pN!!hq5'pe3JkprP`Ph)cMl@0c@j1D86[YcaULPM%--&2TZfN6lMe%TKS(SJ
-N'L-Tl3hTc3PiPc&5$Im5,B"*KAqrfm'p!A8`iP,I-9qX`@BhKZdGMdpSrHdbSf%
-QXJ0!I0ATX-e!l88f6r1ml(U0Y$Xj612a'`E`aRN8a!-0C3F+kR@qSXAZ)Q6QD['
-PLG@RaeK8L-'r'iH'c8(E!9k2V124eMY#2%GNZbSD(0A!b9H&6q!F8+J,8Z&F$@Z
-b9dXV$&BMhpR)Vp$!UFFFG)d`#8(1HJBi8a18YMpY(SA$bipJZKV(A$L`Pe)M`&H
-ZCN[J'[*2PPBcbi@+!6BCAdSShMAH,38$(jr[4-h`8bl)d#Bf9LE`'J1V!XJ&lJ%
-$-DC)@IempUr,b6(2R,,TEr(IRrJp'XAFY,T4M"4DUl195FL+HUDY*9L-Sa+Jq%[
-N@95[qH$eJHGJ-YrL9V1*[+%QcB!kLJL+cm4HVM$@@)8C-U55@bN$Z-J,$LX1!S'
-ElB(2j#QaHTYQa8IVIUU#p6G@'iZU+kBMD1p1KYH)))8-el$9VdGJ#$,DqipIq`p
-BjiE"I*C#XJ51kp*qZfF$2NHZPXT`')ENjc2lU%dkHG((--IS*bCK#N"NE(4ehXL
-+9,HCV,5a8E`4Q1-!qT%B-pf6#0m+BpeV*AT'DKJ-i!#&'mR&N9hGmQem,d$j$eG
-KA06dMG@F*9`Ir`fq!!NNbmr$qP5,9!6[9)'h-1Upel(S-V1li0PmdHfi40brAF"
-ErPQCbf901VaIqb#MLESpS%I,-$DJMJKSN68kK`M3XmlIKKpi0P3Mr%bCDiBjl3f
-JQlQ)Pe(A8qV0lG'0DB+)4&fKZ%dVG1d&[("Yh8m%3ZGmjL$K`j`m,[*9`5M'c4A
-j8$TbJc#-eE(BSfJ9Bjq"6Z(-*e(IYB60618+q$Yj-HUQB!cB2l+TVfIZYR4$ZiF
-Y9CA+pTV5q('Lq2fD-I"3[Gc8KHD5akeU%eiYa6RPELG8GZT*Z@G6*3DVh3kjARe
-LG`4'Ia-F#J@QKRAGr`QY)"G9DdMDGc-3d%%-fRK4r!#UhZk0N!$"B!)[R08M-D9
-3rF9@Mib258(eVdKUPX1#JBC`DpG9QRhVVrF8l$qFLQ`q4F%B*&C(dT1*D%jkqfT
-!aT1@k"lHD()i0YDaC)L'TfeH$+,EP03-"Fcc`)rA8NNHHh5!e)Q4#l0CQi9,92d
-"m(QM%ie,5p*`E#!dN5hD$)QA+bDcG*TLI+01Ef)89l$0mF)4jar0$HVll@fkr"j
-b-8AHbpd6H-PNNm5)hAS5P@-Bli3e)4hd-YBV$f#+V[RNYfXb1hJNS9X$9jr'-@-
-N%86(hB1aFNV9XJU'2)TakK'q5N#8,N)RV`H3!-0b1YbTJdYYa@9$NX(Tj6@iAf9
-5%MYq$fB1&e+UrI')TSYAP-h96YcY8PlUrqM-)DEPXlr8l)fK2&*-D#cD$mXG+"a
-bG,(kT+Tl*YD[Ar@1Mi"'`bTH)4U*CGc2p&5jTd%22ZcI(DHR2GerX%IG5""F!!!
-"!!!"SiS!!D++!!!&5`#3m``!)!!)!+)"(!#!998!N!--!#J!+!#Z!8i!Y999!*!
-$$!!J!!J!SJ%F!)*993#3!``!BJ#5!2!"Q!#&998!N!--!%B!TJ#k!GB!KP99!*!
-$$!!S!#J!G3%m!)G993#3!`i!+!!S!-)"T!#)998S#J#3!``!+!!S!*3"%J)!998
-!N!--!#J!+!#0!4F#!999!*!$$!!S!#J!YJ%F"!&993#3!eS!!3#3"9d!F!"a!+`
-%!Np,!*!(5J"9!41)1P0[FR*j,L!J5@jcG'&XE'&dD@pZ)'0KEL"[EQaj)'*P)("
-PFQC[FQePC#"[EL")4P-JGQpXG@ePFbi!N!0D!!%!N!9G!(!!F3#X"!*25`#3"dS
-!93%6L$T8D'8JCQPXC5$5AM$6)'eKH5"LC5"NB@eKCf9N,L!J8'aPBA0P)(9cC5"
-TG#"hDA4S)'0KGA4TEfiZ!*!$8J!"!*!&E3"Q!)%!SJ3#6dX!N!8%!%J!C`%$L$*
-6Eh*bH5`JBR9d)'%JC'PcDb"bC@aKG'9N)'9bFQpb)#KH-#NJD'&c)'pMBh9bFQ9
-N,J#3!he"4%05!`!!IJe6#T1%!D0Y!1`,FJ1dXM)V+q0E6GjElfVhTQiQei!a!%!
-$!*!$ZV8-J!!*D5Vqi!&9%Lcl5XKE$Z2PFlU&8Bkb2mq2rkiJ16HX'[J4bSBeHBC
-LSfGVm+aH2`AZl![!X+N')MK-9ckpkmZYSaN$a4aC5aXi#`#3!d`!!J#3"6%!C`"
-&!+d%"&&eDA3!N!8+!&!!(!%3L"T9EP0dG@CQD@jR)(GKFb"cG@0MCA0cCR9X)3#
-3"3J!$J!S!#kJ!J!"!*!$e%&%3e)$!!%5$9-+Qb3!1iU)LKA2&Y"cV%4X%28X2hm
-rl0HG[qIZcJbR@0KK*5TBK999BZ@rm35aUJ8,XQ8l6L$jN!!I!93NQ2Se[)@RhFA
-Ch8h5b(U5[AdI,N2FaCI(T3X@qBdi9dq9p3XN2%U1NN'qk(5em(4U&CSL2JAQ6XF
-XGBZPFi&Plh`8(,JebXbQG8"2"b%-6&H8@CbY`EYPFb)Ah(i-H"r`2%#L6q-DV)M
-dc!mhH5K3fic)FDZRR-9M@e'jc-h@kB'VP$IIbIX-kIp8rmPY!*!%EJ!"!*!&D!"
-k!(`!YJ3#6dX!N!G)!&i"*BK18fpYC5"TG'9YFb"hCA*P)(0VDA"`C@3JBQ9MBA9
-cC5"dD'9j)'&bC5"ZEh3JFh9`F'pbG'9N)'*j)(4SDA-JFf9XCLePH(4bB@0dEh)
-Z!*!$U8&%3e)$!!#f$9-+S`)#lq3%RIe6X3r20R[6fe4df-HFLZM8#BTkGR2ZaZN
-i%!m91faR93P@9C!$)GjY%k[k!3Z5$f#*[rQ3!!&qbQ3heb8D6Gbbc@3d6L&F`k&
-$E$C0a1d64BTRk$3aJ6Tr03C62XCMTU55r6cp+&$rDmb$1ckA3(pH"EjQpH*A)Cj
-m5p[plRC3rBR6-dfULZ8aBdPB,[3#NbC"%QmI(D`#!*!$1J!"!*!&8!"C!'3!N`3
-#6dX!N!8$!%3!5!$SL"P8D'Pc)'&bBfKTGQ8JDA-JC'&YB@GPC#iJ!*!%5!!"!*!
-&4`"D!&X!P!3#6dX!N!8#!%8!-3$SL#GCEh8JD'&fC5"PER4PFQ9N)'&Z)'PZBfp
-bFQ9MG#"`BA0cGfpbC#i!N!3S!!%!N!@U!)3![J$F"!K$EfjdD@jeC3#3"33!"!#
-L!@,!!J2S!*!$I!!"!*!&D3"M!(d!R`3#6dX!N!Fp!'!!miKF9'KPFQ8JDA-JEQp
-d)'9ZEh9RD#"bEfpY)'pZ)0*H-0-JG'mJBfpZG'PZG@8J9@j6G(9QCQPZCbiJ)%&
-Z)'&NC'PdD@pZB@`JAM%JBRPdCA-JBA*P)'jPC@4PC#i!N!-H!'i!KJ$H!H3!"3#
-3#!%&"P0dBA4eF`#3"KJ!0!!8!2`"HJ!"!3!"!*!&!qJ!N!18!!!"(d&%3e)$!!6
-Q$9-+j#)!hhB$MR'R6XAbV0j%XHBmX)IiV0j8,+HJL(G6Cr8c`3!G"L,18R4@$cZ
-Xm[rIpjiFhYRYG&J##k#MF"NjQKYpM08c$@fcB&cB,DfDBBi[Q8@'KZhRa2eh1KG
-blU3+QbXZmrjdJl+K'E8"E#iG,'U!L9ATB$8iH")""%H4JmH*JiXFe$A2[B2Y#,$
-K`U`5"0`DJf#cY2MX*ChTT*3S[2"4)pjUZHHr$Vc5*(XM!dUL`bYl#@3++G+qArA
-V)0Jeii&kIZM)c)ei1q,`DdZCb"5#5`TS9m8NY6&2mINh23-MRM'-lh6%63iY205
-!1aPr01FI1[ikDb1j$**hNU$CKaEqDXNA6ICm`&pcThAf4L+8'Sm@!!!(#N&%3e)
-$!!`S$Pd,V))N2ZS-hqrZ1!QK5SG3'UP4i34(3(PI"fEcS0Q#K"92C$K@P-9HE6b
-cNT,DRQeBDc[aqqT$D#eNV8)&DdiZN!#%#AZ,hfper$l&pI[)`U"CYD61l#ke%eX
-8NM![bE+N5i83d[Fl[Hr%iYTckrF($HIR0$%"*$3M04p'j!kP$U6rDXM2CJM"X&P
-TH0km2Rc"[HG&*i[#(f(pFTmm#RB-&ck*PBNHVS0Ka)H%LDfKbLLS1)"iAb3)Jc1
-%ji')q4!C1e$+EV!VUAf-f1i`r41*8jqrIEb"rEcklR#mrrCRJq1ZiMrE`$GKa94
-jU6lIZC+pD562CdmRci59Rbk'XX9!h3"XQ6cJqBAi*cH0kBALkBGRaJ2-hYTYaHF
-0X#p)F@%Qc[1G#a"XIL%ELH@5#bPrb&FN!i1YP[[jlmh%-jAekAJS-Tbl-E)iZ1N
-UIe-VBQ88rJ9pHaHLJ@Eh`JAEM3p+f0FSl%E'6qCa%KQ%2iP,fai+q-jH!bq+%HV
-0m$2&U`*Z8DmCK6Fa4b)0ia2aZ@G9,ZE96jqF'A+Ij$iHhQhJ'jH5ilPL0P@@RLY
-fq+@YAja2bVlDmpZP*2I,Z@h,"(a8`Dpi+2Y+*E`HZ4D#c&!IJeYh1f)'[V4[2$R
-j`rR3DRRZZ4P-krfTLRlUKe(i$rbX&E"H4f%A%L*8[*bH")%13M,hk!)G4+,3$D[
-JBV+Bjf8aYbL,qSpN%HGN)5K8P&!iK!STh+EU4DT8TGX$6l2Np#Xa@8ElR,`XQEr
-Q'&P+VqH5XPaq[HHa,'[HLHib-$qZ-$#P2h3B[-MXF"J%MIj%-2JJ0p8U(mB,prl
-%JeVVm1,)AeEZm%SE*X-`5BE*-dbU,YN'[m&EE"B'2LhLq,L`#pHl0G5RHl&m3iq
-Uh@40JD9(e*HQ86pSY4)kbiIU#Uj-Ef"*EcRJ+"8ZAeLlS$BFA6-Mk@jidB4mU*A
-B2SM"$YV@c)e6ZP[!58"@0Z$l&VH@lU8)$TUqSJ,ad0G!-NIYF!j!F*SLDT[G(%-
-YY1+4d3cZ'8#`BSaZ+d%dCmC1$q(@5Y0rN`q4-!-1ha'[$Y%FkIYAp)0PY8QXb)b
-)T$fUCG50fMlBQN0K$6RbLSHeq,iNERPcAVd2Qe9[[+(EK2lK4,8$e9plc0*lJPa
--QD5UA,mZQbUjH0&"TCi'BkrrbN%mb,j!0r3@J3lQ8k*c-HC8KkQMJU2r2aJGiYI
-$JP0PlehjamNGSp#DZrFrd!Vk!ik0+iAq'Y,8GQJ8b+FSE'$8UEldrFcdS3m&(mk
-+)&3YAHAqXNrYkrZ8F[9L`#PmMI6H+Hh-((8LkjhDFB"S&TqEeBi0Ud!1!(&rJpk
-4f@N&#pS'J'H20CY"b341$fQhhDmiND1JaHNQ)bkIkK@TGT&k$DIBHaEYcql,N!#
-4DFY,JhDhiZVlbQI`3@$8hN,c!hH0%aR+R08FMJhh@ECjV+P0"-Zd6F35M*55`k6
-eCJhMU!Pad[(@4`i-qC2)FY#qJMUR`YdCfbMk1+r3R&+J)(jr5rhl5'YA@SKK9%!
-H!r4H%bbXF$[d"pU$B5U'iClN)J&HiL#@#!(!L2qjUqG!m2IZ$Cj[E,49[EIkj1P
-%RrrplilrR[f1Drp0IhAHNmemXqPLE,dL6N2c[MTmebIael4Xb*KF8MHPb-KfkFh
-FFMMC`MmUKV)T*T'3!)2Ae6fjaI9)fU+)ij)8%AiRFG(NYp%@hXk%(Q8Bbcj6m(C
-IRC5SP#5r$ZF!$h4)A#jj'S*I+SED&@CfhK6FpVLZPQrXXH96Uf02NrfU[bF5ljA
-5R4hMrU$R8LQ8U)lQ'fK+'"6Di#a18cl$iNlVlJp+rKN84R%G82lDSS,c203D9B&
-$eBHXGIk'SJb-+l(rfG(,Xj!!DEJPcY04,9,L6'kQcY'!L6Zfbj2jCblQ4rRY%fe
-AMe6hl#aI[L&2l*K[(6A"U@*M-"M+KMFVMAcGZp+Y@52A'"`acI,B`SqD$mS[&rh
-"B1df%Ajb5p*qEZ6m`5(6P)mYmKN@+"XUcXl6Z!R*AdRCJ'RkYmE9`DZf)5QrkCU
-0"KZBYS6dV(%l0b3&6'8"2YK)i5r%+M)`#)5pZK+HQ)46m[i,Y&`!4QcYX%5[kfc
-2IK"GY2f`6%#!Z-*dZ5E6YM'#C"Jbl+%p0VTKKR$,KbILh%H2ldDLRIm$L1&i+'1
-D)BP#Aip8rh[I9rq05RFMf,P*YLZeYS1hZDV-RSReYqdQ+T!!rFbi0"[YfR'cUAf
-6'*A&PNUqjeSS*)5cKP5GFBQ$Lem4K9,T2`'9dfT#+q'86&fLP-,`J3K(+Hi(,C@
-*R(maa1K#99,Uf&MeUrA*%8pADE*328BDZ%I9arQfr(+S+E`FXbE0J9i'#D503$%
-DUN3FZMEEJ3Uc`S,"3PUK'qV+ecpqDb)@pld!!!'e384$8J-!!XJ093Z8SX6XB34
-2CpAGe5'%+QYY#3bBY"a*C-$N"+Jb1CP)"J%Lhk'N*4q6$L8h((P&ILE*QIaYB-%
-fhNkIDAH&K%Nb%pNN$FJRfl0MlLe$r14lMUkjBj1#Qf1pV+J3!qd-q")[6T!!2&(
-NN!$XH$VqIIf-lF$JY8&`Z,`m2Kl(N!"fG26m(+Lc@!dY,VZ@Jq32[ecHi',DFQR
-`2$R2R"FmEhPV5TS[8GIj4FMFPUJN(S$krrcHmXjTT(LK4Sf51[S8m0FeEMVMk6S
-Ym6VJhLGTV1lRVZZ"EaEFUUI2-L@THq[lVS32kTfQ[&34P4,qR6LH8leTcUSC90r
-2)#jHlq(PSQ5$"LU+0r@-Q$28$kPkq[BSR&*1dKE`$GP@`m[M1pi1h+5UIP(#Y$f
-["YEirkXd45,c*elIF+LUHqKZJ#aQ&Jj&V0F0QfVhJ%U,iK)b8Rj5bF3(R&Ge&@C
-#A#EdNS1e+6!l+jT"0GNjAjJ,"X-fS4558*PXpZT"@GPQ4BRK,$U&MK11kK6e3me
-$R&PmRZBeK3+'[KCeKV"#+i`Erm##D%'$C3Y&%VFINEJ[pV`2cNF!!!'e384$8J-
-!![3093[FXX#Y$`3R*l4pR,E+,9cS9G6V%TrE2UVLrRe&k`k+#h8laU81%*IMeD[
-KZ&rGYQdIS"8K,pp,FV&4FGX(#qXa#P`NCE4GVrbAd[T#VfM,r3Re*3ecY$mEP0C
-#pVha3DjUN!"UKaJA-eeFRekm(d!DYF'LjIVki@'lV9ff%4XfTid[`MqGTkrIr-H
-08Z2RQYdRFfCm%reVr)q5ZeS&TQ!EF&3"+6i#@"Pd!%iQbLiQ6TQbP$"D+p3#T3k
-[%+J&a`QB&HN9`e%"!i@TRSpq41E'-KF*+efY3YXIdm(#Tb4#d[D[L[pkkf4+c-N
-D!HN5@EpmG)mZV-J)Iq[a,UXa*kPPGerLQap2iR2K)Nh92bG[iR,lp(Y)jfcaeb8
-Hha*bcRH98B[[d(Y'VT5,%hmEqZYhrMc'4hLLD&YQKeplle"Flhfm[)H#CTR`3'M
-"adK5D0hlB4H60&a8F401Y5HehLpe#)T8"HB1aEIS)*JDH%-bDfGNB0V9N!!SjLN
-38TkRF"(GN!!D('BaRVX@iB#Rb*UTJhNT&Z612U1%V%JKlaXIpiKYGiKCQC!!pPc
-Ym43#!!!"LN&%3e)$!!+d$98,R"6&p9%!hb4j54VAQQc[Y9QY`(p1RFT8hqPl9Ri
-9f!Um#Q`&!,j@MEDeZEP[lT*ee`S-%pN4!cN3c9F'jrI-mC-IZ6ph6qa+GR0XIaX
-S4q,T@IMkII8#j)ZL-j,2I"hr[[dG9f5[$5+hcl&C-MEhRLRXdbr01c3U2@pDXFK
-TGZ(Fmkd+U6kTDI&,cPa2DK3HSITrrZMjP+3b2#K9DT5&AV+qfqSU!kjPN8RAV,Z
-Ak&6EX#`0HPbi&UGEc#@dD@[,*"r&Na5l5B6%*2mZh-m89c%6-8#Y$3"@1i0ALf%
-+#b3%GfQXKA05lq9S`EPBLAj8Eq4&D"r!(S2N50#kmM&4LfJ6UL#,pS82Ei#*`@k
-&G+U'aeJmj2p$adlZ)&Le4LV)+(D3!!#09FG(9'3)pJFp,$-Y'EP2#-b+Hr+4+K!
-XLeb+8j!!Q(9`F8!kMGP!SAJ2#fMEM0Id#YU*1Sl5`QdHYK!+Q1GUP3%(P8GKhIi
-2'&60&Kak'&+irSc%krLeDhBd!J!!"$0"4%05!`!'G`e9$8-L%K(QAQi3C#dC4'V
-b4#3,%&QVTLBRYcf,M1"fjmK*Yc06mTPrGlr[fiSm'pr-Yl9!NYA1l-RN5GLq1j-
-4NZ9@j)QXb1mIN6q6RmQmfGCf%8N@%l)h,FNL+%$L"rp1@BD49%3iU!XlH1)RGL%
-XdS$Y8-@K&RB5AKr2MQN-Tdqr@5Tb%b2*lEeNEa2deYr0KTa,b#P((lQrdKDbpHC
-eqFBN#8XTDGMHT"F9Nj*A@5m3r1$*iF)A(Ra+`bCSd@*%bYh0[UE$mLb8Z8NZL1F
-Kb4cpaH#,'S2Z2"A0G593mh5B(ilNbH!U(HDq*03V2L&LN!#Glm-GLj)350pE&Jf
-fVadV0j9c-)PcYTmmT-U'cCf2[lLr"Zb,Dr,j*UQJ&eL!@HMeXIT'U5KXK+Zi)G(
-%4'NH4P'P*SBS*l2%Ke)*Td69NE&*%bSLi2'$"P$iBJ#e%QfCd)!P0"&UFSY0QF0
-BUD3IT`bXGDL,fZ$B!U8fSh08@--BYZrp*)$#,J2%1@+BZ'k&r-qa*h(XSZeGPi*
-0bi'TkX2@JbVR0)ahG0E&J(3EJ`[@YV@,-D*-cb(Q-Y`6mPcZfjMcBMp"cGLljK3
-Rb&aVTMai@-PP[RfUT+62k1U0klXYd-Kcq8@f`RZ!4-@X%K,E)89)*H!)2HGQk+!
-L4L(61rDKE[-93T%lT4&h#Yj6*Gq@)$NpfZfT-bIQ[*a$ZHi9U@$-fpTGbR)EqIH
-h6JN-ELhIr*F2iT-R9S%)rHb*!9X*2'JQcVG5aT+bk)"66"T!8Hh@RKiMNZDb1RC
-PrpLBBZE'f'*+5Z1k(+rRjMiNk%bc`$2Y2dPbk)d[lP"05[[rh(fm5+9i5KpCGN!
-BDPI(P8iGH))aB&$'@AMak[HhZkICP"IAk`20U"30ED$cl3ANPB5bhE"dKJq'UT!
-!'MJ$K%Ef[#TaY#Qi5[JiZdp@*Ek(V6S2"5LGMGP9XcSTH`kX!)Q$@e`Lj!Hc!Ye
-F"G@qBdCpV(kpX(EYJl32qi0AAhd*'kUV,i&`%M,25lL3!)9HJTA-Hq-JNiRVb1C
-`%N0V@&,9LJXedG30VZTedYBKmQ8[pD@$C2LX$T!!US[$LD0[BBPS9ake"Bi4i"N
-pQ[B5,S$!l!aZkDY"[CV-MSM(ZdcHrYqi$lHRmXQ0Uj1Q&hdZmV+6dc$Q@CReZ"0
-&fVV&S"Ua`C3d8JpM+h9[1peJ#QP[H2ESABrbfDQ9EXl,)rR"Y(aV,(DK,&e(qXH
-CLJYTG`ceq9R+jqIUrhj)D3VcIeGqcX4Q-IlfpqABR&9R,NpTEKEkTP6FE&CkmZ#
-#0U6Epj,8cI&CH25LN[RmcjI[Q)F-e2@eAFBV*qph(["`34I,9E@$fDIYZ+ZVJh8
-&%Tl"cXY,fjl%2ZKNB,XDjI@RH3*a"UE`8,`*ALRF`jGi-!Gh[Rked&R$@pIN$J#
-3!``,9@j6G(9QCL"KFcS!N!-)"b"QEfaNCA)!N!-m!!8%)'pQ)!FJDA4PEA-Z"&0
-dEh!E5A4PEA-JFQ9YB@PZD@jR)(4[)&9Z8h4eCQBk#e9Z8h4eCQCTEQFk!*!$,8&
-%3e)$!!!`$8X$@f`,YfS!N!@S!9[Y[`B'!r!4fr*r#&K#bBm'eKXaPa-!N!-'!*!
-&$3#3!cm'!B!!N!-&0Li`,M%b0Li`,M%X)%0[F(PbD@GSG##T)$%j16!Y-M!`-5"
-"E'&NC'PZ)&0jFh4PEA-X)%PZBbi!N!-L"J'!!*!$"6BZ-#ia&90dG@CQ5A3J4'9
-XGAKPUL!f,M!Z-3#3!``!+!!S!(m"F!5[998!N!-J(kNJ-6Nj-#dj1#""E'&NC'P
-Z)&0jFh4PEA-X)%PZBbi!N!-d399c-J#3!`&*3diM!!-!N!1!!!%!J3!#!))!!`#
-$4P*&4J!$!*!$J!!"!)%!!J##!!-!J`#3!aaKGA0d!*!$!8P$6L-!N!@%4P*&4J#
-3"B3!N!-A!*!&%!&+!!!"!!"N!!!"%J#3#*e"4%05!`!!U!eE#PT!!RIi(&CeCqR
-%2P6X%(Y60h9ff+'2YaYlZYfEEiHc(faB9@*9*9K9BMf'(9B&#DJTT[J,i1(,8`"
-QDIbQDRi#lM$$cBqlU)D,4ASBB5rYZ5acTL`96)r2pNKjl1M&V$6BJ'b3!'ZD%ZB
-8DBKG0`9Epd3(4ED8d&f,-,R*JQ8b36(T0HQlAa)VPkLN[F!r*`mLD`#3!jp"4%0
-5!`!!UJe6#T`#!Zr@j3bJ[U#@m9XCReQCTDd@cmSkYcGhYGkYfl2&Ej`"J!%!D!"
-JC(0C'3!$#DJTT[J,&1R$QbkNIKkRaq`VEU4dMCZYeC+69%EUD1rE8eAPM-)NM2Y
-cI8"Z'lbB&D-,`U9`KYT)$S[40NdGA$B!#a9f-0*INe$h8`6(+)1+dE24hj!!*RC
-pBZREE[)VqZ-BbIX1!*!$6!!#!*!&#!!d!"S"'iJE8'aPBA0P)'PZFf9bG#"NDA0
-V)&i`)(GTG'Jk!*!'#`!,!#X!+k!#"%X!N!8G!$3!,3%BL!*H-3#3!cS!!3#3"6B
-!K`"+!-%%!Np,!*!&!J"&!#m"2iJCAM!JBA"`C@&bFb"dEb"LC5"NB@eKCf9N,NX
-!N!-B!$`!3!#d!CJ!!3%!N!F""`!!+!S!N!-B!$`!3!#d!CJ!!3%!N!F"#!!!+!S
-!N!-9!&3!C!#,!BB!!3%!N!F%5`#3"!G"8&"-!*!'"e0PCc)!!3#3"!G6C@Fc!!*
-r!*!$"e0PCdi!!rm!N!-(39"36!#3"3%!N!1!!"rr3!!J!L!!)J53!!!Q#FJ!)K2
-N!#)J!J!L3!%!))IJJ#%2m%!L($!J*"Rr%#JDLJJb-SSN*M,b-Nid"MNQCI3b%Q8
-8*!KRr!J%F-!3!MrJ)!%"J%!!KX#!!%!"!!!J!J!!%q3!!!R)!!!%N!!!!!)J!!!
-"3!#3!i!!N!H!!"rr`!!rrq!!2rr`!$rrq!!rrr`!2rrq!$rrr`!rrrq!2rrr`$r
-rrq!rrrr`2rrrq$rrrr`rrrrqIrq3!crrrriIrrrm$rrrq!Irrr!$rrrJ!Irr`!$
-rri!!Irm!!$rq!!!Ir!!!$rJ!!!I`!!!$i!!!!F!!N!1!!*!(!3!(rri!#!#$!!Q
-"!S!+3J*!#)3#)!N)!K!,d!2i##!!#!K!!!J)J!!)#3!!#!S!!!J-!!!)#!!!#!J
-"q!J)!r`)#!F-#!J'ImJ)"U#)#!bJL!J-!BJ)$3')#"Pp#!JC4`J)'Im)#"``#!J
-2q!J)!'!)#!'`#!J!!!J)!!!)$rrrq!IrrJ!2rrm!$rrrJ!rrrm!2rrrJ$rrrm!r
-rrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!r
-rrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!r
-rrrJ2rrri!!!"!!IrrJ!)!)-!#i%#J!K#!N!*K!)J#%J#%!Z3!!2i##!!#!K!!!J
-)J!!)#3!!#!S!!!J-!!!)#!!!#!J"q!J)!r`)#!F-#!J'ImJ)"U#)#!bJL!J-!BJ
-)$3')#"Pp#!JC4`J)'Im)#"``#!J2q!J)!'!)#!'`#!J!!!J)!!!)$rrrq!IrrJ!
-2rrm!$rrrJ!rrrm!2rrrJ$rrrm!rrrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ
-2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ
-2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ2rrri!!!"!!IrrJ!)!)-!#i%#J!T#!N!
-+4!)J#NJ#%!T3!rJ))!!)#%!!#!L!!!J*!!!)#J!!#!`!!!J)!!!)#!(i#!J$r!J
-)"``)#!Crb!J'S)J)$+#)#!`"L!J0!BJ)'Ad)#"P(#!JCr`J)($!)#!ri#!J!B!J
-)!E!)#!!!#!J!!!J2rrri"rrq!!rrr`!2rrq!$rrr`!rrrq!2rrr`$rrrq!rrrrJ
-2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ
-2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ2rrri$rrrq!rrrrJ
-!!!%!N!1!!!!"3!!!!L!!!!53!!!!#FJ!!"2N!!!J!J!!3!%!!)IJJ!%2m%!#($!
-J""Rr%!JDLJJ5-SSN*M,b-Nid"MNQCI3b%Q88*!KRr!J%F-!3!MrJ)!%"J%!!KX#
-!!%!"!!!J!J!!%q3!!!R)!!!%N!!!!!)J!!!"3!#3!i!!N!H!!!!"`!!!!q!!!!I
-`!!!2q!!!(r`!!$rq!!"rr`!!rrq!!Irr`!2rrq!(rrr`$rrrq"rrrr`rrrrqIrq
-3!crrrriIrrrm$rrrq!Irrr!$rrrJ!Irr`!$rri!!Irm!!$rq!!!Ir!!!$rJ!!!I
-`!!!$i!!!!F!!N!1!!*!)Gd&%3e)$!!#!$9-,@b!$!kCJ`kTUXc#`!5*LB$G,XGY
-CPD!JBX-HkYR!Q&8a#f-UZ[HR8k`+#iPMb,ELGpB!8LMpiEh!JNUia8#RBdJbMUr
-CpbBL$VrTa[llf*mk9dmSTT%&(C'kJKQiSm8DVUKU*k42-JV[4Fi&!*!$9d&%3e)
-$!!%"$9-#h0B'NrI54Xe&%fd!Y2Nh,VcE64YQ`QbqU`[IK0f`fq6GGYA9G@%!#6L
-PL2pd"ISD0+Bf([[%R@[C6S+*X0-3qX#ck!"SN!$&[[i%[JB!N!B")N&%3e)$!!1
-+$9-+Qb3!IiC&X0dj141`a3jG5dj2(GX"&32EXIVB$&EecMiSU&KpE-&ZV1V'`$p
-MIe6d[rp[Mr0f9KR'kJ!,Q680A&D0p-'14[HZ8aVX",2c+"6FaH)b3VE8Z5$*F`Z
-3!0p[JRD#kG&%G-mTHE-6hEc*lLZ&K$2-5eVUQP++(3Xq(j[6I`6`H[ijkXV6kQV
-rRepZakZIr82rqj'@*3+i-fUMJQe@`8JQ[%@VE)a9Y9jE2Q+EYiAYB49ph"I'dPT
--T*5d!R%I6(k-`pHZ'qD(TKRU8p[f6Gd2ZK"S@S!R"-J!R!"-[ISY!2lU#3-4I`$
-`SR,K!K!FJS!"JQ*J,6L,N8'-h`a#j")kiZTMNXbp+(%I60pdq8A%+fc,'!#3!c!
-!N!F%!!$rN!B!!3#3"`)!N!F$!*!("2q3"J#3!`B!N!82!!!%!*!4J3#3(S%!r`#
-3()%!9#[r!*!DJ3"8re3Vr`#3')%!92q3!e3Vr`#3&S%!92q3"93Vr`#3&)%!pID
-3!e6fN!3Vr`#3%S%!pID3"2MfN!8Vr`#3%)%!pIEfJC!'9[IfpL[r!*!1J3$ep[E
-prj!'r&EfN!-Vr`#3$)%!pIEf9[prpj!%JIrhpT!%+rm!N!U"!2AfN!2mrIG@Ij!
-&Uj!$IrEf+rm!N!L"!&6fN!6rIrCr+Rm!N!089(p@+rC8+rm!N!D"!&6rpT!$9[r
-iphmUI`#3!e48UrFVp[p8+rm!N!5"!&6rrrD3!rcppeC8+P53"AqVprEfrrp8+rm
-!!)%!92q3!e6ip[prpRmUN!989(prprK8rj!$92Mr!!$r+e6rrrEf9[rhphmUJC!
-%V&5V9[D3!rrr92Mr!*!%rbY8rrEfr2hf9UXUJID3!i&rrrIfN!2r92Mr!*!'rbY
-8p[EprIG@Uk[rN!CrprD3!e6ir`#3#2mVp[C@rRrhN!6rJIH3"2D3!rIir`#3#[m
-Vp[C@rIq3"S(fN!Ahq2m!N!cr+rD3"[q"pj!$pT!$prMr!*!1rb[fN!2rrrMrrrM
-fN!2hq2m!N"$r+rD3!rIhq2H3!rEhq2m!N",r+rD3"&6fN!2hq2m!N"6r+e6rN!9
-8q2m!N"Er+e6rN!08q2m!N"Mr+e6r92Mr!*!DrbY8q2m!N"crq2m!N"lr!*!a@cP
-"4%05!`#qeK"9$99%%J!KBZj@chfq1BrM#%F)D5V"[)53!"l4*+IB6%DL*KF0jj%
-Qab9+C#`j2prF+56a0JC*AIqF8k)%%4"a'FFb0"8'NS!K@*CPA*F*M1eBeQA%8XC
-5PPT,U@A&XGDa0XEFprGlR[IZ[4K&1Tfrrmm!'U@R*-U")%L#)!JL!`"GNrpaeIP
-A0D)c#(cI3SDq"-IikiS2QCUI!#RaGirr`"dhjAhkhfSV4Qp5VYjr'eEFm)hD#VT
-+a%'qqJB4YG8((AITI[-C"H43lIjAHb[X6qrGqHlXNGq"f&Nm8[[ZE%b`-6i2@[V
-IrB-64+S2"cT56T!!HjmBq25RBGY()&QqqiG3mTGVR%20bcmFf'YqpcC-Imr6'CL
-Zj1Rpp(Ud)RlQmfISp@K&SSfR+d%8V[[mQB*r!JJq5*qd%b!JMPMlPj`,abeKS!)
-eRVRmUZA$JRm#(5N241EXjT@+k$Y)[Tr2,cqPXV"%T@lHmqHL[e"*r-6aNfJlTI4
-Ir82C4qDAR!N3Uk,K`RL[qZI1Af6f@RZV&lY[iHDaF#&20JE'c(QrbR22iUiHYQ&
-`8D"hhdGZ1F!8"X&1AA[8h[NGXF(RcS3$%9!RMXmDFckRBJ963C!!G#ZEbP+(P+9
-U5QHIhFir[qMm"5A-40-[4-0Ak$EMChR'&'S+61(Q$+dj-%81&5q'0JkTDjZr%GM
-Xf+`5YFTHV$p5PFmNJeFkdXlRMja5MMhr@A3HLcq2aCpALG*[p5KhE[Fh68PHZQ0
-kdT3d4mejpdIGVMe(D#Lr'JXlR0rkJhRZ',mUe+khIHX28qC1ddmKFqP3RIHdZe6
-Q*1ZNbRCpCe9qD4%46GYfGYc9BD1S%(ZdSrrGfD,6JiQF8R4+'a&+jH$0rbTH"'L
-iTlZj`qET0'KArPq&F[RL&"fSXNZ2)V&4qqjY9Lc4&m&d"L)CEENrI9*Pj)-%M(q
-)PU[3AbpiTIH(5R8[c1Y6TSF(8mX,AS()NYMfXiammapRcple[LS'3K6VrHrH%VE
-TBaY""#pBQ['UIl(Y%mdl850j+&mCKLe"j!G%lKhU[YIDF1H#F%3I'cqZ[c(q[&k
-LqrA8q#k3!2e66KSdchjaa(c2+SA&0-h@5dCqpr09+J+bFh`NjADmI+8!$2km@FA
-pEcffb,l%#Up%N55rA)2$EMHbP2[6hEZY$FRqF,cCcXZJl(JGSR*X@%$+m49Yj$[
-U!!&Ia@Tc(PmN$SpIX)a)eD[Z!'8-(VC1`m[lDc,@[&bT4cf-B@QPb*Kf"M'icXK
-J@dRGMe%3[&)kI&f%[#m#jAlfb-XTS+6RTS##PdEJZc[h"YjGXA()EZp!")51#)L
-#TCIcffVIAD(EI$G6F*[rk&3pmB+T)mTYbddU)Qml#PjT8fE,r+[,NqEH(q6GhfZ
-f@#aj9mqD*Pm'A4ReA%PD,'D,,kX456hc@$J@[IS!0R%QD+,(jD!$r0*X+8rQA([
-rY(ZLl5r94jDq&)JrpJdXA3`Uq+(GAZ%N-Pa(JU)9Ndkpj*iqHe08MIH2(aZpkGd
-+C*EAYeDf0R8JF1afLU"SlQjf0Lp%*-IrDI@I9Z10JCG!&)l@VY#(3MQRML&LTZq
-A-dF''jA24!84#,[4F#`8rb$U5a'D0Lpb1`VQK@p("Nb6GCl)Je8GLEfe-reGpq+
-6dA9V`Fc&H5$Q15`IiYSJXX'jPr0$b9%!hZ0,2kUdre[A2c`(i,YVKMlN1kIVfV(
-@-9mU&-m$38q,c[YSV1XqChrA$(1H!a%"ZpAP[-d+M6mrV@6Q6Y'Gb0jR)RYICem
-&S[r3b9!S4p[3R+G&'B!C4+I5eZ(ikH4([61[ap'9ah1fHr5[p+&c2FGp3B1503C
-0,jMj`c22AEP1G9h$RlcRVYMYAI-YY9hA2hG&1ES@&FcmQK[LL*U(i`U6TEKJ-Jq
-M3+KYlm&2U'$H0mHF454F4)9hiPAmbCmQ%$Pjj`)-Ai5S6Nh%+cSSDJD!$*)Y&45
-0DUkpiD[QecXiZNrCQVp(dA,+"RCAM$mh%U8A+$Ur*kih!44bDJ6e"KJHV!Q3!(G
-F#Xm*m+h*#P*9H*rc!A0HUA,Z94&chY**Z9G5P'[&CNeb(k"AKl4ANdI8l,ISEpe
-Edk0cMcM4f+CQ6k'rG92ZMmi&+$GpXM2C5"ILjV`k"@#YL6DSFA'[LQ'l0d[9l0I
-TEphVpdER6PTpj0ih$k!BR,AjkbLb[Vj$aCeTjVaCNp'0S4JaN!$$+CS4)%*ZrM-
-35kTj[!f4AmM`V122P`H)iIh%lRG@4a[5c2-243lfcr5EVcl32c2$I-hD)fZcAI(
-C%qK[hB3CdqCQjpKQ(0P2l(lR),&epE**jU[VN[[lC`E-hm'P5lJdDHf4dVL(e@P
-c*c9Qdp*R6GB$Km%U2KUcEh*6M0REQC'V"cDk9(IcH(m*4jIhM9XTqSQLbXTZ"b$
-9hr82BCFV30(%bJCL8ImeKiS1+G['3`V4`5$C)N+5!V2PNI)5YkZm@`a-d%#p&c&
-Y0Q`I0,6jrbmR8C6UMhK"B83!fSLKdGa!4Nea%I+CiANlZJ()hUGE8EMCN!$G58&
-Ad("NfMI!Uh'(MQqH[+A%hS6&9)bA8Z$@',`XD2#EfahX#aSm+Gh"5`Me@mmC2-!
-5MVUYY#pZITdq(82f2RYIDc1bZB4+Y2jC0LU6-V@fBj*8bGBrHcD$m1!4+++UZea
-p,aSfK9,)hPc`$S8844,H!f1IH(ZA5[Nk563iXV0$-R[DRqmq%dT`PTL'5jGTU)b
-J,&FjGb%#)dD[ICX&Ujf#e6jLYrPe#RcG$l$GT@jdm$9%Fm,M1EY8TrHB[V*3mR+
-qM*Me"-0L*`,BR!I`I6&I66Xaj(`Z,J'jbmU"[`2dJd5kLC!!6*RfqVYZhJY!ZBX
-!rcjr9"p$dhTZ@Zjf&G@TI6LZV%JHDm,aKATYq`aQ,Q-MC96,J3BQDrrlpEif5[b
-%LmpMfCN3Pl[3A0Ze(MmhBpJUIck"e&drmk!C!SJ@3J0S)!U+Q"F&@I3S@&6R,@p
-R[P5lMd%`F38CSqkIN[N5(9apLhIa&(90k%d)XP%1A01S#%PpQdhpAFGc6!LdlSl
-qVY-5TC+Q4J8"ZREPDfK&ef(dFC@ck),'6aU,R!NYLb8J[BJM`%'mYee-$LHIfpa
-eBZq1VY22pACG(VhTIGpHFeI9k%eG!k(VjVK4(#LefX2#LiI!3NH-SmirX)jGcJp
-IN9feh&cl[Sml-hmiMLLC0'V!iCZB)8p$jh38!a$p$mh@-4*#H&TJmd9!kIBVaQ&
-ITQTFHhUS#"%D94YMG28LSZibmR(*l0`0%-(Vq41RP8H!mqaPc'#"YdRP-T0H%Bq
-cS2Ul@X3abcc#mcD11)XDP@5C'!i@C*ED,ifZE*DC8QKc1VqBfAADY`r&ZFqFGc$
-0I2@#U-r"aH9P'M$qC8GNBaUfDk8!$"I6-R(-J,2)q-+hbQK5!%!64GT$3#T%$VI
-!l+H5[)&Z$6ddafe!)"j'!mKV!"c'jb'rdMNV04A-ZhE93b@Ul8Z`S[VP&JpG#Ce
-mT9SeB+Z4S+hZP*[a9I+daDe&b'c[$$I`pSq-2rp3*Qq-5+KVPr'fPHTMclE%U0J
-8JdYK+[*%@dPjL8&X(*A+88GJVC'bN!"KC%'*MU'G[382`fJUM52r6K1B3-eRMe8
-Im$5ldC`3c3fHCLZD)l,jR(H,!fK1%mhH,IDJ15DD[9Y3G')fSNmp8Ej!TpXmi&F
-ITUpq51"A(d"[-UV3jlL"',fUNa'L"f$dTBND)DC3YrDZQpL%M+Bl%*e6Gd9CZZb
-&q1RFJU[fiY&e%fr'TL1KBQ4ej3!Aib%RE4H1140Z&Fr4kbEH3KQZ5IN3DBmQ0ki
-diBVB!"QJcAl38QRI`jH[-eaZ"+&Na(i43'dj$R`32drcTA%ZM+GJSH9E5LEf@5X
-Rp[P82%+$a1C2Bm1R3"Ul!CY1#AelMTZ2QBHQDC5PbHX6Fmc$554raZEMbK)bqr*
-N06CBJb9EpfdTD@ULDI1IRA90!)FSXJF%aV8`m4Ub&'c1EEd,KCrD3LC99e$i+3R
-bUQ5Y5Pik,`BK`ZJ+6-K+F-KN0[)$mGBqQ9$D2VR0haq`6h1d%+UJm#Tf@Id6R)F
-)B2[$B)jYqS6T884LplQ,GDYrN!!$cZ9j16JpkKV&-LX3$Gd(iN3A(6J3f$'Jlb$
-JSK@CX@i$q@9THD$Z!CLAIHdd$'!DX,PlK)$)J`4SA@h1Jh&B)CZ%I@e,ci'8IE(
-E9$8Pd%Y!%TR[,)LHQQl&jA!TE8pXBMQ,aHCPe1RB$I"PQK4S(a9!K6Gdf5q'Ljd
-a)BbaDJH@ZQ6%rr#Eae9JS'S5L,)99+a#B"8(A4SETj4pM!96LJdR0cq"B565+`G
-*V'*)8aGH,[%H1(A'4J4,mfSfV-3Ki`mlkbEf'8L*6C`"&Ql8LUYjMRX*@0N)d`,
-9cBLH+VLdj#,-6Cf@VURA(&A$5@NSk!e)pCQjXLpMBk6efY0*-[hVbb"63F1!k(P
-ZhTKS,@`VkE#"Y5CF-H(R3(1VSiZ!Yli-hbB*6[1e0fX,$Gfh6f9jZfN$YCf'EQ9
-PM)d()`$jV)&H)`-LH&$JD#`IM(#6X[XY!!'`p2lfRSlqpT!!HIJk%b%a!3Y)@Sj
-"$$GlLkf-r$"lbeJe-[d+'R3BL4aPH4,*(,8C&c)!-XbJ&jC@GC`535K1+V$a$,b
-B*BUpe0&Nk2MHXDk+G!FiI#TYVQLDc9ZjNSm#D0R&B"J-(-0l,0qQUf!TC99[F(,
-arIV,JV@dkGBd)2+bAIPd'FJpKN58(qDRecZ,3XFIRhQ$IbmDZPEdMbhj`$Z)`%!
-3p1C0V$!Z&Ua8'6DUA2)"#NCN!EDb'X-12SFAA8hia,Y@1[[IMfY"(Lj%iR!4f$+
-&l([(E[!2Ur+)"--FC`#d[ZJE`6BZ"(m9*NiUGY(jT'$H1amF6C)`i&8r1+Vi"3)
-',a$*iqKANIGpr[aMPj!!bIDrlhXM5S$,2AQpkrS1"0i+4FEVi%8MI3FSfqXl-(V
-6$4PQ[qAE48b!ZLi1BmCpRPF[HPqP9X&%,R)H'j,RcF`)k"Z(iNP+40"J5MLm-i)
-$krS1j"3YLaj+bX2EMrMc6d8q'Q$'$dL`iCdk2`jB-UpJhKZh%'ZpkjE-kre6a#D
-[8+%!Xd`%)"PR,TPRVUbiTQ0S)rl*$ki0QLZRrS#+4AU*KM`V!B1(`SG%`rKc'0"
-HZEGbkU,fVdEA6Ih"j8%X[T2BQlU3!!kSbRGhLX%p",bqAimQPCK3-#m``'!3*5+
-L%-GabI)M0e$#qMT6,pM&0JhAQ@JEqA,)*Dj%q-T"f@bj+*V6Z$P,0SpDppDfIp8
-1B5aj$3,T,*KhGYdSJS@!bZGUfbZl,S0SF!,,Z`D[(3#H"`VQ0D`,fGZ"PN4ZV-i
-JiHmB$Q@5qACE#A8,AUNGS'ijCD)Q2H!bcHMUFf4QjeD14ITJ-"MZe$-2qXQXHe-
-h#3d6Qjq4YYbP,J'"SNB8Xm)$RDT')I[jV+kQ,fE49Y(F5UAk($-3!6+a"FdElU2
-T*r"ZBbB&0"i$JDp-E0"JcU[+*d2M,Cp$T'A)3&mMEcQQI$Cjq*EAU[+0Ke@ZYEi
-89[(#,j!!B4lET%H@BT*E4`Gf+#Qdh8pVU--N%r`d[ddNT3Lfqrea'A`!pPAbHZX
-1Rj[%LXcK+f4APC4-i#c$jKX*HM([eeh8E25Lb3QFa9A5)"S-XXaA#,KBX%G1qNK
-BPJmT+hMZ+5ViPh3K'aVcjm181S)I,(er)`*kiBjeI9@ATe"f"YCLeKhKQ+9r`D[
-ZEQB%)&9i"E'qi&Ab#KA`#U-34NGGa3hiQDF*'L+SA$)C"c4i$d$6463T"&kNCM$
-JZ%lI2Z05KDLVU#"eEdXiVQ$K,&N@,*a`5JVCIDDMEZ*R(A902dMR#%,2-KE)a3X
-%FU9JhZElr2QFN!$XeJ+rA((`UkCE1ZU@,-"2&iB'))KErIP!qKHpf5UF'A3jL`V
-Q&Eb,V2),hND5&0mXQ2F['d"5"%(9-@``e'8!1T3X,dh'mPi+`jM'9*UB*"2E[XZ
-K&"SlLd[MYFJS)bVLXr)Nc@I"T&6YMPH('d*1cm9XFE%Y&+',CDA*[m$!"#jfmb5
-061(TBK*CYE9r`36"h*'#HHX@AFkASZ1JRL!0V3&%Xf'[G6MqfMXMcL'ep)Q"%6-
-Q!+9rZbKXSQJf*(HZ'eqk%35PJPF3U3'bY8U1Q0faa!0h`Vd0ZUDjBjPMPLS3`2X
-1EP"a1#MUH[N+J*!!Z--&ZlEV`KBV3,C+r@9+cX6j+1I,j,!*R6Y([QT$*`ki1FY
-bPUr%-4L&,TSMD)jKNP"a[)`i'P3mf9&T-c8N1`*M$ibThEaCBDT"4HiF#FFHS%e
-6MZ'0p[KV*f6h1P0$I!qL12lL)$,%G[f0Eb"5Gr6P8@@c0X3IIkHiZb%j&@ZieJ&
-bM-m'aQpli!`SZRHp2"`hU8,VF'*&l@BFABMV3jB`b0apH[lKB9Z9+JkPjVKpEBI
-2J-K40QHhEpq6Cp5,b[RNP4f"RBqSV&!5Vf-[Re&PUK#SH&6I13+Mm%dEEXmZZ)I
-3JU*kC63J6FGRFN4J)8`m(5$U!Pe'"YhPL0CVG!lGrKK-24d,eS4MeMAKE[H+hJU
-Prh`@)MGT@*60&NaNXZ"rY@!@KJIFkdlAjj`$NVKV6ailJmRaFpmrGaU635+PBl,
--&hS&aJRUfIppA+I*URG1(-FNZHpN6r8lQ&KUDfP!mRM1b9UD$&CM4K-PrJ&aTSd
-JL%-4aeRe#TbJG6[1aNm$[)m%aY`a8i2MYjFT-Ym0BPC$mN9-UGMR)%2(LN#-*$[
-#$5,3$ZMj5i$5[rkfmeYeCXGB8A'ic$'fX6KX`UFKA)LQ"TKX+(FKMV@&J!kK"+%
-YYP)bS#ZcC,+[M8AjAZ,$!Bj'9jm0qQ+iSY`a0PqNL2UV*$+SXK&cGh&B08eIS(`
-V([q'RX,,"Bc-XGf4Y04e-&PQp#J,3Sm8S3I!ZYdBRLe4XED-PZEie%'!N`1I4'd
-NFd`bf13f-NE*8EdKQITX%%kYAS@(,'Yp95r#X2eh()d0,qG!"#A%B#SfMjQqDHf
-!Sle#I',Kb&0$EY2iN!$E)EZI$b'5HmJ'GSU!&Qc'iQ!R1&F"EB%`F$S$!`TP)i6
-*!-)mGV8llVpD$RL5"ZL(L4a3$14b22QBDV1F8BF!&YGCNll)H0`G(drJHMHp(QQ
-&)G)R)h5%M9$DRXGEf&3h(e3frL@'&Y+3!-Z[mJ$*JJ-Xh%L['(eE99Dk3iS03qS
-Z'&+SLRRJ)@DjERbcp!)Mj!9)@"&%ZDB3bE!1RJ,1-#$JSVSS)Q(')%#61f*DTC,
-)U#SX*M(Fhr`6L$Fb-SJ-,X94Fr#J!U4mQ)`kQXGTbCBEpD,`#%8(1SYKL*i+Pbd
-B1i&-0h-d($-9hj2RAQ%b"FE'kc62#)BAGL5Bq(NV%ZN,jh3f+T!!)K```jr,cMS
-3CH-NJ6**`K"B#h'Td(iV#!%1qpaq)JIdm3BNdQiae-C$XcX5'&CQAieKhIE2q1+
-$5!Srqc&GrM'EAicMFRCS(a%Gk&JFrc3I@q`jeR6h0TYMZk1Y815T,@3HYjU)UL"
-*I-CLi1ei#rKpRi[0#H@@m%dq)T-ib-!A#bE#aQImkLii)iMJN!"p),!9Lf1k$3a
-h-X-Q2X*"a"%X0UBY&L,qM&NXml!S(D4PEk&,UrR5ChbNPlRV,K6cGSD2hUhKPJZ
-',f4bce`+i&"mMY[M1I-e"1*&cQ9KhF+"`-J8fLd@#6)pc!R*#9!ANpKTdD[5AI4
-k)J)JQXd')PiKb+$GQK-kaeK-e6C5C[A,!HP`Uh@IG%)eY8Fkh'+bCaT)EhF@8C6
-(2QF4S5fFmLbkBMHq)NH(5*!!IYCBj(-3BB+k8l-ELf"@P(,df[mHT1NTZk3$Yh9
-Nj!L#bQdBh-1$efQ4*c)5bKl(UaGT1"f!SD[3!%Ed1mGhGF"4'ahB2(m)"1$QpaZ
-,(&dSPq,faEj1[S,YK21#"3e&lN+Y%Ha80B!GAl`4a-I$2l@jR6&DLJ6A$&j`2CR
-&X&--kAc%&#5XdL"KI55&9@%@`R*)JE4qK)4-RLBH*2pC1(eVM-+T1!2@HqfrmR9
-l"M)JhlH"K1Bl'LbXUHfil%Y2@"2[`kYFVl#QBJ1I$B6F6lF[RUPVJm96X6pB20*
-"M4GG19YN-P2&Zc$H5"(B1$Pdm0LjRKa&TSX9FmJa(36A$B#hl$3j'@iM"m1@CCC
-(8A`VGEYeC[Y`Q%M4rHh$&0Q"T-CF4$8IG)(KmUk+9@eG&HY2*keGLJKlDkhN2"M
-*dSSj-Q)Nf@49r[a`3&ZkH)A%5c+(%pbQX+-F(U'YblliG0,Y'3LbJG[X&d20BZJ
-"`e"AZN2hL+%fle#BF!@`*)GP'CJVYMb+bpfB&TC[b0K4PG'f`GpEPA%kD8T)Ci#
-b+!%ihN9N!J")K@)+3a`)T0c44GINLq1RcTd8,`UY&-fA`XF"aiT*ED2cq8J#$U0
-BfTP4MbL)1)UMQ!8#G6G+JF*C2C'BjR8qUaIjZQ@M**58Q3"UQ'36"ZcALqJL*p`
-2CRbI$GNmj(i1SQ*Ym,HUp#,244a*`3p$0Qr8!(X62A1rLCaUD55NDM*%---B!Nf
-R0JfVYXaIcFqB`P&U%+bkKS1aNl)[[8A&-1R%")B3lXk3!'P'&-6C0)hm9cZI%e-
-'ajU1BKF""XMbKP9aji%)%A*2(BH3!!qS1Phj!Xii'3X3UA"C0(#NqmK`XMch(li
-6H0[YFQjZ5ch`RYdqU2BGGP'`T+Q6pB8m1ASL&MN-Cj)Um(CJ-m#%'`@TF5%"RCN
-@fV6bD@+Pf1Q*G)N3J%*CEc%C3dB#&VT)UJJ@40QmBm3Ccl6!l,'B`$Dmq+CiBC-
-[I+Y#5CFRDXV8hrk#&T&K#AF-q8j9(jHHqpIh@dZ)R"5fTHV)@1E5eAR*c3T16GR
-l2EkcGjGjp0+1JCd&Q`IbFcI[#,!*-@pbX[VX1E(*dZeYmUMBC$4hjfMQldB,4Tr
-4YU(P@5KC,bGTBK,Mb4Qjr*!!JT)+QhK9+&i9L!Br4Id6k4V4ifF8%Y-21+@jJA+
--VP,,N!#8+3qPk6qLC+2cF5VH4&)'aGrJcYj!CXCS)%1TIF@p1I8RHqVeBkFUI@I
-$Vq5Fl)(&Y(lbh(jLXkPM0jE,f9,X%"%%,elPMPZHFHkQL'RPU)13!!QSHj-hc2I
-cdPkMSK)Q+48M-`iZKBPZ"8!1L-TqJ`4cYL#CDQq"KkV%d"++X0N8*3)dE5LhQh!
-*iYUmH@FJdlqMPc-rqj51hGLf-'ME1EcY"MVZ-N9[2-Y!A5Y[28(EHP14la-"8-f
-KbC2)lP8F34@aYec+'d'Na'KS!BcB,edG4E,JBY,Y*02HTReBE,PF1RPcE2Nf44U
-%(+d2EbUkP"HYXlm0mm4N1(iaZH8Ce9h(i-#YIC59[c@3!,m,#,-cG`Hc[X6mapd
--QQV-kp+,Q8#Nr*-+K+k93F4X9fM#YKF#UIjfmfl6EPrGP54G)G53!)-faZ5JTYY
-*E+@)&!NPfbH&ll91SLXI2d0&VTSY'%+41b@cGl4!`epfN!$1L&0)#bZ5aJiLHX-
-ddPmL35Lj&(L!!#&rEhl"`-jR2%ZkhIc(**R2TdK8IHp#9(XkKLK[kS!j@Ef20Ze
-`Q+X9%QSN,VF,C0%iNE+S'&bh'%&5CJQM81b6`r!#TQ8V3TZ+)%T(lNp08@+K#QM
-k'ThZ4jb8JAhljiK@j12*mHP&a9k2((*hJ`ML*mq(3,R+qLDrf'2Gr,fVNEcUY'k
-qG)de(LiXGlcaGr-6dq)eKle"&m[Je09N3f)d,iRQ&'bB#QQBC8!Eq-A!*cc3mU%
-cGR8I6)CkU%LB@&KA4-k2V@qL3,h"-Q"*`m#mlM5j9GM*JGVY[B)&IijVYq`VNSe
-N)0F,Ff(p4ml(XG%eTM4+BZ,!"V"J#KrNB&q#!*p-!9kRI,VF8KLDd'DVpaAa0ZY
-J*SKYj"DmJ"&iPIAfcq&9i'L'a)4"lb*l!1+0c#$%1jSdTIPLG6#!R2J*PQ"Lj1L
-@'aF1eK@aD0qN5*8E3D$UIiB88*J@#b3"m,X'52,-MS)GJG(FQVK#`E8#b&+X1D5
-rU+b(P&q+hMHd*G1qS[mG!TdB%&X"N!"TIKdL)r4Frq!)9#pS@GFhLG#8CMQNBT+
-4EdT'6#J`SPU'YTBb)13@1`I1ef""F@)&QD%c&%Nr-eb'bjYh$)cZbXfJD`@M[m2
-9XXkGP6he1CAe2ESI5&fI8epjV2iFEfJLB$bD#401r0MF*SUqK5-%aaBLT0RF%8Z
-P0jNa`EmMm,Z-r)&-QKJB)Q5&BH&9P1Q"k++mQGrE[HBG[BrX,-MFZ9Pk0aLp*95
-@c1K6&N,e`JfirNCH6R`"6DlZ5Ai@Hq1DDq+FJ5Rh)4V#"f3*M`lcflZU15K68S4
-`X#1$["k#l%CfNHIep'm2j!GkGhJCN!!,$N[%!)"4q"3bL8,"G+'QM1(e`)lF(D1
-C34Flb#PXLS,m8KiAL!jVY5S)Nj&E3I0U#cS)9,qV4&YiEMif'-MhlbMJK5mfrr&
-D3K[E2M!J8HG5RMAY$FUS*3UP6)L1pX8[rS+p(SS80Tq$'4fbP8)NBY,JDIc1)NT
-!,2PNU!LJf2[5#i9qe3j"j2aS`CZmAD8Tc41J+EIE-J!a[KLmA3FA&2*6-'rjdBB
-LifX!!DAT(6paZMcqpl10ai0Gaem0U)*[lN!4INLP1AG(aZcAKf0r-4D1Li!jLB#
-"XJ[6FNh!9'"EGMbcXd"kU`S1$Q6C%pZTb0H+MDBT(jIBTe+aU+(6C&cF8E#CVc@
-4dbIfM*DkTX@((S#a@C6!a*!!ABq'P'Z-0bf@a9h6Rl"jGPh4'hRN8-`+S)1c5-Q
-HMc0%',"aGNZ1Ga#jeV5B3%h,'*&Tc(NG5LmLdYZF1Kk-!pqifMVjHpF3f(dT+!Y
-'d$d&i5#a4%FK!U#JHBeA@(Jp'Ba"m!%r(G+UZdUmVh@(cm-5#T821f#H[0j8@K5
-+Y%mk*9mGakY0HYVj+"DE3FAZb&*Q)Xrk+,-rXZ(4kK322H'1(hT!lkb+GNL$YTL
-fK)f4jM@k)a`K"5p#5(8NS,kE)Ic&1#"5"d-'"&N@XL3YDqa%`FYCB`B9B%VcbU,
-J4%*8,rVP50fJkmH@m+B[iVTBEKNI`1Cjc!3L$'fqZL,(Ql4)AfG(*ed%3E00!SG
-kp+,#`F9DSBQ$354DkMhB2!S$%T%9%b$#aemN`8(i$)kYj#$iA"iX3*eI)bY'eJq
-dFZ#`XhZL@88BYLqB1DP)"e&QRp64kcdmZ*5G2Dq86"UAKL%k$hQqjK,&0X9e44f
-1STL*VRiPf+PM9Lk@dJ(aZM5GJZe0$MDBc'UL%!+Bl4@!"VBB*5#0S9Rm*,J-NbP
-[!dAd"++E9!FEB4*)kd9EkYkc9K-X&41[pqElci0QZE2JQIaG'4k4NSIUK2'@bI+
--ILH"#6kAp9(+9RbkGG,hD&,F33!AM-2qG(S%#VLqGf3"[f$dImBAF1hidFr&J%Z
-(LNL!B$(QCB@$ZUcpM)TISZhhM*K*EFk#ackKcDNiF"`dQDrHF)3hM@`DXMq$EC'
-`PeXa5G4&"YR"@mV'@41!!NXBN!"!9!SbN!"lU5-6&%PUZ0lE%+H'HGk'"$@dH"X
-Le,#D0iID+$K$@l*X`Y)M6$5,EZ&!+MB%dYZl#[bM[BrX+-J)R0H%H5d*dd4%SA5
-%Q4dXc&@P3TMC3F,FV!PcPDe8#M093jLTl3Sc4F+F&bc-!EN4*b)Z&+9S2+4ZQp!
-4)c%#[3Dmk18G[)8"mq,PAX"m`X"SCJCmUT!!JPEBNaLik,33@SfC(V#-GRFZ'+X
-FeMT,4iF!p&p-SU'crCRD!*bJMCPHGX-XdeQ%5*+6p8S9B[*ri13`&J'mX5R+3`k
-%YM2%@G4H3X82R!%qirjFE[dp@@`6S*@RHB2AGQD#U,)$aAaq`D94!C+MU%kNK0S
-,"f8[((MPeV8FH(Z3!2(6T)`$$eRd,C88H!XQPhL,mQ,+E$SiB82%)Q5ZFf6')Ea
-hRKGeAT2Cfqp'r9l"0@RS`mSh8,ce8F*Jj%l1,)SllN64d8IL#bkD"+2GJP%ELUN
-q!hK4E4NiUTLa0&(B[QJYm9eL-'`-%99P'mDq4mQ#"QT+)5'[[Z4#dN8%9$U5AJL
-29Gk0*H1P"1)'XR$GPFES!mpbEp5p4L3a#Ud$`3@YVe0NQ+`m6bE$kiUN@$c)",(
-mAiK&b'6RMN`[()[J@BNN2'eLJU2&$)fdL8Mfd`#fGIQUJ`ca2-R!0'6Te)6Xp@%
-FeHP*h$UNq('3!2H%e1lI`I(0fFS`(583!9QX+dT%NQ1KbKkC`FqYK["S-818,8Y
-!+[4NDkRVapDe2K6!848&S4!$1$0QiaS3N9T,kk$5#eYeKP+YTB35Ka4Y,X&r8jk
-"R0%Vb"ND3XT%,Qf&T*!!h%U#5GkYZ&L*pA1LNd"J3FMSp4!bY!,E3BaMRf8SY2G
-F8'M$H%R2k%J*%+`#,"GU#d&bYjL+4a4BR4"RNB&j6m'#)`A[4K$"ZTDF84%!B(I
-@&EPYdZZX#e%a59[eHj,+!Xb6A'X*M%)ST%6JdV6$T#A`XBJB*mT,+CR[PX#'`EM
-aAfi*6[i$N!")*dR("h6M!"FId0eK3Q3"r43D$V+T2H+J-[FHQD5X13aJp!%Di%e
-+rZ[1hQfN*-@a$KbEaFFk1N`H4%Q)SdcZENN3Np[r2TXD06'$$*G1qR#l'pqjMBf
-lM"X$f,JJl5LfYAQfYE'3!&*-"NN6faD+E@e&[1f[6G5SJIY!#J(YLmf+23)[CKD
-p!*6Ff+4LBZ-X)I$LQX0`5"-0m!+SEj(!"A`U$ZV%3@em8#FIC$c%SGV%)FAZ'X#
-J21$IRUDA3B"S66KXk`lDYrf$9Ri3I0#VRS9i`6f4c&iD,ZCM8ML'XJ+Ef0VK,Y5
-58%X@8)2d5*0fpR*U5@aJmRJM8iH4486dLidkK6FbX&Ia'Vh`CTQ[lq`0bM'h5J4
-CfaI"$`Z$4E#@$lNJppqk`cUhIpKL2IL`eeRFh[*A1+&a3U@'Jicp+B&j@JfVSiU
-!k&1RXj!!d(6%e$qI5-'aH'mJfed&NRf-Sc*Q(5q(U8DF!,EVpRG'iG$$38l+-l)
-cHSrDhFl!P%"faYXC[@iDPZ"KR6bX8$Sp[j4pL3DQD1#PYbredS%LBQ-+C8ekYM2
-0khL3!0MFia`bX$QX%)N5JGUlQ$33VeDTTrD"A90DK!f,QFPr2S'4QV-V823+NeR
-*dQ4$FL#CN6b4$#8[*LFN9bGENamNjbHR*fFRebAliVCiFE`mIL"ZLI[MRm5VidI
-MJr%(idr&&m6ciY2MXq2ViRd*@b)V8CTS5!`N-K+q4%pL@Q*YBNkL2A&0BPCLEQ*
-P*"ia48BL"b)$NBb),p)6Q4CC'RNfmQjNAQ44j,l)UXL+Y&6D[M4A@Q1D1He5f['
-dR,4SfQYT6kGeTH@P68ql1@e&,"8VLlPLME(0X8Za-l'MX3QaCf2YX@YLXf*cBbY
-hahChlKlClGbpDAIZlKGhRpPpHRIflQ@lahF[f*fhqkVGYqfqIIH+9$a9Q0UA+Nm
-G6'e+@91A8LFkqp6Ii5Flib@hfZd6h8RFV4,G0lPV&GfhZ$XNZSpcYdjd(q5Z,VT
-2FlGEG(r*hBMSMP-hYN*djh"hPHJqaGel4IF*lLi8hArRlJfLqb&hfd@hQEYc4,H
-9ZfY&Yi@lNdAh2Hi1Lqj-lRiPZZpbpl,SGR'h3(6IjqkBk(l+hB1Lqe[ZYSRZ!Zk
-@LHjRh%f*lJI86DX3hIr"hI@L1iqlYiVZ2h&hPZMq2qjH)lSEZ2XCTR2a%b@KAU)
-Q%J!0DZF"Dd@A4C`f@A4CU'R$SXYL62[+X08FhUT+$*!!$'X)m'2Z$SQA,+#d1Y(
-P)%M6a9ECRUd+a3!@4*S5A3kLb")ar#eY#C(CiUM*2'#kk+lKlR`aI"!rcr,`"@)
-l$Sl)8iEYRZ)"b`a0rmj08A'&N5Q5)lSF%*(MKJ1QmI#!SHPaEKSc0,h+655![bI
-Km5DkBF"l2%!6!+0K4"-!"hD#"(#9*Vc%c@+jRh2h2Y(pJVZ,a-9rj1imd@@2PAK
-AG"Pp%mmD@&K0,#3QB2S$r#cM!4F03KRN!G@'+j1jk8@a*AZ@4+lS-K)Q0KQ3!19
-c(Rj)$'#2RGJM''H"*%bLqa*hik,lIkNEAiRTGc6'iVH)lU2FR@%ijP%k*[i$3p0
-DEM*kJ+HjDBkKk6qiDDQKD3dhA63dr5Fh93ZfrKFIrBNBm+riQF)$FX8!&RjmNf#
-8!bEZ&-12%0,cF",![a$kDdJGGaL1r#GU5PBBQZCadbTaM3,c#$IGCfKLG%c10ec
-l*6GT(S"C6cjP'-""ReaQD')[Ni`DQYUjU9)XEaT[iKEG+G`0L1i4lQi@hEHjfbL
-kJpaeLHlVh0dRZUpaeb'kVe*A0BRZ"1iZ&ed1GQD0ZQZjHlm3`4-NI'*@D4NJSic
-k6(4AFrGcdIdcGpH)lRpb&kT`e(b489c"j(q+,#BN1P4F(4I#T)bq5VbJM#GAG'L
-V-G'K)`q)#i3),[(L2p$*%KeLa#3k9)a'1Vm6H#R`YK&%U99IFc0S!e8*4L0iiFJ
-kj55(mY*-*1j6NB[Nj*+"Q@ZimDi6b,3m6XLcB%Q6NDK-2"9j8IiPEZ"*HB4-18Y
-9NUq1mp8L+1+EiERkJAT@QC9IA38YS9HT5kT(R9%69)Yk#Yd6kKSi66L+k9@U8Nf
-'3r9&DJ-kbe3l0ekPeT30U9q5N!!aQB2*0%bHF"r&jbPh$ckIZb[aDA@I`DICI3+
-IppbAmARAI3QI6peqI$jc@r(j(ql0q2`rpbCm0VJEm-Pc(m6RD[FKI+jaPq2cYfi
-GRdAZIIKFlql%TmpGL-pLG`UIRlKK@@f#8p'd(-1L*HLhmB5+ZcbJhqI*@3$ahX@
-5"f'U[64jQeU6[$jjAh*PFQjb9A*GI)mDMmH5&A&i-Y8Dhj0F#L$3%Hp@lI%pk%C
-9R[S#STLKCURCb69UP9UXPJ1F6#@,SHG)6lS`b*NF!f"T6PBPrFN[NZ2*-dNh!-a
-KhZ!'-!ZMlq4U6)k3!%I&C"SQ*%6b-L6%E%a)M*-`bF&N-LCIBI)Q*L6'38aHa13
-YmULB6-'%a2Jf*KC-S0B`Z4q6ec%K-Ek'55NQVf)bJXP5mULB2)j*0bE,-,&KmLJ
-QF8c@)M!V-2QrQ#c"j%%b5F2NAmQMBV)'NhXaJCT204f6eCKFMmQIbD0LmM3Qmc$
-j$d`@B2)X*LfBr"L61CKmL!N*S!X6%X$l!SPZ%%MdMia%rj14D#%MdApM*,U2N@J
-')p%I')PZB56k)b24+NDL2c%5hFj)p0mCLGBc%Yh%5,51NHKI')PqcdLdK*(Seia
-%+c8N5Y4**',dqG3A-`fTIj2'kSP1!hSY#aH55JAZ2"3')3#EA-8ErMe[q#0Y`rL
-YKJfAmBEcjBEaqBB0*iG(X+'C1cGbT`drjILT``qFFi9eYa-EVq!PIBfAp%0H8J8
-[D5S[D5+cd-3Xf$dXA$D`d-`Xr"I"JXA`+XU[rNQmF[&Ra*!!'F(3-'iU)r@##@k
-B#iG9ie#KM3eqmMC[&)F6X`3Y)ISS($LACP+P++ARkG1BkIeNl+*2FDEhBkBQYC3
-l6[US#A40cAdXbS2V(S[bbj6mX*!!VLGeG$40l!NIjmPX0'AcaDIN"C@0km0D"kp
-b(i[q465F`a[mer"TRK5(kr"U2`CYSSDlrN"'P@5@#K'1#f6qGi(-,3+CC`TNEKI
-)[%!Jmfm&-RmJN!$jIc%bIm()2)q4qHmBQEr$b2`$4ZC[-$,2BQ5qKj&j1L2ccaQ
-ClfGNrK8Mmcp`d0r,3AmE"rerjD#Ic8%rPi2qCacd0iZJ2q%*V(raq@X'PH-PTGk
-G&Ml%%kK1SFN6raLfd@611+,3Ll(9FYlm&lcjVEcj6mAQ-9DMC&4ddXF1k[X%iB&
-88qaKC4m1Rd-B5j'$#+GAfF6%bCVDK2k[B%krCXYA-+dR*rYcG1ZFhBd8EA`Ee"e
-YhPqUJ+K`VVk*MELMh+PMdmJS(2Z[JE,eTk(U%qEM%bI$J1ac8R`G9rB@GT!![i#
-k%F@QmT2(ilaY0SJCPHDp6A(Id6[H!-I908A)FH2%e9#p@$Ga6XD4RZ[qd-b1mMh
-EKL0399!(Kj16TAFal`e(6PrPh[G3jF3ZjC6'ja-rB+Dl*LiJ)9,Kle(-80&K'mp
-#0&l&8TLe`YQSVl)F!V`9N3QGdTbB(*5$J2*a+a5MZ8R*IHVI4pV-lK40IiQTEM8
-Uc4$QCkeiBB2$DT2Pfd`SJQ0IGQKP-`ihrl%`eBP!)i2Dm)N4SF3L#b@I1p)pRa6
-b`@P4BZ5kDk+qjF8aGbacdJ2C95T8P$I*Ya)[R6!aMHZ4R``14[@)HF`bKXP1emi
-IIHHh#iphk[1$rcjG@,mH"1q3!,CXIHL83B8Bc2FVc(P`B!DM-USb4e29j9dB$'q
-c``GJDT[Gr",-Fl2aF`8rF(cIh-E+#&*5C80cPV9rj[ABUVCpJhiQDB1LZCRYF&5
-%Ui1Y2m+9364X#21!F6,dhB"A81rG[`"U@[SXrHf[Ke49[N'Nr4M#3ZeI3FHcLHm
-qVES,fSDGfGcr*$QjQ8''!9l91)ZGV$$#9'dQTX+(V2hYlr[+bA&KqrZlb'`i5Ji
-2SELMmRJp1ikZEAmIMJ@l@mijLc`UH5TTUkmYCUIM6YkSP$B#3E$rMVFK"Q&`HKX
-lY&M-MLlkh$SjM5H98a4*a*&*-aFAdp!!KR*e!aq5FqiSR1j#UCjhi()-e-R*UXH
-Tk-c&,UN!`2FZXlC*-Y4mJU*@b$%XAc)i,Y@fmelPS)R#Q,#TZ9i6DdI#)pL&,0K
-Cr@I8r9M!'68$'lM8$2cFMjpCq&RS&I3TNlaSAd`AB83cLpNDS'C%mpjQcYZSY'Z
-#ZH*'-YL9!fl9b)mNK,#*'8Xd(k2AKh[9V4k9EMG,"XN$hY1UjN2S6lDHB,3VlUq
-pBGKqmjED'kk`m[hE@rC4&@!YAm+*#b1,Y98YULdH-CFrVaBpL-[@PfUP-K)i0lM
-HKi#"dG'0qk#+NEcpmZCAHGXBErAP0KKB9)1"Lmc!Y,[2`$GZN3bB9Ym"!qYCYC-
-N32Hh,m22Dd#kemL4-ad#im5&T-6E-mJEq1Ze39X9S!dA"LKl-('S)H!c[TX"M8c
-K0I`XmbT'mK,6lA%iEpmJAc5Y4j3Z"`8LLCq5!jkI6U4ZU"'k*)ABY+4j+Add-f6
-Ti1"[rDBLN!$"PEUP4Z"P0ke(i!df,5Hc$!UmT[8YAj)APGX@GU&+V+B(B8)-pA-
-rKhU-FP+hT,&!%EE68[ECVIqMS5KmKJcrKF++bl[biA"MLYRI1U'KL*eTmiA@#Fi
-L%J5V9QPiF$1+&,c+G+QRdKp819YZSlh%FS[pqB)e(beBHf9!R#@%1*SK2aQ`C5N
-al,J8Q@ZFSK#`4CX3f6S@fETJNIeJMa$CG)U1EL@e*YQYjfU)ll@Q94$IXUEeC+M
--iP[P%4q1Z#X%TG`9$@NXa"dD'l6%@4"TJ*b3!$AY9k[4@GeVZ&EP$B#lkRiKP6J
-ZERBCQK[CQ,d*J!5rE(e#A!dBK(*F#S8FhE0JeV9m5BC@90@BTKK,L)F!*Pb#DEN
-H'S14!cS!@Z#X(XVRBcGHJ3d)CH"`aZ4BiK8CUIqS+E6jYd-aL"6CZQf)E#f,E!f
-,E%N0NG%4Qp)4QEjGNG'eFY&"CR*Rh`8L3l-MNSl)k+TZ%*PH3f4,@'6VM#*6M%c
-#)Hc#KmmJF4ia&-hC-++Y$1pMS1&,rK64Tf$HY`Z,9(1@1bBE#A6GKS"@fjG$3-q
-bbF8+cNbAYr"@Y$fbPq,QB3PZm)![!@40TeGJhp4-DSck@Xpj&(N#M*2(1lU%eib
-3!&T8Fj3cRV&NR0NC35CMiHR$QK*"&T&Jd%UQ[+cHSEd,KXVpl9dbkq1#0jZ@JU)
-r6N8rc(IBl*FV+k6QhG6X,[FdT,LKc-1`bfhcGUL3!2B`,i[43J35$*&Ycj+UZ[K
-T)6!S-a8[ZL'UDP6LdRp$06,BrKY#j-5SJm`4ja)3`#BB*ZA0rQrRl(qGP[elX[-
-pTbTa2*4-f1H5FLj%Hq++)6Zr&d004M"%J$!T1Ea$1Yql(Fh6D`kY!I635aF-K6r
-dAM-!*[Xe0QS``)GT&p,G-S@Na@),16LP)[G--Sk%jBBY9`Tdq`VqV162%JJ[Tk@
-640Mk5cBSP3F&Lm08$H%QVHiATEG)4Z39S4kc@@0!LTe"VZR")*F3QD*-"HS@BNR
-e($iB6JI2)I'`jqTm$X&h3iLUi!Q-26HQ$5"P-j*&il(Fp-6fQ3EjD20[c&l)`"j
-l5AcfY"l6[,eAYE"*eESB28G%"BmcfaqX,b2N")Sl@Xl*jX[4[@2Y$hU52F1N2P"
-6F'R2)q+VhYqq'Y8LT*!!%-X6@hACmqT9)NEG[5AYUrNBPqHBCqY9r2Cd$`,C+ck
-VT[H)V63+X"%#S5SGJl`*JmSNd1I1*080e54HpLLVf+1X6mHMJ"5LH5Y4BGJU!e!
-8dUSk50FEhAq(hSJh422#VI*'+RP)1h!E(SBh62qb@LimBBe&9#YePF``NSA'J)'
-@MJARmeYRN!#kYGDMcr8+G2dr%X",GXmDbeNq[AIkf(1MH)AJjXfC1@G5)1,##a#
-44+*UL'3q08U8P-Y+f[LS&6MiqrMjNADN15m3KH*P+"GAUF1Mb@jLp421fTmF5aC
-+T8*URTBaD1`BNN0DX$PJr,qFNQVfPIa5HU#%B([q"@`[$'B4U"8#3mS!iRD'a`l
-hSYjR-fG&HcMcZB8r0r0R,VDjVH@EP&',l'L1*q1+mF[1),@ZXL!LpFFaQB8CPF9
-+N!!SFY5EP0ZDT-GrUCD!3F4L8*bp!!A`Z(dfLT@R80eDl3fIfqp&Tm9q+bA5@B9
-*jbrhl$@hE`#4LE[rcPe1mZ)!r#c#cd,mc-,2rIL"fMQ!b5CmMZ0(KlH-F2%p3Jl
-9eE6Q$9#TMqX2Qj-fIDIP6,,EdTSXC#+#PFJ2)))kL0b!l+#&d!q635BZU%3hEC&
--Sf5chGjm"Dqbq8UKPqb!E'%pPM('DJrl+2Z#)dUl,b60+rF3S*H0a!P3#5E0CC3
-Y8&@@jMa8A93"0GE4Y8IQ6YYLX6GYqZ,1&NTHd`8-KERc!4Hb55M(TNTbc9FM#e[
-J*#q@Yr6)dQNHCH"GpJ8!erSbmRIPDeXF*%DZlPNrIGU#D(@CpL+'5RjS+%KJR4*
-NSF3j1ID$HXb21"XFSSaFCQca,!&i6%ILi,GQIa%Vh81Qj#G(LXdC%%@8KPM#cU&
-%T1@-XiLGqT1CqQc1$Z-G3j'#5#iqZ4&8"r,4VFK#[b#J,fa"44lc%+5I-40$6!L
-EKCm0T#S!#Y4&-eI'eYrq'6Hr4Kp*d-Q#bMTXdBiYfXAJkr!DUV$XAq"RN@H,kl$
-&$p"TjqEAC+81b3Gam3SMNd[02RcPEaZ5%Il%$X2aDc+9`8NN$c)p43J9XX1TVaX
-r(X3E-6031Tqb3`"@pfYC2*&ND#0&b2bqYjK39e&4'4J6)+&L3)p8CAmJ3FGiclC
-"4hK+&'!XZMSdA'&#93Pl25c"4m$ZPHBh"(!p@bDq2QU$DZaLE9"B$UV5PZd"Jpq
-ejm(VYG[RJj9E'!c1Nf"`mjHHK0iYSQNN#(LYN!!)*)QBj259eB@rlP(UAH-eJ5)
-LB&J90a#`6Pak,Ce,&8**pa+TT&[,G0K6(M@#pBM+5+'`r8`QC-0l3+kB)j3UAbB
-[5JfY2hd1#BNE2VZFleRi"`cqclX3r+G,![525G#IYUJ"mSY%PDDHQDi6HKV8Rc1
-LIY-R%cHXM$6'5i``J8@lYN)i%m8epRiJ#l-k"T!!qJ"m&,Ed3(Q"(m+UN!$H[Pc
-*$'ET5m&UqkHrY$(CqLJ*93jdD31cD`c-aX$(4D*GXV5Fe&CSP4!-kjC-b[kP+Pm
-eVh%$1cPD$Q(E@Xq"K,r5)TPHf8SJb2,@FeZS-&Y-PAP69GiiGZ@XVe3RC6+S,J#
-%IdT'RXp[HCl*Z$j@l,YB$`"04lJiDS(cj-e8S6Smb9dYj)5p8A5[jDj,$k$+mc,
-G$a+26UmXBAVKLeXb[8TXUq-0U'UM`pDbPilaVAC'M#SSJLG8`CL-R$LY50dm4b,
-GLJLPdrM*36H!L9j#%9+I23DP"3"qEU@$8ARh4ke3)`UP&bUj%"@4a$qpLBU0C*j
-!3k'URKa6lXaM4idMTj18R%SqDaLq6!k(SI,e[08d&kQVcbER+,3&+@G-3X@'+E*
-6CJCei8*2jb0X%*!!&Ak3!'IQUDaJJTcc,qF+*[##+TL3!)VZq!J5@kQL4'aImk(
-p4D4H!YAa4(hlc[1,jLe`*VHF+LiMTkGP&1cVb-0*KY9FLIDKb"G4Ra-'p*5piY%
-![R@C`4HjmDVQKb`Sr2"M3D#1YF)*CY-Je%e@KK+iGJEGDBJ)XSR%l[rQ41TLfS"
-9m&Gle1hDI!hmNX!R1$TZ2Q0iYBFVl&rCr+*H4%hIhJG9-b`+Z93F8SEP(Q6PIbK
-iI!6-YqNP[)`X+A48%p*#6SZd!&SqM3,)j)QZd4dl+e6-P@'S&QL#60jErdUT*hr
-[DpZ96e9*[A!&L&NX1kmdNMSJHj-[p8!I$XB`MbS4[K5fLB'N-P&$4$681K%&K)5
-id['6PDj"1)C9$L(,ch+A'3Eb)(kj*PL9ZQIE3N*AkZBm"4*!SbA`G5U-B[a*@4"
-NPY)NIZ,i5H!RJTmdQk8P4Mq&$a%kh3aR#-NM%&BScTm)Ihjk0AhqN6la&N!hrb`
-R6ABjQ@JRa`Xe&EaIb&E210JLKECI+DS32d+HbYU#*(N-hX3drV!RfT%L#U46l$K
-(')9!Z*41GQ+5&",C6CF4m@FMaB&8*IBT9VhL(FM#4'8fjh5KiQBP1l3C9J18U6Q
-(6$DaK8-6DqfPUR`#b-Nc'%M%8092!GTp25h%J`4a8RDM$@YDkc(c!CKAR8(98*`
-UX%)9Y`r+B+!#!S),Ei,MTl9)*%$a9p0DLT*NC4[Ym"jaqr`Y!AX,SKhA5KAT[Zk
-(L$3HTk%MeXY[3B9lR4&8Ki-RRk(cQS'F[@fNQMFaDKK)$AR"$8d$KJE$aDD3!$F
-bQ!6`MNX@`H4Kq6$0f80aKe5a6KGe'RV1cb,ZjU%QUS)05"#K4TQeH+10lDe36ZJ
-bqr&T-m-jXEf9%Jl0YiYSdPC'qrY$R*%VGHIQHKrU!qJT1&PE,ad9Q9JG$e8MBJP
-mQDRLAli$,jN!bNI`NrEeGe3Z)Vq!D[MT4-$%`bG)q42q[Lf4FAG-S)19e,m6fZL
-2-,T*K&RX(%Sp*)Di*!+c)eZmL&dRAmMLcB2@[@%k'Y9#19*LL8'2,3$eF+E3fJC
-kq)"(m(J88(#)6k6Y*@bLb*`qIKPUJ4raQd%dI331!acmJLV6i'Lk"MaJKIC3!UY
-,5SleP*3F2TMjrGS6TkTc6jekjjA3C[qZBlZUPIF4&eKCd50)UUA#m)"YMe4CZD#
-0Y,`)J2F4J,&3dYTbARZXK3G,5SjIZ1PTMd0)N`GSN!!9h&['S*,Y%Ad$UALLL&i
-if"b#kXf6hXUVR!RI)9E'KFH6J+I&i0V'KRIFa8*"PfJ-[4!kjSid3T8R'p'ak+,
-22e2INrRpFcheYD-jamkFlDNre[0+6Rdk5jB,ES*6Ybb2S1&NYE1F99AhpcDYT+V
-d(5p4elG(L$i#d[K+VPDKh*qrAd&Y836Uh6jhG"'$65Yp+DMR0YNRZXXFAF5HD%U
-L+E)IM,*3)lj5S!h3[QPP+!P(M)p8Q6QDE6%jLkHLUZ9&HM`0+bN4X%SR3lkaA9,
-`%H'"k)&#U0US0-rJ&+Ya+(DARFp[)mG&h4d41,ZH'&)Yjr@LYLJjS-ML`LZkYrG
-8C5ANNR%Upqb*R*-jhdm2(c)1lkVfqipjR1%Tcm-F--J+%63Kd5!A6JV6i"8[ZF`
-MMmKU,8R&YTXD!e49JE&CHl56k--)U)'FNq(DqNVfQHPa!5VaA38R6jm0Xb)MX![
-MR"S0!LaPpN*VN9@3!11JfA!J15`8jhe!%HE),*HAQeeQD+j+EBiq(YdF48&64Xh
-%)"8i!"e6"8[*Dk)+@58Z,d%@6dS9(G,l5&8fU`Y',m(GM(!XYRRR+#U`b[GR`"P
-YTP*Cqm!JPLDbR-eR6eDI#ZH(L0pcRLTVYFGC)FIQB,`6BL9PA9QKY81dJ'[YY)!
-V%RbDZN)XB"99NibIa8',D"1[qMM6K-0mUZ+N)idM*-@5KT3cYNR*lITd,'NhPY4
-QU,ih#`S1X#MrVJcTPXjK`b,mVr3-R+fZ&`,1BUDjfL9N3b6N"$&C+46Z"EBTj'+
-MN!#p6*'bb[e#c&-RJ+Qd,H`m1DY"Filh+PMUcIqG2aHZUM1KG%YeA`ZfU&EJk[U
-HqXb6TqZh%rM9FZZ+HEpji&HX5#r`LDh01c2pd'm5f1(225rCfRcfA1M8ZIT!IDM
-kqp+K,V&&,)@JB48-ACE%RBT5`G$+0R0j-%2Ge1`LJ+3Q-h6a+m&-5X['h`3MZIQ
-MQj9Y0aM)2AAbH,S(Ib)hq1'#hqcJ(bkTHI"E1(KA!4rYZ!j(lkUXeJk(+NJ6(`j
-#hrU3!)NC%!Mb`i0D3&c!3#FeHaN`&H&4!0EM`3h@dk1,L1[99IRdL#SI5dDN1MF
-`JM#i"&GqT")VX+Y!GGi)KM,VFdkIKADIhT19J9FU23@3!"lmk#4KIR!5Lr)m(NN
-Z9EZkfpkSj11Cd11N&-clF,cQijPmq*Ti2*188*6-#T-MkQ$L30*m6IZdbSK&ZHZ
-m$e,bi5ID&YUMPRbB+lE`21`-NK5mT0FcFNk'4NqI2&YpmN4e[9"1ae8$YVa)&CC
-Qd+1r3#%Q-Yke,+Bq65KdIDe")+1A4RIQMPSmMM5ec"YC$$QXc`+"EN2E)#SfdYA
-BemQSa[9e8K9FqR95D(`)Rfj9KdqRFZ*6TJjq28-Gq$U8HkP'I#+UiHZCDMp!T,J
-D`LH#"ajT!GM8`K8d13KSSX)KGUpZT8TM2BradbH"I#6X$dN'D&Mm1-$C0RXIc00
-LA,(H`p,8p"4-Z%!LmeIP"aZTH3%*-0(*6*3a%mAia03qbeFU#cplU',#TAL0+JG
-(U-V$TCQBkM"j(1-+iMU4I"ljJjPIPbUGTcS5&K&I*30V%45X1LDG@U8&9!86JVS
--5V-rES4Uir5()@V&-iJ"1QaCMS'SaU(XHkK55LHRb0pklf1H*0rlf%5*QC3i0#@
-fbpVZS4F-5qI3&!j0EIG3KcM8X9@(1VEL8!F1G@ch8*-ie-59&Gl4S4F-5qG3%`i
-eEIY3,bMYVIC,"%IEqCTAiZpp$!*&K$Z4pci@3CIDcZ#8BA"+,(pEJaf'`3l"pVB
-'Q`b$6Gl+aHbNNXR4lfG6U3KRMBXTLU'ePF%a@I(JE@,`,94JY`QPQlLdMLmYB3@
-jfU9ej!(l@JJ&S@+dQp!rl#$NJ2*m#LiLCP8)SZ2Y1MQ86R[[BbB$165fA5AFB0)
-DbSZi)H)C)"Y5RJ%P-1ipB+r!Ta(4#PqT"KL0S,C5ZQ5ifXd#5DRBHaqMkSe'6i@
-`YiJUA0Zi#YGE`PR)@0-)15QUJBdG3!!P$pRk"&A9BDm!-CDl-XUB@$%`C$M'','
-XEdEbk3(feT5CX+,Be[@dE-2LYh'CVV3q!A$LM4(rb&N3#4jhT6SLh,b#"'83ehD
-h31A(KjShZ)S-PlH#GDLPk"A-CfNrVGp#`RN&Q5HNHq8"R3)B+R4S-#Z#%J[@NJT
-%Z+GLRC!!kF,!Fb(cKM+Yc[)-*ZL6)Z$5aTIM8&RVEJ`a8CP-THd9dk2FECTe4%4
-#*DJBYYZ*12I2pQ1aaP*%r8E`+D@LNb,IY'*HJM3Q6Tke[B2ME''UrZTKMZCVrqA
-)YmeSa!ZARbSdfjKJXJf5`mP1MMDY!-&jXEeTkjNKXqKMX32[%82iP'C-#Ea%T["
-U4ZdF,e2HSJK-eq'"DeT8QlZFP!6RpQCBX)4aUML`R-4c*k*5lQaHjNjaN[%J9k2
-Zf8BUrR+DFSGNe"c)ldI@(5%#r26Sl#1cMraG(kPT)+9%fK"8dMYYh65UT[Iqk1a
-TXkGp"bSRlarP3C&YE62GiNak)Q%56UUq-k@Ra2,Ec(PNVUe&$T,aYCi3dGGYZ9H
-+D8)1eNBYSeSAMfI5jaPdiFZQ@1@AZq`9r1RM6j03ZPjaQ+TDLaK)C95YN!!&"Ee
-CQ+JlL`c%+%4kG'm89CZ5ST'0)L+%42QedMDUXR+IEM-5%GPiICm!-lVCY&RcM+Q
-#abmE6,PjD,G'XK+$(!@2"`e`'"4"H%PKGii)%+6m4d&rMm[JG*K8dE')DB-UmPB
-,U6Pmb)(#kJ!PK%dhIPS-H3@1N!!LC#K2[YeV#Nm9MG3`KHI(%L)dM9093D"693H
-Ca!1d3[&'AJ3SYN%k&QJT4H4'S,a9MAclM#T(0AqG60+RKlcS3l-*cCdUSNAdhT0
-T+'M@-@%+e9Ce8"6qAl@q5K@(8N'!lYpiZd,CZKh0@kLCUZHbHaki#3CRMV!3(Kj
-2)0mY(#-NNC!!#5R[FSd9H)[P3UQ2XB*Z-AKf"cr3&&3m&BUYG+Vd#alp5Z8VeG9
-)'&rjh@K[TRdfNH21R3eAmU1@$41j"JrZaF3i+(Srb-3k()V2+b&5'lfH+SZAkZq
-F3hGfdM"Hi(S[B3i4'eeNUV&,Fi,4"l9$$f-l*i1Xcp1QT%#DZKdQMRS!k2rR5f4
-ZV4h03dZa@6P[[l*MU"rrj*!!Q)N1iKFhHikPDXi&5#b[#%"SP!'MB@)DLQZ(l[U
-@jr*+lE+(4*UK%CPe+e@KCXpJ4cma)X)JdCA"*'@3!*%&3CQ*bek5-LVGl%9P,iG
-!M1kbcdG`f0dkAXr@[iJl%+hAhNpCkhbqB+-,00a)FSDL83G&Ra4Ta12EJiRpm+,
-PSr33"DQf3A+b3CdEEfmE&!N!'d8!f1deN`$X-A8j@&Ep)bk)D""aT9)QLRKJKCM
--6Zri'c2Zc[%mc&V6@qZ2i`(d!,,K%e1a*j(C3$(e@DV5'8fS`"UGEP6eFKEJDaN
-qaDViaV0URpU(cdIU)lc18PPiS5XGR4%eSUIqmSkiNBr!jf(eX(iKH)c$fKlP"&@
-%%e5aKpkK`r$"B@M#BHMJ-(6+11P9c%N[(+Br!Q2rV"%VM*@ck,(3j0r"'C4&AjJ
-9hTdP2FP,1Xc,3'H2fL-&KDCb9Bk25lR`!IL!cb&e#*mk9BG"6P3aG4C96Ke!8i0
-U3'HrfSr1*MJKqbi,@E*h)l1(6j%UHP),dMBmPZ"fQ6c-6+,6U"U06++$4kE!Cl2
-DM)pCQI(*9EPr13KLC2K*M@'`qL5c'R`S`)h8"GjC(leTeZQf36Jp30*pkKRTP5l
-RTjq8PpG%03FcTlVPCDjH'GQ92lrQ8(R!hbrh('#q@`H-bFYhH-$RIid$2Yq+!cC
-T"d`XhUS$D+K*AZ3+U#0%9%PrmkX@LFhR9FbiJmePXGa*Pf3QUQ@BR-RGT'@YaQC
-U3N9IckZ@F2()mqTc2EQd@FejH&60dAI#iqpjf+bH[B!Y%(UZ#V30dJH$f["3L*e
-bq4A,YmFLQITScZBU9Y&ebC!!YK&eF@#RV!!!)Yr(LKKEe4`aqC`Q0j)LlaDD%S2
-LdV0mLD+YSh+iQBL1-rZL&#e2TNHLF3iL@Ti&3A)I%86*8-B`Q!A$jPacj&'#lGZ
-eiKE4K5eK'a,4Fh`8TGI#$Cf)X(ifd++HrGK[YfHfX,+%F3cDjf-8UPK-i)aD%k*
-(19Y*K"l"9Trfm!%%E'%6X04),2@*3B2@AL6I-iLdb@D%2`UET3TqeBSU+91)J-R
-Pk&%BPPB8QfZRMS[)E6LrQVV',iHJ!PNi+ja0S*!!'%V'Z(X)S"124L!+GP3YF9b
-[cmNjPD1IVG4h$(-%`Fl+d#XpQ6ei@EYr2`ea23pM"MaeaIlppF2(kMRQimNRGhM
-R1r-02Bpk0iq$-L&'!VR5&@@MI%5#mP)ej`--UZB(85,aFPB)dF#K$$lh30JdH9`
-+Hai,Zm`688hH9SNUH1H3!"*T'2BmL)Q*(UC4(Q%)KJV0a)c9m(U$S@+l`B"ULq`
-M)KJ'1"K@')+"3@K$-,`B&!`VY'#J4Gc0!$KfjQ41k5(ph0QMp58pcpqY`#!`Pih
-jb3[63pSXT3SKm!L1bf6e+&2ca)*-NPfZ"JUXAA$)VR2e1FDpP63(#$)8Q$QeUT`
-$)8`UX&-J8U(k0UT3KadU1f!5,!PrG245+)Mf4[jAm&DdKEpFKH`I8,A4"clZK4I
-40USJ!KXEQ0VC)Dbf939Y98DS6FPkZf(6EE0(bBD%4bJT65J9&k93+Yi93ZRd#NA
-Eq'i)TXCb!032N`(Y"FHQa,'0IpeM$8+(`44Ap#%AEc)+RK4NXXISV#'HB5h`K8-
-+Q2i&*DG0hZ3dAD0XhQXD6Sk*kI&6M)m@)BS0&iaK)U4XQFKY4'BR&3+b`+!MYeQ
-S"4dK#VN-+aa`qfbD)J+C0-KXjFG%62QSFTk81rli)Jd&[#+K!8L!8@Ak&%P$aFD
-B#J+#D!JPF0)&K*CSKE(+fTU#(YHFZ2CCfb#*4VH+ab-UPj[m1R9(bjI*)L&@+MC
-ecl%fiIcFN!!X#RE'5S$!V#8A&[RbpGI@%@2bY9""RK,Xf@TZL-BA!e'Z3(VQiLT
-#6m'1bh"F+EfSHGd$b+C-2r,Ki6+$"1dhGN03`fdYpP8B'c[)#8qjf"M+3Eb'6Pl
-dmMi+*&fT'JaHTRe11S*K&H+@T68Ce3a$$D)S3q(Yi1MeQ9qEJ8j6MHdEJaTQ,RB
-E#B!Nh1kPk4Y5H4HJ9D!&ic96MYjqT$i#miT#HL5DNHZkCm"!Xf*N90mC*,JcAZm
-C(!8R(jP#AH`Ai!8(V)Cdqd0*-Lq#paIH8(M"ES"[$Rk`P+`,[*dj2E3L*4H-10X
-3)3)PN3I%4B@pU8Y(PNAeT&%XRJkfr0-JSa3I%hXIaHYkX&5aiM9[jfZ,[*erZeM
-6Bpfc2mKMS@#9(ZYIfVI[X4J3*4@eYp-QdK-3N!!)Ej&,k1C"JCN9rM[b($8$9**
-`$)"Z-0+l)K%E1`Sa0X[08br@42kQ`TT0%rXZD2+3!&rN)mBBXr)+YqF"J%4@16@
-,-Njkl$D9#V4+GIPZ-eIVRj4H[HNi%f!GrIQ-3#Rj%#MN`4QSfXG$4H-2Qq!a9JN
-2XY`Ji*XlE+b'JKjrd5'GiM@")Ue6K05)f0SNXe&%+CMiB@M4R9K('hS6@C)!kL9
-JG$b!3H-DHT[IS@56&0l%bqQMpm3$M0lGA1cXK@"+LI'q%#1mbdM!-'Ecpbc`*,N
-Dlc$*T4'52kH,&fDh-U[663DcFfPZ43m5d[e"p[&iHB4)S(f,bK8H1cMb`D5Ur1-
-"%K*&2@*"#HpbqRb'jG`T&c2e+8qaHUFFY[MkKhT9K"j,`1hA!XFpm-'NBaEAK9Y
-f'VB8iTNDm'`TLZR&`pU@hZJM6f'T1FDHT8ARJ,$iRNV9ar4(+#RN35iJ39r+Lec
-P0SiN3228@e`50FVa3U)-JTB8U8mYCk3V""K&AC0%MdaXEk@(p4fM+J-SSkS`khM
-`!i$EKN#ZQ0$fD!f80C%($dCCBp52,TQ(YmJ`&[pENA%MBE,6L"*JLc,LELSbT9H
-d,`ik"K%&&hMf,S-#C%990"a9Tj2$bMVje"i$m&9Fm$K9d"q16hRTCfm(XVqBA$Y
-AKrQI-PDdcbDH,)UpZ$![ZF+P%-@@+JHkqI02T+UQh,IXJqaMLhP)3NmXAFD#+kE
-#YYcf)-4lmdX3qCeHF%p23*6&4XF8B*)G6q"KQ91PXG`kZ!4c`!Q$#BNhajT**"3
-mT%rRm8)bERd3LE$FQ"0%r`FRkGflSNH62jRj`D36Hhlf0NF-Hk*S4L*im0'S+dP
-Hi0KFS*`$$`S-`l()F(!aadE8F%3T!jEBpZHc8Eq$(f!A,-`G4'EJ3',F4)#H*c[
-4(Lm)&CfVbF'(PbXNi9-542HCC89Z[am6J(JP*r(k$%Nm6VJENRKI"5AaqMa*[)4
--CSrHG+mEP9mk8E-iK256jTI!V*rB+f9"1I!JCMPD8[!XTITd(p*rHRhPmA2k+jA
-e`b&BG0BI*`1dZjIm&TND4%+2#J'"MR(AP2X914ETi%)i-dU2"D&X4Y)@+CdKaSl
-(D)V(%UR6#Qll+JC*phM!Xd-bJkbk!#"0(h#55SNiDIe&8%E5*B[ClmiaI,e61m`
-B8ILAGkKKDE1fI3`p0J"emjBDNaMT0BlHp#YcF((L!B9ZUPMXl8a9KKI,jGAlc0X
-%qqF%Ec@ef0$4$4fRS@25SRf#4'9)PNc0feDb*(eKXC!!AHa!`C!!9#5(ijj%+&@
-#L%*KfaX!I)NB&mK-`3$Z[[+Jk+0Y**0%FM&#"9M0j',kJ0f&MI4JXmVa"hTX[cl
-abU(llePR$`,5r)0hEeYkq,"IA@m3aD`D5GrBYKU##q5DLDbY2Ik[[p!,$UDNdRD
-5IM#"6`9QI['D6MqHJV()`dJ5aK9NB*RF6j-Dc+f8QGbA4%3r#&*JQimV6!AJFT!
-!UVQqR)qRAhiC2p6YCZ#hMBb)2Bj,B!UVRK,Cq#%[`89NaUI1PC`iHDjHpm&f%d3
-k)XiGUkirQA0K4X`0fSApqm@0i)bB%bfrUJJQ"LcI*d(0ZAeE33V"dPFedLET*Gb
-A"fUL1+Sr1ZLYJ0[%$r5)bP06dk+QC(S[VM'm%"ZmV#&"N6LX#*NM44)c-B8'4@X
-H#l,m`HdLk4Nmd'G0X$ZA(%GbaY[$T*e$'iF3Dk8e3K6d-*(+D4dMGBFJ&k-L+"6
-KFAL3!#pJb,`Gde)b#Z)(QH3&1T-eSVXm99N,P8VdB*26#G&iX54!9,GQ9GkXQ4*
-66-EZ"Z%kbC%hF3*S2FcH`QK@i'RiJCkUbZGS!YR`!4-dQ(&2i`+qP1U%-eX!*a1
-)%HePhdSm4-Y`8"-HemlY-cBeQD3ADA+bm,Kb5-r,Vb3"T@RSXZI!LE0jLGU3!'j
-jIH)5CL15IU,1%hJ(DS#b%*)eqNB`b+`9ZPPH8Q&)A8Lbm4DD8fGF5(jCYfElj*H
-+Cl@-4$cd!6)rBcC9F6%iQj)&[&B*TdCkh$BTlHjHm##cKC11bVS8iLaR%"@4Haf
-Fi2hKlGT8R4#%V6hb-6UhMF,E))&ZYb$iM3Dc"hG*dTATdiA(E50,U`DVhS*5ca9
-3q@N%$e%FH%NhhNTNGFrPBl'(p8mARUJ`AK5(TlbCr0eK6aTfEEYB*i"PkQ)#@2T
-d3mGPk"3E5A2"j+[I#$Qbj-Z*BpX#&Bh4RNaJQMP4ph[)Ta1VYN9!#fE([R6ll!3
-Gi,VM!pLSZ&0'&h*#pC)rAkMVk40AqD(40",L0X#$QS6HG-5U13,&)M3$jMl2-5!
-Pq[1pKhK*Y9S@822`p-"TJp,'SiBP'SkaG`8GXr##Uc-R0Q`2)2)XlE(IcM)8!hf
-Db4K&4SK,h3D4e3"iK2Ukb2BmTabD(X$Bp'ckL`X@BC1l"S!YK0md2je&qlFKaX*
-d&PJUAKid,,"X@`#H`C(aUQd%b5G"E1qr)rD-39#MS$%5T4hE*dVAc%DCJ22BNp,
-iJNeY4VSiDX$dj%i[%"ebN!"LD"`8P0d&"G[32pFJjqUQl522YT&#9ZpS-2YIFU(
-Ah"Dk"!IkpVh0YXAPpAMfqHN)ZXac&5CJfa2eeNB@'#ZdY(r4Ar[E#ML$U2eYNbM
-5CrkfiNPdJcf19k``eBM)Pkam(+C5)pi)PeJ(9Gf*aj)Sj3IK)C,D5(ckT,P(0V4
-RUIT)'jb*P5EeY+A6%-PbLai[,6T8&"4YG8CGSU)1S10KQrV*@fK`i4%R$UG8pK%
-pAQ1SLiBqd+8H5&(aD*Sp50ITJB9HMZj6k3P*kd5hR+[[1I'+Vk6NXB-[)a&ai$!
-5%'H2PCcMD(pkmi*iGIJ!aIkAp15F20Yc$XdP!riAUJe9e@rGGXI5hHiBEAG-EJF
-!pdi2+$-mHY206j1Kcjm1NY(lreS8hJ2`hSp*'6@L-ik1-+Ud1e%XfF)(FDN6aTG
-@-K[%Jp#0H*)l@64X+JSb2+BLJAAS5X!ZIH0-5Cb2rSedJ5iCIrQ[j*+)3,CpmCa
-1GcNrHh"VPp-d@e[1crir@mkfJqHd#'V$F[$JKR2c3,k2d-3r@$8i%KJC,!r3)q3
-prMrKI')r(K[8JFF04J-B,mB`0rh(Hq!rK-(+"NpJEL)HKHVZXhY+iY-G#Mq)A6a
-'iP`c-8#6B(DVM!b2b#B$b`l"XZ-hCrRXEm)b"2b6Y9,!2eQl03,qbIl[VS$[&MT
-!`$mCN3,qbFM@#TKCrLi+H#YBeKKZSq0&0"XIE!"b,c$4MViFG1cAaE'RcYh0)qH
-krrT(EN@@SafjqEZ9H6",If9NkHjNlHNapYh*SVH'X6[fG%4D0V0aap2(6j@mF2C
-iID@fAm1aRZq(kM'mGq#BamQc9!U!K3`J3M0HRP'f9adX6Z5N,6TLMIMdaVe8"3P
-&[1LN1N-M&M&k0bfY5KHp05I`d8eL-5rIV3b[m4cdA14mReCN)''`XcX@D+[r!S&
-UTK$4SA"p6r@TBlp"`2Eqj4bic@@+!`9*c5%I`+dqKZ!Va10Ne8&l"`ji&N&BH4+
-'M#qN%iB[#*8M6GiYNUSq4KehQ@cm'BVRG6PE3LR&+ZbDY%el6P@IHU%q*leGYfV
-6jHPZqNSSY0e00mT(@qA-h"k#`h`lNdXG4#kefkq*IJa(FDDN"YT(RGMel,Pd0T3
-)GGJTQiK%I+$fj,PhAUL44Bf-h[5(E(Df%U1)M1dj@[PASkrc(%9"4!rc"BqpAcF
-p&VhRI54Pi,6Pr3A'j[1H&qhZp)CrfThqm%rcDV+lk[,@X4[pYT(IJbqA2&0I@Cm
-$[$YfkRMpXG-pi"fjDcUC0JljBrChkC!!Bm'(81)!Mcd2dc3N(MKKXdhc+b+6d"%
-2E3ZlMb'3!2fpar$r-Ima3lDfA5p"YiiG5iqGcUeLjq&Yj*CHEM392hdbLq9(e1d
-,40R*9lGdeMGkdqdj&$80&T,Epfc(2*R`pMImlqPXQ*j(1fE)e+9M`+J,SfY2$TG
-8eeH'Hmk8H(1LS#$8-MkUk+DB(Fph3R3Q8[KLeKi'LcaXUdb)4qZ`l4eY'HJp+f9
-'QU--,1h&jC29,jcmrVQ5bP0im+,6fqA+H,8F9r%X-UH1ijN,lQ!TC$$(PrTakCA
-+FfI1qRUf`qYC2d)fi$HJ6V%Z54GYQ'5*c3j5CP5jhAeia3&'&,(MGMCm'4ZHHUA
-REZkSDMSEqH-kpXkQVIIBcaVpGFecDiVpMP$SK6Y#)AUFi[E"kKJF95jf4mJ"Uhl
-M(D,4#pY%)l@eD24#665+E`8D[A$hdHL&ED#4-C!!9Pf["G,@C[$E#+3A,XKbJdK
-48Er89rIBbiHG[k[[bD&FjjecIh1m[JHaTqF1r)hfhi93Il`NG2*X6XRCfT!!GXE
-,*kX"aCcX1C96XUZkK(i1P`b3!0J"!!!ZM%&%3e)$!&0X$e80463#!'0'lM2[R6X
--)b)bNa%4iD#S5+4%CQ3Z[IF1ep6F6fCQVTDLL'+ad)9S9UE[[61b(e&480(F6fE
-Z(j+CN!30,TI,9@CUDUj8a(h46-h-#-IKplici,LIrZVr1qI[qcrIfFphcJ%EAB%
-%`42NNT63R'pl1M&aK[+!r(L-9AkF@re*pkFl@kaC(X%43RGcCpYkNEU%`$UNNP9
-mPG3`PZUe,GD1V4dV@N['VT!!Vki8jCIELI5N3'hq`N4C8rkMkIKq08QFTRPX+I3
-IBM,rEq&NfDR-e@*YAHKAiM(qIH&X18j*iem@IL'[9rkT,E1jk(aaS&CQHi,q4Ab
-'$bVm9Lj@5RPqi36jYM*@Hp*@63H,frQ3!-+KmJ2+GpTpYR)kA"bKf@hhdap%+jp
-91%mZ8KCS$EBh%qR6iK[mNF+TFTebNFmXI&"q8APBHmPfKNi4ch&MBA-C#8&EDeY
-($@+#GYlf!QdM2XmI,db5Uj3DRP[BAakJ2+9pEUZR`m5&@JYE$lT)r*Sr@cK(VP"
-'D5@f4R5-f)U2+e`X0e2DmY'&)q@1bRLYeZDRH@*l,FDf1j'q,SEce`UlbUZ9TEa
-6B@pjLI+f&QTE46Z)8EbJm%IjhmSIfLCE0'dXCQQIf6kQ[F6P['GK(cP-ZFTE&ri
-UIkMmTVeXHj91&'GS*fe(k6IL+rch`ZRb+D@G&Q(E6(m52q)r&lD8VbQ4[%RK,r)
-Dj8rYAlD0Y+QiK@FAhReDIPr*d6k`ED0Aa-[D!GXlp,Vi,Vp8Q#R[9lTVRpMq4[Z
-+HhLh`XlbAZ8JleIiP[aAjE$fRZd3c4#$YC@f&64!I)lI+`b4pbNlqC(#'r*@jDb
-fblD$TSZ9h&*i3CD8)1e6f`BD++UDB$04Kep8(()KPIf+!h826FM5Z-j6q$&qQkr
-P4hQLPUJRTL3H5lbGZ$D4ZjbajM42R,BXZBZq2Z@BU#B2A#r*Keb5V-$BA"XSiY8
-85IlF)mRENb8j&UBDjKQBp8!@BH,(T!T#C6!$Pe@Uk`I'9USD6DY82A4pTDS6Hi`
-#Q8+XN`)%`CRC,4%q4Q`+XFXBlm"B5AC#XfD@r'C*6Y%P@AG+XLYCd5Cp6V[ih`l
-D&VSQ02*Dk#VrfiVk3F4Qrp,!&4(qQ[!"ErUI9erm'X&5j4HMG[YAA9NHlIrJ`c8
-4SIpH8q&I%4hHSX)IjSq3!$HHprHSrFM4BMF45PmH[HE$05h3jr9JbN*@426SNPE
--Zh`D&HU2$[5,QpG%,)rqr`4TDJqP4iqHp'[8+9&0p'YqTep69#I(6#$4*$ZjAf2
-@la3G6[,BPmM)6NfL6Y([$03i`6T&@A0#2j'%(L`KL"6,R9M!@*L8"#3H&$ZTC[+
-"%kL6F4"J!Y8U'5K'JH#!0Nd%&1SdU8kQN!!b!M&6S5dH$'95UGF8EkDTC%NAf-a
-C#De"6STZR()U8#TD-1G&P3&q@X3*dNp&XU$%3%5&&@P4C4!6i%98$23*QLLYp#Q
-J4B+$S%AUVj5,U"$NBbmbb8!&-a(#,9jJ%)T%&IH#JiL)"))TQ)'%HVp!r3aAD@&
-+!&ZNK#5H5Pi3@d#i8[95L)Il)BakV`k"Q[dZ[lP5GCQjhk93dY5`L5J6M)MrUSZ
-EdGhkc3l-J+4Q%q'5##2i4EpCN9eQd3)9,XlB961CLEJN2#k"L&*SJS4!0#R8C5)
-Vd@'19ki3-"[LiIV83!4m0*@mH(QQ"9%QF*L&5T'3!1D&+")#U9PJ8RkA`dXCA%8
-fhbm6)k3c"q%EP3a$m-K&F+I-A!S"+PF'NR[+FKJf#kiPrY2B,T[!)&l`+L$hhMR
-C8c'3!1Q&LRXbpfRJTl@Z"!3K`#[1Z#hNqM4G&LmcPAe398*GJ&q,TjC3+MVm[Xh
-d8H29Mph@F(TL4&8JL3"ZeVJLb!5MZ!K'2'X'29K`5($"*6KF4!613NmRNYlZVX*
-Z[-E-&Z$Q@L89"!Y6,e$"*([9%6L#bT!!AMMTJNmrJb2)i!iNA-"j"3P+K@k43"D
-%#``-kfG&k!f)CfAN-h3`ibF0L+MLRF%%B[aqKFb4HYL8+k,UKr8Yi)d!62$+!)X
-NTK49"RUA5"e%6('3!)83$"fFQ8Ur`R3*US+8S5M8cka!e*SZ-*Pi2!%"'SS)03"
-Qm3*K'+C$CU*S)3@IdNS(i4H3!$)G%#9ibZL)TmRNJfB+pQ&`d##RRjZGh'@@FPb
-F6*!!qFe12aCqXL!Y+0NaXe0`%&'5p#!QhQ2AM"80U`S@838,S4),%p*#-00$p*R
-!ER)3RFM+,Z+d'`35-d`HHhA"Uiidk%b%D#-kI13)5*91E+q6V3ASqG6#9T8@KM+
-TK!i(8BS%+`C#@4%[8PJMj84,k#a5@%YBK(`#4k#T9iUFBJLji%lJR@MZR)b"H0`
-T-KrL3V!`#6'!F4"6*+"Dm+Q&VEa#k$L)P1#0f#`Rf316KA%394F)H)iQ&ba-[CI
-G"0)B6DCJ,b%mAL!)D-kZ!RdNSS0LN!$4aRXP"3*(T*T96JU$fBLdAEXQBTAr['A
-elP9lG[ZMe%hKYH+0fPfl`eGXPDk'Kfk-`'H&@[((fRG4LcZ0iE9Z#qPUa)EP8D%
-VSMGZM[JJ)M*dplr&HfiVET@rbM-jL)b)q466M42%LF3FJ@j(6$"TXme@HEEG$DI
-0EQE5[TS,G!ZBIC)FdQ#9M3V-5TJYST`HM3RH`SaK4-"1jiKbCKqBE*MZSZ9H$6Y
-LF'Jmb5"MpK(6fH11"#*QG`Ed6TLdJl&*FN!r-FFb6GJGr['5b%fESeIY@)kkDA4
-ST"L81SAN(0-0-6`XBR2dNRJdd686ZJa@qIXiXY#q,mCk)0CYB5j#p6UajpQ&PEX
-MGX-9%D'4lXki'89mBG+qA`AQDf5KIDpL[42V%*M1NKbF,mT(-X@J)rZf4'jD%KR
-UAh2heQUmV"2"0J3Q&k`R4IR'D[(kNGc6e'cG(1'fNFFYVI+mDY2G@mMKTYkNcD[
-$C!0CD21fBHh%r#"-0##9LR*f#D!0Y&VD*,%0#BcDY'4jq*j3Ik5mLEN5rTph"2,
-YB3SNqHiRSL@RR-N'4B9',iN))m,U*ZEJcYUm!XK2KZa`Q''3!'mQbMRPSRVcCXp
-bQJ,F0hV@GT-fUaU6CM"eNTcC6T3[@86(,9+#HNY5QBDp9XZXMH`qIG2QL$fEPZk
-*h"fp**3"d'DGJSJ&mmX`@C*m29B-bLQ2hjiFk9TSG-5jcG&VPLq*aSY4e+ES*HZ
-)iNRDV$`YSFTd4)aF%aUp2$cqfjjr66$1EI)YlQk+C"SUPkrCZ$XL2)aPZ4'afJL
-NNeP*Q#1GM$L[*@bdbJRC-&GKU*B3,!YiBASV0$*dPA['1$k6M,KQZQAQ'B'F-`,
-jE84hXY"'p-&k0HC0B5CV#GLcK$j@4d*6!Z-'JI'Bf@M%c$YNSaqF*Zf(@%cmC+(
-p8!%iHCLIJ9QT*GJ!Cal-31[V#I1IEHh`RpL5(%re$kG5QjdIXV8IJPQ$mX0P`)M
-#T$0-%beKJAYMBTAEm010b3p0@'25pdZB*M!cV(F6NSM'accG%&FUf#'PfT!!FJC
-f5!R!cX5N!NE4fK3G$pCi#+!E['#(+!aXCh6AR9(IkE`GS)fiKdrDe&LlY5QlHB1
-12rH3!+lDN!$'*Qd)0Rp)5jK*@K[!DE2&QY2Qd%0)id1QDN-jq21YmP!Ac(DY$FK
-UJqc8jUVeE*ZNik%02D-0aB'SeLEiL&ZA`@p1Kd2$MNq(3kqDY+%8Na#bd)CLBiC
-qJMNfCQJ6V8elNLT0hK3BY(c6QMfVGkm*4@*FZRYje1C)iPkQB6BQLf'Q5[,VBD+
-P3bEMZ"#e+A`h[JLFYbcG(4iD!HRKDGV`8ZPXjlNR((GiR6BF"mM9fL!RY%N5k%+
-"(K!SC[m4D&q"GK0SBi&@#24(JAiPd"+'lB6A1S'@#I4AJEiZ8&@JQ`ADRdQr+p#
-P![e-S)%#rCG!"`[8`M4HCZ&eYViUd*m&@XING)'1*(9EDQ9+83qT&+K$*+q4*RC
-A,G!&6"fN2aES-FEc082G*p#A8@F3k%bmpc'pVc)Bi`@k5+$Tl#*)S-m*Y,G!4`[
-d)i%Q#,3eUlN[C'XE1mm!JEbQY@)8f`@Dab$0%ZJTJDB*0%#JVc"&NaQ*K3*p8k"
-r#,5+N4)Qd'F%HNfJ(`TdV8!(#I3I$(@4%3HSiI(`BYRL(L-8c0F&qTC![a2S$B'
-1&HK8JEl'D%TRVRqHdI3,)mJUd$Kf@S'G%jXa@D"A"2UH31FcN!!+Sf#930Za$5J
-@D'H"'J5k4k!HJCi6U-Jm-N5J@3,0B!I'AYjQIZr$cMC#S1d&QX1Z&c&DiIeRQAF
-Q#I3TGSEq$%C(GZC5J6B5k$X#c4GS2i&q,p#M!KdMd)N-f$$frb)MTBDj"SICbh,
--6ZE@)`)pa(B,`1ib1J$lYrJXXS*jm%0fb%HBk&D"EK0SGbEk%I0q2A-F41F*p,"
-!Gi&dYMdad-9bcfDf6l1CN!#IUAk(lFI$!QdQd-m&'L,3EpJ"S-)Kd$-#R5)NhXH
-TB[1hMmNVbYibVk(TaJ@Zi*AcDrU%jCCP("TBeITUNY051EQN`kT4fc2h$cR6,Q*
-+E2U1Z48&8A1UZhmbq0cd8dDc+NaUfhAeD2Z9E52UQN4163[Cpf9peQI$L[XGr2E
-ma&F62)%ETMAVY(4aqH8$`bqf[$BclXM1f5dD4bmXlE`hIpf-NiN'64B,DerI2Gj
-kpreCErljVkHA"Dciji#HbrXrFILp[ccrkiH2*eq3!2lEk1h3-3pFHRIS5cpYIVM
-,f9eIIIhM[jppXZrIa[lppeHDk`l6IcUq&MlbrT`2IRMMPc@2V,rhh"HIprViU@I
-HqZZJ&hjlZ8e+d+IrD09lbEMlVVrchBXrIr6JX4YE[qraakC&Yl[YQE$fQk0&CiA
-P%Bp4NafdmGBGj#$dq)23i`qk6"EDS+jBSaXCP!8c3c1L)HrA&)hh)G-fdaYelQd
-32k&"'M6R$RhM)050"jZY3B2,Q4)!(9b[$8T!&4qYp1#f[NN$!(q,54A-IQh`IY+
-SLA+RA*Kj-)-*![e-'BcIHX&BiqZT"JGVJipSaUUEZb9dKYR'X*XU*"QE)Z'TACY
-@K8EaJk'4QlC'VJU0C'ZLE[JYUM#"Qdi,,-CC&PVPXB6NaGTBe+F'SeBk&T@bX3f
-D-30JFf&)e`cU$`m4X`pI[V2#XcF4-$C5'iX+beM32aDpbpM,QV(268T[(,jm-qF
--EHaXcCLA+Rd@dYlD2DYb%CQ&fPLMeYaerF4D[pY,3EjIbdGp1"qpI$lUa2RVY1C
-PclQr0H6[eI,$Y1CK9hc(fV"l6F5MU1cPCpl#`GkDF6jkrRcdq[PINS@@2acV8eB
-r1[2mU9TcAj@`1DX5BN+YQ3R"2P8I4'hkk&%3-D(ZMN4-f'(5*L$V63JM#fe#"0E
-&Q*q#bGDDCrZSb2"4dGjk)b(iq"I1@eAM*m`r[[i`B5$djPR26KMQAZmJ&pS%[(j
-0`1YAATT[VH@9!Y8D+06jm`5YH924FXRL"4*IY`"[hN%Y$rXbh`[q-Y#SpQ2E5")
-m&akf1l,#ckjZN!$&RSM)hFXMeV!,rlTiNYh90IC9Akli0'eDmcpT!GGdNjD(ejU
-mU@5"VJJ4A9QXPJIhMII!&%[bRcBbXH-aJYbkQNK)PLD4lN4[HQK%Hf'i[$"FfRL
-mZie(hKLI$KKf-V(6*0(5fX-d($lH(apj&IV8Ah&AllY,pFUPd`ji5'aH0i`ICC9
-(Pk@kBA3*FF2i!Na4KakY5(,6'$*KE[Kj)C'!'dDjdlVTdG#DkJ`#bD@0aL[#k!i
-`V5AjMbCN`Tcamd#Q*--,`3YJpHDPrl1R4`r84Z**f5m(V,+K4T4rR)m*dSFK4T3
-l!*B"PAm$fLX$QQ!$QQ!$QQ$$&V`VchIIek9SV4m5Z*'a*QdN@[#4+X`45@i-CaU
-3!1#DSeNci*h0J2E3J*Ff`d!IA,a9'3K00LpF3fZQrDd6crN3A6PbK$D+R"EEdR`
-"6[XUe!E$N!$NMZl(J04K3%Bc`0d'0*)'E,0K)m$khEF[rV32%HJSR(N8cM`+N!"
-'CH,-jG#+mcE2Xa1(%VJ,l,5'J,C6[jf@f5Q"[G(HfCAkGZ&lYr$M1@4i91MZ5&j
-l3M[NVlhM#iQrYY*lH6FmiX10SI(%VI1q#B8`E(c6-1D-VfQiq6ePc!jY6#A,L'0
-L60SB[25036iCFdU5I`j%4JIP9AD+A)r#!bhRfLQqIVA%J3k*FVY!1d9ZDRR4EJQ
-VjbEH5ZYSEX!6SkpG03f0A#AYkfL*Ub5Q6QRVSYV4SqSYb&SmqBjN,4jXFQGK1Be
-iII%34Z[L"5CYFC,9-Lk05EAImbRTk,#*iHKB`kp&q(+X0bb2MSK['G*p![%NM0Z
-TMBY*96N1MI8iR(iF6YmkikpHRS`lk56mmFcD1&6(aU'Y')GZF0aL5Ckq9*5RidA
-kYmN``6$lBBT&HH)-d6)aQ'RZF"29U6R[eP"-@Llb@#jb9qjq8(M'4f'raq!AhBR
--h3m9U$,QiT0MlL4*RT&QTaPfL[IHhfI$p)1*%HR[JMbGR+*85k3J',X2qRr0Y90
-mh1aFJAN)c#IS#)`Eb'[,G[D+@QQ5dqMlfZpqmK64+[rZhkSPjYNTf"CSr98mj,$
-MHVV[H[Taeb-%e9b%kppmelqjA`pVHh4,SQE@RFQH&0HbY2@aAH+1&9RYpfprS2b
-qXLH+RkPqX[5f[lCYaj*'c9V9$+Mr[1,V&MdDhUalima,&eqXH[lm#qIq[QkYXRY
-eq+V3T8[#PRrfFG5rScGYr"HkVXhA2VVkiDYrrH4[HrI%h&RJj91[R$`D-MIpl*(
-,rES&"3H%h-2m4[EG+cQCPbjIccMFlkhZI6YhDrpkepFk[0fTGjqH@Ed+ITca6G-
-rQrc5lUH@2lIqGH*[dhqImBfYF0*r*[phfMrQrr2,i(Y[qEm2QMGVa!p$KJlrcMm
-`mGY"JmIQ6mJE2hVNU)$XS,XhVQ4HbVPqH%&'pmjp(jljB0,M#@f-c3f*r2qY$d6
-"9#PYq(6PLRh2lGLeFqZ@plGpX2rG!qmFHZq4JeiRh&(L)(-#P9@(j8,JZ#r'd,Q
-BpeqF1qcCTqCB&Mkpk-*A8kFm%RLm$aVrFE`2'[rKjS-[jRlPRhhD"hpapm'BaH0
-bq`plDXkc#aFYH(VU)e11mm&02h2U6hX)2r)!k*Br*G%lDlM&lhMCpQirqK"rlJT
-Lh(k+fbp4iAIqaA0V*fK@([A[q01i)q##%iPeh55[h1(U0%8h-p%l+$M469hM[A8
-V[rPqPBPNchAXC$,hS-b5LbrMDA`pMq9GH"a+-"9a+mBXh)ma83r`FRiI,q02m',
-q$+rQ6r*5P'rbmeVHPRIN*E`4EmCEm4SqJ0IcchN&raTM"(TJZpp%`ENh-"VQ*Bb
-`HT&AmHIjHIi#5X6qRDp$k5KXe'kqQSHME&dSAmUAm$#qR(r'2qC4r0mmQQr#F,&
-rm8LqKNI`cI`DriKIj4rb9rPIq5ImEh`[hi0Grlp4m$)ra9rK*e%i+i3RT[1cr!L
-rc2[aEMb)"r-!B1pa,rS'cqChq4@H`c2j*3KGjaRm-%6IiYejApiC,1hjkl`VIie
-hi'rc6V`hlm0lmLcHLaI`(rN-rJe[b[rN6IJ[["hrLEIN2r2@r&FqNIr'Tr2IQB!
-04BMi*2iI2TRrPdrMrq$cq6rjPk$M(U"mMpmm2SZ2i$r`)A`S(mkri`2aqjB2iS2
-j@*l2*r!m2Tk2jL2j+&#HM42F"G9A',djS2F`A`#DZi2@[[aK2T-rb*2iicb"Yq&
-'hT`EH+,`rh`@%&&%`-3VZF3hm%rj5Vk#lq22m4em&pr*Yr)Yr(fqMAr!pr0hq3(
-q$Mr%hq-(MmX#rcF+6QF"$"f5ZFSGh-)[m%!qMRr"a`!lPh[4rIPLRXZ(m@Ij8h`
-1K"EbTrNLL(l&Tr)Tr"'`2&B@D-crH-`X3!4X22&@@H!,d2!9RihIL9RJ,rMG1JZ
--!EAM3'pr8%cSI4Ed,N)@H"V82J*kEjN&Z,D62Lik8REX4(!G*'(C*"B@NT!!GS@
-%p5YC@%"#E#8*aiD3!&$N)X(q*3R&8558CV23QB8Q,%`PiABX#d8X4,"`QBA@,15
-6i'G#rVBXc#HKGMX,HeQB6%,E&L3dUQ,K%!R0'1"Ql8KS98c#@NDS`J#mcklI,5A
-K!![[a,(3M)5$l+LI-04H4[6H`55XCST@Xf1(-8H%c@6"3),-''5""-Y&%Lk8XI!
-U#k0*#'31$@3(#qT(3M"M#fC%"1pRi53,M24J*KV!$Kb`MJAQTJ$'($#2K"!R#`d
-X4*+3!,kDK'a'5[Bf&TLkl'%Nh,@c`)jkPfhBPHiXc'D"(IA+("*bpV(!YMq(Z5c
-(`J,E`KcQTKbfcCNE@6M&!J1@Q8$#T@J@XPLBcJ)$FiQ4FTeYlA9'k299,,$MCC!
-!Sp)-2mZ$KjQ($TH`F)i&jUI$M*EZCeJ)C)&jT6Z$h*HapBeKJ@RY'm`#1f[Ii5b
-`8hCQHDdcBq['GU`EBq['D1r@Q!9'G6Hf'pdB@rX$,$#Ufc-!l98@')#ZE%qk9V0
-3`3,EKkjXClSbdGGB(ZR!&(@iaJ*PJ4(8JIQe!mYPEhGLS58,,"peBXIVa&4dBV[
-8LC(EUB#&+56d6Q-KM)9d&M*BB'QS0cY'lb35qM!9IGJaqV$ddBFGZmqh,"K*k-R
-5D%qf$6hC0[4NKqr*FQ[2)bb`Y0+6%GTc)!XXc@@apL#,Z51,Y40CE!Zc@*l+BXa
-Cl*!!@60BB-4P-F#p@,V[a9*f,qE%AQalHPePJE9$[9M1kM@A"ADN!ZDJ!TE(#jL
-,#eKf+@$%&E!mrL2El"p*lT0rM0CjV&RRh@&DQRA0BpE01f#Lc,T1B8EJY5$,V#G
-$+,R#V#rEEpE65XakPd#cIXaTeNZDQ29@0TJNXeiM`%6$"-0-0Z[eGKKFI!k'ca@
-B96!Uc"@BTM"6c(T&+8`$$#iUXQ%QQ[8@Z@Dp4c&-2F`kQ*d`Hf'J[!H8Qp0dhEa
-Becf#VTF0dr@DqETH-92A@p6SZPLZkkC4ZLj"B!8@qfESqR1(G(eA'8b*VZmmS1Y
-Ekh9pbd@BcVVq(Llf3QJ['&ECGAeT#jLp-"N`8h4p5C+ZKjA#E0$ekLY1[5(3UEp
-3kG6rIYkTVm9NEB&6VpcVe+9XTri1Km%&Mdh@HA'bVQq%X5AVcJ+BUFPkFN)bL)E
-"43S@,JLjTLAVbaBRkeh!e'9qXKlA0PNrPT'Xfk16pIYR*1[PaQ5pl"a-EV,q4!P
--Rf5pH%kbrN`%c'@BbFPkG8@brU3+-bPC,rA$()!"SR4BXRjl*``3Yk(`0KKZ0iB
-C$J2&rMUB(6#ip'I#I!N$3,9T-&8`J6"JU*fAV,Ie`,4)eMZZJ`("*3"D!U'5*XP
-k+`S$`PT"F8dj6#N-%$AjbIU!P6!id!!30`"!kcq$-56V&GA*HSZLC,d(J$@!kFh
-TbATG&!`Bkb$i"Kcb"JlcaYaNrB`CCLm-L(aTBV,q2"LHh`F6R+bIGm,!'HHcB2+
-5p4Ff`)6"G))C!J2(RiZ"JI*c9j2eG@"FZaS''k#!B"%!"6K'J,#T"JB%QN$XTpL
-iPA%`@f!Jp"`1Xk-"CLNfYpbMmcS2FU&(6q%HhG8!N`k6kp'AaF$dJCRLdG-%Q-N
-HIEdG"KIV"hVdf"+BM6"c2(UA+SmH9q(4MaA$C(VdSM+2ELhbk(B2$2ASj9NH[4K
-+RaRLdDY2HI3R&h[dfc-mHPX`G`53!%Da(Vh9#)pH8qr4kb-mqZF!8K(RdEmqkG&
-lK(Rd0d$BQ652rP+)4km#XQUd4pm"TEY!r+jf(RdR#0J*a0CUQ#JB!(UrNdII"S+
-fJ@(E-)rq`3'2[Kq%[4[Td3p0p1M[ABATkY&Aic)FLX+2H26PNcckCf$kE+P(McC
-l-2SGe9jL&B[I[)'80+FTT##Lh'&KCA"-@61H9XT65*PVUeh0T88Em28[+*IlBp[
-b,R'LBcYhe3NbaHFFI(aVBk0T+0Z,4aj*@m3EjqUj[BLRP8'3!2Z,q*-#8C((C0'
-29I(l+fQ$1iEFckG!,l8(cHH,R&%mq5,+lAT9"LGY14%A!0cZ!j@m&Q9"Lj8Elql
-RF@9mC4&I9mlI,1+Y4+*j#Y-Fb`ldbm*+QQ+RT"b,$HF"T&9f0BX$l#3hNIY0XZB
-j(JH4Epe&+QQH1iVjjPi@AYVTD*jQjbR0"1BY'a%GCVpRifZ,k8+H9X46YRZ[&T1
-V+IClLr&hjp3GM+RDHp@1%'$HE`pTaa2,5KR6ZRMIJkR%(T,,MjC9XKZrf`e+(1D
-+!@APh"@(9k&8I,%p)jI[hPE-(iM$hp6JAEEcCiTi[CfA&2&D86l1pBd*3kP[XY5
-ZjK2X0,)+*K1V26MrdERl`2rSlJ-hZr[!mHiqF*1l$k5kZj*qkqlZk84dY2hHG$L
-)A*efGkjAbEeFiQiRBbTfGhIXriRZ$S#ldm*i@JP2&NqcZPMTR&K4EM*+5-GA'TU
-qJrqG6Z2Rdm5F&VcC6PkAaQYT0Lmq`qm[jl8lf"lJHA1#[j,'BMG%fC*ZBU6-&2h
-Y8-3DBkCLl1UmdbLVfj+GZ$9*mjhX!DdIQk"))F!&N@Z24A*!l'1,4**i+lrH`Gh
-TD)I+@Tb!VhX-I%cCUK2`BAI#Yd4fNEI,5rQH@2j*#AmhPMpC`Xr(mKG,H%-XKS6
-bRE(mZ4*H'F[&%VidPYHAm)kah,rAQdfk8k[9BCK#(+alf"6B)Q*A-DFEbFaUpe1
-fR%YQZ+`J5h-R-X0b*9YHmmfdlN`Yfa!XSh`cmh"lGK'21E169jGa+jVEBYjaqqQ
-8ap*2S0daPj-fFlh9NE5&l'FrZcS+5I&QI-JS2V,X!'Qd8q,F-[`UH`"5JX@P,Z5
-HFk5jCd8i!TUlq&'RBc,qUTSh8aQYkF$&e0!-XXNTXGj8PNGdYl4M2*LMqMcVAb#
-,4h+pdd4rY8,G-"NB!0AJeJ2ecUJ-p-I*TlLR1"l#i33b5ZFmIl'B0a6c!F@m,6l
-R&22Y'(`R-$B8QHJMU(hik8@kff+Mff+rfk,+E9'GUNLba#NmZ9M`!3m'm0U5Jla
-,YHMBceh9hSXT+(*Dj1d!!iM%GQVKRQU6VdpN6%9K2,NkANd)8*SF"LI&39%PAeE
-YpDLKL9F6TLep8SHS#PfqHfaS!NVYQpHKZ(imL9FaYX#h5%!42#FCL8(mjfdX1a9
-)!@9&h"AVRV@hfi0cH@hT1PjdRS`8NYGAQmMPD%*G!RRPipLZPDQBG'$mCHLMD(H
-HiK*1e`*#N!!U"E@C'ca,HZ@&@Rc35Lj2lD**2B$481413ePUJQlVMQpJH2Yq(S[
-QYKK$[Ed1)ek*C@GX%bBpj[e+R(Il#9TEH)(GM2maPiqca06`#KG[9FBrUZCYUhP
-i#FII@b`VjNr52R`IN[aUrLC@$E`LeX3br9`#Mj0T1r)@ckDYb6XmQikb1SaP6(!
-HTLk'R2kS@@aJUAT),"D`T#EJ4bASIRd$eiP&!SqVjm[SA"iA@aQIVDYB`X6MDpF
-YABKDB'hF!EF%FKC(A55AeR2m+9rV'934P8"V*5m[jLJm5E,`BUp56%H6lb(FQkh
-MFreSdG,pM&YYVeAe5YkPQ)`'FKA(ec"p5BfP"8'05-ep),*"`9mcXb[h(V$cpG8
-mMQEaMLj@Q@K+RV(2fS&(LGq#GNjDcl)6d4$-cZAM'`lalADH9Jr![+fAICjA%!8
-I'IF'Z[F%*+6JLA&P!NqZ!TfqUdMlK9bH9rF*ppX9LkZ#$#3LkQE(#i6ie+dq!3N
-TdRe9SrZbTlSEJR@N+Z)[@mQDCPGUCGc,ZC0NmN"c#j)dd,1Q0JJB1CfD0)q-EpM
-#6PI1Zl3ilR4ISE$VC4mp"dj!3LU%p)mP2+hD(I!'HY'EX'jZANLcF$'e%5G9M`d
-R0K1"D#4RTMEU-lhYCMPYQBT,mV9eepaf1''"BTEh9LLf9i[ijL+q8H!VGr#MjAa
-P(2qY,9pjKT[XI&dDIck@RbRL2Hbm[S`hDNE#Q9L#A9I*(cc)2el(0jHC#)c*b%`
-fMYPJmNf6c,+XMMC&C(B0UH-UQEd+SICNGS9mkb5ccZ4$*bFHDSVaPaA-E9MCX+U
-+AhA'bK+r5XHUZbrIQGZ6'FRV-mKA8$EY&!mXQR`fC3QK+a,XI1j0##6"rQq"@rq
-r!Xi"F0D(+"aSR1mE"b0[#KGNkbT*YU"B`S8d8EDLk)%e#ZEU#YP+66F9e912'dB
-$r[L406HASh'6mYGLM,2!'VZiihZXJ0a84N'f9i#5G2')C4VKGEmT``f+`eKQL,+
-p%JB&'1`9+f6lQ6Z4Q(km#NXHRNSjaAX8Ii`2&EUd1*lbL9ZU+lCEFZpdMZ09i5L
-q%jpi)4Bj2(9NU"qeDa[N'F0&qIjcSZc"8,1kRD,mK&'J'*+e['bAI+KmPlbMJbJ
-AMd+aALV*'b0&qIBUE(V`H`l,&Jc%K"-NKf8fQ9j)Nj!!M$$&N`%@6V,3MS9m%J+
-fXl#1K3J@qK(@J(N5-J'CKJ$!X6*4[SHLDFF`[$PpYB4"GD)F0dHdR&e)b5$&)rZ
-S4Q)Qe6b)Z@ajBl8h$L3bDRB*VC5c"8R0hNBV(GP,LHVX$PLh)aI$*29Z9ic`[MX
-%blXcS4d1Z))KBA%f8Efb'YJVVdVUP@$)A1P1PUfa(%b@Fl$-5C2)k#ijVS1SjT`
-RQ(f5QK1&qa`,@6D4,$PI8M+`2l-Bf-akB$0h5'VQ+6,,P[$!JG#6LI,5FAC4[D4
-!kY*qA&k+PY4,4-HP$-bbb'`kCV2*E*JSGd(Pq2*"6%D)PXYGDBa6`&JZ5FAJK8V
-j1P,&p3KF`Q5XNq3-l'+AHK3ZMT28`h#'H[JFX36-i3M*FIJb2@Cb("j#`df1IZG
-T$j1PAe0#XY`23')hL)khmJL0hC'6Zjm"UPj8ZdH#ZAXJ-#J1P$BBQ)%%Nb$*IH1
-!JHIklJ#QEibNpL9ZkQZ8j-j9Z%+"X-jAX8"D68-Hk`aRGLX$0GdU-!brQd,f5qi
-'YQl4"+X5HjRBaX61J+TZXh%,R5V+9X"Z"erl'XEAIU@NYPm&QIB4Q(8R0j1T(bm
-FViGK#%jM3,5,mZZ$*G4RbAQkMT,Nebk+mM+FXN-,5He`!,`GSL6D`8pQQEMUMLY
-3q(BTXXhE1`RAfjf`EJR)Edq$e0[$X4a0PP1al'5@e%iAb3aCS"-13$Y"PGSTQq$
-D5fV[0#al)ipBHSG4-TLlGcU`'33ahiZB)ePk*k&3!pj9kX$9CjpNk42"XR#Ib`6
-4')K[[3JM%$f,*%[2Fqc`29G*DXq6"(N%b*CHj%!J&`#CjC,8V#0N"[+cL"HcmL5
-e9e[-HP9*PPjA#%bj&l*A34aS,'L'Q`)FSS#iT1!U+E+)eU""4'P06,D,MMqDd"L
-6SfN-#ArD@E#4d#55*1)QSiLVIMNJbXP*j&-B*S0*-8#*I$`BDC*r`T86fH5RD@J
-i5(("Lj,PCcpaJH2R3-,lmd$*dIS-dG8k!d&Y68llkbH5qQX)QH9+PSNc'-fr&8Z
-1k5`j6rp5FXa))p-CdEXXe88d%4[rj%V*mH4RG,G*,P8P4qNNQQL5Ef2mTKq&l1`
-fd9+#5cLU"#2Sl+Y&Z4'+lMB#FIC$SU94%cUb4T!!@pNNYBBNf4T"XJcB6K1h#ij
-k1i&6Rb3j2Qp+DdhbjbMQDjdXUKA)*R*&Jf6"-##b4a8NpeCN%pZCf!*b2h%R4HQ
-qBbe%Llk4T$',EU-D"N)lfdX1C`'F+$ZRSL93i66d&A&)-XN*NX@cNBk(9-S#r28
-Dm(G*ak$eDE3McVKX-4)N"YPf3DR@,L4acKFGAHB6#Z-`m#)@6I@a$%c380M4E-D
-LkR3rqU%dE%`jNZ4pD1A5qSQ1XR2%ff@RD%H%A,*iSS5f-XP2p*(N*c!k)bd#6m,
-RN!#,CbSJT$i6J46ac'@'Q3b-A&dK@DVhdh"X5[88H*fN--H6Na!XTGKDMk#@NXc
-%pL',A*B1)d6HhLQTYh'MhLE*r6E*j,FE5ilE`iR-E52CI$p5JZT(Bq,`4a1d2j1
-K[b6SA$$8STHTV5,8eJC+DLhD#8IY2++m,IkF80X@),i'cpHRdI%QZH-kT'Qm$A9
-F6"aG8L%j5UU)cK*XYXR4L(4$DL0d#CC'FfNL-NBV0#LY`J#N&C8FVBD6JpD85ik
-DUi5VTJq"8T-[b3-md"XS1JDX*"S')%'V!bD"E3!mA!m2,eXY1ZSr)jIeD$RNHJ0
-`H-HSU-B%)i0EB#Mm-V4-29#$FH&EA!-5QfZJ+,mj(418#Uf,NY5k2($@'5Ae$@3
-PaaYc#H`cCXPaTTl3FQB[3k"Sm4R#Y&*d[$54S#jZ`l*1Y&49XYDm#Nep96!j4Y9
-8bI&m!CNqEj3FjbZ)p(NdQLqJ"h5m-*@Xck($GB(%Fc'5jGadeLDG@``UcU'IFS(
-8[k-dD!U+RDrE4f2+"-[De63'IeTJE3,e)k-Uk%"6KSX@%8j#ZbBL5`LF1&fi,$P
--CN+dUBD&cmM1Q5C"(PA+6ff5ie1@r9E'XE#&A+r%H2Q8,&&q,Ppbl2#3!)XGV'U
-`BqP1@SFlM"D$fe+DL3jY$Xdcb6UU#CiGSTU#rN&f05$*B)K4-[3[Lj%F'$5)**X
-f'Ape#N@5Nj%qeU1aLGe)d,&SIVY8dA&)PA%9G#4FGUaBXK59-C5eL+(Xb&Ah)a8
-PBh6kGJ86p'F2R-)%T*5$5LI-%a-aXD#1"-$1HY(ac""dUA)ea(5dK8mLaHUSX0j
-'1Y3E)fr13EFVGm3Tp50SJr$&8dG+E68#'DfHA!d!1$1%kp'AQeH*MXpML,S+Y*p
-Ql0(A)!4r0d6Z%BDAePc4m8B$AB+mJ"h5jS[b5bL#Ud&ee8PXr@LLlRQ-'F3(eKI
-U5&*rB3U#j9`6ZJK(@iI4R'MHem+Imd5,NN3AE4FX3L90,"FXTYCd%D)85aHj"-Z
-'HREjkD[XFZ88GVP[*lQ8Ri[#-&*4hJ&(aiL1(9P)GijGGD4LXDXG)@"RPH6B'NA
-fDHX3bE'YQ1cN0T!!pm%"8JACAdC[Qp6pb'MUZkJ2b1p'5[)"$+&%UHah8(Q5hfQ
-*8BZLie!,dSdFQQM#mbRcVSKHaJ,mXJF19,Ejc2k"!kFCMFBTKJ5$BDV&mS2"-*0
-Bc)H5HG*if%96MdC!b'J`*$(Ne+00JJd'3bB`aT!!T)8'3m*S3r`rBi,aLa0ZarL
-Zb'9H!P(aE3+,#BD%b@`f0K8a*YpSI0M)#*J*&1KkF*6&NQ#a629*6"edr(U-dIJ
-)'"+-6aZ06kZU1Y-iK`5#QZ#G-F&&JeAfEi(a3B["10-,BNSED"KQ5I)*2I,+CaB
-SH-4)U&jSp+%IR'0*-Nke'#a-DAm,m95#F9E)&B0P&$4De)A-+Bm2$miH4YEaL&`
-[MjI-A-ER"F2BTK)Y),ir36r0R*6`i#+bHJV6Ke-j4j,C'0pbP'mbT6m4bSX(jh2
-@JXIR'PipF,,)B-"Q[h#KD8JhCD5b5(bTqp0rh[YeqZ2XAmXVEE*$FYTN"`3TIqY
-ciFJ&CIqi*Mr11IcdR((MP)-XK&r)Z"X5FUA0NGHRrM+eErZTIalT2IAhM(X""5%
-KLMVjQmQ6PD0ZTN2rb3K$%C6,)3C,i+mh5-#IVBamZA(crlrpHhNEbFE'**+E%rl
-jR5r(Ih'dh%L`4p0YaX*r*KL("hij*I"Sqm#[%,*20M&mEcKka')iqZFV,HBB4Kp
-p"pRLk#m@`mPFGC,kV6VHJ-dY0"JQ'!bc$Ip9[mM1[@)aA+e99FkA,EhfNb)mr*Z
-L2$,cNIj+dmEaXlH$ARmVD8UIS(6ma*F#!T5I#UCd8QCJmjiM1jJe8rP11DKXblb
-Jr%`fjM#ah94PKAT@jGjrcbY8M-06&rj5ifIl+ER2j33'R%d2YY`,$!MChciR+%3
-a%EXc30N5i!fr"$30D"d8mK[3R`3d#ISc51QJL-Sl6F3i*9mC!CAh+G'1%#KX(jJ
-CR(-N*%LT$&+fCLVd8NKIc[rkF2UpG!)B!!!G(d&%3e)$!$,1$e80C684!#*MlP1
-rYLr0Slb*ce+cQCK*(TP5RL9*+aIB('#ND3SqQYkN0K'M0`Gl0E3XNd!hJlNF,dF
-Em[ND!MU4F@G`cUb,lZ`1-L4%CTH$,-GE'*ceUQFf-+L-KqYJF"AGb("B$KZC$2h
-qrGjVddCQMVYhlqFI'kBR"8'3!!4"%!5!D(mAjL24+&jmbb`c3ENCf*ImkpJ1VIf
-FD6X[-5Q*lc*RR$PASH*`QMmF5fNlI1dRG0qb!L3D1+B+PM("&*rcHdkBkD05rQ"
-E15jq5!6Z)`*2hmiU#hY12&f*Mf,jih(jibiBa'6$MQ6b5AM)a"6JPc-@RTk+M&0
-D35HM#d6iTF*SS'*%ZbFerKbIrZf`iqrE('eNP1Ujik2L,EPTVQf+13jh1XK8'2e
-qjfLJDL%0bhA'"KDdP*PlKlA6h+1GK-e(rRR[PZPRjeIb3l00Cf%@QHNMXeceC@M
-iXB5[MUXZll#JYUeI%4VeLXGiZ&pY`rF3UrJa%E*FB49c$%!4Z&T(,c6c4'U-*)Z
-FA%ADTQ5DI8blNZc$1'+`MkqpkMM'4cYGSXrKA5JiV#p[%UU0B@)4-i6KL#mr2Qc
-%$'+)#`"B21rhYEQkNdmaJQi[6%'UJhr0+mB6iEMX0*)&r'Y`L-P0mF4STjF%G%-
-iT*pTV10arfq+p1baSCE*i%J-@DIEUIlVF%V6h8K@"Cd**1d-hCIH8'D+Q%*c#dB
-F!TEAir`pF'mq+NL(m#H)9$kN(d6PA1aJDK3fqJ5@8DR"Q#KAZ$1k,S"#l)DBeDi
-NB4$F-QZdJp#V%U&Yh8M@VA[4kh5H+Alap[VbH('E`[@**DQhqjjIjp$R$,LdG')
-(A@Z"2[&K(TeJJ@Y,4*aYqQHrSNPXJheHA9GGNc"m(m4fVp)(N!$#'N3#Df,*(f)
-U3j5E[Pk[@lqH#MRGblCb%G845Mm'Yh*M1,Nq-+EU9j!!jNX',kh(p@U&F#dFHfE
-9X!FIF19Xe3S33"-M0JB3`qY"'N`0Ef')0*)p2J-dY`1!C!SG$ZAIR98G,3-`KZU
-fr)!bm%e*aKM*P'QM(F&K1i,Z,%("QT4fHbR(KUPXLmSPYZ'2Mm'-K83C%UfMC!a
-k"8Ke1HDi[ffdXq`PrGf,UL0!PqVQU`*H84m2VeceBSNi2"i@8q2"3rr4GQ4K@-'
-3!&4k52Hl&i99,c,@C!2@UmiSc01(lFh6e(![4$V*GB@50Paplpq8JG4S2RRl,@c
-31qYDA'jf5*[6YRfB2NdrdhdSc14bE"p'1Q!hT@VHJLTT*Z5)#6E*6#dY8Fl!4J)
-T(9Arf#81[eYVk)RU+ia4UY23r8[qiUH2iJSUSBJbN!!A(lkPfrb8RZB38Yb0E6(
-ZG+m05#N[IEbiC33fC##P@Yb'`6*+jJDm3QT3p`hl3YIkVqRL"pej2iifR4T0YDb
-r`T&#eEI8LK)iJi(e9*JQT)45pMSFhDBK*4J)BA#G$IN"+3@4GS`-l1c`'XaX`B'
-#C*VJ#Xq05dQ'G)TK$UI%JdUQI%SQA#q0jXDe6(YVKEJ8D353!"`IX"%j45,rlpA
-,V@XKaBb01TNZjS4q6#Ne)SRA"#8ak11$IDj*IH@SrbqF5#`9I0JdA1mcHaRLS8-
-V+%`-p%)p%H)Gib+)9%CX%'H0D+@%b+jT5NTU*feh3e#YR'dN!H8bfm43Rf#V6Sp
-JN!!l@S!KEYHd$k"abFH,3)RElX6J!QT%T0RIlS1BJS3H*k5TT52T&HhRJ#jQ+!3
-4DAHBRD&B0T!!qeeFKjY@B!&ZFCD3!!%6`a@1*#G2Q(i'8,4M1kIIlL0QQQ!AVYM
-0-E83T1,98h$p2MF!dUGc3lXG@iEUjQZE!1SfV`!(Kf1ej&MJS-ef5e4m&-,%B8b
-8[0cd8BJQ'T[U&MHLfpjKVPZM$hd8@JD(-iZqNB18RZTHKG6JjIb6U6pb"a6eC!i
-j3"L6$IND(MKQ`dBUU,Zp-*qPRXaEU@q@$[6h281JHfp*#XQX*5AiH5FIc1h5-NY
-hF&'ljbF"3Ti4(+BTT'fD'QSDe2BZDPX8m1r64##BaqNq&`#V3lYRb`jdXjXZG@U
-EZK0,KjU#fMfEKjSZDaZqk2bL$9hf5r4hr+Al$j9ecQR0L9UQZ%-2[SX`$EbZF`F
-Y8r`LFhRBaBi1q[8JJ*0mEmR3NbcaAE$%4iNNE(c6f8U)4%0e$lS8*FL8KaYQRb'
-8Ma(Z2Mr#%+'@8SX3'3Zf6Z5I$#[jT-aS)dDp&cNc0mKEXElh[r)%K"JVQPQPlUY
-S[qV+jiEDVfiCDMmQEfLcUDQZIcQQkQCklULlXZ62f+Y@"ZpK5ZdYPF)J'%*'a22
-MXdf2,I+C@DFhQA@ZrEV&ajRL0S#S,`$&"i(X5CHr-,'mYqle(CDk`ZAAXFMak1%
-G@Pdr,H-mmd%B"5iQ$0@9P!ZC0ZmNK5T)j!S@0b$R#ID'GpSR"U-ES'Td"XJ0'$!
-f2E#2qmCGC$3M4h#5prGKm"F0%CDU*K3Rhp$Z)`LcQ4HXU*[23L41RK%`B%Q1N!"
-I9MUK[[eD$J`4!b`r")'ce-P%IhKbE*'CYKjL0d)4pL!PqKdBih[Zb"4V)5)'3[p
-*3p)9(%8`ED3U,Bm8ZJ8A-U%*mL8lTLSG-m`6&SN0SSA*afIkF-%Y1*6JmdJ(-ff
-%SE"Z*RdNN!")h#ZT-GT'FLmrc8h@@aNHSdP5#3",ih+cpI4JArULe8+PGM)DT8m
-NebF`k*FT,H,HrQ1%%,64PQ$lc3J(81&SH3UGbqiMi8+SRC8BK2!,*-FaG(XBUG&
-ld6b!SI,*J2Ga"@BFAG6-@JBERU-Q@S&R$LIP*LrYS06aeaXC1'TGY85F3,+mYre
-UZ)LKD'q$Br(S5B!Q#G#3!%Pd!e2pDpGFQZP$`LDYp"HR8l"&k(665NCj8PrTh9p
-9!T@r@&Ej#$V+e%8ATd0"QRQULUQK#lj6A(1p2L"'$V*,3JRKkRIDEaT3dqHcZCi
-(#$!G@9Pbj-GrC*Zi'MpVR(cl(k##G5+"Dkk"iABe5'a[3%*5E*F)[G-Th08GfZe
-#cP3A[G4cI(8(4-0&[k+ZjjHQ#p%28)Jk2LK&JidZ(%+3!-*GmZ'-V!+GJX,dD"P
-+Iqm*H&20XHMA"GY4#Dd4N!#@V@KH+IQD[X4GG!Ne+cT6SIKUJd2FMD)3X'UN!-#
-D8jA&Eqlj5JUF"$l1VbS6+8[rc8rfPR3,Zl4!FeaVqEQCZ[J,Ba"AilN4lN!$%dU
-Ba)"SY,fYa%2X4qDp9[-2MlkkQ3e+TJG9T$"S'JGY-'J8AI$4c!82$AVpm8mH+6(
-bFH95ULAFm3q2HXAq@q("r+im(,U[[hlBmYflp$0PJF2ep0G9AhcYLB$ZHrR4BD1
-XlI!eqZZk0UrqLEBpJ5SKiLD42aV,qrT[KIV#8(XD3NhJ+P,F-!&DARl8+EkIHCe
-(*kZh%8eBU6&SM2EN%VLdDPTN@L49UZDRQFk[0(KNU(dqL2dHDEKppU)8R2HKB1p
-prilfM"F)mjK6bi49FJ@Ef[G#(3P,ZD6+q"UTJcZ"a+k-(+,6b(6-!4&apIQ9!Lf
-#-)[S+AR"5P3ZQLVD(cBeYAIj,!`PrFlNTVejhR2(qhSNCq"UL4jTf%&GFNk*j-3
-&#V66CNj*3hR#1*qE8L@bl[NJ0KDq#'0&UTU%iD0K`rMT[G[-5H3cm`qkd@M9lCM
-beZ50CQE)'8FB4UR(M)j1[RJT,$`l!0Ef-U#Efdl-@d2L!"'JCMk+c4S&P8+16Zp
-K@DNA99Qq08!KKJ)SZMKX(0JH!'KfQ0Zl3R$C%kPB06,8hZASi2c6+0$2Sb53!*V
-G21R)H@3@p8,4dXeqRVZLJa(SY)6)r![)K#q5Ueb9A')&9pXIhRc-Ml62lI@TL[B
-E$fA#)e"(@0K&3Sq)B"bJZ*Dj[4kA[,%XJfBX#*3&D2JS#%iPU505!j!!aU1Z(bl
-&YU[A%lbN@lF&@c$Na-HG"PGEU'K8*#-3PKmVqQP6HePrA`9hP"9b!Jp-Af85#MQ
-+&DDd31,j%[I8Z-F5YD(Be[heJdpDa$ZQ%"KESEUL$#cZ,&MF!&@1XCQpUR6arVi
-`Gh5RKc`Y$INd1q66pSFp&YlcTlPX6,VXq*pQUf-NMPGLZh0@fchp+qF-MkjH`)D
-AI(A$XG'9@mTRZ(lQ,lIT5j08e01EMR6rDSJqk(*JSJJmMbjQp*PpL@pIq1X(4Hk
-CQ0&l4fCKlYdDVQAS`MI0G,8lfH(qR3CiJZMNZhPlbhj",feXd6*N8ST'Ia))Lc(
-E6eiNC"eQVNZ"NF6DYLTaCdI&mrTiX*13!(8B5$ZXl@ShH&%DD38VT1dZj'SRQh!
-madFYhKq'H8%H)$cad)rbH$ei6mjbEhhmIf*U$DC8Hq&h1859c,aMLCaTf##`QTa
-M)RiFlkk+4XHiRVLpIPR'DCLFKNJ9#I$-iD!+Bc0N0U%"Qf$&*XKX43hBLUcBLQ3
-f[3'EEX@Qbfa+!cE&LNf4fA)0f(*@E$QCEDS"fj39fe6)P(0)@qiTU1#Vjk@VT@*
-9DX(!#jUUQ5UZ9RGH!cN5!'(N),'JGREYhbemMZrMKI`N"E,95T0j-lV5`IXlaT*
-#k9&CA('00CGU,9,$Re$F+qlMiC&FVe0[V0qAH+#1T[C23Yb#d"K"8i(RqrXLDG'
-MQ$U-rTUJK9#Yr9E&,b$190ThU"65II,6ZeSJV*mYbQRmk0jpR`lE6PcEd*(-&I'
-MQdE%Zeqif[BFR)H[EHL8R$(2h5rGhhB5cQ2U%qpYD*AFb[MG0mma9P12eT0P&V2
--m38a(bZ#fiTCYjfF2,&G3(Gl0--B!lTSElK)Tb,)I!UJ#9QPNhXZ!I&#1&#"$Uj
-A9i[V&6iA38BU[kf1Iqahh(XpE6`4H-9pC$*39#LLEFr1[`p'@&dPJBNT0Cl[5@k
-CG%M'DC9H-!hFYSS2V(,-'FUJJC5C0lGP&F5*19Y@F6P9F!S+UpA9RHZ0'HM5Erc
-Ucem3SkYpH%'&33@&B6D3!)Bbe!TF&1H`64a*XcYJ%-',X4FdC,rJQ-2,ENT,HAr
-1R$MB('jIS!NX3+@+p[X+'5TT'F@F0k-*e@LRY)3UmfGAI'e0Ae&k3N@'&*`%+KM
-,+YVR2jp61FcjZ5T(lVUpX[r[T*K,YA[dFC''$M!#idJqRmJYGhKQ[`%l&`+Rq64
-X@L9m5G"#LClE@P8bjF`EYDrZC488,9EG+AF---m'HfQcEQZGj'Pfkfi"l2A2P6i
-#pX&1QRUB6Ee&4d+B16BYENp%FRUlXN[lRMY2Jm[G3%N-lf,$rqYR(Dj#L3F`EEX
-Y--NT19@daFqeeQ![XD!JmY@RB$5lZCrc9N9pSp9TI*,CrdVHpbHp-*MBJZCbm8m
-#4IJF0*FEdZGPFlNUIIDEb`ATma9cH9ckR$'A&dQI&mhPNr6jc0p`253YeeUaRB9
-UeZGp$fB80@c3-[fhJZRT'a(hqDc*q4Z$e+Le-Rflb94irBj08$$!%&%,31a-5J*
-kJ6083i68AVkH9-f4UrQ"kX33M#96,&R)d&*5F6%+Q1EmAQ@FMVf@+YY6rVQi8[c
-l15iGILil5Y"mfiq"0+)%KVNb3*M6N!!!-PF'$A1U%QMQbN"L6N%#dP`CA-`CPm!
-e9`BFFaC*J*XVJj!!15H[hdNJ*+8")2(SaFfpZ[XIke2qKk#@`QVkbP#ZDDBZPP#
-9!EP'P3(*c$-4FAJrNNmmrPZG0Fai`0AY0'F1ZC!!6"*qHr,mABFHZ&NIS%T+I+#
-Q&H+"mraHjKKf2($Y8##9d2HMiA4)2`Uc2kR"q96J&6RPE[V#Y!h6iT+h&Alp-Fk
-6Mk2JLrNJ5p*8VVYeK21cqX5b(kfVT`,SfmT9J,f,QQMG4Ml'9CM&[eD-Y!J-TTA
-2FFAfGZY)DAlmhYBbQ-[4-F+B+cfmNYG@04kTAI8$EL!p,m4X`Fk`U0K'@pHf[PV
-mddHaR-Ih!bjka6!p#K0FpZYhm!$5Ppr9Ge!`1*dDkDD*rRUP2QaJ3E!U!Dd+CX*
-"'(-GXjp`rY5'&&V9K6a@'Q,Q3!4SbQiIc-qK2PFcdVX&kcTIVd@`k23$%`$3G)F
-j["!0+qT!E3IUpF&P'5bVSJN[2*6"i83[AefC4ZIAqJ"'ShXlJ!AP`jVkE[fYR##
-&aX-m*U1Y`-+$mkFS90bPcYQ9XdQT69F1UGG65*`M[*fZ0LRi,SAk[!BHPBVLd!Y
-TFRf)#`4L9`DZGA3YT[Tf!I5r+$ERPR0*q5dLkcjH8fMeD6c%qk(G6U1-K1#N[j0
-BEa([B+NV0Ac"@FXq[,,MSM2*2Ll,(l-b`aACmEbcQAh-N3Gdb`ajq@0XKPj![K`
--"Ir)%KjX`X113SG8!4D%qUH0(`#FQ)Y`)e-J(H#XS2(C0r%+d1XSUaaP&4qVq&K
-PJP8Q!Y9G9$G39Rp'1FfRG%TqKZB)30%p9%RjrqS%Tj!!CaXN'B$-GYM92B@(,`S
-pq@HJc)T'+&aGc(5iB-MB'16kDlG'Hm[mfA5)SqU`Fb$6kBS9#LG,fC!!56E%KL(
-LDcAj5aKJ+CZ3!"U(''#V+Y0CFQ8PYR9UTFi,5l0,#'r8[&B$BBUKhpLKQ6kVTF5
-UFrSc+`Ca"(qSI[LC2fKmT3id6L-CUFYm"!)&N!!'dKTA'HTlAh'd%*)j5hF',UJ
-kP$%9k'@C-"MI#+5V25HiRY)!k,L@H6[J5Z*R'LVATJ@d$&1XEqE`#)pZ5"8p+Af
-N-$KeLNmpp+2X8!%rc8,5EQ#`iE#dFB$-88"hp6[rKr-90k,4A5a8B-80KG"IpHD
-CQBF!X8'"f41T0"RabB6V[CqU)eq'j`&dm@iZ&D3d`YYUUK(HpL`3hSpA$9q9i)Q
-2%J@1S'12ih$LN!$Y@IDAYfh'bjYAbA#Up`lrN8rpqJ4h4-lJi5R2E+1%b$#1F*Z
-*Q*!!"1T&-I4)Pa[BjT05T%8,'1kHECcTNa'Ifd4T#C!!%"N*4jS%%BK`[EIKJSj
-jLUTE&*!!r"e)MQ$42")--38"lq2$0KSXc[YGaYHb2rRj283DMcKGQ@dFECRTZh"
-F,SlFmB+LXL8YpNXUjU`cHj!!2-mkh@RR5,@c0Zf-FH[PFAhP@ej"cDYiV+Th#!#
-"f48%lDqLQjFGMkjK)$#b)+K0Jb"4R0k@[p6`5fc$(![FX*amUGV23&ED52P!LC@
-d,GrU3SUQ@q6YUX9f*Em#-2F#!5BT6TKQmqTR3a)b`r!k1k4d0cMNm2q,8(mD2Ef
-I(%HkrTKFlGH"G-ZkZ#-2!%"P'JKh+&+%G6q!NGUcdFrpB6Hl[MMla8`I8qKj4Q!
-c#Z1)P9U[hA8FQJL&@LUZHURFRI'#54-lEN(Fq[%BJ4,iDL&26B5(@8FFNm8D)R"
-10YC6dPD!q0-LG5-l!a8,lBhPH)#!*Bj6Ta'fhiI8(JhH&Mi0*8)29k#D1Z8,S&2
-h8'8M(SAY)G&PUaDbQmb4mq-l)A`m`DB0qY5JUPSTV53j@k8K'c0d,3U[TkTLNJi
-V#D28IC%!jMr"+lRU2i&BI'9f@IUKD2N"&S(#beNB#iEUJdJF6$h8K3-!i1[rb#e
-Fa-[2$6`-'fHG&lB%fb0'$'R)HNS!aZdHQ$j(aRi5*(#TU`#K@9DGGG'V%"SmdJ8
-K+PKJU[iPJXqZ)T3@bCrS$4D)0Kp*MDj32F3PM8,*T'USAM(dVAb+(T8P!Yr4jL#
-TCbGN6,jPVY"Gc5*-`a9&U+LZj+MC0BBI4pL3!*@eN!!GISU'Kc2kB0k5(hd3kJe
-(&,PPr5MAJ"Mqp4-m&"Ea'E+r(UjbP5ib&+UqC*jGFJLG%0$RQedZM!Z9Z&jKPjY
-"*H4bif*"r&`*Mp(Mf2SS+b3aEV&(0+mTh"hCPAC,L)%dkbi'9YC&Vlp-M0N$*KX
-FN!"(pbQM%E9k!!k-UclBaGhjV9cEH)Sf&bpX,J3IK#Y5YmNZ(@-AQ0BR#23E)9D
-#3D1()+,Rm#Lf%'B1+*YcE0+LKi!3(L#%G#fBFY+*Mbm,q+$fE6`Y`l9[4qNaaGd
-JAm*A4[Ec3@l'UjpEm*VK'PjKlSpmbNMX@H$!r[4!dfjZ`Bq'Rq`3+Ad#C3h%L`L
-%T,10NPJ#-F%!ZR&A(#q$8SUXS-6kql$&()&4FB3*[09YRLfQiZ,NMEZjLX!`I!j
-$m(Zj63p)"8Q2F,9i0ir6*#S'TS9P9Y10$DDP`5J1N!"[blN5iC-)RS'S3Q*5fFd
-56r'KAlIi@PfHKBFHE!NI"d14+dN-Q"6R(F+8H+!QI*C%*%Df$FDJ)PE%ZPJM#)A
-4piAAm'h$[iAJr$!Ce1Mi)`*8McJdL!)&m5cDp5c-&$ppp-!Y2GdBJ3,V#"biUAZ
-U(I@"!brSlQV(cB$Z2P#I-Kri(JQ,DIF,J3-[l86Sk1XU[EbQGAL%kXK+Ck)Q3''
-r+"59rI8XP,ie-J)&-8*"H&#L#(c9+#b'`2kIp'!E'PEc&B(84[#@drcI-QKN[Sk
-J')%&HJRkLbZZ)fLYM[l4!4aa[@@&T9V-P"VQT&iSD+cU'![R*E-2`-'@Z%"$#B'
-VZM&4K*mi*Z25*+8Z)fjbT!Hm3mb6k-Sk&M5*iLILKmY)Fi%a[d*,9+hmE13A3%)
-*&hf6L`MTB%4#*d+rc8!9KiQI$l[,kXZZPBK'KJqmm3K!$*56N!#L'[dbGZL(LX"
-3-m,&GL#dbh0%3+!013`i%"TAFJ12*lq*)0%hJA)'-@*"pB[GK,BZSd)NGQ*K5k%
-)8B'`3hD$PM,)31Ka4QP#QNkE6FLikR88)Y"[pK-d"Zj#iX,Slr01qh$8&9eH5@@
-Cd1!LiEYVYM&mVqkV0U"%6l#J+VRV"B&LU,2DG"HAfS2UDUX`6lKhY(r&06rGXI[
-q"cV6$ADGDJ(l(+42eURqRMTljPaLhkQQ5E*,V+ZZNVV0*VdVrRp!8M9bY9@U-V0
-&dlE&%[$`%VQa3pZfQ!$)P-)8&AKP2aiZfmpe8b0#ke3+2f#Ummf84BKReA()qdV
-`&U@mC8H[ef(PZ0c!8HK9G%Zc)0LU5EKUlDUakS@`V+ciQE&bK3[rq!9"Nc"N**,
-#8c54R0EDQ$(HN!#$%Yi8NXQRb%R6#-Lk)NaR5Dr`)T8B,Y*Yj@j*j*5'c`XiLqF
-&mJQTB5DchNm(ee[59l%LFpDkkNYkXm[RrF&Ee,8&DaS!*@P(RN!%KZDNhE&lUiP
-B!FqHkE)dd)l8jHTK9Z5X34VdTL5L5CX-,[b[J,$JXe@$@Vk3!$AEI@RLkI!hjf8
-+AFrl%,MKTSGdEFejVEp[am6l2"f5@4h`KL&$lb-ecVIDSllXh0D!D@F$aed0()q
-N(9,BMKfT6"Dji@"KANcKXQ"GQ5P"bIPN1$XTK`DR5965Y(f3!!JHZV9PfXV2(0L
-HGMYYH%4D2AB'+4%@X#fdf3q!Q3cK&FYf8Z9M#Q*eQ"4ZXfGKlS49`,R#VF*LUDP
-2`Lj-Kh(mmk48hS0rRk6RVk2BLFTea41cV@YjeD'-)cKC*9'G6*N*BjT%-F%P3[M
-9%8CR@mPC%0B9VrVceJIhVZrP+3L,1T`'R++[jF+kR-Fk"&CJ!ER8V2"45,)hjBG
-jY6QA4+M,'Pm3DBmN1Tp&NB1kRd,k%3C8E&Gja+kbeklbN9ePR9eP6pirF`YAcZ9
-hm0611YjFJJGbH$11dm`Hm6i)-mCD[U@CJPD6l'K&30*D0,MS`5TkD,hjJqk0q-4
-a*hj"BH#'I3"2qTmTR16059q-*ea9-)$Em&'#UJ-KV6C[X`QI%5b2(hefl6mGZXh
--ED%q-&"K)(D(G`jepPje#-Yb!Dm8Mm2-S"2kk2jPahNFSU3UKG6m8c%%cY6*"&e
-@%1h$D53KJ!92Jl&B3,JM#XcArm0d#SHPclhXG9EhND!KG5dSUKr2rTRPi,20hc$
-ee(6@p,lp[FV22fMYV(Q*`MlIq,HR6frU@GZleE`0GI2XXrrAh'mqDflYk,R[fAG
-k&[hchEmqm1f((rMGiX@,rrBh26Zrr+Zc(4qqf2)[RhrAh2jdipqD,cbparbpTa[
-0IEGU&Rhr`mmr0rqp1A$m[a`qDjljQpqF0Ir[ApkkpQ8M!!!m$N&%3e)$!'NN%&8
-,E+F!d9bArl[2Hl0XGZ)Dec5%0,NXbhD*b@B*NNNPD0c%Z+iCNkkT$H,)eY&G+dR
-F)jkFe+r(lLC4SeLDLV@@i6$L-$3+#8PJ,*-kcQ)c)')j%Dc2T`ke)##LiJ3VU@M
-frIc[[IZm86V-1GrR"aZNTbJRJL"i%YNPAYlTGZ2&rp3X')"qH4H8UhKT--CKNLa
-lX0pRE3+U9*S@L)[4[`[M8a@6!0Qf5IXR[C5bL+G+Aa',a&15X8FfC#9YP4$'e*(
-"jZ)@prcRBclVGp-ZI1JA$Hd"TfL"L#Cj-"K5m11(---fk8fB`#4bQ%[#J!ic3mk
-6T2cjU[)e64(4Fl!)LZF&fd$)V+RMkQR[J(,kdi*J3#4Mhh0hFcr%)iTi6Tc&&G%
-8LXCQ!95S4Uk'pI9rp%VA!a1SXj5YL6H[#%4pTibqRk`+1@h4N!!'hCV%3paI2S[
-lprYpTr6eDlf@)ReN4V"U$4)(EHJfC(SUcAU8+mI,[YFPYVX3KHLN(*e%p$S@RA4
-KH'MiA30)'P&9Q$"(Z"mE&YEFlCll9*T'1HdPaRk[*081dkV(p@[AVqAN%VfE&'0
-F*+1RY*KAE!r&D6NBER)F5E6J4#4e,RPS0""Fm1hSjUTc1PHr%j-N!lA$M#D1F%0
-0IY45P4qeMC,JLUE"DF#EBqf)H1Ce'*6cfa$CM5aeab&V[ND-JcJ'K!1fHQ2F9CD
-[-Bid4BMKmY&eZJBFV"''D$qDKh%PEKe4!#U@hd5RFGCT[@kRNN'6YcD-&IYj22F
-Ia2EA4r0hX-J"V8LRV6J%`!4MA"3'"4fLE2!Fa,4SHPC[&ZH[5Xh-U)XQ@j2I"N4
-QV`d$#58ED[)KP&Nq@*T'!d1N*R4$La#lrpr*3QID'9K)!lAr$Q*BD4UfEh&K)'6
-Z&6)%,)r-k+NU-(U1FRlHfmYeTd5QB'5f*!D)3)p-abBbaVEGX"JqmL[(Ri"4fiC
-r$@rK2QJY3paPUrYl@q")%cFDd$`9U%-cK@Cr3%5c!mhr#,5L1B$QmB!*c6LDD3&
-r%m#PlX$X4+-"b)#jBc%BC3V906P69INQhbQBirS!k*cL32NEqrdTflQ0RKP5C'!
-a%@6UEaM3L#r9d61XSriQ*eKZNVXj)N,8!*3X(ZJde%&e3e"KrG6UKDLMRX5qjC@
-m2K"0fB`QR@A@Ll8KCFP,06-M(5AkrZBj)"BmLYF!Mhm!B`$-6EEd`[4#)%+YKM'
-q4GckVBRZqBDY!19e[$A'"mHiHqUS',8%8lDehJ2hBTXdb+6VGART1EV!8,pBGf%
-b1f"aNff@QJbe0Y5TbBC$kY[(bql[5I(dY&$dZ6ieLF4kPPLr9')p%JGBiX"5L30
-LR83Q'QjLa"*S5G@Tjd21"Sq`15CYlPA2fiF)84mc6[%NJ%Xf'[8)ZN(q6J8Uqh)
-E4k!j%)JM+-qfHN0b`kL)Bfjherd18U3JRmcIQ*le"-qKaV8B(m9a6R*XLT)B''B
-jNc%ZRVEXFQN1jYRbJ)"k`Np2#!B@arbELXAS`@*NVhVaG1NZ9ird'DM3HiD$SKr
-E@4*GP6i$&6&",**0j#-`ecVLHCBCi(EVZHN3EqIqp$5BfrpSj*lc"!iT-hj`"EE
-a6RTaL%!d!2iI32J[RXST$0XZlC+L,-%Tj[JKhXCpS6LI"4X,9jA@&HM8`m93#fZ
-m&4V3Gh9j*!%)bhVUM6!fMqTXIJZ6T-EA!HS'&+BUHN)L9U486,`PlZ&Y!5H,1X4
-9&UP3*&Y8T)jF1"Jk(!"G86`&"[Z2Clc@38F"&1%3$p2bERGjJY!EDC'JpV8X-VJ
-eEh4Fb9VkbLLZ'!ja(b8YBe0jHUq8*#**Xq,U+%5EV46"Jbc#L!K&2jUBT5Va&4L
-ZSSr6"aLR5T[eSL0#fUaKQiQK+MkMp2RF3la46H)eU0EMG8XG`+YIEF8VA@f"3iD
-L%PKq&4%Ae20iPDV(m6+UPJmH!Mjd(DpHG3b[J(S"VrhU+&ifG4#EZY8K[&+U'Dm
-kY4'G4935ZBqb`cekY4R'kPQULhdqC"eeM6Sq-f'Z&MkU(%hc(kb*SkU9I643dmM
-jA$B`@XM&&ZT@'k8"b-X0!UP)@8HYhJp'f3"MkLLLkZ3S&k+UeGiG0*9Z-0m!qD0
-lakKk!&hPq)dK&aUAr2YTB[i6QK9qlPkfBp5Ib6T[#l8`YXGa[FTIC94fA1&qIa8
-q6rJIdZX*kApZe*mPX5aNFc!YS*kR)j%k8kr,RAA)ad,G2D3q)(@R2S$22kP25Ge
-ecI,[Ifj8[34!UI&F49GCRLDm`Ti4%L!+`0ApUSc-$ecK%('rkkTdVc,A80!ZCFN
-R5J!D@PbD6j!!9Gf2AecN[Q05mb!"*FAJ-F,AaVBRi*63J0pG0K-+S1KR)i%3k2R
-Z'A!25Di$U!Fb2S&GARQ,"hME,#$M'd(ZQk4ZD`ki&j&*91(ZLNp)q$f2N!"h$'9
-E$%Ll'!A+Ae&HG#`THRU+J@j9A&&CCrjEY-`Lp`Y`NPJ81h9k-3q,TbjZiH&BI2)
-Vk+)F5l2PX9c&e%ThZHdF&MGMq`ZQ0ri1Ib(P*N"-@iIY%)q%iVI'ZZ"%deE2##B
-+40H*(`eq62LKj2Z0A&Q)S,Xej!,SE%8f09!fhG&,R`!UPHij$G`+iJ$LIiJV9lZ
-k%JeFEm"K*2&6$c%$!p-l,L-6Kcpj#)VrjbkmV23MGqBXSFpr4fFa*)X!%6"ekS#
-)-"[`lc$J8DN$Q&rQC#R-XH"GjiXm#N+*!+3qa11UJTF#`)SApi2XNL`cekXYH!f
-`V0l+XRS,XRU@H`)MT8i!hMTG"!F"cm63@!h)bjfVGjHrb-1"T!!kMFfiQ-Z!3BS
-"JcT'f'EeH[Uq5r[dpHZ#8i2''dJ)Xq385dB`Z)-b@bPH0HT61pJ&["V8"ljr9#e
-eraULE(EBq[UZ3SMmEAhhU8BFRGRpkbPQ#[M9dU[eABR8k&B5"daCpmV89f`Jld$
-+TJ6#3%L!4TBA9686S3R%&1#4J4K)#H3ba`$NKCam+LE"S,1U0#e86e&LA1b(X@I
-9&$0pTUaE*cSk$U2M6SL"JcI'G4UG*R5+V1Y"eVfU9m1Q#8#[Gea54DB`Lc[HMU[
-i$,22-(dD0@*rcVi2dV&&DS4,LjmU%U-p1(aNDTrYU"S1J930GDVB08[e)6,'2X-
-J"N6H(NaGK($YRA@*VAG06E#N6Q5GM($d6+9l!T+Q&352%C(--I*S"j6BD5#4M-a
-40$0k+Yh68U0JfkXd[DehLE8EMUUGE*SLTYPK+mSD0dR20Q'5G1KH(,UFJ5Xd!kH
-pb$kY"mN*kaRf+U'AhfENrPFaBD!qAJ3V*SB%"H+iK#'"X14JM)l,9!5f00jS'EG
-S3&J8c$*Kd)YqLmX!#(2F&6+,66LZrS1l4-m8mm&pUAlE#L'6HqS`RBQ"&KE83A`
-EdNJ"aY9'jNT6B96d2QS3i*M"XJj-1(1-bXfY'0bL35!Db,KqC%mr6"9c+11ZP$+
-D(qch&!3TN!!@XU"r@T1UcjC3"5!+cA,'3@B0bBiL3)Z!UZrS8kZKQ"Fb8MD6%`r
-p-b*hXXJ,3L3E2&F[1BE2eA4N(*rIL&H-"6r9rK18CIa(+F[i(k)!bjq*epIqUYB
-kre&Fk@4G0e,ArUZB2TJ%e6[qF8I#&p&4-!,[S)234iP"pZ03ep&a'*-XB3iPJ[R
-Sh,0A(k@ZHHA(GMfEG5dkZKE(GAeBlPTFUQX4AHFXeE(#1KjMhGBlZUdIefe-lVC
-q5Gdb)0pX3dFK3V0Ef6'EMQFXZbiEcNSf`(Q+(3485J6mB3!%[eMRZGT95)%i82l
-MS3kacTmP"-,'HYdYkL8'3-Kp&83HZ%,C4%*&!dk!VQk'R#,3SBr6AL)5!0J[QMQ
-#VP883&Z2UJS3a9AA!-JDDY(miRM'LY9@EiS6-5jUY(H)!EF'1J!@[i$j*8VQPe$
-p$Pa3ZbPBe`#eTZc&hFF8%TCb0dc+Um+fXbc6l1L$DScPS&bEhDZ1CbcB"NFh+0H
-"H%-E2YHATNR"YaaNClPRb"Qdea$4-4EH35B+8R@e83JB*PM`$JCQKDi6-L$D,Ql
-aA`A!A83!h&m9UTG"am"h-@aM+`%823G#G43(4biQ&I3K,5m`'i#JJJ`bdP&MQE-
-iM%ZK8Q%"e5JXS$l`F3ZSTIB&e&*K!I85!+ePr!*D,1Ke--"M0f1iVB4J39c0A$R
-)53PQ-QH6flBh90F3Z4CY8)jR,2`mC49VF9K3--96T-Vfh8k+E(JG+E+0%+R$X-N
-p3je3p8jr)ECKd$6ij$F*S&i!N!#C"pGPT3R)M(mK$1YA,dTLQTYk23ClQ!e[VaJ
-"iY#-L%)NAfI-iIi*HR9D%%FaJmJ+2a-!V#J3l@(N)iB'G$i0JTXB!&C-*q%YV@e
-Ikf`$@,-93A(3GjdN)XELGp!('A$aXaJ4li[GjERmr-iS&RmIKe4JT4mS663&5@f
-UI9aA,8)$`Z$Dfm'XjSC)3e++q0H#3Fi8)kH-(TXDNQ6SATihb#qP,38LZ,V+"B8
-G!'r#,qrkeATdmK5bZ3r''60e5eIREKRNb1"2X3a%jTS1+$8Ej5#Fmmd)J%8deRd
-hl9S8(H3F,kYih0!Z"FLBf$jNQAeNL%eCb4`ff*k6&R!K-qdl0NCAB!"639)q1K)
-b,&D8$lB(`R*RqaT@)'V0B,Z`&Ch4!Z8`$[F&pPp!)"mkLkADG"H+IDH&BKqcN!$
-cBaI#e%-h$h-F5cTqq[%$!JfCa90N3$D[J"'d&PZR``$D$l0NUpK2#68jlR3NQH3
-N+f1UQ4VZG2cd0l4*$'j)YT2*JT(qSM1-m'-)V%p0UL-6*cUVB`ah-LH$9r!KKTV
-a)BVl%06AXUe[bP[I"%Y%C+81!+3BC5)!l+58V3J8,RLI6#'8(39`**RJb*5%`6M
-*6%Sr$A9m[f!3JFpP$J$V+#Nrmef-X-5!LC)SDX(Lp$4GSaUC-4KiJpQ06#M)#Jk
-9!GN6JK1eX8Q29h@6J6Uipf%E*c-T#b,L%U+k1KJ$8L"'lBBJ$3pC+%+&)K8Be3N
-HY)-%Yc!"CZK5VR%B-0Y`Y(!TV@feHPF6)M*JM%[*1X[%JA`-k++,TBREJkX6-V*
-'S18#ISlMafLm+QHIBRPJ0r5qe8%fP@Bf&3X,!2XCb$j++2IUS2(#Z%[QdL*MhEM
-)&Vf)VFjad9&prHUJk0%e!T-*UR&-(442qelL'S0km#)ch$9,cF#F0eeFSff``N'
-BM&(,,NZKFf9)dk`*Q644"(pq&[aYd@LX`3'r0A&Qe+!+aLKFMGJ[!d"VT!i1RJ`
-jQp'*NcVa1i,36Db6P8)RGB**D`SjqMDj[j[@q@(bE(-l[0AKM!j30S99M)#V%`X
-ZYU(j++)Rk106M,Gi+(iYm[A[NdEM%+Sa*)@M$X'N"k3$!531G%VZkqh4PEp2RN9
-@eBP'0NVQYJbf5iP%jS*6X(ZkS03c`#kTpF0d(FDq,2F`JDX,*+4!Y*&((R8NHC'
-dq3+%"T&9fS%l6m,C"!YfcH)80-iRG6h+'BSmAr3`"Eh5lB@+ERClHiSSm-3`+ij
-R2%N"lUUBP4!*N!#,54)2A'M(XLH!-Uab,j+#dJZNITdhc6ji1ZFY"%b[T[T[UUB
-AVrErqAra**,'(+TV2CN#Rf2++K$G+)NPe$VmQ2(6#$)FN!#&9"TMLli994ELl'8
-bQR"*)h`b"'p!9Z+M"#SL$'QR+L6*p06GF%#I2GC1P3cS%#991eXFj0+45LClH$1
-lS4KbpA(TQRKhrPd"rdfi%XkF61lh"hGH$P'&%0EGP`B5a$`,!-Aj*!&maYU2A4B
-2IR!#'E*$22KF1UTMR-#8Q[A*$k'F)HS%6r*1[HE$B1BYU+`GXU"!Z9(Y%"6im&q
-2reDSj28`MITjKj%D%638+F,eDi!c!-M(mQ!ZlEL8CQaf(B9"jbLR4LYqR2MTJ+#
-M%blfIr[ab@L%)4cMSJd"XqpiaRfE'mEqip61RdQ6T#NLm+R'&'2#"-9f,"P'95)
-JeYa(!)H(TjKT'9j(pNlA8C8fMlQZrZp[DV(+Kfj%6P@l9(YRr5!jr$PKKSY4*lL
-H`Sq2-IY2PrZdZU#3!aGGL,TGi+U2VY+91brr,&2V5LX&(PUE8l6C&JP&FD5[AP0
-Q6JCkpAQURaQDpS0`00DU#4H)H*l`@VhIK"'NPGr8A)N5)4PMKSMPA20A-)"%j5a
-YU$)j2Rj`6%D5hZFf$`cdU-*#`Jpm`)+0ELe3,ChSf'`E68p$GVJ`G)MIJ-Tj)h@
-)RdAL$5brRjEfVk*2rGZ5Z3M)qb)Fc[ik$k++B#lD6bjLP'8&Fj&rhJ8+d-*!J6B
-bKI8'1@8!T-8[-'99AH2)D"DSL`GC9XYK@Hd5*p0[+E,3IXT#lj9-(XX3$SU1@mk
-XMC4KSEiH[+Va*Q"+[)(U1+D,#bEd@0-TLp%2MQ%LUS!d8a*BBY"1#*RmGI`Hk,d
-`)"NlaIldIIEX)aP-N!#PqNXTZP0I[f%@0l(P4#M,Bl*"a5Fh8K"'Q8U$8-V-,%M
-d!Fdhil14IDCB!1QM!2)fS4XbP4[Nkj,4*GBr*K&R6M$&YCD,Vd9hq'PNjYU$)6*
-PGe#fJ*!!6YRaYX&RkC-b4Sa69Bb#B09'%P14+VINMM)3[9qj3)DEe(2RC&$@3D#
--#DdT)#1A5REFUSR39ed9ER0cDCS%l'@%EeK'q'"@JTJCSR[$(U$blpS4T[RR"B5
-TD6Y$*()!A+hikIdQ13*F3(I)U0DXqHFT8!&k@Ff'!H5+)935BQA#KZZkL&A&4JQ
-adKC2@KmcD5J32V"J`MXa565PZD@4"8aN#)hi#09j,Hc26rJ6V2V+9bhFqURShab
-8a$QI"@pa@3694GF0*rYr(cI)JH)`!N8$1Uk(d+RPKkZZF&YaJ%6dA(hB%3#q6p1
-ieBiUJL6@Iaq*,i-j!k(iKf$d2h*9EikQSZ,BX6Y&%9@Y9MeI&LjN)[HpHSfA'(e
-&('ZUdNUmS&GCdU!iG[A29ET*2U(#)J,096dp#S)8$TKP1SP+S2bBNP'8k8p&'Mb
-51`F&QlIDa@31K)'fFb(r`d9L%X0AC`3cYiY*-X&f`1%MB%Ze#9I)r518&-6aikm
-%4'aYXhG1i$XN"mqh%$ccU6BP9-m8V'%35fIZEjM6adYfSld1DM#raJ*MLJ&'XSS
-2LrC(S3ME65dY$E80%Y+b#)&Sbf5!+R3bMm!Nc2&4(-*%VD9%HDNhIlM+U-(P+)N
-kSFTYCP8cS5![H6Z-cP!K3diYmRjI)Qmb4jK+G-L!Z5j"*5IR0)dC#raUr5r[SQ!
-GKllQN8*bYb3Rjj[UmBa(h`(a)9LRj+aQ+,4l!+5liIk4XAe[q%#iX$30`F)JSFk
-i[&i`h)cmD#)FDSdYiedGQK%Jd"CRd!!(9+"'%mAi)q3mY&#-2dQ0BA)N!Q)d$+H
-M2QcBK!")8P-J6QQ(BVVp6!YPRD3Y%P"X83$bBV'@e"1UL[#AZ5PVD4T&#-F1!Rj
-90,%0U-$`Pc8afQ$5fR!6AE@Lqj+'@P4VJ&2%JphN,Jd5Q-BU@-jRe9d9FRQ4"l+
-119k6krTfk5+F)$k%`VFCS'Bc((-`,,jS"%iXlJ5FR8DrEh&[Z%QUj&bj!kU#-)q
-CV6B!5)RN+2)K@-k%eNGZUL1-fFIUi&!k9qc@'%BjM+F$8JC(94BFKQ@hTCFf08B
-Cb0b'KHFb%$FANi3$#*L@1F*pTe!pF4lVE-Jf%2!CB2)R)(XQ++ULc3*$DmkZ+@E
-RI1l&6p$5Pp-,T*qkPMF@",-QiVK,$Afa1)N#YNfP!aF2q0*CeKS96i9Y)KNh"aN
-3*Y@K&5*3)K'Iip)0V8Y*X9Zq"0-)90Ji'4@h&G1Ki3-"qVB4Z*4Nr,@LUl+LFM*
-)&XBMc@&1K-U#k'aN)P3*h-kTQLd3r'`DGPE(#'IJL[X[%iPZh34`1L!6k3e56c@
-Dd`KDC$*0kRrN,5)edYJjRP!TQMDa5d&$EbV1()!p6aE@F8DLjpaEB#6)$M8cjbB
-F,+SS3ZhF1KGAXiP!L3`0[F5%V@HA3*CV$,dL8lE#TkDBQh"B0)&M1I5UjJH$G!"
-eDN%`Nk(d$'Rb"P)X!&,C*aR5E56iYq`5PCk6"b(fGl8Fl,AdX82XXj0(eJYb"N!
-'@EHN$'#$!&21)1Xq*`%Q4HKXU'[&e%lr2$4Q),@,)A"YP5%c)hh603*2-(JmL-T
-GP'd#V6J-0f2EG(I`NbYYU%)&emR9a#`B+SS#(H-[fNEC4Fk,M4E'dRk@lHB5maT
-UGE,GCM+IX'bh5HS%fDkmVMd%F8bJQa'&X($#XI"CZ,r1Bb4a!jG,MQHX[9dL#5M
-6%NRDb1a06TJJbJZ-N!#6M*!!HeK99VSDSq1RJe`lGGaP%cY!'jQ+MIi4)RaQ'&l
-l16&C)ZkeZAELA[Xf%IHf1N08&lf!kb"cl,R*%5$28Yq@Jq31QVEVei3Xr(A1%$2
-Z3H!F4C)rG94p'q3%NBd*aMkHXjmPm)f)V+-,I!Ye"'@c"Hic`HHXkY[5F3ke5ee
-`ldheLJTh((+[b8f4%5-V9FH0aK1#1F9K%[+-4e`f0Jj*"U&Z3RQ`i5MVTP!DBX"
-!&f#%bB'Kk(%B-Xc,MC+)&'Jm912XD9f9bepB(E6e"T3CXf$fI"P0%8YGNSI6!p6
-kNLd#P,LC6@8ZXQip!VbNL)8Q[3Qdq@eLRdR(qDpc5(+,dP9F-9`AZZeY51DqcK!
-dqC-3D$)Bf"9BU+1&G[@9d)J@K`*l1ZhL#B#&S+!N$E@$a8FSLl,,Sk(BmbdaUlh
-3KBqje$rTG8c6#6*!F$lc$!8ApjI6X6"!l9#Zl#k0lYN#8HK1kpChQTCRU@Q43AX
-5UL)mqmP4lR,2!VJXVcR+Hph$3%aQkjqHBY5HGM1EYPbSJ0Bd-1N1F[BN8bl3%8G
-L3mf%kTN[-[*f)N%k`%NGG03`+-`XNd`&F&49D)T'QZL[Y!HP-k$N&11e#$("T1A
-@bFb84!KVE+2)F#3Zl%l9$,m6UaQHFXJbr-iK#*''TdM)$X"*"QqdM9i#m4cU3f,
-[m"388e)er-la$%fThJr&2iQ%5L38N!$lKd-mXCJkN!!h'U5+'k3mV*`-0'3Kh&Y
-*S$IId98p!4rk`CBQE*Q,UL!!M&5j!eQJJ`e5Y!%`B"K9`mm1cm"VeR$')A3fr#a
-HLiGRkHh1N!"8NBp%k[hTZjc1[hTh[a-J[TPFY3Z#6)bJj,qlFl&HMGeY0pi58qa
-$ARBBkJPBT0NSeJ`rQhm'VeRjXlKNcNE#XV2-F-[BSb&MF)I$F,Z4G8D)*"A63-V
-0!$1JUP+8[ejZ[)r'4ZR$3fDlM46S`#80eDAeN5RQDh#UNcZKLU#LI3(CGG!T*pm
-NjhT*'@)4PI)#!Cd&$SqJ8Zmj,)+Z@S`Y'UV'rC@"#mJ2'4NQ%[V6"m*LMU0`SY6
-XA+FcL*JQHLP0ej@4R1a!'VY*4-2*B3fU)T`$9&&p[T18K0"aNF#kM@eSCDi6D)L
-f,QrB5J"HZMM&E"f*`M@fa%T'GK#M"Jk+53,Vhcq5XK,`1h3U(pFQYHXkEC*M)MN
-T`Q@f&9[R#3N3)VE#`%Q(*#@C,T(6EU[f-3--Rk!PIBA84'!`F,c-A5*DhVS51[F
-Q,128[1FA,qk#@S$Qj)cYfDJ'JDDQ-DH*1c%SM9feP)LD98Kb$)qjZhG59)-'#k8
-Ek(#mT@R(NQ`lST!![4dAh&j#`iKJS6#BaX!8rE986Qc&irXQ"UNLaf-r"HS"aaS
-ajbmpNN%(B#K22'$CBiKDHX-j+hTiX`3mFCLMJE-hq3JrX-MYpH9!XBfQ5,&Y('S
-KTcBF8Z23kjHERjbC&f64VrfK-*JJ3`fU,$3f0aF(8hQPVeM1PIEUUDJ8cFlTC,J
-9Ff"`)D@rD`4!5$BTk9DJp3U"K@LT55G'eX"F!X(i0G%5dp!d(--EbM64ap8K3T@
-05IBa3Kr))&A$dbKMC5qN#Cc'"!MC5eNFNrM+-BQ[G#EaPGBN[U**a2*+pcNQ85p
-2`L*2`N6S3(SDkcL5iZ*ATVL8#G#&mSeJFbQU-(`e&YpFD)q1U8Ki5NT`M9T(TD4
-["+hAT8KlN4H)I!",Gl1PScYIeA@QEkJPKe3J1UDVh($4"b2XL[*BDB`I85dZk`6
-lCil@jhQYce+YcqYDRjHd2XrUI+CI0+Mb!@LULPeIDhK+!#AP),fi)*``VdbpK%+
-ZAS)#qa*)hp-Gp1i0HbDFc![L@$IIhU-NeKjpCZ64K0JfmYU@h&ME2IX+Jq[J1)5
-0*m24#8AB5!Hrq2CF(P85@llibIRY#9'jkR`i0kaF0Y'"a5jZ(4C0Z&!%*jTLGL(
-ZrK!AiNV#*qVrXLdK4UiX@jaE(EQmmXR+IF(Yqd3&fiZaI5rEER)2BlY*5AckhhF
-X@Td326H6'h2V2*GERbcE(G`'3A4h-'cb*X)4qB,'hB8,'LAaZb[,[PbA%+00Vcf
-HQiVHmmVHi1U6@P-m`ChZlGMX9")(pVaIYr96dA6BZ5MAE-,3[h`jq'L4f-BQfLC
-2Y0Qp"GZEP85ZSAX&QqJb0Y'9mN5rF%ad$l[3iIiF&cU8a2,Z(kTXSNNfd9DGLHj
-a6&4dHl&G9"*r#NjH4a0P,2F`PZmPPV0T4ZAY2[GkE2FTL9Gklrq5$SJa[8eL1Kb
-bjQkP5N0!rGQ%dC!!Q4pcVm2&Q**`Zar)Ce0HaUDmNNfC,V8apVG0`!Hl8ZhHK#[
-95Q,ATEA6D0VX!"6j!2E3!F!N04F()%hEi#l("B15H+KRCAL*"l$(F3"(h01aq3K
-B02Rr[('E2'3f&63FNbP"eIN58LZk85%*"i+QI#4$lSRSB%K*22Zc[TFC'jBa0JK
-(XJJAF5KQcSi&hE"VBqieZ$DQ*%jr(RpV#3GM!J-8D6ZUALe@%R-kRl["MZ4e1T*
-lT504f1%9XdeEP)4hp,24fq5"A[d'Qd,*jDGT)1,&$F-b8FITq("KNj*)REhq,AB
-!!q`!kYN"&,+$MNm)LQhHiQ!#TU205[#q'9r-fKi%idf-m8kCmA('bMLa%PeZ9a+
-V'c6raKMq1M(mASRK%JPlk(#`ECf5m2Fk$fli9)bc3FDP)B,*mpG5m4`44X"!`H4
-ZebL*GFmrRQ#X(@#XVCHRY)J%GHcSjf-34@alPj*il,BR*M+@QKK,RBbPKB68b40
-6k!UEfRSPq0BIIN'+M6CMiiaNic*V*bU*RrpAfqVEj-*$C0E1P`E1J)X1Z-#&B58
-apipr[iHQb&JEPeQl6mT#1Uce+X&cejd,PX"DNj`a*5C-9a)c(lN[mTq`pN-P-Iq
-H[bfK)f@$0$N1rqFb@i@MqPa*K)ljYa*6V`b!6F48L8dH"j1+f"$,PH"2krThE`Z
-+N4%6@%3-I8%#"rq0VIN*kH$GmhlJBS#aJ`$MI6r&*)V&b&m&``VEiP85Hrl2R!3
-lp"hXd'YPj[f6D2Ta-"aPfd#59IrMcf(+i"6JQ4AV!GF"aVLfX1QcB$M#YZ%iPMm
-jC',-H*UBFINE6li)GZ`42Im#pV*0b$$260[B5f3`dN($[Nm10(i5$,Ha,5#88ir
-qcjQ-@6XBXfSG'5@1JA[B0M"UcSp2'BP40+6U0QZhUjXa5JR(2a-'$T+HpLr6pB`
-"6l1!i4Y#`1"J%Si`pXq(hfI$lU"KhbF$Sam,60UX*$BqrqejM'af-,+T&B+!R`L
-6"fQYZFG`8Q"4@,&HG&eN`rj#M2q,-'b!JQMKpb-X%cc0-X%hj119KLfaB,f5f,U
-Qk`F-U"#622IY'hH`j8VLmErmkNQ@pAD`V&GV$diGKiX-fMlP5JN0R"eEI0ba58`
-#F3krF(iR!pj2-e,rKTh8JbIP3B%*Fem+pc)fY4#E&MJ)29JN-`'(dPIRrL8lZPC
-fG%NCJ#aF5p9G3HT"0'4QJ&aHR2hQVpNN9V**,(1!Mi85ZHG4PGf&Re'9hHe+F2i
-ENhj!j(kPPV&ZK`0m,%6(HqfXfIR!8cpRc'XKjLe`!)jJXF`B(0C[61[2h%D$SJ+
-F@KRB@#J09`!EB41@Ml,&ed&FFXrFrlr"#`*Bb3KJQ4eX"2IB5IYNmEpYB)bXCBc
-FX34')X-GbcfFpKdCLB2,VRjmmhK'#Z##-FE$KVC&#IkYfZGm&)$VbNS',TEC`B@
-$+5$air'9cl0-9mY!a3iC91Lb"4R[rS1(meKQDD(-XN!#&JSE[J-3r2HYLJq)T*T
-D-I`iK[BLQd"8C`)JUEUeYrqB@-%BTXJ-+f)NX%FQ!*!!qEelErXYXB)GD93qdMe
-rqHeIcq64hmrNmE8cZDRrpjS5AE@)L3HjIKNCkVFN*J30(NXI9'A[@iNSel4FAHC
-0["8m`L@cV)cLhMl#Ek+HMD4d#Dk[609BGLEib+iRGjeE-*cpadq056(bC#(lm)S
-V0K9HAABNDTf3!2+Rjeh2'dl3)Mj$0ApbGh(3PiF"e0jH0#&BVBB0(Ac6,TrR8Yj
-`80k3!2M$lT0R`Tlc'*jChR!jZDE)[X(UFVPS5cUfa#i+A9KdZY!hrf(@b9Ieeki
-ZZr`dVLE#+qlEP9GHc5F%IBQVbhbH(!`TE!erRFQ&K$rX+MU$lI9X1dV"&4))%&'
-5cd26#(qphT'%4@B@RFNj#3@[ek'3!'QUH2Bk(9@1'@!NPCDh5-BB9C&0#rMJKEU
-Z8l)5rjUX+U%+P4Ld4l"+9$hf#&5Md[P-6,Cr[+H,+q@,2H1()+kd+f!DVlM5VU,
-4Tk$)iH-eHr4lZL![U3RD$4lY'P,LqN!dU4@(eE$RF[ZQQ42fQ$f2r1EP4!`9Hfk
-Ui5LL6YC&(rRTlX39,NDf&#)$GP!'&&r,,pCImaCIA($AiC6"a2AA`Y(0ZbB%,bj
-ipr$HmJiHMVSZ@Lp5a"Gba19QG)D)If)4X8MiYFq+UB2eL0$YB0@i$LE+%G,epkA
-VEHC)AI3R*bhG"X9qq'kM'(Qi-"bjh%iJ*r8T&3!6EQ-I#BLhlBk0TSCD5A`qR-f
-F9),LUIceqjA8eTqXhcN[GEH1'HeMYSErSVh925)8dFLUD'Dj4f"%mGCF8Gmm&h+
-Ae&cCpH)[lQ('38Ci6e3iJ8l$ZIalA-9V([IMp36hi$8I&Bkbh-Yj"+pXVZ$PjQe
-0j*bH0*TMU0a[K(--UY,p+,r$pES1S)KR4P(YIj0Nj&ZZ0-%SB&X4Z!01Rk[Ni8"
-JSe1X)iaZ'J*(c,$)$%`QjY3,!dr&2PBYYMk8E+ILU'p"*$BEjS@"&)FM3jb+$B#
-Mc@%iJrJPNS)!H*im$$0%@DM!6!NU4h'%mLBhZ@Vb$hLJBfJkpf-j[lc8CEB%6,&
-Ba!#MlhaE6GQU8#X95XXef%M1Yr-0Bj&PXdj!1'ef,"32'#$+R"pUBFAAJV%N+(@
-&i!KH1qY1*S`UYp9m'B$,@Hj"0"!a5HIkki&'GYdRA'mBdrrjcMY*K)3Z"UJ,5TK
-CKBXRA&)(4Td1QN)DRFrc%%PPf+F0BpB,H[jm1'8P*hPbNfSBbcPAQS1T9-aF,X+
-"a&f"68("J5V9VPfYJ!dYAA)I4U%[*95dV2C!$Ad3H+d3KQT2[(0RjNjbdX05FmC
-04#-Hl&[`CF$#+LZmh[GPJ"b$)H$CV614pQ-hfH)f$(b4pT,SFK'kG-kkNjbL6C8
-d82HLc1D2BAmM%G6-LFBk!$U`MhA[hYpU`BF8G4'$@9N*NSIK@YT-5`FkG)jp(M2
-f9Ndl1[1Rl"9c@9`j-N&'A3hm&SLC$)kABE!qRcf("&$Cmh-[Na%epdk)&RNV&S+
-$$SR%2B*CH(rBJLMQJXm4*2+9drRIF6Q#0KB%Eca+l+&Z*$HAE!`NHijp),R2dkX
-"J`CYc6686-ZdHR1#ee#Sa,3XZ,DKQIX'KXjcLkPi9c6f`9eNG%-90Sl!0H3'kf3
-+2Yl+KD!43lk6&Ael'88X3(c0R$8@jej'eAdIZ3Q`S%T(e$Ec&5*(PNNZN!!J@Sf
-6d02YRRR&GcH%2AG58Fd#!i9X3j%iTRPNqXB4eE-M'Q2Afl5[1bkAb+,6K60r+NA
-LJ%XDDUCC@H6,D2C6*B1C[j@Ub`YZZ$UIrX!f0N`$)j&j$N)Di@kj%Md*$lCJ3#Y
-S3%`F@qQqekJKdQ"")9A[ih#"6-iXSL+kClDcBUh[e&f%a&'#i6TlVL!'DUdTZdX
-L"Y50U#T(FBqD'(2&XPF$b31iQ8U*YTMk4XL&$Gq9"If$dK88IYa%696l'ZPEP$d
-A4[fXl,N8C6fKcSDVlQlTm24U1S%Z#bACZ`Pd`'R)"'G5&)#-,"kmP#C[KlM@Rf+
-116MBJ%Dd`F@*#e-eGN0d0YXkmV5'#)F+XV54L-`*9mFSNPkfGk)q,%5L-`d4XL5
-8F(1UdXqZPcdB&SBVGIHpXmcC-L905je05m1TfSbX%Kqhp3J+)E02YCJ%DS'*lid
-aQkib0d`04De%CPAI'+&#DZSB-e5*'BKSF6#r@BIj*S'T4LVCrcfcP+pjVbbGrml
-(XC6hr'FXYC-5&IHdDE%dD6iL-D@"h!kNkN"8U&$'Np8X#'d0GE,1X"Q9%QIV&6`
-N3*Fe'XHd90eTDE3+GY%T)%A8,L!&"EbdS0!+me15'rH!d5H,m##5UCJ-dR3+%GH
-`&F1D6'L%[G$FcU'a-G-f3lFBIli6KG*dN!#)ZQ%XrFkGPdPX1h05UMh9Mdc8jdY
-[8Jmb4+X+V0)[)c%R1H15+pH@S$'UD6RY*G0A#kT'5XkpF*6bMGp5"lA(Hh)bEad
-@YX'02b+lq5llZ![VG#r%0C'l189*`mRNlXZ(q[-EaAk3!24&6''3!*Vq2$4[IA5
-&eqCI1%5&a,[c4eR#'56d8Y0c'jT@DNDFD2CMmprRTp2Q@RHqK5AiN!"`RTV+6M5
-[8l2Y@662BR0prJhD[-+G[jmPc%$##@V'ldFcNjV*)66eE"#Aj8%dX33V%Qj5XhB
-AQSHTD9U&CKlE[&IHA$Lqd+)B8f'Ldke9PAI!cDqQI!Y%k(U!f(FPG`pA98'cdH+
-V+YpL+cjQ5d8*TA$,+)AEIFK@%$[89e#0E8FqUXVI9b#kbJUSf*5DmSR@UJ)5i(e
-)(4&T4a6E+*c6P6rqI(*4eSaV03A0@,L#)N08N!$32UdLKf6NQ)UZ3m%RT%`i4CH
-S#6YKRPQCRdJPU$$cF$@()5)-88aqiYXA)ICEk9[a$d%Ie)[m[$"8C6KpjS@5$qr
-QH83*4[r$Ze&0*DU&K-[9M@4&cVb8D(*!8SkA,)iN&VBeQq8LpQlbbcae)1F9mB!
-V0kVJ"p@3!-1R`JP4Y36IT#*5e"aUa%Ae2$9-SPT+$BfSAUH'8e3[8D0C4+'lD(6
-!A9p-6jJ5"(+U2U61UPF#%"`Tj9ele`6pHB4iK$qVjYrH@mdY*c-JK+D+$k@l,-+
-P,[%!95hYrhhcC[Z!Pp&JQA!0!pIiUU2q@(98J50eSG&XbC1kVB1b[HkN[jJqUJh
-pr+f6q-%bU,biP`UL*FAmXpG3!A)2A(aA[H5+qPrUM5S`5#`8&J)Cj!RJJ)(N%r`
-kHi6&@EL))T&p@'c860+'3bHiX5#2Q0a3JkXCI)c!2G`2h-EUQUU#2(S3"a*MDMe
-Y4i-F25BI'Lh)5kHL,Yc8*%1hSf!H$cd8a3K&i(i[d2@GU2lS"M"qKjDIPKj5CT4
-9cXQ%`c&e4mAY--%pUcbiZUabRVb0#VS!m2NY2TJcNSH45Ndj(P(blJAQ-UCK3qb
-fGb5iJ9"42YKfSUXS2Be9q9Z-DSP5YkfXZ"m*b01QAPSJ2FhqS!+lfdN6(+$8mlT
-6TQ+)J(6""GAG)V%)aArXYaGI&"-+-"+T%#6YUkaJRbQV4eP`R@%UCT8`U3-IR1F
-(+6JFj3'rT@rTU`$iZh@cTm45S0XSj41(&FCM0mJp0Ni2L+"#cJVfd1[,RE4&Um,
-IL0U2B,#A1GXV61P6Q0+A3S469R*DU&JUf9"LTJGb5'Jm!ZrkIbK4FAJq#`+hkGT
-&IFQ2V5JV+0bC`T!!BVDDmXU3!%D+[PV6P3#"&"T08X5P)(d+Mr0Sm-#0DH`*FYh
-B)VRjj4TEf`1pB%%a(K&b8db(k-X24IX%9k!`QYP$0V+P)V3b1kN5HL1j*%S4pA$
-(9YaEDR$C[E&*4F"$D$G!kS1[PUEC$jJaN!")jcbFG1)X-r363Q%Ja8"bRd*44[4
-T2')J`SpEUli-J)`UU$%1E8FJcdp5)#maRDl*L1Xk`GQ!UMbR**Il!9C4X'8TNQf
-9R,50RDa+C205'eUN$3bjJA,ji(jA6F(,)+QbLKQ%qU#B943R3P@r#@(*AJG3134
-5"C!!aJmKMD@%cNBZ%4(H[jHU,)E5U5JZA8+c"G26K-)BAKmYH&P!j3,[VA0UjZ'
-("9k"IUT1Lb`,&CNUXc@-hEMj-a(*'N-l+e6c*JYihP2Ad@FCdr#S+fb!kkeeK&$
-&NKjD#!KXTl!8R-hm11i8,LEPCC`jDDa+CZC(SjAV$ahelbr)aFYBm%a$dK9L53p
-Gie)eHkRK+C)E*q@%6$6ZSNV6$A#,D2"3THKSThk8ST!!N6Y$bU'MRX-&ca"*`B'
-f&ZS8-S$Tf8YTM!dQ9P843kUi!dD1QXSZUNMM2b%8840UC"HVi3Dq0&'"Q49l-CQ
-Me"8FfK5*`"SL0(NUFZr"+iaB8+Q@GB-#4b8'XD@Aa*DSa*Ejf4*Ee1X5@e3,X88
-p6Q`KFQ1*6dN-8"q3!"Q5*cH+jB6VH-3@!h[),2pPCil(MbSJZXbj@I!-$9@RmQj
-51%#i2QUaV9B20$QLFl4,C*pkr[q'IBaYa#$ZlfGJS%8HHPR&1i4#%i1H`-1+S-j
-T+([GId)#KC*6+!U$H4B&#ma#&BpKFUB8h#KCN3TQ+#Lc#@N3#LMa3j&f6lI9&2`
-8NcQ#aQp#CMKleV&+'Y0#B9Y0j4p$iEJCr8m2YILcXYd3L'6PEiBSKPl6M)S8D@G
-Hk!JbE50qc*L)Q@Am-*T(BU5qIiLIcc%G%dhR`4Lj4MpiLe9pLS3kj@+p@YP3,mK
-$c4''@R08EA9[ak[&[CQ@UqEITD$"-af&[0'$Y&#XaP@S"Zb"@[J)i'0cHKUa3A$
-FC!X-ST!!djV+0D%kQR6!pdP[pZDD[Zb(NE8ICd"V%T!!Lc2i4#F$8bMi0YBlf$p
-,UXi4DN9AE5KFS&iJB&c%il$N)JGZ`S$9)lZ#pa#!SU*%HR,KT-`Pa'$9H3Na#+6
-$l06$$&khF'3AQ-NQKS@H359(-a@kcDVURh,ISJmi$9QC`hQ28*dINb[&j',kf"3
-MfriQ+p*Y%#TQc5pq&+V()+$B2@M"6b%jG+mcD#2f(5++"1i!m!r6`ciB%5d-a6p
-#8GL9lm2)99Aj2P$f(PG0j50kNaF1jLJ-8YS)44"Cf[A4ZI`@Ha3UZCa$Y%&5RG8
-h5'QbdS0C)PD[8$JAMLb1KJ9SeYX)eN3J#+K8$i8,&G*EUFUZ`aM3lQ%EiP*")#J
-3N48iBNfr&X%"j3S"$eKa"Uad'[ZAlSifYFGJ9MLKr[$Ieah,XR&E,e2*MdTU,L2
-Zb)eEMZUm9K4VD8,*e[J"bcS,HT!!qGI6Jk8!E*B"hG6mYU`J&`&cTaLRTV&9hQD
-2)S@Q"5L68"&m'cP6MmP&mq*BkL'SSkGqY2pM&%kXlDaL3C*)P$8Mee!N`l*A'5N
-0`!6m+P`8YePHX@q$F4k'@N4X)k5!'3HfMA41(Q@L1cLAZMFA)$!p&[dq(Vh#NMH
-$Q$E$*'RQ+Xb8FU3P50%Eb-AdP03*#Y55MIkHapMMXkSTHS1C2CK2'*LI$5b*aic
-SQ9&a-`e*$f"JGjaHlK)%NTJd+4Vei`2le#JU)`'&),GAQ(Xb"F-+f',QlGQC91`
-NUP1J+38Z%4XbELBK(K6-b`#DUpYL!"d%1*EE"##iI,%Z!&`q9aH-!Zf)%rKE2LI
-JH06@mRX*0!C3I@Ij[H-fQf6%'RP!jm*'2(T,"Q2,C`Z,dI!DfSK"f32-3*--*5@
-3!!m%iQ8!%k@KM6D"BAT-SA@`r5+QMHSmcq*"1E03m*i@3+GJi(IVQ,V-SqNA-DR
-a`0f'iBB80R5&9C+FKUL0)5Ffcei+["l3FA#RVJp,AA[Q1!T5#ESUXk@+&eRC*jB
-%f2lTX!cBFQcB'MU1#`1IG'Hh%Q$,jM*JDa4aR3#E0,RX!BUS5Fm@#EKPRj!!J&Z
-fVqC!YJ&EZ!6FF190HL$Eh#hbX)`JM(mH3K!rA[P*FDCFr)C)JLTNH`D0*N("`fG
--5lPlA&Hj@riabYebKh*RpM"ADMEC(pqJU4+VjZC)Jr+[(iF3*bAPlFH&5e$`R!e
-*ZhVhii#NhSeAUP+F%GZ)eZCEe"Q'k`)5-UU0L0Tk#AbaBN9(U6!rZmTR&P3qmm&
-HN!$ACDP)C3C+),*`kd&k9)4+jQjN0mTb&#6$$&TKfL-A`V12#[X&!)J)L$FCbKf
-N#B*e$hpb"D"2Lc`I[#@a4LdJ`M9$$5)b3h(cffZbPYZNB$`P"q-c(-&il3[fB,a
-fNK5-,j'm33)KK@HKD)[T(drB5fF#A6+[Q#`2%BA9!"RSA[j-cB(Pca*T)Z-qJi*
-U4kHBUAS)'%iSiJY!QFX+cS61%T+!"hBq2X44E(18ZD)2hBTqkjc$%5"qV$kpMi)
-qZDTiKEfUBQBp3(28RL4h&S-jj!b404AF96!ee)VK(-G`dV&K+JC`(*X'S'VJB9P
-D*SP-L@c&QXTj+&3[Nij@1P+BdPr32@b3!"FU,rQcY!rpAl0e$Mh'd%dqIlYZ)6b
-bFKHA6@#bJ*D3!-ef9)iA4'!SfTL+balcE''2Xqa21h!0(r5)eG!4%[*3"N)@,UZ
-ikE-bB8r0Y&j*L%-L&KJ8T%XHZR)T,E"HTpLH%US-$R+IK*r*3%[ZJ""Ujk'UmMA
-P`qcP4G!Dcpq(i23G-N5kUXUfBpYj9eRCA&GCCCCZ`"`Dq&E`!5V5m2KhkA8H+25
-%&&!!R8!q#P#hlBTDja%MchHL#N@F#Q9rq#5UH[-IP@4Z6&@9Gp@0dFF9-Yc[MN8
-bLSljBakB4VXESX,"8(@,U1AFJXVZp0hTZpQM562Z1@`B3-A21GG34AUKb!M[aY4
-L'j!!!)CQ2a,Ud-0p%T9&DJTkV0kZBU0IM$D`3Z+fc%j2)d-TL33ET#*3-Y'KQ4P
-2-b*$K!,BLZK)81`0Q2206h[9djqL!%-mQ!99dL!$KlL9K0,cb$$lSj+UZ$3&Slr
-1)h85R8X6U)id4"a6U#R[JUVdmY56dL9DT#SHNbr5K20IPNc#CH[08CfTej5[TmI
-66Le'J9(lE#ITiM(1*`V-B%bBGkfQmMbQd#*P2ck,XF((f0!*0TadX!'&NBN+#f!
-`R-Ifk6"#N5+M0fc&a1"MqmmY+&Z[Zd3CJ-QL$pN5eR%,D,1jM5f!B6p@63[N[m`
-@D*-LShl+&-`GJ@G2N!$BjAPIQVjR'URqr"PN8B#(qlZSmLkILS`m55FS)(00eIG
-km$1#Rb"q#SqAcBX2YZ2D*1D1-4k3!*qP,Qap8*bX)0ilZNHK!YrKF,3)"V6-Cdc
-SNPb#FVRAEZl"id(,5R)r3YDTl0+TAVq3!&3!3X!!F(+cQ2%6K4d#j8r&4@5+VN*
-D%%3[I4C4SH38!5"DiUY%X5+9p)K"&TaPL6A6dU%`PQ6ZVkQDPZkHVfddP5V38[&
-PS4C(eEqYU&D%)(e"Upj0ULarH*`CpRBbe3+NP@`i3flIY0!aKA9ISY9p#98fUPJ
-c*!5YFGT1!5S0NMlSFBmdVETadk,LN!#QRM4'UI&,X)#FRcEm(%C[6EJ34@CG)*H
-!V'C(*FUY+2`*aS2&!4JQh-C'4P)Q9ZNH'AT6"Bl33q,TTB0P8ZFPe$IUH!`X*M#
-F[k$FLdV'9H9HN!$D'M5'J4JHC5L8L4Rqb!!mE#NV(kD#bZb2lj!!#YIA0GI0B!G
-)Nc"HFY(Vr"+2)5NaLJShNSZPQVZNiGl[T@Y$Z#BM88dSMRNq(KFehiim68[2HTY
-P*bHb8e%J+RU-F6P,&D@ikd9ZqLr8e%3a109i(,Eil6lZ!`Mbbae%IiNA#LADcPJ
-fGmNX5pHU'SH#-M)fAQ$L*iH)88F!&B9E8[J3f&)C`-Y8H43"`&8%#jV+X`6BX%6
-j)-b*4(!ERmh4-E*+eGIXB%-Z@"m2MGKi')q0[PZhDKi9dI8GKp#BXU@rN[k+B39
-e09M(05KN"`r`4ZeXN6d%!FAUm'Vf#!5U-Sa"b81#!9#h+Kj%bFf"&NCJ6XENHPN
-!K@+'(Yi09P%A,5cJ(C!!Q*1L+QkN&+Pd&F,@IIBVf4-Sb'aLkNC$(qq8h6d'L*M
-!k#BSm+B0!$Kk69GC`G[di&AC6)i+)c[V[M13!*Vj[`lGAI!f!UKR5Y2DUllFLD+
-VU21i"&bD5EQM4pBb8$%iJ#)(5mK"c69EbY!&ZFHZ3Qb6kbia(K8)pYS!)p9D'9c
-%VrAa)3#$@6,",P`b`8U%LZeAh&Yai5B4m*&F2MS))KE!#+RFDldECMY3HaPN9F&
-4jTT(+"aM5B"%"`3-`#K36f"JLr&D,lm&`&8[E5[)h6!E881bJaY$L6J(-GCAPK*
-k8RN*(mR+*Kc'MBX)#JP&&Jjmk@dI!C9HHU1p-Lk4kD3hG3djj%J(SBP#iNLSS5m
-EA8$$NT*l9jdRjZQr-NU&QA5,0RehemP*2UQD29K-STe@IAGr&&4Uf5"9*)hVZdR
-*e`9BT*`aXEkpF+pZ!53eH)"5cdAJB1+E*Rf,`+QrL"iI,AVNST-9AN3P9+c&i1M
-"4e,ficTr!!!aL8&%3e)$!&JL$e80CNB4%#(MlQ(rEEq@U[6QllUqZClQmEQZUhU
-UYRT"md4f8MF'l-S#[@iQXl2)RmI@mT!!MZZEZB83`KAYjjFGF-U-L%k21"F1%fZ
-5m6cVC"kh%&l2`RU%F(S$)i6P@BI4J)%QhD5EI6-HkqrIhrrhG4dJ[lXNlb8[2`!
-9GeiNmb!b)K)Km3!4)JCIDC6*@!`rXUpC!#NQ"l"*#+,Cl%(J*,2SI$2R`#a&,*A
-JHr2q['r##2kqXb$M29bpVCBKMfMd51[34iEHEQL4%lI$KBTBl(HrB-@$B+jGM6B
-rC`6lfrd@hpH,T"&%q"T@$+410j!!4@%JAKK)i3`#k3*IHS**R#qRYL)J,1e[ND8
-i)MNQ$TH4Gkc21GlS(r!2!'arf"r(cf9eDh-FbU)b'T3@haK-Y,,iV`'IKIP!,"N
-"+lJF*P`kQB3*Qc$Gr6!E409iQ6GlL[rD&Z&L'9UPe)!-6NmFp9&,I)b,MkK'r0'
-2c$L3!%D,Vr@S5eRd5mQY!)MVa183L-U,8M@0d1mlFmVaj4C(GiTKcq$X4AAA&I'
-!p[[1M2*!Trk!0Pebe'9ka'9mR)bSmU3+fLFYXQG$KkpCR6!d@iYX4M$G$"!j40"
-a(8+X1Pr'Q(r8j[!Eb@*YDNP'r3plQY9D+[kSEHQZE8#1@mCY-0`U)p6I"B!Jc-X
-3a2PSHBJ%mT!!XA'`f`ZS-51J4KBV+Y$IJDAfE!q$%F1IXX&rD2'8'%'93-U8GA"
-Tk@*')3Qm&''F(5'FeAQqX(aVpf53!&-A#,mrbphGEhR#D5b(%QaejY8H)pR@$Y"
-iZI,)4H@4+*B'pYiI$ICh'5'("E$ZZGXKGHHM(kPD3A[qrQ45@H!A#mlZ-T)#eLF
-$V@%$j6#bN!#6'Xc3EQY[E2GGBC0&!P%VLZckSM[5B&R`'6PTYTfJBXT*HpZ*3Ri
-iam&%0M)T-8dPTNNaR9cZ!T!!-"R!T6RXX$*S-JD$rI2lT1TZ'IN+JN3A-c+mi[4
-d+(8k&[-P$5TX3)XRN!$+kJ&$qV#aF6HVTKT[6PThRLJXHCI[Y"K,"+`a[+AYY!!
-kUEXS,fZ!P+ammFpDe0655l%kIpBP3AkkPh8[e,UeTQi@&P)hQMH1)JSESTYjXBQ
-8mjS-`i!#MQjHD'BPbN%a`IdX[R63X26SiN+Z-Vh!4!(a"M'edV4Z'kbI9H*N"&-
-c-Cd3ddQT&pDk&jA#UXUKQ$l,kT2*F"F*AMcbX#*i+Dp6)IPB3$llD'Mh&l0aU(X
-j2-r&m,T&h8D9L2V8d4"[-)ZN"ch`UAM!EIjq$4)K*,"Ymlb9TR2E,GKd+iXAKYG
-Yj(1QamZA)@$mjPa1KJ8S1+9*fAD#0qDIpiR#I%MeCh,5m#509&X(LeX0#EL3!!Y
-q%KI[3b@jZ#G0G'P@R@'H)T8%`6d$``'B"'KPm`&8d*YQSP@!*BmZp,YFT3b+I1q
-*4)&ArBQ+'CfKmJSAXe+Sr'&-&+T(VmV&4+AGSmY[Y-$SFEQTDkk!e!B,`4ZBLU!
-B0LP#VN6e@h%%UPr)UeKFb2r5ULp2UcLP0Ekb8kRkBMT%V5F''1CjK48&LJ+LC1L
-j0N2ERER6jqHN+96[cVR!q%HlfbRiB@ESAJB*"bA`U6+@N!!#dVLlq$XmQKq*0R%
-!&VlZeCKjFLl0aEF&ZEMmjccf5j(h([CN,NAa8h%TL"qAHZdU#ZDCMC-K8LX39qa
-Vf,3p)pAHBep9ReCHV6cf9H8+jC9al+Z[ZT9A)GVDSiilU3lHSLrFJ%$UAf6-DfK
-$e6!T,iE#l&cB`L#b19NkEQ[XQ#iYD,[['e-!ZQaE1`[hFZr'UXEHM9AkZe$p@fR
-+jJ-)$DEmb[`L4$LmNBA,bT`!iab"a`1X9MdMDY&9&TSf'5#ba1*-SDThHGX&UEj
-fX0IVAP&Hj`rfqUZEP0IHBei$JYfmS,`-%E[a+$-@kC8h4D,28A!94UACe5,Y-mq
-#J#L(Na$+Q9`1XL1FT#2#Ci$Y!"-6K(lJid1BC*P96YQ@'+6hK'8lY"THBJ*kE`6
-e&0kJZ`5PXe`&Pr%Z1X"p`&6S'-C8hrKNH0)1F[fZE$h9m2A(a3B5cK)V3$K0Q,4
-GQ"i@Dd94G1FF6(DC-BpZY#,lVZ6`hiC+K,Nb#+%"AdQV3NM-M24h!"L-FSFb,#S
-5+M4YairjkhY3%GTE5-p2r@hBUJ4rGNTFeh#5cAPfN!$`,Qf1VZI!IQPcj%0-U[j
-`!%NYQ%2Nc"m1q1adV*@1E6ADh4)[I1KN03"8Dihc[H-)X1d,-T)9+NkNQ83RXjV
-M(5*&`3NJarK[$p`@T[CIFBKA[#S1`*a+Lc8b-$DYP@4Qif4bGf&m2[@XB)D1++Q
-(PjQaV[brpe&XV#LkHld)33ccarLFDT'FUkaF#-fp&+Y@ar("j!qh3h19XAAUSPi
-8X`@YK3e'(&kFh&XIbQqAFcB`U0A4I$!@bTIM9Y@*,PLC*SEAZBJYa[)Q$MHiS#e
-%E)P9LV6+rmArLr`2rSXHmep3q8r$I`(mTaq8Y5#&C!RZ-bbEiAce-2i3Y&#MX#)
-*&K3'VE%Krm-KaC!!DrlKd%%0H3HRGYQ3!2m,Ldj'EJbh+NQkZK31hbkR+hMb`pM
-#YRmiK!FZ$Z1BZ8LUAFTb1@h`j'pM#pD3!#8@bmMLj22eEHdK,("b9kMVR@+MN4C
-!A0V&L1VLfl#NfkJkNa*Q`VG"X#F!cC9E65fN@M5Th!C8DkVPVf&TXES&l@*)69k
--FTSJYLj@9a%!#a1LJ2Dq-5#kSGc1C[H)MCe(2%lUA#ZTFlQSFrQSFefQcLAP"C!
-!ZdB`p[r'fi4Zqhrpjihc&(lAe9"Up2rh5bAGc-SMEjS@2#SH5A3AVhMN%8kp[h#
-h)AB*C5eYHfUV+XN9C()j$#-CI3-pPK1VBHlX40Li@#DS3%`UR,MD,0p!2#E9#Cj
-%@2&M%T@&ck3&2*b%0HdYmQ0fi)MH#dQ')+`J'jbJj*YKIV%8N6L@$dr5i9%ekSL
-,9l3N8[cah[@qT*f!Q6KHHdQ"QqH3!$ke$UCmL8b%%FbP,U9qpR$CAhj[LC1k9)&
-MY[k&bl'BM+T)2(iKMdR)(H(*h,XbZSJ#h$$Jm5VTH)!2hd9BLf3qAM+6Xq8FTkL
-rQjFKX(ZQMm1qbL1BmUdJ),5GpjR01#-48!CMlc2Cbh)kk!p[-@Lm!S9L0q)%Hbb
-$#bH)6ma@Z-QZ&*i8*qABV4-I$q$`2rKNY"S1,(m!161B[)'Nf8'JNRbF+U0l3HT
-f6!DI[`pJaQEFHdCK%Ik*LIM%Q)4VjdD!r`r(F33A"5$22GZ)bCf+K+9p,2B)&fM
-EZD))+I%b$V"`j"r`jrfX2C9(H-8-,6QYX$2-YZ$2CPJJ$XY9q8a)#De6`k(SdU)
-3e2+pkmPKF$d9q#J9q$8b(MMk83H6FLpe0aPTTFi(!!*!JcYV,rkMaL@3!%GIeYk
-E,kkf,B'JYmhJB)B!,dCIr4`aU2H0Hpp&1$jXCh!13&lBQ-%(EC'"M"`1QD"$[&Q
-l)emFX4cXN!#U)BG8$6e%PZJEN5qQEk3i-Z53!,SKKp3GFmJDI52b4[T'LU0$$UN
-GFNMYN!"$e'(l)'R&LcaFVc3qK%ALQ9QdF,*jppSGp`&MCXJ`iIEb(N)4Ga3r8G@
-!i@N`%1Y3dkPm6MFG&TP0L'aLlhU2G@DT),HdElh[[2Id8Uakf)kIb[lmSL8eaJD
--N!$k2CK1#Ca)Em)dbYRG%hrfiFpU`),l12h&6'4X(pLh3a`Q!@bCJlVD"k2D$P2
-HKj[Y2qBN'G`V%Hl@JheBKV"jYB(Z'PZaqmhHFdd-"pV8C1S@+c"IrS`%h,G#cE%
-#kH93C3mcDhhM)&GP6-*kTlLcpjh(ClXl4HkJ*GM-LJdiHPT@lPHfIJh"Re'FYjh
-c[BD,VfMNelekGq$$iFSAe6X%G3-`B#Y4h(Sh81#'D'T!k3c*iH#q*45G4Td!`I9
-AQlN6S)KEVe,#G(2$b)2"$SHZEdQ(J83URUX!`1[NC9QBkM[[R(,je9jFl[A*8#(
-dr(dbpHZ$hAPLJVYc4J)dZ!QPm0m*MN-(3"&qpVXJVB"YlAKadTFN!1[N@kH4TMf
-0"&'A-GrBYI!0ISQ10SC&*e!%6EMaSV"110Sc5!i$#0['YaFMVhlT$Sl-$QIPUjZ
-'Kr1bF3NC#B,HAIk9FBEjAHHcmpXXFpd`mcd!'di8TPcRFA0JX8,'4J'EU-f&`22
-hH@0cfDcF-$#V,3E(!*%di,),%rT,[cXVI9Z0%!UmAP`5p(@!hCXb'hG[!U%ZB8*
-0!(ijJmEm!'jH(0fS9K3#9b+([b35%NM5`6fa%+!2GI`"LMR-i!FZF`-lN!#FB+"
-LXTLb[lZKDm'Q&(!0Gcmi42%&DZL4PYL,8MUkPQ'Vdc+@(44CpABGMQ9PrEemG9Q
-4I1YHGFPSF#ai@Fk-99F4H6@,JcBBFA8YrY4`J'@FIk4%XN)Im)iI15a0Q+L,"!4
-a`k$,Q3cdkDDY'h%ChlMBc%ZJhJFJZLR2,)L,iB("amUAAUUZG*['$rpi(pb9BA)
-Fj#$m5k,cZ833&bX(+-#`DQY1HJUmJ&h4AArU0VhEHCN4!N(Ja9EK*PQ9'RN!8ja
-Li6"jf0SN8TqSpYRU2C1"Cq3NJDM,Vl-4!LXCUpl,TSeUPSY3dR!"-,$DakV,Q*K
--4I)D!#&Y5bFkri$Lc$Eq[E1aml%m@2YaZ&$#U$efJTNL2Ji*8qkim4a[$JR"F5@
-3!"CKMB-)b!J4$Kq4%6F4MiY%1Ui8Eb5#FJ2KjcP2FI((q#NU6Y,(VZ,Pr&&eFj&
-A9i%9r+Q8eAAUiiN28IS`N[LJdBHTa)F`IDK)I)M3KpaB3-h!T&ZU5e4M,1#1XXM
-9CN`M0%hPQ!(lR9L'D[ZVbacG*Sc%9i38EeR"!5,rZ"(BdJQMFrhk[T5+-Yh"K9m
-`hANbC3Z&Zr-IGN`'QHPVkjL8D&S!&Gaf%L"Tr&6$8l1XCR25efc%1EhYC1C`air
-CP@ElN6HJ4VY)M6CIPMUc!IHD-'r%)pGYSJe*@3Y4Y,*bp#4Tfhq$VP`Z3R3K9!L
-lM)8p*I1DfrT#BNd6f`#*ECc%0TA'6[H5f2T)E(G*E-8N0!F*l5i*65@4pDU1K,"
-1*F3dN!!3d-U%D,)*S43J&+mLP*k%8-b%8%*#+%lUCSrDi-#H+36kfcIFJQ0IYkI
-9S#,bEYcbPmGIL[8HrhG60VeaT"l&-1qdq,Ym%kPEl!`l,Blj'hb5FUfad@(KESm
-'1YS9+EUb@XV315R[#pb*")3'eF$XBYM4XH,@l4FTd)P8PpbH8#!A3"4IUA%p`"&
-@J(iD%cRKdJf((,LYXFTj[T-"D'aaV,VQp$RE18Y,GDh6%VA%DQ-ah03j,5!hHCh
-Fm*C8+kQ-q-'kre"JQPb)b5'-P4S&"hBi`GHa%lah1l0,LZ),SlZaF-G)Z'%5kia
-k'Blb5#f3!--k15e`K9ikPEQU3(!MaRN'Ga)2T!3M)MX9b+lLU!F!BFQEiV9bL29
-J&hPj[hi46r`lq%a&Crref9J9UJpL#&#9LpM1J0E,&YF$!S!%32KEJJ268LXQN@2
-ZFRkN*$c$hf4aT&`kr!TQJ)3&L'PbAQ`BX"9rY"UpTjS+9p9Sd8-%X`d#CKa%SDN
-4QTL8%R4QfKJHqj,NZ,D8JSk,p,T)$jCL)`TXDd!CUqR`&(l'C+EB!KDQD",TiBe
-VFHPYTaSq2q*k!!8JY9e3+AHj+p12eH-D#kTcKBeElZX-Fm&%qM%lL`35*h3""Jm
-ifbp'2ZPQ&a5jcA$j-j%e[QMr"FFY0%KbVQUIrTN)r*&J``FdphN)i0JLR+XHRRP
-EA2ba2TJQ,fBe-)+Q%GIN+L2TQF!$%1"M+ehXSVm`mcC8hJM-ZKJI#r6a0KiCME6
-J3c0pQ%AaM(*#cFHQNH(Pe6EZ$V'41r[P3p5Jjk'q"rc5i--bX[48`kYRqI+a%6C
-ehVaR$-GQC-qTKN@EH1@p*RZ-Im)$5$AK*rRVXc)RQr'6P3Mqq2JIm%hb"r`#$k'
-$kCrYdSHIX$cVKp(l*K)E6,MialjeChpN$FJf1rU0Z*0%YPI6c36Gl-[`6I2ha30
-aqRLJ`$HPMp$(T4+j#KrEk)&LHS$9r`L4rHdm*6DhR"l`d30la-*)Lf!4m-)V@&k
-k+G"0MI,3KiUcdBMlTQJN46GRk3C`Ic4-BLd96%YMqi+GM-d8%%%I$!3TC5F@fIb
-QC`!-a@TQJe%mqiaiFElY("-J!m"jl%$E"GcB6cAXhki3)aRCCpJCMMAX)"2[CjJ
-S[IrM#f#,[dALAFl(i8mEMVc'MSB)&pCLF3mYGX2dPq(#fh&KCf%qfXlJ!J0(!!I
-X2)P+6dS!%`*S`-2PP!cD3dHAR@SiA-TJ,hTa&kQ1BUik'Npi@@RGRQAi&dA'MN[
-l$&H@RB0UXKB3iQY`30VKMLXU8P5pP4Y9'ACdQK9`JRLrUH0)%`F35X@1ZR6*QL'
-A(L$$3CVHXr*+j+V'#`a6@N#j*!SYX9#i3'mZ`Z,QR2cH3'`C(I"ERiBE&5N(J!b
-aCCjHC9-6T"$X!(&@('RL*'4XYC1V&2pa%e8UIL958Rqi(P[P"q-mLHh")hA+)eA
-L)m3Y*UDL'NaF5UlE,bk1+5mDmBqLDk@3!"`BjDlep0S4kPT+9dp"U![F2Cqq2[)
-!0lF(ZrV69qM6V1MS6pm%HrQX8"Y2[cEbJ!NU+U9k`N41IkXf+k`+9FlIj"0NGLF
-TY#3T)TJVYKpL*C6QR*89c@['GcH6Qcm5A40&aV,ff@%QQBeG[Y(4q(0G$Hh6d4[
-YKF#@qaa133(%3F`#chGbN!$hA45%l(4m)%%1Y'YTM4P-a8ekJKZXFE)"V&1&ffL
-`c-jPjVGh&aNVF1cVl8cX+BM)b%jf@[GC4E-cBT,BC38TDR,dX)L'D1'd"NHQ886
-*AfIl$ql4"X*T,fN$8-@T[rq5e"jj`jJ[-KTabEpr!iH%"p1E9QYQd%%N6JQJL@F
-d*+i8pL%fc!`l'YDakTVeRr30SpY98F,PFC!!,j-GQAjkKKmU5&pKC[j(D)`J)rJ
-"-)DIG6+SFVT4ibiZ1G@C,%KrZmmk1ArXTDSj-6V"*0"U2FC")&`aaNPq6V-kHj&
-`XKImlYC(E'H3!"cUYh##IM5ipkqSi*j#FGH#!HdX"(EICb!L'fmm[@$RT'AMkHN
-8295,Kjj5Ca%#"JprL3VIE$apZp6BH,LHLja[&d`MS"`YRlZepkp!#JFIcr"KXqb
-'9+-XS8r6%f!HEk'T3`dYdIJb%0T62KQlK%QYCpB)l0D&bQ"GAG6#VEmmbDJ#1+Y
-hXb&1NRX$Zp-DX,aZFIE#TE116!)Q9c#C*%IEDE(*!Ac8`JG3daVl@i!NIeFHUk,
-LUN1&8l'['p`34+6cUp)B0i,aFqc)$cB2iRHLU$0&J(-b-$DC4FFCNcP+TpH`L`q
-cK5`X%)"+1*`eZb1(mRGr-K!Blalr#BUFbEhT3**'Z'k41eQPhLb))-"@X-N6rh%
-C8(TY3A6EC%&2!TqJ5hk0MBYC00'`3qCdGZe8`qlVP$DA2T@CA$$I2FBmGfb[fAJ
-1cN*-IPT"GJ"*perJLKij5GX(Y)dZRe-0`pjVDHaBB!+9kff4136YYEdR9GfC+ZP
-iJd%1K1`VH5ZqJQSQMM5Ilq4MP3ZR"Lmm@di-QqiXX)I0G3b&LB,-A8C"iX'-)3U
-68r1h8*4lk,26B)FQ&#Fe1'Cf1Ea8SYQCc%,P0l2+6hF0!LMTeBZAQJ18@58$heZ
-8C$XDlpaM"j!!'aHSN4C"I6!bE*`6DS9mGPj!X("f#V(L'N@$H*q6R*MX**!!A3K
-CGPf-+XUdN!$6aG)3TfBJ*V[2(A8XUT!!+F5THYZiQE$5L')2QT1bFVc2EMLR'VE
-X9-MkipaKMPa!35#4N!$*UdiU(V1YZr(@ED('Ik'1mmFI0URDiJprdie09LQ&hNU
-&CLB%RNS)TahLaNY(NhLNX8@QTQAeML%"5TfL4JScpaDC'4l0YXm%-4Ncflq(-"N
-SBeK2)l!$PmH"bMCc3S3"XQ(K1"YTDqHJ9IB8mLC$q&%i[SR8kZq3!-5[mZ1M4ha
-i&"p+m&!3JUV,cY-&,AS+K*a+5dPPQ1bXj@qR"ZT`-Q2hUST2IFf,D'B[[FCpIkr
-RNL+iae8(1i1G3eG&FDI1b&+TZTcRHmq[r05-ic,I&ZE!a[$*,6D"$4CIBE&E1HL
-1*bF1mU6-84QKLPY8k`aJ@6@Z*)$Z`dM3J"[ZKrAqAPm"4QJ5ff&h4aFYG"!e)"1
-G9R&6L3ja6UTAM*mE-QDJ6,+A*CR@#M,iR%(U!f5r&@5reH$QCh#P,cD2r!@-[Yl
-)Jq&NB'Z6QU3!XKjr0LPZ3eBSN!"'E,d(9Ad2@qXK"`,0RF8@9(cm4a6+0K3qZkS
-jFI$lV-#SHbR0q8Pap3M&"FE9"r)cSaZX-["!16NYM-8fi8qpR[3(qr'2D-,5b#%
-KZTlpUUNi`SlQi$)"d+)QpKl!bqe`8Gd6+iH$lUjB'E[TaNV`mZ9B$GLKT-+)b8L
-9BAGB'Qr0$Z$iPr&R2rlXiL%2IXQP5iCFHT%[M3TZ*p,bFM1kNh8XpYi'c6IK$m+
--$Qc!Cda@cpcaDalV"XeM(`iilSLQ#f"2Pheh'Cb9*%bTaM2-2ieBlXN!i)l%DYL
-0#ZM%@e!32"REKUA#LCD@![B%k&DfGj`EfkV-e*Eh![6-QJGr%#lLC6#QlA3aVh+
-aPch@JfeS4J#RbcK8iDDMI!Q),eH)kdh3iLcJaF(!2IEqj(*53ZA%"!1Sr2eC2A5
-3!-aHed(0,"G+5KdJmc24X+&-0-L%LR!Q&)l+Vr8,J4Nf"kXfCrZ0D1*AjYZ2$E9
-#$9Q*c"J*&@4!"4P#"F@U3&!iM+T%mjiDamQ#IF1YDERZ`b'+D,hZ8Q8m)9Xcl,c
-#BFjk)Y9VU,YX+K,GTCf8Br[`Zm+T%!r8#dB*aI5q-D9dPa8(k3l,U$[)i$HJ9,*
-+PfK8CI"$DR66FPN5#l5DJAFf,p1m)Ue5F4P"8++V244M[9"jX4@&I"cU68Q!pSL
-'V!6I&!LD'b93lK@eMilq"!*GVGkG#8+eIS)rUe@rVLD$Ta59hi@Z!&)fADUlTJ5
-h(I1+6Abe1&"0U08JXrbIH+K,1,SJQTEIXd'fr1AC@)Y`1q5#8P6[6r$`DV"HV62
-(3F4DG#+'%"J-&")Ae`diX)2TcH2e,j6Q!2[J1'FqBN2k9N1$KAdE"KCDi4!8DKb
-BYSm#YN%MJGT$,E(eR"KSX!`feSmGmNZIjZrhr3aX-Yab9R*a44VbRT!!1pU3!2H
-paNNH'&q3!&*6"qJM@+[BJHFjFAX!CT!!iUe`fNTm2Y*#S)!YDj,D4JVa6$3VL-i
-56,c0I`h%4XTpCc4QZcMCI#@)9(1B'lpc8e2p5#G$U[[)`4*9%Lk@@bb2fKMU"G1
-Aak,3Iic%fRcK9eVKPQ&6Q8eG"LH!Rk"51lR")GcebY9YcURHUC@Y4'TqRNCU40+
-$L8hiP3!GX%dK*bFb$0'h33fd`9fr9&e&f`pJqh(H(*S2YCb*SY-c$'(c(rF9Z+Q
-!aij2QrM6Q5JaXEq0V9&60(d)8aP*+@TKBd)Tc1LJ0p4!)a4RPY5#MG5#l96$lrS
-8GpBeF'b(JL43qi,S'*a1P&ReY+)H0UBT"h(4Ar"&jHZN)$B+pF"#JA+`FFJ[Xf!
-LXeR,EikM!VX8"@(SCYa[H5&&)61rii0+S#iq8%FTD5'kp4lUc%-C[c)-bf(9!4S
-qQMU(V158k*UK6HHY9P)G*UQ1P!,fI4CJRir![Xq*d2QRESB`3BiD1*hT'D$`H)$
-J[PFb3G9Cd"5iMcHX!hj1KDQdJ[eVGh3`Z)I3GFI"`Ef)MjeNLb+fGNmi55#eY!q
-#Fca8$'rNB``!a-!INPY2J&ef'F,Gd8TUa8r`rN@4h*HE@&9GI9GqUVMNT46!fmk
-%%S0F1!N5!U[2"M#**1HrCjK3CVJT3-ZIC@&GAPPBp#GIaJcZ[fPB1)D&VrcC&Rk
-P9PQSZ*X5$*d'B'31$Q"S!X#`@Y-"$%"K5P-['RaNP04*'aFKK'eR"mhaPf3iYJH
-%iA,'c`0VA*BF-QH#r4hU'!,HilFR-S(qMP(YZ5j(0i,A(L4$lbZ*d@MMmGRQA-$
-4aDrhrTAqDPR(p#G'i(!RZfYRjaZ2,mMJGHlSMFHRCG"5B)@*4!!D5%b``S5DN!$
-"Qka1DI#P8e$`jBUL`P!aDTb8IENkjRm#`iKP@!h6SEA+N5A+JAA+JA8iF)Gk#!U
-V(*@+kdFaHd3A)98CI9edAGfpI,F&UR8l@%!,T8mdU$i`$(2m8(#2CD@-hN'Eh@"
-d!+h(!NU6)4`UJKjPSdPr[dG'er)'X59U8+CXU3TEfX[ZSid$#mpKNJ6Cf(R-aK3
-9(P8),Y4bH1M@)VYSDd(DQSdD%i%"*Z&9JV6B)&UclASKIe(QJR[I'5+q8(p(6L[
-[GR6YI3IL#afqRi!U)$j1UI2V[HrSVaSJ[N,SLXD3!!D"*""Jj"$"*""Ja0ER0q)
-h`f#IGf"EVX&('4C6UV4$+GkiU-48"AN-TP!9AY4+9BP599B2,H5+B25dM2R[q0L
-`NqJ$GR@-+cZ(kQfiJih-B#2aaM[Bb+)3K5#IBP!6,,$kEl(E$bpkp(pIP"Prhj4
-U662'd`YK-Tc6Xf&(Ya&[l&lBbcp`$#KK)1jQNY-[$*HVPrK$SN+KG(-C8L(K@"K
-"G9BQYRUFQqc59P&NmKe4('+VqQ,HX0XZS(R&THj4pA%i5E5j!aXXB"!dQ!dhi0f
-1p&UF8f9U"3m3PSdc'$GR3GJ6r4%FbM!*BK,%*)#*KNNBN`!Q(rq)AFM3N!!#Nid
--&'+S&R'TmU%K'MQX@j8893V0"63`09V12MDrl*CR!USCEPM'+JcpG-[RA0&0R`$
-Y'CYi-#KI[-#!(``@fdkkBaXXJd-h@G2J*$3HD*KSB-$)b'GFE[2lYLY`$6!Cl+S
-#meJ`mZZr`mbbdi8%Y6p@UF-IF+ql,*)-"Eqkb)kLFJG"N3a!RREaX&kY5Y+Bh)0
-IlH4"0YalMYL--"kZGkFHXB%dJAaYj8IZm3"pU3k))$#p!SkJcAV#X(Sc(qDcX`U
-%D5#%3iSD!#Z'ZbT2[jdHKaLU#SlMVmS,B1aHF8IQ'+b[pBiATAlqN6Z,!IN3MRM
-(qj!!%18E1![LY4%8,icZQEcK3,,f!MI%`*!!AcKXrDL45QYF8FH&Y9)da*Ui)Sd
-8&bL'r,Z$KM9V6cAmd5i'lqB#2#c8iA1SXS[CK*fGK5@`pdRIie#65GrA5'P@1Cm
-!`3H8EX3(,$qf1#aJdkT-KRBBP+PmKY10%26N2!DKHdqirf3$ilE$&YUULd2`YXj
-#rPNm,&-)rh$FHMr$$"jamadN2#FFZ+$"Rk$3N!#fd!DV)TS#X&2Q%bZam6&RRSI
-J`[%1r@MHV%IVa`pYfdj9Q!"VNa+`Eh*chi1d*SZ91R50,K`(3m3-0VZC)&@!3&L
-L3J#5UeF*)0RA`i5@ASe4CC[aFUeibG"F1+dKj1!J9``UT4q2'q[01#UBJAY+*4H
-hB@BXDXmNAl4914V*iZTajE)APF[U,j(BU-iT,eqET1dNAU)K3V@T[*a"Ti)J[YH
-AZCS!1LXZZB[Gh08fX[ZALFGD+HdFBJ'KZd#d'"b`6QSri+4dQ!$(K+ZU5"#R9bC
-44,kq"fQ&dYIh)*%L2QJ4dd+Zj&KL)9I,50ab4H+mrGBEKD[+YM'-fXC$VJH$"Bf
-d&)2'B63*CBB`T6B6l11Db6qGPpBCJ$JFl%)%Rf(fTHq"hMM#A$5%bI&L`8bDB#C
-lB4k2XcVaXjTNTEC+HEA5lI`lEf(F@1j,rHE"+bZLaYc9mBq3!%$Re)+86aVpaM*
-QHj(3"D[9mb5PQF2'r8`rTjjj%+'H&bPaA#Q5p1`+mqND$1J)"Y3hJd#NeRL1rrm
-bZiCmqXI+N!#2RrU0Uj05(`$bdlYm1r-f$UX5Jalb`VI'8@eY*NHX)0M+c59p'+,
-352S%d2bLfQXNKDVK$Y,81A@CNhR5q!klC[Lp8h#a5%'0J)A$*c5T%3f)*Y'iaGh
-+%dk@NIXPdLhXd!#aA1rMe"KAp$35Bf#mNFMAM22V2mqL8kUE3pSYb)8Rh!Z-clJ
-Hk)N[B3a&mYPlN3rajiCE2TZ2r2R-Zj'e[d5`fi4J+H9G5Z+&)`*ZLQM`TRU`phk
-NTarL$VlPEYq$JiLpM-A1T!ME29E`HdieK#paSqkM"2m*0@crj1qmQA%MG6$K4cU
--AK,q@K,j#4)i"Z#d[N3#Va*Gm-XV&'(2'ZIeS4UpfihHIi,!)fY)i#Lf,hmY)A#
-qpHN#rh+B"&i$d,c'RImlVlIhmq0`&!JI[5'iL,-jpXl![3"!D#qF#(TB9&8lDA$
-4-Qj`V4L'P)Fi$(EQdDQZk#SI6985*X,,)pp!K@"@9S-F&-Um[IF14piMNm%YL&F
-+QmP(9KNQ6q3KZ&T6#SNqIc$cV,1Ab5jF)PC0*N'b+V'mCI*MFH-ZrVN00a$CjMC
-1*"FNc!SAqe%YQj9[&)QhQj%@G#d`E1Q"k[q"8p)h(iKQKB!TGr3*)`4*-kE)#+Z
-%#(j8Ih!M*)8NB,(PRVLcRiLC`c#j'FM'chQdSSI8l+Q'd#`)D3TXJ)16Ckpf'Vf
-#`("$)KlmFr16-,VqpCrR4"8hJQH$dbr8PhBKCS"`8,c3bdlbU)kid&Ukd#XB6,D
-5ZbXZK)T'[S%,1BkjN!!0(EUINYSKikEX`9$#[AcCc!YFPX&85B1dN!!l(#8S31`
-I8U&b!Nd`!-'XV@*QEA#!dGE%%&[-3)9@Lk&XI5&LMAD*)@Rj"eh3#T(@%52&m'1
-G1bHF1$,plQ[IYkR$Jb%p(VL($A4MJ!%+k*P*-mc$JT@U99LTk`NfUQBS'h8PSUB
-`0('haf5fcY&"KU!fGXcZekI6H4l8PCLQ*M"0F`V69$,)*U'M$Gk8'))"ke#BTDB
-%Xe4l-'D*#k-)KD&PQ$9#0q"KERZ%%XIR$FaL+TmeqVa1K1+a1UM)6B!pB$jTR@e
-RU[[5f@rp#`$kELCPRV#D3[2,&2e-U+%L6RkeB"J#HG-+!CS!e`5mBU%M(X(VTUb
-QX&&9Jf`8'RmQD9#&+@*f6K1,9Rd3&UhDHCjG#-'S9AZDUF&L'1kh8%f4#D(FG9B
--AFp*l"G[)mN-Q0L)38-Y'cRKX)BKXpXpeP3lXX!2)5@FmU4`R(#4'h8p8!J"LX,
-Z*+F+&%kX#VI0h#A6LTU"*,$`dG@XKS),0*KYdP0-43R&[Qj@&+4(CA+GXLK&D&'
-+d%p&U(%4qJHHU*M6&&B3bU@YUC!!jk$j''E3QLL`0)C3lQH'X(A)N!!&(!jaemD
-!Y#FVVQ+,lk#EBPY+S(@kl8)QljV#B-)TGNCfrp%(MT9Ah6%!V9$*ErjLmHSi!pk
-Gc`6HI&hri"XK-)U(@M&jX1L#K6YM4SJhRhKX$NV&2cRrjJAqK+(%Sfr'm1N("5P
-826d84j-&L1kR93bZ3Hfa'SSYbhZdCd*[[Yj`'T2!QcI5$Y!'8mDkLjrr$3bb'mE
-58Icjd`5VC[*!$rc!0c'FDf`G,[*Li5U)(,[cV!1M8rdE$&0VNC-9deFZRCej&Jp
-Ga*r,EPRrH3aZ5fiNP&`iJE68aGL(!&eZc2#!MCq&Xra+U)`,5&eG4S*VZ@I11Sm
-"@mjlrB$#d5"Kr4Jr"SE'XMD&4!iDa2hUfZ-,XI9`BQfC2RZl+,E'aa!p$BhX39I
-R`Da8Cq)a-r&BL"q$8`*G#%--*3lel+6&)$$Q"IHMJUQJE@kMKqIBj6E@LXHh3Cd
-CU"D)5`5Q-5I(2r+!A6C(G(8VKXR9e5eHcBLKK,(J"#Rc%*-69V#*SB,jT6[a%SP
-YjfF5LrVS49J3QU1@VG4IrjUGql5dK8ED`["4#k0$&UCG8*DN,8`GZe!H'V)`j8`
-dLD2AQiDm0Y11[C!!GUcpU'-[$9PS(cb@KfjI[Yli$,q)8KI82aNCI%J-2X,NV)!
-80(`qjiX`+'ifRXT(i16JmM[D0h4-eflSQ0@-C2VJ)c``0&M$piJCC[#JQ9M&4J3
-QH@)"haA&680"+h"#H2&+6"Qf@!bI5Y"ml$%H3$Dbp6H#k3#,BbUGI[(U-jVSiMb
-J1"-+J!kK+c%mAJmb8%,$Kf!Sq1&PND`J&K2E"3QKJAK[5R-%M4r"$&9jrlM[6i8
-E#hF'4B&#C8k83@9#k35[[6f%"H8,m[E&4G&&&jPe@RF5,UHB4-U*h41[QYeCBJ4
-RqD#NqECA$12f3NI*AB,pA(HQ6f&%JpF'Mj1Vh#iLV#k`HbPLMSfhK`4'4aei3J`
-J#RB*&IEf)q!i[AB-`mVhSbNRP"Fl`r*"QYKDl3YZE8k%3HZ)[5G`a1@eZ21d&3f
-"bR*bi8(eSc8Ff%)d0fEbDSi$%fDL+hIT&C)A4$(*eh"8E!8V6Mc-`a0$8CVT3DX
-`1lH*TM#9j!*E@6$9(L)UD34Nm`Gp$rVELGbdqrDQ"c&XK-4SpMXa5$a8YCq(J4F
-EqQS*`4$bPccmqF6$6kBrc!a+k5+j012bU5i4E"CF226lIdlrD[DC#QP4rMN#J'#
-#*+fmbLj6NE1#ID""[$Q9QK`9%#(qF3-+1kT1II(*CEQV4ZMYdXbi%!-[pHJ$,Se
-4H!2$6*R#N!$j3+r*JfaJZ)dT)j4Z[+R-b)2#L5,Rpcmb8RFY9bTY(CNmA-FeGam
-2UhhABZY`jM1!IGY12*XA6C4S5[md#%e0$NYTDLFJQUG@61ddEFA85P-$deDD1M%
-eD*V"e%R6(+BCQQBacG&d'kCCQLjLZSfQ&CJZdM52D390"c$0dh3Fd`'D6Q%k6P-
-ATP-dlFA84G-q6(YT1J,R-fmQ3-f&j,pUQF"!al-$dX3I1rjBmDF9I``M-)3m*dQ
--[Z*I#6%k2k-`mYIC+2#2&9c3eBfZ4+X[*BBdiQBLh&d16#lAc52)5DC8!@`#Q(,
-p"BaIUderSC2eeCHQVa"CAiXrDjLXFfMT+FCY'fr)(F(`F&pmXTSh`Dr3[E[daIr
-bVGZr1RUaEjDh9-d0rYV3[D-JZ@YM)A)050'!Z!DDHY5k2ekV-U(ecH'MJ86SYS-
-YFmF1[Jc+2)K3[3-TVL*RAVMbIq`Q!f@)T-hV+(Eqr#rL$))2+YKDHUaVK+##DJY
-IS[SkQX5p`ma&GG-5$B0ChF@AUqCNF20rR+fq(KZKblr'Va(',q$3HR(SfM("+[)
-`q("D6a!)8M")QZZ%3LQf'fHNXeGT3&dh'XH!4SYpl2aCU61B,JX4MkRecX%3(q3
-)`Q*P"HEb!T3k3kJD0M05#%a9C(PdNp0E6hV[#48,KDL`j*%+-Gb2,qUiTAaQ0IR
-5i'HN0j*'V`-K%9pLN!#CA((D%kF,TY+)h!&4+)kcA%c9PiLjNY9lfC9JD)ViUR9
--$0NF&m1')*(EI2KqaVkeSh#2eD8aN!$MiF#DN8TKCf8-882TV,-FH$LkqC''VZQ
-bKUjCGNIZ-ET9Rp(,!r`Xkr!YMQTZicN,T`EG*SDXQc+#HP%TfkaNNS&#ZL-e5N'
-G&"FYJ2PkpVM8[S$,S#%V0fK*-J"&B8k2dFA&B*!!fh0kQZ%U1DebeladEEBi6F%
-b8!J(@KM)Kd`@erX&e&B!!`%ALBjTE82(EI'!QaiBbXMMR`'C9)BBeh*+SR`mFB4
-*6)*MkjF`FY#lFVDa(3l!IL0iZ,2i@YXj[EV+3A'`9[INV!ifKSV*r1Yd04"DS!r
-IjX0"d1`k3@0)$@DS)LLrRXPc!%r"RQZ8hC)UNIJb1I!djJ("3d3-'FlFHqbH$1-
-2NM+2SGMJ$",fC-K0LJh,a1"1&4bQFA*Rh@D'G6,b-3cF$e2Vm*fL440BP$aU%F1
-l[1L6Y%86@046C$lb%8J)U8&(23TMBrmYCLaL0kq+!504iF!U#M1r,DSED"`K8[r
-Qjp+(6a+$NqU#r-qKJLc4"4Qp`9!"#E*%%@3SAC!!d8[d`$'#M,j'JJ6S&*d9JSa
-1*Bk`*`6*#Df8,XKA1i[0B`8CE5C"TR338IYJU##e'`P"PLK3M%KTe55%'Aj9#0-
-m5TKfQ''6NdeJU[!FrdqQPL(J0iA%E3q%BmlNm4-R3GRRB!#HdD'#qXp,rrSV&P4
-PDCUJl"!8rU%Z@YE-af*Tr#",b5bq@TDfY*Q@DV68ULbe(l88j*!!PRk3!,E8bN[
-P)9VDSbaY2XM5fl68REDdKjBfdG*@CDRe@)2%8V(GZE5PV9KkPaD@[[$#rdQAh&b
-GYV!8#dX"TlH)If)NBFaKhCLVG@0Q%hSbhCLMC@6-*810@3a38L#icJJQKRN8d0j
-@e4$Q!%LRCl[PQqeJ5lq1,A!3&"+2$"emj1SLJhj2GK,8-XUXmC2AP6#T&FaZe0-
--3)J(S!UEbk$*#&S(`FhcTaQ%b8qH)V#Ve@f))-A$JJP5d+(4FGBq#Q,N5@,a+rN
-Idj,eJ(IpV[0MmFXFcXdViGaj0'1r09fll*E[06JLD"YZq9bM`GjZ+2K!8A"h[FX
-bT--81AYr!!A23bDbNi,VI'kM'Tqj0pIqKA[X2XM-*KhC2EdI$h@+KqB3M$NZ82T
-4%i1Rd1E@))`*Hda1-6d94f!``"rd8)3!R6#p4,S+`mP9-*(`M(,A-Pa`-VBR@(E
-pNjRq#6p6JT9r+SA#d"6BYNS(%RL3!$'m$&'B$##3!*Q6Td++%+6mFa+$P"m#b#,
-(2"M`p3`F9kL`,DFDDM1de-i,rhf!Nb(LFV@M1,lKRhI5kj6qqCr,kA1(#-TTNB8
-q[C,fD3E(p!kT@Zq3!'T0-3M048c$RBRNB&,m3db!DL5FlIhVraZ(#$4m+Lrk$UA
-F`NCF$'A'F%`D["!Nf0VDM)GiX&F!`@2i9b8i4BG$eim1$XM'$aEre(DZZ1IjHKi
-`*hU1r9FZQ9[HY'"BC'Rb"c3[KZXMdT,#C5Ne#)cc2hl%$9I`m4M)2'S*aU3X0[Q
-I1cRBDlD5iTkMAk-V5[lRm,MCAbc'4[,becR8Cb!dSba'db6TeG+f"[&,kc((m$#
-T+G&e!3dJ38CZ*LBDLD!"--%9%c$RGU5EZ2&Mb@"Mi24KZ!#3!b#[384$8J-!60i
-293eQ9")!)H,Z41qeCchUV6QDiPbDSMr+H4bPpJV$1*h5aIB818pcGjc'h,TGU,C
-h9m@f0feT1UbEUE4+%CDTi$J1`lSXba)ae'h8DCTEPc8*B9K$Q2VpB3`4Tb10D8#
-0)rhqSlAhprqqlqph[q[h5TcRHIECjbXGC6i8!I%$!!'3!`!K"SY4,Jd'r*&l2kG
-!5Y!K6ALZ62T$ap*I*G!!((jh8IUV)HqI)L09+T@!bfDfAeZe@$S#B-j&SFbCVTB
-QfHIHiN!S-Ih6N!$hd9')3$m0m2-4*L3R9kCr0$NJqj[p+-Sapcp1VM5X)m3HGcU
-4EX0CXUGlM`eCa)#aJm)ql&V-[H8m`U%1'IaZD"R#2qIF*6-i-Rd%REASm%mZlLP
-b@d+C8i-Xe,lR9lRldiaGq!PRZCfCXlcQ,(HT2"V+R(!RhBVIC82S&YQbS-PPHpS
-jbjX9C*1kp8PKI4)b*pFhBG*"60)2RD8kG&KeD-NXEh#&(#C(12E-mSDmGajJiYm
-&e*T3jPf,QC2@i1FG$&FkZQ'8SB$V1rKj%8(Z6af(X5`-H4qRLBAi@4Ib2R`&Mi!
-J6IF#-3FA&q"L$lXi"cqhKlba2PV3)h5Xm[-fK)(E6XK!D*'Bm0-el+Shh-'IE#L
-0AZSf'2Me#6kJaqI`!DB0cq8$E+JPQ`q`c5Xa2U"%$2!"*@m'6PL5KG`("(`QIG[
-ZETQ@YBm0eT&cM5d*al4rVa8,3PYXa[j,F)6MZ,CaIfK4KLf)6NrQVh+Y3kRiBfi
-VA*CeMKicl%-4hSIM0Zk@%,f#`MPCAHMX+54R$!!8kjeAc6ZG1FMUL+Ybq`JlIUI
-UH'QaLBdcd6V("a"@a`UH)"*Nb6XJl,XI[A3e5J`MaJXBb[Lp&@99lHfqdKUIY3b
-ee,hhrU,#9rjaBLaPh9-S(1-S%1&PBlZM&XGf*h2hH!cj%,iq*"AG31k'@%BGY@c
-3JQhdSiJ&h&Z+5B3c*b`ZQq*%d*L(i4a$*(4)a)D3!&Gf@L#Q32KaPB3aJ)8j,$R
-Uk%JDRM29*#(B)4K2h'i,"GM4GGV#a&Zk%Z+082&kHKV%4m"YlC!!3LcaN!!hZT0
-#XCK8+`,6&@AP*iU-5Nea%CE2eC39PlFV4FUl5XQTdLmV6VcSUm3e$('Jf(LLjNY
-IHAPaZBlb&4R,'R5F#-M6BAUJeh&%Fepc'1B(jBLaIrpECK0cCEN$aPTbN!$&9TR
-$`VV,"[4RNYY3)Db6GQ)q-18d`qef&60!m$fFGZLJY'I9LJ2JQJ&Gl1+Hl(4rdm3
-U-4JX#(3%Z&H6ZGLk#849)%c1#Y!a%3pB3LQBE1E-mh3-LN-5(Ed-L2eJ2TNc5fK
-beNjN5@QB6BF#1%2-rE50bm5)X2LHiP(bh#8lKR3d!3R,8K+BV*KDK03EKd"VlR5
-Ac2V#AE*p2KBr$'9Zla426p!6!8ck"UU'"TT)"Yc*96X'fR,[Jc")1rkB!)4VqN2
-1E6#p$l-TQ0U@bpeI)-51!8!$)S@069VBQ#9bELV)$THYLX4b%i3`RBRPHR60&f)
-CV8f)TEL5M5X84#46*F`%r4$+PV"*G!SK0fF3Q%PBR5MqaT!!ie[SG$["4)c"L1H
-(QmeGLK2-kl)M)!TKa%09Qc%'aeGD""d&l)P(NVN@@jEPlhpMCQ43m,YXbQdAL+8
-0X32,-2e+9P2`+BkS`S)fjNA)dN4JmNYfDBX15,UJ1(A!R$a9J8)KLP4lqbQVe9G
-8T9L,+j6LjmU8BV05IUV)k,[T!S9EAaDE[f5hp!*PMHU!)l#dNFRNNp6XULiUk&!
-Y5)$U-6,X%kK)q1$UA3K4@KQ$S33FL"GfFP)p)Vi!VQVLi+Y8a#(+"q-%[&6a"*(
-KUek8QG0dNqB-6%!Xb%e+"'cbd6'3!!mDUhXR"DYEVK)U1RLDK-2FIi%Um!)B[`Q
-jRL9X*a[F`aim*`CK1C)$NHekm0Q4(0pLKbL%[5`C8iN#kCBL)8S13`ET-!5jBbN
-",4LI`Q$AT#JH(rJQmG3iU*m"'c9mS4PVi#!+H$)RSE"`*k(JpCaR6YUD+(Jp4e9
-1BKHbmiM)&DS1!,*hZcGL%ZkHaiVGb@%ac$k,L9r`5cR)X(pKdB$4dmd1ZL-"M*j
-3LS0b1Xqf5Kd`%++Ge$'qddXE4VC!,AaKYmjHQiiiMZM#&a(#eiU1fah(f90C*&U
-X`1XLH*J0%da@%d!QQKUVGCkP#mBq#%I-dD9h#SBl6Xbp3'blE@K66[BY)PV&8cY
-q,m4!A"($"K++ld&3aK-2ZCLJK#qU#!*b4Sb4")19-k6NXf"IZ3ap*'AKb$T3ajC
-U'fdT[e%LDe-Q%TZH6R5iG1'qL+#-8mq'a)YeZFpki&50,bArqSSC@18(U)[2Q4%
-EU!SriPALEkUT%QFc3S343Nhh6+lD&+4+lckhM"(V["I"H"2b8DV"GAd`LTU5"XJ
-b+(`ac"FK[[$`4C)[)Zj51a`piH+(0$G#Y-344cTTG*kf"4@Y'!LL*+CRB4(KLfD
-qD+&&d%K99&1CU,#T)UU8a%3@ICJa9c+B&%VVHpkdNLjVc*Y@l'E93ZC-UmJFbEY
-CdBD#`AJ$#[X+86fcUR`EClZGSUKcXKY6CeELi(149UNB6e[I'f02MiQRHe92Ml#
-R*r$d6[ldK""flHR8Z+FaG@BC2HeG*jALhBeGiB6B&LX`lRd4YMZ)k(2"B8R(%&p
-'`[B(Rb@9,,"VCNBp894ikX#*+UA)pc2Pj)(LQTH8DJME1(*I[qBV29&44[aFGEI
-qUmKq,f"UF9bT!3Ap(P9@0Z"i@ZiQi#Ac,6DSG,d,a,[)ZLa!BHf,2#f9`ZMA[Se
-+l'RCMQb@"CQXiG#LCJP5UKYU2G*kU@hq"hH!k2ff$$&L#B*Q-*!!XNdk+[RTRE5
-JM2#H0hQ@L0!a61d,,U1MN!#el'XGFYR!JQlh,MX*B+9[5!!V1Tq!P3lJhR95!#X
-GBT!!2T-!9[4Z0E"SkSB"!TCir+P"4UD&qI$9X)`e'D3c$mM65VpRQI+5M(b5ijI
-lmmcVXi*mfSf`4&K"3Re&ULHaDkD2dIANlr[A'3cl,q2Dp-2R$9*F216"TX86!qa
-BD@MKfb*RpLYG'6DK`J8&S@M2N!$pH0GKrhX&4`,rIqGA6Cr8IU[rJ5Yr(IYThiq
-((cjh3EQhlElNSI"6N@GDRflHdq4SHIc4[h[LEhIr6FHIYYrCr@rH[63k'EakrZ2
-VllZ[13rZr8R)C[R!Xrrd,ilph29rMrk2M2rfiCGCTdl@92R-aSB6qeik8&*8E2f
-MmSUbj`Tr9[VR,rk['rrcHhq@GZ[0[*b,Cpr1IIhbXfrmepIq)R[41fmYqpFPrc,
-l(eliTqIrqjVrpmUrII8rIrjI2[hZLXr@IIZ,c'hr-I8lXjBZrrZ4(icpd2Yrj[f
-(MrlpPZrrk2Hhrq'fIlcM2khqc51rHZb21hGXfVcebBfrR[qlZhmljk'jIcAiP`X
-Hl2hPVQm1I1fHqpHZ@[RepIqmiDkCmHQTL@mXATLr2GdJT,Hi%"ccZ5+PkMQ@kDY
-5"fjPR@+G8"SK`kZc96k"UTe)0LUJhJHJ"PNSbAJDPBaaH#2VGG%%mHDpU`bC[L6
-)P`#b(!%5A4JIj[IC5fAXar[2AV"$#8b)1d)KRR9JTkh5XhFIAV[Z[*9K-`HB-3(
-&TY9ZX6@K8cR-ZTh1@fE6R[FC5jPK%bjEE!MG(4q$iQ&K0+[)N`HPR,35-a3*F*!
-!-V3r$dS3aflq`'H@@@bYG1"aeB%IU`lX)fC$cjVA&8VR@E-d0(0'KQ4[@--(F-K
-6di+)e-1R#em"FeB4k3XlS5$iZ@22jJB4&&MB#lHfJAhdkaPE4PM8!Y9(dkQB(f+
-UUXMS%T[F$I3B42p4'U$c$8`G9Pdf'3PBZqRLKC-@'kke!p'1DmYa,BcTIN)Nf%j
--TN6f%G)HMbarVr0@'1Sa*R[jC1SY-MQBVa!3bLY)dG2khJLV'NCBeE$`94@lf8E
-XCZ%M)Hr+'F&Z&Mk#Rbp8l'DEQYf`U5mbGS--QKD%-S8@[EpbBHrlpp[pNB2)GVK
-8fiZ&&Ze2qrQ@mr+"8IN%8ij0A1`2,8*iC8L%EM3dVN3S@'&A)C&)(*Z-IpJ*JYD
-iM)3F(4jXEd[)Zrie@T!!B%4kq+B*24[%+Y3(@8K'2)$$i8JPhT&KbF#H1E1FCB5
-EM15`9e49k8I-BI0#hP@hFiI0`mrRUUTdGCc$D+U61Bb*a(fVH3F"A1%$%KNZXL4
-bY4[i!1*BHje#[""C9T%@&CFTTiU8bI)+Ap'*'N9R(ViU"85Gle4*A5cNUZHU8Y2
-JUhQTiVN5TH4%4FQTXTU'1iQkY),!V$T9GNSj8D(`LVG1GX3)[NFi`IHlDJLq-E#
-YPBRJPrpcN!"AMiK!"`aZ*X0+4Z"45-6%b6Brf*2*BM1l@9!ZiAUc6KkYGET,8(3
-&HB3LAK$KVXpT6"lGhmPF$j9D&GRRj`IeX`bmqli'k)S'G&,`49pjX9*F$P,&H+V
-X4+&21IQFfH`VCe3(2+-%fGKAGDd),Y[2[+k1h0AVY'XfY3IML-j@FNXb&d,#3Mk
-#Y$bm4L-Y#bSM,CRL*L-Y`6T0#h,$VE*r*1eN$!@UP98+H'bmjp!q5L#""'4L2dh
-0cR&)"@L@P8(3MiZrLF6IDQ##(c$DIle1pZ[ClF4QR8#EDjQ#9KS0b*aK0@6elmF
-!M`E!b!-QNe"T9@pd@!m[3!&4p8LhkK%2Q(br0kFUV0Lc,cUN#*bk8Qaa0Uk`V+k
-G*9-%DA0qKi2r!9dEFqMKp&jPL0LY6S"bBEfE#qXhUa(@`AKKlFUHA,ACmK8*Di-
-ZV&pE%bqXKfp`BFeY,+aI5eBRV'SKCFIh[eaaYE%5ASQmRS(!EVBd&YMMCfp@B#'
-+*LDZ1FB)`*hR)$$lid%0`895%q)E*i`-3)CYj!LSqGX6,,d5F@@'+m1Ef)SZS#"
-r5'!Vf9L6f0KBASh#VZfPCKbX-+Qf4U+9&A(QQ3[BT!K)q6jYBT`i0YiiK'q!#q&
-ij8+i%+C$N!!f8#32mh"61+p8*Jm'S3,Uc$%H9Hc39J-9K!$4K$@+d0#%m6S6S-c
-aGaN*AN$'j`@j2dM,kK*,(ZLG`*310XAq!k&11V%J,I'-fBX'+2R5lVVXb3RNd"%
-PEl#+&D3+9%K4U3Yep%6S%k)BX0XeKl23Cc*LYbXpJlP3S`eFqhkNCfP16`kaJNM
-,A[YhFZipElG(,QKA8)3M2)4+MNmffqe)BTZbej9VqZQe,@dphlR9FiZZdj0Y,F0
-bD9T5lXma,hJQ5!p&[S`(YN1%,Vf"E-ATEL#5E4aCqFhHC#lpJF%dLDaTIl!9S3D
-UN!!$b5p6C2hG+5q!b)i*dkFTkE+K!B4ih$YN%N)ID0#%2P"TpRma"CN!!)-3@Y0
-m1(daFrTL`@M"qJT)p9J`6C94)'!F*[CL[-+-SKTE-SR`'jSHU-4U@SM9dU&Ua+S
-MTD110'L1FNkZfZUQK'pehj5M3LN[-%IYC!3E,iTUGrR6K,Z1Y0I[,TP)&(1EPZK
-YUU*24@`Z#mUa`EM&T4[Y[+DcUSPUTa8PR,A8cThe56A1bPBjUd#)dGE9bGa$c(L
-M1&ff5PbLL%NLQA*'*$2$9RNL'l'YJ)TYm@dhQQ*Uc0MBaJ#f*iIVhKK0%K[V@Pc
-raLkN22TPE8ihC$hTVYZ3!+84"3'%a8bJ``Z-6@LLf9T)$6AEk%TL#a'3!#9N2M!
-@2*!!db%pH5-AIA-M3iSp[RTI@XX"Hk%D`!lU!X60ZGZ`9DrBDU@"3(+HPcX[FfC
-&rFjc(+'RL'KTbdCeECIfm!PQB1ha[+9F#kY!iaKbPiaY!3$Ak)EPmGPLZq2[M+4
-CE&9pc&a*L$GiapNNQV5"c0L,BV&6&FLU$Aihq"53!-`NCLKPaKEZl[%dGYP,BEQ
-8ce%9TMM$&p49S+NMaFE+D%-qNc,N5A2Sb#*Z6UA"bD5E$(m`&#KN#KM23$Eh#'f
--U5JFi5"N#JUmX"j,jVTX#51UB3%j4)JdQ14L6(Q-0EPE5+(bm4qa6(2!L0!"$"(
-6!XQ6XG@$**Ul%@$SB1C$kTc(1dFd9+U,'[ePMUpc5L*,M(BHjPr!9"q'M!&YkZF
-CA-Q"EH-1aCPK8cZS2Y2jq1$0QFiPEHAZ5SVbLc$K`RaDeFS+'81K58EJ(3)L-p1
--Vh8*`k%hHT54(iqU,pBNibCPMZq#X64!CSD!C!aTGM`MTqCH929#BDLF!DiX)P(
-`B*)clJC`!`bd615-#RZ`(X#L11Ei@+C@f3YQMdcfh!`DXQFfa,(l!(I*hN6c,h)
-$&4USLjV-`S4kP![A@JLj%qCrNq*IN!!fQ%[rVmhYc1dP4P!V+M&b&j,A`T5*Z,*
-!iqP8Y"HYN!"%RULV-RAeN!!jAD"UkY2"3r8)MN928[+RKkRjqkD,Xh$dbC!!F$8
-FFV#bifKclSS-%KF5H'q8'GHBFX*aMVVb@kK-X#SF%9%",L+"hVT$H8ref1ZpD8f
-X@)mhK#dJPqhc,l*KZQ*L45+J$d&mSVPJX`ahMCfYJ8&e,1rNBKL,KpM@lD*!6*Z
-J#TX[RP1)q$[#3P&("3U66-VKAqBf5qAJMLd4+,83dCGq0lpJfA%EL9+'40E4lUk
-!5#%CkI2%"ZLb-+$TKie2X$#05$*lSJe!Grr4$DJabMid@VEcVHH*$*SHLK29)JP
-Z'i8fdp"BIj%,+QRQL@U!GNA&qKA1q[G8c[VcTETkfRL6e42,%M$5&)8q#G*8S8)
-#%pqM6*P(98&4)FL`qADT5Ah9pTVipZkXCRXQA8N%MDi#j3ML1GmdpQ'M@CfT`p,
-$LH##afA8,e2Ip1fUR1bGfMZjkVHhSETDaj4b62Ma+dj,083"QmU)JURfqLXfE,b
-E*q"D03PS8B%(9FjGScUCi'k`!c%&3Q91KXM3fNddX16bSEr5LVHG*Kh5*Q2T&k3
-NHkj09-M6EA@4NJPbaUi+0&r3L-+lR*@40[`B%j(HV+Meaj15GehR5GIGiq6ZqAN
-elV'#XD3M+8Z%f+'#5GF$"H*!9"hHKcBP0X$%1b+1NmFUGG&ZHM#CbpLZNehaqXp
-T3c`iIhjGl[Q&66[1kprYXPf5(!%f[@'`j8,FK#ZU#9!2f,#VK@IMdPFiKV4NJ#a
-(-b@C3""T6JBccqX)4F-)p@T6d-L-%D6UZY`DAHG"XhmX3F38T5qfpUccl,jJh)[
-"#P8S*8XhKmdr$9HRAKVL"M'SA#Uj6(Q!TKeYE",lp8B+TeaU5PqF5-MK$hRJJ"%
-$3[QZjP3449@,S5LNQ%mFB''6keM!H!lFb`L3!2cN9%hMJ%Rkl+rB29l029jV&bf
-CBUrAdAd*rm3I5Uc9VMRY"CA6YM#RMF!0LZDd%D'bHH'djV52iTb'k4YI*DH*SaK
-38P9!QGdi#!keAZr',GS"Xr$cI-KlENBl`"Yh!%d2FU#N*S"bI,8!b[B$+B"5Jh"
-9QDm4@!6f6!"62FM2r('Q8-T*@[Fq5TKp(3Zk&-+Y!V'D#K-+d@1l,h$8mmkVQ,+
-AQrTe*iId%1+6'EU6@5!(DUS2CfY1YM31)fkG5dlQ98"!*f&ePaiSVU!%8l5r8GU
-Tk`b6[PC21JZ@jS0J#'4M)f&*$D`2X!C46Lb,SI+XZf0S(VQ$'B9B"Q($9SLELcl
-K%%M$0`Tqapbb9Z8@Mkl)X2@kjKBb"+k%![D,QPZZ0eCQf(`(ZB8#BMZ`*9VSVJ(
--Ui6U5m)EK$a$Cmc4RF%#19,ZBU%F+HFUhAq'P*&M5'fc+S30cP8Pm$BpJC[0,)(
-GKPXmLIH%[$qHV59aV(%50qfL*!VAkqlYqE#4Hqm@KCP8el8M9h$92ZqQ'FfPp!Q
-E34`Bd3jm)Hj!QPkSGLN,eQVL"X9P)9mX$LfFqV2b%f@q-h!UHi"$kNrQ5B"T3i)
-44AZB!Q2M32je[4MZf"JIb2rkFKl)(feF"(GN-0H)Mfd%e1S[m@@ZEK@BP!&i%"S
-Z6R$iUL%iXM9LHP[#V+84`,AeNld+qf4)D[BaQ'Y94%ij5*&D%LC1PPa4Am#RA(T
-dK(LH(CqQHJ$#R&p+i@6aQ1&$#pmi%)A8LBU[C1QEk$U[kMSVVL%3@,,d(3UdUcU
-Am-iH$0$J`"#`*&c4`PhaLKC),)h5SLG"aXRbb982GG3Ir(QS3`[SPGC**(r+`E+
-d'V#NaT(X-CC"%TPplr%"(,D'"r*%d0981GP1dlLT*Er1,5hR@rTq09[DSMe2kP&
-q8Sh$iJJ2)(N0&K@kKfA6UDJ-SiZ8+HfmbkjeGD"V@0APelT1SkY(e@A5ZUc)5Ji
-`-)SZ4HYk!ef2UET'YDi9k&SZ`-UkdV3Z0-j*Ii'*F"3IZa[N*VTHYSM)!GlSiT9
-+R)Z2S@MN-cf6)+hTZ"He)@hVJ$DNlAqS$C(-G)XfK$[5JpS3ENYrJS9&b$MCUK(
-R,C@D$$C`ie@V($$E8BhhDQ(e')A9!f3S+$JTSj'@1hZk3J[4Z%P"'e'A2#P[b#8
-b96iL"k)pmSV9J-q%$5,-i$j%(lM#TqcBNc,D`3**Mj%#@V5CGICSRF1XFaEV0&Q
-Mr)NZ9#M$L8fF6U-1TX#f&PdGUZdPZMDKkh5Lbj,S'N1A0G&9EZUmTA8qMmih9*f
-+UM-0R5Y8RD0DCa@kENpdGC',p!-EXr44RD8rBPFT@DV8kiM)L'IT[lP-,&d!5'I
-Q&ApHFV,i!,&cVSf4D)*EA2k6dpGr8PcP1p$HE[59hB4D9li@$26+0NB`Q[EXNlf
-'I!)r9E*S@0!U"q00#+KHHMp8-fTZa'5!lbf-2N!IHaa!m'L3!"RdSZBZQ24lXda
-Xf'2f+d-2jU,blRh`@6TiHfjL+MC`KjKQh!*$d!#-TVhUi)Cq[$R!+i`9FP$rF*@
-+"If)Xk!rVSB&c@rF21PQUbK8EDClKGRMC9lA&#CUpkH94rrbXd16)P`#YEPDaEi
-r"i'RBC@a&`'$cVb0DD),j%([SDY-UD#b-%mR6qj$P5GhZmU!$PDq86IFi%mrI3+
-3!*ReXIPIjMSN9k2eD`8I'kNqQ%12F80mPNLqUal$%hd!E'm%"F3%*KQ!FT@rMB`
-jdIfhN!$i30X!b'-f--md-Qdm)`1GRdR6IELQR"#KZXRe!BN1dijXkNlp62EA0!8
-r!b')#@h2D-rf+Gr#Tl*b`fRXNApL6iK$GL9#ir4Jb8ip#!L4XTHN&+Qjh-Rh9q2
-N,*SiZ@UZ2@A9VSIrp-lk"B8VJ!cL`[AkbB5jecAcfKhe9FU-c5$d-leA-eGQ6R2
-6rA5l+K`%3RhkLFBLApQ!*HP49XNNVMDaDNBm2kS+!PAHQ'b#6+b8JH"AL$"VBYQ
-0I)lbD1i[dN+[KETL1b&%YR9k&[pm*`dq48-H-D6%%G'mPRGpb,V@mUiEc#J6-cT
-j!bP#,Q2KD%hX@8"NJ(IQe[(8X(P%8r9%m[9YkZlK(4Y9@qf-fqTUe3(@Z!2'+YR
-UlI9XpD-kRSVIDT1kB5@TI53&@0C5%jIT+Zd"U("-ZpKRLUMM#pBa)#S[eM(""fr
-bl8SjMk0H8#cI3D0XqV`+cplPmdZdH)eIcYFZpk-aTd$S9iHVR4``EfAUQq,$Tq[
-*H0"c$a'a013E@+$DhKafc@3qaa'[TGKk!!UmEPAcd2@kBja['BN-),AIK'YQ9+j
-CVh,0HP8bilFF-p)R8[+e*,'Q81kA+#Jh2C!!FVTj8r#Yj%(Aj801D8pHMYXB,eE
-6LrH6+Xek-CbLJ-Ik4)-Y%F+-DccAN!"SX#@DBLA#JY-c-(bK8MKNS3U!'lNbTjR
-UQ5HE)DLJNp+a)TM,!E51D'mr8B6'dQAaEAR1S-(EI0hTlT+j4r@QKe1lQ9)H0US
-F&0ZGDNQiKJ),BRY6V3`%F`4STNLaE4J'A!,9I$lP(*XbAlKk+TP`qe5A%""MN!!
-MBRU$XUPDMJUNQ0j[hS4'a[4CY%hF`$[)QMJH9)%V(8!ZQAXXB8+DfXf,FcV)VQD
-,1L#I1G90,&j2'Xmkp-GATBe0`p53!*Bekf0#$Z1TL9!FB#iS4@F4B"dQ!G+TS1V
-#Qcc4T24PiNJKQ%G!fM,"h2p1LJXaFfIm%@T6-kV*YEbkr%Bee@8ZVbkYp95AeTZ
-U,MAbGA85PaC6ibQ3!&A(UP&+DGBRJ@`jPQK)YIT'hHU$LBC8c,cSABhQ,G4%#Ff
-4Q[ARR"G"!*fMaNQ+A891(D2KaV4$(d[&T@UDa-fq,BN'@P!6E!kQGZX,1eriq5,
-!&bDqk1H,'&m-@r)#H8b"ES3TXq$c6T(M(q4BrGidI*2R"8b,)1"2$@e``C-DN!!
-D+TS#eC-#0C3#C8q"1Ti#eC8#G9K(@FL!,`hl4Lj@a9*ZMLRE$'$B%X`ZM%,aSB@
-kP,rVcZp-lFjr#Tr!9#%PN!!55,X+D3I5$U4IKI3$k3FbS%)'J!`!D9)K68#DJ1a
-A)IZ"l!FbTN,'J)`"b9d[*dUNiCJ!`S&cP@hDSi0SJ3"4p,@Qiaqm,8!8[8&Z')B
-6i)UZ#,QLT@fI20E@%T!!pq80-i3RGDrNdk+N()02fR4&S[V8*&39ldYVEMbe4aN
-kIA06Kj5KBcFheDi-Z@jZkR&Pk1M06He5KM,UQMVdB4T0ac5)8[86)9a[qf4kDPB
-i)9U0A(Sfi9*2A[-3a'dV%-HSXAmB%flJNcN!83M+AY6d*iLQ2ffmiH-9dC3%64S
-,9FdKVp"R0HJiTFYc&XFN[jAD!3eLHM6F!Y$RM&hdc9+kS-`kN@#9bhX%Uecqe@T
-BjBTi0[H(GbGArGAXZYQFQ"62j[k`j1@cZ6r-Ujr024M(jKkXP-dYR0$C($AaEf+
-+q(qLV#k(@&fVrB1,9[rBrkkXlL*MG6R9X,UFIlGC(4TSj9-#``,N,8pCmHed1er
-kTCm[!c,!Pp6-35cl@H-1@XCNM#q(jI$lpd-Sp5-q,j4CV3R(YU*"kF*m"`Ua8%D
-D1Nd)6fS'0N9&#qlHe(SBRa#JcP"B-V9#0QL@%(YqUA8Sh19pQj&iJkhiU$!D4F(
-BYEk2UkYGKiMVM)'Dll(rE--rQr%BQQJ,"D3TGj2Nba"D5B-YB*2*6plf-j!!dp-
-q,fpZKDHr[P%d@BeM$bE1(KkZKMf-T96(HA,*j+T"Cc,hEm@RAUS0hY!N`4LH2&Y
-A5(rj1Ek4Tp8EFHjCrMM,0''Ebp%mIHVSMa(i@rkibbDfCdL&S2ceeDpHIIhma15
-abH$Ndk0,4YF'YirD4V0'rq*maqM&dHZMei+6ScmERAAeAi,r'[cUU%hbI`!!+qY
-"4%05!`"bCK"9#bfR!0&XNlIGT9l,5TCD1hZB#YHk,'XYE913!$3%p@jjrmY#fR9
-EY$SFGfQlZa6krMCYJHS`id),9N#P3!JQa"L6SiM+B)45hfmf`$M%N!"%N!!SjM!
-*U5#9!1-Ka1Na$2[lIpqpGqqffrF6cjcc21Gj,aYY0dP,N!!!34!!3D!Drfl3!NB
-MIM46(3956*SD8P%I6-8HU9"'HRQ)$-jrKQAm"P1Lh)U!B$cXUI#*H8eLE'ej(-(
-"Q`c$GfMKiD,1-f,Hi!42%bUJb,r"ZKhG1JkIpC8p4Z1`Br!MSr&V"[j3kD8KVUN
-%bY+,rjbA1q5D2YbK43BrdV68GMcDjFF`Iq`(fJ3-9,@045#lQ*MF)G'MKQLqjhD
-RY,MGMl8[D'K*kFeXE(!AR'`)lVV+h-Zbi3[$4D6+1EJA,G(CS5fiKEUB82'D3`e
-Ph5*SlFqHYaFLE,Y5'c%P)AKYaD-iHmKB'@M9G,CT)"i3pG`KhhXJ'%B(XXVH"T&
-$UUf#BahY3F2P6p##MkF28`"j00hNV2!1-@@AfC3pGe`6A8A8PF"HhZl"4[iN[LK
-X'XD(MJm(2ZciD-0(""rG#AIF6HT1bkc0M++Z&rUU`8e@G5a3&RTLVUqA+NUmi0Z
-A0p0rm*8p@Xj`&e[i2-jLY9)5XmkPDf%YV!`[$-eN,'BSBIl)l6lC)1rDl`i&r9X
-EVp5f"&1m,AA+qampkhDR0kDH6!qk-l0-lKqTiaHdZr-bDheiApe!pkl3eJG+0Q2
-,p"ANJMbc5rl02a,)+UN0[+0TQcB'XKjXaqejUUT(`Pjd&c&fY2iG+U2Nh`MKF16
-Al)K"2R)@Ylq+HZ6Ar-M#hA4NBCGmC$jZa@K(&Zj@MRbE(8PK4`EiXKE@dC([,Xp
-hj0[+NH[BNIIP)eM@`VP4Mec(Mj3p5dI+V2)4,+[X8V3MCFqbEUhCkpT$VkjVpjM
-p@Z(N(H2AA3+SGKXqESG,S)+aM&M(d+Q)a0`9CJ8lL5&eeG(akm`S*Z[`X3,)4!F
-f%q2BJ3Ydi*EcdJ2(aLpbS"'BKSmU1!ik-)[BaJiiLKq`M&rh2N#Rmh%GMH9'GU"
-92K#,HX$FNlAZdYd"E4+r@H5J'a%2PLUY(m)Uhr8DTm-&paQRJpE@4'efB$S"XCA
-pCZAiqrciSK#'Zk`k'S`0E1X$9&eXDqD`fJ6RV4H0`i'G(6SDlrAXJ%#9a3iFS32
-ric2R!b9@(,#1k,0h'HHa!`QU+RBJ+GU"468ii1M6CamecQ8(G2R!p9%2M)2k)88
-Ch*4B15Y+V!SVaS!9SaNV4XZX@!&@M#&@X1-eG!3G0ke`0d!$mBXHEdmQ((HTr2*
-Aa9mZ&+1mV)[bFQlaPf@AE#qK6S#k#G4QFCcER8S1FB'63jad$'jbPqS82CZ3!$L
-JDG2cJ0)Ji'S#@H[-c!Q@"B!#kZ1kprNM09ZiT8fhD6Ufe3G,PCGQpM)XIER)8Ic
-PZ[HP,c&S(&A&`%U`aUSq,UVKMiUB82(Y&SdV,VV%'Q8*0G+Aa#$HC$BLj+%dAY4
-JJQN+`e,UBaJD4rX("[6HiY"%33ZTKmdrE!Lf&&cab`liZcLFQHVfCkB(kIdee4&
-25YefXXlG8RFbXk8"Vpfl[0I5S`[[6+[`e+M#8dPi+KG1`6'i,JJ-E01kR4TJ#E$
-"0JYNCK9F#DTl6IS4hkZKT5ji-UYj6G5QkK*[D,K5((!bIlIKRGV8j%K9'Dm)HUp
-K@q1eV*1elb4A'JP$#SD4LlY5Qa+XmkFhARX8iSD,KQ1%6NT"Y!k@AY))[(E!44L
-0Z82qT%[Bd$@9f*m!)QH[3KG*9hmX[M["`"EcrLZ2FJNfK8`&*e2hqNpQTLG(h,9
-miYjY[*TmlP`le)KA2CBhKhKT3CMU45X-0U8GAHS99KaGiYLJ"+N2r["9SmZZSNN
-)D)+ZQbialBL5CNA5J#E9#mYN&8ZGI6CJHVX@+9f$ES3!1VVdc5#Mdj11MM+1GS@
-2MY,XmEXD1hUfDfhL#6&@*fiq(3`rhZHDLSkdSTiEZqEPQIhhpeKZ!MMrm*,[i5J
-D*([MVNJhK,BpX8D,T(64B`J$iJ&la9[D`EYF!b!X`m0JTF,%hX(5$XdlC$*qC[B
-jmL!Je%4LDMm6BfJ+HlR5V3fQ+bfebG(BZj@m+&Fk)PAD!DAek%TE5HN6'+5,iHU
-8IRMa`b"S2PD9&QJi9(DN6!@KS80P3S#lA(CCd4&#PY`K3KGI9ra%D-T!%e1hJUP
-V%--Uf@GqYlA"&dbQZUPbF`3e68BNkDd#-84Ld4J'pjSD'j)MPhra(6qGcmcIa2B
-fQS+e@BdT`HUfhNYE0rVpbGNk2GpZhb&K+CPec5iL1S+,qSCbqMHUr,Eb'M0eidC
-"pKi8F!F)b$CbGkCH-ACIZ99E5JLqQ"#F%4d-bAYY5'kRafb'j2d9qqpbGEd5PU,
-hIZh!%*U8)la*56k50`1%E,h@$*,AVlL9&!p$ECd6*9!mI&pjA([BF*1#j,,L1f9
-%Ga#L3fhp8Mid[d4S,MHKK1cC8bj*NIh6M#"lQN#[M#0lpA)ID'5[IZ[N)IXpJEA
-fIJm@iZZKjXGERPY15DXpjB3)hP1jThL3!-XbrLrlf8m2I3e#4kFEHIKM2H@XmI,
-5Up*EN55lRek3!',m#c4l8cP*V)e'f'B5J)"+rZ,YeSHbbNiClpNpZq`8[@E%aZC
-i!&Q+i[!&"6'k"dX(0!E@Xb%ieR[,9UfAK!1jHT!!mX'"j@d+eH-%+QGbpMARq$,
-X@M,'["SAq`RBQ&F61'6-Qm1B0dGPcCkIjQ-H+e61c(Xf`maVTL"P'&Ac-@mICjk
-8GIQ3!'k@`VJ`h84MR)eYIlqSe[K!S9S,"HUXK"C)r,+--Yi6+VIURACkc#j(!(B
-+KCl%[,JGb9j@VGdIQVe0Qi38#rVjUiqkq'GaXKS%Epk)AGc&KK@a&0PlA*VfQEM
-VS@eDZr%I68M2kZScrZ0CmfiPX2,QiJ0$'$*0h-U'E&+'E'*$B[+3!+YLRZK&U+5
-p6hr)DrcG3lA'haP,N!#N8N+T`4l02b!Ha4H[QR,Bm9I2QK'BUE#I&[0QHa%-mc,
-KMq2BimCe#+UX`)X&aN8!pT!!I-#1,&TZ4[KH#GHJFXTiQ"KG)CpU1@)f9%fJ8j9
-qhNCkq5!Bp9X`C51P2GLU&XhA0da'G+*q!b#hKkRr@eHRQ%d,lp$&(9ML#mS5Am!
-5GaM,XF4XYTL&@-T#5P*$NV*Y'EFT`@TXKd$+[%6f3pZKb'Z+N!$AcTT[X@MY#'8
-Rr!IC9k[B&k[1QN82E3S!XX9q'PmY-+jN!pjJ+UpN`pjJ+L2C$pAF5U#QCIc%0HJ
-N(Gf$3[(MqrNM"GPcbkPMf6*qilb!PbTNFRN)*!@5ULR%NBY(PVK0YrGEq6$q!N2
-IbQ9"6M`@8!MdppXS4)p"BdN890X!T1qHRBGZBUUS+U@LAXFLAkmlBML0e*D2r4e
-B40@lfl4qifB%acBAXZ!B1RUka*hSAL,NQb)Mh`Ne2'AZpDGIDGK@A3QUKqa0QrY
-3h+l"jMjU$)r5I6bJcVEaJA+fQiKGa"`Lb!2Ema(MQfc%Z%hG44p!h5P-h5QU-Zp
-ea`2STKQa+8JG@&#XM3RkZ92(eBM8SHEbVGkh$B&6YFMXf19%rUFp`K@9q-H8'TE
-bH6@R0BH+RUr[,8d"YZfThB&@G,e*`1X4%-DIQY&*9IK@MZH)[l"9mi6pA9#!G9T
-YVr33F9ji9I2%d#P'LGG)'JqhXQ9r4aV@5[ZUVfTbphkrQN,FKc3mYPLl+8+&AiZ
--j&$ap`-mM*Xlhp$#F-'h5YJD)E)hYeJ`j@ScUPUKDKP6p@S1e#Q54CY-GX0&Z,8
-H$kD"qESpPp-M(!Pf1$cBa'mEZU[cCGE&VE!RDi2(6+#p4&JLAeGGQp*G&d%(Sa!
-(q(lQU!E`hF'GJ$XIS*ef,QB!c1D*&#UVRCNBMm,%MKLVLL)L0Raf6e1YT"*bfXi
-h`f)N(aQrBL`qRq0*mNNVEld*YBaT&Qhq*#Bi`CLpcp18IY#*fG*$UkJad0Vb%$L
-JMm0QAm)9Ep9F)kdjq'+J6QH0d6iES9B+dDkTVB8Z@i88B)[#Yl6KX(J%LF+X#cN
-m(q'6kUZ`[lNU9!qQ&eL&q"3kN!!l*,[dc(c%5pUV-hQNbcUeBPN$Qi6LU4AH"XC
-fqTl'UcCrYNaXYX0*krJSC*0UPXQ9eMCBLXCe'D9L!5bB!&EB&8(PV)(Z4m23KJm
-lZaA`''%GdJ+fX3$-U%1(2P+&Y4FME5"R%`I$JFZ"If&S`6Vc'Mrc!"fbb(&Ba6X
-dDpiEQK9K),Zi9dZ%hY!5pXZSiL-Z"lVL@CIAYL,[%%FL2ad+8kJVC2E[R)eYM2-
-q)U4V*r3VA5EUD2lRL5HU#bpKQ*f'8HL"&-ST#df"Q$EM')KT#fT',aXb#JN@bL!
-3p3lUIN#6rJF!(DFHUY9qB&b$3`NfK@T0`"``!(bkPkQRG10,&1`P3!369+ajUjL
-5%AU"cTF%3TQ*VNh'"aPJmb")I4c'alfU`K#kRS&NkjR55@cJQT!!q3YP-3#YD%&
-9T)BfeVRiiR#P8S$Af3T`(+N5Q"5kG6GYTM4R3L9hp#`0Sj-aG'l*5TQK5aK$jiT
-EQfAS%TQKfd*0M*fh3dKEF*E#c0[j!)#HUcP$II(GIGS2T-[!NMF`G6H`T53a%(3
-eP&c0QKFl2mJQ#iBT%8-ZA$r-(ij2HqR+P"-J)Vc"S@3M9+aiJE%mPiU-hmT3ZSI
-#Lqae*j!!NJ(h[J0b`i'[A4e+S3SAd,$Z[*8d63NKb56k`YkN#%$b#)@Q($a)XkG
-Bb$P$UjFfPUai&k"ikri$D@r@IDa3Dr1NlN`Zi'(j8CFI(E5&Vdm@D9@G1hAS-'&
-65'%J+kD*8E"@[1"U*3I*A"'aCMYMU,hc$+rk(ik*)icR#MJMX$9+mq1T`*5K-`L
-RXB0Ebq)D6`a54AAZ*&&b4A&'+b$ePH4K#!HT2ihL6VFaKYFbKQm$BUq9@Cl)ch+
-JpXmCD[mFE1H)[4D)[CBc[h"IfTP2M%6adSdeYQ!Kh%N0X4ZZE#jMl8%NM0@3!*2
-BVDNXTSQVB2+fBNkL5Q(cTcBf)bfYbMM'Jh5b4T%QcbZLD(+(`RJ5aeJIN3a3US"
-[aG5pRE-Ujcf3!+jr02i63a`YCd4TP--dP6ZZQqbEbrhkZHh)"Zfr'Jie54Q`G!N
-'cF1,BFD'@RE$'-'+e#B)*B9EA+kS$8Y#dV"-94X@aUSL2YKr!'3APS0T)q5d`XE
-4D,6#$br"*(qNIL'9)AaZ&aj2F+IJJ5KIZXPHBJj1F+@!3@-D2`5caL!YVa-S5%Q
-&#S1i@b!@qID`$5U8$5Ta'ekkT%2[ieY8BSZMH0c"9%T3)`('V3JQX@e@8U+Sl1E
-f&1YNbb!DXj!!UYi6318lCPD"S6Gb`F8k!M-X@(@I[(L8ES%6-'F!h!lMb#!$qJD
-F!$lkiK)$MMdbdA'@L!jIiIGqLF*5,8!Y(TFGE'pUHQ0$-,N&Ik9+(&V'hpI@id%
-#G$A*GJaYZbN3`C,m'"#3!-Bd[j@fSSGYCR"LRDVU6TCmU)3lVHc"UJNX"B)!V8k
-D!Xf60@55G+a#NSj459)Qb%D@MXP(P[l-YMN0aF6bD+6TFZGK%d'HmQ3DK86G'Se
-J6d-+"[rQ@IHZBbGfD-NQaYq(kNmbB[a*P4KrjG3K*FBI5b-aRX%%N!"La2JN5E2
-G`p*J*B9Q$k91*2'1R`1(R#5[,mdN'56jE4NLbBXTh%X+Kfd+0d1BHk@%Z@I`N!!
-5jYi-%qD(T2[VN!!5j[(cc6$k2@,dp6C'&b22Uk+3!1GH+AQZX&akD&damVcIe3l
-b[0H*21q)hShkJ*2UhNG&UKrU6NCR8PfR*#1A&L2`-Z3l`)Me$f4JEe)'L(99e,i
-Sj,TA*YHpf1JaJ'8P#VQqV*H4kc59qC!!%1Y*E"Q&r@5F!5M'%FeI)#(E"e@bABS
-%Q!+4*L,Hq4#4Q&cY3QZf-e(IB52ULaqLa&A0`4FR)I3R[i[#CkcLK$j,EUfLU4c
-**22A-[*pV8cQEia#jR0fK@NV+F1F#IkFIUjNcXidNrbD9LjZI89#p1rUN!!f+)c
-J,T!!N!$qJbVTAka5dK!)U+j5Y&RCdY#!CUbe"3H+(`**GCqdBR`MQ$VNN!#Um#i
-&$+KD0NM8i169I@$9I6l1cQkT',mZiU@Q86#P2d0"K2S5qUK"jdBHpYZ##(`*,95
-BrIfXU(93ZST9#kP&)aH&*Xb$#6cG$F$L#2[U26QF`)If(DD!JLhCKB89qLrEAXR
-+N4Q()kUKKc5%'1T*I%4J5c%8`Cc5GNEbTQ38@2%T$NPENF&33kmde#"YVY$SU%+
-R%6-S'Cq5CLJG(bmVb09cNS30Uf-9B!XlY&pU,Za`Eh9KKm#B5rR#$NIIZX66N!#
-8Y"cCkF98`aAeK"rUkp!c4'XL#QHakVM+UX1%i[+JA#%Gq5X%4D@'&C8DZ9*i3AN
-3"H9"Y@S+1c-8L2#b3-4'ZA%U%XPX")8KlQHXTM$%4UF`4$XCGBNDKPLMX0hJ&)C
-B`m)3Dr+&)GDS&8(LSSFKMVl&Yf*+Me@,Kq)f$f#ki9MM"L8Fi9($%A&p`ack0fV
-1$H8e6CJL-JqKL5B@QML"d%5K8fJ#U@X)6p"%h29ifDH%*pC,`a-`*,1"-D,9PI,
-S`K-`-00%@dT#&)CQ3K4A@I"JLUZ@K5LfX4$&+0F*DBJL-%B+AV0!KF#fUT!!E-@
-$&BCkJK@MP'$&Qm6U$!3VkNhGcKqXN!#EL1GVc'N-A05l5C6!aF8-%b9Uq-+VKLm
-8J&J0AhJIX2"&IBj$%VlBq$mPI,&aA$hK#kmF[JJjK5mi%6p@)H,(U%6m!a5qH#c
-YiBYkd`dNi3Z'8++5TUi%JBX9qJi8qT9+S8Fa3S"F,I4&DU'2DpBB"FL8KL6KS8Q
-RhBU+#EAV)85JJV5T89!'@3mT2mUi2J82L!TdT)FTF$#U!R+B2Nh,Vck@9+#Qk1l
-VKI%HhI0UfDIqSY#VC8rGN9Af90QRmGPPRiSlV0i%%ZdhSa#Np)Lae65KHM42bRd
-c)(UA)Q8h(NMNL88S[*Ufa6D&0m'Rm0SYifq)*eJKXSaIAC%S&hI%[IQh'X&@eL3
-aD61)bL#Q6+lZ&T0#CT!!URcDlfeXQQ4BfCbjq6qjq1E@32b%08pdB+YihQYSC%D
-dX$mXRR!9PQkakViZ2PP33A"-f6S`"0D(ikG89F3G`rEmbLJ6RRN!D*IEI3A1a(m
-b0GLL6XT0EAR(&#3%F,[T4Ij!PF,[GK54EBh`4(@B(9Z-eBXP$&J-9Lr1)+XA&f1
-e!b%EKNb(4f$BJl2CD4Z`HI(rSQcqCR%f!ep"lDGHE3'Z)QNdBpc1cqiY%NCX!EZ
-h($TfCpmVXpYT'l"lbrq1l,k@2(D[)(C61LR-IcP-MNr0UEaEF`@CR!Pm`!b2)JN
-64LJRiX-H50HX`b0bdq-B,)h!V"aFBSc-Sm"0lPI#B%Rid&fp60LEjh0J4R@-"4-
-%N!!1@3e"lA)JU-2-pmlF-R)MJVSA'efB@$!QNDiP)RF&+J+,SlTSUm4&fe8AEDq
-JK!Q%D)SiZ8Q"K`k0*JBa*c`e0#I89()akkmXF'HA'Ecr@PeQ5l!p'Ah6h%c,'Y@
-NfPYD+i`*)T3BeR+!KZZ2-I@0I`b9pqNQ"cTX1C1R*rBqQSB(%%#B1VF9FCY$8m4
-BU)RB1,&#*i1fDiD[ammIm6&Uf"%`j@U"[DLq1q6U`e6KELe#L4CKTIVLU,DT5[@
-eZ5+8&+"8bkLC@cTZG#8p4!$f(lPU-%mhL69hIGDBTmP(SK0j&A6!hKr3+%f%%Nq
-GQVmL6i9r(JX0rG'@rNR0i),N0S0VUN(J-3b&$UJSp'MBh"&QU--&MaZS80"R&E&
-B+5#-bD4k`,40BbqG#iUp@%'*5!T+%J9rA3*R,PKUprA&Nl"m%T()Dq)XlDf1T8f
-e0TCb42iZX63jH&c!R8+PbY5V-#$VL$%N0Q!CPERP)cSp-1#Cc'-R8BG62QAE#"`
-p'+-J+3'[8,C,JPETVZe)#UP$a95+af&mDA6+de4"!hmAD!SXb8!4Eb*QXL)H8iX
-ilfKP55GG#b%kq#+@Ii3KkJNb6D`@mbZe$GXbr5h*l5BYlM,9`-bSBNkc+de1Fim
-%'BTFqa9aEji[P0eQB3EFCX%$i$Bjk1e382rarJbicHUKm-aVcEV0'X9YMXe@hDB
-De#Jm4)j6VELI9Z-kafE!G9T4HADP%JGF"hQidpPj[NX&I+cX22ZBmqaRcV1M(ZI
-*+d#(qlc"+I63[21XK`#+iMa9PP3b92V`%,T29I6EXJ0p8H*!afEBJ4jd!M3F6,c
-!@FaFD$pcS4heZ&#9X8fe+Q26iN+E`HRr*lM3qN)eLf&Xj`@r58eJ1&&N'9qf$La
-Cc*L49ED1"f3)e'C"M3f59)LXXKGTHXVE[3M1,1BQHBSP2R5aBeYXajM4RKGS'fB
-H+MApC!-Yf1d%*+ZGr`JEJQb`4bFE[LL"+D!LGHNI#$$5@-QRpkeHEM+'c*k)rhi
-bM%hK4hU*#6Emi%'@a+%B'rRDUQ+,lZ'6qlq9GA*[d&hp#RRB`NiA#Q&'Hq%ifa*
-E5kDNG,c5T3DBKZD+RY)P2IU'jqRIU1IRPpHFrPYc4-XqY@MCJD(J$@cU$3m(A8T
-Ta,`qGhi+H5Y0"+Er[$2h4rhm'fB&*HYN`ejE3"%,k%,3EHV#@e14N!!H`E+N#aR
-3#-N-&4k0J["B`#q$'iLJ83*qql&p3qV*fZKVU'Cc[V6N,-&AI!Nr9*G3fpL5m68
-3ZNaA`SjNY-qqk*FTICHke-k4(#dBlSqjU--9B@E,q0[VhMATQR%kGGP--V2&c'I
-K6eiC29K-5q-9N`RN@C3D8GA1b*DMdV)PiYE0E`PM&@5kJb%F3TjY6ba,+E*(!ZC
-f`a2,J[H)*kcF,-AG%(FY-b9B'a@I8ZRr0@F$E#S+$baDPY+0"1Qf9`j+6'*-JKX
-d,&VQ(3TZC#M,$AQF`cDe*q[UE-(fBQLEkNf90pT0PiP`f"L8)M0R49er[kj4FJB
-P$X%e*TPd!"FYc3b1UB1TfcbL06-d56Vd)"`jGGK3mp-9$T`1r)B5L,"K$MB-fir
-3&hfDi5*H&9*UZcfX$MFmJjH8B[,cCMB6C4810$2-,P'dRp+@QaNXb)2$*TI,CGq
-M[HPk1Sd("&HrC1L!me"fL3bcZK!)0[1N,BfEUH*qcrp1P+T98DH("IK[L2H8hif
-#6m(*UV(XaU(TG`'Gd)hk1VS)(A#qLfPkGHFM#0FFBkM6,Jep+l*6bH4"0F@mi(#
-kDUT&-I-iLEC,P+2l`q'M0#8H@R)K5&2N5q)"8m@XP*-44ZlDR8d`b[[ER,Ud8&X
-(ZUJjPj1lbB4Qc$,q$h9)31Y(Ge&1QcP%aAPHQKa)+T80+S%Cf@a0rCY&Fah&0YY
-(R9YYT@38`kR6%Dp&[1lZd+faqkDFeckV5,'IciNIUCQ$C45kGY*V-X1,JIEUMDH
-`cNN-@8T61b1X-kClk@,F*(V+l8P!,3kb,-##'kr)r-mI0YZk+j6*R8H)IZ&"3Nj
-1a+D#+FI3j+-&YUJ+@2808qMIU#RcbQXU1Q*)2i2*LcjYFe1+iha1arAakrdk9kM
-'TY#4DK8LCCBSbS6[i`SC*!Ta`,qG'ZlDj[@K@JJaYqZ&AUSVCfNP[(Nm[!S)IDZ
-Y%iY%rdPD5[),hL8A#DNB!$TV4k9*6+Uc'0ET5HC&*QkHN!#H4%f-+kb+Q*N&r6*
-YiFa-r)rL!Kc-"4c!eVb3!&ZP1lF[F"m0eJEV!%P9SdKaB@XVdLc-54e-&e#-U#B
-fXHl'-+DFMmD&XAS"6)DGM+2LBNCa-a*f`lJ8K-68U$b4[%UCcZj4cCQDVcQjVN0
-[@Y4EcAG+%D$1G+58+X$VrER+T1P-CY$,3FEUQN&RlM!H)mrZNc(ffHr+XjDaZ1T
-$,QVFqQ3k,DbPX8iea(4B-@FhR61G*EdbG2bU9ZhfK3(2I3a4'3#Hf`I@SY0fY5(
-J9Fb3!$'MK[G(P!RCSQ*F5h6#hI`XN9'(c1-3J@IPjTVY-2Nl3Yd#bP4l%!k2H$6
-pNCeDf&S4$i0!!r'1bYF6-h02j6Aj+f@c06q8fUTGd1YfA`fQNUDQaK6hiA4e)3Y
-X,-"E@NGSkf(9D!f)SXQ"GiL3!&"-3El0L41Ed9)3A-Z)R2)R-9*S'9lm@VRj0@j
-qTGcm#MFr8@jqJT[EP*[EF,08Z9Q+QrR+cAcFA+IFA)HEZFV0A0cm@,Rj-@jZ8'j
-Z`-e0bXe0mN@V@Q'MJ3K@N!#BG`KPmp3Acce13bkI,'LXDe&-9,jD0Xpr#6rV'`r
-Qi8HFAECq0B#,MeD)!(0K@KN[DpPd`[!Qh'cd&BPCC4X(*h6L4N@3!1HB!kd)YQD
-fD,,B$8cJ"JMF3!,,E!)he0k,RbSQUSU*URTp$)Qik(C,K+L&ha3cSrM$0$)9#mF
-j*"lSPA'2Gijh6ZI,4%+DUQ#)h-%lNc6Y3$CrJ31kUG*!D3Sre8H6-2VkEcaNF%&
-e!Lpe!J(f`[R8SY"F5@f4Nr!B'Y)PA#$L05"MLckDT[-K(H2Ta2'VPHr2Y-C+,UI
-X5b$K"EH6bjT5#Ufa4Erd%h,U'$DTj(+`4Sa0Z&cR45&f$"rKfarB"%0U613MT-C
-SK!PB*p[IV"%phL(9e046I&N09`VBNfBM8+e+-MFY`I6[[jNT(Pqk*"%`IHdh%ml
-KJJTFG1,%M`h2RBThqAV&V@GJkJj!ePk@!Z%i%b,$c(M8%h1`G4GYrIm(%qAbcFm
-SkGG9P*Kc"S2`!IA&N!"K3PcEr*UQTiBIfFU-Rc,RFiS[-Mfc9PdJc(*GX#U06eh
-PmP*6iHP58rMd%`$T1402h'4iEXi,erR$mGFe"aldcTQG%)c,!m$ThCR*PSSI2$S
-`h-d*S#PmSbZeNUh)9CTbJ"6fZh&4eCj0c249'jU!m1P52%CmAE3j)B[PrqJDANp
-`kA4lYeNI68)RjbQXPGDm#PLaS1Rj5ZYGbbT-KBB+P@L)DiRM2ai&PN`hS!X6PbQ
--U9peD-2Ba&!a6#`JekLJ)5Vp#%LmT!NF16N#C$0$j9EI`,QpT#BP60d*PhD1'1l
-"#lPEmLPjN3fQp%cE![8)8cpX+28rRAJ%P9jS11X,LmGFJr&MheYZZ[ih-df9a2l
-jCjHEQfELkjRqSYE+,DAccTkT#)aQ"+IhSeqJ!a99BQ1mPCSGZ0-l6p!PlT!!6R(
-Xa*mMGJBbb![*#YEjJQjF4N%'VX-4pE*iU1+C(9V2mHX-TX,%4-0CI`L,1$[r-Pq
-3!1(dDEk8m*R6NG(X83I5[K#K&0V`D6c%XaGL8GBhJ"KcrB@GXk+K"*BN4PY5EE#
-eaBBBRPFrkFD8rDa2ZRXQL)rGH8`,hidEG"[M4hcqMQ1IG,Z+k+IRqEZ2FC0J&9)
-N[N!UpHc9`LrmdPmimaF,ahr5l3r6!I&'RpicNiZNC2r1QH)alN6+hFlS5D%rZZ"
-X8T1QfIqfX-PS[&ec0)&Zde+5F+'R(,S8)h20E3L$&5P*AK'BY@-Sm[3Hr["KZNL
-ZbU'DThb+YS#bep`&cNkKRcC$TIpJIY0bFcc(j#daTa4HpBUc`BJN8YZPK#)r()Z
-NQN$LZ1,)"T&!V4IB0Pi(31U#&q'F1c`i0!,A&Pj%kXp6MdZ@fb8pKJlripjbPBM
-jRY+QSN1pVM(,II8N0EU0k3f5"B2&MmhK"3QA6j)GXkQ3!0,-$8d))(GaadfAM`8
-L0Ih8V*V,Tk#Y`U"05N#fRa`RhrcMP'!pfr2LMHNiMM0%eY)8m$CUR"lX@@T)"-j
-im@9AEK0HGrF`YBq%%H-&fG#UL8Ibk&+j&mrrjrV,G)1,jCe1cB@cA@+G!k!NE28
-FQNG[4GR&i#VDSXbF-L$G)&6"A`IA@1I3`ZXFI!U,CIaR+jBDFXX"((R"8MK!eBP
--hTAC@TfMkqkpUZf!iUj`lUN3UDa[RP``"LC%RF6'!lRPeS"RJKq6Bhr`*RhPrP#
-##,Qih+lRZI)1h6""GBG@$8"ENEK$p#+j8hHa*YKBqCLjEXaYTiFe6-Gc!(RZ)T!
-!LPHJDdVm&"!pNXLf!X4%qLS5K(2,eDE`BqF+p@Hf"P1FUc55Aa%(+8*J`h1RmUY
-M*AAdFf#6Z&-mK@35h5mQXK&QS1NU5QUfDbS9%5Li!QjSCqF%&D6mHRlN+VDBBCS
-iT62'@%dlB@C!$pT9!1RNM%5!8JR9&m4'@a$MBKD6V6NA%TL[h`-'(hm19@ZBJ-6
-mN!$-dMH)T8MehePL,TJ+KV)QTq"$T&-UDEqZUEPbXDM`e`@$%T!!#ZaUlpq6Bc"
-!k48"Rp+YY2dXh)-(aIk%j`jYUNpTaP,EXHb$KAZR[i),01c9$'"G%5D)G@!)ZF%
-6BT&rR3T-c3'-cc*0SBh0&E,UN@jS9cDXj'QX9ifd+35YYjRLK5KZZdS@4DkG'Um
-HZjL6GjT5+YSQSK1P8,[CRp6e+G+h(Hbfb"r'lFfKjrN`rmq8%"(`(c-c@RM0`BR
-#Q3BEkK&Ga%6IV)LqQBNZFKEpIC[SPXCmJPRD+B`bD`RmL%KHY@S4`bTYT"5*V(J
-935!@)Tjd8iYUFU0raaqXXl'069pPM%UT01@3!$P3-Sb!0(+)3SJXJ)*%$ph$C,j
-hcb"!0&0KLCP0f5)bcHSKiaK--C&Z%9`4BkiHkV$#Y*J),NBIdililDSBYY'E!%d
-eY3UH*!VYC%V8K9&A&j,GZq1k,r[F9XdD9G`ZN!"*q4FUd%*TDE63BXYV8jFR+il
-N@lRj8e&#AC'FD-S)94,6J8Tbf""055aCE%G!FBdHd@$X&aHXK5'0UDCH`'cKHh8
-b0HHhX`PX0j-)GQ#@+9CLcZUcKr1d2qLiC[1'`Jl-#0"2Ga!C3LP'U)4q9'IX#c-
-#HHhk4$((p5%IT0%PrR9qi3#Z4,#G'CF!JBMNF+Xr6J[`1faEZZcm+([P8"CKTbj
-&DFH[QYKkbZf'*9Bh%I1D8j8iS"bTH5&U0f@GSRBB2cScIk+cJ166T&#k#)@Xl1)
-c9PN0&c10c%5k42i3L[hK3Q&-CFFc(EBKa)TE0QNAp)P)8hH`e+m,DV9G[&+,*DI
-Q@bklf+AKIDUQih,9K6e0LU'(#+'bRaP'V,fG9jmrJ&50hZ98E6I'+FMI#`#ib3H
-6!$5*NDXX6pp%qJ!UFVkXMQJV5VP$A##rT$5P&Z5VrR'Q*%+1'QA)BD8,RY!GbIb
-LAj48lUh%BYp8*a&25b[2$VDS!JFd@@3rd[ee8a'VL2S%&V%(*kB#$@#&f!N0i'6
-K*&lp5[66"Ee"bZ1aMc-3PkBL3hX1Mj!!M6#*UI!1i5[4e@AjEh4CTMX#C988(2K
-+[*T$cTF9r04Y339HD&5RQ$-LR+93CKCic'`6+ehiKE[aBHS@C-fXCNfBJ@#699#
-!UN-Z[Y6cEj0ERH"ZLEKpcZ+m3ecB5fihbiaaAL3h4rq5fJ3jIDQk#63bK2KHLC-
-JX&*3'k5iaYc8cX%*Z"EjGQVb1LI$ZB9Km(#)G8adUddLN!#9,NCPQac2#ZK&2pY
-GbqFZLraXJp640*fp'MG9TMSP&6Ap()hIP#)XGIjSXD"$kQkN!`kEZI22Kq4&r!!
-%HYP&cj5YmcK3V66rk3@8F&m21LVZ#Nir`K&6,ZKqjTdPj(Nl9&bHLBf1fA2b0)N
-#139*RNHdQc(*qQkJAJ*LqpSH`B,4h)U2D"'A#))[8ISJ!2"(Y%RcbeRM'`Z5)D$
-#`qE*CM'(KiRm,F&d09#R!P9lal,3P[+GT%Y'Yc(FaQ#U#Na49jHKjI3i-mj[,FD
-1!3Nlj)2D'Yj!qpXkmF-2l"dEefj#3`FcfiAdTDr1ZB+r-2YFI$Z*Bp"C5N[-[iX
-"X@J)8iT!%%dUJD"8RE2He8pI6QJ#QU,l!T2%+&NS-S%(Zka5a(!Pm9[&JAB#`1d
-&3$P#M6+&R30N%+"VF#CcQRCI@a69l163fDA,P1T@!8U`RqDNfpK[PhCFT*rReF$
-(4"Y5fk%'X#pQ"E0`k49Em)8K$i+rG"Pf'2BbL5"h3(5CBKdhlVam+bir-1fbH#c
-d[,dTll,r(J!1!f)X)(3+2E'@b1VABI)epTGbmqQ,jSl`QLG(M[JQLFGbRaHEd[i
-$XF[HfReVa8BkAL5r[-F8ff*QC!hI[-*rMpS&"RH-p*adK#+b&$A)Z4VR`EPZ9&`
-I!XfCM@l3$EE!*T&E[pqRJ,S0lc5i&IKI"4cIh+d)TbmPi,Y-lU0*cdSb*CA3(q%
-!TX3SeGdbrL[m85fHJkRLK0H8XmMJ+qbFb4k+b!8ad)-+r!$GGVl-3m%`64XER%b
-!PPUjPp&*d"#8A,U)A6#$&D"YXX[-TTHQIY"k4kTdPLlf(MiZZIB6F0I)rYJ&K9E
-Y*pS4J"DLGX3e3&qNfjfqX'YNK-(K5UV$(d'KcXJ,pQ8rC6Si!qE8%A*IHE9G)Da
-6kCPVU)"8%a+Bm2G$SI2PIbSA$NrjrUN[,e[#DqQ[TEDUUQS*2LcZVhe0D"'D,(Y
-fhQaje[,3jem+!Ab82M20d[(2kmF*LiA(,4XXEZ%&bbV"2hjjL6#,A[q$m(mlElE
-mA[M%XTLpY[5q+,cd9f(QAhFXqYhU+Fqmr0ScRApqUM2TTDE,`MF&haZI6!Qii3d
-dVF2bjGUe`RqYAAYdr0H&TUm,jlmZP2kcm2$h,cF*6heG1'!C[q1!m&q@d6[ZYEc
-iq6Hq%[lljq-q&Ik-cafIlA*BBP[I%4jlJbk!UrfV31XZZ'LjRXX6$JZ"ULSKLrd
-BmGe(PMfGei6cPKm)Edm@,P[qi6q@@fC-&Mlm@(K(q(b#m1)Rib`a2%ci[&bi(HT
-q5rMGZ1H&+F,#cde2#CBC`V)R"II&*i58MiAc`YN*`ZZ#CCcPcXmEK&FrhfYTrra
-2`Lq%-KbB*Ic,j`92#GqF)DcR"i)cCLfF-G0bPl"3q2Nd)@q'm)&`G)C`3[Mf0'(
-b0#&lKT!!+`4Q#)0imDA``62I,a&f#TDY,rh1NSGPjCDr)Hakk9qRI(P4H1+hPSP
-c+S6!AeDZ&S4T&8,C+L(`4[R+Lar2H9@BYHlPh`X&A`UT-dU&SAP#U1+[cermeUQ
-b@H1%SA,Kk9HR#Ip4+L`'!*!$'!!!)IJ!!&-`!*!$#!#3!b!!!$mm!!HTm!#3!`T
-B`!"G`!!!AF!!N!-DEJ#3!`&f!%ja5S0Q)N(Y!#!J2$mm!!!L2+R`!!&+3@B%5N"
-R#NK!5%%JJ#&"!!4#Td(krml3r!%!,`J[2!!!'@i[!f%!!Ua8MfG!3MJ+AN+R,ca
-%394"2c`%eDJIF!%4`!TH5TpR'%ja-$bTF+G'3rS!+L+)3IS!)$!mUA#Q4dU$C`4
-`!8je6Zd!)Nja5S0Q!URdF!"1G@!'!*!&!8ja(cVrpNSICK*)jq$J3IVrkP$36VS
-&VNcI"`F[1[rH6R9JFN&-384%3de3!!-!N$43FN&Y51GJm(43Rm)[5!!J)%mL9$&
-T!"3!'#&!!#3aI!!"!#c5N5&"!#kJ!Yr#60m2"Nje5MJ+AQF-)#S!#'F-)%!J%'F
-',cVrK%je51FI"N(krjj`$#)U!!6#Z!-DBD4Q!!%q5(VrMNkk"fjB6l"kreTQ!!%
-1S4SZ#!JU!%!!"'F')(J#TU!E,#S!"#SU!!JB+J!%Pp59e#!kreDK(Mmi!L"Q!!$
-X9%mX5#!krd3L"X+i!aTB3@%!rd`J1[mm`,J$'N(krcJJJ%U&CJ5K)Q!%)%@J*fB
-!!,3U5#!18)""q[m)))!J1[m+8B""q[m!))"#CdKk!,`[&8Kkr`)[1[lL,cVqiLm
-krXS[1[l+,cVqbQ%!$8i`(fFJ2`"+K@F))%fJ+U!VB!3J6D!M)%kJ(b"(S"Xah`)
-JB'!J6U!I)%HJ'h)!%J6R#H-Cj"%!!3!J!J%!i#"0S'N#!!!IJ!%J6D"UeG6Ae%(
-krRC+N!"R#(!"S*K`!k#B)%dP5!!)F!"-hf$i6R9-hf$iB!$q[Mm!)%kJ(b"(S"X
-ah`)JeG6Ae$!i!L!a`!TJNFJP5!!)60pJq%je6PB!!%MR!$JSEJ!-4rVq+NAkrLS
-J&,#5E33J%LL!5S"[%L"6)Qi!#+)Z)"64Nj'5F!"J"$!mrpP-ha`!6Pj1G8j@rmK
-)jaii*Li!##JZ!!`SEJ!33IVpZLe)rp4#,[r)S4SY52r-98qS($!I1J!-43!!Eea
-)E[rX-!9646m!U!p96bmZrqbS$6!I2!!-4J!!Epa#*kQE@8m[,[rX-!C64Mm!U!i
-J(be!rr"b!4m"UCXJE[r`5T!!Ca"96bm)UDB`(dM!FJ6!J@I%,blrm+QMB,`3,J!
-8C`TC6bki!UBJAk!E2cbJr%kk")C86be!rp"+J'F!!Ci[!%kk!pCB6dS!C`T`!4e
-!!"C1qJ)B5'lrj%KZrq")E[rB6VS&DNr[!!`J,[rJS4iY52rF)!KR!!&N)#lrj+%
-H,8Mrk#!)C`!"9#mZrq3[#%kk"EK36b!$CJ!!TPP2,ca$6d4&3QHS(b!I,8$rm%U
-!C`!!ML"!)P"b'02",`P1ZJ5d@%pb!l""CRBJ$5"!F#M4`#e)rr3LE[r`*&&`'0A
-!,8Vrq#m+6VS%ZPK2,8$rr#"Zrr#J+9"+*Qlre#G+!#KC6bmZrr"1ZKA-)"pbk0#
-"8B!R3!!X98p)H[ib,blrp%KZrr`[$#m%,blrh#mZrq![,[rS6VS+aP42,blrm+Q
-M*'lre#9Zrp!!$#9Zrp`!%#9Zrq!!&#9ZrqJ!'$mmSCK1ZJ0@9%mQ3$mmU*p1ZJ0
-+9%mL!#!,X)&Q"(!!B!*`!5!!*8!!(#9%!#!P6!!N5(Vlc$mmS2`r2+$m6VS#q&4
-2(`"1ZK952cbKQ%kk!`a86dU!C`4`!D#B)(`!!!&D-"")`1#!FJD`J@B-3IS!VL*
-m!!!$2#+)(A`!!Ir))'lrc+!E98qS($!I1J!-43!!Eh4)E[rX-!9646m!U!p96bm
-ZrqbS$6!I2!!-4J!!Epa#*kQE@8m[,[rX-!C64Mm!U!iJ(be!rr"b!4m"UCY96bm
-Zrr#TTM!I5-"b"-#"C`J[,[r`UD*J`L4Zrr"+NQF398m[#UQQ-"p)`()%`)&RULm
-+UD0JT"!ZrmJG3!!@60mFH%jH)&p2l`!16Y"19[rm51F!-%)Zrr`r2+$m6VS#,&4
-2*%"+J'GF,`"1ZJ'!@%p+!'G3)!SQ3#"!,bJ!$$mmS2`r2+$m6VS"hP42(`"1ZK3
-i)%XJD!!3S"mJ5b"S!"LJ(b"m!!!"@M!35-$JJ()'X)&Q#R!!)(`!!!-m))!GI!!
-"rr`3,[rm60m-!%jH6R919[rS51FI1&P2UA8J(bS!5'lrk+Kd)!dJ3#!3FSE3J5e
-!rr`J3&a)3qlrl#,B)YKC6bmm4%&836mm"0@TS#!I+%!J3#43-LS!#**U!!3m!63
-U!!D8DJ!#2J)f,[rb5--i,[rZ5-5@K$J"5-5@K'S#8S2LJce$rrBf,[r`5--i,[r
-X5-5@K$J#5-5@K'S#8S2LJce$rr3f,[rfeN%p3rrk-Llrp0*#28(rq&P23UG)E[r
-d5(S!CR)"(`&b!6m"F[m[!8)R3UHT%b!I*N![!+Kc"S8!N!0i,``J5h!3dF![#+M
-f@8qTG5!IX)9N!Q$d98qTG"!ICJ*JpR$r2`"#Cb!IS$)[#kN8,`bTSbmZrqLSFdc
-I(2K1ANje!!)!!%j@!!")j`!`*'i!##!+*N!J3#)S!!)-J8&-384Q&L)S!!B-J84
-$69"Q#M!S!!Tb!l""C`4`!'!#F!&-h``!6Pj1G5m+@8mr2+KZF!%I!%kk%RJJAb4
-)@8mr2+TZF!%I!%kk%QBLAb"+XFPQ"M!m!J"J"$!m"!!NAdje6PB!!#m$0Li!#$!
-$5-!#J!!!#!"+J'm%F!&J!R!!*Kp1ANje6PErr%MR(!!f,J!)2`01Z[r-9%mG32r
-mFJ'`!@B3!N-(rdkkri#`3fi%F!"J+&P22cbSRh!"(`"1ZK(`)"mU!&P22`-I,[r
-m6VS4i#!I+!#`K@B#F!"-h`!i6Pj1G8j@!!")jaJ`1#i!##4Z!!SJ5L!3*N!J3$)
-3$%&"4'BS-LJ!!Ja"3e*Q(MB%F[qf3@FD)#J!"()BiUJ#J!#3!rmb!dM"X)&R"(!
-!B!*`!4e!!!j-h``B6PiJAea26Y"19J!!98p)EJ!)F2mr!%kkrj)3(fF5)'i!##!
-S!!4b'1+S!N!!rf!#F2p1ANje6PB!!&925'i!#($r2`"1Z[pN%"pR%#"Z!!JJ+!!
-%!S!!rj!$B!*`rdjH6R919J!!51FB1#CZ!!JSEJ!-)%X`[!-"F!!N6#5!*M`!!!%
-Nej)'NJ!!!NJ'NJ#3!b!S2!#3!i$CNYQ5+$`!!!53!0Q5ej,CNJD5!*!$I!D5!!#
-!!(!!*'i!%#5!"T)!N!-N"T)!N!-J"T)!N!0)"T)!N!-q3N"-ha`B6Pj1G8j@rq4
-)jami*Qi!##SZ!!`J#bK!,8$rk(!NfF!Y62rXF#$C`#e-rr"`50R!,8crp(!qfF!
-J$*!!Ll#&B`C`C8lk!,*#3$i!3N!p32rN0JG`*,C!C%K`",C!C!4`!'!-F!!`!eQ
-!DJ*@J15!H!!i!be%rrMBV[rS*%38J#!ZrrM3J0#Zrr!J3$#Zrq4`!435FJ!5!Z0
-Jd@lrj&*(B,"#3$i!F!%m!$B(F"qf3'4%F!'f3'3%F!"J$(!!-!06J'S#8S$LJ(J
-!1!-Y42rmf+lrl#4%&)!J,[rmd)$3V[rd)%!`KR!"&"*b!")#if$F3&*(B,4#3%c
-I(2K1ANje6PErm%MR(cJNEJ!)*Qi!$$SZ!"!SEJ!53N!m!$)&F!!`!G#!0!Cb!$)
-#X)&[&%*!0!Cb!$)#dS(5M#""-)"54Q$D3N!m!(!#28$rmMB'YN9N!!#i3N!q!%*
-!28$rm(!!-!2PJ0#+)%!J%#e!rr3b"R!!-!(3Lb"!'""f!"B%YNGM!!##-#lrpR)
-"`%(4E[r`F!!`!e1!0!Gb!$)#X)&[2MJZrr"f!$B%,82rr0D$eS`J3dT3CK)J,[r
-md)$3M#"!-+lrmP4Zrr)b,[r`F!!`!G#!d)`J3$!328$rm'!@-!A330"'0#lrm()
-!-J,5JG+-)%%`J&*()#lrp1+),8$rp'!!rfa54Q!!rd4-haci6Pj1G8j@rra)ja`
-`*'i!#$BZ!!`QEJ!1-J0`!$!"jS!i!$!$FJI!36S!F!!Y32rm0!4b!$)#dSSJ34)
-3F!!3!63&FJ!b!Z+JFJ(!JG'Zrr`L,[rmiiR5Lb""-K"`!$!",8$rr&*&-!9b#,"
-"CJC#3$S!8N3b,J!5F!!`!G#!X+lrr'-#B+S3,[rr%Li!%p)"N!!"60m-1%jH6R9
-19[rm51FI)#4Z!!Ji,J!-1Li!$M)%F!!`!HD!2!!b"(3(`N)q!AB!0J$@LL"$%""
-d!"3!,8,rr(!!-!%d"A)!-J,3JHD!FJ+`J@F-FJ'`J@FJ5S"R0'!b0!Cb!$)#9)(
-5LL""%K"`!"!"FK$MU)'Zrr`d"R)!-J*5JG++)%%5%(!!%!(KL)'Zrr`J,[rm0!G
-b!$)#iUJY32rmF2pb)$B&G!!d!j+#iUM!E[rq60m%q%jH6R919[rB51FI1#CZ!!J
-SEJ!1)$`!!!%NdDi!%L!m!!!#50'Z!")J,J!5,8$rl()Jdki!%L)Z!")Y3Ir`*$`
-!N!1!eDi!%L3Z!")Y3[rd*%XB%RB!&J3Y3rrijS0k"mC&8N-p3rrF*Llrq1+$HJ2
-'494$282rjRB"1LlrjZYM282rk(j!b!Gm!"`%28EriRJ"kf464$e%rq!U,[riIJ(
-+KfF)HJ!k"&1&B!*krce&rpji#$e%rq4+4QG',bi!%Lm!2`055Lm+6VVr1Nr[!!l
-R30&Zrq3[,J!5,blrm$m$,blrl%kk#`K2l`!1,blrp$m$,blrl#mZrr"1Z[bX6qm
-!$N*!28$rf$!ZrpL`EJ!-C!!"1M!Zrq*R1L4!2blrk#mZrr3r,[rN,`Y1Z[f16qm
-!$")!)!T`!"!"28$rfR3!0!$8V[rX)%)3%()!%J$6E[rNB"`r,[rQ2blrj#m,6VV
-pm&"228$rfM!ZrqE4E[rN-#lrfV"ZrpjQ&M)ZrpK5E[rBF!!`!G#-)%"#%'!!rhS
-`,[rDX'lri'B!!*3`,[rLCcSN3$mZrqJ[,[rd2blrj#m,6VVp"Nr[!!`5!#!+F!!
-3!6e!rpTd!$3!e+lrl#"#%""b!")!dflrj'!F2blrjMmZrq3[#dkkr@K36ce!rpS
-`,[rQd@lrj&CZrpS`,[rD8flrfNT!C`$r!$JZrpKf!$B%,82rr&1$eS`J3a!3)Ll
-rr0+-)%%3J&*ZrpKJcK!Zrph3,[rE0#lrf&*ZrpKb!$)#dS`J34#!B!$q[M)Zrq4
-`!$!"AS$QJ%cI(2K1ANje6PErM%MR(cJQEJ!)+Li!$#KZ!"!X,J!8,8[rb(!Nem!
-Y5rrJF#$A`#e,rma`50I!,8[rj#e-rj3Q2!!!!56AV[q8)$`!!!*)dDlrP(!JdDl
-rP#Jm!*!$J0QZrj6CV[q8,@lrP2qd+$`!!!53!0QZrj3YE[q8rlMAV[q8,@lrP2q
-mfDlrP#eZrj6re("mdDlrP#eZrj6rT#!m!!#!!0'Zrj3J,[q8N!#-X)9M#R"P28!
-!+%lk"RT`!#i!3N!p32q-*'lrT0Am!!#!!#e+rkJYE[qNrj!!,A`!!)!!rqK)E[r
-S,blrT#"Z!#41N!"36b!ZrqKQ#R"R28!!+%lk"M3NE[q3!&*+YHlrU'0S)'lrN!"
-55*(ZrkJY52rd)'lrN!#4l[qN,8Mrm#"ZrkL4l[q3!#e)rq`J#'F1)'lrN!!LE[q
-N)#lrl+)Z*'lrT0AZrq`Y5[q3!%KZrr![,[qN)'i!*%k3!&"2)#lrm,#Zrr4N#R"
-R28!!+%lk"F!JE[q3!&+Zrj!!%"!G32qJFJ!5!0*"8d%p3Ir3-#lrd0"!28$rdL"
-Z!"`J%0#Z!#!Y32q`*%![$#mZrlJr2!%N,blrN!"1Z[[b6qm!$M)!)!T`!$!"dDl
-rN!![$#mZrl3r2!%N,blrZ%kk"lT2l`!1,blr[$mm!53[,[qi,blrY%kkq9a2l`!
-1*%![$#mZrlJr,[r3,blrN!"1Z[ZJ6qm!$M)!)!T`!$!"dDlrN!![$#mZrl3r,[r
-3,blrZ%kk"fK2l`!1,blre$mZrp![,[qi,blrY%kkq3T2l`!1F!!Z!%*!28$rM#e
-Z!#$rV#"Zrkbal[q`C!!%U%*!28$rQ!aZ!NMrQ'3!!-)`,[q-CJ!!M#4Zrj!!8NU
+:'&0PG&4jF'9'FQpY4AKdC@jcD@pZ,R0PB3""8&"-BA9cG#3!N!0)N`!#4%2Sae0
+dG@CQ5A3J+'-T-6Nj0bdb-$!b)%&XB@4ND@iJ8hPcG'9YFb`J5@jM,L`JD(4dF$S
+[,hH3!bjKE'&NC'PZFhPc,Q0[E5p6G(9QCNPd,`d+'J!&%!!!5*-!N!0b!!%!N!0
+b,L30TD95CA0PFRCPC+@P!+@3"!%!!%3!!,D!![bk#%c!!*!0&0X$!*!18f9d9(P
+`C8CbEfe&H(4PER0TEfi!!EJ`39"36%&8)$8K!2q3"!#3#S!!N!QI*!!!4kX!N!3
+2!%,"e2KQ0T&p$SpV`eIm+6a[rE[HVm`fH#$0ReC+dX9IZ"UFq&cSBESaqjBdD'G
+frif"[(hlX!XCPCTI#MG5cE4K23C5%DjAYh&p'#E$@e-N2HT!!IaVV[HXEcqV,MU
+MhC!!J!962&B!)41Mi&',1'3+bf4"M&3D9'ER51kJ)&@4Hl*`lCrZV3H+Db&M(-[
+PbY1Ncd,[1j!!@ajrVj@c6*3'jej86AEFl6Z9FFES)LETrk9rFdU&61M$DK3+P,M
+ZRTJhcV69C``R,Xc4b"QCURGmBPpljYYUG##BlLHMZI4q5&%98#NMrIj$4EeV2$i
+h`XfB3pQZDi0F-rEY0P+6'SI$0cX1LU%JGiEbK,ZIiERj$m"mcc5fG(a20"Ai!*H
+ISP$Lr)IK'`S")HM3YUmf`&bA66R,r3'`Q"!!`R4%mZ3XRS'f5BIE62kL+kTiZic
+CQLIAhib#T@K$35dmPEkHdVAVU+F%PVbIceFUIJh!@5Q@$#!NM@+@j)$U$PX6bF!
+DU5qk3ic*X)@&FK5p*+JfeZfj2b0"KTDY8Eh(pC+Dc9j)B1fY)mM`0(9lUN5Xc3+
+J$+LL!cVMBchY+HFBA)iI`mbq-Ie3LAe@cprK&AC4-!clhBekEkK)CKlPlSD"5HB
+S8)(Elaq0iEDXhjB4plLkMTIkaj!!PK`N!('P@AJ*IS9'UPi'G20M#iNUlqB[d'p
+)qAV9kDbHCX5b"K[[JFiNklh$N!$jPTUdj[L%fPG0cG+@CD@&+rc'e*VC1,D2M($
+-,FLSUI@!BpfA,A##%f4k&d@`r*`*5pGN6q2jEe(F(YG56b0dTSPbXr1$EjeX%$9
+(8'l,mTC#aJ6ZrJ-8-,#1I#2lXJqjb!%Lf`@0E[*1l@D'i02rG`VGJQ--R%qi9ZE
+m[bbJ2TKa9e0)'S8a'TJ(6Q!*GLJU&h-Lq(Irmhf(688&aIjTmfB1j)BerS04Jhl
+S(C+)K!KINK2ZP4%A)(K,&Jc#bd3`ea%ZVGdI3#lC*M1ViTY4Pci*R!j4UHD1Q$p
+"Akp#T2Dl5NI`h$dpUL83G2HqPI-MQLD5T@0M6cqljKdc,q@5(MAGQ2(k4@TYRAA
+I2c5#h&LF4#lIjpJ@$HJ8FjrYbe8EZ2)JI-eU[4+lA3l-X9Q24kE6!a`q+Ulb250
+ErT1"Jd(RXR@ri$R)dMrdNF2!K"G4lLm,aPhYNANpM1F$5#h3Amip!P@)Mhb,RML
+$'*M5Rk8VLD[VZh`U)Y0&YKFqYX1ck'eJirS9"4Sa[[Vfq-))h)0Mm9[JDjYK'bX
+)cS`pdY%5bDdU4r!C5hiQjjZEbikDdK'c4)i`leGfJ)m!e$VeBMG9e1+81JDrH+r
+(&Rqqha*ipmr!9c9l[pN"&,,mMS`+$JFSA3k*IjlENRKbB1**6!4S"J!'dkX+HAp
+,i$NDJcPRCZ#CZLZSre,*p$f`iaZef@9SY1N,0j0LbGUj9#M"aMm6NGpE'@aemUD
++LY[ElY49,lqj@*p-eDK5`8)N%4#G#e0@Q-EP`r%mZ"iGj'!2JTEM!N'$*ic(j"N
+q0T9ddk9IkM'2GT2j#lMAFYek+UUXaUlBbhb"Eh$25#FYX4&'(h0i4MZN5R2)i%L
+e2p$!5VCB'bUc@BT1[%Dfh+@5p)Zf5T83bAL1Y4rHPpf5dZ&hG0RR$k)"BB&X*QF
+Yp#c4Iq`'`cIah2SeFjK+0(%dh[P5dD'0X%8-XQRkECGAiCZPl*6[C#*KFG&q"+e
++NPAPp8aUT#DKeS-Xb-pZ'8`08dDQCZBA1RX0@8EVaKGG9dAD`IpXPG19$cTrYQi
+)DEk!IFNd%bGP%55Q!B3ICXfacf[lfDQ#i`,KX@B,SmpM8bQjYL-h[NR%8B$[Ie9
+$)"JLJVMr3')Z4"6Q2-P`BDY&,q6F"r"!GY(m4V0-XqTcJAAqf`,4ah`1UiY@E%R
+i*fm#S"iTN!!if3dU@4Q)Zm'T06BH&Ae!2-j!GbU8FN2Y+`jrk@%2Q-j0ph5P4HN
+i3i,AVHeq3lN,k(l*!I$kd4BVI&)VPPdBd*`1cQ4E+ceYL,@MRqJKG#l-fbf0p2)
+$MJZF6H03aLCJPD2P#VeT)-UXPJ`CBKrk@rL2Bh,)Z`feHZV%UkHCN!"HmV[Ppqa
+r3!Qa@-[5Y[lM)b&Xk!*Y2ClVMjZ53&6Eiam8`!!EMp@M2VT44V(MY,fThHiD*'S
+TBC!!8!02IFU2QCL@ZZqUclHAJ)mdJ'-4bS*4fp0-kpDCLLf,#HUHSQI"cb@&PqV
+!bKa1GAVQTC*[&+$+m+)Gc&305"lB`HV"e)e4RJkL1LPF*996-HEI4`C!8`E0[Ck
+MKC@3!,I%XjUF%[cLijm*!1-F1P-(TMMUR8(*r%[X$MIriAK)HbEfPGi+GY,r)(H
+0X,e4Q&2ZU(UrDcr+Z5jihmcG&'*HNZ)f'Be!F)"CDk29%eD,6!G$C2IG+14'3GF
+6Y5iYJ0K8Pm##D9%0H6!90YA*NiJ(+J1jG8S6FbVTaGKq#GrZdY0pk"9RA0j2iPe
+GYBfd)S-%!dIYU"AZPZIb#(DQXBUrKJj1TIP,,cF62a)k6Ch#%QmB'LT5L-NQlZ%
+CNRr342*N1'(pF[q!bY8bMplGc'0J@3#9m6-[B&p1-)k`G+3"PLSSVlJ3$HJ33ja
+hb(fJHDLFBbpVE!hV1))1qi*)`li5c,mm"'hr!N6'9V3043`TB6TqDbjYFENkBH`
+$e"h'"MTcr5A,HI[cHT-cKA,BM'-Fi"lDMA#G$Uk-I9@S0NK$QX'cib84"ad"ShR
+IC&IhCI64f*)E`""6l+`e9D!dUhZVVdX,1r-66Cj@!qiSQUc2kd6@Ea@VFTh*QQ!
+F'R1I8pGRK"C3@08P!l@cK"6`Nb*)$)S(rCTfb9rBeb#2+#qiNi'YCiLbf9GCKR5
+cJILZ,R%hHMeqZTa'cK+MH@@(0S@k41-"dmGS#H&,#eN"bcb)H0Y1GiHK[+S-&Cp
+42iYG1F6`qeQ8U92c`,-T"j,Q8!Z[EZ[BXXqB&IAS%fX$249$`(del(mH[dYb+'G
+Q-%*Z#CI9E*dSCll(BZJ1XEVC,KPU5,J$mk)QLKmp#2Ec2")0&!%$G2LBBiFh)[F
+&G!UAIEq$4JaIEp[5GJ`4UTj,2Bfd*blf!eaA)1I,Vqb(3rF)Aba-Hel)KqjY-MN
+m-m"9KA0`kPiHeLNhF%C*p[8f*%-h-[N0bMCreEHY1T&jKfB*(r-J[UPbc,[Mm0-
+!kb4QkHQGhB2c*qfEYdq4C2R&i9'M0!B9#%5&RN&BQbRTNkADQ6*X`SPLk)"+Pj@
+IjN*@KV+#SNVSRl@&F1)#ZDpr)eTPAIGlFF"rBie%Rq0fB,h41Z@)rf3JhDC@RDH
+)pBfcHKPI,[Gm+AihF14aX8LA+QEbTK$'HqD3!$CFM$0MPKidDd860+pd+RX$G02
+hM0GXA#M*B$M6b1$SNMY-Sl1E0I0F'lrc3d$J&I!h4!8&R%6-$eKYU*lG-L&RJ+a
+aQrij'h,9m,5aI+[%2j,l[YZ!b(R"(Cf!K-HhS3VFBAU@Q*NK#l4cT5bK5#'aaPi
+50'H(kF)XlK*0qSj(S@#iVUEUQ9iCl+#Z@N%(EMmP-f5")'Kh8rpX)J"0IC'h*#l
+qj3[UXVMGeEXf1+$j&6$0G[r1D&B01'"!)4hj&&($VmK*PdKliiSki19(Bcrb9VD
+P8i25Uli-S2B$T%bpj%8U"'&`I1Z!He#dCCiBVfSJ`098*Nbdjh1)"m4,a5Y'6aL
+#GC,!F@YAEYTN2l"N8p1dbf+VlUHQ-'PTA+m)bLk(&f9k$Pq9MGfGTcm'4!@55U%
+'1+EZbSG`Ck,V*hU4UCGc6kZVK5FMVa%qZA4Db@(Tl2irjFiDkLILdirGBc`Ike0
+LTqB,D!dkSqP0*DYNK9H6Fq$U*bCiF&2ZG-%55(9dlD5`$,V-1pBHNc012G[F*Q5
+*Ee5bL4[,4hp&miTAmfN@16ceEA&BY)m3Ma'bfbpr#RTH$PS8!Nd6&NrfY#R*MML
+lH#r8)@#P[-,VA2516iAb*F4caeDcF([-Efbl3E@[LmTbQla"`#!ke3%6%3Xp86E
+10(pU"5`cL)V$Q4625-m,Ik#LrT!!lrdL"IQZJiIJRrP)r1MS#4IU+2Lm"Z&bUe@
+b4IPdD@+6E-iFrVF#66+fNIcZZk8G2FpeXlT,fBhUGNBj0MejR[[D,$M$3A$M(Yr
+f-bb9Khial[FkJf`4kA,01UCbjj0@&Nh$BY"JZVA6hZ#6EjJ[c80)HGI6pZ3dhk0
+8Qqrk36+6C9,%de&BXlhmdFrUQYb0bh9UMc-liH5[QC``-a31+!jNE"fjG@2N!UB
+mdlJ%j[@*MlG6HMdU!ZH%p(F,Z[Kq2YGBZMmrhj9VcGBI36G-jRj4dY5VfPI!&!5
+be*q&RdB1e(j,jp2b&+%bVkl,aeXQ*blF9HJ+Af2N3!JAFZ5DMT)l0M18Mm%*jDf
+",1"6ZP@#DlfhYLmGY+chjDBlalhfcrMK[,pb30$Q2hfh(hCMcVSNIGkABkdK2c%
+b6b0Ghq(fFI%PNrZLaFb@RI85djp&PZ4%YBpK4JBV`ij5@Y%8G-NJ,'-#FpE0!*X
+m%[i#6EFEP)'adlpL+q!lMM[#`19YPHB$LY#N&aC*K(LQlfGJ*S*rV)UH"#RNrNf
+a-1p@!cie%Cp(P-S``jL-RDf*'J+2q222$9PVPYCGqXcJmlP1G9TD)h5$KYB3m@R
+$UKKA8-Dj8IA59HTpMc8l``6m"lV&j+YBqaR3H&HS%hRKKT[k8Qa26,B"aUp+3-*
+-Q5JSHQ35j`L*(iCFcq2ak'Tcc*0@@dCrK2fFIcKR1jqKZLS)j8)Umd)VII&hV90
++JQY[%3!8cQ[k)mbfcB4U6!aGIefAcriSq81*TC(&$H8QMG[6j#K!i1(hX)N',rV
+hF"FY(I#0ME(AG`d4q-KLM`jpZI(fS"'RdpU#AqkGL"h44[##XHm&-kKe2XGVEP'
+9qmf#XPcRbF2b-%5"KhXQ,qS[PQkVUD(YaXb!Sfq$r(@4eeN4A+,rcHHaq5pHi*'
+Z'-1IdEYMecYdAI+DYS*M&L-M$H"b5C3hh-*,Ed4A14+TFadT9ahIG&E!mpi'h2B
+J18bH9L@qi6CVLa*-e*RCYh)9iql8qh42HMU[5Q!I(lJ'@ZK9'lN-hDm*k@$q(+"
+8mm`I![e"S3Ed8mSFIC+Qc#Q[NM*j[`5dc#[BUKjmBHXeMa6YHMk&k9$eT8pX&m(
+JCe3NAi93P!!eIircdc,EBqa2@I$Ve4"6,Y9NffVj1C[EAPp0IJLM+4Z%IkjfAI5
+5BEa(JLJhm5dq1l5%YKC1LQH-GUQ%!&0ei[mRMUQ9c-2j+"jQYiq6a1``ccac[`q
+hd4S01$3aZ#%LAdI&Ac`8GrI-HL12-KLmCEeN45lFEDMQ&Z#r6S(TVpdl2NFF8rB
+Q[JRY(aS9klR&Dm8h!kKd!1p[(US'km'hYEGH6q)a@@d'4JD28-Hk)'KZ%DT'rHK
+-(ENP(%%GeVb5$r5p@hBSG3dHFd8F,hV`h9U45pVPf1JZ'+dmXE[1M5N&aGAhC@F
+kirEP,E&hbP`Jcjc[a82@aA5XSD1D05RBNJ54FcU2`DYcV-J#d*%TN`@p1%L%IlF
+B$0d4TH(5mhNZi(CA'Sr8H`(J"GD`1THaUMD#'EI#M!%p5H%p"F&-h`el8V2JCb&
+,'3[BCN49&K(,XSP5ImJE2MS4'J$Sf!l12XVk@hq(T#)diGhIcfZKRdc8c8HI&j6
+8BqXk2BJ39kaL4Bq!d%S,!#0Y@#[YZLH6h1(q0&*fpp0CafR5Uci%L$FebHTVrE"
+V2P*#eERBd,bG6@T8VG3qqf8*lhQ-*,eXN!!RaNprjc(Re@(0VTZIN!"(`R4qfH2
+)@L,6,BKacmRMHiYA#AZ90+mLVHlJhK#,m&rr'JecB*Lemd&!64DDD4f(5TZ2DK%
+r'+Ql'H0YZ)Q06qdc6[&2c,6Q6k[kDS'IDSN`)cJ8c*+1SbapF4FT85lIamDlKk8
+Jl!2IJXYK1CL`'LDEFD9KQ3*A8ANPL$!S!$m@f6'J)I,159b(Y@1aN6!83Sjh`*6
+$d[lTmXd"LAZ2[*B,BbL9j-bd31)jqE)Sj!+MblYQRr&TQ#N2TSY2#DHDLKB"K1S
+MP`JDBB'JJ+jFPC-b*PDJ,)J2aMSlJNIT[GEqje3iPH6DiqI&!,fBf2Fk#,icf6V
+RGfN,8)V#&lBZc`4PJV)`IZ0eMbJ"a3bhG$[(D03+"c"PEJ(BL-qT*QH5e4"Zd$c
+65,`FDrjFVKH*-0+*3Rhd2EN**A,`Yhj-5lefL8hD&NU2Qbp[dI-eIKhjBb,GQD@
+9@(5QFFK`B89p"VfGQplKXPpSY"ffYe1841$R86Vlcl,j-ep"DcRjFT!![PI*aSm
+fii5$ANA6*X*aX2J8&13fp0EhHf*r3YT8S2eiQ-"!4SC!Pb++X6++E[CV$SUV+D9
+%EecV,D#l0FKrl@T*Sq*#ajdT-M!*-99)T2TUJdbk1cBB0G1RdU8`,$Pbb#-3jC!
+!iTeU2&G!3i$3TPj[AFM3BQ5ENmD,aUcEr9Qif%HR64DCcelVHiqY'[Cd+a)NDme
+4DSDMa(bKqY(KDNA"C1q25"bqZ-jRA&fZRLh*4F@$H'[Tj!ZNm49EhU`'LjR"rXZ
+XQG6R-R,V`B,'m8682UY4G!"*Z(PJ)8dUQhmASIBJj,'BNN)p5lpKr+f)F,V'D-l
+Zd(VeH3h-k[eQ@dd)"48H8lTapP+mIcMePQS&9Yb[5XDG`dKR'5jiaC2qr&ar`(2
+*mD-9Cj5mGB0!L0%&)Er$)iQ#V@$fc,Jm$kpAGpl[1GM%2K0%%a9T,-k#)r(mRj,
+TPA+VB@('cYCZh5Nm,-+Ilm!@LhDfc#YSr-6a*41Rmf`FH&*j)d&BH@Zl3Ha&pFC
+AU$lYRF4kTf9Pej!!f,-B5ePZ6L!+%N8U[r4T$c+FCc&"559EI3S`9+56[6EMpMI
+EG`pb%$*G#@aflBeCL"[4F9XDr'4@K(`aEUD3!(%`J,5dTj2GRA+3!15eRk+8Q-P
+(K9Fkm`9cC(,dS'E!H8bTNSfh-)XPA`F-8&2X*EMX@%f60Zk,Rm-mr!!-LSM5UaU
+9`#3-lYR%9Z8UJ31I(+KKc(5RZ%JNjV++qX0![(i5raLI)c#f`Sj!(RZqa94eG$M
+21j,0Ia)`,flrk$"m5&Pl83GSS9ENXD6d@%RbkZaXZE9K4Xc&`SZIHS"C%Cr0UD'
+DmI9+&RV8&,XcJPT$lm(+G'kE'aapl*+f!j[MTcj(lA--h[(!!P2bI`#d%8Hlch$
+r)f-lNmA(kq$ARQkN%0(l2,Ba8H8,e[CmQRIJJ`a+pH!5hVEN-a$1h5"(0+8$f8%
+8QG'#JGXbilKE12AX8r,iIY$YKHmPcEi8Er&kFH,[!UB1DD$K["@K9&*!q1BB-`E
+5qN"8J!E'[V*P)4QcBa9U)M1+mGr"'FB@NN53!+&3@5QLK#b1XCS&$cp[!aS`JkU
+d6hH00kQ9kSK!FA*kb"BGiXPa#6N'#BZT01lA&U-QBE6"Vr*#,6(3IDdPLFi+2c9
+Y12%hi6P1c[FdmEV3"H*f[EhjRkcIjT,daTMG$ECb"jhH+FD,1h[k#29MRCCNb%h
+!m3bM'i*B1kZ086YSBJCf+P3fKP@lFi$PUaPcUKP3*KfHqY*F!SdiJ"aB6Ph*jjh
+eYTd-eb2FLX6[(%EY-bGEq1T@KkUH`cq,'!e8-h5$6*5lND$1IB$GkJT9L+mr!Id
+)Var)AiDNY['fV`2drLVVfjm-N!$GTmR@MGZ#"a$fiG#GUr2h"h*c3HF'U!m)+pI
+DK,28j*XD&'bFKQR(K"KDmbre@Da991&XUZ6pH(Ap#`4[MUbQl[(K8kL5SJV)&UG
+c@8GFIFaMdB8$TFKGGMl-J+k'[+JNK*43'4&Jkab@Hk%f9*dI"k%!``c[03i[MT0
+)H6R*%j,!lL'!)4%)P"PJ8Ke)TFQN&Y`h!a[QZ)k#3"84U*h@jfh6#1!KZVIlY3C
+@91V!l8q2$lbM[VeAaNTqKcq)qDRQE@0H53JPSGXjLX-&P5IN5Lj%R&`PqLNL8Q9
+BE9pMVZkr#G*T)ETc5&YRj(a2)UJDYAG"MTLc8%UVjP,60C*#kY"H2&Fpk&[eq`*
+XH$'Qh,kP3XVP'NJ$XkY6XqIDiddM`p`Y'aiC)+9$Gll)UN!+q*)AX@8JT!JGpYK
+P8f)[bq(H%@-pKS3m!bm*45+BKpq(G@pCHHZeiSBR1VhPfiSM1@S-(YkkEa`hf!9
+,i@'"QEFJL*1#dk4re!2AdE#Qqlp"kjjS#9a&X$j#Y2HbYB*BNDh(kGrq)%ihAQq
+VXie8%ADppe$kFJ*(jl+bcmpShr+JFdU9eE*D()$0eI$!lbCH00cCMD&cQ`aK5%r
+4*Z5B+lL'$dfGSqX#GT,8lI84k(j)idpYCF*C&BM(GD$1b1TXF%%V4qlH'5LHQ6!
+E4c0AJlD)%dj2B%kRJ9L@B"cHeDPf@l6rNka#,RVY91l5U,k#5N%jadhKjp["B+0
+G!5EBJ)cB8rC0YCAmbhCiN!"HfL(fRcZ8EkqJ*"6Q$FaVASi5AY3)dYA49aMq48K
+6)$LMU)fQjX&!8a#N*Nie6kcP$h+5F2N%AjF[8rMhlM2IjXCUeFkc#1*B'cI169I
+G6Y8merV`1rCLELVRZ%0RUVhEMbRC"q)b-LT5SXl8*SKPXMK4mm*Xc`*EDL62UdV
+lS-6EZIi@@kkFc3#T4a21G9eV3,U664Z3!#G5945D*k3Dp2`TNZF+abG4PVYQ41h
+akZc[*mjbr3jdYV'l,YqFaXf,TV5F%qd,pkf4*-[Ca3pYHIb+Gi"4S%DAKaBEaiH
+FGaBc)QBJ[84U&lr)bk0)6#f3!2`U98m2AqGlV@l2MeAIYY9lL8QSSC+S2a0pGV(
+9`JHKVfad#Z9V+TCl!#%i%8fFL&[j5Ubk"XPj@Yk*3Nq)i3fQH3jC#*)3Qkq1rDI
+cH)EUMV5,h@YMhp0NahQ#GL6,$Q&$Id08QD8T**380E80UGBpcSjQ+`d#YLqf0X@
+XkPF*VhPZDS60IFUA"1T-YKU1&PK8AJ*Q!ZQlqYX`PX8PX+8XbM@jc"8f*PV&1VN
+0DNh0##pKH4dZmGf62bYF2m!B-'hbeh5IZ5D*Q-p[k5d)+k4*5mN*E3BAXDUi1Vl
+cP+RG-GbI%IU["%IDE4V5cE&r9aTb&(j)h3e`V5a-3IGqC"'VZK,c8M@U4pTr'N*
+5MTfh1Srkk1rZ3h2+9-@&"9CBEm3MULRK&LJF0'3%UhZJ",@2J#J+4Um'H2!jFZ1
+ML'0j2DQXb9rT2,XS#QpR,-m8KHjiIdYI++hq5d2`4q8SC&rRb0f6F!G5l+pGI*3
+fi3@&"X-J0!DBMpCBc&D2MGM['R$`Gk'-%NI4K`9,0P2MaJJ81rY+dL"Hd+CNRMe
+YqNfAINaPLq(8(KFdPbimTLk'pR*MH2HKhNTYbZYT@%r$#jX1V-[A2GN,'(lLR)A
+Y6XKX#c2PN!"k9GC,*DppYSlHkYi1+j0UIE'aXQ,%-f#Fh5h5YplUMM[1[89cYp[
+3j+R$5"h&C`6QkL1!jC(fqUrEZl)2VY"FfQ9@,Q&iU&Pc$(M-3LNC9McP4UZEFrV
+I@Y6&6p0G[PNkDQlkc(j$cpCYHHeeL2RQTf*QqHSU!AK,-irSM",c[$YbY9HlDhM
+hq*IK%*l#'ap'V[FM#[[r-BbUR'Ym'-&rkP%bl6DZ'j!!KBRF8'p-QliA#"3q[3B
+[i"GaF#(Ef`BH3`"e'!VTK`69fi+'(MJ(S!4M5mS9dCVA%#68$S@UKk!6%&R$)qB
+$h(m0"RqaCABQ!lq&58FPdL%$H%l-EV0[6K84%Xh6E+2U9#2!haM,%pqNHHb)YfZ
+j0TUT)+YAG@D$@fe)ZUkCPJ,9hdT3[k#*[h6GR6,'R"2lfTc[N!"DMr,P4KrFVQ+
+cp2YX8r!6*NF@'YdY)[3Uq8kMEqpa,"r'BF-TL`Qh-mG*EY+#[r)'P%)2,6[NJ9D
+RJ%%X5FVZG$UJ%4GY2G'Jr#)`#NGYIjh2FBR%P43PR0fcff5c'NX-UL4UF`1JPa8
+mE(hH**L5Q*D,KZr')&KIldjLmHh(f-6IQl*fZHeMB"-X,Dm4mH4M&*ClVNETf93
+6e[",R"+b,TJ[KJ1N'QZT1%@R&00%fB`T"Ad0U-CSl+'J-Xlj`lX[T'S'k`@dAq5
+0C3p!cmrVqQG)LMAXXXa"VifA#3F2[pAY@Im$b2Fr21ajai0a4#R5$bU'kfBRIG*
+PTK%fH#erX%D`6lNaeJ,VmUEY#iai-G9UT+9()*QpQI02"TFfeM@be8EK0rcEJ0U
+H-X"*k8UZ#K[3q$[&Ki&C-+I[#f6GJbrc9iTmC5iF$9)X24@)$lA"ERDX#"8i-ba
+6GAPYH"'hbQqf*fj(aLjVCh0`Lr%+3*pmUMLJTFeY2d[D#Z!`J)50NK-X62E"G!(
+a`i*+e0+qXF[N3j,UMBF)jl43M2T)5q5$HSQTCm!8cdaM&4`GB(RA"8k#lK!9Nm1
+*8E2r5q"Rf%4e)-,cdN-(+D))[FirUA-[prVFS9lE*L@)fXYd9GQJ8jXDR+jilLl
+b(eYHQjJ`TN6'@45F)US2ElmJ`aISr)51Cd6ME*4'1Ei%0&Zf(9k9Hp["EVAIp-4
++"0[2C1XfJBFK"S*(p4rfY2)-cqS"h0d,&b##+Ji$,8R6HXRUc)LS[JN,0i)'-*F
+91XP5'9'8jpDqcRD#mrcX,)1rLped9d3TTZL52j184m+YFpDN-1qpJH$M4+',0UH
+&b-bRLdCNR8Lbj`NCZ`jIHD'e9Ge0"-*R*1XhL&j##2ThEGrYj,RXM*4d+N-&KXE
+#%,RNM8cNpZC6kG$0$1DYDc*rS#Mf3qG8B'dKL!6CK8$(Ube9!+3#0r!e%TmT396
+%"[*5@D*Ae&q8r"b"E2Ym%V0EGm#ed#N'UP*q2EJTYVAemCK&JY0FcJ9aeE3PjVF
+"+UR!lFA(*VCZQeFSb)5pE40E2,9Z%4PYU[**bJb!1eDrR8B2bYkc@T`@K6U"9Ui
+d19Ph&&R%$F9mR(+)'rl,rpFP&aKpRr3802$@"TNfK1M#@%6f1h24(!Br!##44Ve
+IT'Fq2R3[K"[CH(Fh02#PPq0ja"K'a!f+QLbheVHZPc&#)&e)bj`@9M8HPpQPbLB
+mcK89D6&F0FEQMATlkP[8YClY26Y-1NU)J1(%%JG8#*m#q!`#A`J*[&f+5UM`&l2
+i#eL!$8P*DBmLRPK*`[9E90-+-dQkFP&@k1qD8p(Xe3'-b0aEX4&F0dA9XZ(+$PB
+0edpP(&lCjN1UZ([le'A1%+A4N!$TcKHC-pFT#la"f+X3K`XcbSFp+9)GbZ+L'cK
+P5%6'`kLeXUkUQQ2+3$bF$3Ah&Zia,NIJ,leHqI3[3[Gc30*TV[6#(kQCQ,'S,%6
+$Y9E&(4NXR16c,8LebXqMe[6HLG6%&4TD2F65)aNBP96'mYhdfa&)rRNpRpNjaCY
+['2D+T!EQlTY)Sp+0$AdV(35#XV8Y*HMNlKR"02q*C(BZ&VLLA43a%f3CTjm2a$4
+@)iQ4([Hmld%i"ADqM4mmBQj29P!5N!#'"mCT@HDk$1-+$p#'j8he&DLEhkN,kC0
+"rrI'HR`+*[hRb#!"'`@Y6D#R2fj52F-UcM'TqrUXP-1@B[JY-lY(Yj5Zr2r3)8,
+A[Hf8C5,+elb6A1,G6(rp)"`hXj(PiUZN-+Kep6HYCA458SF,U6)lFc"SkjA"K2q
+@'KMA9XHP'HC)2rP&$L35lZ5mjXXYbdY2DcX(6I"89RbKdPK,e!(q3,D3!*bkQRQ
+AFl5,RQ-pc-4qqdAYIph0Z+3!k`-FaUKdTB8(KHNj5NIKrALMfaY-MrB"hDVZG!$
+NET9JTeLe00cP6S*9k++[qCC@)!a@Uq`HbS'IjFA4[i1p$@i[4LHI*a2[-Z0&VJl
+cL%4GkrL8D0&`Qla053khL`L#%%RHU&N!)ck(cqdKAAH-4q4jij!!$08&"elPBGb
+cL)R@0ZFq+",D6jq8FaE)9&cmmrV(p8R)NI1[6ci*bqJlZQq9fIUr-AeE@CP#i1p
+m2dR$L#bD93D4hA')0Kk-p8(8m&4'Y'l4'Q*,!F@dX1lL'CUJ8la6[J9&qGk+NB3
+-@a2U9%15j0mGp#bXThdjLTC),"#3!*!!'Yc5Z3!Aem4X"%-CAmmT-NY4J6Dh*N$
+qfakPh0%%2T4E(EP&Y9A#NZj)c"-+96(JF#i9Ec*"'+B9'A$BXQdF39+f%f$kmIP
+Sq4cCZp'1*0qXSC),K['+)$5XQ4AC`R&!,1mM%+m5YfT32afp00&qqf3Sq3HA2K#
+,m$[$0G,e(0c0dHq)*j-jjZX9,icAB*8"3d*apqX884ildH$836TQTR92!cJ[fhr
+V`)Ur8YbKZ-T&F52b&lN,+dP'4#biC-RPDN$)EK%@IS)(BHTjbAX)A!V&I[cE`0m
+&"6q4I%*V!k2RfH3G0aP@-&QINH[8+@$DC[#K#6k4TI-PZ#L`a%M4IJr9Qd9!@qI
+Tl"3ZUiIqji&'FPD(8qHeL8UT2,r0mFhQ'5YpE,FGajrk8LJ*MN'PBk2iKU(38QF
+%Y(hp[##dIa20)i4eGQkk[#!S"Q,GR%h`Bkc*#l3qINrE3eZA&&q","(5lN8!IEP
+,SQaa(@5X@)8(@**Z3d&XVcClR*0R-E4kJef!N!$9aX0JSdNa(5GcZm-IQ1$UJHZ
+,KM'B1Kc+HijdREXKV[-X#VTTDLeS1(,433BMN!##S[QUpKdel&+$pF5[+K*)+1Y
+V6df(Er#%2C9XC+jXUGrHca'GpT96A0I,$Ei9RP@GZ1SFV-YFBR4UNIdCRXbjI53
+&MEVd1VeE-%2NpHbB&*05Kq*e"YY9e!rhVq$4Aqlr5IN!bk[3ca%B3qc&r2VdAE!
+a5fREm&Kkp!mJFiZ+'p6XL-BYjed#HCG@-0T-`fA$%BYN#MN[I+8CV+mlI%*ND4a
+k969Y$j[8!UISV-Cf5@(jr$k-4cV3qUKf3i'CDV*`S5EKK(T"1L(l[HCFfrFcrI0
+@Xr'&,KeYeN*EKS[PSdHA(e+rhHmY'ai'AmPe-a81T8RFH@)F,U6,dV(3cT0r8pC
+C6cYDJjA,&HMTS6BXAdCql[eQZ!6(P$a"EmC8BRRZ&j5'0%&E*pNS-A[Z-c*L39d
+p1m-Q@X@,A&,)NHqeeCb`SpJA,-HQPCQe%@9-(6KEF)KkK6k'b9ZA%,MEk#r'HHA
+%9I-kUFpXUY6kYd[[QII28m4NU!$AjFpIr4PC"pCSp-4KV5S5&EYY`E)Il-U%DUF
+62m-+dRQ0$@)Xja[M5ShD#q9A`D*,Li*DUaGP2+SZ)U)f8334kP08all0`U#QcU&
+%S3,j%2IEA-@QiM"Yb"C5blJN$hk2'Pm!!INZpmQL44A0J)#cF-'@$@@c@ll5i'[
+f$H#[[9iJCUE@*Vbc+D3)b8`j16Y2lapKS,Ac$VaU5KfJljR#e0pCB,h)-Al"cEL
+Ga'Y%9Xa(9XG,QF8dcdQ)a4IJJ$hN3JTSZf@'$ZVpZRQbUPbYPC)@,138`GF'rGf
+hi(p#TKT*-ACT)hZR-lq"q38RI-Dm`Sb9BqZc(aajK$*f[p$2jHY9V`kmqDFq0EU
+6SQlD9CGEV"fLr@AHjRRUK%+9$fJ-kC5MG*%ipJ@4(`4a%&$`"ZrUmFf*$c@#b$m
+"JAqF**E8AVhe"j'#P!B(+(9Ml@Di280UX@QSE6[VBYRH4Y[PP#!33MpaMbpBRr4
+HY5VRaAZr4)Zk%ALT16,kG6JccRVU95C0Q&TekdY+blpMfk2YC*TPCQRJkUUHb#S
+B4+c!Ecp,2NVqS+P(q'3Y41#G@T)D[kQ(cGh@#i3dl%)T+YYh)-%Q&E'AIGVJk`i
+2FDhMkJETLR[EeR"0U5``&k`"UkiY`"AMf'$cLq+N([5TeIeT)9"I!`Rdr$rScFF
+E11p-BD@9q'%['Hq2S&e#@eq(T,#PE*li`(Ppm61beqM$`QJMX[5*c8pRHY**r0N
+(GM4L-9MF,)mLm$pUpkISm24dGi"[CTc(1Ji(Rr*D8bPIYh)ALQX"9f,S@`MHDVR
+GN!#F*)$XX5E3G9LIaTAT!L8)cX-MkiFbYdQ#C1CCmK@aJb8Y@*95Bq+$aMV()0(
+aU2)a9C2R%EiVm'r8aifbpH921%2a1fP4i@M*1cM('EKj+9(*NA*`F-RUVrS[@eZ
+5b0V@$rmAQrGpQ(CNh+N1X3Dl'GNmi*LeZ&[e`!IrM3X,!TrdRe$V"",A)G,@+P,
+#1*E[C3$S)12`)$E8L'8XQjUG(G(%NI,YrS"28KUlhB@6QrSIIH3[88RDr9kD32[
+G9dhPN!$QZ*8bCSS&q%BiN!#*`4Hf(k*SNA5D-'X5%a1KE[*'DI6a@rZGZ6L"E@q
+a1L4arXVh0Tl$"ZKSN6h5qDq0+FhSRjkj)9VUDLQPE48I`9%CpUr,Y"Y,f*))3''
+Hp-`m+RCPYj+)($FP1+aId(PKSllN566S#184feP!Vid+5*r'58cp3b*fCPj0&S$
+ZmRYr,VZ#e+QSI14Kbf0`(399+'E@hBRj!,#b&r,N@ckfaehS9GVMBMD1XEYd4&G
+5Th5ec&JR(Y9F*"(qMA0,S+R41e"Nb9Q4Th'i*C%*pFr48JFK8#5KrlrhGbdVJNe
+""H8Nrf2SZJUAh"pNf4JJD3$1IF@`Jh-,qca#LG1@+Sa3l0IL@Y,iD(akS[pf&#*
+cDj!!i+d%jUlYH'cL!E%Vj)4!eqSmF-X`8pR4,cRZb%`6MqrV1IFi*ZbqT5i%KY#
+qj16H%2M5jAeLNclAeIeXASkTQ*c&0YHcE[+ZDDXlZSI%BMde(XKVe-%S*5+89fb
+YX)kj#8'ReYj,$,62Gi!Ki(43RC`i*G21D8C0ba,VFaA2Dd6&a*f3!)TAJHEGbH+
+(fT@SMj6!J@re2f6'a%@I3pl1'KD[N!!4DaL$b6iSDH@[lX4#!iXBc"iKN4Q)TMe
+Ffai-aPa'r#SH8iLE5DRibCa53cBVX&2"M+"$ZV[[9Q3ZJTiDPmc8rfS2$ab-eiE
+QD3E8f"P"NFi3AU%169Il8fJc*C3'XY'"BJp6rhaDbe4rU5-MT-aM#*TY1AE'hV@
+`8V+!IF"2dcV03pUBX4REcV&)m"R1N!#)H2Xj@*hJY!@UbbQ20fIm-'FL5R3QCf&
+ak%fI@)UGk3*Cfk&PH19qPXK11Z9"p26DRSFc*B3rhPNX8X+2!8@r*0VX!NA)V`1
+h10[jfSAb*FNYB`L-2`D@VMr0RNRiVVk'3l,V`Idcm!0f58JF4["$cLjRrp(#[)R
+`iiK)i9Z4#6I'4)j9[Fi`hl(8#+p0G48lM98H1!I-*)MdL@ll8LYT-AI'HSfX1@d
+eQcZm89p6e**1-("Ye3F+[I6Q,FK[@rKHA98r*hm"`Z($DDqirCaQhRLTP'Xk8#Y
+&G#3AqDBpIGpral9Z01P(MTMHj,[GDFcNV6U&k$UZ"$PPATfID31`TNMR'MVLCpS
+E'HP$Rb*YFJF2R)24U%&mm4I$j6,(6R2`P6m**MSL+#(DcFaDGSJrL0#a`N5Gh-!
+&Fi1-1qr@,IiGQEN(*HA+eKFH1Na!5[X"AVeC13dJbl%`%,M[k%`"4DDHT,CL%1C
+*rQMPih"SEBMSi`QRX+I8r*)ja"kF)l4-UC0im`H-3pf),ZSm9khMB#qkqTX5S[6
+q[mD!fPQi41f#9*khFZ)!AbLV$USZ1almFVRU5b8*P'kJ@R9)LYIU%V*%&e6bkK$
+Mi#dNY0PZ$Q$a+ri8$8*IU@jA`f$`I!-UdV`)8VIal"TA-NP0kAIjaYL5iRd"R'V
+ZS(+#iGBJ,rJA!-lE0d6p0PChCd4IEAEmb4a,F%`,8$-4d8qXj!ZcB'*6fNJKT6C
+bmU@Hlq88`-SmUIQ**AKN(VFEAD8-rd@jKJiASV'f20cdLFmbmD!,1NVSX')K`P2
++38fEI-NZ%$C2')Y69"K)8"dC*G`[4*@)XPAdq#d2BfpXKG''pBAbM3I-qGl5'-S
+k(e)!$(RJ5UqE!8fh+V91B88Pe$K$qYJT5M3G*CpC1qI4!%Q5aGR$@+,EQL%5k8*
+jpZL!-mk()N2*KbiI##*bS1FqhBZ@P@m3VGpNJ,,%BQK+JK*V(b3Dj9k99*j5@8J
+p8@#ieM&HG$!S`qM`1993ImMF[,(Ya#RZPJPmFl3MTNbQS+IT80IDQK31XQY'+&X
+eN9r@IJ&kGA$$pqr-)A)&1I43,(20k9SiQ+)dN!$2bL%hDFr5'dm5AULG%#CF*(&
+%MRD$-lX!qa*9p`S8BTZlKf3AM8"(%j4S5,)c'f9B#K!EMBlMqrBS@iYi!iHp@*b
+"V*1f5-94Ybkf+!2H00m)E3k@9CiBGS4SHQp#`ZEM4qqjZrDY5#j$UdDC[Y$hNCk
+c*eV033,fZA!(UMVpc%%U#DP'%T,-cPh#q#RSC5JES%0ELG9cRJh(Yfl@iiLe6U*
+6G5&Z2I`+[EdZ0T,E$aD-`55$rHRYGhh4p!U`"$a`#Kkh,S,c+iZ%V##0$qPlrH4
+bqi6ke'NQ,UJ`2J0K&!8SPPM260qf5hj!JraNPR0K#6RIPa&C09)XVCmfXT691$!
+j3@CD[hL4"3iKZ%PD#*(&AH+Mrh03#HUUp4aB0Lh5D@N$jbU5Bpa4)"Ap*9aPShe
+hDEL&8KA3qKJklka2HH%XM8NaYfB$H`(TeSDrjCcEBfimV005BN&Q%`0HjPTJA,2
+EN!"@IUe1#$c)U4G3`'DlN48Q#")i+X',lJDdm9!+&j!!6*NQY%!2D3eb41&V4$#
+@i)f(ZSf8eR!"J3(U0X8q(T)KB-5XGPB'R@(MTBYqd3XJ6iD86!`G@jR+GFF,"V"
+JI[e4%Z3cXU3+*r*pe1U@("jZMTY9`Z!ASB#K,C6RVJF,pI4`A-T'3B-P[Fj%l[k
+%0RYf[ZdSMQhXc1hIlB6m#0XCl-[QRH6JVKZ20b(Fc+Y`Rca3Pe%BmGKfL4,S(Jd
+$'F+29-HFCYA)BdkdFIc,PAX39cKNHS!X96L``JjN,f"hd0k-`D"[3Ql6N!#EkDQ
+SLG2[e5TUZ%T@!1Cb4qZEKX4i$'DM#9,JfPB2Ccb`2e0dl'1G2R'Aj$Qij!e%,eP
+5em3@#KEm`94[JlEMm3")@[!`fS[5pSilZK*'c*YmI6(HRZS(TFLpl*p4j532D,L
+`id[P&jV%`J%-"dF@LC@RFjHHY%F9XljLT%*'BBDp4bHh*M2bY'0Zq49Vaq3BM(f
+NchiBSUYc`rF'mAYL,Hmi#QZ$@2ZVP8p!,PG!kHQUdG4QTrc5[8#6JB@QMaq(ii)
+@"V+B*epkCl`k(mk"PUFE65p&KkBh@E`3d3-jmkR2YN[J[(PZGYpLm[##Sip5bN[
+ZTU&Y[G&deiAT1`mP+XJE"SK%,%6K&)93,pLC[!80T&r92I5NL(#V0L$m3,rfVRc
+)"mVcSCC'X4&k6aEa`('3!0dU#ea235Pj5Iqm(YS$F,6GkFM$N!"mZjM0cZhTB&!
+X1``BS"flTU#H#e9)[!PYbcTHHD!X*0QSUM$A0%dKR*M8acTA5H)jX%3l$["VClJ
+0RU'IE@H0BCQEaGPJGKLC"hekeXU1&FB"!p0e@!*i)L4XM8PiY#lbVCK(UV+%Fhj
+AmCCbT%fHKXHX`3*(I#"X(dJbiDTj)Pr)YN+XRC!!i!(iS4$(f6!40T!!K[3TVld
+ap8rE3+dhYJ'PrH)V2VRrMKQbN6X$hliqC+X'Z+er8R"XF9)UZfS$ZNmjiI)M`"$
+3VED+,Qa43EfZ!3RCMYRm8k9)mSaaf,KI1pN9E,GiLYT4TaJ@L,#H84Q3!2&JC`M
+"8kX"G(8Vm33UN!!KSQNa'#jh0-@+jV"r[eF2hmAb-0fI5MaR8fTN$N-T&K*6plh
+d3&'AMUF,VMEkmVU)m'Llb@5KB%k-RiLM880GaL&IhkVm+f#!&!A&i-D8'bl(#R1
+$T@qra%40`TB(Zf0keCYSh08Bm4-ei$abZph2G[4CaZm,kBf9m-crK*Ie28e#D2L
+6N!$a6rj%D'b$Z3F@kVErAm#5kQE*G(Qk+UA,&m`8)LAZ0ErIS0r`[flDY3ee9Lk
+)peq$`6Q6'2K'K[0VREAec'p'14L55V#lbE&@YHcIV1eK&NTNr"-64@(Y+9ZVUH"
+PFKS+5Y@k'K+IDb&"8Tp'NMC2FLfZ@VA+'cGL`V$Z)qV1-@JMrG"kKJ@&U!%RFY#
+ViS!YGcU@a(('pMr$mRD6-*HRL@16KiIN(dm808LBUI$c4YX0EL8BNhU[Kh5I898
+IdI!h4dQj'45fb6Fj!-K#"K9-R9HHdqi`3Sl!M#he"Y-5amhqibHTB[d@2I09-D5
+-HLi3mSbdkS2IIU1c(,C9+S(PeA5rfC2l45SeS5-JbY093TUfh--9!D"iX*bT*L)
+Bk'BS3lB$$)bK$[Eh@*G*98(NVl3$JhG%)*2'mJa-'1%(Q"28A6*NcGX20R8br!9
+Up2THIEfdT1bKX'Q-C(F)ib,9I!TJRZQ,VME#D[eaMU%L0f'fmEf*([Cme8#2&f(
+"LQklCd4PV2)b%ZUkRK#!i+qSf5DPhqND4@4*KQUaKCM8'0l2++pIF#fC&PPb1,j
+2p'e1FkZd3BDBi5MZK14SkUelRZpJQNi1L9)aP@eTG+&i('iP0-KL)c8-cXj$IF8
+r+R#-3D*29U)9kiMNJfqlYaP&h-"Cr9%Ij'f%kJJDX8c23R0rTKT1`SmZAIN9SCX
+DEDPe4(X[S%hX"&3f8DZ#eS`ci4fLL2ZHT`80qHLfU@9ree`VdedASd)Jq(92HNa
+d$IdU-h[91B&98)DV)B0PP%9%IRDlP*c@J9#L5VrmAMK*aaF+0!D@E@X%Q!0CeRd
+C3iBH%*HEK2DeGCJ*TaZVJ#A+#YpK*f*TG$'3!(56k2m[)rlQS[2R3@EMF+kCUK%
+q(EDYdXiMAiB*4h[)qf,d#D6%3YB!QeN8"$AT`D3@[rr(M,9R1PZjl-I3!Bi!,Sa
+q[9-Y@jN6ICrrU-$iLIaIhaHPNJJ(L@fp4C!!0m6Z!AT,bZ6Hb!3!81UF#&rk@NE
+EU(BTKk4)%Pr-6#-'TVPq"`NI@"1Y#lp61'aiYlQ9q58bY(&Vj1PjLrZKTbjF1*,
+HE$-klB9EpVI3fK('bfhEGf!N2fjr)'L*mYTX@0jL1LS`ApRJb@6IFlS+L6,,j%i
+4,)'QZX-hYjjRZlcUE-VL*,fhZCX)DaY9rF-qjl%qXI6`a52Ii5f3!21PX!S0jY!
+Ad-dR9mMU+dVhpT'phbb5h5Q1!kdEQcf5%)+YlV#XL5haIk*&8$J-b2[[+m)R62-
+[3fEN!b[EcUI%#`(19jC1jIV[0+G8iVImlj)`e1-1VC!$D92Cj+E*'T,CTjk`bAj
+m5U1L3P5J%X0!V(Lp-MkBp%T)lNj5Z@b(r'U)qFb19#b9&Sec3BqE""mI9j@Q),S
+E@jC)cMLH,bTBcf*M"MaT-DQf%K"jIkNX9!0X5RXr-*2m@r&#rK`&J`G$KXjMBee
+ZdQr&Q@GYUf$*P&LSk@8q+0B3L!4*f(!A$%)9P$KmcJX2jVZ#JFMGKXjaQ)iqIiY
+9!-3ZC3eQ@,U[pd2*[F9BAq&6*#0,[(Gmi5Mc1`2UG3f%5$Ui)Kl&TP!'TR+Zpb5
+"UU&dqdU-VNhF,dlKZJqkDD,bI[B!#l5HP@A[#UKY`CIE+X-,3ch2PS3dbYL8d2d
+@L-!RBUPT1C6#0kjDSN6cD9fp1Hi0hc*-0V(Up6+%dpkIki)8-j2P-r+9pHJJ81e
+l`@rjrVEpaISZea-kZ0a`&mB2c`iIJSJ%e@YI'N04T)r`qAl(YmT4%ISqGHk-C-U
+UPUV''lZI%N-a9*eb4+c#dRhr2@B@ReaKApb0V0HE'US$#5ZGG5Z"+iM"),)K56`
+H''%&LLXDLYjbY8XhXHVQ#"["N!$08&@p@1CqR4QTD8`h@9cj$AP`5E$2RVHrH#k
+jlB6hdj)$b%,!"k+)XXe2FFF0$&dEVI4)jNhJlA[kr'jNceM(ML!ZDkL[Vil3q[4
+Z"T!!TR0#ZLp`Z@c&I4&Pi4e2dbEl143fGLbH@lDaQ0Sqhl%GG4!T8m)A&TbIBH(
+D8'QI49NPP0f(-FZVZ[EdfAi'5ZlP%FT)3814KLNCjMkRfAJj"PC)@(rTLHJ`PX8
+!k&BPkKbDN!$$c6h%hDd0I""V*MmUNZ50Ee%$ZbBrGX9(Zl[p6fFiNGf`ANX'ilN
+YV[SkG+Qra8iNX0LH6C9BLB[R$8R0hTq[i"PXeIC'a#NK!@40#C3G0U(+,$AR8+1
+)fr(jfYT5pke#eVZ5H0ke!cT6r3U&VSXia-CB*aS@L3`ZI#qHFBSe+')IJ&4ZhPJ
+pCp,pXLBLN84'PTJ(D0dKM2A"a&m6L'C)U2M"2&1QkP"Y5P5`D5ADXL`dPj[LGcP
++MU'Y&)*r951T6k++crX2Z'A'08dd[b5!9I,$LSXKU%kD'DAlD[$CDkMUp)mdPE!
+&FBd*"LcNBkm[(c+[j!%Vp21FLDB$ArKf9ZXTZ+3iKPP,Ba4jafZJ4p1"E!)LZPF
+fSme$9bbNG2Ze#Uc'NHr$PA+UPkHb3TJ'@%23Fi9*IY8&9"8%-$I*ScaA+L"k%rk
+G'NqZV-U#`M%eNbYMMRr(cH%9IXDr)ISJGB&[PF2ZbX22l&KG2qZ0*+EFj3eLBC!
+!a4krp@ppVqLre*Zi3BI6G*b`IIF$N443JlAUQN+K+)2*2JK6YlYjMFAGI)61(VD
+p#[pkYL!YFSjDk14RfCRKMbcNU+,1@*A3hE%T%5EP"I&5C84NceB(6cp1#k"H`0b
+FY(dYcUVi[8aEJ,M8Ni&'3IeAHN@eXD`eKf9iMB(r6L4G6N0aLKT)r!L%THB-X9'
+2-Rb4N4$A3KbE#63BdddE5BTe2Y@Z!#UC3HJ03[Qh*94GIN-&a"$4G&9RX8A0h6q
+f$bL+UB1$XrKIp0m%l#S!CpKr'+"M%+kiKb9I[%k3!,UBT915ddqSD)#ZP`#KH(E
+c2Nl5!D6$lI6RT%GfedQ'0[F(bp55p+%MC'UiMZPhhjMVD&fD)fZ#hrYNm+!pj,r
+hQB9X!Nl[0`CNRZFCC,@'HS+GPerC,GHTHc3&P"EHpG9-6M3-GCRpAV%GpFLrRQm
+QeXM3SF)3Jef+U@XaCAAU[Rl,GGYl@)aNGYRZ"mf8Z0+X5mXVj!%R5L&bjV6Ed1C
+[SHd)PmjUTjA,C0mrVNPfaFH,YA'!H)F)5ZE6Xb&mGS2e("PRaAf3!$R6-di@GYU
+4pMYdk9,(3Rm8L13,!HMM$T&cE9XK,@TL&"6AiH9a-Iq8C4CeVFVUqZV5K9Q++KA
+Qh`jH#VNX8CTqaQ")Nb#!XAMTqIZRGfCmESkrS*Z[QB$U3S&!C-*-$#q6VTV9daA
+V'K05dh%F)rY4R)ED11$I6b$J[SLr`U+BQ#RZL"`!3jMEKMh1qKfIm,Yr2N5"!'`
+@'dKE[5rpi*FlpQ1e@%dQ+bQL&k-&`Q,5VEe)2ZS'6V3)LU,Q4,Q`cPd)Q!p,cPe
+I!Y'Akk!fR$P9,%CQrmUdBa+ilU(9UPV"##Z[KMeV0'dF["6LR!CU`CdN`4'6Q+,
+05'q2)A4Bh,!6*3J#`SbfCKhX,[T%"5F14+"pAhm*NKpH'fAhkT+A!f2R03kS2pd
+EDqLVrpKhGMP)r`N$pfGDpbZJZ6FB)p@1K1i1K,1JYhkklm29TL6)1F66*(`84NT
+a-1km&lVk`h50iSdA%!#$)[ac4(L-E&A5e&SRVmR!QIRL8SG&!ZAbI[F4E`($[31
+5)eGpAQbXUH2Q5G*mS-,qUQJkj*DMVFq`RL!S@LDepLe,Af(1Pp)Mq2f,JD,83ZU
+UaL(4MMeq$r&mi1*he(NQ%c%&!p6UU-1Li'R%H#&NhBU,c!&C#lBrjAENDFRfII8
+lN[dQA&[PM6cM-&'+$HqheBXbej@Q',&#0CJmJcdVjC!![5apfALY$fGVbae4GRi
+6fYVL)eh84J`Ym88`YM0$Ql5N-K)Xa48,%5H`)L0H2)fafcp66cF"qlePPCU$+24
+4AKf(&%p0iNFm!PJR04a`MIU*@1F#YeYS9R2NhPcL(UkX6B1KDpmI5%@5`fBQjZ`
+G3-)'Nq)Y"8Iel$%V,[(aK[%(US5*pDjI"#58Mk8aHAVhG"r#C"1$f&Rj8Ae(laq
+iKaBl*!ZhSha(bD[M,Q`)kf8PCD$PK'1V@GZ6L[K$i%ek$NqDCEH8MaFZAYJi3b0
+p)-'UC05P6#eY`(UC*`BLB9+-P3Sih8c[KU93L*VBp2TR!+e*epCPI4#l(irFb-(
+-l2d`Yhcq0pB+cMm-Hb1QA%XS0lG"!eJYAKbP%VJ%M4B)BGZ(@GAD#XmeEpC)`Z4
+Bi%6K")1SDDU42c@Tp5ZM5)chVqVKD%AYRQKAe)'DF`!i'RNQ(kJkMd4fl2LYBZh
+bJT4bBUK8Mmje6[Gc#d@L0cmCH)%`l`j(hU(C31Yc%+'B5RAfLN2&GScRhcemRGR
+Yq99*Q5ADebN'G23HPX&QepS6AIVN'f3KJ9$G`!-PMI1N81'"4MfT@KI5)0S+A'Y
+M"!XTAF#3!1-c4HA*cS%&VB,ba-mZ(e4rqGXGNQ*UNE302j%qV@9EMjKGBk5C-VC
+bSPddXp"YIXqpcEcT0`kE%lK9m14dSfSK$+'c`+2C48Zq+6imQ+R(A9ADSYXP)Y'
+2Aba+d)N&KeU%i!M&6QQjJ1kH+I4@5['$Z1J@T[(``fUfTHrk%db9@M&&NBNd!Tq
+Ga!+C)1ad-JB(lRF0G8((D@aL0&-8l9YI3MjI3*!!l%P!Tb`%Rc%)f`6G1mXGZf0
+hAQVi%e#K2`r!C#`5p$(Z08[p#4)Cdfq,KphAfaCF*%HfB#,8V"9d+*F+2AY-E,H
+Um""&6UTC`Qr"k*hE3mF4Brp2FqV1GAqP!I'iH$`F!#3!$Fd'a1$XJr`)Xlj(5,Q
+m&[2jL3c(IRC"HKrN&GcfFdIiU6HI&pUJJ6"jSk#J4@23cVL`RTql&fiarAl8'Zl
+(2N&2EEIp![R"6(Uf$BaQ@R@kSUrA5I[kS!"1amSc6m%jXPpaC0FB8-XQ$fM4Kc$
+*U'8Jr2)iJh$'kAh'&M[4SrL"9L&&32jrP'lGkd"+fC`iC,#kKaRfl3(jHRQCaAm
+#)'dI-9i"dbL,ZQG4NU8)kf'VG%L0ApYp+!DAaF22XICPmL(qdkB+8`+#!+'"UQB
+FYrd*$rA4YpNhI(XjFE[BRh-Xp34b1KH9Ea8Lc9dcYTT-P)Jb"H`2aB[F*58Yi6H
+M-f4U8QaATmjS#1DUkT'@*-('fQPh0*T%C5@-(c8FE`2H%R114RQ3!+*fGkD%#1S
+rX@VMhe@f-VfMAaDN+1r1UXm'pKiDa0pZ%9cCSe%&D0-L3YDcPjUU#,D@4PDH(ff
+"dH90rX"@mTh1DrU"Yj0")!5IfAmA,C(`Yl,-0%R1+1lPF@M(`@HVd)Ik32F)C2L
+d(p&Y31[P$R-IHi-H6qlh,hDIFJUk9`KUPDSpTBMBj&,1DIe"R#GIjYm[RQ@12i,
+D1pZI"Mc$Ie(80"9SkJBYSP34rTBhG'E%NbZ4p,%iYBSm#Lh!)e6HHI'f,VeH,CK
+6hJSA3VSVZa6YPi3Kh32[AZP!G%AqT*NYU!1Q%VC%BTE'UjJCK(K[Gi3a22mEd2i
+D",GlUC1mY5e[Q[[KX2q*fa%#F)(Ih8f"EC!!`$D)GeDifbP3MTAX$)$M8(KIjGI
+$jLmZMar!LFZAY2"-fM"E%1l%KE'#KTRR#@Aq1%d28UHcY6UP@Pb)YDpbTe3R&-H
+CXBi&F8TZiD4qqjpL6"ieX0E`["r#6J'("*UjjNBH&bDY28IDmA4-U3la[eAk4he
+PbCAVC&q3!2YBN3hk4NXa,D-eLT1IB4`)&DHiY$a"EJ%el(QY9&@+SYa26-Z(10'
+hrrRfl+m'cZX[501aT&3R`MU+5m5Mk$-U963-(Cd0qZb&NN$e"FFqqQ9#*hGNG6a
+Hp@(J0*0R9aQ*5%(&iQ'qCQ,r"9q8Yjep1$cpYR$""%&D+6B1%2*Kq8hq81d0lqR
+X+TCeh55mV93$5elGXrhV2"IG$eN(#)8V`J+4KLdLCmj`TU3A2!AibrVI`D6#a#P
+)5bd"l9eKpNbNcjaXX5cUGhCS5QE'@*Id4[,(DaTk6qZ+-PN1pYApTib1'K@ih,B
+mTJR8SBKe!BG8S'02"II+ZM3aFSTMVIfjMj!!G33QY",m1RrqDmG5bGVL$XVKM"$
+AC!bRFY9b(dV6mhjdEAL0de-%04Z0G6RkaSLE(Zd'V@IlD[$RMXY(NL6Tl@#3!!H
+Kfh6&B[fI[J3'P)UXUeIqC$rB(f4MEYpC9b+GVYIeX)"`PpbM&91"+2@(S&lST%p
+B[pI3m$@IK!mLAlSE,B*['T8H#Zb!#mG23KiK3Q(0ZrX8fa6X"VEe35kq82FCmSl
+UAE2"A@Ep@J2jJBpX!iD"-8"+C$B5(ZX!p$adC8%MV'j'-k#r4LHlb$A&15pb!Sk
+b!mCSBSJZL3X6Me-EjlSA-9fME8F93RK,K%blZf*L1'GINki*b1qp)(bCmi2S5V`
+)pZST$[,cC&2UqDm,U`4500UXpmTHc"C-'MH*D-)V2,B-ETbVf2AR'E-5#IV*+20
+Z3b'*qTBVlFIKa+U1j4,jLJZf8ZKJaF8"Ic2C9U'K4C!!I)p&U5-"`V(Emp0Q'`E
+FpD%jZhCUbaqVlA`([-[03f"%R3Q`US@JCZdfc"-[rFX5qrpScRiqD0d4Zj0bTG2
+pB)KPe)RQrRE*8U3CTM"#PZ1BEB)95)DG-LXUGHSRKeJ!2jm!!!%!!!)rR`!#2Tm
+!!!5N!*$c$!!J!!J!SJ%F!)"993#3!``!+!!S!+i"6J#e998!N!--!#!!#!#L!4`
+!JP99!*!$$!"L!*)!m!'B!)9993#3!``!4J#Q!,S"eJ#'998!N!--!#J!+!"e!6`
+!Ke99!*!$$J!S!#J!`J'N!)K995J+!*!$$!!S!#J!P!%5!J"993#3!``!+!!S!)d
+"&`)"998!N!--!#J!+!#f!4`%!999!*!$@J!"!*!&A3"`!(%!V!3#6dX!N!G+!&8
+"%iJk8fpbFRNZ)#"*ER0dB@aXBA4TEfiJBf&Z)'pZE(NJBQ8JF'9bCQpbE@9N)'p
+Z)%K'8b"fEfaeE@9c,J#3!eS!!3#3"9d!F!"a!+`%!Np,!*!(5J"9!41)1P4SC5"
+QD@aP)0*H-0-JE@&j)'*P)'4KE@&RC@3Z)#"3E'9KFf8JGA0P)'Pd)(GTG'JJBf&
+eG'P[ELi!N!05!!%!N!9Y!'B!J3#L"!*25`#3"33!5!"R!31)-P0[FR*j,#"LGA3
+JB5"NDA0V)(*PE'&dC@3JCA*bEh)J+&i`+5"SBA-JEf0MGA*bC@3Z!*!$I8&%3e)
+$!!"q$9-+Ni3"Sfd!l!Yb!l5b-LXVieY0hP[[D[HQELEAJ$%!3!-!N!1kY3b!!!P
+T+[lJ!985,2Y+b&X1iq9cZS94MV)rcirrVL!j0k`Dq"(+KM9jKQ+MCf[`V&ir"Hl
+X#m#`U3BL1%aA2VhVbkfM'32&(&P,'cJ,!*!$6!!#!*!&-3"R!%8!V33%8A9TG!#
+3"3S!8!!F!4#)'P9Z8h4eCQCTEQFJGf&c)(0eBf0PFh0QG@`K!*!&#!!1!#J!,U!
+#!!%!N!28384$8J-!!4)08`UE*!!lLSL+&Fm@d(1X4'`3p5`rIcrXejfrjql1$+G
+Bf'%P+PL&999LjEra",'U"3ZbC6Y1)2Q3!"m"9#5BqM@mKDIGaGRG6G,)HT+pI4m
+Z3pc&PmHP#aEjM6KA6jAe#b3m5Sk53ElSG,A`G'S9QL)q"HC1abaeLk9cJ@A[I"3
+FZ$A+c+Ce3%m()3a-9j4CR+h"Zf9c)KIFIJai(r!m3+*2iaUXL26-$cGj+&$EM-K
+aUkHFa@0E8ER-cGETJDZ80pr*q`cTre6rb@d!N!4Z!!%!N!9S!(S!I!#f"!*25`#
+3"dJ!AJ%PL%j6EfeP)'PdC@ec)(GPFQ8JFfYTF("PC#"LC@0KGA0P)(4SCANJBA*
+P)'j[G#"cGA"`Eh*dC@3JBRNJG'KTFb"cC@aQ,@9iG(*KBh4[FLi!N!1Y384$8J-
+!!,B08`UF!J,IeD@eq&FCcbkfq&ER9GD-jeTPeLV6a9[F@YZFk@Pf9XBCZ`!J$AJ
+'2!-!i$Glfbd$i!F,NSp!L6rCXJc8C8UQ-b8UNlYjRDV)IfG`"SF"fNkV5#3RLK!
+[-*MFmZKS#c5fI2M(Y&HpDNIKiiAL+C-%a[KIH$a4A10R9hHamEbE1,0kIpKYqrB
+Vf*8YieKf@NUGL31UY$j'FLFQC'e-$J#3"$S!!3#3"9!!@3"N!*-%!Np,!*!&!`"
+%!%J!k)JC9'KTFb"KFQ0SDACP)'Pc)'4KE@&RC@3Z)!#3"%J!!3#3"8F!@J"E!*3
+%!Np,!*!&!J"&!$%!k)JR@@pe)'KKGQ8JC@jdCA*PC#"KEL"TEQ0[FR*PBh3JF'&
+cFhG[FQ3Z!*!%%J#3#ji"AN!#!qJ!N!0m!!%!N!9T!'-!I3#I"!*25`#3"cd!B!$
+cL&a8D'9bC5"TFb"ZEh3JC@j[G@GS)(*[EfdJEfiJdPi`db"dEb"MEfjdD@jeC5"
+9EP0dG@CQD@jR,L!J3@iJB@4NDA4TEfjKE#"H-5"LHA4PFb"KFQ8JEQ9PC'9N,J#
+3!ai!EJ#'!0i"j!!&!*!)!38'8h4KG(9c!*!''!!d!"3!dJ&b!!%"!!%!N!8$k!#
+3!j3!!!%I384$8J-!"1B08`VN)J$IGJ11FDG1aI+XhN5ajMb`KrLXhP3XTk#)Ge0
+Rp62"!"d')Xj5G&B21kcbrprhRKcHfHed@!),S+0`'6QD'hf-e6-0EE0JA0JYVCT
+KMLqC4BD'lHI%rAFk&h,ZT!UE+blcrR5$XU%CY3&X,KdXDS#*9HPJ06Ki%J%%4j'
+$aiQ$Lac80FqpJqd)X1(#V")%h"U$B,1dq1`PRHQNP#Lmm&%MhQUjjlm1[0)NHb-
+$5U,$+hX*C!STdVjIpHXJf$AMJATqk-M-MAJli["V5jR)&)*,#QKAa55e-8raq6F
+p!b1H-Bc[G-40$Ldme)!l'AmdjamkrMTV)lN-NRH5S0Q(&[jUb4G0pRc!Ah1RGIC
+')T3DMaB!!!F+384$8J-!$#J1A3ZXJL3qkJcIlqii#D&+Ke!DU9(K"%G!H9m(C[1
+JfB+%&8pN1&D8a9jY2,15NYUHE9KV1r(lkN0S,@5Y3J9V6Lk3!)3*Hi[IEhAm2XA
+eqmM#S&QeT-lX,V86@a55-#r*XU4,K4$5pcZplm6LfR2Vp`F0jqFd-3%N0#-e(dE
+N$U81T2pUb-pQ#-'`@@PihV`qI-'pjd8RLm)IBIebRc`+GJ`A2SQ9L4kZJf(%Ki5
+*VD(+++JiJ(KI*!L$-i6RJBMj%"Nl8-TZX#ZTIBcBlM$p%iP6Rlpp[)(p[2VZF,c
+rpQH$iklL2p[!0f(&9(QT2YqjNVeT*-pR6bI2K*@I,SDba8$G!'bC21$jKIJR0ih
+TKH,TKfI'!mcHfQh&j`f`,dKaB5E1mjd,%'aq)4Z*jC),+Ar)9b3$Jkf@qrR[cF3
+cPIATH#JbR,XaXMLik5Tr8bYLC46q"Ael&k+"C[I#"GZ0$dVBebMX4XC2jR%5'B3
+rL8[E(JVicPi$,iS4kXh`-m@V!Qj4VaQ&0c&()JhM%r'jCe8ZjY92Rj`CFTrN2Kl
+HEH!EPj,MZ@)f9CDH+hEiTDeIR%r+[YVcfk8NpmZjEFX%I&6"VhJSqdSP["kj&S,
+-8"q$@hFlBJDqY'mm1IR$qG"UHHkj'8cVrDQ+IZU(8IJ2r+`9X&j(B4F5)P5mR*i
+%J3j#-[IS!Ke%SY!0Uq"LXTMRC6'h+)[kMf34jf3K+&588$L%#LRFTZT&UP5Pf`0
+2Xq6d+c&C4[ZF[#bC[qBB@8U[jj+bA(kpjl%XDpk*lM)`2ki`-+8rG"Lmb1a`'!5
+0rN3`q#!he5SIaJ[hrX5$@Z[`iXKI9Zl`5KXQ`c"*KXNc6+SZf3Dr`9YX&JBq,H,
+iZ,!,elXee+GlXAa$MkVGC%f"T8I8PkC42fLe%MV,KqS+VNa[B%P[1H!S&5jI@,Z
+J0KaG-b2TERM4K(bSPGJqL-%1fYE-M91k@m"*3&Bfi2X@YjEZT3J1QVkL![(3ed!
+b4qe`$N"`QL*UQpdF3bfdiT(4$1iC3,"LM'iV364RaNi2iGC+dhq6$j%`!`lI%Dm
+1d4cTqeIdJf@e5Dc)M)LN2DTPe)hD2YLD3f%01I++KlAi[L4ZHA0H[3qE9@qmSGZ
+%rZ&%Y329Ah[-dRZ#A%bCT+TF[bkE+VPid8'PRJCMVrr+36c)[N!hp"D"$ZC6SR-
+ajP5(UD1#Srmr'"hLem1#8fA[AIR(b4fMd*Ulpcr3#[S$MSdVKIiDdY4fD"6)TbK
+XB05T[[6pc25K$`8IcSSJ9#eGjIkb6qhVqj4bp@,!+Ab0p0iTlF`FG5,VRGTaJ'J
+@Rj[9MJfV3!i!FAq$hT(CD38,fJD!CimeQd(*"%i2DEIGVcL4Sk$&k5BM,TrU&DP
+fNAS0TpKl&Zh2lXZ3!*&TbdZ$GVILk[[+Cr""B06H3[-$Gid6'FUFe4b1$IGCYRQ
+XU8d%bl40a"+-P*,$T29Q$H1S#A(5mGC($JcjNmKbd,k#1UI#h4RE+2SiVp#F8U!
+JIRp,rIY)DeGDL'&83"i$p&i6,+a`1r3(fS0K+SEKRZ3L!9lL)*B)!F#)rlQVjd$
+`pqi0RQpXY&@pYrVNk85Irrh[M[qHrBjVrderGGk6cAbck@*X[5*13r1q1RcA*r(
+AY'c)Q&a50kA)b(ETcGab10R#2bU'XLNQNC!!JpI92ER&p8MDSSMMNK34ILGadH5
+hd4EHcS3HC4M,2P2`GPqGP+L8*,m1j`!2G%KF,RNDJPmUKYS9CREH&0cfZ+k@Eqb
+aj91VBdq6rDUr*a,[PG+G(H2qS1G5+C5SMZBED%SB&0VJ,%j62X2L6Z[Z$dVq'44
+'F4e3rYULJ[-me"T9J829KkaerSDL$)`VXIrCdFZcN!"TZ#A1de%Y8Z*-EUE1dB#
+*1lE,NrPR,ZC(qHd6E9H292IX,&qq)8rXQ'mG0F'TBQ-`'-U'0bZ0I0fldUeC)pF
+B($(0mYM#MjS2bLmArF&Jl6B4IR*,dRjZj2c")G18Mbhb'4BS'bV1cY1i#FPI5GQ
+!DIUhaYA"UlBK+ErTQSd''jLfK25XF6Xh*!9-C3%qf%MK,m3U-M!)K,fk%TkBK&2
+brJZdA!"'E1f`4+rVE-pq%&fdrE"-3)#i`R5j*Y1f-B*N'$,XS6dfZQ''F-Z(*q,
+F4ir[4U+Gr`1)iAJSBjSKL8*IMe6rHppArie+Gb2BZ8Qf+l@fJlHjUXbHLI@hl5B
+UN!$pc,Jd'qhDFE1TIC-BPF@@5VlR@LJNK,1'9*eaLB1,Aa'&8ZNr!CA6DN)ViC4
+-AD+8`[#"#%FTlJFYPBQFIc(%k%*98ZVB@2@VpFN46eGTXP!p4KUi4pA(qEEmFUJ
+T["bc*Xf"AJB*T)e!-4UU4"bk0YZ"#V2#JX&#@U%EkXVA2hjV)KEh[3!!(9j"4%0
+5!`!j)!pG#pX5324$!5p*Ka39a5NU+#USG3kSU#Zk!XZ#NcTTR92Vf0T@8('#9T`
+(1+pfY(CH1NRDfL&TQdibTdQE1IHpHe0!PYd9"@51YFfpjbDYi,GmhqlrrmUhqqm
+r"4AQ0J0%*%3L)"%K%4)58`jM)6$KhfU6PUc8d[@%j[Jb4r1Yk5IqhaES6ZJjEcT
+[1NZIT8N%Ar!jP[DL)4A@&ddIIBem#&ra!cl8AVRl'GcHRq2YH,+3!)`k4ml"qa)
+I5SX4RNP9)%-4Lq98"@D+'2`X9Bm4`T6Kakq+$1aAZ)!Lq"@@S(18FEaqB$"PfZj
+$Y#ClcNa5dE0jqLHQ-'*ERVSpl4R5e982UjR6p9Q6PRq3!&8!k,M8X-Qfe06efKM
+55*9KPM%`1!`1X+K9q(PU&@C9!hAC&Na4#,H+kj5B`K`F)DIXQ&)S+1`DR6*5h"T
+C#T[+3L8G(@fYE9bVV8f[`HFSkNrk$@-SdjmE59RCe+G1#mS,L(CLrZPaT1`Ym3r
+I+ajaT0lqXh$F9mkV5Fkke039BD4q5D9V2AP6'KrVX$qp2)a8,1dB0qj[BDcYUbq
+05f*)$C@*K,kr4mHU@I!1il)Z(Mp(,FA)Cm%UqrTq,)89ZlB9,re,#e*jLX8#c&&
+fe$E[A39+r2#h#qq(EM!L$[DAmAM(MLNcj2q`cGT`VC3$a-`IcGZk8+DG054cqDM
+C($fkGU+Ff(SFk1![L@PaZT`Q`G#J4`TSMRiZPD`cM"[A4dk+6EYTG6NTlNlY*qM
+@V3`MC9'$k-,p#q@[Cel)IfjZHEPGkdbUU*@SlFTVK15-F8EJBZ9lj$*kMY)Lr3B
+j+EZ-+1DdPL0,HX4&rSZ3!lh!#M!+*1Z0V'D+q0l8YaHN`el6'1mZmP&bHfFhejR
+PZ,f&XP$B3R'iN!#bmF($)4[B$%lmScSUUrQS-0&"CJUE)I5(8)9B#dF-T8bG955
+YE!40Fh+1$JG[((Q&M[L5V,jHb(%&c`6"i9@dR([jEkNNG4a0"i%l&JkPFiY*IH5
+'!lqFhfqANdaY(-hpp@CeYM`rkkZ#dYadb4GQU"N-)6fCRfkhI6aTF`j)YU'N'YB
+Pmm-#8Rm*8CJpA8EF%FE8+lLBSJbMB%%ej9c%@$Q@)j-c9iUr%X2DFa&''Q,@N!$
+0DPCcUH&X`*&i0Br4F)j8A$$[2r$d`)'$0e12l$NF@!VIQl#P%0BiB@flTEfkZ`4
+6&T`dASkFp*)FH8*dj$h4NB'K!Ib4[12UB6R,S$,8'M-rm#G+Zl5+f,Cr!rkMLm&
+GYRGqSMPKd1NF-T%,-SdGb`8")kZGD+jJ`$cS(La2jlM5Gkm[*j0QFP`%4qbIGY$
+F[dEfhG*Pbb`V5c2*5GCVZ4cRFU@JJ#BF4jX8@ba%ZrfaD4$TdTl*MEkD2M"hZ[E
+DaU'%Sm+`#53+Q+dF'J-r3fRCfSm+5$&JY%4q3XJfphJPimbjQa`F12Gr1$08866
+BKC0,-S@-'q$hi&'Y"QXEB)`UTi-B[H%P8*P,K%)Pa@1cA%llj*ImJbl4CUR8M+9
+YHkkES6'eU$9a%&@-UGp[r6VbjVh,G5K*`RlcdZkP0IjrfXZJmEF4bVU4!jlKr%B
+SXlQ[1lm4'mjS"hPHM(&96'0VR,HV'VGQm+Ea%dHbrT1BR*adb'iKTRY[b)PT`G2
+4C-f03NkZ2h+N)j)3VpQdA%l6QR*b&jcpp#P(!b-9GfKZh#3jUE$RdR5`R*4EVB@
+3!+P5MPmQ4UHq6,)fr-$4J8ld%,Q*Lc!6djfJ3Y*9,lQH&A&Lj9r@ePG2(NTk+)S
+9Ki6Z#HfM`SMU`953!#F,hhN%Jc*5E)f(5@I16,q%f3%J*'dEM8A(1@)kHC)M@ii
+A88@R#+RAIF055,fCN!$,)-PC8FZ`(Kq'%@f1Q#N!FG2$kP1hVSre1cEBXi!EXVf
+`%&mrc2,,)'kqr6IMU'@J'5$+%"R!`Vlihj32A5blMUQmeFUReBbFqS3I!'0&$i6
+JbE+J*U5p9("qEBBca(*Kr-%aS6bj@0XTYD,"NPaH`'4,jMqDip@5![Q3!+a""IY
+$@6ibL28QRi2`SSKV9P"CL5HrD-,Ap9,R$ZaC)fd4QKh8X18ZIJ![&rN(Kc2KbAq
+#XPd&3qq6Rj`FLdj6d'PEY4!XIGMCd@6@ACSE2CH3!1@hE#3"9NL`hI4bFJGXf-X
+,lP#rFC4`h"$I)%HbBY5r19JhqkiJcECq9r5"FEbY4a9b"CF'F'$Vp$k1,,GpR%0
+b0X&YqRSY@3Zh99pm,'*VYh"NQIe'e'E5mk[EeV9E#&Ql3[YfhZ0TEXGfE%[l,1p
+KMjaXklN4p5R-,QEFR@U$hcqlYlRqPYGL3U$ppei-f42rhZp)$LX([i5)@N[1Yic
+bLCL")IZL'I`b99m%13!jVYmBfNG)dH8#BYYJ0%5$KhEZj-L+D!-H-*@3!,)CPdk
+b%Pjjf1EZ*@PH9BU1Jr*D,fD'8!FCfIUhap305$`R%jE#B[*Mjj3J"PDkpK*F!V+
+XY%jJ`@VqeYXZBXB1D2U-Z2"Z*$d@e3)[XE(&dR!aZIV"LCDfdZk,58*HVbja$Dq
+&KepiM38C@cSMZT9a#ARJfl6r#h!*jdAJ[UQG1Ml"CD*+9jhB,DNUl,q`BE0h(Kp
+BP99SrQ!l`MM`f(B1MUf8#Xd8qZYIVr(BU!`c0S0'B&E$0+B8EN*&KSL9mV-FUEj
+AJbdeINTibAq9lYUUpQY8UL`DeeCq1S60qPie22)&4[iM'S('V*H!3Q0VJC8J5hB
+6iXZpVTkBbR1HJCPLH38S#DCk%l(5LTbdjDfIJF`SmlQ@Nr-XQ3A5TH$N5XMRd*)
+qcmNK[XEefZF)ZJ5DMb`kJD51YJUIdDP03HIeC3%SR9mDeVdL8LV(64a)&mUeA0J
+9MVa4PRLC[2261q4@9H0kk(rD38ldGa1aBb&`h+JkPq`a1h+(KMk"R)8RIAS5CQE
+A$T@H%drI0E2lBikXVar@(TFpSfGBGjcLYXP4(q[DNH3VF1JLd$`(i`bB(HbS4*5
+L&)Qm0a'@'3TC&&*3cj!!4E@)P`LcVhA$Y%Gk0-PFJ[K4r!eEY6YYP*T&5M2bkZ&
+JUPJm9Eh)ZlCS!lS*$VpT%1H%NE8jcDSI0[5VK`+"YRka2eY)RFD'k-PrZDNj9"A
+mmmlKL5lLU[1IeF"CjT!!Q#,Ckl+LZ#Ih*%cdRp[BBkFIL0L[hl*Bq)[A3IF'rH@
+&IB2fBLCSEdRJ'aHp&Val2+VZZ`Q2@q(c*IZZ(AEh&HjlG1K'#TY`0IlJe6hhVad
+S`Amb`2Fh!Dq*f(@bEe#-Eq1C6H-911@K4aLe13!bS9NNJ,D,i!JY[(LKT)Zif9,
+LV1&rmQfPB1`Rm`rfBFbFiQ%IEQQ*pBHiqfPffka'f$HPdl-GL4fXhX&EJDT'CU#
+DJAl0V"CKLlr-`c9GjCVB+DR%5&*Td3A(b4*MDhc8Y8'b$0LEfGr&c6AIiZrX&Y1
+,fPh%(LjL2fF2-lBa%-UVHUGaC21%ER[aVpfkrj!!Tr2)T($)LGK6X51P0RN(H6h
+qr1$A40adbbhZRQ3P4iTAY[rZ2A!L2jKmF6J,9S)G$-d0'MK@6MjDFH9jM[1&DY!
+Fi4d-JR-&D)dNpAPVS$qr+,cAcLf&ZFIFG6N3hM$(S+Xh+6Nq[,p2PC-*qe2)iGQ
+(bBJc$Nqd58-RG&@r+a1a1TLdI0UacGCr[cBq0ZGq-#&`@bjCq&TXr*V1D@XNrl&
+a*1"kfhEY[T'A@cr@[TZhe3P[+22hYHrSq)a3521iLU'B5Lq9mYLMZcS8,$C8lr)
+d9(eYE[[PmCifaQeiG,c'bK%9&h8SiT%'`BFHRMY`aam'Xfa[AbQS**dJRfhc((M
+&SrAE(N,qSDXacq&[IM@rE"$hJ,plQ[b0Fefh`6,ZkUq#@IeCE,RlCrG!aG(Xr-k
+"$SPpMqrli!e`'-AmrJXcE1i`C[HT!d%SG*Crb91(*ZE,X*eApIMd5EC2[$NP%"R
+JP[p)V)c[Br5U-6l5J5NbVPGDf3'K-GGDNF2&MXMhHmehlb[EVRDbr`hmhIpVj"f
+Y9@+AS'prhIh1q%8ZP-%%'UA,T1BDCjmm*(Nh$kNpFj'aNe,jbm3UP0eEj5DdFNc
+TrG`NcN*!,R4Zp2A14C)mK"AGP[Q#r(!6mKrSJL'MC`pPT8([+AJpSYSIG3Gh)rm
+U$`N5*qHD(9TmQeNf3KSA&4jBM6V&9+m1XEdkV(61-iXl5fA'8ZFmIQhZF-P!G@)
+p2&TFPB+4#XV(cjcKSN'fSG$&Y+QGhrH`i,5[AHIqh,TirdPbNVjVkR2Q0Emq%rU
+-c1clYrJTDk`mDd+(qi-Lhc+)m!dra,hHTk%Rm3M4IRI'a)(FlNI$[(rSr3S3kZY
+QdR5NR'arFB5I0J!aT*mQkpZIjEKR0,hVQfS*CI8`AFbYIjCNESE*iIR,KAamdmS
+eFM,fc9VlL*B4jBe[l4la@Nhf[8ee+rFfXc@3!(+BI5ZVZ*`m##,hSB,a)*L8edi
+M39%pRC2VDkI*bC2Ipa+bCZS!H&6)VM[&Q%M384JcP9"Xpm-m!d2Y$4$Z2ecCleV
+HlqHCmjq&-hY2+@lre["EU2QhprT@TBYijGA"SrjaRcIUhYF2Hqkp9a)bM-'R6r&
+c)ZS1c($AR!#r'rb,#ER%X(L4VbY!,`YG![VCNNha609N+2'RI6'PUNMNF)T9`!4
+SXi+"XXaCT,pafh&%eCkmQYK4rD22"pbHjXMbKZlRQ,(ldZk-H`d$GLZHZ%Gd1fT
+f0M-MBY[Gim`UK@&8!"JjCP)#f3c(+LBJ[-5V4JN-TTIR6c)S[HEX6JCE$VT%(U*
+3`!K$KQ-0mprBhri6!0rKRcKmjl%c)H-C20BiPl!)9qSXP@lTG5iPe@mhS)B8!DM
+C8Yr+p%Sa96Qb8ehUCq@j,QfpbEk!&'X5hA)V[FfkES3(9Xdhm)H4rKB22U#`m+F
+LE$'VM!&hH2!Shd(UlqS[p8k[maFkZ!Sd$X,UCPD+FBDVRT)+@B%R(q-)BPhUS'B
+p"@DCNCrU`XFEUePFDQb!"qA4)A$$b,1AP6SB3C!!Ta+qCb(UD**abZ6f(D6-imU
+GS*AGKR[E@MEImmXLLp[@aD9Sb9dVrh68ck5LFTJF-[r0QmJ@rBCpIFQR,Cq'NFb
+YcJ@dR2i592X+Dr6q[b$213,N5(N1d5j6FjakK9fl+-MY8"h-Y6p,X[E`Xq*c8!$
+5dS2,)-DAYEdKhLpqShVPM+S*05F(1#DEhQaQ[0Vc)0[RB3mIi!ri'!pUL[&D8Bb
+E%U,J(Kc&N4Y"Gqr!N!#J"pBKB%2[p!e2#EeC8h@Yc5#pRa34S(Nm)k,Y8Qr%EHN
+hH9IU$[q#Lb+Y[2DArJDcdel%fpfIZlpUZG+lFbr6#6+"Sf`J"U"1EZmD$S(6l%0
+U$Pp,cm$%rBa+"C2%pB5XPfM-620!c0IP0KMa+p4DaX(pI&4$q,(DXlZGpZ`*(A"
+d1kb&B2hj9r`IR(cJlkMaHeVjj2cCK$fSLI(UB[M&fb0,`-BCNCNMK9F0'cK+k9@
+M!JB+CH!S!i8Bkb-J-L)!iB"4"Rl3hiepb8X*[ZEdlMZKSI%Rac0iP"rE+HJ9aaQ
+0cLU@mQZ9k)5b*)R+452aTCJ5&l@E2fB&`*H8Z'JmDa(PAFP(6AkXKP@k+1SU3Bj
+Ud2`$lmf$(r9G3@h3L6l$8r*c,ji"m%Z`dLAATpSRed'Blj!!kp!iX&f(QTJF[b9
+`p@de3hJM8B4MSFb)G,e5Q4(qml-RR3#dICCr)%q"!%THRJ)@"Q'ESBX3TpRTaVb
+%-@6IF)lXL,MV&$5Mfq21SCJF2im(pd19#cVI*'9@VVV4Z`k#j3"%q!0A,E(A6RF
++0RhhRED!f1dr$i8)Ei#ZPqB!chNe`+d&AMN0kemCAq$0Y6FY!i[Lqf@5@HC"Fmq
+r&@Y9dENlB@4aQF[CaPRL8iRDjGfl(@kiM$a-QKJdSLPVkrf'FkCQ'4ler`-m-r)
+S,+'V)ip#K#FmFAT4K"XLjpfmH6QNJGQj$a5aAC'4!Ek2ldId294kqd(NU$iA2,c
+m'+Q9AhGpA-ZL!2!Pc,m18bM$X5ib%*hHMk(5BQ-9ZpD!-M04L9r3d9#bK%fH+X+
+LNZ9Q09SdX-R43k"3b[3l'"QS2KX8[#rbKXqTShhZV*!!-@$Pf(cNe"12U"-K12[
+aJ!1Z4d,l'TSB`dmA@dEG1mk1#M5N"#!3Ch0D1C3SGieJF'RkVK%'M%1#)J-a$Na
+KV&Eqpf*ImK+#MiMFE3ArpAJ'c`S5iQ,La1N)SKAc)D$,P[N*1YdX[Rk#hXl"fE*
+m42&m5HGJ[8b$32j"K,1pEKL$U*6Sm-#"ma0mIalmDFprZ84FpikqhGJleaR!6`$
+C@q@3!1hA+-BPXMVI$Jpa0p[%q!Ud45R`VZ'&GkmR!P%q4iKcH#N[XV'jP(pJR36
+fM(@pb"VL&T!!iG%RS0FDFN'#$d$0cqIDPHl`Nj%r9plXk[!)$SliEPEG#P*ZjIe
+[GUiND@l[bdRA+HJU@Y'fBBE[&lAVKT!!qV(j(2I9arpEI20%hK61,a6IDe3FEGc
+83KGb@RVd'`ANl)&mhH,+dVY%'p5bFd1kHXUVV%Xl*YT'jNPk(N53!,XaN!"mRI"
+UH"IATK*E&cN%)IeQiLr"@[**jpX[MQrfa(%Pe#)4#J46J1V4b-FrRpr9hbP1H5N
+U)($A'BqRqDa#a$q+mp+JdJFq[1ThlJ3,SNAJHerJ93Yj"`6k`eFkI%V)4lAX#cZ
+DIl8-b#+r8LrND(0)C2YaaEhpMrFGLQmEIMlkl3hCd+e`PKRZIMI2kB0`KJUiG,E
+hmLfS`c3a*DimBIP4pkKNe+kLm%1J(ljBL$P@-fBPfbF!&IQ%p!ZN'+0A`a`fr[G
+LAhVQ*F2qfm-jX1mC6pK4BieC#'8d#!M%&mpDCCi0RR8qHV1,(kI,(*MYS%4#RLm
+GU*F*XF8[hkVc0L+BlLVbr433mI-GHUaV1%!IGYlYf)4mH(Yhe1[U8q)p@!#5el9
+"%4GMA-5`'DFh8NbHXlRAN`AGQkekXIMQpA-ckS5BcpI9J@`[PD8,AK6F3fh%0[K
+4!9QI!"*[SrUcDFEF@52mUPF9ed&a2hA-h)Ck8QlPBkIeVL6Ve*XJfdAV%JTArcA
+N6+ilhPmE4Nc,2q9)ed'Dqh,b(1&02hT-rjhK[@VGE*VZPe-lqprrRMfSB0c-QH0
++GK53!'YMaL@BJXG"QaiSM1V5j"F[B[A"'cBU$lk9N!"8i95pBiVbdXh5C2+DB#T
+*[0mPQ0V9(T@c1EKVXm"TBAI)Y[Ec%i,FkZmR%T*ifcS)@q)6$4bH!1VF#!-VZGP
+GFr1LaqlE6c8UQ+Zae3fHGj3S3m5V(LZBfPYm(GPbj'Z$BI#pdLV(AdrcAAqV8DX
+rJlij#af,BXEU4RISfV1kZeqr9pfpiRph0lqi&e+IS,Cp`VMqdUZEYlmeGp,N'62
+'IRj0#*,L)60`BJJ1R0[*-X1RK#Y[Z+Y`%e-'##3AKYF%lX'4M[V'#l&ali5`LNF
+e6%L+mP'0mQ'iZ6HJT2G4T2MaerTVd3d"$dT53K!+'@(J"re"JmIL9TB($j("SS`
+iM6%Z,Y[Ied%)me5%e1QjhT!!+5(LDTN3UH2i3MVfk'44QlG&$AVbI!Dr&m!,Vde
+*IF-+IX'dacaiGj3HV-1kB&!KZL-&jKKAk1i@-E08TmJBh'h8LE(!3@NFh+D2&I-
+ac&VMh1`XS"3kXm*CN!!RUe8jek6Vr#`JkRQXr&TJ-pJJMYq#1!raXGZ$BV-QcFj
+G'rRpEQ+,h'GEhhRc(X5(L,X[eSr0(*i"TI3ZHlUrIC9h22Nm@c@[J'bCh(CVcCS
+4(2Fhd%a5ah&dM(CaPV@5IR,%2j(LQC!!`d1V2PPP(d+b3SC`h,I6VR"hE,q1,Th
+)TCV@mpTrHI4Pm[jjQ%QXljYU1JJ*(Hq*'-Rjq826,A&Y#[ap!ZqGAAXN+8jH*#G
+J+p6hX`+fDU0Uafcj1BFX&(FIXj2r105QE#IcRK+qq-m2!P0ZJ(b#-Hbh4m&biLh
+9mbkUGdf%(-"G!j!!a#XZ)J58)LXIR(GeS1@h'e"4aKQAR95+ShfBpSXAG2$KeBa
+EDNTHlN2SLfKJV91YGbck8UZrSakqkZmY,qK[DiE-apQjDMb)bQ5F[kf-LYEV1!G
+Y`ZCh1Eff)`-b24rLM"-aV(Fdk)15[G9iH#4Ha%Vkkl(VADpIfPMpdE2+VkrYMNK
+!*GpeS'#Gm,X1(1l9d0+r")QM(Ke6XEUM-)i4"f--PA"qd"mZG'X)bkQPU0EAE0D
+j8HU%1+&RF"d)bcUXN!$T*6S1,l2bYK+AG+Sb"SVT@"VR)jAkGV)CVS2cd(b%AY`
+-A5b613"dZGl%)br(`XBfe&)$L9#+5MAZ&R"iJBKKFjd+kheNrKP)jGYJlR6a&l4
+MFkd5b[b@@L8@b0+9G@D8jq0F)d9j[[bi2!NN`Z3K')4Y6faNKfjC!IPSUEqRCm-
+1XZl(iGTKD"-KBpUGfhD@RGi&NY[+Xd`R@JHha%%Y[@Z(Ij!!4pAAGQ,Ab#"GHXZ
+Njjp4U9lKD,dGrY6"pachejLiFZ)%3Ra)i6m,FAXfalhXSjXqK*!!EcNkVH$jlrr
+prFaR#di))EfQ(+VdC@R`T[Bb[M[HRKR@r+ffV0cd$+PJfU*i&@F-bVhVj(5[MDQ
+GY4[[IEqEC4XH(Vake[*lIp"0V9b+Meq*p`VP#m0Y6J%2R[kQ3KNh$NKKh9c0kVV
+52[qm$$DZaU`R(,Ef`M[')YjT&ECrjM5XrJbb"YjEk-N1SZb'K'Y(heLcE-ZfV9X
+q@T9Xi"!"9`l#*NTdIaQASe+&"FbQ0)1L-U3)@l-R#L!M5#'8ie@)cf(!5'SG)qT
+djR!Cp3H!%DPmP0BN`P,1CjUh#UQ6rA&P%JLbG'F2P`DU#UTHc4cAZ,JjL2N5YmV
+(dmqK8SUN-4k@Pa,MXpKZ&[)l-%XT5QV"Vd)8@X,`5Y'2&ZZM#5'KY"%fd[1aGK#
+TAqVPY44UcZY@NbeI3,dZDp2GK9PNkbSjkE&5dRAVJfA,i'A2G[[0@b$9eV3Y'%4
+-UFpcY)f$bqSjXZS6"G5cD%8jJD4P16hl&Hjr$LpY,'h0BKa#Y"XVdlRXV(r42q@
+e(V3RN3UNK*bJ-1TYP*H3!!#pJ59ekEJ$-S4!E3JA5h'(QNqKXh+XM(0ZDH(a+&X
+ciZ+8L$9Hm@$#+#h$G`TQDAq$G,cXcb%rCU-4dJ@JAmd1MQKZmSpHZ-NY&q4%QbC
+QS-@ajYc4"dmF&pMQ16SP@l!8QSb$&ZAcLm+X,cKimFHe@fb'P+3`b&)YDBG%,%K
+9+X8U"IcfZDBA,XP3#ARVX(,)4ZT3+UeT54P5[Gi-NbbAE$6rG[[VJAqk@qe@2DQ
+`V6f8P$Q)D&I(`#+Z(IFYQ0!UEHKSQTE,FXMLG*UHqHhh01d%9a!j3GDX%eKD1Ab
+EAJk@P[UP092H01-V2S(k`eG)6eIjT0GIpkIl[Mih*jRBq1603D$p3L+Q+,h6QXH
+)%A4"`D8T(*rTb(1+cp38*6i#a@C&hce5f+B0CAm!U4M,LTmSq$9M,jpHrlk5e32
+XiLF`UiZ'&%eSM+9!4")8,X1JQ1CNFiT0@JUbBQ-[bqHZXkbLZcd`,9`LXH"Nkf9
+$Ii,liQ"ACD*86e'@8Jl9R!6+cb(54*c2KEAQhUAa)iAGBQVqlSPjdCk5+00T2E%
+9*p@q"6Tieif[JrE0cB+V8V,HkG2Rm@)`b@R()fqYIZcNY"'-BD26(DH0B"ePejf
+FVS1D8,%@IS',AXT-Eaq22,$j@C,c'XapITMj)k2BR%`k!+TUMeF$,,YT+'1%ShZ
+JLj!![iJ$#b-G(3IS)5R@irE9%IN$SU1V3!*8FG&EURKRPDC%4kI!&3)S$hjbXDk
+bIVH[RQh!8!-"2jemllf*daHmGl'928Ipp*)F)4A,dY&i1J,DIi1HD,@EPmJJKr,
+pbC1j91hNk6QLeV0dCf1B%@CKDjic'-&+c2**cb+cC4&M--"Q#1)-r)9IC4LqB-#
+-+RJ'"EFXIKKBq5Y`TN&S0'S8DU2'JN@SaZHE8aVPH(Mc*)TXDVlU8#qkXXJ"VNB
+j4rdijbX1bi!Q8i3'!*!$F%&%3e)$!!)f$9-+NV!"FiZ!L)!+5-T4*AfT9P*#HP+
+p1d'UT+U3""TTh"ha`+0#@K1)i34"j"m#GS*XNU%`'5!,BBipmSQXp$QK$bNN,ek
+`%[$CZS1NRBUm@L+U48'dqlmd2ZFl0JrU&ql-'%96!*!$"$0"4%05!`!'G`e9$8-
+L%K(QAQi3C#dC4'Vb4#3,%&QVTLBRYcf,M1"fjmK*Yc06mTPrGlr[fiSm'pr-Yl9
+!NYA1l-RN5GLq1j-4NZ9@j)QXb1mIN6q6RmQmfGCf%8N@%l)h,FNL+%$L"rp1@BD
+49%3iU!XlH1)RGL%XdS$Y8-@K&RB5AKr2MQN-Tdqr@5Tb%b2*lEeNEa2deYr0KTa
+,b#P((lQrdKDbpHCeqFBN#8XTDGMHT"F9Nj*A@5m3r1$*iF)A(Ra+`bCSd@*%bYh
+0[UE$mLb8Z8NZL1FKb4cpaH#,'S2Z2"A0G593mh5B(ilNbH!U(HDq*03V2L&LN!#
+Glm-GLj)350pE&JffVadV0j9c-)PcYTmmT-U'cCf2[lLr"Zb,Dr,j*UQJ&eL!@HM
+eXIT'U5KXK+Zi)G(%4'NH4P'P*SBS*l2%Ke)*Td69NE&*%bSLi2'$"P$iBJ#e%Qf
+Cd)!P0"&UFSY0QF0BUD3IT`bXGDL,fZ$B!U8fSh08@--BYZrp*)$#,J2%1@+BZ'k
+&r-qa*h(XSZeGPi*0bi'TkX2@JbVR0)ahG0E&J(3EJ`[@YV@,-D*-cb(Q-Y`6mPc
+ZfjMcBMp"cGLljK3Rb&aVTMai@-PP[RfUT+62k1U0klXYd-Kcq8@f`RZ!4-@X%K,
+E)89)*H!)2HGQk+!L4L(61rDKE[-93T%lT4&h#Yj6*Gq@)$NpfZfT-bIQ[*a$ZHi
+9U@$-fpTGbR)EqIHh6JN-ELhIr*F2iT-R9S%)rHb*!9X*2'JQcVG5aT+bk)"66"T
+!8Hh@RKiMNZDb1RCPrpLBBZE'f'*+5Z1k(+rRjMiNk%bc`$2Y2dPbk)d[lP"05[[
+rh(fm5+9i5KpCGN!BDPI(P8iGH))aB&$'@AMak[HhZkICP"IAk`20U"30ED$cl3A
+NPB5bhE"dKJq'UT!!'MJ$K%Ef[#TaY#Qi5[JiZdp@*Ek(V6S2"5LGMGP9XcSTH`k
+X!)Q$@e`Lj!Hc!YeF"G@qBdCpV(kpX(EYJl32qi0AAhd*'kUV,i&`%M,25lL3!)9
+HJTA-Hq-JNiRVb1C`%N0V@&,9LJXedG30VZTedYBKmQ8[pD@$C2LX$T!!US[$LD0
+[BBPS9ake"Bi4i"NpQ[B5,S$!l!aZkDY"[CV-MSM(ZdcHrYqi$lHRmXQ0Uj1Q&hd
+ZmV+6dc$Q@CReZ"0&fVV&S"Ua`C3d8JpM+h9[1peJ#QP[H2ESABrbfDQ9EXl,)rR
+"Y(aV,(DK,&e(qXHCLJYTG`ceq9R+jqIUrhj)D3VcIeGqcX4Q-IlfpqABR&9R,Np
+TEKEkTP6FE&CkmZ##0U6Epj,8cI&CH25LN[RmcjI[Q)F-e2@eAFBV*qph(["`34I
+,9E@$fDIYZ+ZVJh8&%Tl"cXY,fjl%2ZKNB,XDjI@RH3*a"UE`8,`*ALRF`jGi-!G
+h[Rked&R$@pIN$J#3!``,9@j6G(9QCL"KFcS!N!-)"b"QEfaNCA)!N!-m!!8%)'p
+Q)!FJDA4PEA-Z"&0dEh!E5A4PEA-JFQ9YB@PZD@jR)(4[)&9Z8h4eCQBk#e9Z8h4
+eCQCTEQFk!*!$,8&%3e)$!!!`$8X$@f`,YfS!N!@S!9[Y[`B'!r!4fr*r#&K#bBm
+'eKXaPa-!N!-'!*!&$3#3!cX(!)!!N!-$0bi`-$FZ-#`J3fp`HA*TCfKd)+NJ-6N
+j-#db-$!b)%&XB@4ND@iJ8hPcG'9YFb`J5@jM,J#3!ai(!)!!N!-$0bi`%e0dG@C
+Q5A3J4'9XGAKPUL!h,M!!N!--!#J!+!"r!A!%Ve99!*!$&`#3"4!"5J!!!3!!C!!
+!!4)!N!LG384$8J-!!+J0@`TD3!*hq"a@G@ITa$j8l""l8cGeGYLKMlFEHlVGQfq
+(XapX@&9L959B9@)pKKe@"3QS+DEi#q$Kbe-!CQRmTQTq!Zi``mf2ZkL'Ld9k''%
+[lENXFkBX&8b2crC)HHcSaD`df)"XN!"VQK,Q&'Q)A6F&@rG%"d@fP0"GLc#jbB*
+P-N%ak6ATZem5+jHST,h!2bF2)QX!N!1I384$8J-!!+S08`UF!J,[eZ8-S,kJP[&
+E'CpCQD@Y&Xr+1VFhGlAHVGZca@qF!B!"!'J!B'4c@4N!!`QS+DEi#a6T`jXZT(i
+HTmIX+fkNG)fEVG@5Ne4'kQM[fe09jBc#*)clFhe!EKZmQ"@M#m+PF)ED5!k,d6C
+0(9`f!!X9GM$5Aj03pe-%abL$LY'cdGq3!#CfI@,Tfflb+rVM'-Rl$J#3!d`!!J#
+3"3J!0!!D!4Z)'e"XC@&cC5"TER0PFR3JC'PcDb"H-#"hDA4S1J#3"JX!#`!V!#Z
+J!J4,!*!&(3!d!#d"')J#AM%!N!-k!!%!N!8f!)F!5J$""!*25`#3"3)!43![!6q
+)'9i`)'&`F'9KFR-JG'mJBQ8JC'&YB@GPC#j,!*!$'!!m!%!!Y!'B!!%"!*!(!3F
+!!#J+!*!$'!!m!%!!Y!'B!!%"!*!(!3J!!#J+!*!$&3"8!'3!L`''!!%"!*!("%X
+!N!3(39"36!#3"RG"4%05!`!!J!e6#eXJ!`1QB-1UDV-`X!%LBQ!h5l(E@C@J)',
+$(ZVC`*K9-3YM+VVhTe1X#JZ*BmLfiRI@!&)SrH'p`)*+Z-9!Tf0)-Sk[fIFQ)Jk
+rkFEqqpLI1PG2++D4"4f4ZS)CZ+2&'UkSDLHN6c)+ldA1"3#3!eG"4%05!`!"!3e
+6!Yc@"T2hdNE0440Y!,6j0bkmfddECX*X[UX,hi6GX0[NhAE9eA9K!!NiTBMrG!A
+k'M5Q0Klla*eVf8k#LE$6%2V!XqJ!D*!!aElq",i'!!!")N&%3e)$!!1+$9-+Qb3
+!IiC&X0dj141`a3jG5dj2(GX"&32EXIVB$&EecMiSU&KpE-&ZV1V'`$pMIe6d[rp
+[Mr0f9KR'kJ!,Q680A&D0p-'14[HZ8aVX",2c+"6FaH)b3VE8Z5$*F`Z3!0p[JRD
+#kG&%G-mTHE-6hEc*lLZ&K$2-5eVUQP++(3Xq(j[6I`6`H[ijkXV6kQVrRepZakZ
+Ir82rqj'@*3+i-fUMJQe@`8JQ[%@VE)a9Y9jE2Q+EYiAYB49ph"I'dPT-T*5d!R%
+I6(k-`pHZ'qD(TKRU8p[f6Gd2ZK"S@S!R"-J!R!"-[ISY!2lU#3-4I`$`SR,K!K!
+FJS!"JQ*J,6L,N8'-h`a#j")kiZTMNXbp+(%I60pdq8A%+fc,'!#3!c!!N!F%!!$
+rN!B!!3#3"`)!N!F$!*!("2q3"J#3!`B!N!82!!#6dfPMER-!!*26D@0c)`#3!dJ
+!J!(!!q!%%!R)%[3fPR8A05B9j!Z)""!$i!(!!)!!N!1!!F!$i!I`$rJIr$rqIrm
+rrKrm$rJ(m!2J!F!!J!!!D@0c0!#3!iJ!N!63!*!'$Im!N!EHl[!!N!30$-c2!*!
+%d0rr`2!!!!d-rGlYc`!!hXhXd-l1m!hqcYh-cFlr!2l2cYhXc[!!$mlHrYc2!*!
+$r1rmc2!!N!-2c-c2!*!&rZl`!*!&$rm!N!I`!*!,D@0c1!!!!3J!N!L"!*!1JIr
+r!*!-JIZ3!rm!N!U"!2D3!rMr!*!)J3$jrj!$q2Ar!*!'J3$frrPrUkYrq2m!N!5
+"qrCrr2Grp95Vp[[r!!#"rr[fr2Pr+P48IrElrrm!!2rlp[rhUrRjUrIfqrm!N!6
+rq2cjr2rmq[Eir`#3"[riUrrr+rEir`#3#2riN!Ar!*!+rrZ3!rm!N!crN!-!N!l
+r!*!A5801)`!!!3J!!)!!!!&!!!!#)!!!"*!!!!!*b!!!%q3!!#!#!!"!!3!!Kq#
+!!3r`3!)F-#!%'Im3#"U+#")bLL3Q-[)b6M3'15CPp$)5C43N#'Im#!4``"!#2q!
+J!3'!3!#'`)!!3!%!!#!#!!!6j!!!#FJ!!!53!!!!!L!!!!&!!*!$J!#3"i!!!!(
+!!!!$i!!!"r!!!!ri!!!Ir!!!2ri!!(rr!!$rri!"rrr!!rrri!Irrr!2rrri(rr
+rr$rrrrjrrj!$2rrrrKrrrr`2rrri"rrrm!2rrq!"rrr!!2rrJ!"rr`!!2ri!!"r
+m!!!2q!!!"r!!!!2J!!!"`!#3!i!!N!9TBf`d!!!##!#3#0!!N!i0$`#3$Y$-m!#
+3$!d-r-m!N!c3crr-m!#3#Jd-rrrmc`#3#Y!-c*!%m!#3#!d!c*!&c`#3#0!-cGf
+3!mc-m!#3"Jd!c+rrrrlFc-m!N!E3$-hpc-cIc*!$m!#3"!d!c-kXhC!$lZh-c`#
+3"0$-c-rFh0!!c0h-c2!!!!d-r-cIc0c3!-cXc2c2!!$3crc-kXh-N!20l-crc2!
+0$2rmc2h0c*!$cGc-rrc2!2c2r-hmcFhGhXlFc2r-m!!2c2c1V0l0c-hIc-cmc`#
+3!rc-bUcHlrrrrFb3!r!!N!-2c-hpc-cpc*!%c`#3"Ic-f[q3!pc-N!2`!*!&$mb
+3!mrFc*!$c`#3"rc-crcrc*!$m!#3"`r-N!E2!*!*r-b3"I!!N!N2c2rrr-m!N![
+mcrr-m!#3#`r-r-m!N!hmc2!!N!d2c`#3$r!!N"GTBf`i!!!%#!#3%)%!N"k"!2m
+!N"b"!&3Vr`#3'S%!92p8+rm!N"L"!&6rN!08+rm!N"D"!&6rN!98+rm!N"5"!2A
+fN!08pT!%+rm!N"+"!2AfN!6ipT!&+rm!N"#"!2AfpS'3"PEhp[BVr`#3$S%!pIE
+frIq3"[a@pT!$+rm!N!b"!2AfpPErIrH3")(rprD3"#[r!*!+J3$epT!$r2hh9Rq
+3"DZ3!hrfpL[r!*!)J3"8pT!%rhrfIbTr!*!$9&4r9L[f9#[r!*!'J3"8rrD3!eE
+rq2Gr+Rm!N!089+[h+rEr9#[r!*!%J3"8rrrfN!2mrIG@9#T8N!9rUrIfp[rr9#[
+r!!#"!&6rN!08q2ErIrCr+T!&9&4rIrIi92q3!e6ir`!!rbY8rrrfpPErprGr+S'
+3"+a8UeEfN!2rre6ir`#3"2mV92rfp[cppPDV+S(fN!1"IrrhpT!$re6ir`#3"[m
+V92EfrIhh9UZVrj!'IrIfN!08q2m!N!Mr+rEf9[jrpj!%ri(hN!6fN!2hq2m!N!V
+r+rEf9[hrN!D"pT!&prMr!*!-rb[fN!ErJIH3!rD3!rIir`#3$[mVpT!$rrrirrr
+ipT!$prMr!*!3rb[fN!2hprMhN!2fprMr!*!5rb[fN!48pT!$prMr!*!8rbY8rj!
+&92Mr!*!@rbY8rj!$92Mr!*!BrbY8re6ir`#3'[mV92Mr!*!FrrMr!*!Hr`#3,fP
+d-c)!!%V6!*!%rrqkr`!!qrq!!2RrJJ$hri3!pIq"!!$2J3$cri%!!ZEAXi%!mIq
+"!!6Vkp'[Qi%!lrq"!!EVlG[#V*fAJ3$Yri%!#1[Yfm1cUk5GPi%!krq"!!VVlG[
+$X`#TUD5GPi%!kIq"!!6VlG[$Xi!!"+QTT*fAJ3$Rri%!"1[Yfm1cJJ!%T+DNRCL
+"!1ArJ3!%kqhE`l1!!!"%J!!%R+HNRTL"!12rJ3!%kqhE`l1!!!*%Gd5!!!5FTk@
+IQ)%!iIq"!!6VlG[$Xi!!!%5!G`"%J!!%RULRRjQ"!0rrJ3!%kqhE`l1!!!"%JRF
+!4)!!"*kTU+#DJ3$Gri%!"2AYfm1cJ!!!4)4h!%5!!!5IUDQJR)%!frq"!!6elG[
+$Xi!!!%5'G`"%J!!%S+ZTSTb"!0RrJ3!%kqhE`l+!!!0%FR*aK()"F85!!!5KV+Z
+MRS%!erq"!!6VlG[$XS!!!%5"DJ0VDQTVJQS!4)!!"++YV+5IJ3$9ri%!"1[Yfm1
+cJ!!34'*LB@*LB@*LB@*KB@*KBN5!!!5MVUfPS)%!drq"!!6VlG[$Xi!!!%51@3"
+%J!!%T,#ZTk'"!0(rJ3!%kqhE`l1!!!"%J9%!8SY4!%5!!!5QXE#TSS%!crq"!!6
+VlG[$XiS!J%L+!!5RXl'USi%!cIq"!!6VlG[$XiX!!N!r3)X!"+LdXUUPJ3$,ri%
+!'H[Yfm1cV+ZUUUHGMB*rJ)#"J3!!1$Jj!!#%JB8"KSH"L!D0PkUfXkbQJ3$*ri%
+!$1[Yfm1cV+ZUUUHGMB+"J!1"J3!!J$-"!!#"K3''Ki#)#BQ*LSfBUVHeVDL"!-I
+rJ3!'kqhE`l1XUi#U!U@AMB#,JB`"!!#!-`S!!)@&LBk4NT18P)#9"jDDTE5lYUk
+SJ3$&ri%!"Z[Yfm1cV+Z"UJQRSTqJS+'JSD'LK!!8KB@1S+QUUkZXV+fYVUqbZEb
+pYl#TJ3$$ri%!"Z[Yfm1cV+Z$US'VJ+`"VDk%!!1&KT+TJ,B#YlLiJ,S"Zlb![31
+qZ,+VJ3$"ri%!"Z[Yfm1cV+Z&UJ+VV+Z!V3@ZVUq[TC!!J)8@KSH6UVDfYlLjZEU
+l[,fm[Ekq[lqkXkf"!,rrJ3!'kqhE`l1XUi5UJ+X!V)'Y"kkZVl#QN!#&KB#($*1
+VYVHhZEQkZlbp[Ek"[`6![lZdVB%![Iq"!!EVlG[$XkbVK+U!U`+XV+f!VJ@[Vl#
+aUCL!N4#6NjZZYlLiZEUl[,bp[Ekr`)$""-,"[E@[J3#lri%!"Z[Yfm1cV+Z$US'
+V!UbXVB#Z#+q`X,'aVkZSUB#U$kfdZ,QkZVZm[,fq[lr!`-'!`J6$`VkfVi%!ZIq
+"!!EVlG[$XkbVK+S"S'##+i3XJbf#,S-["M")Mm$!`F+"``6%a,qfX)%!Yrq"!!E
+VlG[$XkbVK+S"G3ZH!!9i`-,#`m1#a3,"Z,+"!,ArJ3!'kqhE`l1XUi5U!)#(!!%
+"#*3!"`bl[m,$a-A&JFB#`VQdJ3#cri%!"Z[Yfm1cV+Z%UJ'V&U%!$SLa[-,&aXE
+(b-I(b-1kYB%!XIq"!!EelG[$XkbVKDS!GBF!!K&8CS*R!QKSDB&U!QYXE)"Y!%Q
+#!!KlRl#raFE(b-L"b3,&[,D"!+rrJ3!'pHhE`l1XUi5U!UZV6)B!"4PpKB@'Ki#
+)!iQ*LSU!L`#0JBi#Mj!!2i%!"C+9SlR&ai$)!FR,J-S#aVkhJ3#Yri%!"Z[Yfm1
+bV+Z%UJ1VUk`JJ`!+!3)!G)@'L)U0NC!!J*)(Nj18PC@@PTH!Q!'CDS!!%L@6P*k
+faFM)bFR+bmc,c-[([lL"!+[rJ3!&kqhE`l+VKDS$UkZXSB-!$3)*!K'&KBL,JRG
+lI(apJ(k!I`+!J)'!JJ'$3S!!"MKZEhH)P*D!P`QBQ*R0cFl0bF#jJ3#Tri%!"H[
+Yfm1cV)@UJ+X"V(D#!!N%#3i!-S@'LTBUS!!(QXl1cmr+`VZ"!+IrJ3!'kqhE`l1
+XUi5UJ+X#V+e-J3!*"3X4%!",KSL3!+5K!!M,c-l1dG$-`VZ"!+ArJ3!'kqhE`l1
+XUi1U(DZUUkZXV+dK!!!""``5'!m!EBH*PS!!!0rrrjmKJC'r%DZL[qqQ(3!M[,c
+"bY$4dFh$[B%!Srq"!!EVlG[$XkbVJkU#UaQXVD-!!!))$43D(`N!KiL-Qf-!%2r
+jpQX&d*(r%Z(EeE3c%`")TUD[`p$5dp20aEq"!+(rJ3!'kqhE`l1XUi1UJDXDV+b
+YVRF!!`N3&4XJ*`)LKiL2S6J!82remLm@N[m-fH@lK6-'!''FRD[%dS(8!Xr'[i%
+!Rrq"!!EVlG[$!+bVJkU!Ui#X'DfYVNd!#4%@(#-R+!"%L)L5TKF!J2hai!9@NIm
+9qG[IXf)`!!"rRCqabG68eG8!eFr(`)%!RIq"!!EVlG[$!!#VJkU!Ui#X'UfYVUi
+K!K)A(L3T,b!!ABL*PCB!!,rklD-(KC(p&[2PdUY*)`!+RCfMYmh8eGA@!!$@dFR
+!J3#Eri%!!q[Yfm1!!!@UTk@RUUU!Ui#X'kfYVUqN!!JC(b8U-6FC!(q)M*Yi!!$
+rp1TT#VQ4m`cSlF#G-aS!*jfGTVh3J0B!ei!!!p$2bF'"!*RrJ3!$kqhE`i%!"+H
+GPk+UJ+Z!V)#Y'+q[H!!3)#BX-MJp$4')LC!!S8m!-2rYj6%0NZX3jr@VJM-0!%k
+GRUV$dYA@epH"!!2(d-V#J3#Ari%!!q[Yfm1#!!DGMBfIUUZVJ+`#VDkZJ+m@63!
+F*bic1$p&!$5*LC1Q,J"Jrq6L#MD5i"$XmCPN-`!!GTkJVXM8epIBfB)!!mM4bm1
+"!*ArJ3!$kqhE`i!!"d3!!)f#LTqUJ+Z"VB#[&l!K!LJ[06T"4MJ!6BU,PD`!!*r
+iiDN01*(@&0leej&2+!!!P*kMY-cAepMBf3!!4)!!!mR4c-5"!*2rJ3!$kqhE`i!
+!$844!!##IiZJUkZXV+fYJ+iEX,#Q!!ia0MY#5%dT!'H,MTZ%!!$2m0h"%"CdYil
+-$pEVrCZ*04i!(TqJTV[2epH!f3-!!&&%J!!$bG,-a)%!NIq"!!2VlG[$J!!)4&P
+4!!"rJ)ZJJDb!VMk[Vl#aHJ!G0ce%58j9(!#,Lj!!S@B!%2rSfGFh'"mP+c%e38Y
+AB@eiJikCTDqk`G2MpED'Gbd4!$bIS+V"e0MBJ0N%!!"4@85!!!2+dXc%J3#2ri%
+!!q[Yfm1!!!e%BPP4!!"rJ)ZJV+bYVB#Z4kq`XE&1!#ir48T39ed')iZ,Nk8k!%$
+rhGA6aB"fH(YmIS1'M*!!P*HDRU#NTkZYXlU9JRpF+JJ!C+#KVXM@f0MCfYS!!&&
+CBN5!!!2+dXc%J3#0ri%!!q[Yfm1!!!T%DQ&C83!!J)#,SB#YJ+j*Vl#aXE)L!%&
+&5e*AAPB!2BZ-PUXA!)$me0(3cFc*amA$`,qqZE@`V+HMRjZ@NSb*Ji"kGdJP!!#
+#S+1dc0MCfGVDf`!!89PKDN5!!!2+dXc%J3#,ri%!!q[Yfm1!!!Y%F@TL@9%!!)#
+!M+'!V8#ZVV#`XE'bU!!44de8@9pP3J"JLifDT3!![r63cXc+b-E$`EqqZl@bV+Q
+NS*ZBNSq*KS"pGh4Z-a`!#U#KTVR3fB(D#0X!!&&CBQTa4)!!!mV5c-5"!)RrJ3!
+$kqhE`i!!%%4hFQTK@9%!!)#"M++YVUk[J,!lXE'cH`!P6P9DB@GX-J"kM*!!Rh`
+!!1rRc-[)aX2#[lqmYl1ZUU@KRCQ8N!#,Ki*qHA9`E'FM%3!SSD'T[p5!fS$E#!!
+!89PKDR*h4)!!!mV5c-5"!)IrJ3!$kqhE`i!!"d4hGh*UB9P4K!"#VUq[X,#aXV1
+c6`!p9PaLD'ed&K'0MC1P@`!JrpM*am6#`,qpZ,5[UkDLRTU9NBb)JhpkGR&YD'C
+9)!J!8+'KVXE@fS3!"e&CB@TbGhG%J!!$bY,-a)%!KIq"!!2VlG[$J!!!4)"h"(*
+UBPP4K!!dVl#`XE+aXl5c)J"AAQ0TEh9l!#b0MTDU,`"Jrm[&`m'r[VQeX+bRSjq
+EPT+0LB5!HhGbEQQ!CJT#(J)!EU+NXXcCfi3!"&&CBQTbJ(F!4)!!!mV5bX#"!)2
+rJ3!$lq[E`i!!!%5"Ga"bDf&C88K!16-c!!#NTDQZXS#c+jd!&epPDR&fHf%!6ik
+2QE!!!)rd`m'r[VZfXUfTT+#FQ*12LSD"IAKdEfYRJ@B@-KB!!*LLTVR3fYX!!$-
+c18")89PKDh+"G`"%J!!$bFUfTS%!JIq"!!2Aep$"J!!!4)*h2R*UBPP45$mi-c-
+!!)q2Q+UbXl1dF3!aCQYbH(f%4!"UMT!!RT)!!-rS`,qmYl1ZMS#!IRjlHRPkHAT
+jHRPkHQb#CKBL$`!8SU1T[Y2Df`!!-c-i2dK4@@*UFS*h!%5!!!1VP(erJ3#"ri%
+!!l'YUkQ!!!"%JAFrFQTL@9&)3$Jc-`!!KB@3!+HcY,@e43")EA4jIS@,,3#1MT+
+NC`!!rpZpZ,5[Pb80&"SM+M)h490KEhf+Q+Dd[i5!CKGF&JS!2D1MVFA@fpX!!$-
+c1%")89PLDR+"G`"%J!!$N!"jDR'"!)2rJ3!$NjfMU)!!!%5!G`4bDf&C8B3!-i@
+&N!#TY,5eYKF!DA9kJ)H-N3NNMSkAUNF!32r'YE#XTb!APVZURBb!IhTeF@eSBej
+FEm'hJ'B,6"-%!&ZMT,$,fGcFK!!%89PKDh+!G`"%J!!$M@eBAi%!KIq"!!13!*b
+MSi!!"d4hGh&UBPP4K!!cKB@4UE5eYD!!&R9lJSH0NiB!2iq3!*U['!#!rl+ZUD@
+$"D,rriBc1CkCNiPrFfTI8dFrX,q!CJXf%3!!K+1QYFrEh0f%!!G4@@*UFAGh4)!
+!!ieY9PD"!)IrJ3!$NCbJQi!!#%4hFQTL@9%!!)#%J)8LKT+UYE@fFJ!eIB5)MT@
+EC`"CMj'GUJ!!VqZVTD+G6JM`rpq!!!bFUCQ6LApcDPp64m1VJ'B**!X!!+1NUEc
+6h)(G#mqcTJ!!89PLDR*h4)!!!ieY9PD"!)RrJ3!$NCbJR)!!3%4bDQ&C8J!!K)5
+&KBD(Kj1UYVHh43"AKBU3!*HFXPB!IT!!P+0r!!$Iek1HQj8b12rrR`!!$YA#UCQ
+6LApcDPpMh*L!CJS-"J!TT+1X`YEFh)$G#XqcTJ!!8PPKDR*%J!!$M@e@9S%!Lrq
+"!!14R+#FJ!",4'TL@9%!!)@&L)k4NT+EVEHhZ"F!GSb4Q*qke#X*N!#4PkKH!#$
+r[*ZANSi3DIrrB!!!81r9`UQCNiPrFfU(jhGQCNm*!`"4T+5[b0Q#h3R6[V-!!&&
+CBQT%J!!$M@e@9S%!MIq"!!15RD'FJ!!p4'*C83!!KB@1RkQUUUbcYlLL!"'0NjL
+N[phe!#f4NCQY-!"3rk58MiYh#kErrb!!!)rrlpA#UCQ6LApcVZL!CJNm"`%!FD@
+PXmhFJYd)fY22!!"4@@*%J!!$M@e@9S%!Mrq"!!15RD1HJ!!-4&P4!!#&KT'TYE@
+fYi#i((3!0T5EUXANqE)!5*'4RE3-!)rbNBb)JP-3d[rrJ!!-crrrlpA#UCQ6LAr
+0bi"Q##-%!!#DT+LkdiEG"!!!89P%J!!$M@e@9S%!NIq"!!15Rk1IJ!!S4&%!!)D
+'NUUeYEDhZ,Lj4J"IQl,-k[RND3"YNC5KP3!!RdNM)b%J&KL!X`*$-f1"X`LRQj'
+%J(YhmQf!'JJ)!3!9TD@X`0D'h3-!!&&%J!!$M@e@9S%!Nrq"!!18S+@IJ!!J4!!
+!KiH6UVDfYlLjZESA!)Zje1rhhF3i!*'5PkGf!!!3J`!!%)dc!68ZK!!&0+@QVXE
+CKYd#!!"%J!!$M@e@9S%!PIq"!!18SDDJJJ!DKiH6UlDhYlLjZU3!#lhDpI,A[D)
++'j+5QDYJS!!&AD@QXmhEKYf#!!10E9C@J3#Ari%!!j@LTk+"!"k(L*1XYlLjZEZ
+kG3""i2RXdVHHK3"!NT1GXkXb-5iTJLD%*`!+J!!!(S%SKLN&2TbPTlI4Kpf"!!1
+0E9C@J3#Cri%!!jHMUD5!!!@)L*@XZ,Q!ZKQl4`#'qHA-XCb58`"*Nj5LZFE(`l1
+IQ*HBQB#D"CZFR*fG#S!!"(LJS+'KJD-%T+1NT+@!TJ+U[G1(hB!!!jPY9PD"!*[
+rJ3!SQ+5UT!!!L)L9V,LjZVZl["J!ZGr%UTZ1JMX!3C1ATVh)b-1dSTZFR*f!RJ5
+IRk#K2B%!"TDJSU5PTUD"Ti'S"+QUXXAAKpd&!!#`GeC@J3#Gri%!*jqPUUB!LiL
+9VEQkZlbpT3!!fEqNQ)YrEMJ!!&12Ulr)bFLpXDbXVDk"V`+`McL"!!NISU'QVVD
+hYlQiJEQ!ZJ1l`p(EKYd&f`#mL9e@J3#Iri%!'+#PV+HAM*@YZVZm[,f1!!#jRjD
+(HfaG6!5@!!KJSU+V[mc2d0#"dS,6!GEDKYd&fp1mNQaGJ3#Kri%!'*USVDLBQDf
+kZlbp[Bi!!(q8K(9T@dj"+!U8!!N-RD'MVmVBfpVEJ0b0h3AEdlb5Ffb"!+2rJ3!
+'QkQ[UD@`Zi#p$VkR!!!EHA0Q9dSq,5%6"*-!$'QMSUDfcpVEh0[Eh0b-h3AEdlb
+5Fh1"!+ArJ3!,RUU`XlLl[,fq[m"8J!!(&"B6&aF4"J'6!!TSSU1MUm$8fY[Eh)l
+G"G[6[**cFi%!Trq"!!fIUl@k[,fp[m$!`ABX#TJ!$"ipM+'MSk@dbpMEh0b1h3A
+Edlb5Fh1"!+RrJ3!1RkffZlfq[m$"`X'eSC56J*3"PCD!P`5BQ*UD(B%!!LHGRB#
+IJ+!+SD+LSk@[a06Eh0b1h3AEdlb5Fh1"!+[rJ3!'SDkh[Eqr`)$#"lbXRTH@PC@
+@J*F%Q*QCQT!!JJ!$6TfIRi'J#k'LSk5SXm,5fG[Fh)hG"G[6[**cFi%!VIq"!"L
+LVlLq`-("`m6#[,'ST++LSk1NTD@QTUGcJJ!'GTkIT+UYVS#[#E+e[FM6fG[FhGb
+-h3AEdlb5Fh1"!+rrJ3!3Sl#j`-(#`X6&a-'qZlZmT(D!Ai"J!$'#!!j26e&BB@4
+PFD6+c-r5epU!h)hG"G[6[**cFi%!XIq"!!fNXVV"`m2%aFE'amM*2j3!!@cCJ0Z
+!h)hG"G[6[**cFi%!Xrq"!!ZPXlc#a-6&amI*b('9!!-eeYMDJ0b0h3AEdlb5Fh1
+"!,ArJ3!+Tl5pa-A&amM*bA')!!!ZL3!&Gm,*dYVFMGd&fp1mNR0cJ3#hri%!!kL
+e[X@!a`I*bXYQ-c%Y+S%T!c0mT&'"+!!TJ5S'0B#VVE2&eShG"G[6[**cFi%!ZIq
+"!!kSYlr'b-M*bmc-bEUPR*Z"R3LIRk#KSU+KSU+!S`DNSk5NUll6M0d&fp1mNR0
+cJ3#lri%!%+Qi`-I*bX[-cFUkU*qJS+'KJ+)$TUZ[US'QJUF$Ul6(f)[G"G[6[**
+cFi%![Iq"!!UVZ-,)bm[-cXc&ZB#a#V+bXl5dZF('[lLhJ,L!Z35k[XR9fiVG"G[
+6[**cFi%![rq"!"@YZX2,c-h0cml,b-I)bXR+bmc1dp65K!!%dY,6fGb+h3AEdlb
+5Fh1"!-(rJ3!4VE[&c-h1cp(4dY26e0A9eYEAJ0L%!)lG"G[6[**cFi%!`rq"!"#
+[[-E0cp$3dY,6e069eYEAf)$C!3!!J$-&!!$1cp2DLGd&fp1mNR0cJ3$&ri%!&,#
+qb-r3dG(6e0A9eYEAf0MCfYS!!)!c"3!!Xl1qdiMG"G[6[**cFi%!arq"!!fa`-R
+3dG,6e0A@epIBf)$C#pS!!$Ji13!!TUDcciIG"G[6[**cFi%!bIq"!!5b`FV4diX
+!!N!r3)X!"YhEdlb5Fh1"!-[rJ3!%Xm,0dY@+!)")LJ!'hG[6[**cFi%!cIq"!!5
+ea-h5eB!!!%5"83"5Le%!4)!!"Xr0aV#,FA1"!-rrJ3!%[F62e0#!!!"%MPN!4)!
+!"V1bUjPjCQq"!0(rJ3!%[F63dXH!!""%BQ*KBQ*KBQ*KBQ&KBQ&L4)!!"UDNRSe
+`AfU"!02rJ3!%YmE3dmH!!!"%J@S$DfTUDi*U!%5!!!DQT*k0F&pUJ3$9ri%!",M
+(dG6*J!!$4(*bFB4b!A&%J!!'TU5HMA"IDS%!erq"!!5jb0(9bB!!!%5'G`"%J!!
+'TU5HMA"IDS%!fIq"!!5jbY,@bS!!!%5%G`"%J!!'TU5HMA"IDS%!frq"!!5lbY2
+Abi!!!%5#G`"%J!!'TU5HMA"IDS%!hIq"!!5mbY6Abi!!!%5!G`"%J!!'TU5HMA"
+IDS%!hrq"!!5mbp6Abi!!!N4h4)!!"UDNRSe`AfU"!1(rJ3!%[-[8emZ!!!"%J!!
+'TU5HMA"IDS%!irq"!!5mbp6Abi)!"UDNRSe`AfU"!1ArJ3!%[-[8emZ!!!DQT*k
+0F&pUJ3$Rri%!$,c,e0I,!+LNRSe`AfU"!1RrJ3!+[-[8emZeSBe`AfU"!1[rJ3!
+)[-[8eX+FFPpUJ3$Yri%!"Vc+c,H(C@U"!1rrJ3!%Z,D@F@q"!2(rJ3!#RhjcJ3$
+cri%!!(U"!2ArK!$hri)!qIq!!2[r!!$rN!5jrj!$Z[m!!2[rJ!$jri)!prq%!2A
+rJ3!!ci%!mrq"!!,Qel1"!2(rJ3!%kq[4VjZ"!1rrJ3!'kqhE`UbGPi%!lIq"!!M
+VlG[$XkZNRCH"!1[rJ3!+kqhE`l-!UDQNRCH"!1RrJ3!%kqhE`l1!!!5TUD5GPi%
+!jrq"!!6VlG[$Xi)!"+5QT*kAJ3$Pri%!"1[Yfm1cJ!!!4)!!"*bRT*kBJ3$Mri%
+!"1[Yfm1cJ!!#4(G%J!!%RDLQRjL"!1(rJ3!%kqhE`l1!!!"%J(F!4)!!"*kSTTq
+CJ3$Iri%!"1[Yfm1cJ!!!4)*h!%5!!!5IU+LJQS%!hIq"!!6elG[$Xi!!!%5%G`"
+%J!!%RkUSSCb"!0[rJ3!%pHhE`l1!!!"%KRF!4)!!"*qVUU+FJ3$Cri%!"1[Yfm1
+bJ!!!4)9b!h&bFN5!!!5KV+ZNRB%!erq"!!6VlG[$XS!!!d4UDfZ(DJ"%J!!%SUk
+XTCq"!0ArJ3!%kqhE`l1!!!&%BB0LJ''!BJ*KBN5!!!5MVUfPS)%!drq"!!6VlG[
+$Xi!!!%51@3"%J!!%T,#ZTk'"!0(rJ3!%kqhE`l1!!!"%N!"4!%5!!!5QXE#TSi%
+!crq"!!6VlG[$XiS!!NK*5)S!"+DcXDUMJ3$0ri%!"1[Yfm1cL`!#2cp!L`!%UE5
+bUk@"!-[rJ3!0kqhE`l1XUkUUTjf0JRq!J!+"!!#!1!J!!)5%KB@'KSH"L!D-PkU
+eXkbQJ3$*ri%!$Z[Yfm1cV+ZUUUHGMB+!Ii#!!S)!!)!c!3!!J)8$KSD(Ki#)#)Q
++MCQUYV@YU)%!arq"!!EVlG[$XkbVJ+S&TCH0LSU,JB`"!!#!-`S!!)@&LBk5NT1
+8P)#9"jHDTE5lYUqSJ3$&ri%!"Z[Yfm1cV+Z"UJ'RSS'J!k'KSU1%!"5&KSqJUDU
+VUkbXVDfZVV1j[,fhX+U"!-2rJ3!'kqhE`l1XUi5U!DZVJ+`#VDfZK!!9KBD5UV@
+fYlHiZ,QkZVZm[Ebq[VLaUi%!`Iq"!!EVlG[$XkbVK+U"U`LXVDfZVUq[TC!!J)8
+@KSH6UVDhYlLjZEUl[,bp[Vqq[VqkXkb"!,rrJ3!'kqhE`l1XUi@U"+ZVV+fYJ+i
+CVkq`TC!!KB@'KiL6UlDhZ,LjZVUl[,fp[lkrJ-!#Zl5YJ3#pri%!"Z[Yfm1cV+Z
+%US#V(kbXVDfZVUq[X,'TQC!!NC+5P*ZYYlLiZEUl[,bp[Ekr[i$""-,"[ED[J3#
+lri%!"Z[Yfm1cV+Z%UJ#VJD`JVDfZVUq[X,#bVUUSU+UUUkfeZ,QjZlUl[,fp[lr
+!`-("JF)#[VD[J3#jri%!"Z[Yfm1cV+Z$UJ+VS'##+i3XJbf$,S)[!c")Mlq!`3M
+#`X6$a-1rYl#"!,IrJ3!'kqhE`l1XUi1U!UYe#ji!"RM"`X2$a-5!a32%`ELbJ3#
+eri%!"Z[Yfm1cV+Z%UJ#!K`!"!3L8!!F-Zll"`m6&aB('!X+jXi%!Xrq"!!EVlG[
+$XkbVK+S"Ua@K!!k)XEh$a-A'aXI(b-M%Zl5"!,(rJ3!'pHhE`l1XUi@U!(@(!!)
+49'D#C`*SD@Q#DS"X!QeY5B)!#(ZJX-$&aXI(b)$*!mM%[,D"!+rrJ3!'pHhE`l1
+XUi5U!UZV5iB!#aPpKB@'KSH)L)Q+LS',!)b"MJ+2N!!rJ3!3NT@MZXA(b-M*bFV
+*bmV'[VH"!+hrJ3!'kqhE`l+XUi5U!kZVV##$!!S"!J"dKBD(LSk3!*'!NJb6Nj5
+9PCD@PjHBQCPUJ!!,*C58RlE%amM)bXV,J-`$bmLrZ)%!Urq"!!AVlG[$XUZ'UJ+
+VV+'$!"!##3)4KB@(Li*hHRamIAeqIS"r!S#"JB##!B0#J!!61'p[H)Q8PTDAPjL
+BQFh0cXh)`,Q"!+RrJ3!&kqhE`l1XKUS$UkbXGi)!#33*$J!bKBD+PLUJ!!#DJFi
+#bX+kJ3#Rri%!"Z[Yfm1cV+Z%US#V!UbX6)%!#38,%4!!5iD)N!#PS3!)bmc1cY$
+3bm+mJ3#Pri%!"Z[Yfm1cV+Z%US'V'+fY)3!!!3F-%KJ2!'f(LCD!!!$IrrqI)B'
+4[a'US,r[TKd!)lbm`F[3dG(0a,f"!+2rJ3!'kqhE`l1XUi1UJDXDV+bYS`!!!JJ
+0&"SI#3#(KibFB`!3rrReD`A3NIm5hpR5X6-6!%LQTUr%dG,6dXh&[i%!SIq"!!E
+VlG[$XkbVJkU"UaUXVDfZG`!$#4!9'b!R!L+(L)qK1!"3rr6a,aD5r`c@ilD$-`B
+!BCbGUm65JG3#cm@rJ3#Iri%!"Z[Yfm-!V+Z$US'V!+b!V4HZ6!!*%4BF)bFS!%5
+)L*+Q&`#!rI$I"9D4raAjfGf[B$!!!(qGS,$)e06@e!$9d-I!J3#Gri%!"Z[Yfm-
+!!+Z$US+VJ+dBVUmK!K)A(L3T,b!!ABL*PCB!!,rjl+)(KC(p&[,Md+K*)`!+RCf
+NYmh8eGE@!!$@d-M"J3#Eri%!!q[Yfm1!!!@UTk@RUUU"UafXV+fZVDqN!!JC(b8
+U-6FC!(q)M*Yi!!$rmqKS#VQ4ma$Rl,kD-aS!*jfGTVh3eGE@ei!!!p$2bF+"!*R
+rJ3!$kqhE`i%!"DHGPk+UUS#V(DbXVDfZVkpi!"!J*L`b1$d0%BL*N!#J6`!`rqc
+M-!f5ka$Qp+Kr-`d!6TkHUX,5eGEAf)%!!mI2bX+"!*IrJ3!$kqhE`i)!#Cf0MCq
+UUkZXUkb!V4QZVV"0!"`R,M-i2d8!-iQ+NkBZ!'$riZ!+0T,J%1[`PQ-c!!"fRU#
+Zb0A@epMCJJ!$b0$,`i%!PIq"!!2VlG[$J!!'4!!!MB++Ri#V(kbXVDkZVkq`X#%
+#+#me1N&'1!"0LSZ9V!!!RrIHT`diNGB-hI69MdiS!!#8Rk1ebi$A"0MC!!"%J!!
+$bG,,a)%!Nrq"!!2VlG[$J!!(4&%!!)*rLTq!U`+XVDf!VKZ`X+B!$M%f1d*)65N
+!CiZ0Qi8!!-r[fVi3&R5hMX`@eHVpQBFe(J!HRk#QZp$AepRCfJ!!885!!!2+dXc
+%J3#4ri%!!q[Yfm1!!!K%@9%!!(prLk#!V!+YVDk!Vd5aXAN!(6Fp4%P194`!LiZ
+3!+&P!"$rjYE80KJI*5Xa08",9f"UGB#,PD'VYVc3iI5eK(8Y%3!mS+#U`G6Bf0R
+CfJ!!89P%J!!$bY,-a)%!Mrq"!!2VlG[$J!!,4'*C83!!Ii#,SDZXJ+e*VUq`X,'
+a6J!Z2d9+8&GG"L1,Lj1P13"!rpV5d-*qG(CiHRb!K)Q0N!#8PjUGS+1RUE#iP)"
+p@bS)!'1JSDl)eGMBfYVE!!"4@@*%J!!$bY,-a)%!MIq"!!2VlG[$J!!14'TK@9%
+!!(q"Lk'XVDfZJ+p)X,'aXL)!389,8PGH9J!pLiZ9UKF!J2c4cXc+amA$`,kmZVQ
+eXDbST+#EPj12LSH"IRPf5#8!!)+JSl6-f0RDfGVE!!"4@@&U4)!!!mV5c-5"!)[
+rJ3!$kqhE`i!!%%4bDQ*C83!!J)'-SDfYVUk[J,!kXE+R!"&(694CAf9#!&q-MTQ
+P!!#rmmh,b-E$`EqpZVUfXDkTTD#GQ*53!)b(K(plGR0Z-a`!#U#KTVR3J0N+fpV
+E!!"4@@*UFN5!!!2+dXc%J3#*ri%!!q[Yfm1!!!a%Gh*UBPP4!!#"JBbLJ+j!Vkq
+`XE'bXhX!*8j9@Q&RE$)!HSb3!*pm!!$[jFM'`m+r[EUkYl1[UUDLRTQ9NBf*KB"
+mH(4[DfFM%3!SS+'U[p6CJ0S+fpX!!&&CBQTbGd5!!!2+dXc%J3#(ri%!!q[Yfm1
+!!!G%GhGaDQ*C8B3!3Uk[Vl#`XE+cXdm!29CFBQKYG"B5M)f6T9`!)2r9a-,![VZ
+kZ,5`UkHMRjU@NSk+KS&pHA9`E'KQ95!)!&#KSUl'eYU%!!G4@@*UFAGh4)!!!mV
+5c-5"!)ArJ3!$kqhE`i!!!%5!G`4bDQ&C8B3!0+q[X,'aXV1cY#)!9ejMD@peH`!
+XMBf@ULm!B2r'`EkmZVQeXDbST+#EPj12LiH#IRTfF@eTJ'B+3Ki#!'kLSl,,fGU
+%!!44@@&UFS"h!%5!!!2+dXV!J3#$ri%!!qrVfm1!!!"%JAFrFQTK@9&)3$Jc-`!
+!TD@TVV+bXl5G!"GIC@TaGRYK!%q0MjQ`!!#2mlqpZVUfXUkTTD'GQ*53!)b)K(p
+lGh0ZDQH"CKBb&J!!Pk+QZ-rDf`!!-c-i3%K4@@&UFS&h!%5!!!2*bVDQJ3#"ri%
+!!pIAd-'!!!"%JRFcFQTK@9&*2cJc-`!!MiqBUV+cY,9a!$&QDh*iIB4%!'U1NCk
+6!!$2jVZkZ,1[USTqIRYlHB"i"hGiH(PiHAKVJQB@)Jm!&++MUEh8fp`!!$-c1$p
+*89PKDR+#G`"%J!!$Uj4pIi%!JIq"!!1aVDZTJ!!!4)&h2h*UBPP45$mi-c-!!)5
+&N!#SXl5eYN8!5'edHAk&Lbd!MSq6T'F!!2rBZE5`Uj-P$43D)bSb0d45AfekKj@
+LVlU#J'BAA"B+!$fLSkh%eYcF!!!c-cJr5&&CBQTbJAF!4)!!!j!!H@TaJ3#$ri%
+!!j1GSkL!!!"%J(F%FQTL@9'%!$1&KC'SY,@eYKF!DA9kJ)H-N3NNMSqAU8F!32r
+#XDbTT"mAPVZURBb!IhTeF'eSBPeDEEbdJ'B,6"-%!&ZMT,$,fYcFK!!%89PLDR+
+!G`"%J!!$M@eBAi%!KIq"!!13!*bMSi!!"d4hGh*UBPP4K!!cKB@4U,5eYD!!&R9
+lJSH0NiB!2Sq3!*U['!#!rkkUTD+!"D,rriBc1CkCNiPrFfTI8dFrV,f!CJXf%3!
+!K+1QYXrFh0f%!!G4@@*UFRGh4)!!!ieY9PD"!)IrJ3!$NCbJQi!!#N4hFQYL@9%
+!!)1%J)8$KSD5UB#f(()!0Af%L)k9QfF!@Bq4RDN!!+rUTk+IQ8`)m2rIJ!!-R+Q
+CNiPrFfTI8dI"US"Q#L3,!!#MSkQmdpcFJ0d,cl1Q!!"4@@*VFRG%J!!$M@e@9S%
+!LIq"!!14R+#EJ!!*4(*VBPP4!!#%K)#&-iD(NkZfYlG&!&H&LT!!Pjbb9J"qN!#
+8T(m!!0r@S*UANM%irrqI!!!1eF+TQC1*Ih0UAf,DQ)"Q#!`'!#QMT+h"eS,G#Xq
+cTJ!!89PLDh*%J!!$M@e@9S%!Lrq"!!14R+#FJ!"-4'TL@9%!!)@&L)k4NT1EVED
+iZ"F!GSb4Q*qke#X*N!#4PkKH!#$rZTL8N!#-%'Rrrf!!!&$[eF+TQC1*Ih0UKZC
+hCQC2#3-!8D1PX-MCh)(G#G1qX`!!89PLDN5!!!10E9C@J3#0ri%!!j'GSCf!!$e
+%B9P4!!#&KBkIUDUUV,5iZ+)!%Bf6Q+5rhI8!,C'4QDi`!&$rSC'0LA8,T[rr)!!
+!Mrr[eF+TQC1*Ih1Yk)"Q#6`(!3"`TD@ccGb#h3MDdmm!!&&CB85!!!10E9C@J3#
+2ri%!!j+HSjk!!#a%@9%!!)@'NDQeYEDfYlLjG!!fP*ZUaH6jXJ")NC'FY!`!Mr'
+1LSD!8K$5rrq!!!c2rrr[eF+TQC1*Imc,J'B))`3!!*UPU,R6KYd%!!"4@85!!!1
+0E9C@J3#4ri%!!j+ISjq!!#K%83!!KBD5UV@fYVHiZEP'!&qEXXcUqH4T!'f5P+'
+9!!#I55-L)5!@')#c!N-cBi'c#+HENB5!HhIaEB!D#!J"!"@NTDc!eSEG!`!!885
+!!!10E9C@J3#6ri%!!j1JT*q!!#"%!!#'Kj1UYVDhZ,QkZKF!LlR8lrIGa$J!NC+
+AThB!!"#$!!!3M6-"05k%!!8dTD@ZaYQ'h3)!!%5!!!10E9C@J3#9ri%!!j5KTD#
+#!"U(Kj1VYlHiZEUkS`!,[GVemYHpSJSENT+CV&qJ!!9GTUDccGZ'hB)!!ieY9PD
+"!*IrJ3!$PD+QSS%!(SL)NkbhZ,QjZVYe!%(JqHc5Yjk&!%#5NjfbUc)b,LQ"*S8
+R!!U!!!!HJ5L'+38qR+@RYp'(hB%!!ieY9PD"!*RrJ3!$Pk1SSi!!)SL)PDbiZEQ
+kZVa(!)EjjFbaR**6!%Q8P+'jaXM$XjkAQ*LCJ*S"QjZ!R3!+J!!&H+#JSD+LJD1
+!T!DPTDDQUVh6Kpf!!!1CE9C@J3#Eri%!+*LPUU-!!)L)PDbjZVUl[,dB!,RIa+U
+EMS)l!%'8PkDmb-M$YD+ER*bGJCi$S+#K2B%!!jDJSU5!TS1RJ+N$UV,&eiIG"3!
+!X(G@9S%!RIq"!#LIT+UP!)U*PDfjZVZl[+8!!0QrT*L,Ifii!!"6Mkc!b-R([E#
+VV+bYVS#[!V#3!$L"!!BISD'QVVDhJ,L!ZB'k!l[$dGZ'h3AE!,b*A9D"!*rrJ3!
+BRk@XTjH-PDfkZVZm[Bi!!,QIPSGlE&e-"*B!#9qLSUZrcG$3dG'!dS,6!GEDKYd
+&fp1mNQaGJ3#Kri%!'*USVDLAQ+klZlbp[Bm!!(q8K(9T@dj"+!U8!!N-RD+MVmV
+BfY[EJGb-h3AEdlb5Ffb"!+2rJ3!BR+Q[UD@aZVbp[VkR!!!EHA0Q9dSq,5%6"*-
+!#fQMSkDfcp[Dfp[Fh)hG"G[6[**cFi%!TIq"!!ZHUl#bYlZm[Vqr`&5!!!F8&K-
+A&a%'!C-!#QLMSU1V`06Dfp[FMYd&fp1mNR0cJ3#Rri%!$CqXY,Um[Efr`-$"Gb`
++Q!!+(Mf0SU+MTE6,fGZ"h)cG"G[6[**cFi%!UIq"!!fIVEDl[Ekq`-("`,@JPB#
+8!T@9PS#A"*LCQCSGJ3!%*jfHRTq!S!QKSD+LSk@Z`p6EJ0b0h3AEdlb5Fh1"!+[
+rJ3!4SDfh[,qr`-,$`EZXRTL@P*@@J*F%Q*QCQT!!JJ!%6TfHRjq!S!QKSU1PU,2
+#dYREJ0b-h3AEdlb5Fh1"!+hrJ3!8SDqi[m$"`X,$`VbbU+5LSU1NT+@PJ+B!Fi)
+!"RDIS+5UVUk!V`DaYVl)e0REJ0b-h3AEdlb5Fh1"!+rrJ3!,Sl#j`-(#`X6&a-'
+qJ,X"T(D!A`0JB'%aJJ!16dp4@'&NCA'Nbmh2dYMDJ0b0h3AEdlb5Fh1"!,(rJ3!
+0T,+k`F2%a-A'amI)b6q8!!4YfY[Dfi$FMGd&fp1mNR0cJ3#cri%!#kDcZm,%a-A
+(amM*FC8!"MA@f0VEh0b0h3AEdlb5Fh1"!,ArJ3!+TV5m`mA'aXM)bR')!!!ZL3!
+&Gm,+dYVFMGd&fp1mNR0cJ3#hri%!$ULf[X6(amM*bXYQ-c%Y+S%T!c0lT&'"+!!
+TJ5S(0B#VVE6&epb-h3AEdlb5Fh1"!,RrJ3!1U,DraXM*bF[,cFQkTTbFJCd%RTq
+IS++!S3#LJU-%T+@V[p5-h3AEdlb5Fh1"!,[rJ3!1UEM"b-R+bXc0bVUSRjqJJ+%
+(SU1PUkqUTU@!TS'R!kZcapL,h3AEdlb5Fh1"!,hrJ3!EUlM#bF[,c-h-aEQaX,#
+aXV1cY,R"aVqiYlHiZ)#j",UqbGAELYd&fp1mNR0cJ3#rri%!#Dbk`mV-c-h2cXU
+!b!M+bX[,c-r6eG+%!!65dY2Ch)VG"G[6[**cFi%!`Iq"!"5Y[-A-cFl2d0(5dY2
+8e0A@eYIAfGQ%!!$FMGd&fp1mNR0cJ3$$ri%!&DqmaXh2cp(5dp28eGA@eYIAf0R
+C!!#!-`8!!-l2dpU*h3AEdlb5Fh1"!-ArJ3!8X,l)cp$3dY28e0A@eYIBf0RDfJ!
+!J$-&!!#cXll6L0d&fp1mNR0cJ3$(ri%!$V'rbXr5dp28eGEAepMCfB$D!3!!J$J
+&!!#QTV22Kpd&fp1mNR0cJ3$*ri%!",2"bp(6L`!#2cp!L`!'hG[6[**cFi%!brq
+"!!5c`mc6e)S!!NK*5)S!"YhEdlb5Fh1"!-hrJ3!%YX20dp@!!!"%N!"4!%5!!!E
+2cFD`Lh&cJ3$2ri%!",h%cY63J!!!4)jC!%5!!!DcXUZCH@C[J3$4ri%!",h%d0,
+(J!!"4''$BS"KJ')#B@*%J!!'TU5HMA"IDS%!drq"!!5iaY$6b)!!!d4UDfZ(DJ"
+%J!!'TU5HMA"IDS%!eIq"!!5iap$8bB!!!%5&FJ0aFR*%J!!'TU5HMA"IDS%!erq
+"!!5jb0,9bB!!!%5'G`"%J!!'TU5HMA"IDS%!fIq"!!5jbY,@bS!!!%5%G`"%J!!
+'TU5HMA"IDS%!frq"!!5lbY2@bi!!!%5#G`"%J!!'TU5HMA"IDS%!hIq"!!5lbp6
+Abi!!!%5!G`"%J!!'TU5HMA"IDS%!hrq"!!5mbp6Abi!!!N4h4)!!"UDNRSe`AfU
+"!1(rJ3!%[-[8emZ!!!"%J!!'TU5HMA"IDS%!irq"!!5mbp6Abi)!"UDNRSe`AfU
+"!1ArJ3!%[-[8emZ!!!DQT*k0F&pUJ3$Rri%!$,c,e0I,!+LNRSe`AfU"!1RrJ3!
++[-[8emZeSBe`AfU"!1[rJ3!)[-[8eX+FFPpUJ3$Yri%!"Vc+c,H(C@U"!1rrJ3!
+%Z,D@F@q"!2(rJ3!#RhjcJ3$cri%!!(U"!2ArK!$hri)!qIq!!2[r!!$rN!5jrj!
+$Z[m!!2[rJ!$jri)!prq%!2ArJ3!!ci%!mrq"!!,Qel1"!2(rJ3!%kq[4VjZ"!1r
+rJ3!'kqhE`UbGPi%!lIq"!!MVlG[$XkZNRCH"!1[rJ3!+kqhE`l-!UDQNRCH"!1R
+rJ3!%kqhE`l1!!!5TUD5GPi%!jrq"!!6VlG[$Xi)!"+5QT*fBJ3$Pri%!"1[Yfm1
+cJ!!!4)!!"*bRTCqBJ3$Mri%!"1[Yfm1cJ!!#4(G%J!!%RDHQRjL"!1(rJ3!%kqh
+E`l1!!!"%J(F!4)!!"*fSTTqDJ3$Iri%!"1[Yfm1cJ!!!4)*h!%5!!!5IUDLJQS%
+!hIq"!!6elG[$Xi!!!%5%G`"%J!!%RkUTSCb"!0[rJ3!%pHhE`l1!!!"%KRF!4)!
+!"*qVUD+GJ3$Cri%!"1[Yfm1bJ!!"4('"FJ"aJR)!4)!!"+'XUk1HJ3$Ari%!"1[
+Yfm1bJ!!!4)0U!QYUDi"U!@Y%J!!%SDfXT*q"!0ArJ3!%kqhE`l1!!!C%B@*KB@*
+LJ'%#BQ*KJ')!4)!!"+1ZVDDJJ3$6ri%!"1[Yfm1cJ!!!4)4C!&L'@3"%J!!%TE#
+ZTk'"!0(rJ3!%kqhE`l1!!!"%KP%!8SC4!%5!!!5PXV#SSS%!crq"!!6VlG[$XiS
+!!NP)5)S!"+HcXUUNJ3$0ri%!"1[Yfm1cL`#!3)X!"+LcXUUQJ3$,ri%!$1[Yfm1
+cV+ZUUUHGMB+"J!L"!!!i1$N!!)5!K31'KSH(J)J'M*HUYV1XTi%!bIq"!!cVlG[
+$XkbVUUURRBf#JB!$JB%!!)!c!3!!JB8"KSH"L!L*LSfCUVHeVDL"!-IrJ3!'kqh
+E`l1XUi#U!k@AMBU"L`1-M!!!J$-9!!#&KBL1NT16P*59PCD@QUDdZlD[UB%!aIq
+"!!EVlG[$XkbVJDS"Tk+!S!'KS)#LK!!(KBD1RkUUUkZ!V!QZVUqcZ,bmYl#UJ3$
+$ri%!"Z[Yfm1cV+Z&UJ#VJ+b!VB3!$SD'NUQeYVHhZ,QjZVZm[)#p!lkjXDZ"!-(
+rJ3!'kqhE`l1XUi5UJ+XMV+bYVDkZVkqPN!#&KBD'Kj+UYVHiZ,QkZVZl[Efq[Vf
+r[VUbVB%![rq"!!EVlG[$XkbVJkU"Ub@XV+fYVUk[X,#QN!#&KSD(Kj1VYVLiZEU
+kZlZm[Ekr[m#r`-#mY+f"!,hrJ3!'kqhE`l1XUi5UJ+X'V+bYVDkZVi#`(DQCNC'
+5Nj1FVELiZEQkZlbm[Ekq[lr!`F$"`EfeVi%!Zrq"!!EVlG[$XkbVJkU"U`5XV+f
+YVS#['E#aXDqVU+QTUUZYY,LjZEUkZlbp[Vkr[m$"J-)%`m+qYUq"!,RrJ3!'kqh
+E`l1XUi1U!UZJB))VK#b$,B-ZJbm(5)r!`-(#`X1!a!2$[lH`J3#hri%!"Z[Yfm1
+cV+Z%UJ&e#ji!"RM"`X,$a-5!a32%`,LbJ3#eri%!"Z[Yfm1cV+Z%UJ"rK`!"!3L
+8!!B-Zll#a-A&JXB#`VQcJ3#cri%!"Z[Yfm1cV+Z%UJ'V&D%!"SLa[-2&aFD!a`6
+)b-1lY)%!XIq"!!EelG[$XkbVK+S"Uh@(!!-49@CQJ'F$D'GSDB*U!@YXJ'd!5B)
+!$hZJVm$&aXI)b-R)bFM&[,D"!+rrJ3!'pHhE`l1XUi@U!DY,KJ!&'Af&KBD'JBJ
+"LBU!L`L-M)f0MSk2N!!rJ3!*Nj@NZXA(amM)bB$+!m['[VH"!+hrJ3!'kqhE`l+
+XUi1UJ+X"V##$!!X"!J"dKBD)LSf3!*'4J*)#Nj59JCB%PjLBQ@U!!")PP*5HYX6
+(b-R*bmV-bmc-alqiJ3#Vri%!"H[Yfm1bUi@U!kZVV+'$!"!##3)4KB@)LS*hHha
+mIAeqIS"r!B#3!i)#Ji0#J!!'1'p[GiL8PS#A#CLCQFh0cXh)`,Q"!+RrJ3!&kqh
+E`l1XKDU!U`'XGS)!#33*$J!bKBD+PLUJ!!HDcXl2cmV#Zi%!Trq"!!EVlG[$Xkb
+VKDS%UkZXV%b"!!N&#a%3!%Z'L*!!T+%!#-[-cXr3d-[#[)%!TIq"!!EVlG[$Xkb
+VK+U!UaQXV+dK!!!""``5'!m!ESD+Pi!!!0rrrkC"MT5r$Zqm13!M[,c"bY$4dFh
+$[B%!Srq"!!EVlG[$XkbVK+S"UkZ!V"+YSJ!!!JJ0&"SI#3#'KifFB`!3J2m#M$M
+DP2m2iQBQ!%LPTUr%dG,6dXl&[i%!SIq"!!EVlG[$XkbVJkU"Ua@XV+fYG`!$#4!
+9'b!R!L+)L)kK1!"3J2m"@dD8ra(p`fB0!''FRD[%dY66e061aVq"!*rrJ3!'kqh
+E``#XUi1UJDXEV+bYVDj-!!N4&K`M*bJ!4)L)NUBA!)$rrr)iHC2r%rliR'!!!(q
+GS,()e069e!$9d-I!J3#Gri%!"Z[Yfm-!!+Z$US#V!DbXJ+dBVUmK!K)A(L3T,b!
+!ABL+PTB!!,rrrm%kRT(p&[lrqr5"4J!+RCfNYmh9eGE@!!$@dFM"J3#Eri%!!q[
+Yfm1!!!1UTk@RJDS#UkZXJ+d6VUkN!!JC(b8U-6FC!(q*M*Yj!!#!r`+3!$h'NI-
+-q[rfjfBc!#HGRDHmd)$@!0H!!!23cmR#J3#Cri%!!q[Yfm1"!!QRRCHLUUUVV+Z
+XJ+d8VUk[H3!3)#BX-MJp$4')LC!!S8m!-)$r!9p!NZX0qrr[bQBD!%kGRUV$dYD
+!ei%!!mM3bX1"!*IrJ3!$kqhE`i)!"Tf0MCqUUkZ!V"HYVDkZVl"0!"`R,M-i2d8
+!-iU+NkBZ!'#!r`%pB*(J%H,rrHQQCJ!!GTqJVXM8eYIAf))!!mM4bm1"!*ArJ3!
+$kqhE`i!!+83!!)f#LU#UUkZXV+fYVUk[Vl!K!LJ[06T"4MJ!6BU,PD`!!*rrrmj
+!BC(@$ZMrpH5-8J!!P*qMYFc@ei$B!J!!4)!!!mR4c-5"!*2rJ3!$kqhE`i!!#d4
+4!!##IiUIUkZXV)#Y(Dk[X,#Q!!ia0MY#5%dT!'H,MTZ&!!$2rrrR3dQ0[Bh-&p,
+QrrrPi'Sp!"kIRkDld0IBf0RD!!"44)!!!mV5c-5"!*(rJ3!$kqhE`i!!*84C83!
+!Ii#,S+ZXV+fYVUk[Vl#aH3!G0ce%58j9(!#+Lj!!S@B!%)(r%QK,8PKHC'KeJBk
+CTE'pbGALl[U"r`[XhXaJ*!!mRk#U`Y5!f!ECf3!!89P%J!!$bY,-a)%!Mrq"!!2
+VlG[$J!!+4'*C83!!Ii#,SDb!V3#ZJ+m8X,'a6J!Z2d9+8&GG"L1,Lj+Q13"!JIm
+Yp,+TV,#cYVc"b-h5ep[Jj1RZp2,am12FfUPG%J"NS+#Zb0ACf0VCfJ!!89PL4)!
+!!mV5c-5"!)hrJ3!$kqhE`i!!$N4VBPP4!!#!J)bKV+fZVS#[&E#aXE)L!%&&5e*
+AAPB!2BZ-PUSA!)#*rbEqr2Rhp2,[lHVRj1(Ih0VAeBp9!!##S+5dc0MCfYRDf`!
+!89PLDd5!!!2+dXc%J3#,ri%!!q[Yfm1!!!j%FQTL@9%!!)#"M+'YVUk!VaD`XE'
+bT`!44de8@9pP3J"IM)fCT3!![iMr(2hkq2Acm1lVk1AMi0lEfGE8d@p#!!UJSDD
+kd0RCJ0S)f`!!89PLDR*%J!!$bY,-a)%!LIq"!!2VlG[$J!!T4(GbDQ&C83!!J)'
+-SUfZVUq[X,'bXV0m!#9199TKCf`b!(U0N!#II!!!liEr+rhkq2Acm1lVkHAMi0l
+EfGE8dFr-9LX!++'KUF$8fGRDfpcF!!"4@@&UFRG%J!!$bY,-a)%!Krq"!!2VlG[
+$J!!(4(GhFQTL@9'%!"UZVkq`XE'bXl42!$e@A'*SEA3@%Sf0Nk9E!##&rarqqrR
+fp2([l1VQj1(Ih0VAeG,3cFbZ8a8!8+'KVXE@fB3!"e&CBQTbGhG%J!!$bY,-a)%
+!KIq"!!2VlG[$J!!!4)"h"(*VBPP4K!!DVl#`XE'bXl1d)J"AAQ0TEh9l!#b0MTH
+U,`"JJrm6r[cjpr6blqhUjq6LhphDf0A6d-k!c!U1838!EU+MXX[Bfi3!"&&CBQY
+bJ(F!4)!!!mV5bX#"!)2rJ3!$lq[E`i!!!%5"Ga"bDQ&C88K!16-c!!#NTDL[XS#
+c%Td!&epPDR&fHf%!8)k1QE!!!)q#ra,pq[Memr$ZkqMPiq$HfpR@e0(2JX`@G6m
+!!*HMTEM3fYS!!$-c18")89PKDR+"G`"%J!!$bFUfTS%!JIq"!!2Aep$"J!!!4)*
+h*R&VB9P55%!i-c-!!)q3!*QUXV1cY(%!-@CVFRKpK%3!DSk3!*k5!!$2J2m%rI[
+ipY+"aJ[&aFE)bXc1d0(6eFq#c"CE,`!8SU1U[Y2Ef`!!-c-i3%K5@@&VFB*h!%5
+!!!1VP(erJ3#"ri%!!l'YUkQ!!!"%JAFrFQTK@&&*3$Jc-`!!KB@3!+HcY,@e43"
+)EA4jIS@,,3#1Mj+NC`!!rrrqqrRfh&a!4de@A@9UHBQBU,I'eH2brpb!c"Hl55!
+!2D1MVFA@h0`!!$-c1%"*89KKDR+"G`"%J!!$N!"jDR'"!)2rJ3!$NjfMU)!!!%5
+!G`4bDQ*C8B3!-i@&NDLdY,@f&`"TGAU!Kib4#551MjHU4`"!rrckprAb9dHYb,H
+UQBb-Ki0rHhGbE@Z,rr+!c!ZL4Jd!@k1NX-[Dh0b%!!44@@*UFS"h!%5!!!10E9K
+IJ3#&ri%!!j!!R+1MJ!!(4(GhFQTL@9'%!$1&KT'TYE@fS!!@GAZ#Kif6KJ!rMj!
+!QDmB!)$rq2Acm-XiY[rrKM-jRTQ6LApcDPp64crDmS$-#hp%!!#%SkDfcp[FhB3
+!"e&CBQTbGhG%J!!$M@e@9S%!Krq"!!14R+#EJ!!,4(GbDQ&C83!!Ji5%J)8LKT+
+TYEDfFJ!eIB5)MT@EC`"CMj'GU3!!VrhdmHrXMc[crpq!!!bFUCQ6LApcDPp64qI
+TJ-`)C$%!!+1MUEc5J0`0hGh2XkB!!&&CB@TbGd5!!!10E9C@J3#*ri%!!j'FS*Z
+!!!P%F@TK@9%!!)5%J)8cKiD6UlDhZ%8!9i@+N!#AR,*@!(k3!*5MJ!!!hrM[l1V
+REf(rrjm!!!l9`UQCNiPrFfTIDIrIJ-`*2am!+D1NV-,@h)(G#XqcTJ!!89PKDR&
+%J!!$M@e@9S%!Lrq"!!14R+#FJ!",4'TL@9%!!)@&L)k4NT+EVEDhZ"F!GSb4Q*q
+ke#X*N!#4PUPH!#$rmZ[SjH*&LIrrB!!!81r9`UQCNiPrFfU5rp,-c+Jm%`"4Sk5
+[b0Q#h3R6[V-!!&&CBQT%J!!$M@e@9S%!MIq"!!15RU+GJ!!p4'&C83!!KB@1S+Q
+UUUfcYlLK!"'0NjLN[phe!#f4NCQZ-!"3rq[Piq$+2VRrrb!!!)rrlpA#UCQ6LAp
+c[rb!c!Q-1J3!FD5QXmhEJYd)fY22!!"4@@&%J!!$M@e@9S%!Mrq"!!15RD+HJ!!
+-4&P4!!#&KT'SYE@fYi#i((3!0T5EUXANqE)!5*'4RE3-!)rmj1(Ih*p$h2rrJ!!
+-crrrlpA#UCQ6LArGli$-#'B`!!#DTDLjdiEG"!!!89P%J!!$M@e@9S%!NIq"!!1
+5Rk1HJ!!S4&%!!)@'NUQeYVDhZ,Lk4J"IQl,-k[RND3"YNT5KP3!!TR&IAejG6NL
+!X`*$-f1"X`LRQj'%J(Yhrj1!@JJq*!!9T+@X`0D'h3-!!&&%J!!$M@e@9S%!Nrq
+"!!16S+5IJ!!)4!!!KSD6UVDhJ,J8ZESA!)Zje1rhhF3i!*+5PkGf!!!QJ4S#%`d
+DM6-#0M-3J4S($3!cTD@[aYQ'h3)!!%5!!!10E9C@J3#9ri%!!j@KTD##!"U(L*1
+VYVHiZEQkT!!,[GVemYHpSJSENT1DV&qJ!!9GTDDccGZ'hB)!!ieY9PD"!*IrJ3!
+$PU+QSS%!(SH)P+bhZ,QjZVYe!%(JqHc5Yjk&!%#6NjbbUc)a,LQ#*S3R!!U!!!!
+HJLL&+38qQkDRYp'(hB%!!ieY9PD"!*RrJ3!$PU1TT)!!"BL)PDbiZB#k'EY(!)E
+jjFbaR**6!%Q8P+'jaFI$XjqAQ*LCJ*S"Qjb!R3!+J!!&H+#JSD'LJ+-#T+1NJ+8
+%TUDU[G1(hB!!!jPY9PD"!*[rJ3!SQ+@UT!!!L)L9V,QjZVZl["J!ZGr%UTZ1JMX
+!3C5@TVh(b-5dSTZFR*f!RJ5IS+#K2B%!"*DKSU5PJ+D"T`HSU+QTUV,&eiIG"3!
+!X(G@9S%!RIq"!#LITDZP!)Z)PDbkZVZl[+8!!0QrT*L,Ifii!!"6Mkc!b-R)[V#
+VV+fZVS#[!V#3!$L"!!BISD'QVVDhJ,L"ZB#k!l[$dGZ'h3AE!,b*A9D"!*rrJ3!
+BS+@XTTH-PDfkZlZm[Bi!!,QIPSGlE&e-"*B!"eqLSDZrc0$3J0%"dY+#d`(@fSE
+G"G[6[**XAB%!SIq"!"LEU+fSPjQYZlbm[Ef1!!"rP)4eD9Y135J+P!!-$*fKSl$
++f0[DfpcEh)hG"G[6[**cE)%!Srq"!"LEUDkUTE'k[,fp[UF!!"YjFfCA5MiY)4-
+%N`!,DD1LTVE2fpVEfpcFMGd&fp1mNR0cJ3#Pri%!#jfVX,+hZlbp[Vqr9B!!"a3
+@%aFA%3B"N`!+D++LSkc!e0VEfpb1h3AEdlb5Fh1"!+IrJ3!0RkbdZVbp[Eqr`-&
+h,!UB!!)H2)f!SJ@PY-[BfpZ!h)cG"G[6[**cFi%!UIq"!!bJVEDm[Ekr`-(#`,@
+KJC3+PC@@PTHAQ*LCQKf"!!3RRCkHRi#J$+'KSU+MTDr$e0[Eh0b0h3AEdlb5Fh1
+"!+[rJ3!4SDki[Er!`-(#`EZXRTHAPCD@J*F%Q*LCQT!!JJ!"6Tk!Ri#J#+'KSk@
+SXX,4fS(FM0d&fp1mNR0cJ3#Yri%!'++[Z,l!`F($a-+mXULMSk+MSk5PTDDQTh1
+#!!9fRTqPUUk"V`QbYEl)e0RFh0hFM0d&fp1mNR0cJ3#[ri%!%+1`ZF$"`X,%aF2
+"[EZl[+4fJ&m$B'"K-B)!$Np289KKC'9aT-[0cp,AfS$FMGd&fp1mNR0cJ3#ari%
+!"U5aZX(#`m5!aJ2)b-NrP!!#E0VDJ0Z!h)cG"G[6[**cFi%!Xrq"!!ZPXlc#`m6
+&amI)b('9!!3eeGMDfi$FM0d&fp1mNR0cJ3#eri%!#UHd[F6&aXE)bFPaL!!!,BN
+!"AI"bG2Dh)hG"G[6[**cFi%!Yrq"!!kSYEl%aXI)bXV,C6-a,5U"+3-cI+44J5J
+!+B%U"c@!UUfcaGEFM0d&fp1mNR0cJ3#jri%!$ULh`-E(bFR,bmc*ZU@FR)'G"*k
+IRk#LJ+%"SU+!S`@NTD5V[p5-h3AEdlb5Fh1"!,[rJ3!0UVM!amR*bmc0bEUSS*q
+"S3QLSU@VVkUQTDDQJUF$Ul2(f)[G"G[6[**cFi%![Iq"!!fUZ-2*bm[-cXc&Z,+
+`XB#b#E5dZF,&[lQfYlL"Z35k[mR9fiVG"G[6[**cFi%![rq"!!QXZX2+c-h0cml
+,J-J)bFV,bmc1dpA5K!!%dY,6fGb+h3AEdlb5Fh1"!-(rJ3!2VV[&c-h1cp$4dY,
+8e0A9eS$A!GMCK!#1h3AEdlb5Fh1"!-2rJ3!2Vlh(cFr2d0,6dp68eGE@ei$B!YN
+!!)!c"3!!cXr6fSRG"G[6[**cFi%!aIq"!"5`[XI1d0$4dp69eGE@epMCf0VD!!#
+!-`8!!,1c[Y1)h3AEdlb5Fh1"!-IrJ3!FXF$*d0(5dYA9eYIAf0MCfGVD!!!i1$N
+!!+DQXmq(h3AEdlb5Fh1"!-RrJ3!%XX(,dG1,!)"!L`!'hG[6[**cFi%!brq"!!5
+d`Xh5e)S!!NP)5)S!"YhEdlb5Fh1"!-hrJ3!%YX20dYD!!!"%KP%!8SC4!%5!!!E
+2cFD`Lh&cJ3$2ri%!",h%cp62J!!!4)4C!&L'@3"%J!!'Xl+VQAPQEi%!dIq"!!5
+pa0$6ai!!"N4KBQ&KBQ+!B3*LBQ'!BJ"%J!!'TU5HMA"IDS%!drq"!!5iap$6ai!
+!!%5$DJ*VDQZ!DJ&V4)!!"UDNRSe`AfU"!0ArJ3!%Z-I4e-Q!!!&%FB&b!('#FJ"
+%J!!'TU5HMA"IDS%!erq"!!5jb0(9bS!!!%5'G`"%J!!'TU5HMA"IDS%!fIq"!!5
+kbG,@bS!!!%5%G`"%J!!'TU5HMA"IDS%!frq"!!5lbY2@bi!!!%5#G`"%J!!'TU5
+HMA"IDS%!hIq"!!5lbp6Abi!!!%5!G`"%J!!'TU5HMA"IDS%!hrq"!!5mbp6Abi!
+!!N4h4)!!"UDNRSe`AfU"!1(rJ3!%[-[8emZ!!!"%J!!'TU5HMA"IDS%!irq"!!5
+mbp6Abi)!"UDNRSe`AfU"!1ArJ3!%[-[8emZ!!!DQT*k0F&pUJ3$Rri%!$,c,e0I
+,!+LNRSe`AfU"!1RrJ3!+[-[8emZeSBe`AfU"!1[rJ3!)[-[8eX+FFPpUJ3$Yri%
+!"Vc+c,H(C@U"!1rrJ3!%Z,D@F@q"!2(rJ3!#RhjcJ3$cri%!!(U"!2ArK!$hri)
+!qIq!!2[r!!$rN!5jrh3iE@X!!%!)!*#rp3#3I[Arr`#3I2ArN!3!N(Verj!'!*"
+ipIq3#!#3G[ArN!S!N(6erj!-!*"bpIq3$J#3F2ArN"!!N'lerj!5!*"XpIq3&!#
+3D[ArN"B!N'Merj!B!*"QpIq3'J#3C2ArN"`!N',erj!H!*"JpIq3)!#3A[ArN#)
+!N&cerj!N!*"DpIq3*J#3@2ArN#J!N&Eerj!U!*"8pIq3,!#38[ArN#i!N&$erj!
+`!*"1pIq3-J#362ArN$3!N%Verj!f!*")pIq31!#34[ArN$S!N%6erj!m!*"#pIq
+32J#332ArN%!!N$lerj"#!*!mpIq34!#31[ArN%B!N$Merj")!*!fpIq35J#302A
+rN%`!N$,erj"1!*!`pIq38!#3,[ArN&)!N#cerj"8!*!UpIq39J#3+2ArN&J!N#E
+erj"D!*!NpIq3A!#3)[ArN&i!N#$erj"J!*!HpIq3BJ#3(2ArN'3!N"Verj"Q!*!
+BpIq3D!#3&[ArN'S!N"6erj"X!*!5pIq3EJ#3%2ArN(!!N!lerj"b!*!-pIq3G!#
+3#[ArN(B!N!Merj"i!*!'rj"l!*!%rj"p!*!%rj"l!*!'pIq3H!#3#2ArN(B!N!V
+erj"d!*!-pIq3FJ#3$[ArN(!!N"$erj"Z!*!5pIq3E!#3&2ArN'S!N"Eerj"S!*!
+BpIq3CJ#3'[ArN'3!N"cerj"L!*!HpIq3B!#3)2ArN&i!N#,erj"F!*!NpIq3@J#
+3*[ArN&J!N#Merj"@!*!UpIq39!#3,2ArN&)!N#lerj"3!*!`pIq36J#3-[ArN%`
+!N$6erj"+!*!fpIq35!#312ArN%B!N$Verj"%!*!mpIq33J#32[ArN%!!N%$erj!
+q!*"#pIq32!#342ArN$S!N%Eerj!i!*")pIq30J#35[ArN$3!N%cerj!b!*"1pIq
+3-!#382ArN#i!N&,erj!X!*"8pIq3+J#39[ArN#J!N&Merj!Q!*"DpIq3*!#3A2A
+rN#)!N&lerj!J!*"JpIq3(J#3B[ArN"`!N'6erj!D!*"QpIq3'!#3D2ArN"B!N'V
+erj!8!*"XpIq3%J#3E[ArN"!!N($erj!1!*"bpIq3$!#3G2ArN!S!N(Eerj!)!*"
+ipIq3"J#3H[ArN!3!N(cerrm!N(le!*$r!*"$"!#3%B%!N"k"!2m!N"b"!&3Vr`#
+3'S%!92p8+rm!N"L"!&6rN!08+rm!N"D"!&6rN!98+rm!N"5"!2AfN!08pT!%+rm
+!N"+"!2AfN!6ipT!&+rm!N"#"!2AfpS'3"PEhp[BVr`#3$S%!pIEfrIq3"[a@pT!
+$+rm!N!b"!2AfpPErIrH3")(rprD3"#[r!*!+J3$epT!$r2hh9Rq3"DZ3!hrfpL[
+r!*!)J3"8pT!%rhrfIbTr!*!$9&4r9L[f9#[r!*!'J3"8rrD3!eErq2Gr+Rm!N!0
+89+[h+rEr9#[r!*!%J3"8rrrfN!2mrIG@9#T8N!9rUrIfp[rr9#[r!!#"!&6rN!0
+8q2ErIrCr+T!&9&4rIrIi92q3!e6ir`!!rbY8rrrfpPErprGr+S'3"+a8UeEfN!2
+rre6ir`#3"2mV92rfp[cppPDV+S(fN!1"IrrhpT!$re6ir`#3"[mV92EfrIhh9UZ
+Vrj!'IrIfN!08q2m!N!Mr+rEf9[jrpj!%ri(hN!6fN!2hq2m!N!Vr+rEf9[hrN!D
+"pT!&prMr!*!-rb[fN!ErJIH3!rD3!rIir`#3$[mVpT!$rrrirrripT!$prMr!*!
+3rb[fN!2hprMhN!2fprMr!*!5rb[fN!48pT!$prMr!*!8rbY8rj!&92Mr!*!@rbY
+8rj!$92Mr!*!BrbY8re6ir`#3'[mV92Mr!*!FrrMr!*!Hr`#3-3%!N!1!!!!"3!!
+!!L!!!!53!!!!#FJ!!"2N!!!J!J!!3!%!!)IJJ!%2m%!#($!J""Rr%!JDLJJ5-SS
+N*M,b-Nid"MNQCI3b%Q88*!KRr!J%F-!3!MrJ)!%"J%!!KX#!!%!"!!!J!J!!%q3
+!!!R)!!!%N!!!!!)J!!!"3!#3!i!!N!H!!!!"`!!!!q!!!!I`!!!2q!!!(r`!!$r
+q!!"rr`!!rrq!!Irr`!2rrq!(rrr`$rrrq"rrrr`rrrrqIrq3!crrrriIrrrm$rr
+rq!Irrr!$rrrJ!Irr`!$rri!!Irm!!$rq!!!Ir!!!$rJ!!!I`!!!$i!!!!F!!N!1
+!!*!)('&eFh3!N!-"5801)`#3",qj4P*&4J#3"B3!!%kh384$8J-!T$B393e94`)
+!)QAZ4rrHZr1mj,,,c,NP`aFaja,8Jmaeb8"2S10bp$U&%CE0!r81bZGcUd,%Plr
+QH$k48dd"X@eITQA-fP*$-kCP@EDraPUQC@IlYXBb$G1dMF-f$F15bl)-Bb,HjrG
+lhrIZpIR`r0VCrmmA'f@P*-U")!m#)-J-!&fe[lcll&FUdKN)[Kr$3Gq#Bm*plKf
+1QLq!5[c4aDqM38IM@rmRSl$RGQ%Iq[BC`4GrN9&)A3Njb&fr4dKYXE6P(MeX2L3
+3184$q+ZK3ZHRfrI2l@[p%C!!RHl@M,Pp+'"J[0khpFkpf38Ne5XR@L)ZS(Zr12(
+@EkePM`"P1IGQMrEPKkkaQQf[R0KZRYZ2iYpaX4h&c9aXTFFpKF&$Vcp'MhX+r@e
+Fh!bNF0rVMhAm,8$`"(S9(3B#XGA5Zf@A0@Lc)LV3jD'VApPHkIKEi*%DJ@5q8,0
+C%(i(eIHchHhaBKaE&1,1MGrTqKZKi42%apm@,r6Irhci%I-PPar)UT!!Y63i*(i
+aqD[4)FY39Qhd,ViHY*CbBDp[d0ciqmCS%bpeDaNQGrQ'eMd5P5BiV%$BL5H11LG
+rT`c`ZXXIJ`,UF'V6S1Y9iHhB$B4N9*5*FE&$f,,IRXah1[RcUmPI8F9-ZIU9F[%
+dPMAiE"YjQkjmEr2eL(VYHeZDUM`BfcXQRUMj#prTf'RKca"1Yrj8GMHM$%ke&*h
+YESdAXBhrVqXX0Rm@QcmVr2dr6K,4cZBrG@LmpGJ-cD'C3qE'kD'SIH0eQXU2"Ud
+aeiprCTipb)p+eHjY2rlCfl-[kr&`A&V%j!d0GM(kNH@Mp!CpIhChIaFK6G[fYpc
+68NDU%'HSTAGZRl*)3N%UNMUPM4#PdZ66rkJmm0&dir*d5jPa-D9fqCG#B6F&54d
+S,[3I4@8MBfkr"9Xd"9"XKj+aV21hUm9)0e$!q!HeA+(qrBj63dm+iILm-9mieLC
+%YR@F!XNd$2[a5,IjTrAeHpi9EN3)YpilGm"DTJrZ"4+mipV)9q(DX[Y9ld5Aj+&
+-`jJf#18(5'kB'Vh0-V9q[M@J$bDRkYp,IPC2dm0k*(N2d2i4&deDiVbMeAc$,)(
+0&06VDDdrqZYC)J#dFl!e%ShGI+!$$2jeM3L'[rR!)ZF@#l`5+8Qqr"#(6FPCk[a
+YFE&P5ZZe"QZF[!ebMZZJbLR$"L+aTfNJdp%B%2M#Qa&hFC&bH$$20J,CAd9pj$!
+Bf6S',ar1b9M00L'H0c+'VIA$BGUILm%a1B0YDAhI48"`U[r-``(b[NL89[E)fbL
+K*-p0#38[MF526Qlhc6fpGmcTE)%#3SF#SZ2DeHkfM,QRp6,6RC6FjTqk4&+`BhH
+VL*CeDS,3fl'18fh#E&[mBVYQ([UkFIU3!0PQXc@qf(4CHTLV5iqaLfDcQ@fQm3P
+8pFb$9QrSa3%-i[*633p+N`EiSGR@VX8p-Ihb$D''5jQ"DjGm`3Iq!PYA*K'"QjF
+6'Ul&6fT&cB@N(R-@K%62YSK)lNe1kEPpVVPRP[J$9"ITe38Y5#+RNp380FdeVTT
+2S1Vi[pAKBb*j`RF*U1&3aPCpc"-AR`,e62kA&Dd*%m,NS1!)k0f3!0AV#5i0Q5)
+8@@X@4@-G5i"iAb+S-0fS3TM9iYqH-AGKP4f[mUSG(4@eei$5LpPH3EF%1)C09lX
+p@Jr!lq4VMk3l[ehec+X!`D[Dp6&6SUkVaeS'64&2X"&S29@TpmKJ99XXSeK8Y9p
+Y2#f`A(e-5)ilU6[K[&I!HDpccJ,5IqbJaa0R'%T9'B!0U&0T8'[`Q2E)8)8EKkD
+RaUhdd,Ak@'*5ULRA*#h(*,fMiXRSU`FH&P81IT@qHX$TV'UfC95jAcdJBPA$(4A
+IFS%3BI1CS%!KLNqpq3`#K)ahlm*RGXH5(prPkL+b3K8qL8I"eEre3cQjrR0-r4#
+U6T@i@eY)030!"Y@@3P+MQM2HY0Gm[iA9ID+XjSp*,5I+`1l@j&GE3r3!3HFI+pd
+,!!Uj9)6k&!322[54Gl`'c`R`VF!#9*A92Hp"mqpFfdA!h(MYSmi$%A+c[%dI46H
+02@Mq@RP`T&A8Ij2qkVij)c6lZJZAED,qEIUVHhYkD$E!Z"P(A0U%1,iGQ+`r!3"
+CB2jDppBRd&pG3Y14fD&0fiAAr1+9crUeqZr6AphhElXqqk-&SGXq'd$`eh6k*34
+9,jd839H4ZE(T#*CH""mb0$LT&`%DG(Br"R*%DT,ES25#3fG*IVEGjhV3h$L2@2h
+GJY"BNIRVUGkj#mf,0rA1,FH4&kiFX@[elp&IhAXcVmqq%&FfmrSmB[4haiQT2eR
+iNIP2j[A166Er$Pdq4jH2FV)jFB'fh(4%pqd#QhLTM(l'9ejQEIp)TqlEDaI00FQ
+pDD`LcdqfN!$+LG4M$hd+i+QhkKQVhHiMeE!S!i+Spm9TA6Y%fGiG!LTJS'QKK+3
+%V(bU25eUEfp@*[TTSMi%l9SCKXmeYHErDbFbp1Y2'F"I+2h+L+'H6Yp)6P*4K$2
+$UlBd!hLGV9X3S*A"L60fE2&6&cM@5pV-9#3'DSj-G0%K,Rpl9iQ6Aj!!6IjX"C-
+2bbCrP(HbF`Y&pqT%@D6I`ZVDG'GYcIITe6,Qc(IQ9pI!8I-,Ir9hT%[K%)lU"K3
+dS99r4af-9)q%P'fMb!q%,#Slc4i[($@(*`*(6BGA+#AeL(AiAkH*S-P"j0NE)&5
+bmeLi1hVHifF(X!L6,Hhp)KLm4%T*ccemMBHQJCEeH`-+NrR%D-hh+GReF-`1E22
+M9P5"KF0e34SdIm#MAHf1XRSdjMB5*p$L"h1PjX9k)%C+ck,$%kjAJa+`GPl%m0G
+((`Lc125KlH'U6GX"#&G0k2j`5"r%a6bq1"keGr@*G5$F-!U69'%#!8[eM!B,+Ja
+f-E+AR+&'*,J$dI$RTPBpB(@Ia8C'3BjSU6QMDKiqQc!*BL-%,PIYDZqbGaRC""1
+8+$5**L-)m"S8T3i5e@%RKT5FB(AbVMG',f8--kLe[L@'BEH&hakp4-GR6808M4J
+kMqZN(!ED[!bG5p'K#&A!LLFrR"!818d6MYk+qA%1**+MTEGL-9820Hq%!#((ph5
+$X%@N&TNdZES-b`Ic*lTFILKqC#VS,PC`3aLSl!lYJ2EULBU'lDFV&Vmk9&(CFh[
+9c1hQLYGlEUpBlRQi2!VRASJ&aQ22pH0B-%@UmD@@`D[GeJ258X`")@EbSZ,*C+K
+F!R5"ifpMCJ`AkA$Q3I`RcCC")S$eXZr%(B$#R3Gb6IXm4lHTH9e3@'6[,D+ZG`M
+ILC&ZG$+lLJ%#e-V)aaXMmTd4#TX1CY1QX(NL"jZp&EA+%CZ8)ieAcBYGA90#BTC
+BG39bUr((a6b&L,B+L@$PNmXU+KDEQTGN9(aXLP%35!5Y@*lm8%Z!@DqQT,+kk5!
+F81IUNMm`cC)Id%)4)2)-)K!8[T83j8&d%J1kaI0-H96QP+bA*L+b1@LDrP6bXmq
+-#Kd1(VaBk8h2T)QfK`l!mr9+!cac`(2`9*DB`N#Y0&"lRU(BNCf%Ch&AGm%aA@q
+G+Q(J#ca`ZVM21$!aUJb,bId3rrK#2Ma&l$C9(362L'5L3&i$`FIf$h@XE9%LUr-
+B"Ied[5mPDm"i(F@eAlQH-PjEF"f3!+i6$8--i,T)Z6B-X4(AAZAD-!5T##mB[!B
+"N!$(EM+#92NSI[8+J96j!+G*8%)[Mdk)[80LNX'4*)$'jhIH3N'ah02UPU'kR9$
+Z1TTpSI+q!m*@jBcKd``8fR"2hFjE-,6Z'3F+SJdJS2#iD&#Veq@2LZ#BhVHcRN3
+p(-)%G6bZqY%P(efi1p"2,PZkFj`l2LcV'!$k3hH'!+5fiDJ2m9Q)$Z8Ff,k(MEC
+rN!#fXp#5[V-3JTM6DBSbl%)-pcV3ABdBmMh2$mUM11)GA&bJ)%VU[$2*I%C$KFB
+qJJi**-JP15b3!1h5UYGpN!"@N!"2aCV[@0),mNPa!f4K&X5eaQ`GTcZVlm'%JJp
+)21SSd0GD38''d!E1+SqKpMN+3E!d$(b!4I9!C1F"902`DJ[hqT`ABT88186%j0i
+r$8)l1`MdqPP#A0Q-pfD%S)VH((Ahi!%K[P%j8KmQc!MCHl#a@K"PXl-35)EhkFJ
+6[T-R-(3KJ3c9#'$e-QY5Zkrr3BL*1Bp"N!"P#X0(ea%`f2#F#*KL,06P2$i`%)P
+'XYrf$5dp(6rEJXR@GKU1'0YEV!`dZEFB*1PcAP")jL"#,+PbKUc0%(mEc)VKi)6
+@m0U28Z&`C9Fj#i&%VFAPCL$[DKX3A-8,jrfmqAi-Fk$Q#d`JTI$4K[5#JRK43-U
+a"--"q3!&#[*V&V$`)iC1AZ[UfeQB#q$a`iP"F,GA#DB!4Ymfd5@,Z*'HfjmmY0e
+FCHZj[EB*K4-S,%,"JJGf&$T3F+$J3m'0`RN8A#LF3f%+KIY4d&%ih2'NdeRSkML
+rj3i#V'e9ZqFI&3I%'8d5$J5b4FX3iQd#eIF'UTmiTV'SAb'*"[,$+!X&&Zle9jH
+fTE@8B@+"16hIKFp!6A@XLN!fCk'T(C(R-fG"4J5&0j`&mBjBHY%*A*5LJ#lTAKB
+($!"iX[L'$%FX(Ba2pTf@@&Nf##)IY5'S"fPkhlfVTIIGfHBc$cXSmK*3!'6D)-L
+d`"!iMA4Ef3Yk[lC99'A4T&fSUJMEDP4@a'Pd'%%`ANd2E08LPDSb,Ee9@5fp$4B
+m5&B#YmK4cC1kIE!UUm3*-C2`EP5Z'RJSZrBmJ*-p,1`&-8AV4YX2U#XQc,5)ldQ
+9[TpI99REB5N#-[#p2Gh8'4&l%&@KdSiP$eHkZMbT&b[H,0f1LkT$[B0EAMG-)U!
+1D,NP1fI+0fX54FYP!k9[H4f"B"`''mia,Ie92+Mbi*98CBV"2eFP@8Y4ZIX`+ST
+m(ZIf`6G,ciMf!!d91`6`mjbT&HcA)NP"X#F&"DeBR1YBi[[NU%C%J!GGHP4kJ!6
+"JipM[3$JCSDl8ml"%HfYQ[Qp%!%P9*8IUXXI'2UPd$b"j$jid%$q!$Paq3-pYlr
+CE!lEIY$&#+4)"-+)kib2h)C(aA83F3ZFaD$NL8G(I2VHXD"'&3+D6*8!h`31lFX
+IZ+0VB8Jk[Z'cF(Gmi*((Q2%"#66`$BDl@BLiim4MK*CPCb#LqmBG3Dm)@Ec@ePF
+4@GkYhil)mZj0a$jBGdJ$8U#!65m!N5XlPKbI,MhH8MRdbd#CB3U%-T(`**UjTG+
+FAMLrC@`[rNN[G$YQ6YqpP!*3HSL,+JZ"KcZXIFV&#kpL!KK)hld-$06YAJVNKeG
+KSQrh1h4%GRGd8TNHC3$hjlJ5IJMYrdm(!dP8S3L"R'A5TMI98mAkBFF3'-B`8`m
+lD"MTiGUhP5i"kP)m8lTqGTPbAF6AVdRApJXJbdh[JTa`00,cNH6KehU3!,!%G)*
+Xp4@9YSb+"Qa`2Kl(c"N9bcZ@k&FpcJC%D%)hCSd3k8qHmBb5q(CE'Ldl6Q@FS'8
+l*B4$ppNG-k[bBk-A1Y-(!rN3'%6&Bh46Q-5kRhQDb)E#i6"(phDl1)rN#-NMU39
+H,ci,3A&j8eA"addd9+JcABMmf%`S3(DqMZYPYe,a($cUS%1JQM))"0q`-N$%h*M
+G6B,'E38Jk6!FjlI*3`m+8jPdH0YGfGhb`p+A@bjC4G#a$-jRbR%pF!f&cMikX%9
+)422De-M(+"0mDYiJC&)!`reGYT4mU!))l42,5918b!S(lLBiG298G@$(TXc8QZ[
+"NRqq3YGbckfp`)jM28fLb8$,h)5%ZjcE#G!1%E&XVj!!)l,@5f$#PS@iFS5l)8S
+G`!GEA`h%cE1"NhAj)bHR#4*FJTL6jV@FY(TY[I2h4*ZC&3"J(BZ)qIPl`L$)EL!
+&l%Y"ZVjm9+pfjkZN"K(5#bYa4-4`"!C!THKE68Lq3-k%`('6TRAbc5V%cUCJ1ES
+QmYKcNfG,8Qlb@#-5QD1(@[Tf0V6d&Ea@`K&KG"SQNK"l18J#8Zi3i@kZE$DVbGm
+Z43"4F&G,hjCbI"CL+VcNXqMFXD4VLF&*"Y)`cYA9XH5PqGKi`KSGRd%q`'(aQL4
+NifFG5ri*b&ZZBXZU5@i'aMeDHlrQEEaNMF6kKG2rNFRLL@$TF2F(-f)"!%(cm#S
+b$H"aF6$,ZX2M-NkqB0VS#G$NiAlYEf*q6#l&UmK%MiXe12U@h[NqKBRV(8[U2Vi
+U9D*rcJRZN`5Z!AKcY9m(fLm3e1&TNYpJ4ALXSiN[rHVPeHlM)8QmQ45@NM+,LXN
+9V-iUKD"L$+K*E+Se)GS1jG5%DfcD!a"BM-hrd1UeI'KYMQiG+K6kAcG"48I63Ua
+mGj!!iMhm98F6T[ZLGFFbia)4m%Bc$UBF3L%emFE%BbJN%#SBK5XQcbQSf-A#[dr
+9U6$VZF1T+'MV$LCP2BH#,51$*QLTF3FcU*!!N!#&%K@%mJrE[Yak*PMP#F6fL92
+)508FfaFm"[!fi"Z-HKe6X@pF*C9d&'V)+HdFLZI*SG9Dm&Ji,E%T%G"DV&-4&0D
+h@JIdlLe`9[lj"kiIpjPMJeeZkh"XF+rEkX"VbPU+UbN)(SKS+BiYm`5M30!3d6'
+8L*hCk`bqN!!q,P9dfTL8,rYI1F(+B2&aJXQ,,L,UC5%m8MIIlCJ+EJ4CKe[0c@k
+V+*JaAjLfA[`,2B+(mrd2VJpUhZ*!8H4K#0jDTS)ARaYZRY*f)e[8%c'JRd`4C2D
+k#@"0-DCI`$D#@N['-'dYpPB-*eTMH2Nc!U1$%S-&86PM9!(6Tl6)a`R)-239SY0
+`p9Gk&kE0@l%b&XU`'04X))2$E4jdr+QP"9R25[(b@J1IMd8Gb@24Q,4mI3bUfV%
+bX01&D+&'3P3)lpDlGb(#)!-)a!"%'8@B%85B"ek-"X-[5K0@d`4p&e@!hBKFXG8
+2L$EE)E%$B''I46-&NS24B,)IhC[TF@Xea'RZEk8MbMTZ-"i4`a'2Be)T4mpU-8k
+6VRk9BiTE0U8[cj45iHD*1jLP[Z668K4[T5K1a!K!-4L"Ne'(5)r-!L"J9aqU+-M
+F*"b1D-!a5fK3*aAD(-VdF-e[3,j!Dm,H34&K"4)mS!)iV5A4JjTNfT,YFEh,fNT
+++jFEiY)4kr$m`F03r)rf@,d1p`f0dDd1Kfm`Z8reE'$iNaBra'JFcPY3lIbNI(*
+#S()GJl$iE-jm!-@#L`M'P49CBPaSmAq3!#k'R3[3ZGRj-9kPc[G4I9Yi(lSl[mZ
+Urf3-HF'cMUV'0"J'rC3(FaX(FfcBB19P+aS+cURiJ%5c&K#L$jARMhPc2"`2!4p
+VXV-SQc3Nr)$*h8X(3EK84##XK8lmk"k)X!G`b$SJJYc+-FdbKLHCB3FI%A1qcj[
+eUTX&i6jQ&SH0,%UCS5jm3*d@F+H2q8J$F`p6a&5QPke`HXm'6EIPQIl*"c4P0L@
+l*eJH0AST*HX+Sjj3@GeTJ[U18D*(2*Y5%T2L")NT&CC6"K3J9XZ!l'T'!$Cm$!&
+VX)!b#0UZf*k(3`G(f9,alM5ZS[Hq1id8!`!HCJ-%K4IfL1TqHjHTV,fUF&CE9H'
+FBjSHSdar&XS5Q)#*jG3"k04D#`*UD`FKdL8d0Kj"[DFGB#$EBBfe)iUf96PVMfP
+4ic480$DD`caa4*Qi56Da[B5*1j5*CBD*f&!I0K5cA3&EEY[ck0U-BQRl1b-RXdI
+DhJN2CBmFdaaq3pBBj*d"d5LSmiMBCDSHQ'+akebJE%dEBjHT+efQaLFHj-Xbbf@
+6eh)GfC)dGC!!Xpd!pUE"DqmIb35SJBa-!09!bUK0)L8bd&)&GNai4C!!#+PhQGc
+5)kTBi8&3&%N2SJlT!6*'MZYG0!L$kjY'EQ6a&50#N!!6DU158#6FA5B0S(Ehhk*
+h8A5!%)X"K@M)IM3kcq%lLBb(@KDT)-H1#F[*q)%cSQhdj"Cc%)SN!*HLNK1593j
+kTI#L-)N#e*r)R11B'3*+jf6'h35'M-Z3!,Sa0k(Zb@%l)pb6!`(,kIMcX3(4T`Z
+6C4i8C#j@#[T#cD%cfQ1EXl9SQqYd@q6"Pjh1",&Z&r)5&SQ$Q6'mMKlf"RBK)j6
+`[H%l$5Ifm8d"mi[c3r&0B-!lDNZ[T+2G,[9SFYE*'C4%Rh`p(cr1+YYe,Qfd"qT
+EacFLI&%QACLf'4,2dI[Z,eAd*3eK)k"B+K3T"5mA$NP(H!3bHCFTMdU94ah+4CM
+8D)4@JUVTN!$`)8)ZN!"8Gb+'+Z39!&(YRL,pe`JSmPdAbCP8J#KiiB6p3ll4N4l
+IL"$Vh%0aQ3H6-[@8q(662ZZTZ)0*N!!ie!mQcL0a`i+@BTY9mZVL'&A)llJl'V3
+pjLSf0f,!@"qF,`TZ2Z-"Zm05KN&biR#mba-SqIJVQ(lkj)QH2CdM*rChRZcSq4&
+bT3j2lNp2bSa,cdc5`h'CTXbic258c%3HX)8b*83XJ-R2!kf#M(3a5jESX*,UXD0
+QJ3d,'alDdb4QhKMUl"ipZIp%GrKN"iY-EMEre-p4d52Xb&lH-TEL5DFXX*XlPRc
+lR#A00!P#MS@"FL48BBr(XaU1chFYbdf4[V'3!!KT86XQN!"5+X+9CN'4[`pCp6$
+8T#G5h8mCAAF)'Vch-H(Sr+fM88EQ)BA-a%JY'"'FD"(f4TSdP%4J`e#@cdc"2Lm
+'Lb&SD635H%JP-+Q60Gi3-BjaVZKGAflX5l"refBp[LbSdc"p`J5dK$l5%T%5Vk!
+3,*HU'i'c(HVVXRaQ,@ZC"'$@*@-qT$+2)aAHC8G',-Y*-+*P%QKU9epAY!b,'+'
+RqVU3!0d83dPXdc$%pT(p#YGUY)JKSrNi'%1aa@%NkASL4'mD+Tl08T4@Q&a+PbT
+$&rF2jBNcLRV-"A&B8Yk9NT0c6*`44iAPXAM6q)-aVrM&i3L%[)Cm&k)q,*Y5f`'
+@"NNYmR$lC!KUR"J*JBeF'"NkkSbkI'rl,Sbm-6)8T@PqRLCi@UNN,(Eq`RQD'+'
+*jpmi2l6dX3`59Ql@,lL+FPID0VV'C%`G&4$p+2+GE$L4*5),h3r#L3N%''h)5Y0
+I("D4-kVD&&"iU6DZp@Y6fJPY4$ZXHE3lY2Hd"9UeYP4EV-h3kV8k,6pB&R3(fi-
+$39X`(,`rQ"8m'N`)[Krm2$Jrf"LF%D`2eJAcr@AqFAqrImTr`MrL0rQ6r*Ipbrh
+PrJErDriQrfcrjN!`i!Ld"JB#*`)M!9-J+A!jF#f`-$!hX#5`+("VB&CJDe'ND&f
+4[@LLb&ad[LLe++iS924#dDG&98@0461+lLcDkSeiKlefli6hY2Hmpj!!pkMh2Hp
+#Ei2h0@q6GlChFl'hH,+iYGK9I,biXrKFmD(LBm8ALUm8*aI2,fiX[V[iTZ*Ta9X
+M`8KTC&fN2E)TFMaLLCb2(*l-&rq1ci@45e&4E&+@(r%b@ePqaNZ,X[`Q,mH8j89
+HpLR,phQT+mY2HGQX,,rNC8"C*Y25Ze9CP[0bPV,mR*Hh+FX[H2Q*X[`hAVkT,&r
+KCB1bV1&PZE+XjZ9bC9R*bb2+mQ9HRP'@&Eam@PR1jH99C9R&b`jPq5i["jAP@lc
+FT#br`FXfC6QIPm2+mQ0H4T6P8PS@&5V,Iq$P('@jK*Hh+-Zrj@@6X[`AAVkQ,0r
+KjFFScXBR4%3p6eG%!*V8`"1@+dXQFG%4CFP%,6UM,*Q-48r,KLVRSE+9#4,$DJ6
+i,Lr(P)G-S+)qCFP*8+3V3ed`$P@U6'"#&!PPb8N8f+*-rkDkK8#pFY34RM"$@Al
+)bmA+p!4m&[,dqFT`R"b"cfA$IFi6VXLZrSf[3NSAMNb"1'A*#4&)P4e`QDIlC&F
+Aq@T3G[89Aa%"rSb)ai2SXJN[m`59!"`0!bS"1,(p4)#l9H,jle5fqcS[Ee@@bhL
+j51Ri%eiZ8CEXXIacP59(Arp#'3X,L!ArHbKqMFm9RR#(M#J*2#&,eZ8)Aje6KQ6
+2iZp8PK`*rFGPNH9eRVj$QF!Hflp4BC`*iRFSbdZm$#V,rk*PF$1+[e-C#pkP,*r
+Rj8cC-Fr6-F'[C9I,q8VZ!6lPUh,Ce9rbe6ACeBGmGBIXk[ra9CE#eVrbdIFV%ri
+4RlGj3UFbJBNI2+i`bJN6G#R6Ve1NjqP%J(qLk+p'kQ"-GZ6IdT9@+,YD`PHcP'k
+8Q0IjkPEC&8G(EE'XfjGmTAS!CPhlA$D"Nekl)VYL,k1&C&F0I*@ZE1mb$a*9PQr
+cdUFXVr2bY,*mJjF6bM+"PhCPqAeHVP1@,r!bTLbrSU8S8*E[mA+EXZ4NCpCSZCb
+Ada85I%(%*fD&kJ"bP"%I+mX&[(aG@Ak(PamUbrr(5iLVLm@+3h%!K6p5R"L2XU$
+J+P8K*MRdfFS$FRJkP3800DJXk-J"T30&",[bi#qa'&F@a)K$@9!`'TKFl,[NHd-
+#6M,%Yd`-cP`L!D6B'EN!(+'JSG!0NKSdB#*a#3CJAQ-!jTl$)Y"T&2XD4jeha(r
+)[c"JNrlmmlQ`,Y#(M[e#ikl*h,8,'H4Q'VXZ&3Z&@B6&hFLpHcI%aj,%)I'HU"5
+IBhPB[!D&`9%8laETiSLi+KD*Gl#i)KVimQlaiI#Bq*))Ld)j#TG4q#*k&+r2SdP
+i[4j0akXkHJL[QZKK[&k1AX9VE[3mAQp&`hKp(,AJp3r4dhMp5r3iAZp%Tr"UM'l
+#kmAS$VaHLlEMp5G4(Dp&dA9ir5%kL9GqY"5[fQJ%Vpp%J5Yf30LMb#cEY!6Zl6d
+XJRBMZ2HkeJ5`ELkfR!$NmcAY*['KpJIY9Qfc0PZETG8&0iVNS&FV$-*MLHVJ4Zd
+D!,pBX&Nd"$GL'4+0BKP)-9-dLAVY3c&,e)TY!#%MQK[j$h60MNNZE4$!T&R,eX,
+D-LeC1k4&!95Hi3(H",0!BfX,8,K1RK1&bbJ3%FQE%"%[S%"Nr!L&1"51S2!d#Tq
+K3'4-31%F#YmNciR#fbJ3'Gp!`BB#XKYUme$i2JT%aKG3k%IK+a4D8EK'RK1&LbJ
+dSh!&K6)8RNFKL-*b*'BK#[q&`KB8hNGK'JVr5*i6"5Lca@dS)2ZYQ)(#!K6qJ-*
+hb(1Lm#N+5e$i5a6QSl!3K8S8[SY#13U[N!##&i8U&)J!lbU4k%dP%[f%)p%IF56
+kK#24rq&)G#Y(STNFLAl'NHJZMN3rj8JdLb24,cN56H0)p0mFLHC`*,UG)e%G4k*
+riNMdGab*YR!NqQH14*[951323&(c&T!!mel(Q2LfK(J2ET0&V#[@8K+%j-8ceY)
+SNI&Z(ZV2H+KIUd-&Pf#S+mT3Lj@KATF0GF6DLU(-[(LF&fhiY126K`p8UeBpkX+
+3!&Yj'prLE6c*fbMNEHcQEHcN``[iF+Iam1-i[%Bjr2pA$Zr(C8Ljr&[PFTKI%"Z
+"5K[166!`h!aee@`S-j0KYJ+XrZB0CMN)YDkI@!dp$h'NrP%b40CrPPi6SiEAb"j
+kZ8F0,c0GL@ZmF0&,[%IGa1`(3Mbjli%32ia),bE'(bJ,'"Ap'kfTA+M(e3AZq,R
+839a!pc2U!Smk(`Mp6FJDa`2mTr8B&pc@2MbDKdR(kH+HRf%b4I"'N!!U@BQSrkC
+%e%SPSPBS%E9"LDMcPBMk$5@L,P8LkVpb4&h'%A8*4p4rjiMk1ikSAh0%r3Z1U%d
+F8@rJL$U$)qTIFd5GcK(epaa4Imj*I"XRm8fFa2r*59c256bENrJr1)R[9*,i+T,
+TRdcKR)N8JpMah-[@(9biEYe)K5pqBLfM3RQb04*eBj!!E6cXVhMB@hMBhbV$HMR
+6JT!!#9RRXl"E2QHUP""6'eRF0QBL9&K%8Gbi5$"EkV,c#+%Mfa4d*!PIpMi04F+
+((c`0TF+R%$iVebhPaFJf)X3LC$)i2DpIf+$@kaI(l5%Zp,@(5!`2TNdqKD!H%1B
+lMd#-lA8b-a%8cNS@QCY2bi"JjF#4j##'1a0,0fm[#*VL9Y`Car39"%L-B1F#C(+
+%--2)pD5(IeE$JR2')Dd"L!qf3d6KL,Q4JK,cGQ[Jf0h4jQI5GeB*PleUjp,fUTh
+cLA!8J+Z)8XT%iGE*Q'$bZ&e!B1%5K$2DdPY"Z0Z![LBaI5*S!9!Hpe8Mme'd92I
+r@fZE'5T&rjFSk"C9pDX!!j)SI$8HP8(Sb@(l!50b))iM513$4V,DC)+NT4%h%XT
+5"9A6i9C&T(3m-"Q)"TTISba[8([k@apq,@6D0ZN&U[@M"bpR#dpAidHQcAMS3ME
+5J"lm6F+&N!!H0!rD"P(B[rr[XX8h2NQGe&r,rII@*jPcJ(Vb'++*2KB[bk#$*#Q
+M6,aNNNl0#Y0Z%"%[!j*lUh8!#1fY0CH!#Yq+6adq@f!kV8e5fdYLP$AMPYi+0`E
+,D1M6$fPPb-T9m@iK8'QplaC@raTG#Ld9$Ae@RT!!$+4k3aq%a[SlP[5f)4Y&ZDh
+hADG(C(I,K)*l-B@*fRZ)MQG%qMV9S"30`bV#kDY*A6L64$Q-+,++@L'*VQ@CL5R
+V$NY[`fT61kRY'eE[)H6m&P,T3i`f26@6"C!!-KT@ZmC%Ff@LUmXS&*p13heV%BY
+hZALJIKV)fQEVAI%`a#"3dMHa1UQ@98[j8Ch%eLL$"ckN5+R&!E0SUJp6fD$2+b3
+b&B*`$,+Y'5CZ`m4Y*"*L&-@Sq&DYY%A6A'EYZ-43c@&#FT+`#A@5#fqS`aQkFY*
+XJIKU38fQ5PC%$T@`Rc"KQhS2LHRB`#%a%`2Ba8amTZ26K-mR"N,(1k51cPVUk-`
+A64*EG!fKeT[-MAZ&fNhCd+`*3ZPM`Y*$iKED2'8&!%2qQK5khM8NEM&QPVT6BJ`
+#%T%EUX9L%(Yep@'1EZlHM$FRR(GqN!$ajM`fDc1YFKdCekam#!SmML5@DV%S!bV
+rpQI&S[I418-5#BB*TGr!,)`SkPMLZ!PC(#0d@I-9$qVPJ4jD`r',FK`raXF2E[$
+a%mVapkrJq'e8c9!M*6a&!"m)9$93*'KU`b%36[V%1!&C`I#"YkA(a-)U*H"8hJ4
+N$k8F*d[ScKp'`X,c#h`#Z6)6'G(E6L$1Lcq9(K6-SB`de"'+R-qP#FqH)b4daj)
+RfL65&@bTZ8B[HN`1N53NHFXI(&e!8+0LQL2"E!9cN!"J*`Uf83BI5V##1C82N@H
+8KLdp!215"Hp$e"G#5+XKT+T60JH9"9+5A)iikk[rBDV,HKjCSM9VH%mhe+&QFlM
+k[DNZ&RALUGA[ZESDKZ)h[Amk'U(,8E[i21IMp,ZNVZSe4-HU`Yd+)bGSHqSM@H6
+B3T&$cF*6-)XbF#M68L8#fHF4+Kp$""3#e6'"kR)6k$mV&3,0))92G4)jXG@*1BM
+9@6!,a!SAc-'N1LE@,#1aF-3pBCLc+*`UBT+G90QJc6@"J$i5&LLB*aCJX@")eQh
++31jl5RmPCAqXVE(,VSGKrU(3@3$!J"p@Ik&dh53M5UT%&"*@Bm,896j%4Kc)5+H
+Dr83K$`%rk!54@pdc#12#@#!M&l,DChSI2i#F-H3X)`05E,U"B#4fQj0N0jf"3+j
+%X,Se%-c("$[2"0Z5Jf"dK&i#`I59%Sbk4C3&R)[eYq3K'&hI93,"U'Y34M!p"m'
+f--(Uj!36(*88dCa2eKj#j6PJ#($Ih@UaLh6V1JB&(Z*A&ldkPV5rhL9UaU0HkC+
+!d$83+0Zj$35kbKRrYV*MZDf5Kk,KiBLiDmj)3!42H!LJdphd#1`lDLK63AjeSK&
+i!fJQ(4ml3XB3+#Za1F41c+!@C&B!bMP2F('YdSd$AC8j#iRjX%"NJai0)&$AfA%
+l`8(T9YS'![-J"HDQGTlXB+&mZLkQkfLlm5,#&m0'CZh4-X1#JPdMic0Dr(a-+C)
+)QHI,,P-'X+"()4Hb!%X2(YikdIYQ2jPhhG6lCKqbVSCD)#6YR%f"1LXh(9*LXI-
+qMChh1Y9j0cVA'q26F6L%-Tfc+I-,e)[S)R1ZEi0cA5m(+a53!'5Q0*fL"cl6F$d
+Mjp3F3!`pY%I258#Be%d'D-a6fFM"!"qQGLKab!LU#,8f-JK*JHNK,BKUiC)2$R6
+ScUhmfXb[,5#FUh+5b&Ip*6'K(*5E()iX%&Bl(6dRH3JY)(94-TI@U!bi3(J&K*U
+4'i4550C%MXR0Ki4A%krLKHPdF$Q4Klh9j+XCErDrfHIbq`CI(93INh#fa+$m8,l
+kBZ8X!qecqPicebGMMVdLAKZV8`cJI5c$J@ci'AD1P+f+-H5+KNMQ-%9*41eBCD*
+dI6@dIE$"N!$"m``8d-E-SXj'!P,dhSBB6!K&)(6@U!a9j@c-&-%#@Qj2DiMa-AE
+M-3imR&hL34#d$Ll+k5QmXqA%+p'$-0",a(ceN!!QhZ`RdV)AQF9HC%i*AJ3S$09
+$+FBeCmR!(BpU&UK%$r6*#Md3$iMVkD[NJB5f3ce`$9k&"bbjXpLQH,mFQmJ5j)L
+58k'9bK-'XX$cchCAck3-5p9(Aae5SZVrP8!lVEPT-'lEM+%CJkrfi"'5Q`GRjPb
+D%JQRjiQ%4*+Q(#4C6*G5G*5fTCAa89Yam)hir&SpdYcS#m&-!3aaL-LZ(UfC@,f
+IRI69JeUT*(i2)mL+Nk#bBkMB'*-YKLacfj5-FrP'cq0Af&kFKqhTZ9P%e!,`UV%
+)[R9`ea$D4M#cil14RCZlq(8R[fDMqdf9IdT1Xq)!P4ZG+LmrR-`&j%S"$jN,m%U
+1PMc$Y36m"$b'bYL+Ua(6YdNJ3'#Hc,6%I#N,,!,Fqjhe#(!2`baTaTZTcYZ`115
+mKDVD,#3pqHA'lHD'2U#(H2P[[15++`l"Ca%qRq$6K-pdI'C#Y1TcQ`1[9(ad0%9
+`*`IAV@3qA&bZH3HQCp"pV4PC)2IE$QR0YQUYP&%"&N)L!'AT*D3"R)*aLRVEd`J
+P!"3"9)ddK&C%P9qRXqB!(QhP,U8'j!'FK*Z`M6*RIL`GTTMb64j*81QqQbLS4@8
+%%3KQaiI*-5"McqC''2FV0,qf2,6mqZc,(pLF"FHAVDqNkM&e`&5(qF8"1ac'ejC
+I*c2bjKIKF-fRV)`3MEYqlE,4B%D9Fci!Xrb4lMhGkK$SN!"[IM&TcSc,md0C`qS
+$,mcJd95JVLBPi)3Ueh[*F-F2DKjKafq-R'l*13Y1+Q$'$&3#rYiFlZ)-EA#+`T4
+KUQB%40K#8fa@ejJr8(R)eB9-G($QUGN)GJ5$,@1"MN!RATd"'-akj"SFcRi#lk`
+fQ,UDLm4XCbE'#*AKE-,R(@VF!#C'P'Xf9pVEd-lA,p",3XJm8KrZaK$P'+*9QI`
+`(Rq0cc*m&KQ(H"K$I)e1VAcpJQ6f5(YKZrRG1Sj'GP'rkm#I6'N"IRPh)51j&KR
+K5T!!-4Tp6P(*ii3`Aa3IBj4V062iZCJF3B"4de@(R9!U0"!UN8$#'!)(m68&MVj
+""3!8"0Dpk`4M5b8J-ALiC##a1P%[Bk,eBeQ($*KTl1(!ZSR!fEUDlbRJFcd*Bki
+$DD*ZGBT9QT+YEYB)jMlYE)4AJe-$"ZjL-,G4!R0V(M*@iqj5VPSP!0@)a#f8)Ji
+R'J'jK@a5irY'-aSj(K2)S53)QpC!a1Y61Ve33UG#aD$&&XQJKF'T)A-$l"Qcj1$
+ldS`hikcVJ'bBC"-%KmNldV,kY`J`iUjf'lHFa)$pQEb!2A94J(U["066!#S`Eh5
+bP!S6-Dk`5YAc16,c)"`erl4GUVK`jPm[Ebl!b"'efeE&D!HkXBHE20[0)XY!cJ(
+)++e-JQJ[CGJZR##2rZmZmXL0eblP0S)cip*HVITj)ZB869ZX6,Z3!'2D"8blU&6
+&*ADfN@%5e5M2'Gdf5NkpP!&Hc*pi4c#)!Z+@95F#ZElC*M'mZCV!M'h9L4p3J&9
+,M9Y3daBiGR26df+5R"5Bd3&+RUU(ClXVRf@NkrfF+Ej@pb&bYR,3J`UpGB`D')'
+AZ+Gb"jCpb[)*AZUk$df!$1YK)'KdHQ5cdJ06d$Dkp(4@F!SQTeV++VI6m+Cb-K*
+K-'D5Zd#'0L8c#-FJh1PUCXA1$#KjMZ%6Kk82"6f0P%6*$k!j&J!fLqK!0',a5$8
+biN)FA'K,BC!!+rM@l43XD*95G&20YT!!+1[q4QU+BN[(-BdU5&U#E2S"D6Ub$"E
+b8&Pf-Z&bJ8bid"#859'$33&NqZT$0Uq!H!5Gc*+C+r+`A*5-+d@!!Yr'aTA`J)`
+V5CQlH&Jikd#N888d[fE([+kT)[0LMlBXC&ThPKr8I!#"iQd@Q'kNl-c$E!+3!,b
+8a+5B+89`6`"GA"!b*DF!cH,mf-AJL$6`V*TRE!M3m%(fd$I,UMfBZ"aC,8dH2lT
+&XA`"kTJbTG,kpecCV+8"f#"0&QFp,c-0m!-#KC!!QE(QN!"b[C%cT'qZ1DGhN8,
+N"qZX-BN%dKBaH$qfkB+5%3'*L8$b0Mf0Q4qAb![$@*8LD%L+EBXT+4a'mbYkE(q
+Km0T(C)E`hP-cl9[q"r),UdfYHlV*I1)I,d2N'jB@Ii2-Ie!h4"l-am'BC+L)5*f
+XCFV%D5lM)lSBf3L&$#V53XGR("phLf)-aiJfa,3pGMMPip&Kf85Ha!mpZ3f5')F
+YTDK*bl-(8)@IX2PHSZ$&bkq)$8PPkpI`#H,MabH!6e'CVG*,Rp*R+"VGLIUlGKh
+NmJ6j&H$AEeqNedrS&D`%`2),U9$JP!SlRC3&3@j+U@5fcYd%YLJ6q01#'S%*N!!
+(XP5L8Zf&Ph!N'`+1EDS`LJAHJG8i*UQEK-J)&&0A5G8MBY3)4$a0XNQ6Q)``fTD
+S+aNm0K2Ki'bH)#I,0HBS8lV(9)+1R%EM3d-8qA-"Z2jMR*51FYU#-IQ$P0P$6Hb
+#j8C@I9NMf%``[J0-HdeQ1#GD!bkXafep"FX"j#1M8F&b8JTqJ14`0X!l"*f,2r!
+j+k(i@biC$M&"b3HNGC!!TJiKNbj-Qr6*@B+`G*CXmEi-hEcQb,4NCi*X)PdXbRe
+4d#'lN!"e,$KM8,,4pRhVT1#82#NIjP!1FlG)aV+SSmi*E5F#5mk'38(VV%Cf4EX
+jM&HE1Bc"UJRFVjNQUDHFe4bejhVBB4CLrHP-%kcL*(8Fc-L8K1SG4M0C0Yp$Sb,
+id(2`H(j%k`!q45mp*cUKFUTNNcZ6&('XKrGd8c85S#C(Z'+[N[!@-S9#%D6R[a&
+G)NV8U(@04Cj4TYLPU-50-1'"pf(TJ44-'D2ZN!#9MSDj`jL#5R$QDSk(M'&jPNp
+4ScT2SGN[C(R%+p"f#B-)%MS2AN9fpkI#CL!eRi+BI)`IJ2#D6T@e+63FTQBT@T!
+!PTD5P*DfDp2SM4Q(il-kiq1I1q8j(Gk6XLG,'*TZSS2eTe#pLPMKbGUHbVC`J"Q
+S2!F`p5N!RmKFA(P@EDlTrE5de,b$(K0U4J#(-I#A'Qka$5*,fe2k1j50L45X*JF
+-%0kBH0#JH(Aj66YL9C6K!Br,D(,'a04c86GI"Y9,ck1HP'KJ!TPl@Ib-54GkpV(
+-T0%E%j-b-hVL8JlY5mT-56S9PeR#PU80&fb@Ccb#kD,*GME#d$Y8X*QDL)PGiXa
+@'aA5`rKC`@Bf,G3HlTiRb2!L'L"k29C&$"CX0N9JYX,Kh"NGMP84HmU9KU[!2$$
++4!fBqK&Y%-8,0RZd&T!!)Y[-LLii-!@%Z0BUce'cDaJm',@3!0&bbcA6i"k*m!(
+&Xe"$H@31XFJi1F)CCYc4iE2G),HlTENPJ'DUGRT%j9QpUbe%f3dN"ApSqe"mHMV
+S-K,IZHp`h-'i'dZ+$b1lpQ5&`bR'E#M#f%J4JjdJ38&EZ&[DZ,2@0!Q[H0jZERe
++-YI-4M$SdNGQPZ6ADT1&SE9)U"0a"kdCQHRX-d[L!VMFHcS1(YYRj3a'B"F#-$N
+Z&2#5fI-XRa#F6DBHaSV25)L!r+@NTSE$Z+hGE$FM[eENG1KLk(3)JFN`A41$&+J
+!")adA#1[#G2S3ZQm*EZE-fc'*1qMTf8M@mQ#MTlcMjdF8E+@R0lI!`10hH'4rGd
+GSd+-V`1$f*VLj*cHGc!VhYVY)Ai6MDEBe@BD)GVJ!116)#YP5a[h,"qM$6cKT!d
+FN!"!SpeEP3h-)M0)q06QfN5EmLLIR9)Gd@SpQC4MjD#bT6(KmKiAdR$j1VC8M#f
+ebFc5MhFd[Be0KIG`2KRJ2XZ`LI#TT"2lXM,A61!XL8Llcppl!Zqq8K+"[`)cTrH
+2KT%MbhFbh(P@0$m"KNl[5r6%*fEk-MeC0kTCY0a6a*)(qCl"d&8*l9(iYF,3jMC
+cHfk'QZRDESCAbXN-1Zlf+Xa%9+Ib-c$5fGec@T39Ji(1q)1T*4jm[h*`aldlZ2#
+&R!Gr%`I[kH#MB`rMk$hT@HVKFmMd)"d1"0JFMi-C5*H)qH6GDN,NB@#5VJd-1,V
+3M-`F02ScKjUpNlSA4V+lUAR$qb4'f#Qp#%D3!!ERp`qG("hUkI$Yk4#6Mi1KdFb
+iBrZ3!-pZk'#kle5kdC(AFcHlCq9'pfc#f,4H*jRX,RC1#+PT2fU+X'0*Bhr1T[d
+Dh8V6IK(&2!'E+3L)6Ii"cIaD`qAdJ%e%q`b0m2eNPMU%fNcI6fj9KM!fP!RJR,I
+drC'iJjkHB`IhC4dmM,M0V%Z05&DH)f2A)p4XC!`!'LSF6+CmP5M8IEQ-)$hRHrC
+hpYM)ZkL"TLSZjSCh(JIUkQKE!JcSk@,`*4)AXEp%'IMlAb)c!M[`DKCpH%d+&el
+$BY0,)f,JT5cXG`+[J*KkD96-!aJ5&'0i"G"BAL9!NdS!hT8!@3#BB-2p`Plc$Xc
+dfAM4ciX6[0M"#fiqUlK$Yj!!8I*aNG--)+V+GSP0QKKXD(pDY1RV)Ci9J(QrY6#
+6'iZ2N!#`4#fF$",3NT[k-`6S!&-$eRPi4D`$H-@XI3b%fed20U#+$S1M-$U,iV"
+TQ-cUSZJfa9$dSVJ1*R%fmH%$f1iNEhHBYq['bb[@iAUFVcIbYFlAV4!4(+6+-&K
+YTD'ZBFV2c%!$E)3"AES+A"[PLh&Fk-5J+Ce"X!##5af&5GA%$KNA413DKR'-qbC
+JiU$ND9"Z'#FaQ)BK3D`!M!i0rc'-*HU8(I((,pr("HhPqaa8$BNSKdD8iFCAHQL
+HD58F'X'KNC8H'P-1MDh5SE&91$5'3f-V2G5K(-U'C&GiD*jT*4cU`+'104pU!*!
+!CDBaTH4S1jZc5r$PqdMXKaH"Pqp6NLkbNXN4fH5)X[de6Bl**XF8YYFdf5'El$"
+i*M)5+'+pB4C$#R!fl!J-U3c'"@')Y8a#d$QGeG8-FR&&+MqNG,f,QRZQlHqJl0`
+R-%JG$l+&2BJk3*eaJ$VbD[NfLTc)00r-(MI'AYE,#8R)U!)&86K0*i-+45rIabL
+GQ,SKHaGI105,IZNLB*b3!-BA%I@L23hLXJ213V`QJ2ar@N`j#bEkKBXkbESf-kN
+L`[[bIBJ%%dE$jRFTTXMEf"6jAGCaF[3TfT*#J!83J,3NVeVp"4QFFKB#KFT,5C9
+,V-JBNKdM9rJLFr1$l0d4,58M#09cD01bVDqK+h@TrJ+!cIGD`khl82Qr#2!R"QF
+TJZSA2Ga+a*+4E+8$fCm@&TLVN!"hAJAfpG-Y$[dN+R`2XVG52Y8r4R9j+iN1P,M
+P"h9+jN-`"Sl*,9jefe)6ba+URF!-LPaj%p"1`86-1YNq`LKi4#TYdm6034KLL2D
+45$)#H`JM1`YRK(KCd(4G84HK@BjI1&1mL!"f90N3B#ep'Je+%,,'&Th%STmA*k)
+45QC5Q"Q-*K2)jH!U@YYc1,l-5SBJel*UVZ(,eKqBFBN(pM!CqGcVCb30UX4D6$)
+2#Z4aVE0JaFb4)(++Gq"PBK#[rT'hICG)i&c-c+M-EF"C#[k`L6id)PSTfU*X-,4
+cD-3'eT2*F+i8Q%)0XVlQ5M3L0@2*6B-BKj%-0EJFR@15-JdSp1Yee`Q*2L08Ilh
+qqVrRLcC-3)-3kK3BRlpFGjR-cdm2e9qZ[rblI1'GhX16!QXDCSE0T4R9*hiAQDU
+1k"&PffhQ4K+3!&E9H8#L&qTq4FhFeRR!63@BVcIhf(V8*CSFc$G1b[Z``*[qd"j
+R)Erbq99!'iAKQX*G8-[!qC8*6b2DG3#mF#Y#iDiZ'G)*5S[Q[BT"Ec*aZPG4C"!
+TYejT)f20kr4FCYaCA(bG!YJdXc#akM8M(4H[bS5RH@UcLTT5*X8k,ZDD%$1JVJV
+2'Bq*X@N5%J,VT#DpCArABT1L+bAJINGdfG0NLFaC#q+dD+Q2+X#1appbJeDqkf3
+Z"+C#TXN&cmRSQ%c`R"[C*9!k5'E[J*h+bL'!MQj+!)MSp3k"q9#"p-0!iQKEY@K
+pjK"Xc`A)!#63p04S@6kZ(ELH&!&9,AZ$6aB8e6&#UXlME#&eqrp8IdA'XLP!`2*
+r$8X19+"Qa[8(G%hQ*Th'"U3K$"Dc+S36`d$C+k,rQMflfk-U5HTK(1T!qUQX,&4
+R$rbSCfM8@8p)Y-4peR4Zq2m-)9R3M$bMd#Dk6*XBaBBQ,2!kj8QPKp4dLG5SZ@Y
+Xr540BrEQ'0"T8$98N6!%9iX*ZC)2BaPV-Cb,'bPiPJBpQ,8[NCBY$PB+S$,a$9,
+fhUNHc92l-9Jl$lqjCD`Ark3TAJFGa!rZ0"j,M@jiZGYDUBX#k23`i(1'Q,DpiKU
+ljmI'cT[9cXCN(9'4`$"m$)1HcK(1&1-Pe!QUF51-p!@L9d(j-[VAJ25&XHJK''h
+E!A4aPA-a+N$1U)l(pIUbB!a+YBCHFJ`AFiFbkN$6j8KKr'b$'+NfZP4dlSlFD(K
+iVVBH0-Ab4(eE!Q9[i-9VE3PFA5JMa,c6U9BBmR4eVfJk6jLK&*D9H2#196qB*lA
+Qp)ck4I`-#S"LH(Q&Gc@F"a("#id1i!T0+Q$4,*Ua'"E$H,Q&qr&pBTeBKpFMiK%
+m(KIMH+!,(BY@dDT(r[b1H*b2`'ZY@+Y(5M!)(fYlRUY'!DiDHCpjMJl$#iIK#SG
+KJF1`'1DUPCZV9MJ-b1Ta+!A'$8lBTTRNS,DRr9@fXjUhXiZhJ-9'X9%L%UlD46Y
+HGQ((#i%rAM[%$Vck4"mQZB3,V`%aJ+XT-BA&2$%2Lq0SmI#(6'#*[FHC2EbkS&Y
+6Nl-02iaMT8cZBLDaQ"!6FLDa3+0GH*d@Tr%b#c0HRD,ccbGbb"PHV6)-9PFcUlN
+2"A!3bH-40rEFhM63PJ#"I96[GamL6h5e1hGP2hFR$JaTFP6UbNd"4(4,Z,X%Eil
+Krkc+1,aj!iBIP,UZF2M8HcemkSU([cYI(AkRHa@'TiN1U4XhNa!JG-XDKMkL$,f
+NF0SU$Ee%0%[GFJrDFrX6VdQ'8#Q*jHE&B*cc@9&T(@jp9VbZDpGU42RD(P(HmdZ
+aFDeC,-c$9$q'Gl3Pd!ZQ[pV`Bd3QTDdAEPXcJb4'SfBP+ja&R59Qe'&SLH2)+&Y
+N04&l(48KZ&5Z&&kR`Z2d!e3UUBK1'j91#lN6+Bj$dR3cS5XVmN-NhN&L2FTP1G3
+J#i(+A%HS9"*'N8eQSV#)9,PdP-,f0*N5Z0*DKLT[ZBN8ET9m-BQUad*IT9KiApM
+T(+eN8`!,-'QGL502B5dCcKCA223$!MB6`NCK+epY")G!)J`#PLD)TAaP8S*PL!`
+0aSDF[lDDU@+04+f'!H3)&#1GV,D%F'DKfjba1eP4,mp"92d`,%dC-BFKIYP!`)i
+bPCSGf%J!Pr46)G5J'kEB8[A-Z,Mi1(eIZRlb$#2ZpkGl6L@0*Z&KaVaj0-AqV"#
+VdFVA[(QCCe)b@51aH[9*3hPrYfaP0-PQ&%15)Ie)'8R!9BR%h%30(U2TS2+PQ*,
+&c4m6H9ZI)S!@@8c`ZJ'NTX*&LG6961TQL#ZYCkmU&+2abe'&3RCP-TdY,Y"!-Y)
+AUL*E3,FB#&qi"X,2)G0M#Z&2-1'hbJM23+f-m1Gb%AkV5RKGq[%IN3dJHFUKJh(
+p1r6%I8Fcdj+Hh5$b%qM+iZrN@DNC8+$YV4[a)dmUTFDeGYqUE-JKXFY'9-&DRN2
+f*'E'bFF@DL@fAA)H*5ApHK!JZje*Eae(0CXF#&3S1+0Z$#+eM+cVJ0%ih5p684F
+B"k)"`Zh#iea+M4VXZ'r)k95'd@NBmL#F$G3id$"&BfjF+YH3!2NXY'B3($#`4G8
+![j%J%C8JK3XNJK4qV4"NdN!3A4%A@"@L+%G(FQf%'Kmi3m+RHBjY8ii0rp@1053
+&H5U&C&$JXY(0A+4[li*(F#MC(BRFCqJ`18T"DL`J9lA@BDM@8NGbc!dLeC50PKS
+e0)KC'i1'G[`)S)![e#))#8C)F8`ETd#"$Pe$X*AM!"9-jB#X`i,XbbCT-ClG28S
+)FJ59dH$&49"92C9EZ5#C,VI6ca!+k!'ZmSTRKNJYCFK56JP#`JP8@5N4`'P3!eZ
+aEX@",6VeS90F@`+4"4@[!)P1`-Jc$r(2Bb[BZMV)1LBU"4Mk+J-Q(-J6ZcP!%Uj
+qeG,$1#Q!9Baf4T3QJF[NJEq5N!$RI#&ZPU#LeNl48JQNl3C8KZLR"cQl'i(6L12
+A*[aN'IN$25aIHTbqN!$&E5SdL!dC)SrK4k3S@98r@F1'5feAFQmf*c2+&Vdj"Nc
+2G9&4kj+MdSK)cGG+&Mdb$+@DB)@JPb01ElLH'B#3!%)T0CMCqR$cc0'3!+Q`Y8I
+IRiX!Kb4R95ELQ@rF%'Ac#I8UB!!GD)`kmc`D#HR!i9!mNZ+*QJ&NaEJ*`[%mAXH
+pTJK#jQhEVUfCD"jrBa8E#)kF[hiPT'Yb`KJA'1kA#4`jq#$[Zd!Fc!&6K9[[0#a
+UhBE&Yfr0id&UFhN3")Z5"pQf8UH"!8B3jGXRD!JT-K-`el(N@`XT1KU6[+)`[+*
+)RM0"*C5+$#$0(ARYJ8"C#"YbjSeHN@2bbaBNC8&TcUZGqAQZTUPA8Q18mS#U-'S
+3!4C'F5*#41m1Nr0RMIKH*T'Uk#!hr++4#G3#%k-bBlhG%M+2,N8rJcpZRX4AK6B
+%,FYBI+2L@ieN@X2iNjpQ8EGf2NM+GPB3!6U9&$`k$dSXXU-,p(`TJeG,GNl3F"5
+CfY0b)K)PP%,,JjK@V8CX-a!-DX6HHEMNL,ec(NIXCJibYS1GIR+3!2+2F95hjfU
+#6ZC)hq!a9SL1VEU$@6KEkTVA3k$KCiG-$&X59k,'k*UAANJ0YN-J"N`eY3[m(+h
+!dSqbZe0p4#45mQ&$IX0fmV0NfeN[E@ChT6&)A#p0Hc+'3#P!cG9%`fVL4%mXr5M
+&CXmlj$VCN!!+HACR'iG8JYMD*HU3!(+$eHU2p9'feU5UCPJJ0*,T46!+`fK+T'*
+(+Gr4ESa@lH[9U,'lcLj&MABmS"r5`XG5"0ZpJk0F+B!,@Jj,%B3#D3[pL+Y"DV5
+,R+K#Xii'J3!N-eK!#BhNZ0*qKEZ[B`E@5bamkeUZ+2Z8A(fL5m`Mm"k4"GkU&a-
+1+BKkXR`d*(qBRE!KMMZU'I[P$JFf3)-h8r!SH9GRE5k'J*V2ib"FN!!CjY9945Z
+-mQTRK19)r,K4[H$ZZ%K0[&L$EeqkpC,[`V)M'AIU%,8,R*(r'#3'NVFcfGa!Kfq
+f#`,ffK%e`pf(dIMFV9H@ANLTj5PqhArY#RXN6"AYl@A[`q'ima*9M`aJRHi(fGh
+bM!K'0J%ipAXlqj!!9bS')-U"UPMX`iq),!e9BM+eP!$0pkX!1RTG8#Hmrj(H[#G
+d92Y0aG+2$Qqmp4)VCBdUNGB!IMK"b+k4GdQCMHJC`ir0FXJhTeDV16SLHk(NE)(
+aeR$h-HeVU*F4c@1c%q"Xa"#P((UZKQq0`&iI9rL1j$kqAD"+(T&!F409ilBJBm2
+6#X$p0&IMmQA91+k)bkTaTPc9Z(aM0Fi[9CjlEVpY)`baZp#b"mMdQjT,B$B-&TI
+KNbkFae4`Far9kR36kRGkCRTUSRiU2I1-"l+6QDNNKVCK&@V&q30*U,%TN!"cN!#
+AMXkR+FY&#`I6Sb&U@%U8jA,H%'Q4I,&8,aA4$&kI)@Jh1UR$E%k*`GhXNP%hXb3
+61ea&ASE'T'++&`9+)PU3!-["UC)#iRYc#+[2*Y@Mj#Ui2jm$CCYUfT!!3b!@KQA
+M0AN9SU6,RYYrlmf0EM-#5EFAeKS@ZiAX`6DTkkhH[)JkbH(keT(F3qefbaDkE1'
+5,4bULQE09BrGM5X,5YPaXl0iIb`(L+e@YkYcJZ1qDQjX)'rL6))dGbSUQ$8%h04
+aP-5GUAQ##&Ahb$4B5BCY5Q!Q6a9!1&V$&29lrLk@+q!)*fcSJ1D-hbI)0Yf8ib$
+[QLjb"mBjUdJEX*el[F8m4e,9k-5DUf`3()ri+TCPkr3a"R*G4KBdS-9)C&+ESN*
+ZYU$`j-4qL"$EQi#NDc19GNN#A*[3jF69E[`@XT[aSD@$JG`f%JXfCXQ!F+XS9jc
+M(3B%L43"pX8RTKdqQ*LTQb#0#B3D)G*5XM)2aZ9e92P#l6"[RY)MYk2+9C6I,mY
+GKGpf@!)`rq2S#T%AQ$lVFaULT1VfYNpcHJX)D@db1K[N+I(M6[#6X5+A3`kYT!H
+[b4iS!pbFZd**LG)&jmjCKCpVNimI%*B,kDqJbMHY0'SH`NqlbHP0,C3pN!""UcK
+'`ZcB1`EYNAVCNGe02bX&c9J0NPNq)(!e8aQ#i5#ma6*NBeUMjbB"'[j"+l`jPjC
+$k@5XR#XQJZJ(VYa+8B`QG"(aPK6FBK%'KaC9'@ECeJa%XXDUP#!"X%C@lq))eQ'
+mq&U(`$)MlU@,T3`i-Y['brP5a@X5f8X"AVa(M+J2m`X4@*c*G68,9bEj9F'Nj$N
++"TKdEQj)9RfB*3'U"@KiA,hFH5G[8Cdb,(AIZCAC#15Za1@SZK`5!lQm,8Md26P
+Uba#8MKY3HKk4%rNL$`jhceaCF#K&l,Vbh"'UX#URie,i+32@q1NcqV1S#'k,j8@
+hZ6F)dECKd`HjbSIX,b"K1hFdJr"FUF@[09++)UUJYFE*LkmN3-U*SP`&jrjH6@D
+R`bkKT4a[IC*DeRSY1b(lQc!fZ9AIEjH$GE'IbC!!-SC'Dh4Mja6[@[fY6`iAbMX
+UKdF-$[S'XDF5Yl4N8K(!XEZ@!)jmAED`baCZ1GUYp9U*`fpB3Jqc)R9`*B"HJ95
+4!q+SBUFH0U)hGfERG*VAa)VcfSU8QXV`pK82cm+iNj,+MUZ@jm2GLYQCI+8Vrj`
+!&6'iKZ!r*aUf*))UQ5'aJC[8!-0ic")a'Hif(1)XcqR&FajH)V"Y-#ji9,C&f6(
+1UPc(I*)AE0`jY6,JaVLe"ll4*(2bmeA",!U)P%l0-T,0be@eIk#9!0(p+`d!`b@
+"JJ@IPlbYh-3V-18!NK@b&rbKK1f'ed$!b4+feUmmR**YE6J(!$HBGl#GG@Y)M2Y
+cX6fi)[ENa2pH(Q9*,L4cE'9)jMb1*e#1V6,Mb2S$UcY&`(kapBdIl)HBCjV"ZI,
+%b%3a$XVPd19+[,&Ij%$5kSk94jk5)J9lbTK-8,ifVkGF8h6*RHJVpc!PHp6FAJk
+'P%SQY&XL0-3`!b3UXNCbEj!!#S!bBmSl`+adaMF@)dY"aMI3M&TEa6F@2i0LcJ0
+EeVHVLTr4e5b8T11P2bp$eRTEU(Njr#bRIQifPK"JVF%C(mfqrNl$Z-J-Y#&l9lq
+Q&efl$0A*AAU`[fY(Pcb"fJL)hLI3a+d,eLGqNi#&R9!ZGR&CTUCJBNT6lBpAL3I
+G&$!kkQRkq9fKG@*0DL*DK$j)c%`kI-U8P[E!TTY464MBK5V#[T5d4&E#dj0(P8H
+l"NJARjB8Gh"I8L+Zddk%(mdb0$'fLX1PP$KF#JfASJiRbek9fR2lRHG)`'E@0K)
+)rpG&3([2%Q%8KZN5Lf3X&2&&%P!JGAR2lIma!jdJR)FIc0#X9'I'!H"JdZl'Upd
+PL6a+L4EkAbNAYX6NcImMX8qSUj@6iPL*V2r(b+UbAP#[XMllciAe0C1p"0Ea-aC
+Qh`&dHi!+B$6@kQY0D2I4MiLiq%I)+M#2f!#cZ!#EENcE5$r#eQDP+iRCRBXfR0P
+i+CCX'*Q*@5mG6i9Fc-Cb-"Z6-4YMCQ2hRYPppj,ChrJN`[l'YbU%VDrpB4*f3b0
+"IEe%f2Vk95%X-rY$)q`U-+ZbfNU(+fS`2PB"8NX3D3lGR1[3Pj4$ia-hm-$C'rq
+U"kj#a&%2G0dE4i'2rarjm4[L&*I%a(rmZ6#aBN)3XYE-LUa28q26(YfAQTQZMMH
+9NR5M*a26KdkN',-35jRX`I4T+"'$l52$fm8QYcqZD0&e5m#N6fbR"LT)ID'6Z3F
+9A40M4rKDGJNE8618KiiV@lPjJabYL84BCSLlNIBM!h,''FJKiP@V)JDK-@YQ8PC
+mbVe)X+%Ia["Vh)*aH$3-JeEa-le)NP)dK0i(+a)BHL'5*IdJa2JH,5&G(P9-Aa5
+`#EKB$-BZ-kNaM8Rq`A2i`4TeVJmm%H%XS+aNNXJA$CJ8RaArD'CF551ZB-"YDaM
+`P-HcNJ'PRe0%'D8NBdm!*6c$%[+4'MMf,`Sj!J3kAqe@6D1(A"KhAf)*3dS4C*G
+,ZL*dkd$'`F6R(XhKT4$8rmc''6'm-L9!#9lS(q8qb(J3*3Se2`qRHClZH#"d`lY
+!+b#caRmGP9qI06ji[lfNkHr2+(Rk2pk4NpPCkeD&fG!2j0aZZMRYXFcdc$M%Xj6
+ie-b8BdRJ(1jI#3i-M[LTlBGb4%VZ)`MiaNp*4#!&)(QB[--DKCB)$8&(2,1Q'*f
+#j!d2TH"r5MK&jMbYe"Y3Vj58NYLCA#9feUl"e60`Bf5')V'ER-X,-#ERK*%hbVT
+%@HB!F%ac8E8",%!3N!#-CGPAi0P5C)lUbJEqlj8-A*+RN`mX0FiGXQ0faX%cD9Q
+CkGDN3fN'GbKANLV1%$GeiZBXhj-JTB--SkL0aV2(VCBU[U%q$,ZL)Ae$qb3DNK8
+M'8[EdIPJeU-(Eda-5ip(ipc(9XU9['XlZU,el2M8IHR@&@b&K-ki8bmkR8T22,6
+2P,35A[H&NG+qX#`UZAAkJBci+CSSM#Z$E5*R+AfPir#1I4aaP"&A-Z$0'$$q90)
+'MLKbCT(ik9cfh)j9pHB,jEimjkNjLEkL#26SLL)3r9M(KS3XbLKB'`e3pP(pm49
+'SNIA')R%UNDL4h0'SZ!U4+*(0c`52EU'5#42SPN*DK+YQP1rKL4k0)rcQ`[j%`T
+,GY-HZ(QAkdHC5A(NmMbAq,qTQ8R34bB1r+rkZcXc8p-m"rI&THh,m+KRh(``#r$
+,`D6iZ,3p@@RdfC9fJSJ1!!!Y`8&%3e)$!&&&$e8&Cd8M)(2PlNA[hEZl@4'4h@B
+d69-fT%5STUR49$AZ[EXhcLp9N!-e"K%K5"10L$KrPIIZEXi)944&M6&'9G@SUQN
+6BibfUXkYFGii0e449G9BQlrhh8h%qI@r-prcr(r2mchRpch2!aTF!34"!!4"%NP
+69TaIQK`@pN(C#b'kdiGh&R+iV&LZ@edK8kZB@BUQXCr[&iUQ8bhQp+ET-G0P6qA
+dJp+kGV+dpj!!,1e[,Y0dEd+BT#Vr8M8mY@SPYe6YkERd,l+&rc1KKD46QUYjkH2
+S,r*JrQe#'kPD+H-r*r`UM9)q8XHQ@fNcHCTDR2ibrBIm#TqD-%@U8RE`Q3Q,TFh
++G2@Gp(!k3flLXa2Q5Rp@IP"I5"p$jmL699rkFh5@l1&Y%eT,FFT`Y5Mpb6$kU2`
+8IbaKQ&5U21$p%Kk5AP8H8IqDISi1N!"[FQI#3!RNVfj+Ek4Z18UpP[i'(55raPp
+-k#m9+$8m,@'4G%Ij8Ef5AN(Rb828dqP2dk(bmrbRK"(5H@@C@TRq%PdSVq!,%ZC
+,fjA9I'R#FQQ0XN505II5H,Q[HM`p0SafNT2iT`PGT,h+2YiqiBr5,Z82DPEkIYT
+CVZ-G%ck4[P'q8(25mfP2ZB1k*rdSrCfmNrmTSCd8V@6cEJP[5qZ9Yp3YkDYS$rN
+$G@0k)[e3ITrr,D'VY&ATV4DQ(k"rPcI`Ga1k5q9+#Hq6m*Pd@2PFr6Vp%1dPAq)
+"#GFIPCj3lUYITCqNJI)CpAEkGr4,qA[qAX*GkB4b3Gf@rQpk9Yl0hdbi*ke6E[(
+,#4p,[eFZUVqPhk#Rj"4eEIT"QL`Ii8%*SG)aj5Vh6r#6(PH#eBI6)fQ)E1+1K!a
+*8&,9PHN40&2@Uf+kQ4UmXQ+3!"+Sj&8-Z103a3iUehJZ(m`hmddmNBHTB9TBEYM
+JX-eKQm+i9CGR,,0AUf-Yil44ZB0P[@AD+%'kB48N"5(G'N(KXh-&kBTGN!#D,)+
+8Ka#1m!V#+$$MN!"iN43!U"KKfPL6IY5d2*0HT@8Q[Cf1-ZNe%JG6-(0*e&'S)$`
+M@bA!JdR-*A%X1cXY6j!!G-#X'J@[8C!!FM9"dR5#C,8SDX)L1XllKp56@BHc5XU
+cpR[rS1Lr+McJhCGjX0"ENh6R5HpVqPHI,r8@1CldbR@ah[f"1r1pAkdrA*MecH(
+chS2j5DI2Hk1pKG+KDpkRBcBB6XF5S*!!RIQ(eamqMCVZDBBXp'$Kdq2+U[LiPA9
+Ch[a-VhcJF1(1I2(r"GV8ENS6%cGk9DS6U#Tl9Dr1UbTk(8FQ%Qq@G0bVXZM9b3B
+GqE#A`%Jk9D!kfD[,9$RKkQ4*e3%rJ33H6!')&XYeQ#!i'*3!*MiHeP(9E&-R8Kd
+l3C5*9$8a98`#d3"XUJ`Y9'I@kaK#bJ4%TJHf"M@83G8[8eb2eSXPC,"-C`,@9"e
+&j8dj&5Q9(FKjR#RC5q-iBAUT6#D8")$S%@8DCdTP!$b1bTNf3$1P*KX#'LFD#&Z
+QAT-84m98fr%iX`4@#J-KTq8-TL&1eQ0G0"!3Q@J`Tc#931m9UCIa6!k'",TP5N6
+LpH+PXJQ!6AUAK2K)2j4*lm)K8U2AkM@Dp&BMpeS95SSDPXJ5iFMiVlGb)qTEVp'
+!$%aU0*06!MQ)ml,AU%K@Sq`!#LYRar9'NXPB*'HX)J'P`!3)N@"5U09-CV,"f)"
+F)@SL'[6Dd!!%jfLpH!h`$!Zm425`#*3b%FfP85B#8U2)S,a@JdXbQ)Td[PFL33a
+K"X+6+3Q"m%&&-+I%6!S!+TNbb6TP&)E1JQQ*r96@bfBFN!!cA!M)ZLXRI5TR-Va
+!%54a'`Bq(ZYDD"#6AH$XY)-XMjI,i6T-*CY@2C%ZfDXf5%XNP3eH@fIDT((K4fq
+Vf$d*XPiNM3"Q9VNL5S5M@!P($MC#(N`i),KS&3e@!J*MSDD65@ehA@%VVQ"N%jc
+QUSQ+SS1K&kPSPPcSL"j4cjJZ25'L$6r6)dSiR8P1JHF#*#`pF-Y%XbKQ-$@XRT@
+"0lRK+"1IX92BH9+!b(TF+CJKM0HVN!!FVBHPA*(eAN6E"0C)4S),"83d-5A1P1Q
+DSR83--9!*Q)+F(!@6&k&i4,e#PU'SP![Lb*"DmjJ-!emSJ)ba"&TS-cK8X)i$)I
+%3&&#LMDN*J-j,k*P'J"+q*6*d5#6fDE0R',MB+1T1LmhkVM9+0bhFT+!q)dk,bC
+H-L%P+1NaSdid%&$5p!!Q"l&PGK3&Uaj(C$f1%#Na-D-YT$!m"*mCamd'JK1NE#9
+'mb1D@'$`k+X-&cT5S$-3JShJX)NMSPAUd,dk0KH"Ck@$c8`1aM,VL4`'JK309Xi
+%XMJHTl"#5SH58"HRX*)`$R3#3k#S9q*dFLKCi$V`G5MZG1`!XEK1CME%JZKJ%()
+b1d&#R)MEJT810R-"SH)J8+,,Sl0dT!r-$RD#S-SJkMQ+A"aKk&h(c4#0b@41F3R
+#'`"5`HCX+G-Q)LSSTKPP[!Y5*(TNURUNrJ8)#YTfc1(#rGjVMVfaqhI(HZ[d18N
+aXPr-`l&*"amAXT1b$KALB8+-r%R-plL,'mrK-E8Q3RCKa-kkV)2jK`i8IP9BNKA
+lM4a8DmBpdLrhc!B#)b2[BrDE"*a!G""T%h`hXrT,1T,@YAMU,m[!$N8q`L1e3C-
+le-iM14@%Y3LAC+PN*T,M#0%%`%G(b0+UCJLp%,V+MUr[X5fQC$@)$$(D4*U$*pJ
+5K'LccDbffBqN"'%Mp$6*pipH&@16MZiUb6Q3!,mrFLIZ6I1c5Z68qK53!"h-IR*
+5G1'"r&d0E)+V0h"e4G+F603fdc!rJc`HBB!JjI53!2p8H-N8@aJ,8a4QPG3faX3
+XBJZcqZeUMr6Y16*4[e8`cm-F"[Kf'r"YNkA#!A*UBFG,*6Ql5V+mKkq2(ShVD$D
+1"5+d&k4mYb`G5*Hr2"!aATV($a6@kXJ*TMJeaAap0("B532Ui4kTYBj-e0CaQ,I
+#["MK2$6ePD9bL[$!iaM8Rh9)CPh1VTe*Zl1m*9)1-bAXhcS5m1X3pJM5KYkbBlf
+*`DE@CHA[+S`Q`2SFCZ"YDZXpJ0F$pLj#1m!$rAU6V*qiXeZh-LIAlZM@Nh&d#T*
+P#--&DG9X@GV546D-TLAS4bXU`G!fh10SHjUYKq3F+0bGXfph5@cqVLbQ3'el$5#
+L4fTl!L&DN!$HVj46ejXDZZHq8*k9AhMc32lKRE[bF@&8Pj1rUa')fe+el6deUX$
+X,jFFcXVIQG6`4-pl1!Al0YXQeh0+'!E6cX1(BJZ6SKR*YIeCEBYfdVBlFV56Y[h
+9U%-H+5S!!4dH4G@S&%R%"G2(@59CqfX6aS4%-[QFHE6%-aQ8-aRd0[N@QDL6pf(
+Z4Ck2S&HMqN*(1imKUKI4i8Gd2#XC6Hip%M+Dh!U)IdBbNdc8bI-`[iGmQ%HDC9H
+M8$4%S@L)QZET&0AXTfi'lk3PbB45clT@Aqc-ZUV1LQ!&bU`6CR9@"C*Y#)I8U1'
+e#a120)L2,daQ(@+&L30A!!BNK[kHke(p#FCRhGfXPZ29cP"RcADTA3Ue[C(-3h#
+VJq)Q91Zm!G9&0V9ZPpTE##,#9B3(@)Hp"p9ihKa82(%(6EM[fFI9fA9QGIC9j)8
+)9"d%2B-ZHHi2Z[%-f[MXAZVX$h$q![+@#*2934"V%-KT8,BRH&$r5E308fGM3e#
+5iPqVbZ!6Ym1jfbGXKh-IQ0@jM8M@NSNk&adcY`Sj1QEZ)A93Ap)UcDi@Q,Scjr$
+Z[E'(Xp!BpmAZV$Y33Xc,-)3JkBc35j!!8XYP4fJlGL+M,LFT&Nm%VMRfa5CP&4,
+SCZVF'8+`BriNfjdlA*f,$D5TJd!*JrU,G)K)EiX8fEp%HPDNEiUdTdM2Lr36NIi
+LdNV'EBr,1T%@Lr4YNAB5U9kN"d5kL%&r,p*p)YdMdNb4ILh5'5*e-)aRQ1[%jYN
+LI9HNT3a1%qPbFQp,23`TlN0-)MA)j$,5c0E#46UFS32d8C%1CQHHCk`A4,S&p``
+LlBIV2SCh&G1a4+4$44V#&P*&HN5NIa6T8T&Z%'Q85,Za1rFKE*l1pR0(**GT+jM
+%2T('-deY4ET9T'8L64ETq`a4#bCLJNLI&1NA)LeJSN5,p"@4PSYd[8JhLA5U52r
+#@!qBF0#De+![Mdf#Q+!ir+9)2aET$b,e%qPdN3i6kDG-TK"QqYHB6*maJ6`LV@D
+l&GNqd4NY4"SSdYp%fSbT9*J%qdADQh9!P8M[LG3YdYdLYB[dTNKPCK%d4Ga6R')
+E4PpZCRC[arBf@D4p4AUI,3pPXX,k2c(VY",TMf`2LjL10@c21d6kNNLr%qP-N9i
+@kEFL646T3T(fB-VQXIm2Q#Jec$6Bc$T'-9HC@Ie&HS2e&T4GCh*!peX0*(+3!&P
+`2G[NB`cdFC'H&1N&"VU"@Eq#'3kJV89k8D323h6@2FH"Le(2!GC2E4L3!*HKrSl
+eab-Lh5l5+b)0&HQ(E!0!B4$T1C%1%-0Hi&4*prBp(KmAF+Pe8Dp$`kdTDj[9Y)Y
+1+cjeBeT"Yqcq1SHT4@ARrFZDlTkBIDjhiB#mN!$)jZFleSd)[l"YaXfZ@je'[GK
+UGCHp5hf"*bHApLNC9KCkl1H+$R[Q99fq0H9DMe94pXb)PY[EljXrjXcY13qkPrH
+VpVrDjR62r#%llUfEfIM"aM#h+XN*-CeLPhLZ2p(fbFqrIR4XmX'2l[aTjk+A,rl
+fMpIHA[qL*82ijdYrb&VijrHqRr[A[apiC&c``lmmrmNh2lecpYr6ArrEq`-eJrP
+IDcj0@[lFrDpQ2IACiFG'"4hjpFV[M[libXHrRrV'@eX'jDDZr-Z+2qjDm-+Ahrh
+`kVXE(KVXprLh6hq4-h6cQlXAErS`-5jBh&Ri,(Hb8dq2[S+FLKTr+QVmU5I)4*e
+k(2-Gb&&d6YfU1R(G5JHJm,jK2QPqUV4f'F3R+C!!TRBB5Gdi&II'8p-pU90R-b4
+%DCSkY4YZmDh)ifh*%%#G3Y,2)mh`U60mT&#6TC!!T3Jr)m`K$03cZ#ecHMdCcKT
+E668M3Td4U6S,*Uk@8"N'1+-RZL%jP9-#5cfFXcqVMYr++XPj['4r9JQE%h4h4h-
+,NjNc(U#c@Ch4%8P,-P&Ri(jU"Zj5CZ#QE-B3eBN010-3508-k@Qa(*!!1'hN#)-
+R%Q"kN6SG0bc6ab$(AUDI8*hY*N,UPcKYiT0EeHNKUM1q(MSBd+klHhE,4@!kUY0
+lU!1YAdjkeerVSQ$k6(8klSHRYd%1MG1GkX$L)l@['QD'Uc1hU`1M!fhELSJpA2K
+Ih1c02$ND!l[ZM'HLjTq*@RpQ#TQS-qpLIJdjD[1C[G5"YR[#JHbH%!Reh)e+XH(
+kULjR`hmMaI#45V'ic+`Z"ZdYhNiQkZ*55$%0154CI&8G''#6iT40LViH[kL8#Dm
+i4hFI[cKc`KZ)a@HJjTiRH('lfMFHC%&GM1Z[aEMq@Yc-0PFAc`#V(00P(KU[U!0
+lbBiYA9a+'QiZF$Dq@)e(ac4cU6m$0Zlld@qN$Gj-LSiY1HpP5hjNXVZ`*(CRi@'
+fi'eX%,NfZMVEr8ZJ$921iIm*#dkY-U[aZ+k*ld8QU)[JZm+Vm6"II!Z%DB,dj8D
+5q2!jJR5fN!"!#)j6&E@&cRPQ3VYd@&dkV1S5A,`Y`EhQNQ1#G'Bb5Abd[q`iZij
+KZ$LK26Di%0V3"pC'EeZVYmTli`h`M)kjc,#N#d5B8fq'*8Z*'CEX3BUEk#9Zb,L
+G*#ic4"!)Q1&bE9PcrKYCkie"0&R9TEK'@,SAS9b3!0jE44+A-BSBNP-Z$5i&H`r
+XqjmY[I5-Z[4R3ETBjT(F0E*d[aX5e!lZil)8LQETaYfr'q@Y'f@`'f@`'`@Aqa)
+ZPT[9lYGp++kIQEUIcHVbDSqd(,L@4`V5A9`kZG(J"U*FFi1dh#J3hEKUFdqckF9
+PP4ZYaChZdZ[ZaV"r21NqRk%TP`HSbmPZrD&b1(D,AR1M4(+6jSlkaih@i8BCj)D
+jhEJ8FU-qFKq#@QrYlQ[Bl609LMd[`jkAJ4D@RF5HlF#+r3k-pa'$%Vh$IE5'U2C
+4Vim@qbM4IFKhceTrH@'lZ2$LJmLNZUcB%Kic56RNM4RT&BNhaZ4D[*j8Z2j39S0
+`MDj,S9$'E5JDPJfc&3d6AkJX,&-A'KNK,Yb"(H&#H#(SI1%e3EU!5[i#K#r`8F9
+(ef*@ik0ir28a5S)EXR6Cjk1JTSm[q"c4&Gc-9kKVM%Aib1KjDdh45pE+[U@ddPT
+j[&4CED9UBU*q0',0eip8V2QAcE@2-%SM9TmIb'5Ghp1XcZrZFFahN@[Ih5Y*6BG
+16%,0QP4HD+0BPpZCApK3-S6B!"T%@*!!TblB-4iP(Y!X`1iAB2GRKrcHGHE8b(#
+5m`f(e3@i(eX!XPX!XP[3@C!!1Z(ZTe-f!YTHAeaGpm@08pq0#+YPajXM'1E1%dP
+G6hQMe`)9Xc&hHk3d(b3-X8Piq9R1bl@&621Ce66F-kEKQ@-D&D42khcdP)rL`[I
+6)PRUiN4SKE!Ai6a1c&$$m)MVcEXqQJ*rddF$m'"JRbcGQiQ!4jhh,N@3!!ZA*RD
+4DM*,CI3*YHXmmMQL4qSklh%e,0j(dhadZ,S)(b+S2LbrC9YqDi,P!&&[M-0b$pY
+bM`Q@ia-[KDP'6@HajeV(PSh+'eFp1-lMHklTcf0H+(kjkTA`GhCXpXDXAP2jd[B
+90AFUVTarr[6648q@2RAZV`pH,AMYfKXhAfrFT-6Z6GUIY@pAp-ip4qZqbFmjp(A
+*iF)$j4ZbekrkrECrVpYpI13!@lDq[c%aY(P)X2qCbfqQTL5("L(h#lJHH2rZHfH
+q2(AamXFAcYjlXfqR,TpfrN2l2lEl8iIIGIcNJ`plIGlRXpjrlrjZYlGl[0AeEap
+mQ*l3kPmYrYRb,mdqqMNPk'2[YkQYfdkH0A[ZR"qmdm+Q6*daIHELq#9,Pbp,$NL
+plKGiplhlAeiFIZV#[E12p(ZSriY4Jj`$h@(mrpF'XQJf#4%VeaimGL6biDZ2AhV
+Lj&FR[VrphBhI(V[P-X*))@ia)e"*Eh"NC#liG5&YMRc4r,4j2rdi`M(NdD%C[``
+Em&MQK$ESqF@%0ZMj45dEr0Vm&fqEm6Ei4fdE,*br)'h4["p(r$4Nk2"(KcdfB!)
+E623ce[r8Cr!M(`'0pUH%ZE+LdI`QK1eEkdHIiDmfJZ1eINUYAjM#4rjV1+e1JPR
+jVhm6lUBf!bDB9&MV42$+5*E'5c6a)6S5"*1DU8Z$Y8CR0p[2&%EkA%02@VJGEbe
+Cq9KHaNIa2$k19q-GTMMZ`9L&jc!@kXpm$(q"&r1AH49rKBIcGrJ1[1(Nj6&m09r
+$+rP,I$YI`@[i(9l"Vr$cr(Q-$AJDhIdNhTel#U0JrSU49Drb![iD[mEI`*Z`Vr0
+'["q&MSVPHhN5AUr,i[[i,Kl0Gr)pr#L[ipr`I*k$B@*Ima*qQ"Ib!lbFEq$CI$e
+IaAr2Yr&rmh9m0hVp2d'`K@rPlr10H$dVP)H&m'$Zcmr`bra0RXT6H$+i3Gc&pZ-
+"r$S2j2IjAIiHJ,lNTrK&J(l-,r#cr"k1p1@GH"Iq+Hr-rm$EmcrbG[a2[!2r(Hr
+)2q%Im!pj,rijlm-rilhjhhPhrLl[aYrQ2IKE[#[r'`0)adY%["Ar&fr"rmPEmVr
+`C[`MrM2N#)+@Er&VcG[bbA`@RmhRmMRm"ci0[bPm+Tr"Tr1CI$'2jd[i8VkF,i2
+N!GM"G8JGb15p$hN[mZ'3!2N#C$h,(q(pq%1m2hq44r&"h-N(FMF2%rr2Ni#-P`6
+-h-3&(X&AmVAm)$r'Mr")rM#rbKrRPrJ6r#6rLTrJhr2Er$YqJrr'Ede!![m*J[%
+NJ#&$%YGc!hI`$*l*&r"Iq8*`Qh-AHa'Icp2i22i6rj'2!0!3rLJI#Y"Iq$!qJ$q
+')mp'!Mhj&mp+!J3JRBH0MJ4qK3brm$Ei68S#rm"[p#5`%0)ZJ,b,)$'4pbI)1a3
+Nm#LNI3cbMTB%Z(U9[LJEFL1[`PP2%MHf1h0,L5[,*'j8"A1YLFZV)@j`1qCQ%1I
+,*kiUK,KA[-bG)qkGfmcYCbkEZ@l-6@CZ$R%lUTLlbG`kjKc-p@'Z'A'E6F`&-$H
+&1+r#A!ILBLUCBd#VEc&hMlJeFF5Yk%KF$6Y3d)DiQdb8e`Z*Df3('NZ)Nk1)-i[
+%#@bV%9EL$MBb9dIFirfBFa0hb8lF,QDQD"paHeS3Gj5TVq2-462(&(pcR,MmF1E
+BC[,l-MHE1BBdTj5jEF`aS*`Hc!dKlP!6FfZCfmJFkiC$DF59-,1@-rAP2BRE8-e
+F"(0X!aXSFGQX#l1(%EHHEA*p-A0-h2A-31Y$QH[#($2(qRMQQ,*96,K9&jKM'pM
+#8'aK4,#&GGX@eP9E4K#hPDPjRhA9qcHBfmSF1l#4%FV'IF3PEQH1%83L!ded,E!
+0*jjKVL9aqR,QA"1Qc2#!Z@2-A@D1'F,3LMP'F!j'&JkQaX&-PX&B'Fcd'B`X-[6
+-X@-CV)-cQ,%b@DGQ-S,1C%56b8!cQ6Nb'6QQ-(3Tc-3T"FbalNaK(C!!`MDFc%J
+UP"&Ik#VQ'0'(GQ@1N8XSkr)J4L*"[CKMM5f%Q6+NL$P'p#'Xfd,D-mH1"HZBBmd
+TQ)NBl-mF8a$-1M+BGB`r%m@ISI"RAHl2ZYbI#H%rR$JrKXk2GE!I8qc(1XD2EFQ
+2GD3IfjKICqCBPrM0C)ieQ)!bjTL*!eJ$#f#E$f#(!qibaaTU!0YN!"2ZqKMQcM2
+(L2Mk#HDBiZZ-P+mcSepRMH6kI1DFa!@bTK,)5#'3!*NiN!#43L!MjIYjc"&bNHk
+[dhLH8H0G%,SD0EADU"P0#2Z0QRB)!8aG+%+D8E2BMGTB!)qGBp6'l6"UeGP'E3f
+!YSFJY$"U+jS3&)4E#'H-@Jd1h@Q$%'A8+XBJA%1iJ4#0N!#*m$2#!+0f"BL[B1(
++2S3!ShEHDG5H2ih3L(!5B5p##B)Hi3+%ijTQR+&TGUqQ&Dr6Y"AG01e+5ddl2dc
+60RA802'UTTPU0'hPINeE1dh6$TCSfT%(#++Q4CCVfX00#"X4HQ[De8D%3S6qQSB
+[dp%ZN6"EdhiVeE4e(64Y0a$YVpDdIC8)*a"#%0)dEGGm6B[13cLRDH'"1UdS8kH
+pBG*TVer6DCZ3!'cUU00-kh5D%+$6[Z-)@1"j&SeA@64Y)d)ELkEVKZ#dD(BG3L4
+#Z8A,ME*S9J"C@eUdXI-YfVJQK0B@VEV'SJfqCp&m!(UZK89l`@M4LN@%%4EYC5b
+qh0'L93fcD+pN)ea'D'E4`SXXfMXT#*MXU%5iKC!!L6$%SQfqK(!$i4$#+B4H#0-
+3h"E0@iS!JEcj#(F4J-!,B@+X#&L-d50d3-!Q9N13!09![ZBd`Kb,9JRK+lFM30J
+9fa!F#$d4KL2dYfJe1&c6hD,G@Be3JR!"!BSV)K#`d5[c,0Vc8bcDkGN@l@NJI(+
+945ZY30L(d!2KCi5C&ZdTIi4@&ZhF$S56&Zf[f(M"C)[fQKe"3HKUdDkG4cL1F!B
+"KRi$`'p!U$GJK$ID@l5E2J3`Ed*")cDhbBZ!6P%#,*S-32%B!J`S3N"c-3+-Y4+
++9mk`D'[$%3SYfK%B*V)!S3kG1mDZm9)lU01ZjA+lCLe##%&)XfYMVb+F39KUemU
+`80B"SEpG'a@"d"%"Nc`6`JGfE9`CJY1Z9FqcDi2h)`""h"bljQPKehb0GQe-Y&f
+VDQrAAXQhDq&3qXj'1cV8VUd1Y'YVS+J5#&GX4CKXebUX#+hYfT9XZhBqhUkG6VG
+VTA[XfP-&GZhF2E[fDJS#&"djMS!N%NJM"pLeKm&iZ,PGZaU1!+",fa%Z)d#`*b$
+!%l2YfNNSr!U([PYVeflB%E#a@"b-KA"lBB$SDS4p#(hX@PfF(F2MFAp-SZ,`'L2
+)5qNdPlbc+)81-58I,pV1Apl"ikSa(&Z4aT@CU-HREdeL'Rr140Ffc'KF"*iITUE
+a''XPckZ@p8dm&jM`1+JrRM@Rdc+m(B`Re2fpZ*Yl`*53!$8ja9'#Hm&SERQ!GhP
+G3#Rp[C2blS-AfhL5Bc6'Y41mXS+ri-1A00&F(hALBmGd[$N1@IEkp+f)6-0mqLR
+NH49fF0(I423-3*eD8S[RU3f#dajI8#XHYTE1jQ8qRVYG*#ap0i*dKLqS'pp84DI
+`XMLHfq4DQNq@iRe"mhRB,Ad%1a6Z@QT2Rm1VT9GpSHej@09UGZLQHIbK'PrSI*j
+B,,)9VfXPM6)cKU6af0AAH0aUKNpQDc2*fRk5-&[GKkhq)bZ86@b&XJQY8&C[KFJ
+*VG$ECSAHN!#E,)fh!K0mLLmSMBGY3fH63e@ZTFl-#Z'qd-im,(`#+bbc@@(CIfk
+&8'+&XQKH9XNYXSY(pQ9PllINbG+Tbf))RR,3N!#Vr(ADNPmVNqqIjYZ[mY)b(N2
+pHG8jrY`B(K0T)RE$"kK4AK20J`9Pk@LaQG&N2pP`'HmLBp64AN,Ep5a2lDQ,3%$
+blAc*hCjGS!Saf3U3!2*R%cNjlpP"+X6ZHEJHE*,fmGejI&XPrck2[e2*VqAa9bY
+j84i'-2+VHIa)*6IPFEQ5lm[M&C9m64lhVR2Cp`,eH!cZ!46EdZ`X"6H1a2f%U6T
+*j[&j+CXf*aN@cj1TX6h*-&h,TZ@f6,h!d$)cB&TRbiacI#&aI%Na"J4AimUp[Qp
+,IF&Tr2LjUlbUKPZVH%b6ZCjZ633JdfGScNPE(q8ap2F5bei'ZF$S%r16Pr%`4l%
+"ArA9#(V$fmD$4RL5"k,2L`h,m29IVPiFi3N",lk'"K+VjZDj+$1HS1MPbicRhR#
+PS3`D,UF'Br3-+,@H)`AlBma18Df5-0MIP1QYPVCbHj9,Jp0c-BS-,,R'AkhL49A
+m6K9IMHF29E`*im9%GJbImVF6pHhiq%P)VFQK@T-6Y5B&Y5EKpBJ%4lA#,D5"-H8
+T8"j6HBZ2#jF0*lNeh,8`!'p*aVP+A!E4Y)TEE'Xf9Pad2F[T#58X+CUHiYA!Bq*
+M`ed'GIGa)8,Dh3CeJqUj[@%Gh4D&pmb0MAM"[%(#E,`0EjY%iD8a(4Nl3-cR+Pp
+#fJ[*aA(FQPHE*TTm+DJXGM6bZ'YNE)Xd+Ya-&TF5kD,)&3P(EkfYji5!ibf1"$P
+Fi,R@KM))-+(ir%$8EkqPlfLa+5-@$f!X6I895$!U%+hk"-p$Q91&3FBZ%j!!IHB
+aU3G&Qd,9kT-M"eJlfLh30$Qj1(`5[YIh54TIi$KH`mpEqBTL[L'FV`lR5C8FAr9
+AA-AISHhi-E6I[Ia*c)Viq6`c)q2Q4"mRD@pbhFM5EZ5UNDA,2!CR-30XMG6+Q&h
+rkb2T1&,`M)iiF+5qjIeAJ,@ArE!F&QILeG[j@0UF9qHC'JLeJ$8eI)4UP8GR@Ga
+(V+Qq9B[NJl(9SG+1#Sj[NI@Fipim*G0MiQ1U10lJ)e3jhi88k9*b"FjGP0T!b%Y
+PKlkmeZh&L[#eI&`9'C*LV@TS)EE'`mKEe"I@%a5%,&,`49Sq*HM22MiUR&I6RRb
+0P9@J[FMR['h,m'R@6()r4)V#iNRC!!a)idZ+E[!Q(bqVJ'+qfQUlLf+!H2Z1RBk
+JkbCK!JU@@)#kdP)!1@e,*Ek-0"jIZSelIBV$HTk-CL(SfM3!K0V3lCf%#5K8X-H
+,ch0VA,fj!9MN#`A#BK-['i1Qe9!KfdiH)d5HD6a0QJBUTrSfMZ'lpDh0IdR4*ED
+l-AcFk3PfpmXa[*eUNqIf*%a!K4*j+RPCH'h&%I3"Dp)2kXYI8Ne(60V%-f1ED&T
+pHGc2Nda+UM'd9cf[[kfF+Ur9P9($&D1dlVb5[LU1(iMMKblaYC%mF3aI@mhI@Xh
+ARZ0Q(fmXikrPmA0ar'NIVbMQ,fdRlP`Hi6DDq%1hq0&'IU$B6(5d!0@NFf3cb$-
+cNRA`'!E&ND`Fc5#EC+X!a0B#bE-dNYdM$p)i-88q4[YGBrE"$"mC'b-DCKKeB3a
+XQ"h$V)10`)`p58D)qJ2bP)fPl4Z8jC2(FScLZk"P0U[9-[qhe1ApVkJc3*hR'3*
+R1T[C4Pe)18QL02LQ)"fp$4,#4pb$Sa&-#*F15S0[Q#Gk,d`r`D!0R'mBac(a5aZ
+eS,`a'&%V*KFh6A)291a,6UXrL)&6'-KqY&Mf2hU9R+fe-KM$4[EJJrHM%4K5&`l
+am%jKR1kJ&*Fh-K&$*N6K@-**l4Y%mB9[iF@mV*VREU[9[+TmMV54l@0#90L+EFH
+6,XKa"Q-T'9K'I@U%e2Q",(QDC-Qq9T!!LQ$F&lD*0%f3!(CHHPLk-HCK+E+$,"A
+$cVT$'+Y6)N[K[G(TdEmCpXc%X$mB36!F[Fh5!!(0##QH2$2R*LkRP,PYc!8`ei1
+j)F3GDL*($kd93!3X6C1P20c"IAd2b43-hjSXB!JA*LeN4q%PLPX@3f&('QYf&!k
+JX8E4F5##UKJQGb#GH%2j!kc4FLme5HAh"(ej6fSbP,FLL-[G!TjDdq0QD81%J1I
+8K*NG#F3pC5Pl&C*6XMkl'`jQYaEdf60*0Nc3VlF#`rTL!Vfq!203M%*Hh`@VkeX
+,M[9TP!`@Ae8!S&9V#G#U1N'rkJ,@9r85m25Dm,B8!lPGeQpCKl0E5V#i*863EqP
+#TYe*E%EL&"*(B(8V#XG4bf4TDb'5PV*MD`pkA#GLL*!!J+IE"1(l@c&J+!5VS2f
+0Y`9T)plb',9$PK+h#rV%Qd#4H!2C2L"-h%ML'F,V,KJ5Tp'Rc3CD6*2J0V,*!"T
+MPU45@5UlKLTh08'[[b9)qLjJ!D@qT5!Cl,*NEBh4,3m`+FF%A@qi,1JGfi(Am8$
+3Cj4#5dB%LEI!bbJ%6dqQCdMX3')V%LH6eD@#2K0$[I@C656@N!")4-kmM39LQN`
+p-KabC%kQAYcbTq,eZY3H80XS5kPT!QiTLC!!+5-%+4NX+pT@+'3)*CT$3CZK$PR
++aG#qd(D#)5LF8&I3-A)LU+qJ$qS&G8(T!!e#"`I0)&0Lm##RS!mT3KCL3KB0IXJ
+U%N-*ll+!"pi%86#KB8I`1NV'r`EV`IGRR+iZ6VcJ#"k"Mm&&[6maM(qMi2#2*V5
+UpbH)r,Z!dFE&'!k'Rdj`q"84KZ5(h[+V)mbYB(Cf-9Z#55M3VjqJ$pL+,1#ZJ+I
+BC#m"N!$qqKM`VTmAk(8[9FJBmZXG`(@##J0CB`TX&2"mQUAjJZ'Z(84[Z*Y1h(Z
+VL$ZcRER*a(fjNEK6&@5ATbk63aI,"(*j[0`XABiA$"HbU@BfA)JR5fH,"-0CdJ@
+'Xk6TkZpGJL$hHJRkHd6D0fm+MVkVL4A`lT4Jk23c1G2P['$iY)kNRlCjf&(e!3e
+$YiER#BE`mfLSdMXQ`I#1JiDCT4dh"'P(&-V*8l*McADk"(CBJkqrLEXQ5f[`-QF
+P#UHi)YP4Q8fAeiM5pK$"X,dI`EZL5A#XQ%r$-!kh*Se`lV34$"@CK,)Vm&EAi!Z
+b[Q)!a-1ARMLZ&,-qZ()$(Ab&Y*!!+i8NkXPk`&9D*8[Ml,*")bCaD'hS%Sb0eAA
+%ejIJd8)HD0q#S9Cjje&)S[[XjA3jeR04dPYaF"5q&X(DNUl"lXE14qZC$&a0JM6
+Z*LCGCF1ieN5dDVaG9RB+3U&N+`-b(j!!MNA9m&`,d$,H1RX"hirb3J8QZ(6&@"!
+-Gbl'9I`DXk&i"$(kbc9dK9Pk'4+pM"'*eQKm+MU-,,a5"#$p+pRSreFZ-dicF+6
+`)X%4IS2Z3Rq%4m(-+@6YR@D%E(G88Y8SkRH3!(Dc)e-`l1K*&RH3!%k90Pm5p*Z
+*K6BI)[%8B$DM,0XmMF"X*Z@jhNZD[$F5#VhjK1fpbpLN(221ai%BUf#)+D@lc&)
+-@NT-"`)8diCJAidYVUk%p#I`3@ShZX3XV6Q0*S[LEXdF`9#j(GeQU,`(fM1m9)0
+Pr8XS4"`[pD4K))F9PB*qK3Ri9f`6$#YkSKL69J`A$$8R#IiD2F&Idef3!'T39H6
+fN3eh5('Q[i05aA$R!NDm5(HQ#4J@)qA#ZK84j&!&UBUN#K4ZZAMel`VHCmXp+8[
+2SmV*4H&b'NE14@mm23F*#X%R88ABKmP5DB@J,ld(18Tl#)DR@*hf&#N,T+GDJ6'
+2--lY))acH-Rd($P9,K[qQNeB$kSa2Bk2LMNKc`+dTJ)6kDU#RS,KYIdNIDdhdQ8
+%q"SDcKZC"0dEl3RM$FKPajh@6CrJZ,Q(&68hld+-QrLD+(Z",,f15YZqAABd@ZR
+aBY'ab8Z2Bj6jTQl%5dS!S9VC)@qMae&Fb5JHjGkN*K52#3Da$e%MXJif&a-D-k2
+K@BE)dNTr`E#b1ePB1B1iYH&NH5dU*XXd@6SbAc"%9T1&b!)LBQ6G9AdT66+4`BN
+@@&5GJ33hLKUq$d1RadX!j"Y%*#ZfA9C%fRjC"m'!LdQNH4m)MR&PG!&UmA&1ZKb
+GA6e2F!a1Bkbi1BcPD5&)2Vc[U!2+jc!U@BFEPMpI)q2AC@N-DN)0Ecfq$,8DhSH
+XDSqN!#m+j+1@Nm,(B)Skq"eb"i[QYKR[a"URJ3!$#3fY38-diQh2bSj)d$KAE!9
+e65C,0B5&@V!#&E++"km9V3Qk+f4VS)hcH0Y@49ei1Kh*AGP3ZSF3r&2S#K8'1SF
+QVTk3!+9A8`6$Ur-)ZJ+-5CXL'kjj5I9lE5PaEr5P3mh563a%DbP,M4LCe8GfE'T
+&KcD*$YP(`mD)$M'&$S8hap1K9Y%KF,BBFB)YVQc0&JqH*S[5-3`F`jZKac"JEk0
+X1(+FY+%MmiL,c#G&HH3!`A!eR+4A)G-P9Y"IFJU'*fE6(,2KC#"00"ZqZN9kmkX
+ZC2'VHB*d!L-"'fA$pjd*jcD'(GE)KYYG#C,[eTVa8B2a@''SXb0q!G1Q+5GYiF5
+dD5fG6ZF!Gj6E2FcKQ19fpb-4q9b5peq#1(4BBL'!R'jhImBFPYJRaHefh`A('GT
+rL0XGYG6Gm1H-F[ikbHT#fa*CM)mL++C%-4rPMQV"XZReM)8cRFj(R%b!IQ""VSH
+@14a4$XF`'m5`U421&cUGMq&!P204Tr04[9lIccQ#1-*Dl-SBi0!CH[Bhh2Q3!-2
+Yl1G5-@!3--acp,F"2IEq(JF321BN8JpafYJ2MA$dG`jcZ"d-k5)(X958XfeSS0Z
+a$"JGqL(-+#r153QB4qB0M$6A'CHBDHbF5`dl0SaJJI#,#2Y4CU5SKiD5fBp)(kN
+rZCaN#fh6CECN`#)#&0qJcQDXi5mfGkqk[IY%a[e32k@,mS(bdi9(1`@phI9&pYF
+pF*!!AqMp33(*UFUr3c,m-j36#rTm-Z,LSb-@,&"Z-CH8FHTkD'MJ)2p1`ciEGVE
+[X-rprcMXLe0"b4e$3a9pL`pEY&!5DiA1LeV!cB96cS5k(CP[qa'(,bFmY1A-`2m
+,rlDF*$6Xl%p)1HUM(fcNrQ[L'#IK*SDN1a-qLR,1bIaj3'CLhmaIi!)fpR&rkdl
+dGlJ62hrrp!MhdX6[3"1*RcRF'p2dVI46p%[Fk0N%YhZafph'r8rpV`&TJ3jhGSa
+HMhrQiZ5'MlVqcDrI!)AqLER3e%iIpar3,M8%2f9kFV,5Zq1!pNSAp0X4dRNGqLN
+r+*(+bEXCbVZN6bk5q+CH1DJ2eR2Ahe-+PDYA,YRGEFKPCH'4T-`8[j384e"Q5ZL
+*l`06&$2#eI(r2d[TPI*Z5Sm8C9Y+Rbq8XamUYcqAabM6&A`h)Rp"b6H%LUpb2(r
+2[*Ybhcmd96'P+T&hPF6hcZ,V56Z&")83K3!!(,4"4%05!`!`eJp9$@8e%4!KBZj
+5[lC2eD1mb-qPD$Z+)MhATE`TNYT`3,5J`&09S8G4T,U5LFaUFGF4,B-Pd9@`6ZY
+Ml3Tp[RaqCQAX58M@af$'Qf##S''b"(1-TfD*il1c1CRa%YE,1KKlE1aJiQ$15iK
+#[hqrekU9$*RFAZlc$aZQ*`9"N!!%34!%J'Mr1mAlr(kmH1Si-d%jQ(Lli&plEfJ
+KMhdpVl%,f8rB9[LBXa@96&jmYcHShI#%pU#DjAcbMXSa@5q,XC02X+TTFUj)(hZ
+G(kr4p,6d,T'*%TQA2QH93j0cAeU($l[cikMcia6-BNlcMQcib5E*d"6Mam-ZEME
+mk!UP&i)bmLLRPSqGD@MYR0C@![4r&CGq@TBT)q28j$h[clU@UZ2D@iCd2LBEV2i
+aGSU2R@NmZk0pk,GUDNk,LG`8erEaT0D%TC`rlebdrr,`"$mcA()(*T@LF6,2H3H
+RNc3Fc3NdP6dGPMf'SXGZ[4SG-k'j(aM5BrKZBa84%e(A)9Bj5)e@KHXGp+V*"*1
++6FFpDRaie9R+m9,h*r(kfZmcPEL`4I*N6FH8E&phiCAYLKNNaEE@9RB0(c1(!5`
+Irb'ZjP4Ma+I%$d@'2'8@`IeG2FXG*SHHi9mc5EjX`-dFUVZ(I`e9bIf@,c[@EVT
+TM#KRM&hp(81rYCf[25E)ShRE33[A1Kejr9rM3Fe`)%Q9b'H4V&-0MhF,Q3QLN`#
+$Um'!iqN`*I0r#A$qV'FcNRDF(b0LNDLa%j@"h-lJ'+ccfA55'SVCh3,2qaI(8(J
+G%+qf#'k,[QVMX&SMNeJ[`!LpH*%TEjaXfR9cdHH,mVkE-82D%(aMr1MLM,'Mfk*
+jNcRS6RZ-Nqp'd2(e@+kPTH'5KjS&6@BE($FCKQjTJE&l*lDf`qK'fQS35DZ6'el
+1k3`T&RQQ6!jM*KM01qlE`L98"8Sj*VC`0Hkq&H[9M4'NpYb*qEFkbT8!96F1kdM
+9M4JG+DYCiG%@Y6"c$$8rUp%)-8Q4kB#!p&k3!"elQS`(I*rjf%KU*L+TB6dcfJf
+cT`&L8ZGA*@D!@)[pYT08E`'T*#1P9#95c101a$9f@4U09q*3D5K!f#a,FLaQZ4B
+S"G)-jM+2PBfeErqS0E9EcjbMbk`kCj+-kF$%UR-e8R`k)!@R%fGqAVEr,Sj6CJN
+@$&#FV1iUV-IbITLIcmr*M)[Ml,3FaBESlra2S6Xi&R&rIK(EmGH,4j'#dG2@[(9
+p2+hEIcRj,0I6+KbCpA%BqcHPZ[m)"G(-`Ca6V'C$,@H([-ja4!FGd5)&8lfUN6%
+[hXZk)F1ci@qqIcm@GK!L#0d4kF1,!"JPRMR%$dGr@BlR(8YMFM,,Q"iBlB0eq22
+,PIT!'3Bl%5r9E5SA%XE3e!S!99VE'[(J1(A"XH$SV8-FU9(M@MR-f!6%41`@&CD
+6FU+SpM,-b#mR$JJYF*P&3VHF@[!kqVSAGjK8TV"j)%NI%XqK8j16"pl835IAAGb
+C(U$83ULp3GU"a!","NK%+#F6rKF[i8MhdP&5XYLD*Qm"6M[59J*20EI24f+Z"!U
+Je--(abdfBf*Xk'rb5"Ee[&X5[q`46FNJM(h9fHiTESYd-a9`R8X9LE"LhdaT4Uh
+*qX,`I!q'('IE&KeAV-jK6X9#U3J-F&LD23#*aAQX0*5apGRKqG&aXj*jBaa#"p*
+ch)'IFMU1d4$b3)',10CIN!"%Ka%C+Q-CZAq0Lh$lUb$1AIND-NGLZ-#4XZ4Cqbm
+aS"jE@2I'1$(6",YX`qC+6+d"+Cpj#Ui&U@k3!#j+Y@fq(QVBE%*bU'ec*6lcFf3
+m@%#fiIeb6'c"4-h(*HqAdd4rbHCprHKiEiLE'iffpm[[Jb1I0D1'NT*4Sh89%Rc
+()km(Rq-CU&hhXVeF3e)TaiF$DM!"9A##8MZk@UL#@5T[D(b%!2A1KL!584YUm22
+AN84UZ4BqGB0,fSpq&jZBeZj0Y@eGSi8lflDZe9BZL#hS',UJ55J!bEcMCJb-'He
+(4fqJBrcKQREYKkIDYQl3IR5YEH[EfP[cfqHIbfA2Id4r*cjkV'alqikZP+5&"cU
+-a+m4AS(A$-qNTZ%kaea*GUNMJd0'!L"a[l1KlA@@X1lCi+%%%**9*AHf3C4Tfhc
+,)JJ*5Y4LJr9dfe[2G[Gaaq%qYZAPP"+%U0Hcj@6NpB!3F6XCVF4S6#(Aj3$j#Uc
+[r)m)!5$(LPkYF[BdK)BY4USY0"aUf25KTGPH8[+cdh#@E*QmTq5,$Iq([FUG3$e
+2bEK6FZ!#3lUdG(KkZ15E#c`LkkjDDTe,[aA`F+D#9A3lT8$L3D#cfc*8R6dp94+
+ki5TCHAS'Ljc`RlqKPIb-PXR[@KY!FFSTE58E+j9`QDQ&JJZFj0a9b#868i&PKDN
+mrcBS%B1"F"X-bdIVZLp`cl5&c&cNU'cKTH-B[,XUJP,9ML)$J2m'J6&r5!#K3@4
+!DpUPB-"H[B&R0jZLieHe&+E5+LE[aG"9e&hilfhUA5$5GN0%KYPX)p+Ahh(j"bE
+[#Fr5SN3'*2)da&[")46lEDV5`NKhZh!91jS,El-$k[)"!ccVNYNJ$YJp['JF9lZ
+'ibLHT(`NqfdBpFi@H3m$%YQl6$fed!D5qr3qEUqiLB&HQU3#$i$ml,4BFAT`h(Y
+4Xq#R0IRpp)P%q%NbeJHeY'2ppj!!lLqMcF$'LdMGkh#-IKIGaHEI"+UK9#B`##B
+-*,)aG(d!DFbl%1A4+(NpC[U$J)5j)@QL&XC@TkJjeG1bJj2UFLkGS66[Yhl"`&&
+Z+5IL"*,68k(KJ)dKje59Bh&r%d$M"QM)I,Q0+I@PUjF9MD2,pkVcKldGE61kI+m
+U%9ih*NaA'fZJbKpfUR)%#)8hqarfKQhBH,#4+CYk$j50jE9ZDhSRZb58$Ulq41'
+Q!5Np(XPb&#$!G(ULC[rhRQ1EZ!3rUr0mrFY3X!D4`$9A`mLk"#3f9b%K+l,jK0M
+HERa*"kP!qfErr-N65cSJdLhi%`lLImpHleq,iY1aYKL0+lV`"!)+RR3H6Ue9Nd'
+SbD6*eTccIdZhSMY*iU@Cj+5SGm&MKBU60RqAmYN'J,3*D(qd3U-"`06bZP-mjXP
+#SBDk23TZ3[F6&M`49qQL$eE@')TELcAlY0&IL28q%Lj6I6`63L"&6C)BpTprmq)
+2([apK,%Y*lD'1V!TU4XbfaJkc#2KqL5a[IEB"rIAU"'Im%PN0,$f"`qDT0*,JF'
+)1`M(j*Hi&(GpmU5aDh[Xr'Ak@h&ji-UM-H2Na`r'eHePjkr3hiSVCbmr@VBaeUK
+J5bKjG@J'!k2M!5J`l6Pdi%[p"i@G-,qj2Ri`,rddr"T-`iA#9DU906A8-E&"Y5q
+`,aJ6'fZ9kZ%*PDIE3LB3ZBX`SR#KQ!2R)bLJ1hjk6qLD#4[rcE`@K[!-9k)NY!0
+U44&Jp*!!e4&rH-+Uh5XNjhCjA'b6TE`DlMJ&)Y+D`a-+,9)2JTA1"IHLBV)hK%V
+Y*D(G(KG$,8qeqiFV*qm*c8qR1R'al+3mb&(MG%VNa2,efMi4K"e$cJReF+T6PiN
+k1N'U0l$E-f-*QNN8Vk&KFIa-[5"b%XC%[VB9c81MJ1R&LZ5,@BJB"$D4&bG&G&(
+1DaFRLXC[!*LK35#5Sd!-@dfG1"'J*M@3!(qeJ%SeKe+fK8SEMrjYJ%`"')B89ap
+I(`0)ESLKh9'ij1%0fi5fd1j-&qI2q#QpfF4Y"iXb%"heHY[%`5+HFKPJ!-*XS)%
+raX$!),NUGGNP0A!p9"TX#,f@![[-R532j+!qX*!!KB35#B%Z144"-%`qN86-&`h
+H(U1KBb$@kGCGIVrP,a15ILM,DeS0Df)8c(Xql9#j2SUfZVr"REB1PkbEqrf5d'$
+TH!22[&h0kIK3H"NC26,c"DJ@%$KDicL96-liV5KZDlib`#'bTYiFJ3M"4PBr1lU
+MpZJ1J+-96+**PkpC1KlJQBah`%[bJ'GU"c`6+Nh1m-Q[p-CGi"-5KZl&jU8DjFf
+Vqe1qNIZAc'(lpXaaqrE'D3Z[0I+CErbhE5&-X8XJDN$4@bU23Uf2M9c)IVhq+h2
+8e)LJ6Yd6RTrkp5@ZKHPULd5kaPafL(m"ke'B5V8I[Mpk96'+qdHe-+9KrIi&XB!
+N@"HF)l'cMlRHLbhZD*5@G63F0D4%&k&D(#JAejD(9'lcSTa5!H@ZSD"eXBP-%aq
+E-GdEi$fA!E)p-hFkH33I)`pT2$9cpl,[2f*k0DEh&JU@kHR6%!V#rGHc+AYF*6$
+Dmld5IM+rAZAhpm*SeSZNM6f[5M+)HcNU$0b-3@8-bQ`C&-CJQbf$M6%BXf8`')-
+`@`D"-D4Qbj!!BJbGXfASM0TeHl+R!F99YaG,MEdTHmi*KYd!`fi'KYdmBDITKZf
+jER-Rd8fKa@UHG6&TkPl,KjHZ@h5"0r&UrL)&DTA,Na%4hCAR@&H[@bNq%UCJY)d
+aLkfj@"[9Traq%e4D3%K0jBhqbdhCTlCkTUl@365"J*913Xd'5mG"A-IR!#RPdNX
+8E)2'mX@'c4900lfF!T@ERRPb&'*Yb*E5q*'9&jk*@qGHfGEK6YRiNEIkT"GQ(5Y
+l%Flc9lDebmjFmJ8dKTVJ[+irqXkf,YNY6,q`k#CMY8pUNlA-8LfcEdl-efe`9f!
+fV%dYFpFV+48#!@1%!Da+Yj%U$00#8+aH(lq3!2d51Sr8P,$cjZ8$#*JCiJ[EKc*
+h$qP6#QqB#q@j8YJ*"E%e2fpJ"XQ$eFC1-Lb`lS(VehKh8FEL@lL+2RDdKIX6$H(
+q!k0&k*4hA#XL!AFe8LbV)Ba93SPd@9+TU6k9P-ZIrZmXbEr%JaI8#K4%3%NjKc0
+NLG9,TrL1k8"VDUV91b$Mlm'!$"[38hA!maNDX(f4H8R6,$D&)qdJ3@jG)5SeF46
+CD$9$'+J(-5+LFA%'#ND"HMVeeG966PC2dk5HbNTU941'0YcE4dUiJm#$)DDMU8D
+JCKf8F'UQ82(q9``j9Dcpb*L@b!$GVG0V'NR6ZDR6QH6`Yf((3F![Vd-X9JhIN!"
+`8B*LBCG14SZcBiA9PDb#)X1UbjaU'U*%BSU5@3Zl@VLA[D+D"[[P&iXI"2YJ1de
+pb+EqL#N+MmCfq3U*b%l6LYUP25mHTX'9$L!GKUpJ`rrYPcYF0kB6-8aE&mCD1#9
+9E0H'Z0D9Q#)@&$@qT!QQS89A1HqDA1&I*kKjpB2`e6d4ckqQB$+`*X4+k9Fa'ci
+(a8T9rM`Z9ZVbCkPBUFLIHm4+RraC*&EDj-rGBQ8,IBjmL4Y4HF'ZK[Ad-A*(ji)
+H8'Q4dSX*lq36DFGK8MK-Q2pf%cA`+UKcQ"DUqF`piI"K+c"$dQ)3hYbbN!$E-bY
+k+6'P6r&ET%Vf2e*ScS,"S*1PZ"JD[NM'!ph6ML-2#01[G1A9T6&8eJH($Z!k[Rp
+-FIRB"pJK%Z,#l`&K*"N!"jbJB%j9"X8"*e#B8jH"FX!*(ZC8C2!FF!++1AdbS!i
+i3FDF0KPN"jc!Bmk@Q@F*H-b%f!9&[RYQhN%Z6!Gdlf@K0,h6+eMkc`QqeDHFi'1
+QLE38[dTQ@0pI'4Q@KSPC@[0Lq)c&4JQETX02RRPUdH8B9B,58jHkd(AR$kpNMRM
+QU5YRBX'XF490M62'%D'EUEGjhLkLPCSJ)rCq*+ed3pr`KL$1I"0RIKY&h"C*8'S
+KUhp`rhkH68iqe-NrH")&VmHcKHYAk6QCSBr[Ta#&5)lV-2GqE3"'I8&mN3[@0lV
+kN!"%M%cIlGS1-r$RPdIQU4`KBHY@IE+rI092Z)TNXT+c*YT*a"MV@YVeq`HqIcm
+@5hTq`L@6K!,hYT%`PP0+,$lb-KkD-CCr6!Qp'a6%61HhU+b"GMRJ`,)Ba*)))c"
+D5NB8Vmc`"mJ#jB-DGAF)3*`AC8Ba00'F%f3kMBjEQT'Fl&RFrPSj3KhVRMS*J09
+eL)%(N!$#p,%d*iM'Sj2IF&j$4h0Aq8pK(&Fbm5@2HP%Eb6pX6R!Iehq1%$2@,&C
+6EMPCjJe4TqBhkdcf8V#c4GqaA$BialJP"3*lNIT&J$Dlh[XHQ'G0+Klfm3-3$p$
+NV5KA#1L@-&b,k@T-#5l(CV`p)+C1FeN0,S!L61(9L9D8aU1m&(TZ(h4D&%lkDm*
+k#hJ(5m6SJITm1IX`14flmflfFGcj-HaN114d(-dhXimGcJ'Y6SD)mk1hL&j!5'T
+Urcdcl,1**$X+(9*2+45XlM86!'a5+Xh9F)pmJ$Z+aSHIaLY'Vb1XFS492+cLBC@
+6V()bCZkH+'e(RE3a)ZcMRFEB$JATX2H#3hm(&)&`Ec9B8Y*khL*diY'"kQ4N"!V
+0PU23D#RFENQqHHPfJKY[AKbEfMi%"C4Tr$$I(Hk`"+Z9TQ,'h-+BV@#@hV`8Q3p
+@erD6D#KB'qI+a#Hi*GFjBI$UiPUbbLZAhV`%-BQKh(GF4H01mP,M)mE)Ui1mFh)
+&%Q#%9K0')jHmb%5)%VR+P8LDq`bJ#$)GA'FSEdTN4JQPmXA,B[81`rVhPbFI8MN
+!DhdPaLT'8!-iE9ViMCM&MCmkU&LV&Y2#$1"2Tf$m-&5jBVMP$jKh1NN3VafSi+H
+C6#He`a*9"d&j,2%'JJ+PpHrm2r6*KYqr[)G52Gf'3#LZQb*3pM[CiEX%'2`J*$U
+4QibATXHSHZ0ki1ccr+M2+*B,LaHTV4[-5'hp!NLG`1XAr-QX1cZ3!#R2e'4@CZj
+N[l$+Ijh@3hKGL1KN-M5QiMJ5(RA)8+&0UmB8([4*$[I,+!Zc!VFQL"8TMLN8Z+4
+maGj5MjcQkjdY%FG`Ip'i%p'jY9aH$S3N4LMM*84Nd[bcbfD1pHR#)8BBaUSM)'`
+FbZ%#%4MB"3'"fP,F5L5NXrmPl"Qpk[la5PS!MqE-$2H2M4D0ejp`&N)derYdY[#
+K`S8&XGCCHkJ)Vh8k[-kFf9PH1jKAA"k(%,lU&C5)EVGmp[!!R!L`13KX$""Qm*G
+l!C&pB(DJql+'ri*YAQD1QjIk+TFUVd*@hNlRJE,LR%"U($*I50"UYkXFfqAq$-!
+FF`5BV#ij2ar4[ca8)I-(heL!S)iUKicrEB4+[8Lkpi-65%)h1DY&KK2eU%10!!K
+3P#V5pMC"@I`65RrG(Z*$!3FlJM6m4G%i8q844Z3J&&TI"B9H[[`%Y"++ZPb)jH+
+,MSch*1hXb0pH8[(4$S8*'K'@R!kH$"LX+iE))#Z&'elc0D8S&BK$Sh)AXLc@F*H
+CX,fTZ%I48GDcMYEA0Si%&`dq%pJ(j8+2"U$kFX363kHHT%TNCGSa5B,-'5eD-*N
+Ljc2E),3mbMl2dkF'&EEh%AS-P3dTNSG%&Y'e+$LFUVGpmR&PSC5k,K,)KZEbG9`
+IQSY)FQ(i2QG(ce4Ma"NL6bPhjfDY$XVES-iJl#F)`0pkMVZiK0F39r&!T`rS5K[
+6ab9CpFJ$Aek#LrJ+!((6DaV(jBi"N!#L8l9ZpKq$i*!!P#m+FF%&dqm'K&!G3d!
+S8Q$q*eJieE`M#"!pJ[5kJ(!SQ2jA6-l&!dLUXB9hdZ1H0,a&hi%d9i'BdI*(XF'
+`0%X`YMEB80%YlM(4dSZI6%"eUR+PGRJI$3q%)i0aPr%TLK%fF`3(`N%PlVSeaM@
+JbG#YNc`DN!$`'5fm)Ljd$"G5"E8YkTmhJZZKqp8MZ'VEAYi*C*VG&31i9SeP$lY
+L%5T4L`2A5q$R8+#A(L`faPLabA&A)G+Cl)(@p(+[@dB5T"qA-p#bVM[S)mEDBlU
+V(*2l,`KMDGdmS(Fe4$cDCXF)ZZI)&UlGhN[EM"Hf'8+3!%YAH)iYES-)Upb'@!Q
+h4S(mrTYiR&J*+-b""c1SZ$)'9c`+NNNR@MKNY)L1Ha-*DhViS2Ce22R"YDrlkC'
+l63"+$Cp)Aq@$A-5VP,[`+Z)DAJ%qP(k'(DeTMJ0,[32YQlJ,2aTqDSI8KKDS6&Q
+iF9@9P+PF,$#&3J(8iaBIALSPhPK4HVKd(&[0%IEM3r,mMkhLm!!9S6c[hm4eK$c
+K-`j"m1-b)bBA,L20pB&0h%H6U+LB9ZkV-0eIC9SHM+)"HEH5#fRHJV!4#&%3T*6
+YLfU5!fIqHG66C8NqF1BhSi%6B,"Ch-5!5HRX'8a*Mem+h+&'%L0E"N13!-hmX"i
+9D5JIhG128#E0XalrlS$c4kSK8IFY4l'@D**3YJd0%2m6ck1*q[hlliiDhXB+9&Y
+(l'BA#BYHaqABX3l$BABXLKQ1J9K3I15F-@efciSpeVi-$CrAG(UCa-8)Mpar+Tq
+p&+0`9K6PG5M+NY"&&k!'"(ii*HRaX`j)ZBkTVLCkC%XJ42BP,ZE&(i64$+e"D)K
+L)B@U'1GHR8&BeQCkI"m1Rc(kUXXXN!#DYa`XHZ0e&U4+CL!XbFL,0*33ZV%9%cE
+mq$$TNbFTmCGfN!#MGX#(B'j"4pFaTdN843NrA%DFfb*MhN0,0%jmHH6R3%))f'C
+c%F8EDNFS45Ki%1L5XI2$!FIfbpZ[e%KUQ(HrmL!DRN!l'6(-+"JZ3%&8&)DHD5k
+&J05@j(i&`5IN81&!1&M0%hMSpQQ%2$i0Y&1*%3[UAf`Le,@S$4+a%`YE#X@)#N8
+"`UZdP)TH&m%iITU3!+Hp4K8bVTSbe4*-laqJbI!NdJaUkELTcS1MGVHBC29P3f1
+"K2@@iIl!AF0M0V$ijl,!)YR`3!3'S0V+[9hIbhP8Pe3)BS3ler%Cei2H,YrcRp'
+erUkJXqeKRhhd5ChYFmG*"'$1TX,1eNZ5A@+aZ8UUYcCPh2"[MJlh&e6YFT@C0dU
+fZQ6Ji59apBDfe88!*-8!!a+8JR!9@LM0JmD-[6mbK'D+5JqJ`m6bG("+pr'Sk9V
+LSVkF6jNbl11imk2DC$1QE)SZm5K5hiJ@-`m%'6aH4`dQCTameB*r8),32c*KV2p
+I1bhXRi-3Sq)1IGGd8+rMVjVQ9I1!cE"@1Q3KdPfRP@P[RBhP"ml')PNm$ILUDEX
+aBiakPf#$9XX[MpY85h*N"Fm'eLFZ1DrX`&#k1"c0EU6RTmbXl#J11)r,$'!pETj
+Ql&'@dNqBQTFYYf`0+"kVqBJb58`mkah#YKhTl[aa#QG'L*l$iU$NYp84d8V(Ej`
+-9AU$qB+[4m`KD@fK5L3+YK3LMY1jY3V6XLU1"kXirZ"eb1%K"D5fe3BNPB3U@5!
+48eF)kUaPbYB"fGb"fNN@2'SQd826K3%+H"$6'LkVh2AiHUmlEm9MXrVeA8JSa"K
+,@899UHfPa2mrVeP)`BmC1jVKTH-9Jl)rTDPXK8"NJ@F,6HkYmMm6B%)NLVF2reB
+R+#6aMh@-b!`39a*Q)XQFY+cVpjR)0%4-K-qNLqRkG56B)%J6!U@"-#hV"'F"2iG
+-qS,4hrarr1Z3!#"%,`01&8l*de@r0*@X%Q4E+kiMp-+0a5Q!8,'m0V-#RiRk(Nm
+#+38hQF661f(%5+BTl14h"C8[#LUc#LU&!mi89#i!PHP"f&6Z"JmZDhFH53++8@)
+T9mFpAHa3EXmdZYrRm+L0bl#ZEEf0Ii0LR(cEkM@4HUr[6GNJY&GTiXeZ6ijR,69
+!lkaP0bSC5ah3ZaRENNPM3I`B`d[[Zl"3j0ES1"LX*LS+'G-er#-L"kjNY$h(J`J
+*am,TD35Vq#ER-6&-PlIj[RXKY!@EXR4&45UmM)`-#,19k"r9R!@b8L(j9YLqPcH
+cc`&k,F&Z80FX)`K8b+Gr[ZVkp2QGhlErq9,lTDPrrprArAKY9rZPMbL)m*AX5r[
+HQ[b(U@8LFLCFr20rQ#Iq1r&CmIQ1b4HHljempk%A"KkrmrK6aajqq1'9abErDFh
+IhHPippcSQ[Fq%6Hqp0'6B[kP6H,mPci5%aF[,IMjZcpq6r`RmIN6hcKr4bckdQr
+[L2r`hX8VDrS"!!!pS8&%3e)$!'PF%&80G%B4!$(MIN9rhlCm'FXD4KKaaM6jR(0
+Gmlc,T*T5M-QbK$"'$NP(T"&cGHA!PQ)5GL-h*q@A5lFm,k"5$d9UEDqh&cNH'p#
+N)IC36XVK4%b9)[9'Dc&3DUN(+FD)h%JaT5(Iqqr[qrDmLGMM2ErR2aZN*bR+K5!
+)RN!fp6Gi8-%kFrk0,S-#k-XI3K([lFmCmKpZI,)pk-L!S06IEI1+rRm-i&-9I8$
+BcK8R9r`JEK@2plmZCSV("9@2T-Eb19YKLZNJGFh8GLAeq9M3m@Vhp2U)D*beD83
+V$$5qI5k,M*m)6"R1&Bp$!5B!`bSb"BaMH)MN2Q,pJX9Yf4PTBRKI*YM1-@H9*Gl
+F`9@E5#Uq*clQ%HFe''`ka@eF&T-@If`E%)6Ui@V!h25(5Q'DE6Pe%RGQm0"9Qcp
+ih"2mfA+,aZQh*0"G8KcQNECY2()b%MaZEVUPdTTT6P[V+Vi,,mHFk0D5r,6EFBl
+,KaZr9L(1fT'&E*q8l80f$F[ffA%X2%6X9AL9VUT3A+Ec#"UX(2KB@I9TGb*YIL8
+8[)eIUir23U%DY[r0rMITGEeC)ABB%dR9+3a@+FjD[$3Fe$9pqPFdi$bmQMMfdHJ
+JQ"!mZSZVQNeFr@&%%Y65HZ@CQ-k0!fdCeZ+f$+H@c&@d$8i(AKHE4FBl0d'0h2B
+MC(BL)G8-1pUb45q!SXU`X)l+',FhYQ9ldM25L1$5NNhBUr5N-4c4Y$42BFS"4lS
+-",%X"jdHB*df4AFUU$&jqp"S6S4l'rjGR,e*fhD*C9B9b,cQc,%!(8%&jiFD)3S
+BKm,lX+d5L#C1216llE6*JEBI3@bjjX3",,kKJEB$1%*RIcFG#*RCPY-&!+rc2`i
+18GYYaN$CB2+I)8,eGk2jGMX13XTG3`+!RT'T1&8C+NiYjfFUHhRd9NMaLm6P``&
+4aC'L1%QUekc69Z-M%IR`9k(#GZ)r`FGj%$c+%QjhGRc6DEXYJhZ-H$aZkm"M()m
+M0K'2NhMmCeXl(U[`H0L@a+-AMpff5!D3!'2d`8c!NJ##J(+M'S3kBZR)d-5,fii
+%Md2jeJ1dTK'VfPii'BNlGp@'e`UCYQS#a2MrC%M#DqTSNNb'$1N$h65a6MpLRDl
+1d)$m4k3Z!hpIbrff42-jhQ6cVGr'[6Crh1P*4Jh`M&KZN8f$6"C3CK1E,lcm&J3
+)lXHYLRZr#+DI0ddpc"-3GpU0ShblZ1Elmj48ijTd(KVQl@1MA2QN9r4EAEZHp,C
+,4r(Cak8KPdDM1h0ehJ'a1%RR0Y9RD4rU8(e$`j%,KaY[pF4j9lI&rd52kX2,*[D
+bk9%[Qr#bLVfXHY6,+V&$!)`%6c,`X)h(1p3c&Xe3f0!i*M6Z9FqBMUJ8S3&62h%
+I%%N4(TT31F2SH$@lRD0+V,,*6Vb`H&&G&cNU2E)iULJ9YaT-$J!pUY"*ZBh01A*
+j(ch-a,J@5lC3hmK24PiShC)HVcMIqT)pX5rEQ3ha-K`i[m0PUij&0Z5)rRdj5%j
+0i[cqPq`hK%pEU6PFjK)MD-jHd96KdeBD-aJpLU**#h"*10,$Vc%9flAN-*rPNDj
+ZU02ri1(K$N*mP2cZ5B(ZHi*Z(#D1"0$m26$ZBmNM2E@%9LR,kPUSm`lc,"kdH2N
+fk&#i+VGI6BDjD+R#c@K*i[DB4FEY@GX%QQMe63cC0"'`T-TQ8NYIVFbdKEaKRQ@
+VBKR$A%@@6&PX#*%kX)2BY""!TL)GL-brS5Y%r,E2H)"%&+&E9m('*D3d#hQNKL@
+QKPSd0!lc)"PK$LQ%%-jI%ek*H*@i@UL&8E+G-VL,CAL3!#'EYHjYUZbpLU2*CLp
+pJ#5Ud0JXkM1%aJR@Q%LPiY02RdpmaUqV2Yc'e#EF9UY9Z)fSlEKeUH0`TC!!e5b
+Jf$mMBeSpJeZrHKJhMfUpjc0)-UG`ke9(FE1TdlLG9,@i1G8a01T8Pq!@9h@iGDM
+Ad9QD5XEb8ECXj`T$8$0[8qhXmc1(eUl9IqC$d@ci+0BrkRlUF*p6(HaML"ipR+p
+N"k1"l'bJ6[@kF!"TZ$%)"R'(eP&jMjBG-+CUNG8KCGQ40DMf(U@YG),i4PJ1PD0
+DG3qkkSYi,&Smc%91dXBLZBQV%DiF1UU0j,21XbcMM1aH6#q1&([NSbNm%LR'Cfl
+N-l1j)ZF*ED4%)*M&S5HC66e$#b*dTCk5ZTU8&S8kqdapAqK-I4qIhe!rTFiUYN9
+12U&9jjlS$4HLQj*`"Qk"F$SCrI3)iXq5!&k9`Q'@rUfp99QZ'k#+@8KNU3%Nq(&
+liQBN3'Ahe!,PcK@K-8)dXM(Xi9QVR*GX'U%5re1PMLT`fA`",cC$k%e9eL+jqQT
+DH4-%k"eXm[l9h-DcVN'!VJ9iEa#k(GLM,#!eTXb9dT[*B,fB"'iFC8X-JVESKjK
+HfTCjeLH'Eq4!@#T089PRNG8N@Lp3hS4M`i,j$r-!%P3Jj[hSG8a[`l"XD!a9qNQ
+VdZEFKB'Ed260j![rL$q,I!!S3dje$[-dLhIeD!@FAZ3&$%cm%%deq%RJ*iNIHRd
+VAPHJmQfhf)%-fj%NMC3N0AI5TlN#4e`ka"d!#3MU`e`ZV+K`$h'c%HbA$cp0-!X
+`T+ZT4p)0h2`C'29IfR&cd)qKXfckr(rSl%fm&X'HrT)kCFIm%ilC)8b$NQ4TLFc
+-rlr9[-hp!)Xd)-E2Z&H9FC1"(R(M%3#CMbAF*R8FYbU@V0YCXKj(XLj4GM$JQH"
+q3`8N##C3k-kcM!i!S*3'Xp,f0JrBI!Cdk!PKBJ0,q('@m$XB'1[88efAjbkEQfT
+FRlJmqAJ4B+rMl$8UXk18X2Ta'e!r2FSQi$DN[[qGFfUrmMG,1bf`ZDRLLUMYU98
+p@#bGmVH&1MadU2f&64AZZ(B0+H`AeVcqbH[*$["HTdj3S[#VTj`!E9[F+GX#4MK
+d15VE-SY$"'3'3,*aIfN-B!4`@@U%@`1KjG+98-!Xlqqf0&'@k"9(S*aC[P!hKXm
+e(p)JV0X!ZTf!dGCe1QqA+`aG)X''N@!,c@SJZ30LmG%j9@6XVAMdCDq+c`$l$0#
+R*b'1p&fqT`Y0K)G!ImkRQD,r"TBHL6RS2+F',&""'cY8X@+E'N4QM(d'`$!Lmfj
+AI!UQX,r8Z0Gmq)QE[CT!SQN1q#qf+M[`DQ1,kb`"be*8Q%9J16F#9*VcYAKX[Y'
+UE)aV3F)rdrE@I#L@hhY1R@$E&,(05@GQ5Cj0KMFC0NQ,AiR&Pj*ZDD*UIL856rX
+qFTPD`@kPG)[B26ab!aZ')&1*UL6*4"UE&j0`*%LH8Y9&LjA-"&QZRal2-kM$-#L
+)PF5K&h`&Ni%+PLUP%SQ6iNK2YD+)iB@kICIM)mkVKL3H6Q)lmfcMV(U$XG@5%#U
+*`Z[-mDA8)jZ$p%"SBbe,3P#i,2A)"pEJF"9M%"Z3!'`M5*`4+"D@8V*0l&f,6kU
+3!!e*-0+3!+'DLk!Q`#!3IN*5`N(9E*(F15$HB+G(Hp4"J,3I`+`M4a[k4iB''G1
+'$(CF$UJ`("K1BdJb`BJ(YaLVC!BMZC4B)ZFSX83qSfSTNSrEXj(LpSl)13X*ZYG
+lDL1&f#S)3JNMNRq#UdP+'T&mX-Z4"eX1[Tf@J3(h*#f#f8r%-5f&ZT'@`Z0M,jE
+55a#q0Rc0l&qS`r4Y$pVa$GDaU1pBc01a6HTBc01aL)kYMqT@CYfZCTdfk6YYbY0
+TPG4Tdk-lCBJpj%3h&K+8fpRL*Jmh0kf8P&[epm,"L5d''%&8m3'JK)MB%5kXZ%)
+90X6f`jC*X505BUKb28h46G3j3L&aFM%&D0YbB5Y9E4UJV8lQ1S-UKMlQ9a*`!,'
+q&q+SU*C69H`iTmS3!CI2!'d0PH2a23MZ6NGPR"2`,EK)AH'3!1dfcAUGmTkPk5L
+DU*e8C5FJ#P-#iXTCQBbAA)'+GcR%hba+&NGl`,aL!,#r1Q8jZR,!m3cXVmdlP)A
+2eIhG3Y8X9FFPbPST#IBDdk+8GhH5mS#BdB,L!93'LkMU"V&+,2e8d8m"!)&1UB,
+YL"4EQL68828Ua(j21b%--iH3!(31#d31(kAd)3aZ)#X5HLNT5S3Pa5"c)2ZFjBc
+3[HSaG+qqrf$GUrfQlY9q3rIU(0#S0@rh"EEIUppmf+4F81`N1%&4aG`Ub'%)jQ5
+06XG$'3T8,V'KY"RrN!"mZ2Pr9F8GBMN@b@I4%-[CFcFaR)%DBML[`m!005-2"q&
+ffM5r-Ul&XHRi[Um6`S`$QHb')l'F!9%PXKPUlX)T`@Kb`'c'FBq`!ei6dbSZiI-
++ATjLT)&1bkcqV",,X)+!#$ml-Y5N$N,($6!e1Ql%Jq5Q"93dLDc(T&I2&RJ&*1A
+-K-K[VUJMd-3JGp)(+8ha8if-GmA1YJCqjS3IJlb,T@Kad!qa0MMSe(D"[5RI&Xh
+)i!%Qf2*23*,380U3!%r)+"dIiibTd8M#EA,)4qVPC5q2mERZ4b9jVYjT"aX0j2A
+ZPcrmkejdmLN5EK"+NL`L2)64f"K(J[f8*3j5QNb#(DQ9+Q,1ek%D&I&3mfVhM"r
+6q`ihPVBCCi9U&4ZlM'4aQG5IF3FTSmCQqlTY@L5BbfGAda5SRe5!6V$L%LRe5N[
+'CQd"UD[,3eH4pCHa@80$G%AGPd!Gff1chBcU@l&ERX031X8H296XK`d91qC3QJF
+G#P[(pPaBPLlmM1$(JCpHU%U-iR&5h3lX8lUJL#c(K'Y33MUJ'Q`A4pLV2Q8%Vj,
+5Uej'@"dp+#2iFH#RLmJmj*XP93)$mJAe$-4MU(L2VqJJ05-kkf"Nec$crZ[i%#d
+KI)MLC96EjDcTie,6ad%D%BPQmR$c!bp6FJ%DpJN*L+'jfdK03BR2J(J%G4JC$A!
+m$DNUk@HSJjmd+#[JlGJ(T+PP,%`I!bl4PU4AP,A!fY8GVH"L+JC#C&#"NAS$L%3
+[r#-T`Q5K$QDBFBYR'+Q$kM016UT+K[LpJJ#kb"9$45rk65UD",H-8)B+9dlEDSE
+d#b*kaA"dkS,,-aaUa#`X,G`iIBXFPBYFY('29hJG0B!ASN49Y0$AlllEYFJYL9b
+%3+EaFaJr(NqKP(KbT#1G0JFAZ@J6$epNQl#b#Qf%)HCc*%3[FRQQmdc5p@Gk1[*
+NMTY&00ANbIDEQaDja(#d#TB83pG(e6&aI[!(2'&8pddaC9T)H,3YIGc1%`A95&L
+#T-G[IFPk4E2IiJdP,2jIqLdV%`Q(UbVLF&r8'Y@B56Q9CTS%"*`3*ZkVXb4$Q+c
+"j2845c@E[0m`ZF1J@&T)cV3CbU[G%qYpci9Qi4%1KfqJVS@Xm!(FL9JeX!@2cb"
+lKpQld,1D@l`cDFrqa1IaA!I#9)(@S8k$Z)$U$NZhX1'Q@IrqRrLH3k+-bNC5m6@
+-Mmd+,`Q8$5khbLB$qme3YF#!Pp&d+0Y+P$*#600N$%#fKkFekep9iY@fD5MRdei
+V@&9c(e`j-'$&0Nk9A5SaeRl140T8-FaBk9DP%Xbd6UQmN8R9)BjCHVKjGi6BRCL
+$a!)!4P*3`dr2BYKH#!$,P39#j6J0p*Yf2APKhrbqae$9A)b2(&#6EaH1I2[rF"p
+HKI3XCa-TiTjJ6#E%9$qTrp81r1M`Fad!9b8CJ4+HFA-l#J4if5hT5@*5`[$*4,-
+ULHAf%cT)B`C(+U$KkiTr$2IZ#k1cj-*2bbF`aNAa-5iXCV*(8F$!FA@$-%(mH1H
+(YXJ"Z1KYrBMFf[HG1'LKJKDXSemBbG6a'Y!2+Ni$FSc0RMdSlVXR&iPZ8Ych4"H
++1H4L-b'cEchB+'6PFKqI-#I@Zr*AJl@FP&6bmZP"[8SqL2mQr,H$L@k#5M,#*ch
+dN!#'"eR)X2m0b!VSEhX)DXV*Z@j2b(i15TGcR"lDmD2"cb4-#K0`AIqh"hq0K`$
+-6hbU&NJET+Le$Bhqmr%62a)f59Y%pG+",FB0'a4R-@4!h!I"-%JSK3F@kQJ3hN%
+D52XjP3U,M0S,rq[V"3J94#FLT`*6UUQV%B!DrM43NF@S%db2ibI)52f0Jcd&ZL!
+dhiXZa1JZ-$9)8fR++`GrP&pJ5MY9$!8DakQa-mhLai,qH8EHqK(%T)rL)e!&R35
+i*"c&RkF5b(beaURp1P3@)AiJNH)Rm2&-'Y1XZpUra$NTHSY*QI[(Xj,J-ir$11L
+PSL"!6cAii*&H4r'1"*Jq$6SljG4fG32`M8Z'q@N`JkIM`r`j[$b0)8r5F*&0p'P
+q@9$M31KH!+AjbBi`XM+KaMP*VPD81!eUR-MZDDUH!K"U0Ur(9)YhQV'4kThkT'3
+&1lH2*DBqPTMQ1#PJqj&)6P)LHDMJX,hIX#5dX&*b[%j*%ZcP[X*%T4YU[G-ScT+
+FHQ$(B8FA*5,k!F(KV'm,d5X3G8("&jCNT)-rc995lAJQa*'ZbkCN)UJ`N!"d4[S
+THm,FG1mfRQ6$L@"Q4b894e"kL+-)Al,I"BC*akUh)%4c(6k[XmmiUqb#90RpfY!
+0+Daed[3Bh#-J+Sf-'KNBpQAH%MfBpaCdKTrV6'Qkcd,Uj%N#IKLpj+-['i2@(KM
+kN3$)V0D@8e`GpeXc(4mFZj0QC*q8TdQ*%RpLPi5Q*JP0-F-[98[NM-J@@#ARf2C
+SCQ[Gj[jZ!C&,BPZC*,C"a306,FcHaNY3EIh@*2#NRM%)2"QEQ6M3"m6T`%r[emQ
+)2ShZN!!B(5@TCkM#J*!!1-L1!H')#85#B*4%Je24JY'6Si*J90$8jrK9NTaY@''
+,RJGfc*'6l"+0Q,D[$LBD(4alN9!5S8"NTc[LCX8qRKhRMXr&b$UA8!cN46Ll#me
+YGbr*'IP*`LK9G@@SkSaNl)-TCr`,be1i-mG'"QkZ2U@[eYkP$DbH4E%k-SUrLjG
+[J#a9&ZpkN!$iAlPUe[RMIR(dl#ZLL1**bjp[$&aK"ZYVjN3PN6K&(-dS,["bfUb
+b9f2LD1'hLk0I"3f&r&!9,Vpa3hBT#JG'5YDK@ZGRjHE-r%JmE5JX1%&3CEKk9[6
+e`F$Qh'@*2*8TqR"mGDdVIl2c,9+)6X*0`ZD-CaQQN!$6K-9R-'BAR)*(%8fc6*d
+6DVC)PHjU9,Vm%kGXD@,X84R!C+,KRjLVa!p-5[1S#Mpe`!V9KK'UUY,eQ5IpB&K
+0LSraSI)K344CJ+T4r!KS#CdX*M3)PEJILc#[`&#L006MAeMZ5@#bRib(B-4fXq+
+--'SHZcP8`'!",CS#J2fZ!0LN-NM@4i%"FrF"kd`1A3Q`c&9rhI[P$bRKBG([%P`
+8b6(iJ(Uiq5FHJ"fUE'G253MXk#@JicKF*jTrhKIB%lM5h`f8hdk#,kEZ05K6dVm
+h$bkSR['mEJ)KR["6%ih,#*G0L$[c4'q&L`TcL0llbHfQM)Vp3GJT3e(!(LUNLFT
+&B#pJc*J&@rRcjmBTbILFD6#DqQe8S,1Ff!TPeH(Qc6[L8+*3KQ(4!Ei(a#4V!1I
+qc3YMe#"CS-%TG0@1lZZ(bP%3!)i&6bE)`CL8Cka)BLS984Z5b9e%1XKQjUTF,48
+dVDIUm'[V`DKY!)VC!+F@()[IQ3i(%-80pb$YGkc+[3Fia-FDUB-D#+D,Q5VTAL!
+R6Ni@kd&`CJJ@$kMT)2AC%"``Dm61K&(,fkU)r0DhV,hVHiUV-8J03f-Si,Uj(5U
+M0)XRR3H2Sr$HiV0'Cj8YD)4bR3U#AA5*+LSH&B*&C+&1NmSVmH1bp[6e3N4(GfY
+l5bU`R2h'RTLA+UIIjG##LRZ#A5cKD-AM!DG)DX3aKPa*`'q(DC&!)+LIe&9JNNr
+XP#C"F3(@dNXU[0qCD9(`JDVjGbIKGY(mmpTS9K*N"%"#KC-i`JN-@D9EK#5#3R+
+E0e$"8`MP4FlHNNQ3!)C3%Brd%3"ZZ3YX4j8%JRC#PZf*q4q)B3N)IHE[9@B5LqH
+Cb!Z'P%f0D"+F4([MAR+)l3MIredim&AMCc[Bpb*,L$RpB0&3B!m-iCB0Q&K%`%F
+JCZ`P!QcT1JE)V6AfLS`G#KaIU-[!iMKlcdk2qKh[LK#f9iFG[fPfjFI"M&EDa#3
+6mQ`K,"5Ca994[P'h$dCaqrLqAQX2@kLHp6dP1da![1DCB`"a,db!5D&BbjU0C!+
+NM+J'`ACXBIi(PV&N54D+!9Pd$(#6-i4DS'CidVHD%P@6V4fN9KKC0LQZQe1S-9`
+&9a%jS"l)Y%hQRHM8XSQFjhLXM'JM,0'X)[)-P8FPQR93@1KB!BN03LG)0'dGXaB
+B0'bGE-N0!l[e!kI!hA-a@r,6Q&arZ,RQ+@(*`FJ+!1H%3FK*6SF!Z@N'TMi'TMG
+Bd8fD'U2PTD@UH5h2j#4E)LHTBMf4G!*VTRLYf8(N&8#hCUd*G'Zf%HMqcQMd4`X
+&F*CMKFd1F&5Qfb)AT1TdR,CYraY9mFrBPc#e'SbeIVcLmA14#`#B*Lap'ZmlbE*
+j,E)kU$R8rHJ'c0miR%QkRR"%,JM,Z'4@k)"A(P"6e+%1jQb5(LIe38QmJhXmZ3C
+&KPi0%miVE04@,"'8-*dNTU$"1GC0[h"!Qj%Q32h4"q9-)93)ZQ8H`G3)B4ZXDY(
+'LYCPEbjb1AYYmYTY8$LqJ8F43me*ar&!%*jcTN'!$3PE3F*X3PAP%c(3LXIYf"J
+4,aRPp$E"UU'#M#51DdHh[81qKTZB8#9pNVK,$$`aP'!2XdhX*&ApihU'FRlh9#k
+5Zm[!YLbC"A&eb9j&DiNp2ajcQ-)+2%McN48hB@XD,$`UhkdA#EhIkU+PB-K@cqL
+Bh2H8#`B`L0l+kKqfPA$89YDLDPJ"0r[AEMl(l3STDYX'c[&HT3`#a!AcqB@HJPX
+0XDe+"HB,E!!ER55A4P+C3Qc3[a`Dq,afkpX-P$9i)5bAHC)@&ZcmeND"83HE*G2
+Q2,6&[aBm905"I!Xp-fQdr@3"jd@Q#+4PVh"UNEM)b0BC(bLEL`f8HBDYCA2$-,k
+8H35K"+LMQ9phDZF!+X-pH0PEjN%)MZ+b1CMbEM0(`(clm#)I,mcN*U&ApkmF#P-
+A8P1I8#b""2cpFa!C9X+0NiaJUBE1$K'kUDFI0&N0jFXUQ"06!Hb6l)!66L!!5rY
+`FGR*XS1ijCDP$k1EXT-B20G8h"[*L3USHFQF#35PqI[IRNbfKCL+AYljfa1Vc'V
+XBj0+P!KK1Z3K'jJ'N!!PX8NF+$Zjmb*ZZ6ZhF8&9M"H(1TNkP*%Nm4%G6Dm1V@@
+Gd5BTl-$GT+aKbNP9b)T`kD%C$lA#4jL-2l98MF!&bi8T@2b&ZKQiNNRG8*%Vd63
+%&C3PK4fB!Bh8j"bjM!Z-#X[iXc4-Ap3`VR389Gf&SG$GZ#H4U'VlNT%6Fcq2K*3
+HaVS6!eGhBN28i-'%IklE9#"@F08,J9d$-'56'`&RKBT*GIRm")RZ31k%X*eik@F
+1"[kT8UJb(B5fK3N,GBjd2e`qkd1NX!EB*H"Qjb0N2ANPlL#N0Rbml3T%ipN#VY%
+k+P6'bHAdbZ(QleJ0,f"kZ`*&)Ld0HcATQ50Re#X&&aIS0CH'$&kK4k$iUX105Ve
+SI5c&XZYaD*RTmHNI[rd5"(8mIY5mZ3KX("i6erXbZ!D(5TMB2!&i@E%DEm&K5-L
+RVZY&!Y,qlV18Z2#*41c8,b"6@a*S3Ra2MS)JjTPiAmI9@0VZbr1`r%Ej9b43EkU
+SDhEpUpm+pa1a$eAPTRY[#)S95iDiahV*k,If"[UZhZ#KC#rAfNiGi1Pmc`+P-YK
+("4e!k1Y,aXR"#kEdkdYZ1KLkIfZfLfAImG-V,MF9!B(MrI93+-F9cqjrhEUV[aI
+K2K)R+NNp+[C"l8,XGhdkN!#0T-jj+dV`@fYJ4%6V3*Hb!$HS,'!SR"'YJiRGEqa
+e)6M)N[bN88CBMb8NcRTml#1G2T!!()V,8LJC&Dd#dPbD`J(qDb()NAZ2,fl&"XM
+*m%[k$A`TDJ0IdQp!aJDq4"Z!QUKHc1j[9HT4K'9TIbH+8c8T5dqXa9E@LPCT+cS
+bSj&SfY8GSb%JmSLhMAS&YK[GJ9fi`aAUMe@*[D*ae,[ZL[!UKBqUqefjRhC8LE[
+SK9hVd!U[N!"p5PFPlU&X8aJ(C,q2Ba6eBbJFa+m8REJ446Lik"m+N6-Q4*VN383
+bL8%0HVA0dHrJUb2@ABlId'GrIcmIMI4e3Zc%Cfjr,Tq1R0RMH)mqdr[Kla6TKbX
+G!SNJBelr2'5FdM,f,aA"J[M90Qpr#*Pc3QCpG1Cc3ZBU8fDA23N63M&A-Zc2LN$
+CSC943"ULBa+3!1X5F351k)L"m843&6(FkDUm&JM[U-Yf$AaIUEll+l,lPR2[T$r
+M&V25lpMH%-Ykq[)99`hFEY#`,Z$INBQ'h`!akZrHb[fbHrYl2cZcf5h+KCUR'J,
+b`53YEAcUPM+a("-b!q8lFYJ%Ve+'#9lC(460[p[L&Y05$P8h$+BGh(prkfAAjYG
+&'Fecd2`DDjj8+Y!m+EXrrlXl&babLq%$[YU'M[$"p[XEhh*YJCQhda8SVh3(dU3
+*#@8c*L4Npjp5$[fLaLhk-qlBh4$h2rhk0GHLZJ*E42JXC6XDDf6hRN[[GYcbZ9K
+q4,1J39H1SrrL$GFcQ@)@ffL@Y0%3#L*Yj5(Ch@$X[-SfHSKYG,qddIId'lh%*N`
+UPCJ`+EZAGAj"C4[eXBff4fhdNRkMSV)Ac8ACr3hA4c@d88Eb-#2j05)jfkCIDKj
+8DY!m+,YIllhe&l4!M1KC!Y(KcT5k4JSY`$D-"iRi-@8$*XCNYk+m[j0Yq4$EmRk
+fCCU8aFLIY3-IE-UJXK*6"QAh5h1hE+4YX`@3!+8&Z%3,8%QK'G+NE4Z96CKJP0f
+IhGJI11B#A0)[`'h+2$5q$56kk(qrm'[Tb'`VH"!f%jYDmd%Xf3NhD5a&8PU+*FT
+GQ,K%GVrfSjihf2B2XHdEPQ+[VVccNTK&La&-lXKQNdD9GCJd+V[Rrp,lf$'@Sac
+E6K*j8E5SARB[RAML0&Z'QfJC(KD@3@B,PX-DVC,GPGSAY@Xq&j1&Yf2ij-(c0(a
+JkYGP%JLIPlTE+E[Mcjhk2L0h&50h%b2h5faCi3L1SqDih13m),[Z@r[HYXdZN!!
+jbFLXNFKmRK(Z2"%1A@kAhBZ'%[q$NIFQ)Zr$!RN&J!h68U$C"YNGkGAXqrARiRP
+fa22#%BQNE0NbX@'K`h@bZqEjh@j'bLT'bLCT-hYTbFKj6$aIQFN1Z9PfrHVAAjf
+ha385*KN*0Bb%,iP*D6[*bQZXDBhXHZbR2pj0!N3"-TjR3(PH)Z4GX[Z$,fBYbNY
+)KMLL8!'D9XMZ9ArijLAD%#2NHBQ3!+m,b51+N!"lCGHZ8jS(MN()FLR4#4ZI*lZ
+hrXYpDIm*)FYNGqV6reC2#mL1@+jIDJ-K$3Y6+EXYCb0VL*!!+98J$K&5)%jB)Si
+XNA'6l2TZamKE4-Ed*)K$C(a651TrKkBlhF)b+i[rD'G)Ej+3!0jphm8QFX5d[hF
+&C0CNVqbqp,qAZYN5(f9,A#i4lcGLqHpG!6pV"J!Xr[rI$P$LT@T1*c[ff2F``Q8
+&bPpd"G*B-bc%X[ZA*"NacK-a$YjqrpXJab8ar!mJ,fZ%K2(1aYTH5MlTNh6Xqk3
++i@HZ3"CVXPPf(hrQ[fpPa$V+L&@Z6aERFI!`D`C#,IhpF3m4LSidQ1ASY(Fb3XQ
+"mbmD$Ji!h[J2Qmb-!1FCdVrGJ26e4-)5a[l[NAICX5ITf2G*L1Eh"L*9bqlDjlq
+eQ)(083Bfj3EdrM2$jJ&DGceYV$13!#JJ1kEX8qcBliRRrm&`E#4jrjA[T$(NFCk
+"rZh5mJV(&NK3)l[Ah&Aa4iBmL%MKqblR@GK0XR[hlrjk2dYZ4ePb+cG9PIV&4D+
+FACK56`GRbhBqcl)*4!*`PVejjJ4$c1FCU0pZ!R9ARA3S%'(9$`+pM%cM4+B(p)$
+ZbT5)J%ATk9#qc*DZR5fG,aTG"*,C5-J[-M@dl(Vl`Z0rH`B*VR!rfm#K!ZML2*S
+Q@G2YXL[eK49rC-LLR*(XU!PCZ+kC#(,Lr8mrB#3E*j)pS%F8VKb*(&LLIdVZ[FM
+34$Y$%ljS0"%Sak"q0ZJ'Q#bHA[AIIPf*"Gr2&[b3!!P0Z#kC3,NZjhrFb`KAcJK
+hp"L%3`)lfh#NqiF5$JY90,KlA9l#'G!$)iG!Z&@bkpr8(Jd4,Q8r3`q(61K"6`k
+!p'([rZGC)LYRU1'SK"UL#B+%GZZq)pNXFBa6iRK!3!ib1liqiIrGkY*l#)3bfR(
+mmcMDff`$rUJ0!)3kEVRlpd3+4M"C)PJQ(4m%#a[!qZ&V[ri+NB)YT9pDbNZrZr(
+c"Zlr532hhY,!Na!d$5*aTB'9b1$Q3a$fUlDlGlL-B@X2Q),+apaqRKJ[2&6TIXa
+e'lIf*(XJV0DNm`-SA`,a@L@A0e+D&akkk,VE[HZ"XNfl5LG4$%piR12Le3eA#Jq
+0q4dI(2cQACPPEZSdD"cNplq9i`TQQ`qPP'r1h1X5MIPm`j9JH#klc'eirG1hkLk
+D$qR#CblGL3BTD($34edB'MMXGMXe#B5lF1$B9-!ib6Hm&!aEXmYF8L1h1I66EA9
+r0Xm8(MTiRLB(VYlh8REE)0rK#VS,$`A$I4J`i!JmQmm0,hlk8ZC&0'pLc4'YeI#
+#%!fp#SC2dD4RpqTIBC!!VCNAqqV!`[@#%B3SAl3pLZ&J5K5"AHAMJN*&P58e!6l
+iP@K()iP"[d0LLP"85(5C-PKKS4ZQ$"3AL[TdIf6kH%J6pdX6Eq3pJVMIa%iP+XA
+p*TD,2Jf-'6lZ-'8rT!R5N!!*PdQ4-8XU&"KUbcE&VkDSJI$"f3eEGe`E$'qqGYN
+G3e'@!fV!Mkbk$[q@ZVIF4f#DhAi&5@f5NTTiamiFmdaPcY3$(il'M8PZRJRielf
+d`cAe`'p(Vl90mS$I2Z@BSSchT)b$)A5'M0q`M&KDi)iAFkL$[FL)lQ"jRJlQ54R
+#p(H&kI*J@SIrChA@2FNpM)'cL@P2A3QN(CaP#1pc8FDRc$lF)craQPcrNN2P41S
+pf(6Xq2aUQ&+1lpal8Sk[qGRH%i[M(dHTa"kNDH"h"CXUk43q-#B&XJ0JT8-e8MQ
+3!+)q[XZLe!qN[26fMjpQUMd'FUP0#+j3IhZ*mM@ZiVDB4h$l+JrMPXVpZ#hMDEJ
+9F4NhK@GPN!#$YXm6#ak(Ud%bi8GKXHrY(,G2-Q6JcIH(0,CDU%BT*"B#PA9e1c@
+fZq!3@5%GT+Qr1bVBB#dl+K3ZV#LNT2$$4Re8@,r8k@5Q&)Y[PX)N6m-dCB1LS-S
+FAJZc+"9XKq0+&j`X)J)J`FLk1+RP1KL81RJ6CDSF)I+N"JSj-I*lB%*HXSP(-&#
+%$A+GGGil4iB[FNY,G3idKXM`1d5U4A*-66@1TKhDPQZF6C+KHV(0k#5cccJ,T!S
+bNJ(5ES%6G2Qf9jL"k+*cS,8'6PT[lF-$-V)am5C-[-iQ"Jd6KdE0hhlP&6,VB()
+96DBA@iXaTFXZ6#@8QU%XY[M`F!CGF0jXfKV8h@qDqI1"1,R#PT)MdG"Shkjq8Lq
+@EPdQ`[e#+4@8qi+,8AbfS2Xm1dkAi$k,B#2e&0+di1'-26!mA68Fcr6bP42j*mK
+p$8-YcA0i"%IZHD#eTZFqQ0pJ$,UTTl@'('-p+GM#,)bU"pQ`6Kaj3F("d0N#G+E
+CpJUj"#GEkBM+J[c3Jj!!HC!!!'AV2%m`1F#9eTU6l9D3!!a)$,FT('"r+d!B5Q@
+K'3d+a`($JLjQ#YMLME'Yhf@hQ0eUlj0!c'mIiY-5J"k%+[P-d9)brK5P0K`N4@I
+$+c$UmAB-!iF@hKBq1@l&!bZi45Sc[Rm6rdGB)I"jHMGYRLB*VL"&',CSU@RBKZI
+T0S3$`K5ce6L`XF04fHHD3GL#MB11bUrMXH%&(*3hj&$B8$aFKNZ&pYjL0%b(qm4
+TeXP#I$c@!)-H$[J+8l)I4'&q&S+%"E!Q&j6UKS-S-"k-Im`UQ5M$eYEA#F`BZ%q
+689IeNS&48EDQ"$q'QH89#J0X)*NK#9!Q&Q3a+D1a'%eX-8ECp+b#dr@6kb8cjFU
+Yha8bXC6e3`1YR5cc$6`kbC9qkeG)I+"LfhL)`%5kQafYJ`(!BMfBT(0PUKSSJVD
+f(8Hi5NF)Y5S2HjTSi3-MV1!CKp1IEfXQ$$+c,$Mb+d+RC2)aKHNZ@Q8`YV3200i
+K,$)mrB[E5%dHBbj*TU),f8!2#qQP-kDqB,'M`DZ5DAa-Q),`Z4RdL%)#k6d,LPC
+"S9j5Y)Ub(,RU"ELM"S9P-UYGK'UHSeHQEQb6F+&*`Qd5)A54@+IRZUAQ-)"'VM-
+h&5bI,5%kiI$$$C[dG-*!pC`MrAb#3!6+@pP*KLL0-fbK8#IpTNl8"BC-G*BJ8'A
+'!!!U&4TRdaY,U`h(&EVlfRVQ@KJAYU9HS+(K-Ua$%[$QDIS'`PLCYMT1CL[E[)G
+'Q2Z6c!%a39RlN3M9&p)Ti-NB)iBU%)-FeIA%$d842fNJ+TSN(cT*%8,q)C)dpCF
+24P,qmRp'8K-S8F#Jq`p3aRGbqAmT(!V`G)%d3f4k8S@*&#llrV@XbQZh"&QAQ0*
+cRhV"e(%"-LAd@e5MYjJS%$!N+J#(@$!!"`+NA(C8@R5I#Ql,9CkJC%$cSVXc!&1
+0)@-'6E'`j-VMLa,9PNb2*VFBpiMHjbF3l130-JF2MADpFZ)J'8UhVSM2aNH3!+"
+kJPdCkVipa5NJQ*GFQlDl22l%q2c+3AlJd2*VL6#CZpSj()H#HCYdJ!'TV2Z)YjF
+CQX&*2BdIHV#Q0G&0[BQdMcPPlGZ6Rc-md[E19,8kKB-f6&9(X[(`jL-T[,bYECM
+#LLYY,FLqL1be8pAKAq1KHDSk6B1(M@MfcEBGe+aFD5Y$GK$CmkDUj40if$Y9RI8
+D(LV3V+RY,QTf9@PEK1beb0ib9Hfp&3r26&AlPZ$K+6ENEQR)lFKf),YkUVVm*6b
+XR+T1,XI$+YDXAQUf1,U3!!JKV"KM(@48B+f6F'BED$X&!l3@b2*f`6(#AVcc,Bm
+9!8G11A211Z0qU[39UG*AP'(RcMm2pqcm#jUppNKa@p(1LrE'RGGJkKYS@qdShRN
+!KV%Ve"'"E&E-UB9lYIb($cl+,&Nl-l$c,@4U+00#3@H+#S5PN846#QS@P-bJSPe
+-"$43H1cIkBkl+FaeB*!!Jp82r)#$cIh@&)aSqi0Arpd9K&Lr-cX!3`4F'l-Y[UI
+HiYQ8KMf4Tpj#B3Tr!4&B+JiM-9#kBjVlQXM3Gb`c(j%`+d5(K*N[FB!Ij-4Xp,e
+1hGJEr$*q)S8mF$cJ&P@Vkh%%f"$92RV`LZSCHNL+DMmp*%6e&$eS4(@1(N)L3V,
+LB4+#MpMP6VS*R45[6k(1pL2jhYE2+pahZ5,C*0B%AKcNhh)2FQYGmb9bhZprbAS
+YHBe0Z9Y`fq%)Ca4DCcVd)5)X-e$4`B1$rNKXd#qM)SaiG0CXSGX1X,JeGC%FqKJ
+dM[$(k["cE4!-8X8e#P0+l2#,GiKCqbj4#+NIf2f4(r6kCELcVM3-"&"BT5GQQ#(
+FA(k+AH,J&0`KmCTp((E5SimD$1Gbcmj9Y"K$!jMFc&F6-SFjAr(%iXLLl3c&e#C
+U2"4MVK+j`pUGUlSSU)*#Mf,B&!LHA),M3UMfT#H"aMFJ50q#iRS+d1e(G)50F#G
+HfpLDQ`m(@qU8JVB`NcJVl,DSX69IDND"&5$dI38Ic)@(60N$EFl$cFXrB8j@#AC
+)ZkNE`BQ!JX'JdBk+c+jZ9MaY,BV3#9eUKRa#TF@DV+#ZZlS,KMSbL"-CF"P5cd4
+[QX,B-*DQ@3N**%+SLG08r!N,4S@VFPMi'j&#k"5Fb),#[,0)bkVL68R@h%E6Jh!
+J(k1U6XYY%@[2SkF#J9r1'cKU6#MBk59R'9Z(XlKPfT+B'@LCTQ&ZURK%f`)h%Q6
+ENB3'@N88R5@",D[K@ml'&JGcK38K-8%V&VFi$Yq!k"FaKQG`53L*$%cij*bFeRK
+bkqhLE0,ebX'60JUU05-PA'cR)#EkMFM!e#SfcFF1@$lNLjF)M#!E[T-G4BZ+XZV
+l,YX5BRaBJA%8jk!'@%)ILMGN39#1jFd#Zc$3BYpka)iZF2KH#l%4j55k8QA'0Y!
+VE-$-ClAN+",rf#$``hN""lA%)6,ki)`h`Bj""AB3T)Il6"e6!,'Gb`c681K)F'M
+AI%SAcc"YrT4cB1FbbfKLB'F498`1eaLh)iZ49T@BN96'XRfA&DiUhPQdp6N8SIA
+T2cm@K'i$!B[Z5XcLd$V'UZMdT%m)&aLJ,G)dqlHL#M5d1`GD*LbX!dGabi4B[,2
+qm!e2N`'4#KQX'bmM!%YfB+9Z`69iQL(AF1Bdl+8,6G#f@rkCEUfh8*-#a4I6e4'
+JheiUYS#3!%6%T-Z-5BpMm635dcT1&c@5e&NkZV#(`+*"K'[kphUebb)(V4"V0K9
+-@Y,P,aTE$Tq)idJaK$X6,3NKZh#J`MfXE6RX53SCFblk0&`@C#J-i"[p+MR1E"I
+F*aXmlE1f*@,a,jEL8L-(a#ki585J&-RP-KKpX"S)2e+8(k)LmRK-c@q#@lUXE"r
+!"+8f3iAJ3@j%fb(i`INfbUe*#'9'T#28iS$#Jj!!TCE%553h&dZdeiQK4X9GJiA
+C4!pjf$')FVb14$Q"`-E`R(k)SKU$Jam9cSi,K3kU@&((m6aSM0b!Q*XkR,+S1'I
+S83h'K3C-S)9Ui%QGID#PMkV,dS-NlL)i+m+E8"&e%Nq,F0ak,a!B+R$m!#dq'5!
+@*Qf-d-DIrN+&,Le@#[!9MB#FVUjZ3h#)FAl6VTBqJ`"[HdMGqr(Lb4(mV#E4aMC
+#4B+"aU(LS'*k3k1R$ra)a)'h''GC--iM6#ajD&dIB@6M+S6hqRjF,#DG')4k$`d
+%YQA#-"358!4,(FF`GdR$K2Uk@E(5r%HdVH2$jb)R@`Taml58$2RX&[EUXaNZ"!3
+3(X+CdN1Gp#)I$ap5XHmK3RKK+YJGAQV@8KC3r)4&(MiA2Y*53S!%&q4bX-S!q13
+0S'8L3j)9`U3MIB4##!1Y%fhR)VQ@kkcj)&cJ(`e1f@MFLkhI4Kh!49!@3'XSMEC
+-)IZHl'4!`Y9*eJfmh35bX!'24B`l"@)X5`V%8%m*a&#Y4!ce-"'$`)bpr&6BY[U
+q4)CXk5&(HR%+&q4LS84`lC-[QNJ5fB$#,p%N1G"53NGP"BjpKJ@$!fN"-T@I!`1
+8&V@8ab!AJX[p"mM&b%3%`4@"@")IPilD@%T&0he%N!#[T[B4@aqKC(6V%LFAh'J
+4H1Be"$RBKS)XCH5+DR"#4AJ((GM1#b3Z'J+M4)"iP%e!eIY`H"bKj9@,$Lkb(D`
+JbNC,!%-rEJPiGF#FQbcMNC)L"HDhNThVB2kMfdD2,'35Q5bh)8&Haim1KkaRL6U
+!ak+B!mZi(Mqra"D5E!ZPj$cqT*m9k8T$!#iKA*J'4jb@MYKR11,!1E9GfBcEZ,*
+ZXQVqZqE)*N,ai8dZ+0G`B5d%mV$#PBPGB!XIRIKBep90QcFiZl,Zaba%aS#PJcC
+V#plF@l4ZS+IS+56Ch3`GR4XDD1R(*cUTSJ,M#949"S,R#S99,1hS+JZ"$jS-))U
+AZifc8ML%!e![aL4Aq4JK(JTEFU-"EYaF%!0rka,%3&XA9)-aTSkFaN,CQDTY%*f
+G4[&--"G+M!831+j-d`IFkJ5(r*J85U!,Qj[$jJE0XB8He[aa&LKZ$!U$J4rIE#(
+K%jA`Nj2iXC,$qk,G"F18cK)l9i@UBa)ZKa-)(8N#C)!9L8G)0i[h%36*EY@JULp
+Ze8$S1!1&hE2QC'@1,FNDJD&(dSdpdY0ffC!!J@)m#,qKKJ4PL2U#)(4-Fh)L033
+!3a!4,akF%+X[SqLA6)Ap`8DMZ(b)LKRVP6Zc9$"-TP!N(Mq&1h&d33!FD#Nd9#F
+J3aI)U2(djZf'QXc'S"l+9Er`8,YK#G2Vh-18+VF*bJP@p$MYp*Lqk$&B-2cVk1H
+4cTBc50EMG'NT)*!!3f!T%PpTE#NdGSTHH["8X5D'6f*C,dGGMQ8,9DJJ1edbJ`6
+2TR5H[-TRrpAI[SR2XL)@$"MCBpS-3N)FHS-"648TiHF[8,E!r++D'QDSF1*GY`[
+Z`UKNNLJij)IEm-G`iFeNbTYeDeeRDkfp9*!!!j1fN!!!`&jXbCMi4%Z,!aB0c4$
+)b[qG(PbZJdd#D+f$3KQ&mU&NPM+Y,XUH@ZNPjpd4S41%31S0riTG@'Z3!$,ZeE'
+L90,"QaDaJrY`!4)V+bDeMJjX"P)`!H-bZm(N5q+&MTakme6SF5f#k8&-)$GLU2&
+b$3ScK!bB,FUPF*8SGS*(S4T*Qd!#cLA4JUTa#5'M!(!-+)33b$+lJ!+A98HM[f@
+V$1J6)S@A%0qbT6EpaEH@28a)dBEL5mXHMQUBP)*4!IUM'YG#*FG3f,,,KL(S5%0
+C,-"hK#RCI"DIJ1!K&*3`4**&M8!L-aCShGMX&$B+&eJ"KHmTL-)*k5re-J8*paZ
+RX*@m#0f*JeTNGQLC&IlFL+aDS&BFkP'SG8p8J3!+20JUG"eHT!r`JY!Rbe)&T,B
+Xp9K)VHa0#DRe1G(8FYMH@P3&j0T15+f)5dMYZSMTK05%c4998FC!9j&)L'eCUS$
+BLS)$HiU`U5)Z)$C-HC`Zc[DRN!"d,#e!iGZV8B(RCA6MR$%)Va)B8+(bF,XRD@$
+NmHNY`-6[,X$%jci)%jpVB1*eB4-Ehea"@b95VFS4$K9jmpM-I225ribCElj,B1E
+cXY"acX$-8D"a!h@'*AJCJNDLS($Th%9SM!8Ue9,)3"d"jLA'hPpLl,eZhbjXp+!
+3ETQK&TL8&$-!Md+kT&a'mU)N4P8ae0Ph*5p*JB&+R+pEb2PD*Q(k*Qe,(aNkp)!
+*F&A+ENi"#L`!R%rQ#i44,a$BkX$1%*!!)I!m`PJZXb[VfU[QIf#1-"B0M*UK!Lq
+rD+V!bkm*&IJaJ4X!B*&j#F*`E(T`X(jd%SJ'mY,P`K&j+BVDa'rZAIE1`*jPVa&
+J)YQqJii3dR@KETDabF[H!FNb)!BhY[4ETNP!N!1CjDXj#Y$ZJN2rq'MDpc[K+Zm
+p+hIeV1dXAVaf9ljXl9QlUhLae,M$MUN%YK38V'A1dSi"1c'J!`e`mG9P#!,Zd`"
+eRpbhU`"BjJYJ+3kdjL-NAciYRV"S-(TXLPj1J!m9h5STZ+bPMUKPM6(KNDHQ4MQ
+$&$'ec'Ki1lXNj8MhRKPmd'95,IeN6#2!4p*V,&e#K6JBdQ*1mf4J)hChq11@dj,
+CV!U'0(Zd)FffJ%aJeKjpef(Uf0D3!#FiGa)AN3X+V(0JS1@d6+V,`4EA59CFhJK
+9*$1-DTLk3D0AGp46dIG4CLUS"lUXci@)-JRaj*EKiVE1YM&fZrj)CeX4&-d*8NR
+ELaXlm211[E(4MTp0d9@h"3UHpbQ3!1,SUh6VTB#$FBJ)b@,ZElX-j,ISL0S4&Y1
+HRd$4&#m&!AZU$SADqIIUmfX4V0[H-8SI4mJSFbf@eTaj0K),1iSE,`cj$8Y*cJK
+qiki('LqJLQB&NJmh2phJY*E8ck!Sq%SY!dA2*cN)U(kCLGV2@LE0F%Qeq)`$,@F
+FP48jRSMS(f)KkRDrfp90U[)CH8J)hc+#cZDBmV`jECa%"'FQLIrc+kY!N!#[Ipk
+Vc[mF342K$Z,-ST!!N6#(Nj0!,5RQ[eGIl"@1liPdK)91r)[Sm,UdS66pm3IDl'!
+8cCr8#C0SN!"LEdbD5*[GL36Pr`XQMXGlSlBpd$D0L8Xqb8%Ka'CR(8dmLd+2"N+
+!!+Nc!ih[B!268Q*mKj%Jb%J`!4,8k8Q!J'PL&UYXF*MlGqL*N!!PC2NlR6P%f,-
+HG$mHeAd("Pr(ZZr-dhP"mTDccR(JqffXFil1bk8Ye&,5BBiJ['Lj3+C`Ql$YF!-
+apIaP*'3`LEHZS1,,r!dNph04&B,X+2lD$IbNimH&RbZ('aGlafBak4acJFQ,c'2
+8JE-(E*-GJ$VCU3@61`RR&THYJ!+-'Famaf!NVjQ81,K3D'0pqL0)(Ud688%$9KS
+ZUdJ11N"*K59-cDdkM4$c83!&i&paKF4I!,R`Q80Kc#NMcZQ#+F(Ab99&UY"XiX$
+'*V#*pIPc!m8EQj68JZTaaKiKV*T&!eA8'K6,3QAq`)KC)CD9eq44Y-mM4hiJZrT
+l,e*4B"VJV-bkV5r3E6d9U5Vpba*$THUPjP59"PqR4lVN)ffQ)mpQ+'M6*h8H2ce
+m'4ZIHR)*ZCNP!LJNpR!11@U89+&ik4S%T3+5VAi0DJE&Fjf"6T+&$d##rCGH,&H
+Bh!FHA3d6Xbi)YkE#F6Mff-i(fUkM`(9afh8!95FHaL!)TM14+FP8GQ3q(V-fYSe
+4U$46dD#3!$'[dQdY@bik['I16VFcab5k6b!2"@#5JQDY1YCaEle"djCJQL3dC5#
+dFbSZ&C9U%TBf0T@mc*+0"XNQdqBA`ak[P(3bipcq0Npq%59C%ETR%*I#&Vr9`i0
+!-K'T!rqAF80aj4JMfDTMNi`4c'3U)$--9-feejL4-5bBK+1-M(iiISR$)%cM,iG
+l'YF$X9H#98dd[NQS#d0!bGhI6@"@ZlX[@NR+$(4GEh@p4FK"#VUI3,0+A$$kiqJ
+,-P$i-$DihL#GChMG(N)aqdT5S@T1)$33,YZ0-ZVL%h4*"!3$iS2hd!843X`%k*)
+1FkU[1rU#$9$cKfcM$,3dM,a0NT)G3C(@238L84IMV-UVdT-P`8+NB5*-iN@Q#8A
+,U3,-B'c&8!qIN!"FFDS)L%"JK#,QbAZ"9-b*LXB@'aAhNP6DF#dqdI($%4'VjQd
+)GP6IhceEh(S,`QT*URT#)q`L`A5CfL3KK,'V#(CB6f5fAa#5Ed[KfF+"iTC#TGj
+ccJ#S-eG0)!Udi*hTi8Z3!26IN3"ejE%"93"30%p4eQ$#33,FX3DZ(32`'T!!"V(
+DIkLmpi*HK*F38h%1'BmBf[!G'ff`4&rPl!9k3X,IhMV6beF$368*$9S+llf!V#A
+4MPQF!`5E'PplK!"a'cjmM@8!aEBT9'mN"KX@qY(0(S'ir1L'CKlY-V(LmDJ,Hl"
+!LM"Yb(3C),#CEhKkbF`M109eK'2KN43Y"@,T&*hQcSUk&8%Kc!#)5fVrN!#jFm3
+2k,4+E$Z&BqaFU'1K9jHB6"b5ii8Tl&LR!3d0K5%iV`,k6r)0+lj2U$155CH,CX%
+j+!Lcc$-T!XFY1"j!c4ZGj-J!)RAY)JHb-Fi%`[Pp)c0NT&X4r"JEUf)QA&,FiJ)
+rT3ISFZqQ%%SmkJm!!$'*384$8J-!@#)293eQ4K%3)H2ZBIpY[jDUp1E2AGpF6r2
+iA099299E[D"j*M[8M3'lXN#[QmRX,2,RXE8mT12kCQiKK("&qrPP"j`b)k,6)mk
+&`m5DC$c21TR(,85[Cf%p3MLpJ4(#mUc$D-"!Nfl5lA`c(Z[[hprrph8G),ql*1m
+P,cm!&AGH*2-J-L)5)I%!%5)'AfZ8b9J-2l+[@3!T*JH`53LLfHa"i#5ck(`c*m%
+X45b9i([crVa[`JMqZV-JiceF[@f@)BpSp%M,d%H'hQjSP42h`i@+@1a(hf(&Jf#
+ZABdf2fX%qp[p&YpRLU3442JD9JbN6MH3!%9K)&iB51%F!ZN#AhU#5C`[TlBJ)#c
+YEj@P1#)j*JkANGHYccVHk"r`$`"XIm3IampjG9Yc(-UL-KU8&YmB6,5bq"m"RiA
+j3#`C!5Zi(#CF1TQ%#CX`hId`'d69H*NhHiVrd4EKBKPDTG5!$%j2(2"45hb-Liq
+S4[cTGmdiN!"'LkrPJ%YCp%[*E3#)km6P%)M+ie)eMG#[1h2+mH8@4hH+BFrJl(&
+eeehaJ2EVcScb3+IqJ$CGFX"PHX4PI*b-U2+N#YUMVE*R3iH[@Cd`0&ZVE%B`h3`
+31863F4e#V$TIaTKrfZE`'mPLE@T*4[f2H*V9@LVqU'hTJQe!MP['E6$F+L28h`@
+!)-c,%-6jD(Q)"2+3!,&aX0X,U$%MS%B@+bV3hi'PpQ`2Ja($ll("[f2aP"K"P8$
++P(9`DHPL4L%*["4KR"dKR09jYE"m@rGNN!"6&`Lr[mhGh@pj`@NXKa*XFHE9(L2
+CeJl3H,Rbb((PN5L@"RCI(`hfGaNKK`@`lXRl)IA3dqqU@N&ll2TN8PRJ&`[Zl6+
+5!YBR!keK!q8`XT!!NaV-d'jVEfchh@@643*4+iVXqUdldQ4Cm"NjDEDGT@,+5A[
+Ef8*q1-I"4$Bb+6&0*DC*-CeFlJ+3!$!C`+8jl,!bD$)'Jrh6kk6UEKMj#S*%&c-
+b[1,QG#Ke-aEc*3dUE%#,Cj(+kJ&$qSLaF3qVTKT[6PS2R5dXHCFIXKK,"+`a[+8
+GXJ!kU6XZcfZ!P+amm@pEe0658l%kIpBP3AkkPh8[e,UeKQi@&P)hQMH1)JSESTY
+jXBQ8mj)-`i!#MQjHD'BPbN%a`IdX[R63X26!iN+Z-Vh!4!(a"M'edV4Z"kbI9H*
+N"&-c-Cd3ddQT&pDkjjA#UXUKQ,l0kT2*F"F*AMcbL#*i+@p6)IPB3$llD'M2El0
+aU(Xj2-r&m+T&h8'9L2V8d4"[-)ZN"ch`RRM!EIjk$4)K*,!Gmlb9KT0E,GKd#iX
+AKYGYj(1QamZA)@$me&a1KJ8S1+9*fAD@0qDIpiR#I%MeCh,5m#509&X(LeX0#EL
+3!!Yq%KI[3b@jZ#G0G'P@R@'H)T8%`6d-``'B"'KPmd&8d*YQSP@!*3mXp!YFT3b
++I2IC4)&ArE@+'CfKmLiAXe+Sr'&-&+T(VmVa4+AGSmY[YF,SFEQT5kk!e!B,`4Z
+BLU!B0LP#VN6e@h!%UPr)UeKFb(r,ULp2UcLP0Ejf5+RkBMT%V5F''1Dj`iS#43&
+4-[4FQk(YcTcSmh25&+Vhd&aJr0dpl46m-$0d*B1%Ja,i9"P,5!&Th&hm(4l0Md5
+E1!!,Ar9Uc$`jPqEL1i*FA2k6([Zeb0Z2H$,AS[LTZ"E%MdZpG"%&mr$'b4#T&BJ
+VpJ9XfTk4DZq4VkT[+Up@(IQUFSAbbMMbeCIFbUX3EHeTaiP8"fr4&fj#)2@[-ZB
+eY+&UQ*3A3f&f,QaK%0QF,"fh0AC-PaDd2GH0+3"GYQfGK5Zj$f09Bar'+[eGU2k
+00'Ac&S3'8lic[`J4$QpNiE)b*m!i4q$a!+Y9ciKDG*'&TNd'L#ba1&1SkJAHGN'
+UlqrVpESlbZ[m[PjrDC2bfR[%Dd#`QaH8Pb&L0jjQaL+pmUC)p$N+VX+S0,YDTAh
+Q%a!3jA!53MQ6bd&fK*0d42J-X"eJBS,3$ham#*-XXmSTfa+$p*k`E)G@`dY-31q
+0S*l#'h5AS(5@Uq!b2N3(Z!kB#Kh$Q1SER`a2fN'Z2j3Y$jSqmjcB3-*CBJ8)T`Q
+6YJ[6`f+Y+)VZR)2*,M2QdBe@C$q8(2lE8)N`9`BK01!VD98)LCQ4rJi!Je(Z8)C
+&48+&TZhi-Apj"5T#q`MTqDQr#eZ9i-p1LHXD6V)jl`d5hUA0dI8Ff#pYMVb$5GA
+2$b+T"A1)R2[j3CqGMVA5X5e'Ze[LK3qGV!D!DUeaYAFF!ECp38Db3X@*0*2SC&C
+c[%1N+$J"j"MrhX(l`Y6q&`laLPI&!CK6DE&'"XDQYBV-E*a-lJ+-ckIH%mc385A
+em#3ceTArmck+M49&pk`A)BKKrJ5I8kf5Fj@9#k'jTf,9kMJqQ2cKIQLZ-VC1AG5
+,BVDJYE,"L-1,Nl[V3rQYFXi'"V8kQJr'3[Pbh+Skd38Vdm$`1KHaa9MH`1%'&l5
+&L#fa5T%@qIrjIj(r`Rr4)ri,+[pTq#q!rr5$XKDNN!!X`G@'C61FVal"(i)@DK4
+@*-'#`U!e0Z3rfkXBFXfIlGfR)HrNe#iEmRpRdFR)VH%@*8PAPm,K@q9d"8pq%&[
+Bm@GlmF$aB4`c&dQe5eNZT`fHr&eX`4Uba')C@CamV,kY2B3&6Zi+GEe6E$65!SK
+,1aj4AA`EPR3E9@G5`Nci0JMf"+#jFUZTK95V*TAEJ'T0YIiM,#e@Yk!G$kR*ie&
+1%m6@aHSU!Q"K3K63AMF'4$H8@pRXRV'amiM(5CeV&A8Z&h8Z(h@Zmp5jT,`-FYF
+)a[iIH*[3EIqMrkTaPF,[ZKT+MIkIIUQNQePjj%h6JNI&)iRZiK@22-1TpjI[0X3
+ZSDbPEAYY95@jJN`ZKf%NSfqJah*L0FbGR3JE&mX%&BK*K40AQq8EL-HN1X'6##Y
+q6++bm2QdJ)H6X+Dp9El*$Kc4+b(*%)39C)-6P(`cc#q@)K,(mZ&*1MbU4KeamBU
+@4)VIh,hHPl36-"2(DbmTF2-NdUI@`C3[NBN`JVR8YG62(LRlMemXF9+A+R$%eVp
+b2KD684@*akrN-3Qj)cbCqe"'&e'!'`BmAL8G$r$KU`KVNFc(5fCbYTcN&29Amc)
+%GXrdFGKAH446[K8%K,Ec#V-Cjb3#bQ$X&5Cl@8i(rI`M"SeAS&$X4TaJMf9`i36
+aLGN+TpL9`T2LT"blGH,M34cqFjq-9X1"jHFJC`D60j!!0$X)9*+28f9d0dMGcXR
+JBpF"c0L-+`mV,-+AQBK2M%QiGQi%q2p)(%G`83$bh,k$Q0bT5&MDaf,2F)'fR5b
++N!!5,q-!#dIq((pHbGT6HB4Ac0#5d`Sl`q`)rQb'"H+`A*32Kj631M8FLLiY#N%
+YhlfH(!EA8i'28S&I)Z1"Sape-#Ph8hH6N4EUI!!J!$5iXrEL2fjF!RRdCHfpqH*
+Ufa))HYX-$QB)m(Mda6m3JhVGZ2*9K12$GJER!15&M4Pmd"BCb-MKN!!*1X5EY6[
+ba4(,[JkT'R*)eG"$C)Qq%IPmqND+)d-1U4Yb50d4Kkc40b*[T@qN1$VNN!$D)BI
+8$MP%(EB2NPDmb-2e5Z0$@#5HQ88,*j[hV0ej(6"QKJ`6ELp[)a4a4r%693dBRJB
+$X3ieRFTRGG0KNGQ%b#CfVrGBCjB+FN[lYZ[1+amXaDU(lILTl-m[@P*ME-!)UGq
+'kC6!LI386+1Fh6haCcAqV!3XZ*V6Ama%aPD$IG[,B4,!PMQSUp8`UUd`jG@ifIS
+66T,"[4,KEMhBKf8)QeFDk+ka&AYHkMhC`(#J68fQEV!#mqA25F"p+p3F+j!!AJj
+9YM1ceMF1FPA'*+ahLMYlhe9mYVY6j!jDJXfXf)#MTfAPIQAVPa$m'F9jfdRIqlM
+iLNCqhDYh"ciFVRa4[8030`!$YJV&VAF$"@k)TJD8cT!!(!kZAN,4DG3*%&arUCN
+l!BUij5)P6$FhMC`Hl($SqTCd'%LNiVN+!,c1R*H&UEkVcLQAAqh&j9kG$"9#Med
+R8lmpf*dR*VJlCb4!Je03#[q9i$Kd!"6KYlm+dJVBeSiACha*!V$1I(36DGUE5""
+e'I10A3ZrjjISD'0BG"C&d)!E,`VVV+-pJq3`J,!GI(XmmZ,[6Z$)l("@[VKTH$J
+['jH3!*%Jk0hPAa9RQ0pe06Zr`c,A$62I$V$KE'(+G48h"aFVC'`8X)RDA!JmGTd
+h0TI0bJd$XpTLF!`354-ZZc#K[r5lXp+hc3LK`1[&*8&I"pLp+E0acbB3kK)Qe!6
+JPc0Sc!rJj[R4M@T&)A!hF[Kh)L'"*"hF%`X"qP$((k#B``aqi$+hX!2*#3BU*SX
+TqlZEZKCX5J(AF2H$3a4IS)BHDBdp,k@MDaQf1LeMf8'49@r9i9K@eVr)9jF9bBq
+Z9*H-"XH#jqA-@(89N9Hc1'L$%9IAiNm0"eM'e@G+*#[d!HridF25K)Qk5%!30`b
+kR-P!RflDZK'AmBf,cE`%kRd!ST[bc)+i'"iBI+amkDRU5VGTr1$29m0G'5E(33l
+#[b3kRdX%FE&bJ!)-UlENT+I!#pJ9hI9(EY1lPCFC)4!%AQ`9ET*9UC(6--8T&Jk
+6Kfd0)[@*DYqVhMiCH&K1%SLkr$BE)E#5XHVGE0USCVN)*3dA!!1VIDbkM)R*9#5
+[!4$5YR5Lm`mScQcM[lJAZaV,Jl8IK`XPM0TM*jJTiZ13!$$PMK[2mZD3!"!F9`*
+T%GBiL)#-%1(`%4Pa%r%i6U6ME[&')LLh%(kHp"3A[iQISZ)NIH`UAXiI96FAHA8
+9@-'[5ePGTckAq"#P$b1*$aTpQ%Tm#01(LX5(#(h)M3A8$%bkYET%0FB#lLL,A'h
+'0%,69)iCX"q*CDLf[lV-d@h#5(a&52'@&4`JmXmCJ5fG-$VA,kp,U5M6R9ci"G1
+G*e1f8,Jlrdl(C*!!QEkfMNQ*TJ93`@eR!*,'(c3p2XYU0LGpc8DFdpY1CJjhrS4
+GDEBHI30UY)[8D20jU6-EF+m*mdBmFYdQfT!!P,8343XV4dq5Y[h[k-VP)N3A3S@
+`beMB8c+[ZDd[*pBdX3f3!0M'5@a6DHad,iQYMm4fJF4@6%*cN!$3,T!!d&35@Dr
+U5!MV38*-!`N"V8U)*TX35J&#m5T#k8N)a8`)*55%iU4ZpV30$ZbC3U#rIF-012C
+eHeS-+L,[aLhrFHbT@1qaIc&P`aY(ke%-mdk,[mXhNEV"cV$6iTKrabFTeaSE(4E
+ZpQLJSpf9SLZVT3bGNr+qc*e)3'K3$F`ZKKdG+flFIji#R8KebId*"A)"42'e'YG
+T('%&k+FaN4-ZhA$)JGXDUjc(1KQ!aKE(UQYZRV5GY,4@ecSY88ZX0KE$6Ch6!R+
+6emN0EdQeNXU)lk[l$`@QbB@B(-*BU9&`B)F6I"dl`AZh-VZN+,i`ZKX,Gib%'bD
+acUMRi5L2e!)jV*26!PISU3HCL`S%0f*FCA!Rm8"+-#+b8i(X+Jji!"#@2#9H+iG
+Bph@4*rIV&r(%2iI29(6fApk,9D(k))B!9EQ)l3aS2@PaR5B!5!#%hb-i-#feBK)
+jjLlR4dV#-r`0&NI+TF1[B!C)@)#B*ZI&KJ&Em8HVdIZJSA"4M4Bp4$$E)'$'345
+D'U'*55P"CkD0iE(I5BjV5bRS1%k[Lr4J+6DL`,B'P,'D$NrKCdaQLLeJBBSQN4l
+HZ"DAh['JkG-4efNS!+RYJNUj`&fCIU`HeeK3R5YXh(*GCjJ,*Y+2f9NNN!!iS3X
+`H-$CIMcbD$HlS-JGKXZILDca4IX[1fkJ3C,cirETRiR!(`NfI%"cRiF!MLh#ZHU
+4QGI%aErI"p2NaD`'4Y!diT,mf%Kk*[!!"2Mp95jfd9qBH3dUE`4QABb2"ITi(iq
+-4PVaSCNqc+*i4MQKjQ26b2$bDKYhKpM)LIhb)@V3me$IDAjTm'%C@IUJkF9lI2R
+B#*XkEpicKQ-cXZG"dk*0[2*HNMh'Pr%!8Nhi5IlbRXc*C[aN*B)r2[kcI*2m,,r
+!3qKJqQHlp1%R,1rjBI5qLF3'%blqX5qHf"pC!l,0MRiMlL54lC9d-d%hUc0mdra
+$m8#F2KiXm%hT-r4aU84qM)pYp%!a2F$UIi6)rPDH%TYE6Jrik)(YBQ'N9E!)H1%
+9,#rG&1LQ4RRS(FACD-4p5M55STYlG!1i2aSQXCB+TU@aIF&1aQB+L+!2"S+8XK1
+,E(l6-`#'BL@c`5LHe8Dm10pfNJQ3!!(J2(D`l6*Zl!qDpQp9L*'-V$EX$-FDGT!
+!L9Fb6*4HqFPPX-9I*2%Zjq2`T`e(AQ*(3i3,Dl'iKaDlBIV,F1'YZ,#c-"pYCh#
+"J51!!hDH4+8R*B!*!66JiA*+"QfRSmXH0"dZCE!A[EL,9%Fa9af0*lbXY1l2-[b
+,)Q2(TG@'+m[1369C#`Ma*6JJlA6(&48TUYl#MDS-1cV0#MK"[0,3FE5"!`LPBJG
+FZQ60N!",$j!!i5"0lePe0h*4i`@'+5fJA"+&PPJSA+!h&f&aFdlqBL#fM!liRNr
+$MBU8!d#'f$*2Vl+T#9))GS!i+iifF")bYY,*9BVrT)%U&EmE+DNrA)qYmS0aRX5
+fij%kjC%Um4(L&K0683dQ,LAAl4FAaj3AMIK(dE955!k-FYIkB1d)G5fPUkFJe!A
+ZRKrF(MQ0QrZ$AIf$Zr4T9R6d$dk"[Ia%U)d2hKmjc339P9)pB5+Rhe1E&9D&+ZG
+[m!NbHiJ8@T)8%F`9f`qa%NTccXU+jMAMHjV*c4q*VSNLBeRll$#6c-BZhqKSr0Q
+ZT[ETk+hf3Q$,G3kRS!$L)'D"acSjb2XU#N*f1Yk5)!IDTE6'$+EL*Mh"$GBif3$
+@UF*Y0&PQjc,c@lZ,M"8ipY9f*[B84'4N*cZYqkbLf4Na5HbbJK3e1ATB4%1dF&U
+$)p-SSZ5[Xrfc9fJ$iE5AY!'SiY5Ir%jUclaKc"FCMEMNRlb"3m+$k8fV062S)"+
+R"0$%`aS59`Vl%"YQKKd0keKecIV2q)E4lDSSiI)Fb*I*MNaI2mF2&D5[-$2rBc4
+'N!!4r!!B`mmk'93jhDKa&jHFkN`@T,rGCjfF2r*5eC`BR@!5D,8Hi5!3VKMM*$q
+R@Cfp5$MC#hjhbc1fFdJ1p9Xi36mDh2e[9(#2SlKV`B"f&J*lVM-3NBdhhPb`Fp+
+bmHCdLKkUa812Ul-)!B1(IdH&EcEH[&pUE$aFcdA1Y`ZQ%9#1PXrHf2e[))@$MfI
+iX&Pf3kT4PY#Rk3N`McI3e+''PQKm'3MYFCq-AF1NeM0V"2ES3Q@`VLjUiGCIRQ4
+8!Cc9#pN3*mQpJ6eT$9KHY6KliG*C4bB"NbZB6*+MlE6Bj!!qDZ%$U'Q0r50!NMm
+UMe94FG@K`URBC`aZ##,5q99TM"["q$Pfj!HE"r%l8G5C)X!j'4LEc+,MM-NFTG0
+Vf-@(f8)@&JK!*4c1QYf4[IN,2ad)M(H2ra4&cZ6HG#"*)ebhb*fX8Qm@4""J#pM
+NLEmr$bLpYL#kEE+J*i(2dL@r`-E&,*TSf#&c1V[fS'R2E8UE5jr+6#kBlajMRMZ
+fef`m#@FK*MmY)$Z!T2X[Fd@2RU(Y!pT'PmqTKQ([Y64f,$#"b[@fbKb#pYVH-kV
+Z6*9d[-%J"d,f9E`9Ad%e%dHDMhAbXFU&8i-ARLdRKNeh&YM1jMU'`N4"jXkM)2&
+JaK#&bDRj'bM+lI6CDE"$%iU6'K`cZaaH+Y(X6'DKmTYCjDHl"J'8p1V&5md"bUb
+5JHmY5V)GMAHZX!2)VF[85)ZJ2KJC0Xi*Y8)q1bmJ@$JlK9KaMD*"[-p*6Naf%XJ
+ZK#blMNF9C9V)k@*TLP-c%*2Gj`ii&PA)&1*8[4hF6&KT4,%Gc8PC19jR0j`(69X
+1+@6p1Hi`4bqM)*!!5-MN95F9MpR@hAMM[P$Mhe((qH-2'P4Ym3IIl-BQUj4#Ek&
+#-a-#6b@%d`jaik@M36c5f#T6dl*kjj!!!+91851&Q5Z,c!b2CYYRJTL-QHfr3*J
+-P$'XTa(BJF[M3'@E15(#!0Q`F*b0Y,9cd#Tl#RQ6)I`S(0p%D[9(51*AqI(4)ci
+mM3mPH#J)3G9PjqQ#&Md&3NkPTD3b6(E@mVG6!h8iQE&l9F9l[ZC&0,1AAZ1k[pG
+c64(FFkU$RF&1SUZLZ&2RC+P8AFkV[9GA[@I'FCQr&HE!a[$S$6D"$4CIBE&E1HL
+%*bF1mU6-84QKLPY8k`aJ@6@Z*)#Z`dM3J"[ZKrAqAPm"4QJ5ff&h4aFYG"!e)"1
+G9R&6L3ja6UTAM*mE-QDJ6,,R*CR@#M,iR%(U!f5r"@5raH$QCh#P,cD2rLH-[Yl
+)Jq&NB'Z6QU3!XKjr0LPZ3eBSN!"'E,d(9AdE@qXK"`,0RF8@9(cm#a6+$K3qZkS
+jFI!VV-#SHbR0q8Pap3M&"FE9"r)cSaZX-["!16NYM-8fi8qpR[3(qr%AD-,5b#%
+KZTlpSUNi`SlQi$)"d+)QpME!bke`8GdH+iH$lUjB'E[TaNV`mXPB$GLKT-+)b8L
+9BAGB'Qr-$Z$i*r&R2rlXiL%2[X@P5iCFHT%[M3TZ*G,bC$1kNh8Xp[B'c6IK$m+
+-$Ql!Cda@cTc`DalV"XeM(`ii6SLQ#f"2Phee'Cb9*%bTaM2-2ieBlXN!i)l%DYL
+0#ZM%4e!32"REJDA#LCD@![B%k&DfHj`EfkV-e*Eh![6-Q[Yq%#lLC6#QVA3aVh+
+a*ch@I@eS4J#RbcK8iDDMI!Q),eH)kdh3iLcJaF(!2IE+j(*53ZA%"!1Sr28p2A5
+3!-aHed(0,"G+5KdJmc24X+&-0-L%LR!Q&)l+Vr8,J4Nf"kXfCrZQD1*AjYZ2$E9
+!$9Q*c"J*&@4!"4P#"F@U3&!iM+T%mjiDajQ#IF10DERZR5'+D,hZ8Q@m)&Xbl,c
+#BFjk)Y9VU,YX+K,GTCf8Br[`Km+T%!r8#dB*aI5+-D9dPaAlk!l,U$[)i1qK9,*
++PfK8CI!GDR66HPi5#l55JAFf,p1m+ke5F4P"8++V244M[9"jX4@&I"cU68Q!pSL
+'V!6I&!LD'b93lSlD4dFr#S'Z9#r-"+&D(m@IPDTI9j2""iV+ld*A!#QE,Y9G8i)
+lMRM&*Vj5(+JQe'U3!&Rq4ch8*4aG%%hVVpNJ@rrMAUa9Z"eb35QUpkGiH#9BVjD
+CBb"LV6S43`J-"JU*LpX'(0M"p1EaqMY+Fi$9F*`cRl%KIDZK`F,U$3-,,A!)#M8
+160Y(!GZJN8$YhYEBHNi-0&N''q[(p[UP6r2hqhi'0KPZ1DZiZ#*0H8r)(@h+qpl
+R*!q-,dLTUB2d%Da9l1"MR,Jp#$0)m9BiE58q(fdP8-#@08PY)i9i,TS94'F**Yl
+Q[`4L)qAUFaUcACaX[KY%UMR-MGqjUDPqT*-KeGANB)NU#4I,,CDRE3ceJZR,Be(
+SldGLEEl`R4DiCGK8CP1A`3RJTkM8)@j`#(HpFR@(FkThDP8,NCV[TT%DNI4JBK1
+q%k!$GLMNj'b')ISfU)%fZ1ZAUKr6pJ2BIT`hKqC$VHHLk23-3pMmah`&ELVJXH2
+6*[jd,NT-l2GLDp3864r#9%C5LPVBQ&!+-cVS$6A3#-@C*E9J)l9JHp$dScl&RA8
+0(0ZK)!R8[L`k"UF6C9DpUDL(M@R+39cd1ha4q5STL)e#2E"3S"aX(2,,,*M)E0E
+bc@1S`#j&34Lk'IGEANj4b-b2q+!5U)Zhe&&+@SKZ[Cdkme$'V`c$FPKeJ)D2TXi
+K+cNPZQCSdhQVP95(5DSMTB"ph`EBjb1`l`mLG2kkQb&-N!#M*NjRHJBS2"iJZ1p
+1*UJk#jS#pr''GF$2U6#99V"rlBi1"[F3ZZlF0lJAmE'6E&(%eZi**`QNP[C"F)k
+(LZ'0[)N"J"Mi3h,V"E$,,N1i1eT*VIJ*hMmZN[Yb%kZULar+pa5A[*3#H0ZC8'+
+3!!XR38*JpGN!*T(Nr*F-%mS-0`9SrFXXV-XV#i[qqXZB`Id($3[(X2$1AflKefU
+9KBUl+F(3D3"'CYm!KLB!$+Xe(F!!&+BdpD,"4dC*RE4a%8,BGRE3((p+KQ2E34M
+1Cr`mX-Cjb5&c*YMISBiKi$efIb)6k1mBeClYFR3MH1e"-[5kNKL00KkEEFi&(&h
+mH[HrkDq@G8`rDJ31Gl+lGRDqmGL#$0lQMYjiE&S',39@Q%J%S)(%"#Y-U!NC2-A
+UP!CIHJ!&AkiS+J`9SmC*fCHVBriA-)aBKY8`(9UV(&QL(&LR(&L(!hHUHk'`bP'
+TZ(i8XdGd%9+9d9G&epAGbrGBS&UhJJ@d82T%JqS$`c$($`@h@eE*k!Qdf3e'"p"
+k,+!d'F+K)ZK40TVdphYNG#e[%&ZL"QA+PUU`TGhX2YSiX2!X*NQ3!)e$4fa-8H&
+4KH"#,BH(ELfbLlB@T+hCU$%4''!5AL9)L`fL0GYZ&r,(C5kiqr8KiJ[eGq5dmQj
+(eqlA)El3iHX*U!,Lij3k[plpZ[kU#H)VK1jU$'N35!)"4[B56!)"4QapIL0q+Jc
+fH5Hfj4TmP'%aT8SlPH+0LdT-9C!!af!+9H&&,959+&9PjG"#VJK'EmUBri52$6Z
+*2Q"AalLbFkMHKK2Bb!`f%QmmJBdX#P%)mLN'0F%#Urm'Zrh`SUIrlh'CmIG0UGB
+dBlbj%#E$Z6NEGR3EmFEZKGhm!mH!%JEL6L8jrF*`ZAU02b3U&%ShPb%9%Sk&%94
+R9@+ValM*,Qd945CI&m8KYUS[jJfll3+D9ecURPDIJj0%QcZ``3)'3B2CF!2HV8L
+[a6P9TPE`!'(C1)0aFaD%2G%I`k%-Nb!Q38`#Q'LBK$%*B2,QMpQ&$!dT-0R)3#'
+'DK'A+KmDST($ZP9*8DA3A%!$8k2Pl'2cbfji*U#DiBCPI)bKRfliR#Zkk41J2@-
+6$`EPLaFBm)2"BYY*Gfb$CA$S*QXDR)6'!dd663`B'IQ-bfhqd(BAVJ%QJee9B"i
+,4RlpjjKCGVU3!+$fabTeq!2ZGHG&NU(J9aIC896Z*#L5!FLE,Kl@Ud9*'T0lm)Z
+G2-L'HrY4Qa('`rAZe$-fN!!QN!#[EIc)&4kJ,p8"%35Q9m!4Y&P2'&C[jX0mGPD
+"-!f%F%K4!f$&F&IPkEI6ia"$9F&al%9j'BcG(AGNMX(k@Zpi8HUlllUc'*!!$q'
+)Gl`2#9'qJE-JAKY"mF,SRXNE$L4V,h0$$!cjKF2@MaUTY-B9G9aBUd4$V)QldNK
+aJ@,)[a0S@,2f3G-Ilf,`ELl!`d)G2SNUZjK0104C@!*lRr3p"c@Cp(f"P'D9m`8
+3I%$T4Rc!mK1,``)fVFTND)G"QFU(1Gd)38r1Ba#kYiAl6cB`EMYXSDfk1!4[kbc
+N2m($-SA`$mHYpc2-i"%hRd2#Fm+"#aVm#3S0D3YYX#UL+3!lCEk`#KXIFqCj##i
+Flp#2jXekY(lmd,EY9)8*X$BT!IXQ0rHG6QZb@+P$eqM#F6"%c'#cQ`P5"3L%*5S
+%),RkB`%NqhUBd0+V-DTX-ekZ&5mCQJZR0B3F(15+3DAdih&M249("60`6kRNiME
+-M%AYQH5,YLK()ePF2DjFpVKb@IdP%K[91HAPqj1dRF4,0%5S0T@A-qK8%-3[qM)
+A%d"Ra69hXCZlfNCfrc,a@!ZPR8-X)(3AL"D$!pC*lE1FP!i6i*K`948*i[6+*)V
+)ehFkV9$kqNiR8X6l,'*Db*8F5bcNDKQ*@kj)R,IIFUY`8GNfKP(EZ0GeHV#JNCC
+Ld$L-*U(-%+E8CS*pA$2j$r,51J-3Ki0GL1$cc,ldRGBE4jL,KM!jALbB542-C#r
+-icP@*hj@Nkc82PCHVA)lrmTE'$H@qe,I2(eR4G5BZcMq,K,SR&U3!2)*SppBaQ`
+[%VTJYAUHS$4cf,LHkHI8-`mLe2-m*BiV4C+HA@(H@i-"(F'!qQB3L03Dcr,r[f,
+AN!$hrP`Cm[%p[h&a8ZS$3,jhJ@pRAX0K9@,33elid6LUVFhNL"8%@lQjT!p$&"T
+*R`#DReGlMD430Ga"'MURcR-b6aUIBpF-[hF+,KBTU"'`F2L%*M@L!G%N'VHi@hM
+#b6*b[d5kK4dD)*EEIC`DiiVH4')-M$F5qCTaGIfR,$UPZMQNhB*FH-+p`2Lmkl5
+Hq",'8#3rZ4*j"hpZZH8RqFLIcR`B@IXY",Y$#*C5hU8NAMJLi+D)"QqU"h[[4hV
+k)HlJ@bldRGk(f-YBl%b+X0dM"Erp392i'MIU2N$`Me,$pNIrbTXC0e,l%RkN`qJ
+PiDmPNCmPJ@-!6ZY6*2!Ud39rY8)4pUaa94qUdE[9k2db""jC3`*(XIhU#`Q"mke
+2&rL[`L6`'S$Q0HlmAhQp[Cq1`e%JI1#'i#,1jYJl!rF#!+'pF#,SB9&9(D,"4FZ
+i`E9L'&,Zj6$BQ8HRZUZVI$495CJ),irm(K@#@9N0FP!SmrCH14ajQd`'Yb"H+@`
+Q(rRB-(NLpm,9QP*)p2QYQ8qF[8afi4,am@35*+X5beXRha3hlZ,[fR!$N@eZid4
+b3F+XF,%Iel*Cq8D4H$X9D8AA!X1@(UMq2cJPIH1dD&B)Q(*RRc"#N!!dBiU-X%U
+)i-IeqcC#8NJ#&P[ZL6[lLCJj$*1EJ@cmJdFVHNM02QJ+cB+3!+E!"MJiHICLTp%
+V#!`h*1,"2cFr!D2VArmT*kUi%6`ER(kK[V3,-31%Jq+&ARD54hA%KGE5KHjJ-0P
++lUki%#SDq6dZj$ML3MCdk(j+DSH-8l)(3`RhmQ8c,h0C"P-P$G*#lR#8S!#aIdL
+&bJNd`!!%XrBa-fZ$!ibf*)EBBJBUY&)-CHX,%@Zd5`a*bcrSJPD)Y)iB+BBIkp`
+jiF54kAGIqU&0(4i-kI(!&@bJ'`--8%$26*TK(KDX9+h#5Ye1X&%e3pQSZa%eKD'
+*ZcdQXh@1$M)%YE&MGVmqRFlcS+l%0$@!DCT6Q+D536B*(@h`TX33$&L(`L`e**L
+PfRda5e`B45J-,F1X%ES"$h2E)j3i2QpJ&P2jV0(RG5)8Mp9"4@i#l!(c5HYXKe,
+Geqjpm9m"d(Fc+I1%e45DAkESCd)0&A(bUaA$%-K69JM3",JQi"8,(I%-AMGN0B@
+0UKTNSp$i-dQ$+N`4Xh16@,6UIE"SeFkVl%))4UhDdd`0&X0`[i9ULN`)jDkcBZK
+k6Q+rH"Y*CX$%4J`DDYR)#BFe$*RGlV'QfT%&IJJTiC3RKH1%LpbSkl4##&!8GLF
+j9D"`BP@iEHBZQ9E8$#5"KBqZC$88A+$"E*1HBLT++2CeXk)J25U6kj4&+8+,8S4
+q+N+0Lp!rm%,&R+D`JP!ZE3f&2!I04c#$eN5"T6'%FMmcK#e$KLcJF)Ll0JDN290
+a%9Ym(Gd8fe)#VCYYPc0jea3'%dka-l,lMppbV,VSMJ&SK8Tqk6Z,&mFCm1jm12$
+5UrS(h`L"86c8LXQ$44FXh"Nc3Vcja'0c8#VqbIQA,[-R$#8HI5Q'6jmY5+(UkD%
+iQLa!G&q[BR!0DSr98'aChU-p((VTeDDEQ!4HZT9fJ$DB-YCGr2a[B*!!h6#@MZ,
+2(b9B0C-(HZ!([S(KA'2VF*(R#aG"j0LGCadBRHT[BTKDLjbXQ,jllGl-*hMS12k
+FGm[k6c'i,EQ48(,K,0*5af2[!(5j0F-$0RiEc[+VS$)Z)h9e(JQZjCijkc`'E,R
+Up3-+4i1%p@2m'"JDbpS8%MPS%2HE5mmYa0E$LE9eqYlpSYJD(d2d0$5b"efG"l0
+5RBR(c-4M)Ai-6JPd)3`aP$M8FiJ@Jm#BPpe2#kD#YVQ$(TjMPpYB#alI!A9QS&S
+J,K'BaT`FIpF$GYNFdG@Y'#CA9lGi051'%XD#Xk6-3da1@-%QKJVQPql%5b5fRCp
+2,1UM&f&"D!jBYNTrr8YflY25&KTT#m-(,)`1@CKf39Q5YM"ej%+jGmM#P$24*)j
+HEaVbfN`lpR,DXIB$MVdfC+&pm&JHZRhjHZ2cr#*+A9$rC'6`)6(i#*1c!P,3m2Q
+F,m+JZ0Pi+Kq"Ni2,lfMId$&GZk&M9M15kB12m-$3B!hI*QDB`B0QBK8E%CMNL3A
+m8"3h$3@Y`!RKaEXaCGKL-A`U3I1alr-!XT&Yha4-"eJF8qRdLaFIeN3Aj`(&Q9!
+!G!MGMH(aHT!!J4)D2J4$`3m[Lf3&XCMB+NJ)$F4l5TSMD2`)CUM+qqGpIb6F@,J
+c+!S8+R1L$#S65LGikE8K,#KIN!#h,bk+,VV)V01k-h!ja5456ZbHH0AXcK)M1-X
+(*FhA[')BYjFl5Zi5l1HkFhd+)aUm0(LFr0MY)X,U!VZA)ZEBH'e)B(6!J@I&!+*
+JPe"KEcm#MTYVac#XI$qDFN*jX6-X(k5*VG@ql0EQ4"LdMYKl!NGFASXl6e[4%+J
+X*aFH9$pD`i%Y4(0V*UrQ1$"K*VTbPeiKH9N8Nh`I4m9@X1,%`c`m-45PQ4kd#V0
+cQfJ+8dNZX*8&8qdKST*'3$DreAHk[jh)6EY[GhS3`dC)M'Dr%i2%3eAlH4KiXD%
+[P4!-)Er&`jmQ(RiLr@&Q8%SAbD8CPdpeL@#ci1+KhrpTqMHc$eG)Lr,2%3!%%b4
+Te89fQBVF%q`$$H,0UG6NU)!)mBmE80K4pH#h6h6P,KUKedScid)-[05M$lJd4Z%
+0$$0P#N2Q!ldQ$l+"i6DQM&#kmDBb)kF,CiZF2hcA5&f`h+fdG@6bF"hAh(dmV2B
+&Lkh$QFm!pQdlqdPH0&'L+Ih6)$3e15bPUCf!D*jD-EA6Y!96+dd06&YSkX68S'N
+'8bG0FjKQD*V&0%I6(CKQDEU)k3kD9Q#k50-mTK8d(F!d6p0a6!GS1SAT1%eGQ%l
+4Y"G6&dhl-1fPk3LFclbC!$8ANRqMC3)$(Cm-5"0rl2KMaCm@r$'-`"$bR#3aqST
+r)m6Sr,c#b0pQSm!r9R"C9cHk%UfqPKM5L*Z*F(Fj1,PF0imJ*jP5"E!*B-Ve&c"
+qV6EpK8l@9ekE[NYNI5hqV''bcU'PTaLhEE`KG`6$`rhfLG@m#Ak&lYfP,rlA,pl
+rcB',IE1mT@TZm0H'lKd&b9dE#j&V3)S'a$A3e+2@rHCDP3QYE`iI$54#GqaVQ6Z
+flf93jN'%kKe)F48jmm+9rddh'5K$*'eH4l(cZrmCCa"m8-(@dQ0G)`399&[i%Y@
+hd56ZG@BZUKZ@D"M-kLkqA$8RJj[rrPlelGJ)AIjpISd`IJ'(eSY$eii*9T'(`BI
+6HS*!N!##3G*F*a4+XGdk*jfp5J2UZY%i"M4Dl'2RcdUG`A4CL(K-VAF1K[JJ4a!
+@+bX`PjHKe"P#eE#CN8*JUL,,Sj[Fh(E'Hd@S@#K%K5@29)MKIRa4a`hP-k[*T`B
+r)lf40(SG#)Ri%S2-j)UERMKG-*9'j!k+3R(Fif+U[NE-PDcHcDi%3e2%&keMBXM
+QZ"Jf")RFjX2A-rCY(B8VV#k0J4`2"pD-9!Sl+f1)'NTRhH2!`p(0Mc4e6CFeGFf
+b1h+2dDhkM&iHi'GCKfpa9(-EceSi0HJf-@6GP"(8LdVCCL@6$"65#DP4#ZU-Z'J
+"c0FRak6f&9`'$9Qj38Z5!5J+FhU-,Li'JpbHdp--&mPTPE[QY8Zca@N+PS&#10$
+#30jKXVMH,k#f!KJ)Z%Kd6'XE1Zk,"pcd`&"'([m-b+3ba,L@8a,PiiNM6')5(0Y
+qKj'$2T5cMHe`!2BE`F1GaCID6ZV993k+Jl@k)QGeX$&861CITkZ"d!*pq&Xq(!6
+0VK-dKY4JKLU#mYZC2!I`&1bj4YNYU4+*,j-$6f-H%$a%a*!!iFb9leq4BIa"8ZE
+l+$BiJi3p'A+6BX-b-EK6"BGTR0aCYjPKRBcm2JEZKkPeq"l3SJNX5Kk`L1&GA[4
+SfU)*,1ST-Tpj&b5%e+#M(S@aXIm'-aDa8aI&J*'SF1"M#M2r9P3hd$K#T2kP2k3
+2Rb3'*p8&q8p$"9QL#c*kLk%#%Q5*)XK3ZL#MeqL")`3CICm%#G!T1LX%'Ce+('&
+2#*)6@LPGN!![GKDE4`SbfNb#61NJS[E@8%&UYa+#,&'J'*(5UNN)-rbL%+CjJ$$
+Y---'*j[!91&CrTp-,82!E`U*fai)ajc*ibG1JV,2`3!mSd-&p8rArZBh,+M+dM4
+"f5%Sr%0GY+bCMmA5q$k@NPPmU5aYD6-Ye@LT99PU2f!Tb#%YI5YYUC@AbVfdY%G
+CfVb2TIGTU6YYD3mYED#P,FT5kj%'LD9LZh0T5eZ`p!)Y,(hjKIq0,VQj1QeK+4D
+@!Nj[&Ir%5-+B`lSa9q['c#Ed4,Sa4m[)Q%Z''V-BS+4!F*d46!cc++#pEDSKc!'
+3!%l29XXhfX'@IJCEi#!S*"iC1[M)a88'rClS*+KPP&RM*fiVB9),Q0fSTaQ!%!p
+!&6DA3C-4Y!k#QqG2-`L6RhK!B&H,fa""LSF&%k5J3k2MV(d8a-Jca1*AmMqQ*HX
+"lrTG9mILjcQFQeI#ZDYSaRjMZREC$GrlF%630Yc`Z8D$[Ge3m)'Li*jkPf9)KbP
+bpRi@#Tk(6'3R"GI9h%Be2R0PV[dV9pKpN!#C66UbHhSr(ZS8$mdK'(0FT[5M*JC
+2SFfY34J6pTLFBRSmMX"JJ$rSS3J"1Q&kLA39KT1VB#,K'H@ZCEMJC'a2X1ck*c2
+p%hkQ"#[rH!U&S5Q`EC81*2!JBhJCSM!C3#!c*iq(&#&)qDFN"LRI!C!!4Bjj-1$
+E'6LZ8'&E(M69CQLTR4Iqb`!R3m6PDNGaI0-r(k,A+Ihc2jI6j`i4P0-L#hfkNrC
+T"XId$UPDlj!!DNda#-e&6-1GLH4J8[a$6)"U**cYrH[r0iF)0(`U,rSFTGc#4P`
+-CFC`6"Um%#6BfYU-KhL`9`$"BrKA*6K&Kd2AM`i1b-B2&RrGGV+ijl&k(M!RHT,
+p9kkC@ekbB&KNDI)(0#q'kb25NX*P+68)M2-rIX309r$a#-JmDJR'T#`fqCmlfGG
+VYT,LRJ0ISbY+rZI`Z0PI,-C'mZ4R104R)$5M,%E6*1R9dVB'm8[V%FI`-+NTdA8
+"$5""4QiQ*KU*S!%``486-1GfT*Zim@2*B'2Jp''i!*!$)5C"4%05!`"-j!p9#cd
+%***Y%[q$!bpike`*FDLPqT1Fji8J4c1TbeJf!K)p,r5JKl9XPSdSh*dDRZm!SBc
+VC-k!PYTX&ih0C$*Z0ZYN%f1$5p5`p$DEXCNdNde0PKKMVE81ip#8*'UY!M)q(rK
+m[rrrlqjhF+"TjRhIICm!'kh(*-J&)!J#)$,EN!![bmV`4rA2*8&+Reej-&fUmMQ
+195c45H20UeMLX!dmND)5S$39MN4$RkrETZc93-jjMZDp81E8-Zpq1d5*&5mlE&q
+V!!Kd8`%r(f,!lTbUPZC($i2p[G'DR1$V`imH(YaGmH&JTqSHmb&cMhVrDR"hf9`
+k@1#YX'@UbSN&)qJ`9SF(5!M%NkchlKq(F05ZqPjdN!$Sk+UhB1pU""X3h)b!Eh"
+ECCjhb0'm[B8&l`XH2GcM$pIJaj6TG6C[5BYQHK283ilQeP'69r-9MN#3!)YZb1#
+@`T(A2pU5PYR(JbEd3@Cp8-aK1l`BJrSa5&pdLf(4AX1L"9[5qQDTAQ+,IF'@0)I
+Y1c(1$$8iHJ'ElQ'@[B#Ia5M@fbGJSL(akf,mR),)q`AlFL46(,E*pbL"RlN1frG
+T%[a8f(#`'4XraFC+hVJC2rFiE+-H5Y!NY+cfffN)KDF[UCKMK4c`Xi@me@B+L5Q
+c%i+h*XV+a2BpSN#6[b`+'0Dl8K6S3F1LJ'GHp)J#A@+,+0$e2J36AXY%A`6JhP8
+ajm#%mQGHim*FBQjidX@BV9HRN!#Jik'4F2FY--*Hkhkicl%LHk32`6L!4S*1G$T
+PBHC9QUcX'M,d05chr!%&3+a1fCaCJf"P#M'M%k6Blc`ChH9-3mG(EP9,'hMjADl
+PrqAjS4(jF!DY6P%!k0S,aB8)V1m@!B$q0jTZR3`5qKJ9f3djrR4LDYE@VB'%M%"
+1+YUXdkIrN!!B52VF99EUh%0Bk$[IALh&cH%$pR*(FeH0*Gd8eqB$r%BTL#-&X!c
+DbkQ`GaZHdHe%BjMVSi0@VA"%FeUZQkklK()H-XDa8)l%Q!adqa`fGFF33"B!hG`
+e#G"[lTSb+ClHdZ0[m'0D6iE&@p!e#T2+-piK%VXMH(@)`9`jA'!1!I)H6*Si3%p
+(pJM'Y(i%bX%D(cdL-6AT8PjBbmM03r+,M06FT+eDR[D-9R!`iAVLT91"#)cKJrc
+Fm+@-ki'NT0`Nr5L3!"G12D5I5AD4#&JAqKTB0f@#+8+E(qlZH6AUB6BHX-0`5``
+D'LQ&AChk**BjD"VQUK!K(KKeaX$bN!!"@8!-Er+Ir8L&-X[Pp'"([3jb9P-f%J&
+S5TJZL'c%iUJP(3rh3,f+Q8M`%k0Pc(&l$%-m'*!!5FXJ+eJ3k,"A%ITN%Me%Jc0
+hSA0+a3Zd+!K5a3L"RZ%J*)4%RaEANVd&M6r3Mldj!`V*#3+@c&%Mq"JIVT1-"HJ
+&@e+m"8Xh)T(XD&lD++GZpG)6-1LId%JFSS&NbKeFppM,dqQIJDdUK$mHN!$JLTX
+S1NQkDCJP[5McAB!kkKBHQ`P0dL@Ae!2*-b#q"V"VBd$FJm!L#BM"DKFJbJeeD54
++*)-PM!AG!-FTNjK+!R8dQc14,HKc+V$BBAm,`A)RN!"(Z-mFrrEMd4V0#D59aKN
+$@FmFef+Fp@+4XjkpQUHSXk32M@3k2rKjY0FHkRZ4"eqq6BLXLTI,`H#,Q90pam9
+"*K,dV&H)1&kCmG*dmY&JcDQE&)iF6%4'N!$CD1[@Je#)`hPD6QkLP[Y&UTBEeC)
+1jS8$Cjb*X1YkE[3klp)c88j3*aGPTfNbQAbTT5kV"X8BA![F@DcX#6,X%j%)j-$
+N4b#L2-pSK#i`D3hLa*j5!(Xpf$3Mb"B4X,d&MleN"GB6@V`2(Ek5!CLCTTXdZ`"
+3,13Q*`*qe(ih-"&5@e`%UHdd!"-YE#1`L(EI*Q#XK['E$RIbaACaB3j2H&8@6+S
+""-bU@ChFN!!@f!Ebd[%X[XB(VQcS9I)L@KSIaQJa#,NM%&SL1ieT0k0Tm3"`*H&
+4+kSr$04CpURE@$2$'DkEQB4XiXT`PIh-T*@Z$&Gja-!NhP#A6%UZG(8!N@e,E9-
+HRGf8iBldbL*Rc%r&TK[SX(mkj#C'j6J[G+H,'*A(LLadSc&Y61Q%!4$YiX#'pqM
+"+QJf!Tr*Ub29QIRfq6V`Q5A`65&`Mlf'TlUV8'm#G4"FcN8ADR8$))1Q'm%kdfK
+$H"Q!Ba5J-Gm+c@j%X&SqHlTUeBfkSk5QbUN'p``S'PLSj#EpJ!'M$m#b`cAC)3B
+@ddeG#9J3,fXLP51mM&d`)U)Mbdq"[0lKirP&-dKQcMQI99lN@@Z+AEDmk'Aam*f
+Z`#%Gb'p#1128Zb2@i*d8b-NrQ"%SLXHqD83@H3&M0RTiLJBD`R64)2k`K!EaE@l
+`)*T`f'B@$UjEaBhMCeie5LMd0)6b([5R$)A$HQ&B+5F9d&R34+*A*"`L%4F*LdL
+B[3NK-,V9,"BC+hB`DD8BkBe`(cd,VPUM8)BX'$k*K&NNaN4LNK*pB@UQCUj5Fdh
+08F3Q'aheANe()3NUjk8'Id&0cQL$2pI,M82chLlC+9+E1)2$cD!p"eNqAcE2h*!
+!*`RNfbJc[&#h-E5V$3YIKF1G&Vk3!215MDHfbDNl$&-hm05YQ2ULQ,T9JVYlkKD
+VU6'dDa&0h6"ADEN(LM2#Q6`dNUZG#Rkpf94VVb@'JPd@Hj9)QXfe'p&&d8*!fQa
+-[C5AFM$r8TD@&rLHGL3r0q0HV359eNV0elF&%LiPTK*@0q`YI5XkiH[C18ki0L#
+V2dKUU8@UT6(lkqS!NFkbFfJ%MPh2i1!CG&R@Jb%2QPpA@NV`JHmL%lqZYU*l0B6
+19DpMaCL#)[8-R(Y8cUhTMEqi%`V[Gj@$P5@!@9NCZGa8S+P[+kF%GC)A[#qk3R6
+FLk(,qKE58JlEfFDTUX)4)+'lE!Z2J&J9qec%#M)B9)#iHkp*BP8!$#UkA-3+EMB
+5LiEZfd2%NT-IIih90*-S&TV8k%bCFLEMm*M@(9qShD[-AdVcUClNk*l-F6(XIC1
+#+%("L88C"r'fmXm4qRcIJ1UH@eE@FaNEflirAUE%9@V`E$R*)PjBPFf)Ka%l1l5
+Dl"(TbJ9(S@"P9DLfCVR[THVjXAqckimmAbTrUr[qLhmkqV0P2qRprYAEfZRTcba
+R6FI0Edbp2VCJaMljYIIrjYe[(2M[!rqbp6X6rrHC@m1$I5I(2cpm`R[&q9(rlad
+M3lq)peci`l(I&[klKrj,pRplmRVQ`5-C@B&Sq0#PDrIQ&q6Pj[aa8Q,U&bRI5rL
+68rrer*qrmQIqSmmQTpfiqDhd(erqk6[rm8Ir[Ql&iPFAr[#eIhMlAprmjdAriBA
+rp2arA[+2crfIPeqFpI(FlhlD21IrYhbbCFI1$aVqArfhEIrV[Irai9r[rm%GIhR
+2lqlkUc[rjpdrAr2S%rqlmE&9MkpmH[@[0rjUdfmfrh,$hcIplIUrk2Mb)er[I1$
+"TpDZfrh929rCYlHV[@elkcpYQcGlD8@CK0rF&'$-,r+dV#qi`jGP&1#UF`+fbhP
+N5SVp2-iTp5j!ZTBcUHeq+0JTLXbS3FA)`fCHT)-Re$MEhP6c0@8CUhAH)0#&#@,
+MXP##'ZhYZANE$E3!GiK!iR1"6+G8[2mDCMVX2*Sp%Sfa53(CjJdS*6-)DXXjl(3
+HMAS@R'#8dN8$TVB1M8#!9eX2pm18B'CH2"QZ1Ik#k#Qe$!YTY6dhi!Tal$iX1$%
+dBU)&U``,RR3Yq-EG3$BmEA4ZLR,HM+Ub-B()F19p5d3"c$MqXP3PG5(U[1H"R!f
+UqVa'Z!NQf"FmEL)"&!ikF0!&p0'YGfTCY5M(d6)D6YRmV%D6ST0,D2)!MZXGcHf
+99%$`'3cY0@cfJ&3)dFEEbiC'X'dV$VCLfdjNPcB-pp'"#qf-UU+(bqJ`C(fBp&,
+M841FC$bKT-'@Sf4iL&iN)L3PNVZRGD-cEiN"hF`KG$0[MF1fHlC%0r2@i1G6!lU
+CBd3h224C4MISSVQ&6al(LLZljh9F@4[bQIV4q5Jd2'r8XD,(rp[piqVqBI8ZZmL
+k0RBl9N#F3UiFaQ0X-C1B)Q3ia#@aV-9kBLI8f["#!R!%iRMHISGYcf*+%'!F&f)
+f2Pj%3TIbV84B-3%@"b-eDdDD&*1pZ5Z"1m)cB@,BmiDQp%0Qf(X1flSeJQ%31Xj
+lcY#8hQh&-"SDCiBa5(afAJ5)i%+%5#$609X8!(,PGiN#`,&m'BPr!E,FN!$QjDC
+U"r1d`D6%30kP$%e((B%X$5TGi'$"Z4$)bIK*,H03)12Ha#m+Y)*,L38(8c-1IBG
+dbabSPeN(8`pUPa)edI#H%aQaZ[HD82IqX34eVaj)Djm3[V$5jhX"kY9P8X#Qdde
+%$P,[6XS%9$DI%kD8SC'SPm9[,XBIdT@MY4Hm"FLi8MP#"Ur@"10[&PH1RYSN!G@
+Jm2R%-YhFKIGqGJMHSM%U&)j)9p&6JD4F,6F*UNViB1UPP)"fj)YS0*!!a&S(1+2
+eF6Q3!(8P$bcVBDiECADP-Zh+L*'$9LURQCKL53H3!"!$0DPB,Rp6+*E9N44,GYj
+Na4+)dl-q(5LbZm&rC"6-RP)a19AAUV2Ak)T%%$-'d0#k0,[5F-`#&3Ml"2"l#2K
+cbKMXBq(3VqHUEVh,lAUU%mI4FRE5mP1"6"SjCCRG25KJdKM3H-cMN@kYaSHk&@"
+2JM*--Q'B*!iPYYZ@R'A5UZTZf%R%%Z1ZPY86cHSeE1(ZVV`Q`!VAp1+jXAp!D'-
+b69c4SB8)fHVUT`$9j`5SIP)#U$BaU)EX95a@F`0X6GVJZXGh#B"P-FrTF31iTN8
+!eQXkX$i`baTBPkF+B,eF(&JIQ)N-V%BJaF,G1V#Dla1iMR!1M`#[$`0J(pp9('"
+Vr@F'X!"&$i0V@YLXKHU5l84QRc@T!EJH9)e`Jkm9-$*KbZB3-q$U(h)Kp!MJkQ0
+3HaC2d3%8)QX#f+)2)`!emm-b00l@,a#AeG-)Y$,0C#VK3@BSmX[F!kh!XIM$!Aa
+E""$qG@3JR!Ic)43E1-1DK%M1P(C+@6lUJaXSUM&PDlA`@)-1"#&4Ddi3iU&@DU!
+!3-hYZeMpVLB$p2VdErXcDf65T-JGKEYdcHdq(K6kYR3UE9h[Gdd8V8FeP0NU9(J
+jIL0fJaBTZ-`0+e391**q0$6LFSb9!Y$6)(BSj'BjC`f,1465+T[5i8`EZr)$Fq@
+1Y-Sd3JEQbIl3*fQRad-Kmfhh&P58-3Y"+Q8jbeJSj%`,6`qZ95(2cklXRklmj'M
+P8GT18dj2pUSGIS[U5BZZIk12*M*IYbDhA3S`EE(Si)-3di'el4#Q2jjJ5DFr-**
+Dd$AYlTZ#S-&*,,GF,p,a2ead!p6Vd6!$d4pe&SldKFANYLUI"2VB-`,S)i[V+qa
+9*'B#!FSNf(S@!Fd'G63,a&G0cXF5CCVFc%%M'![h8P-B[QLh3NFHGKZJUJd'X0S
+[`1V4%X"US#LEjJqlfE4XF0h+'VVfbTScBP0rd3h-TPfXVSQXD'5@Ve!bDhjjDFa
+5VLXabpaAcMGNI-TJ5eJNai9fMB@1FZ#iBD#4C@-'9MdK@2@E%PK9Cf"9Y35KPHQ
+@p,0XY0'FK5-4'(*9$T+A9([SNYNMNDpB$'A&$#K,2,VB%%paT-E2)T*Y1S0REG+
+I9E1kY'IG,VV`0r%dDEakZUCNia@V!ScDX#%faHS!YSd"YCP6U*UQCZ`5QU'1N!$
+T)&apIpU!LLFhh!JdQDY)U"3c0ZZE"8NI+)'N68@!(kSk(SU-VMQ(5Q!GKCPec9h
+jjb)S'i*@R,kN3LU%cNT)HbPF'9rKZV+(Vq`YU,m-dZ@C@+6GINJqYIe)JhpS*'Y
+8QVRDXmAa-3XUXV&LNB$+Ebl"9ARILhh(FFL'X,)%0V&8mpBKhQT6dd@RSJD,"-`
+aRq&4!a%H08k2#Hc5UZ*qZcakKSAlP(cIiL86(``$'SRqfmI3S596HcNl)HKNBaF
+%N690P[6#%CHTY'`pRPSP34MS%!,hpKHiLYdm%SQh,qEZF5`F69%`2,6*3h'*jq)
+!JqJ%4!N$E#UNi$XLH00pK%'SX0AFIXUT5!8*Ki4)Icdl0e5&BqkKUGR#MB'ImEE
+Qc)C#C3#%8XcMl5eRBKjAp*!!Z5l!NKFh#I"VGl,ab-`CL`qQUaD6L`kECGVI+j5
+'3PZ`Re@0-GHQ,-eU5(0l!aN5*K3MRVH*JFD,N!#KQ"TB,4E1BD+0Qa@b'Fa[F*L
+SiU2h*D#&jF5P%$91jMTfl%$c(#03fr!+&AQD1`aS25EBdHqUk#8!6PD1ifS$(kb
+*!QeP1NRGEAm2bhkdBShQ@qp[5UIrDp-EdcXSic0`8lGG6E'E82q+ZiX2ddkZQ%8
+Sd'L5Yd,rcHfE$*9j@04M&XJ(eBJ,qH*VUC,lUKYEX1J4Vf4aLBrbH"1cG3H12Zk
+)N!"*X*B2bRm$4`KZRT@UN!!%QZjrp8lY*F-d2ql`ch$fE4m`$8(C$'fm`F8RR(@
+F!55)2+&jS&DL-Z#B-YA8hmb!ZE3qqFJfQ)+VH-"+!Ij0F(5G,DI65+QEcb)QHDd
+"$2+-,IrbMklX2D5m&dL43`9j$Nd2$AlP%*ZZXK@kK#&[BNc4&5VZN!$,deCT'(-
+[G5F,Aq4Pa55Bi)r2`d94,81&j*!!H(Lbl(MT!MD*)P(P+$C0SNSr+Z+[+%c[m8G
+E5b$A)`E8rU"!lGXMSrECURMMXrSFMFqSZr%KK41ETU&`AU9-%4kpr6ijjKJ%NJ$
+jl*&!Tkb+@8a"+GM5+KqhSlD%ahPdT`p8TiSP36$RI$D-CR[eeFD@AK8ALQheee6
+3TeUH$6`5@CAGRMUilMGTD)VQXT10"cqqNKXY(XV0rIBMT69DH(D0H2jE*6ardN!
+DC2DpqES#i$d8`X&f0+#EPmPZDXK$"5L#2R(JLfK5fdV$cKU'Sq!M&6(N)h5brE"
+XEY[hPDiLZP598-a&V0YZC@p[LR[T+ZV1bBkCiHN`AA&'+cH+T2BQ5H4TB&'hB0(
+T%PL83mSp,R0"#JE3Q&6S!J#j(*S*fbrEA-XcH,I+"G@&L%akPbDdT$1DI9!aBha
++&%08r&9ekHb48m(emaS,fNB,4fiT&)#8pmfG[1d1+"'!ZApIbk5lbDLBT6G9#)C
+)d8E9)b8,T'L6kH[N!`S9K0&P88YQqX*X9#$ReCdj`EPa914(%JT+AX@fR-Ujm31
+h`rdSc$))4V*edpE'1M#ij9D9-'l"E9,lN!$G!@MBXH,QVBhP*"bj091a69jKZB1
+lhVYSLplNC4c-)qPSENiJ6iYHbQIaaf%NB!,(fAd3G2cqB%Ca`8I&fpmdDfaZeYK
+bDLM*MVNfqm3Yr*0rk+)j)6I$hM3`l$eQ@)2$pZY-0m-DT-[Pl4qj'@DcBKL'Vej
+2$*0,-8&D$!4jfl#!M4IBJJ@8Hi%Yq&Q%"@EF#c4B,B$KUjm9"'Q4"+RpN!!)X[5
+9#!6*J-JT09#-*2,di4#PC()rr-R*b'BJ1#iBHS%&*bPk&JTp5&N)fHIY!lI&8Ch
+c*)Ed5h1pQm%1A4$ip2-kJeNB!lI5lcrKC["3F@(Jdp2%B)(bBm9CQTqE5"FQLAf
+aZe2SB9jpVAje9)RaP-f'Q#i'NDZR!HT&2PGXFL+CQk#cSQSR)a-bkV$D[qm&J&N
+mGV,X9mb-Y3CQa(8AK*8,hF`J%pjZZ%cIi@E'iH*Z##X[%M0)Q28B(N)*R5'JG*C
+d@A(aJ!iI*JXf'a4f$`YLP'Tb*Z22*QhLcr$jK$TLL$r$J3GZ-&c`([f#MqrN#dk
+8(49AI0"KqdP6j1c%'pkP+a*cGEC@2PQ-VFr*c-ZZj[U#Xi4MRZhaF6G$k3-d69J
+ZbEhFQeE,BILUZi`-C6'V'm6JDLaKLZA(NUAI5lU8'RJB,18*"*hqEUBN-Efl8E8
+&+pRpX,J)rV#Hp9DCV%A`ApdR42$$aE2GBjmbDq5R-Q*'YaAVI(CZej@LJR1S%Y0
+#TE#AS&,8ZGAP19*T++)Jl#TCZGAiJamYGFGJCM@S-4030XS*Q)6LFG'i!4pLUG3
+2*XRm[CqApaXQQ23@c%iJ-E#FV1c*)I&`(!a6%!eG`BjqK-B0S5'j$8+mJKhC*#)
+h"$0&X"+&I!4M3bj@6!T@21qk0Nq6%#54B+@Z&UXF+%TY*,jK9lk)bM!0%!+jP(-
+S`cQ#-(pH!Q&DV"6c8Hi%bDklVECTF0d[Xi8J6JT-2C%I4-1%ND6V(!pk46cSTb8
+mD,plFR*VmT&$'a,SVJQc50a`A!Q4V-`U[3J0N!$EJ!L&h+%"K+iD3Mjhk!*#)82
+)i`lPS,2i)*04KM4hk"f%'JfKBAGS&N)0NU!FmVY$U%a6XBK"1)K2e68*deS(*mb
+UNa*J`2-4@)Y+-d*"[SF8j)V,SML,LqG&m4dZjSPL$KFc4I%#&q1L1-$&F9(XjH)
+"&R53!&Pa6+MINa&&rIZ%d@P+G8C$D,Jlh1,`84+(adM%Ahd%,VL6hkQXFFa$953
+0p6X,e4&eAVfQ@Y3De4QX9"Gcb[#*VkC-m1NXIC`+Rk(M+99`J)9#6j!!feK`M)1
+9lQ!["lG`d*-6&&28S$RTG6hLJTm#l(Df&U%"`r0FS98)AA#&KPbKHS4bA+%N6q0
+4Gh!4JZmBJTSKk%G`PL%il!jQ)A52+e4$,0)A,)l3Kh@%[ZDB`6A5i"4(#SBe3[r
+jCN,SNN!k+NrmNi)MZIQ%c)82KD[kE'l5lbmFrReZ9L"rkpC`)&@GJIZ$5k3*4+1
+aNKL$bY4"j0HU8#9J5M8C4A)%bNk!pT0'0#f-MdciMT6JrI5KaNk)KTTLD33!d4U
+B%cXb29bXM2UdUNBrQZk1e@cUATVZ'SVPlj6$`[YK`1Q%XE-MSJQr)dU0a9c9T(p
+bbJS"[5-3d,q@J)!f&UP1G)B0&"SfcfNf@GbAV@iRKr)HIe,`Ecmq1bL&)A"b+pG
+#2@N3+[8D$,33"c3QVrE,%"5$MV-Rf4%JJK"Raj[LULp'[ZT5Ji!*+(bKER$"Rfl
+kG"mCU%QdpH9dZa+1VcjhTXG$5KE9d'6#G$j*9bmXaEa!RqhU0b0VH)!FBc!`q+E
+*#"2X1BUVakBlS44c)GVP%Q#68%*l3m8D2eDHcl"0Zb5&F)0lBJS"cf0e&'lj@(9
+Rc24p$!83!kEIF%ql6(X,(lK+0rPjNRrQ+H3LMlK%h+3D&qc5aAXY%--@#(!bX(L
+@B2%(*E!iN`D#)AG)-8T%X1UQ!D8*pYb'-9[0KX&e'd+N'T4N%U1`-)RG@A*$c-J
+&!TffAVGjXERYSM5dYe8EK$a3cYY#aQHA9(#C&%6M%Q1aDS9SA*VE2+@DN9[*(%V
+G"I'BQ5(kZ'+Vk#,3dE5ElEVKY,RYX1k!,Y8&1TBGe,CRa5FhUC!!JXShXNMAbk&
+ZQ`M0F'LY#2@cB@8dl'8$$KePND$B"I!Xp1J8`F*c603EVAHlCH,kf5-ZGhRjA*h
+&BXM,KLFrErAN0`e,$9XYP9lNb3Y,HI+2cM'4eC2E+`a2jXU3!,TSQ6D5bDcYAIF
+NF,eS-r0(KLK`RJ1GX[RL3+XSa-@$PAT2(&h6KMjC"64'P99Npfkff%5**mAQfHl
+0hDL!+3rdVEdP$Sj&9l,ETIaXk4ib%&450j8U4Hm4$pKLH0kR[-d6[5S1RLcbp"J
+FElh'+V8kBjb[NUV'lVSZeR3C@,2(`*SpKQYD2hNd6"miQHfq%PGNmYj,BVLfqU,
+$Sk[kA[hm+5"XT`TC,NGk'#plG`qj`FJR0-)9CSqV`T9kU%MP0d2&,PQ95McJ(TK
+Sd6#F(5*8a-Sia+YY(mCIj3)K#[USQDBr)ame'VCZ[C5(LXfTeV9[(NC9YBekY81
+ZmP#`396'h&lMc9FK)84ZhUj1)(NF9A*02b@4!TRXfVBakcF,NR34Z---5b6Db!0
+fmi#0JX&G"QD[PQ!4lK-(RETaXQfp10TFC(KhG&8Q1`!Zh5b-Y%e&UL9@k%6#4EV
+e#T!!ffY%KFS++&cFV4am5P`VjL+epT(X'*UZ4d6&`Va,e9kj+Kk$pK#Cp[+iDdF
+AaZ6i-$3GH#3TYjFE0X6&TFQFj"'(%KcR5k&`@hh2iL)E4U10eNXBRiK'XN%dPRp
+C3Q1C,K[,$61P0jBECXkXXEcl2!EA8b8RU&2(5QJbTr4"8&H1Z5SmhEhbA)jq[Di
+UT5(HXXfNkP'9#0@'a[6*b"5GHr98m)&QVGDJ4"fMiQSrIH3BdeDjR$MP*fhdL92
+)LA@XVf9#6i4%`LF5-C(`L%5h5)b+41p3FLbC(GdDf!5Se*eDk"GqrJLTVpk2VqJ
+X`P!cK2T8+3DEiLdaj6i+&MQU,(*89H3S915SYXK46C'MjIV48$)%XCd"9ADS)5e
+VY1Mcf%cILH*NAee+%-i,Na65rQCLGQ2,a1cMq'bP@6pmGd,K8,hKRk#2YI2Kp1I
+DebC#MF6+cdrl*haMHZ!`!Vj'BZeK"')cHZ!%!V&'B[8*"$`,-$Q-d"4#GNI3ddM
+X[i*J0`GE4E!9`Hj')JN&4cRB*B*G#)if%TNS+)LN@J[`84p*VR`6EpJM0Zc""Vi
+HE`!,"&%h5D)'cmq%I[%Y5G$J0@*C,aL'LLM%jXRTD`#hb@ce@6+cHc,HNUh%S##
+j`4J(6Y0!IfraJC9DeB8c'9LP94dlNi%KVDV`6!E@DP82RFR!'UdUZr5"98rkD6!
+'59#,1!bJpkf!UYLIDA%29PBX[1PLB6ajV!U!Z&UM)0#RD6)''FFT)SK$Uq8U2(f
+S`M20"J,EhJT@QB!NfSm*"BZ2kG-BY*K@%lq*C5a[Y3c!&jJQ08f#d$GXDB%Y@Sh
+4e3$)Fie!SVmU!BR1XND#[dXBA2Ihamk0"18JDb6iZmElLJ4reeBk%[`,+b6Bk)q
+%"1HjNH$I-3+8KSj'kX`4%T`(*0JbKckLqQmR'T`Rd5!pF9P%4)K3i*(lLJV01QS
+EGk2#F8+&9LK5SN*#N6%V&#P4)D&)Ma@+P'M`K"X0'P&NF64S4*'4dH!"+c4S4*X
+PS-%6ZqF4XT`d59#C2*k$lkD(40+RI#)C8c'4p#L25(CcT3j+MUT4NHa9[5HH!K$
+V5cbAJJqQ%`N5Z2,S)*Dc6rBVkDLdh8)(mCCq2)Qb)C0PPDKH`Fj[fkqD&$XCFQ&
++8I8,ZG9FCDUYKmL)&FB0Y1Nm9Fd#F[MU'JQ`%(Kj4C9!3LK8IBm4b9GfB8U3!)#
+cAI2f8Ck@&c!V3LGiVZ9,0h`#6'L"J1MDmI4TSXUU%E&X%SMPkb8JP[ULcMY2Aaj
+Feq5cT(p$IZLP4'%3$C)SjHRcjc!0G)TRY"ZIi9b`Bajh[M`)YH'D8cq"#((([-)
+4qELb&S$1RjlX2TNq[Rh`$i0pJkm2rh$iJEje`ilKkm-VaYmB[M&mBYME0ccmaI!
+R*erV@p)h0Za3iKm!!#[&384$8J-!F&i393YNT`$CDR-h-j0i'dBFBmc+CN@iaR%
+FBdM53&QTSYj*#!`M[c"1!UBZkNa)jNi#1HrX*)6S3f8Jjb@F9jU!)VC+U@9E"'5
+KFYj)dDEB@KIbG,1TTG4Y,9,1*`8f'eQXE-YLhZrr[hI1P`P*%2IqlHICclNG4M8
+M)K-"%3!"!4(`%#$QreUZfN-KI+PjD44)XDTb5%@qX*UiT$!4#j'"q#Gk*UpY$@H
+E%4#-"eePP[UN5LQk-MZ1i1$H"c@el8-ef*EHrik8P*AVUN36T)X2i%0*1Q4"X$J
+8JM2`H5MdlA*f85(4PVCZG5$VFe@YH4bA%GpPN!"GZN!+U#Rcdq&Qm8QT"b3A#cC
+PAAj4Vkr+dHXIlGbGR&298*+IV0pFNfcBRm(*bI@f3fhTY26h)%30phHVZamKNe+
+RDjjUP%0AM`KUjrGZ4Q))dkj4fkdG#&DEF5PG2"#UX"HT'Mpd)'kAY03$PKIJ)0b
+`&pF@+)aX!#'pi8*&*BCTZDkX0JSBhk#A`IXG"h6E8D&GTkhrXL(eJ1l5HmqUNLk
+G6!ImBEN,"iNGE&%i0)JI$6p'r%6`di+I!IcdK29a2E%lT55[a!5l$[#VN!$2L#p
+%)hQrrTh&ENE$5%C,Dp+VB[I6@pA"YN+qm$N(fH,'14I(8-i3(*lkhJieU!EMH'J
+*5RhHA%*jMdD,#(bZepFNqeE4TIFDa,lmbhNjKLT(6TVbr,[IdqY,mkYV5JhkNQ+
+VrV[brYfGqU552!ZH$l94[prEGfr*jQLk0*e)N!$ViX*HXGeH[,$"rJCmhA*lmEL
+*H0e26@HHli#jL#2$rSpSR)@p")#BmL+IFNkHmT!!J0FT*UHmU%ajL%qjhcFP&kr
+66%jjL%eCm!e0@G$+Th5`C5hB5P-DrQ!lCF%hbT5Rq*4FH3SYDm&iNe1H8UD%q*4
+4[LPB9UeUFNU)Ql8ZIRR$qmbA0e`"8Bh0k*fmQ0c4XILC#**!"H8kSBk$9cU*+Ga
+$a9VA`B'VGZrNa5i8QmAiQ3ib3"0Q%H,iK%-diC'[r#IXQlai%5U"+IJC"p#P#Dm
+5f[J%imJ*RXQ,D@"j-kkKXPc"*a6j*N406R$9&bp@2l@VZj5A4I3LiF)c6Zf#X)V
+2(+&,)-'YS8[`Y99*[@Lr4)2BLUk!-L@A69r5JqdkXiB+BbdrqL!e&cqDNkrR,pN
+H[86%K#2G'LV[qrN%hPKm3K00q#p&EK0'BB+jAEZi2c5(6`K68r%*(5BRc-F%BkY
+fF@rS9Mj"mdfiaq3%XEji5Br#$,f-BUKB-NT"a@LJiJC(a3dI+UB$&D-*&Ac+I*S
+#`dd4+JU!JI4B[D1q"'3mdrG`LSQ(ddBqA,$9a-2a)ar@UXk(B-G1CJ+j@Ra0Vkm
+Q!VREKN$ZfJHbZCm45CKGdRf9fGe*!'XiFH[XaBYGR$$@iR+4lc+AA9,&K9FkZ%$
+9F,5@PDNmG2'(3CZ(Ld`mc29rD#pH)P*c$"IJFT6[FMklC&1@p)`mESNi8[5585B
+Hc[Gr5%LL5Y5f!JhV&B490BF`K&iMKmYK[3ADAKC8,eh`LZ#EC%21jXZLM`"r(j0
+,U[9L5DQ"RPq9#I'ZkS+D0(e1@Ne*6M)HkrFlVTDD&YjI9q(9*S9ANr"U@AJE'@J
+Jd&kJpV!+QBZfPa4[[Qb3!#A[qLk6R*b6CUJTh[DkjBTT%kY@f$&XQ"6iI[)EHG9
+E)P9'Xb,SKH5#r+[&0AP[E+Nd%JD&La!6GcQ[bT!!*TEQAld6iM#Sk+,`DGXKTH#
+CXc)hUFDq8#MeJ0La#BITdX-l9#eK03`KK9e4$-eB)hjeq8iHl@6%ZVQQHSGB8e+
+k*H+ZZSRl,$pMbl&bpFk"ep#3!,XYm+S,@!`Y@N'RYHj!dD``8d!4aa%,SG!J"M0
+#1L1"K"FJ!@0-S94hS+Jc'h8!LD'&PI$K-TR[q(#CQj&hUJ1Cdf!BX-0dTFf#Bec
+DXAG5k)BZZ(H5'ZPq2VqlIUID)Qf8QY+N@DF-`5GEGGYK'NZ[rd(KR+5!H(Hpjhp
+J`2lV(rdG8q&H42+2$2G!D-[Adp5"UJKFS"B[0JaA&UN$cqZ'i5K'fe!9+HKVb-S
+dUii$eP"Y`'*-`R4[#JR*@bmeS@TVB#`A*9X[jq4Y#Eq12U++M18"IjD0B&NccE+
+C@0k)6CS8()VPArrKeh"BhT4C&QJl'$C@E3I$'KLQjRpH&r%afNjJNRU!!-95'0r
+S26CFbGNYiqb@5d(Cd"liV#MCBYK#GRe9!!USd4U#dYd'Z$BN&T@EBBFe2hP,j,)
+2rPQNq5AZ9@C$[Y@3!&HFAf8BkZJGG(5q+'l*dD9ZTrdc#DXU5G[Q)Nb$Yk5YcDD
+r5GPMXpF&b#aV!Y5PYLBB5,V9&L*XH3haTN@9[b,JrS5!QlX3e0`[E()#1$9i5`)
+fEDTXH&jA##1R(fJhU!F2')q%3MDJ[DFaS,f0S86Ie@f!G[2XQSRG)*M9Q'X"GS1
+,+RrpbDm8`(Dbk`0Z)`%hQ08fZB(f*S!f9BX%fJR(0[Q$pTl'J(DG"Nk0"qfKjGl
+ES$hdd9X'fM1TqU%KVD@HUQ"(GQSfUCc@Ca-!1-kPRQ-K+Ra9m+qep$(F&)eHi0J
+BqIC(kl0THYK"!M+[3FAe+hT!M,%28-9[C`kY1Ke"Q&d)Pe5`"f92IP4FQa#DHH*
+LE3)pjQl#V,JG1SD5VdVXbFSF9[Q!A0j5rNLIfN$#!9Ee[LUa32&CE!Dk*3apfb*
+cM5BNM82HZZ2mUm1*[(8G9`aj4cRbMM,8U1Sh5pf3!-H,Nbhb[YGSj'fM)$8D90f
+3!(HF)FmIGEC!pl"A39b3!&j-)Fk*Y[qhS*CrEi&D$SACc!3@80[b6-,21(A3V29
+(3(jRl[fE'SXISp#4P"523&R,V(D+hSX&kLkS50$A-JZCk&pP,M%FeU6fL,5IEd[
+R+UicGDSk@pVr8B(D'IS2+p5V#PY$rh%kF%)*M#614B!6jNQTMfqCTfbCalG%I9X
+bT#6*JB9eYQSI18+rq#J[p)[33LLC,#69ATFU$NYlmF%ceN%qrCR6!34@bL+RT+5
+,$J5c(&ciNjMfC'JaJL,6m@"hD!N'Ge!Hi&1@l!NJr+k%@p!mY5cX#e2'HR935J#
+VB4K&k@Xme--h!PAr"U5X),8&Cq1Li[U6033Mk*m`Z(Cap[p0ebmPd-+l0DNA5ra
+5@H+A@'*[+"Y,61#,@B#P,#!P-bJC1jFa9JNqicJ%34D&%clD#8EQ+d,QR`imiN'
+)I)dD&JIi4a[i"aY1"cc6e%i-&h-LTr$"lY!Dr[&Uc[!D[QNeCaLUHQM`)KTBHLE
+IY3FQcK[e+"5rVf@A&$*2c5DcX'IbLM&f"c9(d30HZ!j3LDB!K4QAA1fDAZmfXfh
+X!ED16H8K5Pc@8J$cC!B&h,&T&SN#Bl-!p$dANf$NT@BDTc66FeMNFfP0jDHJQ2+
+Qf)e&M2ZX31d+c8*SDeD-KlCJTLQ8MX!i4+"hc!Gk'qAJ8U"",,fFA$"8#@V'RDd
+Eq9$)lLY1mV(ZP6Y*2Zj9BTYrEa(E"`KGK"abY1dlC5IEbGbIeS+j`jbj`c*c@br
+&l6#aY0ZbJq&GZcqT*2-f0himi$4qJ'"kI+cZYh(Lkajl-ZR#Sl-,9mE-'#`DT%*
+PDAe,93E1NHSHHa&-BRk$jABiZ1X$-#I&hKTd0BQa)Y89&!["!MF[P4aaNB-Gbe"
+G8CL[5#8DkYc")VlXIrB23G9pe8l6dBNZfA68#J8j[YMYeJ%S4VDU!q@*))FBq-8
+$rD[9)%MV06qd$Q4PGQ2`kfj3bYJ'SfD9R&eL0'-3c+6l4&ZY%6V-8Zp#pba,MbZ
+PG)!eH0pD&`i4R9[hprq-Qji9j1bBj!V3F0e2@0M0T0DLQ08'B!J8iKLB[l0AaF$
+Fb)UhhQd)AAFF0Q)!l64r+iL1f#)b,L0bK414h9(H'*VVT#ALUXccDiC"imeY)9Q
+`KMi[*b6I((4e@2bEleCM+lSrY)K"#!ec9"ph9CDHYd'eri4P4169PL5irr4c0'#
+4G29&k(430)J2KY-dAX@FPaf[mGQkl88aRE-T0N0ml#fe,5JeeA0$4(!Z`Kp$0eh
+RYTT1RVMc',PdE%VU!4qC,R&c51VHN!"EjSiXNjZ89jNG+*CUE!@3!0T[1Ba(,D,
+$jcTfJ["Uq)RaELlVIBh9NT@*#R-pUX3jU1KcJBb))ZJe9,PG)28Yq)RJ4F$&!$F
+A#cM#Jd&$)Jbm80a9j`qd`$%0R`rD8q`riU$!6@[&ee`SCXA"Qb&GZr5KDNjDVCS
+4a)P)1p3``R2K5!UDYNPRK+'F'k$%8XH"9VAp(KLF+V#B4*()$!cPND!h)"kjL-0
+#Yhe1i0C*J*GjAG*3UGmQE4`U4)4Y%GVf[i%+BQR`Q[FBa,5%*N*-Ld%0ZIL@56!
+P+T[JSK[**)#+HL@'%P-qbP2[#Uh#T("S(#Va9ID![4`0[iic54h9R'bLm`JqHN!
+R82@1ML2QT!fFh3&k!)0)f,Y"$4I1#bhR3jEPF0qCB[-kQA9-[j9%3)(M!DJ$dk$
+V1NG""jqbbKYi6&ND"Nqd[1R%P$V6YK"6G`'P'#pc&Q1BdL1k+UR[4)5VUI#Lp[3
+HTKK2#[eF9D+ISrJ2#pIi82`*4r%IT,jYS[J6(iS,[*8F`G-KT-@3!+ZJGcVEJ!(
+QEaQ+,I%6VHTGENXCbjFbPLqPJ`mdI`Y'ImZVQJLEb,[d"@'f-IS+h$IZiI5kPlJ
+59DiNQB**R&5#d065)Blf9#T'STQ$HMd&$IRMIJ!V(m)EbRh9#$l@G5X&,ELCY[8
+NVD(14!JdGY!(N8T&!&3qH$LD"@1fMJJM0fVerK8R,r)(8H3emA$GUhJ,,qMUA(m
+LTa6kS(+K+4G'%QjTp3P$b"f+Rk&hD8M!a"`M9J'Uk-C&`9ITN!#ZL!JQ*db%P*d
+FPC(qGeLMIl8ZMY#FcQi,[QB69EQV$&ekhN'JM%rXcikVh)bmA4EP+544[LCL+&B
+'cCHh$$EBS(Qa#H+DaP&G`&'p'5$p'aqb`ql)"P![iN#p#!KR)2dEJ24['0TMjVU
+JR9#))U@&lR1'!%&3lL0%Jk#Yi%JpljSAZSq)``P94LiTK`'p"51)`eS&`BZG#!E
+"@4ZD$L&Vmb9L6"&&AA%9P*-iM[3"[`d+mYP4R0%9$%Q$@A"+9iCqcd&'(GbU9-a
+"kPSGekb4@GQLpYj1k'PfC35pP6l@4cA!["mD#iHMM9!!0ZQ&Si%ASRN3bDXG0D$
+E1E+5H3ZD%(k9c(DjNZ'S5QHEUrDN(QKAZkP3'L-T3'``00TE58T+qdEMH%,d$A3
+X(Ud'mA8$LPXE'8P`3DJPc4TC'$!N!T!!dG8N[`TSQaiDTl-$$+P,MB)U4K3)@CC
+qIN`C2fDLYa+[3Fr%"KAU%A43"BkBb!qU`%&l1C0KUMD!b(''$RiB+5L[m*'kV50
+-Cid%D&8P4diU3A-m41&T*RD%FDr4BQ8#bST*jQdJ"S&'$,q$Q*,&Ki($0N0!qQ!
+6(bblj%&A`8r)"E(%AV`&K@E)!EEdV)r%0P5AjLFEYT3!l*(G3$M#FqYG8&3H3NN
+13%bU1%`eMb[Je9%jEiqc'(SQrcL"1HANr(l-93D9X+DCAjK9J5XUd!#XRcSU``(
+4r*c48BSc1PTf4VNJTd-kQMQNp"KG[GfGdJ'qS2ZF#q+(`6&P#Lk+FpTRbJf[JeS
+%qq4lq[hl0[DUGA1arri#f(U-ZpL2b5lf#lSli@)r@NFAZj%U'0YfXER5U4r`8aU
+!81MJ&AHaQe2aZ,GGE(G''e3bZKhFYS[Ym(Hapl9H84IEd@JAqiUBU1!Le-h&AP8
+R&rZmRiYph"h*8,+rC"3BQNFif@[GR'b([j1Y)0Yr`U`46RDVVJY1pLBE*pYXfVJ
+j2Z$QFZXDkA*hEDXTR5kh@BJIDk6$IDA0IirE$!Se8Z[4U9%A81beT(+AfqXEUZf
+bFERIGA1jhl9aZ@94UT[6lI!jh3iFmLJ'9)X9TrYD!hHkUA[`&A'jlqBZG`GI5+`
+V5+!PEZBZi6AZG'I*6VGrdk0639lS@[-ZZ2qNX3&b"aR$X8J#FmP(+5jjZq)dMM)
+ebCJA#[NFp)I)3Im-a8aad+Ga4G&9IZljY#(FmfPZl[Qd)GccD81kjcrK!pkI+1J
++dX'%--9"I`M$I#a[m$KMFV"pa$"mTN)'(RGcd4%ePrUHTX0RXU,DUmV&R$['V%&
+ZjbjkPZbLMfL3!0ZEGpL(DK!eN!$!A2K*h)9AdC100FJN8j2)T@H0BJQM#il4EH&
+cI3[hGqJCdSEC4&'6m+UU&16SDT4Mhlb5R%ek"1EBXm-,U,L+AEa!GD-!4DfKf3(
+P`iebdI"cm12mSdkILmqfeKm&`H)U&pc*lkUN&ap$P23J+UG&U)1Vhi`#)DpB*-A
+9peTHj`jSDYf('KD&`+KckZcXGrNlqbmJhaCAZC3&8A"()d9e8NBK9AAG65,@c!R
+JQdSjJTd1[l4T@`lrUU%FrVeM0lNjr2X65"4(YdbZSR)bKfCFrZE-C,@Qb([X(%H
+kdqPrf)IfHK19mRe+TFb!rQ%!rF-bqQ0#(Ceq"hF5lrG9*HNJ8rGhNFYrLD19A2l
+lE9aq#8H[-ZRbVe03A'[MmUrM,[mk0jGrRBad%QIDjGqI`)kL!KaD*50T8%4hZe@
+K1BV6Rb!lrA&Yl9RkQh4f8IDk5R54')X!3#82!'a%!#$Q$!")dE%"cbL0JJ#h`[&
+[9B)!YrS(!C!!4Q81U`E9-PhHR3m#G+A!-FI","6!!J&DFi'!$1kFRpEPm8"!J4)
+)f1JI#0JlPJf!H5"J2cqUc1qSL5`BS$8Q',#8+TP'"!1D9@qf$3Ei%rFk"JEUS,U
+plF"!-dk$("K`b)%"CGJU"`BFpeTJS$Nbi4FBq2(rJX$!LLHD#3`iI)%"VhpJ3('
+K4bNZp'MCKEiLJB&(kaiBD0BmlaFBB'"$bYe3i9C#U[j&[)L+H$H+q"UPL+1S)0`
+X&r&dZBM(9A-d(M4(U3TAUJR*KB'!C3"G4-0b#0p,eEYI*5+$"l3%UVlEH(ifhfX
+X8$$J1'GJH!3$cU"hACBrG*6'YrcM$8L0UEQHU8d8dlh2e+Cq@&bE@TXB[eLE+"d
+a1m)ETHJX!(c9FDDdQRKBLLl2VRGirVZQaZhK*#NGK949bjfG9m1XmfS%5MJV`Vb
+`H#B[l`pR5dIL$[GMfR%-L(2(,,KjKQ&lmBVlT!j[!-iMkr"+jL%M)q3T19+6I,$
+C(YpS6T+-1#DH0&m0LN&TSbk@H9ZhCZj&*lj#eRP2!@ed5MTi!#J2aY'TZbeLLJR
+@aEH("9lfkr@A35c%QQT$MYcYY$VR$DZ"'Pf[T`IZS5%&ajdS&JAjS$4Tk2mj!Vd
+6r"LI!241D!4keip!Va(K%Jim58mLE39$VFd431f%rjqKp[mEL9V!*AcYkS`F`#5
+8+4Z(BAF8cr"$`!bJH-B93[%62K6E(!%8crLr#F9AY`M&5+K*+!D"3b)VSp@i2P$
+0$)!6+AQ+RBHJ+38UdLQqM*q)[93eYlAl+KCM9ZB!%U44&a3+e))%IU8%R6V`SqN
+DZ,"P0`H4%(5d"dVb8!`F`TR9'4&'iBPSTpl@rJ1%8K2cUk$H16TFUSD(RlGAfMm
+C5Aic+$$L*,m4QIc#4)XP)6#5cSJVZIcGDVbTQcQ(4'5hHmpkbfS6LjIb8&R%Kq5
+[VUD9j"JkYm#'bj+16*-6K0e8-`EI8Se4M+B4`0[(%4"kN!!89eXeUj&F9'jH8de
+A,"PeV&M-+P8Vm5!hQ,+QQqFp*M9j8`LG,jGTP+*e@YXpq(S32j2DM(CVJ@VIJ@E
+md0H-N4(0'%IcE9HDX88h!-'(PHDC4-fMki"4F(6S3@)2kGBkH@A@'Qp#QQN5(%k
+UT1f4VJD99#cD9,F+,Ye9+FlKSCN(R3U490(YhX++MY"Z%S`VhL*!dXQ!G%84rGT
+`'B!SCACLm6*#XP*81*U*IBjSHQKEC%BLHm#[b(43f&8R-23#V4'JY3-XN!#)1U!
+eciP@"XlI*l4Z#64[CZ5K3NCXaU!#bRr!)LS!aX&fM5ljJ*K52RH3!!R(MGN@'RD
+HMe+3!",-YS$C3Mr!XZVbS%+4JmDTN!#H48+K'e@[mm,qMhHqX,2Q8JCEULkb!1)
+06aUE1,Lk+1'ZA0`[jb8AP)Jj@fT8(%NqjC!!bUJ4",5`6J4dUamiT1Zq8X3YZaR
+cNG"B)dLSH#q48$E-0LT%G(aA)dMSd#2ZNU[E)+'V&"*+b34L#JQ9`aA"+dK%j3D
+F033C(G8)-QT')dD8aKc@RHHLh3MTCe684bQ%Y*d6dLj15,ZE)D5X#653!0*&##D
+-UL-KEFEG-8&)CB6Fi+4dma8QTE,im6jLqU3I-4h9D'*khQEiBH6L"BCN6Nkl1$R
+YESDFqT!!QbFMYblNG"Z3!2fI#A,DA#LQ`R@apP[L%9P"`&A1d9"Fq`S,YH$55Yd
+dbY,NKa9f@q8"5M06qbfJjlKR-VC3NU2UdTTN@S6HCN!X'p)VL&%i"a(6cX(K)dK
+KNbi[++%@b38V@-Hfj3&Vb"Y`$BKhaj&kR4kJ@`QIG(3C9hYSC3l(YcIB,T'k3F4
+2X)3C6aAAl$$SKekKR*!$(+#iNQi@K,%Ph,I`@*Ajk8+@&LBV@h*PIP+[VEe!Ij-
+Zc-eHGqSI!J0U`VNPe`mH--cKR8jB-'&696jkY1RGrGiqk[T+rjLap,YGl"1H[D1
+i*RQ(he+B+E`3iE,Y#kj9Kp%"(3[$8SaX+F-UJ8pjQ8ZPN!!jPR#,B4ehB0J#[X)
+#NUYVmNb[BSMMfH+fE"'@NB[i4Pj%ARj1ieG"3(0*#4K5`VR)NPZUc*X+MAf$UL(
+B&G@em-4`5'FcXHXcUkD',T%aC9H!,f-1$eQb%&XpPT'6IpPUK5YQSMeNPZYff+5
+k()ESmVB23aS+5N,"`3`KbTD[VeHP4`EXJFlbVkmECNSEc4aS!jp#h0@5+N1H56L
+UTRp1Nad$hV!LGKJU#@"NH-ReUS%6dDI23k'!NECG)'hP5kil$KM'qB(VHcJUVbB
+Yc4N@(`'beBjUhf%Rk0B'4N*2P3medlZkZM59e"e)q3D%VX1UBF#`hq5fU,b060)
+$UXP0(IkEcS-8Nc'&+T!!RU!pdAjlH5+1'%5&YZ*iNrfNrBp54rP*2)U4@QiN+'r
+Q$dP0ief6KdLqj@DCh"$aE3KDZh4&*MF*ITYdZS6)9R@T,U[CVB+ZQfmDYYh%Ep%
+3N!"4#'%"TXUNXM4*M)+*EjKS*KN8kRPirIFVkV-r4G'PN!$KZ&RmaDKUc`-dB+4
+m$ZBi)`MTDHSJh2m"c#El1"KdqJHM&GR9e&PrL++kq@LT@fUQ6MSZR!hMJp&#U3K
+B)+J,SC9d5`F,B`k9dXJf)D$[G,r%*Ik&FlL3!#TERqSb*A"%eI#h,R4Rl%+R`-'
+@J,IZK+#DS*c+8f-1QpEmBDB)`BM$MP2)1a+Qj0SJ"CQhf"Vqm&$+[)D3!&Cd6YP
+0GACC9H6QB,aTh9NX*DEE5SrVAELpc*!!U6kiF4$T(3%@!qM-1FT1Pq(kl%J(&XZ
+'%VZaf2c,2YblKlRkpRY,'!R`dMISJ0HI&)aB[R@`[0*#bbYJLcGVDir4hk4MFl,
+APA9(EkUY`3G1[PYCCE`jf(e2r"j4BkbX1mCC'6*0LqI""S80+FJ-RRkXX!&j*e@
+kHG[QK($[jD66!BkZqJ-`+95bJ8@#"%$14U$Gj6M!`2-[rQA$AI4qfi,J*kM8-hR
+Pr$S)UVB94#DLHNU)mI+Xh0)1ULTd36R&eY4Lm&ML$$k@i*q*SQrN4Immd-8+YpR
+rj-lGqVf'2%-DaN*$X$*5f-Vq1JZcB3GTfC9NRZ&jh-JA4&IT'lJKN`Z$`D"0NNl
+F4#FHJ*TU80GU)ZAP@+FTcGFPHTc5-GXP*pS-A,8KBPFqbD9ML-pXNY5454X+M*c
+)hCeDlkA`!c8MT8dEXULkb1M0`#6`+0&jL`q@[rGpAbpF,($S8)NFHkiTTFAPj+I
+*DB51PLS$+Q@"2j00REriL@b#4FV+qjfJHhJpd!X6k[*Al!iPACD4Xc1JG$#@P+9
++0K$YMKBI3-R$560,(Ka"!YTf+EJm@qNk$RIJ!jHUIA"%$CV,iN'i8jUV$##KKDH
+QRNZU&#ZFJdVr6+Ul'r6k$%-eF@V0Vp)I,C8AXYZ*!MbPGAMlMXT*@1$5(,5r35k
+#NTL`J,NFcK5DF)l'N!$43HcJEXiB2(K4HAN4,e18PbPiH90jH4-[Ie*HrS5A[bX
+[ImI,DmV,DhKj5RPj#LrMPCIaH2Q,m[)A[#a9ATELjHI+bmpp5Af,d%q%h-[AVB-
+I#V92bJp5ZfK,5XhQr,3FaLM-,%q+Qr$eH2lj*(a*&fXIAijZkTm[P$#)4CTI2-a
+EaC9-jq&PRL9G+UkGPjAEMaFC3&)65@bCSDJN4r@*AF-&VS(!055`eLP`6GiUI(h
+"4Ah"4Ahah'J5NDMAq`Q4e3$)eE*'!j9)h@Ym$bS!$49lSH$3rc0b#UhMaPBb%j!
+!UMiaPeka6E0@P*1U`"ID$5)Vp1%2b6c8)eHpIqj(`qm!+FT$BEPFRH06D12J4cF
+5JBMj!-)Fl3Ce9i0+a"2KCc-UETpUMLj-U6SHKXS*AQI89PE&c0%PYiJ%P"Ufl9U
+B!ZFQQTZ5jN!"0L,9%Mrqhm0)rm9&IS#&B9RTc$PkBLF4I6P9dJ5fV16,QrQ9%`f
+bLd@(6VAqkeqRpU+DXhllVc2H3e*r*VKhY(BMAQKTN!$khN&D53bcGR!P"1-lANS
+9M%XYI"E(&[,Pl!PRbbm(%dJp&LRqcVk$6IM")C,hpYb&me@Y1[K"(dqqbC&fMLf
+[Y#42AKV55"db+j93@X@H6'[X9+BeH1VV!C8YDLm@pHA[a'$m1G@)#kerDMr%)MN
+p#0h(*AbCq-+P%DM@-hIQ'$[QFTlI3EbLSdBC$%$T($F1$8URN!"iU3993I"8,Li
+(S*SG1j@,eeN$8!hmq06!$4)f)dP"TAp,bd-5(Y#%!VRaCSAjqHYPePKjQH`1a0A
+H"iY8kk9b'"TaHlbSr%'hfUCDJq9PEF6k26,3SC'48%[Ub$hCTUK`26'ATmBf@iD
+4CYR)%PCp$-,e(U(BK3FZ16Ji`EI%C'ZT(q!EZC)F"m4Jq3caB,JE$4dV2ieNc5i
+G&(0Hh'1pjkp6V49!qibjTrF%+UILikPLHP(&E62QR(kRc(j$kJe(&Tq$ZQ4rI@r
+p"Q841`RT8--b5L#G(fqNQkY"YB'@`mR#90pbLJeT&S-H#Iap!q[JJ(a$YVFUVNh
+YHc!90rX+[eaq@[4L%DIRTV!&PCmkaCB5I!H0`#me!1UA!k5!'Mb&LhM#JRm5JqE
+9!)PEa9MrUkD!BH0["L46#mSc&18i"akZCfD[3V+0iYQVkR1P4crHT`Bra3Z!!er
+5K3rhc9kP5kH[qJZIlQ2*V-VmJIF3-95200KIhL,'T[l6JXQc9iP"QL$p`+,96f8
+L54QqIkUdM`dEX[@fJ%QK+VV4D8HPUNEq)9BCJTDCX4)@4,@U!cFB'U4E!()L(%F
+B+ee4V4TSLc)`5Eh',JkZi*@k83j#6D!M`1a9r@CE-Y"&Kk(4ljTEZ5F3(l3k&JD
+UBKN1MSJ1BPZRK!LrXa2U,IE`X`VTbS+UXEECGr!2[m*!kT!!!k'B$efBe!jL&Pa
+#l-q4TrXYYp"rQZ1!jfp1TD3APGS6jZqdr'*p4Je9VrQPbEBT*"mpb`S5EY[M)mA
+@'#PMPeFLX&[)5$AGYK5!92P&3%lE6X&80Z%lF593fNqNNKhqCT@KQH12m`+16LV
+'GmLGT8l0,FZcHbH2@pX,T`"N8BXATPELF8mpClXTL0JV()FL9@T+SPZd*YlmPrY
+6k!8hD6Y9RGU,$ScQXaKq"-fZhhpb*5iG-03B0Y!4YB'UBIm$['AXX@'Dq5`Y2-h
+)ZRKi*XpH#,A'))C"$U!8K%m1p-lBAe)d&+RVi5'I$*@Be`96chNVDfGXVT!!SQj
+LSGa!B@qchC8V(VBAhE@8)hq4(c"N@3Fpdd)hZVAbA$&GkT8F8+(8G,bb$98m'S!
+kpqLa))lSE'B%f$a2`bE@G(US8j!!UPXi`BaK*+80KH*H8+lfhV4Y5V'Nb&"PfjJ
+mD'9dCi&)j!r2M@6%c"M4hJ15T#2515KpD+)86N"`J6Td+'V2VbG5!3&Vdd'%M[6
+RbN2([lZ$eSJ&bF@H)kAHHQ4KB20f9R4dfm0f1"j'T5!YSPI**4IXa')Zf@e`Jf9
+pC4hF#m35X86#+KZN)ZQUFJ"EYQiX&"M6C4C5I3@L6%`c'(bNV5dGU*VBYA@`["`
+-6lGEP#N&2`&KF+(!Eh4pU'kh+-Sb0BpMdHGM1bipM9X#l&$,JECd5cU#-pXY4!!
+h5ZRLBYPa1SYa20IX"#p1G2#Qm6m``JjNhHdXXB`3(3T"pdY4'4d3aI)Yq84aK9P
+8-1')&%Xk$3*3ArLbF9#p3q`SA!p&kA5mT)Y"[0cK[F#fL!mS)5&!2AScj,!@!qN
+%#68NEe0X1KGl"aGl"aHEEL[f*DIBR(`hS9c"%iQ"e6#q*+L*QY("Ei2DRJQ986`
+D32J8)Yl@8`eUeF21)KV5h)DdHE),9EhC1NKT+kQE2j5f)3i"-6X+%9hdY"@LiYk
+DP3Y!L#d-m)j-j)DCN@Jr'#G$%B)S8P4A6iBMG"JC`%h2SfU6'*%&m#1fBr#TbU$
+b0[PH099$,S[-6P!XliPVPUchqP5c+C'Eb3PbAkC!bj31d5*Y&YFL,ml(X1S%h!N
+b'-MVNBXmliT"V!)3la#06Z"59$hf`-L!`1%d)mb@JdJ$XGhDJ2&CF*9'kG$%#1r
+3G3F*i0YIY8BA"STE)m%Np@mDlJZm0YB0IA[Y&%634aceA8"Vp,%!`R@GfX[5S1j
+eYNQPfmKV,$Qp`X*V2%%#h$iSAT[&1#e!0$U2e%AB92l)U#`L3QBpI`-X1P4`JR0
+1VdHq8$fjk(lXbd&k*0JP0Jq00"G#D#PR(80%5S2K8f-p6#b95Q$*c'pjB[BaSZ-
+*HlP!RF3Z[0'r(BT&CB5Fl(CZ)@3m8UDp$%9`)b@)N4HFH$N2#kifX9Kq5mAbfkQ
+CR[8eA4$QF0CNP`L%4CkqVcJ@S8-dFEmePY&`1cAF)B3$'c$BVE5J1cYek'2XqVS
+bS[X5T36d-5-KJ+B!91S"*Lj*YEJhr$PV"i(&1ZfSbXcI"0T3MTG%bGQJ9Cf%8XY
+fQmPCrJd@+F[SS'@Z1`3MFFc5#ZAj$QXk%0kF'!l#rZK$Fb-AVRpc%rN%#AMQr@N
+Lh4`DMMJZ@aQDF*XM5[YQG!N*#(*BBam+ldr6&AVq+phLjd0ll4INfVmr,@13!-J
+U,pc9"3CP$*!!,hHIjU%FVXKSQHF+m%2-G"-44U$E#LQB`imaKf&!R69$GRB)lFU
+!9+mR+lY6lP##Hrc%(EF9*`FfrkcAFed8fd@b01KrPLXAQ`pPBS$UJm$Ei8F+D+J
+Sb&80M,j%KSjNjH+qeMZT-ZZI!H)942Up!pc)d#0AGJ"*ZV'4XrXh!fb4RqihY&H
+1j3GXcJ-i,4b#')fAL8q5+M*!2FC!dSKlYKZ-rS5%IA"8C@6F"lMTE"-Q1rKYXT3
+$NYK`@+QqGaiMTI9Q3%iK2L$G!`ciI--2N90D2r02*aMC8i+$pU%54"T,I-9!e$j
+3ld$(i8m"@T-JX,hP!b`5eDAd!ESU()H6&ND(PTlk$p4GFl10-6")+@PL4`-c!Y)
+J#q')1BC5[jXdm!$4cM!21bQIZ58&LMK45LJN0)1Xb8Y3"c8C8D*j"2[$IZclTUL
+,1&('MB)9e)A0kUrK#L!e1BL3!%@8'q`aeI)%UdD-346X$Ra&46ZP2i)#md"91Qk
+#YDX@%kXeKPCd8F5(Z@8!Y"iDDU,E9"M9fd!Z0Y&YTIbE@YI"AK95*f$SfB"UZjX
+U6LJid!#J-'XU*fm45iX*0L*%H[Q0VC5QP$XJ!-A8NpU*iJJ2b-USITbKQZdaYD@
+d36B5*"BELR%M$UGL0`F-%(5k+6F55&NP1#&%4U2G2cL5FJf9cC38DCrh3U3b+8@
+FL3Tq@)VDKAkK2TScX2bjd`%TqR"fi&4LS$di$DV`VN6,,QPIkJ@TXZjI%(cpjSR
+VC5ZBJ(6IijR@k'd"&0YdC3&PiNbB1iX8SJTePP)%#BS99SK%KZD!4-j6#"L#[5A
+jHScTRF&&0+Afmq2+8$6jM@5p-MUA"hK,6bM#k81riEA2%3H)&AGB1aE56IfKdN4
++iRXR[cm+0dQl%8kb$LiTYm6kTr+,G#)M(#5T1!r6Drr2@$!@b8kM@62mKd3T#0-
+R'j`,#G10+2!r`X%,5B'2m29EZp"rYQQFaT@VZ["MeV@l6ZG[MjR9rkNfSI+Ae#C
+Ga(@ke1Kl&&'EkQ1kMM6m,`LNK9Ka64&*Fm"fU%cQKapR$fQ!i-DGNeH"lQSV9(r
+`h`q&[['VK)4M,jelrq4*6h3PrHI*'cGZh#IimG4mqpY#@ZrU6''mN!#BkERMc2Z
+#(6qj*kF)2aFXZF)DBCRRajlAK9QHHF*hcY3Z&%Vi`rkS*dAif[0ArY"cmA(K`M,
+Kl@@pRjmlZA60bIiI[GdIrI2*P"6KJ'"CrG0MpKIk-l'3!,MRrC8VK@qYA,Rh1Nj
+l8AMQ[`PcANUT&#B)HClIp&U%(Ck9[E-p,jdC[elihCQPXi9IiEHhYRHL*pUA*cb
+k@X"G!Y9I#UPBF%fLjbiQ5cJUf-H0%iVTbc1)caCif[T,KDZH3m,i'8++jiq[I1*
+jDBE`HUjJ&9l*&Ij2l@ZHTM0[#bqGU44ZR2QTm"GKk@XAK![#qM-l*JLH-F,[hKC
+H6raDq(GPrq1rI-hcMfHZ#U[2&([Dcb`6hKFfB2mjiBpRG"-%eaMKYfcr`6'[,KJ
+c&@Gq,G`h46Jk4RK-f$Y'b",qda4KkK6Km"MKKi*pM1$!JhF&cmQTY8+[d0pA[-c
+c(H%0)69lYG!hiCI(ITSSV*RT+6aE*YJIAV0F%+D8#E0rJH4K*pFN[RRf'@('emq
+0&fTq+@aq+9-imPYKBpQb#iP2RDYpp6@K2eXir0`B)506q"%!N!-B!!!I+!!!8q!
+!N!-)!*!$)!!!2c`!"kR`!*!$#PM!!&h!!!"G`!#3!aTZ!*!$!AB!6R&+JfBL3Hd
+!)#!m2c`!!#)mUI!!!8T"CJ4+3'F+5%")35#!)8%!"%+R3IVrcY$m!3![##mm!!!
+CELm$B3!#V&52Cd"#1!TH3UF[2%4"9%%r2!69U"p`!4(!#Pj+RfFB6R%`2+P`TdC
+$qJ!U)SK"qJ!J-$bTF+C(5S0R"(!"6R91l3!L6R&+JfB#UI4`!%jeB!B!N!8"6R%
+I1[rf5KpQ%NMRi1""q[rU80"1ZJ@Z60m("bmkrpj1G@"b38a"4%4$69!!!`#30&"
+b3@e)jf$`G&#I`Lp)!#!J6b*8-@N!&!!B)8!!*$&m!!%!,0+4)8%!,U!#hm*-h`m
+'6R9+1!THC``J+J!)C``J3#!3C`B[1[q%6R9)jam'3IVrRR!-)LS!"-+i!aTKT'B
+!!6j)H[q16VS(EPK2X(Vr@QB!!3kK'Li)##S!3!!%C`BJH!+QS"XX+J!%+LS!#"J
+U!!5Ae*A8)$Vr9U%H2cJ#)'B!!1a86ba))$Vr4#)'`VJ$'PK"B3$r6#!krcc!Z!-
+D3IVr1##!5S9Q"+%LB!3J4D!RCJ!!Y#T))!j3J%(kr`JJJ#!kr`T4J%(kr`!JJ%*
+R5(S![#m95(Vr!LmkrZ)[1[lL,cVqbLmkrXS[1[l+B3!06M!ICb!r!%U&C`JJ6D!
+US#YJ"#"0S#-J6U!I)%HJ'c(I!L"JB#"1S"mJ4k!EFJ!5"1F*iaRN%3!"!#!#!3$
+J)%fJD3)!!"q!!5"0S'V9e0I83IVqGNU3!'F)F!'JQ(!$S*JJ659)!!K`!%cIB2K
+1G8cIB2KJ!2kq2`!J6U!I)%HJ'c(I!L$9e0I8-$J#)$(!#Q#4b#9)!!K-hf$i6R9
+19J!!51F!1#KZ!!a(q[iU4IVq+L!8X**Y"#!5+)"+J'm5)&-LEJ!)SLiJ&0'6NC*
+`!'!%-$crf8cI(!"1ANje6PErb%MR(MJQ,J!)+#i!$#KZ!"""q[fk,8Mre%)ZrmL
+K'Le)rma96kJF-"mk!!a&!!"[A%KZrq``"90&2`#S$e92,blrl+J0-"mm!!a'!!"
+[h%)RUCYC6bmZrq``"P0'2`#S$L!I,8$rm()"(`'TQb"Zrr"+N!"R%&92,`LTTM!
+I5-"b"-#"Cm3[,[r`UD0J["!Z!"4R#PP2,VJ#TL"IS"Xr2+$m6VS%KP42,8$rd%U
+!C`!"RLm!6VS$ePK25J"R#R!"(8!!&Nlk!KK)E[rN5'lri%KZrpK1ZJ9U6qm!$#!
+Zrq#K(Le)rp`J#'F!!@3J,[rNS4iY52rS)!KR!!&8,blrj#m)6VS&Z&"2)!0Q!!#
+Q@8m[2%024%9#CkJI)"mY32r`5S"R!!#1)%!L8()Bdm%[#8kk",4B6h)$X%&QGL!
+0)%"`+0(!,8Mrp#*Zrr!N8A!BeF!Y5[ri,`T1ZJ5k@%mY32rm)'lrm+!T8%SQE[r
+8*dS!+&P2,blrm%kk&F`J(h,Sd)&4J#G!!#a96dKkrM)[,[rd5'lrr#m-,`3[,[r
+F,blri#mZrqK1ZJV'9%m[,[r`UD-NE[r8*@lrd!!-*@lrh!!3*@lri!!8*@lrk!!
+B2cbKQ%kk!eC86bC!2cbSRdkk!dT86b)!)!Z`J@B%F!"J!R!")!!P3!!F*83!)#9
+-!#4)H[[-2cbJr$mmS2a1ZJ,i9%mI!%kk&9)r2+'B6VS$$&425S"R"(!"S*JJI!!
+!!9S`%%M!i)"b"V#"CJa"qJ#Z)R`!!!-m)SJGI!!"rmJJE[r-S"Y96kJF-"mk!!a
+&!!"[G%KZrq``"90&2`#S$e92,blrl+J0-"mm!!a'!!"[h%)RUCYC6bmZrq``"P0
+'2`#S$L!I,8$rm()"(`'TQe92,blrm+QQ-"p)`()%`)&R##mZrr#TSQ$#*'lrm%U
+5Ca"96bm+UDB`(dM!FJ6!J@HU,`UTSf#N%#lrb"e!!"C-haai6PiJAdr[!!j1d%j
+@rra)j`!`3Llrr$mmS2a1ZJ)X9%mN3%U!Ce`[!%kk!B"B6dS!Ce!J#LC!)%![+!!
+-2cbJr$mmS2a1ZJ(H9%mI!%kk&$JJ5b"S!"#J(b",)'J!'+!I)(`!!!&D-"")`1#
+!FJD`J@B+F!!JI!!!!c`JJ"em!!(rr"!Zrra-h``!6Pj1G8j@rqK)jami@8qTG5!
+I+J")E[rSU(3J$5"!)""bKY#",8$rr#"!A%K$l[rX)YJLf&P2,ca%394"2c`%eDQ
+J)"mS3#"!*&!b+J!)NQS!"$`"0#S!"T4U!!)q!MBZrr*)`cJZrqj)a*D%1!&)a*D
+%DJ*5Jq+$282rpMBZrr")`cJZrqa)a*D%1!*)a*D%DJ*5Jq+$282rp$BZrrE@36e
+$rrSb,[rddN)p3Iri@8p#TdKZrr4)HJ"QFJ%I!A)"2`&brbm"3LG#TkN6)"mQ3#m
+!U(-'K3#3!hJ[$#",F"$4`#m)U2CC6kPe)"q`K@3#B2496kPd%"pQ!Q$fF2mr!%*
+R)"qJ-Lm,U43[$+QM,blrk+Kc60mFq%jH6R8!!J!!6PB!!%MR!$!NEJ!))!SQ3#"
+!)LJ!!Jb"38a"4'B@)LJ!"Jb"4%008'B+-#J!#R)$X%&R"(!!B!*`!8cI$!"1ANj
+e,`TC6cmmU'j`!4m!6VS5H#"I*%KC6cmmUQj`!4m!6VS5CL*I)%Uab@B'-$`#!'!
+%-$`%!#4I6R919J!!,`-f,J!)-!0)`!+!!!!)!%U!E`4`!@!#F!!Q(djH6R919[r
+m51FF!$BZ!!Jr!dkkrma86ae!rrab!E!"CK!#3`Ir6VVrJ,"$EJ4`!'!S@8mr2+L
+IF!%I!%kk%I!J(bS!@8mr!amZrra1ZK(J)"mS!,#&CJ*`!%cI!$K1ANje6PB!!%M
+R'$!i,J!)*'i!#L"+)"!Q3#"!-K!-38&%CLJb+!!#$%&$8QBH0J4brlC"CaSJ+!!
+%FKMLU!+!!*!$rc)$5-'`J@F%F!"J!R!"(8!!$NcI$"K1AL"IA%p1d%j@!!"96dK
+Z!!K`rcm!6VVrNK!ICa)JEJ!))#J!"()BiUJ#3!$rB!*`rdjH6R919J!!98p)EJ!
+)F2mr!%kkrf33(fF3)'i!##!S!!3#J!$rN!0J!R$r6Pj1G8j@!!")jaJi*Qi!##K
+Z!!`J5c#m!`&`!#4-*)!Q2!!!!56ANJD5!!!#5!D5!*!$)#Jm!*!$J0Q5fC)S2!!
+!"*!!fC,ANYQ5"T)!N!0m"T)!!)!!F!!NEJ!3*)!'NJ#3!b3'NJ#3!b!'NJ#3!dJ
+'NJ#3!cj#3%cI("K1ANje6PErj%MR(cJQEJ!)+Li!$#!,+%!Y32rSF#6C`#e-rqa
+`)0R!,8crm(")fF!Y62rdF$lC`#!-N!#,X)9M"R"P6[S!XN*!2J"#3$e!rq3f"h!
+NYN"N5(!%YN"N"(!!B!a`!$!$@B"U!PD!j)"i!$J$,86rq0LZrqJN4"5!)#lrq0#
+!d+lrm#"!-+lrj(!"&"*b!")#if$4E[rN8NGJX%*!2J"`!6`!0JG`(lC!C%4`!EC
+!C!4`!'!-F!!`!e1!DJ*5J1+!H!!i!be%rrcBV[rX*%38J#!Zrrc3J0#Zrr3J3$#
+'F!%8%R)!%J,MB0a!8NGJY%*!60mFq%jH6R919[r`51FI1#4Z!!JQEJ!-1Li!%#K
+Z!"*#3$`!-J9`!$!"d)!d"R)!-J+`J@m83N!d"R)!-J,5JG+-)%%`J&*'B0T#3$`
+!F!)p32rb0JDf4@3!!,K#3$i!3N!p32r`F!!`!q@!d)SJ3#!3,8$rp$)'F!!`!G#
+,)%!B%(B!&J5f4f-!!))`,[rfFJ(!3G&Zrr"`!$!$8i!d"h)!-J+`J@mq1#lrm(B
+!0J3Y3rrmeS2@M#"$5P"Q%L!Zrrc3J0#-)%!`V[rb9'lrmM)Zrr"`!$!"d)$3M#"
+!-"!p32r`B"B`"G"!d%Bd,[r`FJ!b!Y+"dS`J36#!8NFJ,[rdiSJY32rdB!$rE&*
+'B!$r4%cI(2K1ANje6PErr%MR($!NEJ!)0Li!$#CZ!!ib!h!!-!(QJ$J!-!0b"m"
+"1J"`!#e!rr`d"()!-J,5LL""%K"`!"!"0!9b!$)#iU"b!F#"dDlrr#)ZrrcMLG+
+,)%%b%(!!-!%Y32rm8N8`"A))X%&Q"N*!1J"54$)Z!"*`!$!"d)#`V[rmB`*JUK!
+Zrrm5,J!6dJ'3!!&-h``i6Pj1G8j@rra)jamJ*'i!#$JZ!!`k,J!1-J4`!$!"jS!
+m!$)%G!I#3Mi"GJ!f!0D+)%-3%(3!&!!Y3[rmF!!`!63&FJ!b!Y#"jS"b!V#"C`a
+b!E#"Cb"+J'FdB$)d"R)!-J*8JG++)%%5%(!!%!&b%11SJDlrr$3'FJ!b!P+"dSS
+J34)3F!!3!H')JDlrr#!Zrr`d"h)!-J,LU#e!rra`rh)J0J9d!$3$NS,LU-"Zrrj
+-h`6i6Pj1G8j@rpK)jami*Qi!##KZ!!iJ2!!!!564VJ!5)$`!!!*)dDi!%L!Z!")
+Y32rXFL$6VJ!5)Li!%Le"rr!N2!#3!i$9VJ!5*#i!%Le#rr3N5aJ5GJ!@"#e$rrM
+QJhS(aN953ce$rp`Q,[riiS0k!mC&9%-p3rrQGJ%k,[rQkf-p3rrSIN$)"h`!(!3
+p4[rLH!(VC&0%286ri#SZrrKq!FU(C`Kk!$S%8i9J!RVr28ArhRJ)286rj%T'CdB
+[,J!5,`!r!e*+,`T1Z[mk6qm!$ZG!d@lrj#mZ!")[,[r`2`-[,[rX6VS,#%r[!!i
+[,[rd2`-[,[rX,blrm%kkr+a2l`!13N!p32rB-#lrf,"Z!!aN!!%k-#lriQFk*%!
+r,[rS,blrp$mZrq3[#dkkrBj2l`!-%J!J#R!!%!%p32rDG!!d!05Zrq`J3K!3FJ!
+5!00Zrq4J($mZrqBr,[rN,`Y1Z[h`8%mp32rD-#lrjY&Zrq3`,[rDX'lrhQB@-Ll
+rf&*ZrpK`!$!"d)`J3%)3B!$rHM!ZrpU`E[rJCJ!!P$!Zrq*R1L4!2blrk#mZrr3
+r,[rN,`Y1Z[d'6qm!$")!)!T`!"!"28$rfR3!0!$8V[rX)%)3%()!%J$6E[rNB"`
+r,[rQ2blrj#m,6VVpD&"228$rfM!ZrqE4E[rN9QlrfM!ZrpT6E[rD5N"R!2m!1#l
+rf(B!0J3Y3rrm8i2@M#"$%"!L,[rmdS`J34#!8Qlrf'$1%#lrhG!ZrpXd,[rB8Ql
+rf()!-J,5M#""%)"J!2kq-Llrj(!!-!&HJ1D!60mFq%jH6R919[q-51FI1#CZ!!J
+U,J!-+'i!%#`Z!"3Y5rr)F#6A`#e,rq"`)0I!,8[rc(")em!Y5rrN,8crP#Bm!!!
+"*0HZrj3J2!!!!NM4V[q8F#$4V[q8+$`!N!1!fDlrP0QZrj3YE[q8rl3S2!!!"*!
+!fDlrP#eZrj6rZ0HZrj3YE[q8rlcCV[q8,@lrP2r8F(c4V[q8,@lrP2qN)$`!!)!
+!dDlrP#!Zrj53!)b`K@-+F'8p3!!S6[S'HR!!,J"#3$e!ri`NE[qNeI`!!)!!,8V
+rU#eZrk6rN!!YI!!!J!$rk%KZrqJ[,[qN)'i!*%k3!&"2)#lrk'B+F'Fp3!!S6[S
+'0#4Zrj!!8NUel[qSBfJJE[q3!&*)NHlrU#e)rr3JE[q3!*(Zrk3Y52r`)'lrU*(
+Zrj!!,8Mrl#!)C`iJE[q3!#*Zrk3J,[rXSLiNE[qNeHlrl#e+rj!!5'lrm#mZrk3
+JEJ!N6T!!8%mJ,[r`X+lrp'3+F'Fp3!!S6[S&`#"Zrj!!8UlrN!!3%"e!rk"b!")
+!dN&636e"rp!`,[r3d%!p32r5)'i!(#!3d+i!)#e!rl!N3#m-,blrZ$mm!53[,[q
+3!%kkqr*2l`!1-J!J#R!!-!(4V[q3!#m-,blrY$mm!53[,[qi6VS(ZNr[!!i[,[q
+m2c`"*#mZrlJ[,[qd6VVjA%r[!!iN3#m-,blrZ$mZrp![,[q3!%kkqk"2l`!1-J!
+J#R!!-!(4V[q3!#m-,blrY$mZrp![,[qi6VS(D%r[!!i[,[r82blrd#mZrlJ[,[q
+d6VVj#Nr[!!j`!#i!3N!p32q-,@i!)2qX)'lrV,(Zrl"N!!5S3N!p32qB$'i#52q
+BC!!!`M!ZriaQ!!#-*'lrN!"55VAZrkKMD#"Zrj!!8NL4l[qS,8Mrp#"Zrj!!NHl
+rT#e)rr!JE[qSNHlrN!!Y52rX)!KR$L"Zrj!!)QlrT#!ZrqbL,L4Zrk69l[rX,8V
+rN!")E[r`,blrT#"Z!#41N!"36b!Zrr#`V[rdC!T`Cce!!#K1qJ4#)'lrN!"5V[q
+3!")3F!!3!5i!F!Jp32q--!Gb!F""d@lrQ$)ZrjK`!$!"d)$3V[qm)%!`%$e!rjJ
+J"q+),J"6E[q-B!$r1!4Z!NMrQ!aZ!3$rQ'33)'lrV&+Zrk`3V[qCB!$r#!4Z!3$
+rQ$JZrjKf!$B%,82rq0D$eUlrc#"$-"!p32qD)Llrq0+ZrmJJ34)3F!!3!6e!rja
++3'F!!-)-EJ!BriaL!!#B*'lrN!"55VAZrkKMD#"Zrj!!8NL4l[qS,8Mrp#"Zrj!
+!NHlrT#e)rr!JE[qSNHlrN!!Y52rX)!KR$L"Zrj!!)QlrT#!ZrqbL,L4Zrk69l[r
+X,8VrN!")E[r`,blrT#"Z!#41N!"36b!Zrr#`V[rdC!T`Cce!!#K1qJ-S)'lrN!"
+5V[q3!")3F!!3!63Zriab!$)#ikL1J&"ZriaJ!2pLF2pb)$JZrjaf!$B%NS2LU-"
+(d@lrQL!(jUJZ!*PZria#3$e!rjJ`,[qBX'lrdQ3!!-)`,[q-CJ!!M#4Zrj!!8NU
 el[qSBfJJE[q3!&*)NHlrU#e)rr3JE[q3!*(Zrk3Y52r`)'lrU*(Zrj!!,8Mrl#!
 )C`iJE[q3!#*Zrk3J,[rXSLiNE[qNeHlrl#e+rj!!5'lrm#mZrk3JEJ!N6T!!8%m
-J,[r`X+lrp'3+F'Fp3!!S6[S%3L"Zrj!!8UlrN!!5%(!!%!%Z!(!)28$rM$!(FJ(
-!3G&ZrjJb,[qBF!!`!G#!d+lr[#"!-"!p32qB)!ILL#i!8flrM'!!rcJ%EJ*)rjJ
--EJ%!rjKN%#"Zrka5V[qX%+lrQ@!!r`J%EJ%!rjJi,[qBGJ!f"#e$rrM@JpDZrm`
-J3c!328$rQL)ZrrM5V[r))%%5%(!!%!%p32qF5N"R!!$#$'i!'2q-BJ!!Q#4Zrj!
-!8NUel[qSBfJJE[q3!&*)NHlrU#e)rr3JE[q3!*(Zrk3Y52r`)'lrU*(Zrj!!,8M
-rl#!)C`iJE[q3!#*Zrk3J,[rXSLiNE[qNeHlrl#e+rj!!5'lrm#mZrk3JEJ!N6T!
-!8%mJ,[r`X+lrp'3+F'Fp3!!S6[S$+#"Zrj!!8UlrN!!5%(!!%!%d,[q-FJ!b!Z1
-SMS"3E[q-B!$rBR$rFL!i,[qFGJ!f"*+$iUM!4p&ZrjSJ"qDS,J#CE[q-3N!p32q
-B-#lrQ,"Zrp*N!!$#-#lrM'B!!)`NE[q3!&*+YHlrU'0S)'lrN!"55*(ZrkJY52r
-d)'lrN!#4l[qN,8Mrm#"ZrkL4l[q3!#e)rq`J#'F1)'lrN!!LE[qN)#lrl+)Z*'l
-rT0AZrq`Y5[q3!%KZrr![,[qN)'i!*%k3!&"2)#lrm,#Zrr4N#R"R28!!+%lk!PJ
-JE[q3!&+Zrj!!%K"`!"!",J"`#$e!ri``"h)"`%(4E[qB-LlrQ(!!-!(3J0#Zrp3
-J3$!328$rQ#!(iSJZ!&0ZriaJ!2mf-#lrdT&ZrjJi,[qBGJ!f"#e$rrc@JpDZrq3
-J3c!328$rRL)Zrrc5V[rJ)%%5%(!!%!%p32qF5N"R!!$#$'i!'2q-BJ!!Q#4Zrj!
-!8NUel[qSBfJJE[q3!&*)NHlrU#e)rr3JE[q3!*(Zrk3Y52r`)'lrU*(Zrj!!,8M
-rl#!)C`iJE[q3!#*Zrk3J,[rXSLiNE[qNeHlrl#e+rj!!5'lrm#mZrk3JEJ!N6T!
-!8%mJ,[r`X+lrp'3+F'Fp3!!S6[S"@L"Zrj!!8UlrN!!5%(!!%!%d,[q-FJ!b!Z1
-SMS"3E[q-B!$rBR$rFL!i,[qFGJ!f"*+$iUM!4p&ZrjiJ"qDS,J#CE[q-)'lrV$)
-Zrjj`!$!"NF!Y52q8XHi!)'9J)'lrP&+Zrj33%#"Zrka5V[qX%)!JE[q88UlrP"!
-3)'lrV&+Zrk`3J#"Zrj45V[q8%"!JE[qX8UlrV"#!-#lrQP0ZrjT+3'F!qpiJE[q
-88UlrP"!3)'lrV&+Zrk`3J'$F9QlrQL"Z!"M4aM)Zrjj`!$!")QlrV*2Z!##3!)Q
-4`#e)rj3`,[qDCbBJEJ!BdFDal[q8BaSJE[q88UlrP"!3)'lrV&+Zrk`3J&0ZrjT
-Je#eZ!#$rP$!ZrjT6E[qD5N"R!2YQ)'lrP&+Zrj33%#"Zrka5V[qX%)"Jh#"Zrkb
-al[q`C`K`Cce!!#KJ&#"Zrkb4lJ!J)Qi!(#+)3N!p3!!S60mFq%jH)&p2l`!J6Y!
-!F$`!2L!!!(JJ2M!J*LBJH#!m26-b!!!k3fpYF(*PFh0TEfik4'9MEfe`FQ9cFfP
-[EM!c-$%ZB`!!2!!q)!!!H#!q-#!Q*L"i)$`p-c)!!$T$Efe`FQ9cFfP[EMT%C@0
-[EA"bCA0cD@pZ-$-`-5jM!!"19[rS51FI1$iZ!!JSEJ!-0Li!#R!!-!-i"h)!-J5
-3!)&b!E#"E`!"Y$e%rqJp3rrU8Qlrk$!ZrqL`EJ!+C"ab!$)!dS`J34!30!Gb!$)
-#dS`J34)3X!&N!Q$@8flrkM!ZrqU`4f-FFJ!b!0+-)%%3%$3(FJ!b!Y+-)%%5%,!
-"B`*Jf$!ZrqL`E[rUC3*JFMJZrqKf!$B%,82rm0D-*%-5%R!!%!%p32rX1LlrkRJ
-!1!8Y42rdf)`Q4"!6&)!@V[rY)#lrm0#!d+i!%#"!-"!p32rX)Llrp0+"dUi!%#"
-"-K!N,[r`e),8VJ!3)%)`J5)Zrr65JG+Z!"!J36#!B!$r-M!ZrqU`4fB'8NGJ!2m
-%1!Gf!$B%,82rq0D-*%-5%R!!%!%p32rX2#lrkRS!1JBY4IrmfS`Q44!6&)!@V[r
-Y)#lrq0#!d+i!%#"!-"!p32rX)Llrr0+"dUi!%#""-K!N,[rie),8VJ!3)%)`J5)
-Zrrc5JG+Z!"!J36#!)#lrr#)ZrrL3!)%d,J!+FJ!b!L3Zrra5JT+#X)&X(LmZ!"!
-[$$m'2`41Z[jF6qm!$$!ZrqT53$i!B!$qA#mZ!"![$$mZ!!S`,[rU8N!r!%kkrMC
-2l`!-2@lrkJ!+B!$q1%cI(2K1ANje6PErj%MR(cJNEJ!)1Li!$#CZ!!iSEJ!5,8c
-rm#!m!!!"*0R!,8crp%*!2!!f"VC&C#ai!$J$,86rq0L+)%33%#)ZrrM5V[r`)%%
-3J#!ZrrM3J0#Zrr3J3$#$8NCJcLmZrr3[,[r`2`9#CdkkrE*2l`!-3N!m!$B'YN9
-N%R!!-!23V[r`)%"+%'B%8NCJk(!!,8$rj$B'YN9N!!#S5N0R-L!Zrq4i!$J$,86
-rr0LZrr!J4"33FJ!5!LBZrra6JpDZrr!J3aB3G!!8!j+#ikJY32rN0!Cb!$)#dUl
-rm#""%K"`!"!"2J!YE[rNrqa`!#e!rqJ`"e0(5N"R)#!ZrqMML#)Zrqad!F+#J)%
-Y32rS)#lrl1+),8$rl'$B0!Cb!$)#dS(5V[rd)%%b%(!!-!(PJ0#,)%!JV[rS8NC
-5V[rNB!$r9%cI(2K1ANje)PmJAk!P,S"U!N+A6Y%LAa)I-"p+!@F%TdCJ!U0',SK
-1d5*I%Km`(b"I5J&R"+C(B!+L4dl4!*!$#J!iS!%!"3#3"J%!!!'MLJ!"SSS!!!9
-,8dp59!I#!)!!(!4b!"C"6&*8!!S!ZN&9Fc)!!!%q3Nj%6!!"!8T$6P4-!!!"BN0
-24%8!"`&Z4%&833!!!Fj%594-!!m"fN4-6dF!"!+D4P*&4J!%!YC'C@&d!!!$%NP
-$6L-!"!-H58026J!!!eT35808!!3$CP"cCA3!!!1L8dPD43!!!kj69&)J!!%$ZP0
-88L-!!!25BA9cG!!"!pjMD@0Z!!!$pQ4MG')!!33#C'aRH!!"""TTBf`i!!!%-RC
-PFR-!!33q!)$rrb!!N!L"rrmJ!!!3!*!&J[rr)!!!)!#3"BArrb3!!$!"*H[X!)E
-rrb3!!%!"*H[S!)Irrb!!!&!!N!@)rrmJ!!"J!*!%!J$rrb!!!()!N!3#!Irr)!!
-!JJ#3"!3"rrmJ!!#5!*!%"+rrr`!!'&J!N!FH!!!BD!#3"B$rr`!!')`!N!3"!2r
-r!!!Ba!#3"!%)rrmJ!"MN!*!'rrmS!BIJ!*!&!3#G(!!QV`%Pkm`!!J#R(!#`I!%
-PkmJ!!`#a(!$0R`%Pkm3!"!#l(!%*X3%Pkm!!"3$&(!%l2J%Pkl`!"J$2(!&Em3%
-PklJ!"rrr!!')#J#3"[rr+!#"l!#3"B$rr`#3!k)!N!@#rrm!!!%!N!D&rrmN!!&
-H!5AVj!#'rrmN!!'d!5AVi!#(rrm!!!)e!*!&L2rr!!!#K3#3"EArrb!!!ed!N!3
-""Irr)!!$c`#3"!%(rrmJ!"Mr!*!%!3Mrrb!!'D!!N!3#!2rr!!!%I!#3"!)"rrm
-!!!5k!*!%!qMrrb!!"3B!N!3%!Irr)!!&-J#3"!4,!#d%!"T$!5AVh!5[rrm!!"U
-6!*!%!38!!#!!"E)!N!3""`!j)!!Dd3#3"!%)!%SJ!"VY!*!%!qMrrb!!"G3!N!3
-%5`"Q"!!E#3%PkpJ!J2rr!!!E)J#3"B(rr`!!'bd!N!@#rrm!!"Xi!*!&Jrrr!!!
-E3`#3"B6rr`!!'di!N!Err`!"SR`!N!@!rrm!!"YC!*!&JIrr!!!FA3#3"B,rr`!
-!(@%!N!@$rrm!!"jP!*!&K2rr!!!ID3#3"!4,rrm%!#"Y!5AVe!##rrm!!!A`!*!
-%!qMrr`!!"a-!N!3%62rr!!!1)3#3"!40rrm!!!rD!*!%"%lrr`!!%C-!N!@!rrm
-!!"-K!*!%rj!%!!'(r!#3"!)!!!FJ!"GB!*!%!J%!$L!!&fJ!N!@!rrm!!"Gd!*!
-(FJ!!)1J!N!@%rrm!!#&$!*!%"%[rr`3!)8F"*H[3!3Arr`!!&l3!N!3"#2rr!!!
-LE3#3"!%&!"F!!"IP!*!%!3J!J3!!)U%!N!@%rrm!!#+V!*!&!Irr)!!Al`#3"3,
-rrb!!'$)!N!3'8h4KG(9c"R"bEfe`G!M%)(0eCQCTH!C6G'&dGA-16hGZCA)JFQ9
-cEh9bBf8,5@jcCA*d)%4TFfX34AKTFh4TEQG3BA0cGfpbC"Y&H'PcG'PZCe"KFh0
-hEh*N,8&`F'9KFQ&ZBf8,5@jcCA*d)%4TFfX16hGZCA)JFQ9cEh9bBf8E4AKTFh4
-TEQG3BA0cGfpbC#e"F("PBA*KEQ0P#90PCfePER3J-3P6C@GYC@jd)$)*8f9RE@9
-ZG#!c#90PCfePER3J03P6C@GYC@jd)$B*8f9RE@9ZG#!fDr!:
+J,[r`X+lrp'3+F'Fp3!!S6[S#@#"Zrj!!8UlrN!!5%(!!%!%Z!(!)28$rM$!(FJ(
+!3G&ZrjJb,[qBF!!`!G#!d+lre#"!-"!p32qB)!ILL#i!8flrM'!!rcB`,[r5N@l
+rQ$JZrjKf!$B%,82rr0D$eUlrj#"$-"!p32qH)Llrr0+Zrq!J34)3F!!3!6e!rja
++3'F!!-)-EJ!BriaL!!#B*'lrN!"55VAZrkKMD#"Zrj!!8NL4l[qS,8Mrp#"Zrj!
+!NHlrT#e)rr!JE[qSNHlrN!!Y52rX)!KR$L"Zrj!!)QlrT#!ZrqbL,L4Zrk69l[r
+X,8VrN!")E[r`,blrT#"Z!#41N!"36b!Zrr#`V[rdC!T`Cce!!#K1qJ&D)'lrN!"
+5V[q3!")3F!!3!63Zriab!$)#ikL1J&"ZriaJ!2pLF2pb)$JZrjaf!$B%NS2LU-"
+(d@lrRL!(jUJZ!*PZri`JE[qX-LlrRR!!-!'4`#e)rj5alJ!JC@!JE[q88UlrP"!
+3)'lrV&+Zrk`3J#"Zrj45V[q8%"!JE[qX8UlrV"#!)'lrP&+Zrj33%#"Zrka5V[q
+X%)!`,[qD8flrQNT!C`$lhL"Zrj45V[q8%"!JE[qX8UlrV"#!B0a@E[qD)'i!'0(
+'-LlrRR!!-!%LE[qXNqi!)*!!LC(!,8MrP$!ZrjTR*L"Z!"M4aV(Zrj4M'L"Zrj4
+5V[q8%"!JE[qX8UlrV"#!8flrQQ$8,@i!)2q8-#lrQP0ZrjT+3'F!qfBJE[q88Ul
+rP"!3)'lrV&+Zrk`3J'$F)'lrV,(Zrl"R#("R28!!+'!8)'lrV*(Z!#!LEJ!F)SK
+#3$e!!#K-haci6PiJAdr[!#"1d!"`2!!q)!!!H#!q-#!Q*L"i)$`p-c)!!$T$Efe
+`FQ9cFfP[EMT%C@0[EA"bCA0cD@pZ-$-`-5jM!!!m!$iJ!!"i)$i`)#BQ)(JJ2$d
+c-J!!1N0[EA"bCA0cD@pZ1N4PBfpYF(*PFh0TEfi`-c!a,Q-!!%j@rqK)jami2Li
+!##KZ!!`f,J!+F!!`!cJ(FJ!b"*!!JA)"X)&[!!'d286rk$e$rqT5E[rS-#lrk,"
+Z!!TN(()!-J$5M#""%"!d"h)!-J,5M#""%K#`!@3#B0C6E[rU-#lrkV"(Baab!$)
+!dS`J34!30!Gb!$)#dS`J34)3X!&M!Q$B-#lrk,"ZrqTP!Q"b1#lrk(B!0J3Y3rr
+`eS`N3a)5F!!3!6e!rq`k,[rUH!!i"5e%rr6BM#C%%"-8J"DZrqdJ,[r`d)$3VJ!
+3)%!`%$e!rq`L,[rddS(5VJ!3)%%b%#3Zrr$8JY5Z!"!J3M#")Llrp0+"dUi!%#"
+"-)"J!2mb-#lrkV"(CJC54f!!r`3i"hB!0J3Y3rrieS`N3a)5F!!3!6e!rq`m,[r
+UHJ!k"Le&rrcDM#C&%"-8J"DZrqdJ,[rid)$3VJ!3)%!`%$e!rq`L,[rmdS(5VJ!
+3)%%b%#3ZrrM8JY5Z!"!J3M#")Llrr0+"dUi!%#""-)!J,[rm)Llrq*!!J63Z!!T
+b!$)#*#lrr&+#NS+`J@`H,bi!%#m-2`Br"%kkrPa2l`!--#lrkP*!2J"J!2jF,bi
+!%#m-2bi!#M!ZrqT53$m!6VVq0Nr[!!`pE[rU!!TJ!2ii60mFq%jH6R919[rN51F
+I1#4Z!!Jk,J!-*Qi!$LKZ!")Y62r`)$`!!!%NfF!Y62rd3N!m!$B'YN9N,(J!1!-
+Y42rif)SJ4"!3)Llrq0+Zrr!J34#!)#lrq0#!d+lrp#"!-)054Q$1,blrp#mZrr!
+r"8*R6VVpXNr[!!a#3$`!0JDf4@35F!!`!p#Zrr!J3%S3CJ454Q$SF!!Y32rN0JD
+f4@3!!+K+3fFb)#lrj(J!1!-Y42rmf+lrm#"%&""b!")#*Llrr&1$eUlrm#"$&K"
+d!"3$NS,MU#e!rq3d"R)!-J,5V[r`)%%5%(!!%!%q!#eZrq6rl(!!,8$rk$!(8dG
++3'FJ)#lrk11))Llrl(3"`S+!J5e!rqJJ,[rXiSJY32rXB0Jd"R)!-J,5JG+Zrr3
+J36)3F!!`!H@!d)XJ3##ZrqK54P+Zrq4J!2p860mFq%jH6R8LAb"IS#8ZJ'S#3TG
+1d5*I%Km`(dS"C`5R4Q!#SdBZL%l4)Pm5(c!I)&p+!@F%TNGJ!U*(6Y%!!!%!!!)
+rR`!#2Tm!!!5N8dp59!1H!)!!(!2D!"9"6&*8!!S!XN*14%`!!!%f3dj86!!!!8*
+$6d4&!!F"6N4"9%%!!!'Z4%P86!!2!ET%6%p(!!3#HNC548B!!!+f5801)`!!!X*
+*3dp1!!!#cP"*3e3!!`,D8(0PG!!!!`T659T&!!!$&P088L!!!3-L8e45)`!!!cT
+KGA0d!!!$4Q0TBfi!!!05C'0dBJ!"!ejNE'Gi!!%$GQPME$J!!!11D@0ZF`!!!jT
+fCA*c!!%$TJ#!rrmJ!*!$)2DTK!#"rrmJ!!!3)2DTJ!##rrmJ!!!J)2DTI!#&rrm
+N!!!`)2DU'!#'rrmN!!"!)2DU(!#(rrmJ!!"3)2DTH!#)rrmJ!!"J)2DTG!)!rrm
+J!!"b)2DTF!)"rrmJ!!##)2DTE!3"rrmJ!!#5)2DTD!5[rrm!!$%8)2DTC!%!rrm
+!!-k')2DTB!%)rrmJ!$%N)2DTA!!!rrmS!L3$)2DT@!!"!)iF!-kQ)2DU"!!#!*J
+F!8XQ)2DU!!!$!+)F!@IH)2DTr!!%!+`F!D@$)2DTq!!&!,BF!GF3)2DTp!!'!-!
+F!IJk)2DTm!!(rrm!!L3Y)2BjV!!!rrmS!4eK)2DT9!#!rrm!N!1L)2DT8!##rrm
+!!!%!)2Bk2!#&rrmN!!&H)2DU%!#'rrmN!!'d)2DU)!#(rrm!!!)e)2Bk1!#)rrm
+!!!+&)2Bk0!#errmJ!!0G)2Bk-!%&rrmJ!!22)2Bk,!%(rrmJ!$%r)2Bk+!%)rrm
+J!$(J)2Bk*!)!rrm!!!5!)2Bk)!)"rrm!!!5q)2Bk(!2SrrmJ!!8+)2Bk'!3"rrm
+J!!8J)2Bk&!4,!"i%!$+$)2DU,!5[rrm!!$,6)2Bk%!%&!!!J!!@J)2Bk$!%(!#S
+J!$-4)2Bk#!%)!$XJ!$-Y)2Bk"!2SrrmJ!!A#)2Bk!!4,!&F%!$0*)2DU-!#%rrm
+!!$0L)2Bjr,qjrrm!!-f#)2Bjq!4,rrm%!$0Y)2DU#!##rrm!!!AH)2Bjp!2Srrm
+!!!F")2Bjm!4-rrm!!!i2)2Bjl!41rrm!!#Ya)2Bjk!#!rrm!!#[P)2Bjj2q3"!!
+#*"mJpMRJ!J!!"b!!-"`JpMRF!J%!$L!!-#`JpMRB!)$rr`!!-$JJpMR8!*!$B`!
+!-qJJpMR3"%[rr`3!0%-JpUS-!3Arr`!!-(JJpMR-!3Mrr`!!0@NJpMR)!38!&`!
+!-+NJpMR%!3J!FJ!!0CdJpMR![lRrr`!!bAiJpMQm[lRrraJ!0DFJpMQi!!(rrb!
+!-,-JpMQd!!,rrb!!-2)JpMQ`"P0dBA4eF`C`FQpYF(3)a#"cG@CQDAJ'8h4KG(9
+c#dPZFf9bG#"%DA0V%%9iDA0dD@jR8'&cFhG[FQ3E4AKTFh4TEQG3BA0cGfpbC#e
+"F("PBA*KEQ0P#dPZFf9bG#"%DA0V$NphEQ9b)(*PFfpeFQ0P'd9iDA0dD@jR8'&
+cFhG[FQ3Y3A"`C@&bB@jMC3P6C@GYC@jd)$%*8f9RE@9ZG#!b#90PCfePER3J-`P
+6C@GYC@jd)$8*8f9RE@9ZG#!f#90PCfePER3J0RQ*:
diff --git a/docs/mac/install.txt b/docs/mac/install.txt
index 6704369180..3ce9533a50 100644
--- a/docs/mac/install.txt
+++ b/docs/mac/install.txt
@@ -1,26 +1,45 @@
+Installing and compiling wxMac
+============================================================
+
+On MacOS X, you can download Apple's free developer tools (gcc
+and associated headers and libraries, such as the Carbon API).
+You can then use configure in a similar way to compiling
+wxWindows on Linux, (or on Windows using MinGW or Cygwin). See
+'Apple Developers Tools' below for more details on using
+configure.
+
+To target on MacOS 8 or 9, you need to buy Metrowerks
+CodeWarrior. You can then compile Mac Classic or MacOS X
+applications on Mac OS X, or compile Mac Classic or MacOS X
+applications on Mac Classic. However you can only run and debug
+each type of application on the target operating system.
+
 Installing latest headers (and Carbon Support)
 ----------------------------------------------
 
-NOTE : these steps are not necessary for Pro 6, only for Pro 5.3
+NOTE: these steps are not necessary for CW Pro 6 and above,
+only for CW Pro 5.3.
 
-the latest build for carbon support lead to a few changes you will have to
+The latest build for carbon support leads to a few changes you will have to
 follow, in order to successfully compile the code (also necessary if you don't
-want to build the carbon targets)
-
-1. you need CodeWarrior Pro 5.3 , i.e. 5.0 with all the upgrades
-2. you have to download the 3.4.0 (or greater) universal interfaces from 
-	ftp://ftp.apple.com/developer/Development_Kits/UniversalHeaders3.4.1.img.bin
-3. put the Interfaces and Libraries Folder into the MacOS Support folder and replace older versions
-4. remove from the MacOS Support folder the separate OpenTransport folder
+want to build the carbon targets).
+
+1. You need CodeWarrior Pro 5.3 , i.e. 5.0 with all the upgrades.
+2. You have to download the 3.4.0 (or greater) universal interfaces from 
+	ftp://ftp.apple.com/developer/Development_Kits/UniversalHeaders3.4.1.img.bin.
+3. put the Interfaces and Libraries Folder into the MacOS Support folder and
+   replace older versions.
+4. remove from the MacOS Support folder the separate OpenTransport folder.
 5. open the file MacOS Support:MacHeaders:MacHeaders.c and add the line
 		#include <ControlDefinitions.h>
 	after the 
 		#include <Controls.h>
-6. rebuild all MacHeaders from the MacHeaders.mcp project in the same folder
+6. rebuild all MacHeaders from the MacHeaders.mcp project in the same folder.
 
-if you want to build the carbon targets, you will also need the latest
+If you want to build the carbon targets, you will also need the latest
 carbonized version of MSL from Metrowerks, at the time of writing, this meant
-applying the changes from the folders
+applying the changes from the folders:
+
 CodeWarrior Pro 5:Pre-Release:Carbon & MacOSX Development:Carbonized MSL and
 CodeWarrior Pro 5:Pre-Release:Carbon & MacOSX Development:Carbonized Runtimes 
 (consult the file CodeWarrior Pro 5:Pre-Release:Carbon & MacOSX Development:Carbon & MacOSX README)
@@ -43,8 +62,9 @@ libraries and headers from http://developer.apple.com/opengl/index.html
 If you want OpenGL support with CodeWarrior, set wxUSE_OPENGL to 1 in
 include/wx/setup.h
 
-If you don't want OpenGl support, remove the file "glcanvas.cpp" from the
-project before compilation and leave the setting at 0
+If you don't want OpenGl support, set wxUSE_OPENGL to 0 (the
+default) and remove the file OpenGLLibraryStub from the project
+before compilation.
 
 If you want OpenGL support with the Apple Developer Tools under Mac OS X, add
 --with-opengl to the arguments of configure when configuring wxMac.
@@ -56,16 +76,22 @@ The project files are stored as xml text files and converted to binary
 CodeWarrior projects in the distribution (see AppleScript Files below):
   - *M5.xml -> *M5.mcp for CodeWarrior 5.3
   - *M6.xml -> *M6.mcp for CodeWarrior 6
-  - *M7.xml -> *M7.mcp for CodeWarrior 7
+  - *M7.xml -> *M7.mcp for CodeWarrior 7 and above.
 
 In order to build the library (and then the samples) you need to make the
-following projects (for 5.3)
-:src:wxxindowsM5.mcp
+following projects (for CW 5.3, similar process for CW 7):
+
+:src:wxwindowsM5.mcp
 :src:png:pngM5.mcp
 :src:tiff:tiffM5.mcp
 :src:jpeg:jpegM5.mcp
 :src:zlib:zlibM5.mcp
 
+Note that if using CW 8 and above, when compiling the samples
+you may need to edit the target settings, click on Language
+Settings, C/++ Language and remove the forward slash at the
+start of /wx/wx_cw_d.h (or similar filename).
+
 AppleScript Files
 -----------------
 
@@ -125,3 +151,4 @@ Missing PLStringFuncsLib
 ------------------------
 
 You will have to build All Targets for MacOS Support:Libraries:Sources:PLStringFuncs:Glue:PLStringFuncsGlue.mcp
+
diff --git a/docs/mac/readme.txt b/docs/mac/readme.txt
index be39b1ff7a..8ec6507fc0 100644
--- a/docs/mac/readme.txt
+++ b/docs/mac/readme.txt
@@ -4,7 +4,7 @@ More Information is available from the wxWindows project home page at
 
 http://www.wxwindows.org 
 
-For more information, please see changes.txt, todo.txt, and the
+For more information, please see install.txt, todo.txt, and the
 manuals.
 
 Please send problems concerning installation, feature requests, 
@@ -12,7 +12,7 @@ bug reports or comments to the wxWindows users list. Information
 on how to subscribe is available from the wxWindows.org homepage.
 
 Questions/Problems related directly to the mac port can be sent directly
-csomor@advancedconcepts.ch
+csomor@advancedconcepts.ch.
 
 wxWindows/Mac doesn't come with any guarantee whatsoever. It 
 might crash your harddisk or destroy your monitor. It doesn't 
@@ -20,4 +20,4 @@ claim to be suitable for any special or general purpose.
 
 Regards,
 
-Stefan Csomor
\ No newline at end of file
+Stefan Csomor
diff --git a/docs/mgl/install.txt b/docs/mgl/install.txt
index 133e568a3a..6da271dc36 100644
--- a/docs/mgl/install.txt
+++ b/docs/mgl/install.txt
@@ -11,20 +11,25 @@ IMPORTANT NOTE:
   
   When sending bug reports tell us what version of wxWindows you are 
   using (including the beta) and what compiler on what system. One 
-  example: wxMGL 2.3.3, gcc 2.95.3, Redhat 7.0
+  example: wxMGL 2.3.4, gcc 2.95.3, Redhat 7.0
 
 First steps
 -----------
 
 - Download SciTech MGL library (version 5.0) from http://www.scitechsoft.com.
-  The downloads page is here:
+  The downloads page is here (you need MGL version 5.0beta7 or newer):
   http://www.scitechsoft.com/products/embedded/mgl_home.html
-  (You needed a version newer than Beta 5! Preferably the up-to-date one from 
-  SciTech Perforce repository.)
-  Install it according to provided instructions. In particular, make sure that
+  
+  Install MGL according to provided instructions. In particular, make sure that
   MGL_ROOT and NUCLEUS_PATH environment variables are set before attempting to
   build wxMGL.
 
+  Make sure you installed all MGL components, including the "fonts" package
+  (it's called mgl50b7-font.tar.gz in Linux version). It is important to have
+  SciTech's basic fonts in $(MGL_ROOT)/fonts directory (you may want to add
+  Arial TrueType font for better output quality) and basic cursors in 
+  $(MGL_ROOT)/cursors. wxMGL depends on their presence.
+
 - Download wxMGL-x.y.z.tgz, where x.y.z is the version number.
   Download documentation in a preferred format, such as
   wxWindows-HTML.zip or wxWindows-PDF.zip.
diff --git a/docs/microwin/readme.txt b/docs/microwin/readme.txt
index c9d3d56524..05978742be 100644
--- a/docs/microwin/readme.txt
+++ b/docs/microwin/readme.txt
@@ -60,7 +60,7 @@ MicroWindows:
 
 wxMicroWindows:
 
-- Download wxMSW 2.3.3 or greater, or get it from CVS
+- Download wxMSW 2.3.4 or greater, or get it from CVS
 
 - Copy include/wx/msw/setup_microwin.h to include/wx/setup.h if
   include/wx/setup.h doesn't exist
diff --git a/docs/motif/install.txt b/docs/motif/install.txt
index c0c3157acb..6444041525 100644
--- a/docs/motif/install.txt
+++ b/docs/motif/install.txt
@@ -11,7 +11,7 @@ IMPORTANT NOTE:
   
   When sending bug reports tell us what version of wxWindows you are 
   using (including the beta) and what compiler on what system. One 
-  example: wxMotif 2.3.3, gcc 2.95.4, Redhat 6.1
+  example: wxMotif 2.3.4, gcc 2.95.4, Redhat 6.1
 
 First steps
 -----------
diff --git a/docs/motif/readme.txt b/docs/motif/readme.txt
index d8f0554207..363c122331 100644
--- a/docs/motif/readme.txt
+++ b/docs/motif/readme.txt
@@ -1,7 +1,7 @@
 
-  Welcome to wxWindows/Motif 2.3.3
+  Welcome to wxWindows/Motif 2.3.4
 
-You have downloaded version 2.3.3 of the Motif port of
+You have downloaded version 2.3.4 of the Motif port of
 the wxWindows GUI library.
 
 More information about the wxWindows project as a whole
diff --git a/docs/msw/install.txt b/docs/msw/install.txt
index 5e93a604ec..93b948fa1f 100644
--- a/docs/msw/install.txt
+++ b/docs/msw/install.txt
@@ -1,8 +1,8 @@
 
-Installing wxWindows 2.3.3
+Installing wxWindows 2.3.4
 --------------------------
 
-This is wxWindows 2.3.3 for Microsoft Windows 9x/ME, Windows NT,
+This is wxWindows 2.3.4 for Microsoft Windows 9x/ME, Windows NT,
 Windows 2000 and Windows XP. This is an unstable development release.
 
 Please note that the library naming conventions for VC++
@@ -25,11 +25,15 @@ Please report bugs using the SourceForge bug tracker:
 Unarchiving
 -----------
 
-A setup program is provided (setup.exe) to automatically copy files to a
-directory on your hard disk. Do not install into a path that contains spaces.
-The installation program should set the WXWIN environment variable, which
-will be activated when your machine is rebooted. The setup
-program contains the following:
+A setup program is provided (setup.exe) to automatically copy
+files to a directory on your hard disk. Do not install into a
+path that contains spaces. To avoid confusion with other
+wxWindows installations that might be on your machine, the
+installation program does not se the WXWIN environment variable;
+please set this by hand via the System applet if you wish to
+make it permanent.
+
+The setup program contains the following:
 
 - All common, generic and MSW-specific wxWindows source;
 - samples;
@@ -58,9 +62,9 @@ Other add-on packages are available from the wxWindows Web site, such as:
 General installation notes
 --------------------------
 
-Alter your WXWIN environment variable to point to this directory.
-For Cygwin or Mingw32 compilation, make sure WXWIN contains only
-forward slashes.
+Alter your WXWIN environment variable to point to the root directory of the
+wxWindows installation. For Cygwin or Mingw32 compilation, make sure WXWIN
+contains only forward slashes.
 
 If installing from the CVS server, copy include/wx/msw/setup0.h to
 include/wx/msw/setup.h and edit the resulting file to choose
@@ -225,12 +229,13 @@ executables.
 Borland C++ 4.5/5.0/5.5 compilation
 -------------------------------
 
-Compiling using the makefiles (updated 24 Seot 02):
+Compiling using the makefiles (updated 24 Sept 02):
 
 1. Make sure your WXWIN variable is set [e.g add
    set WXWIN=c:\wxwindows
-   to your autoexec.bat file], and that it uses the FAT (short
-   name) form with no spaces.
+   to your autoexec.bat file], The WXWIN variable should contain neither spaces nor -
+   You may like to use the short form as shown by a dos directory listing ; 
+   eg instead of c:\wxwindows-2.3.4 use c:\wxwind~1.4
    Reboot if needed for the changes to autoexec.bat to take effect.   
 2. Change directory to src\msw. Type 'make -f makefile.b32' to
    make the wxWindows core library. Ignore the compiler warnings.
@@ -261,7 +266,20 @@ Compiling using the makefiles (updated 24 Seot 02):
    and then for each sample,
    'make -f makefile.b32 WXUSINGDLL=1 FINAL=1'
 
-6. To make console mode applications with wxWindows functions go
+6. You can use the WXUNIVERSAL widgets instead of the native MSW
+   ones (eg if you want to build an application with the same
+   look and feel on all platforms)
+   Use the command
+   'make -f makefile.b32 WXUSINGUNIV=1'
+   Then run
+   'make -f makefile.b32 WXUSINGUNIV=1' in the sample directory  which you wish
+   to build using the wxUniversal widgets. Use 'SET WXTHEME=GTK' [or  WIN32 or METAL]
+   to test the existing themes
+   The makefile is written with the intention that you can build DLLs
+   and  do final releases by combinations of commandline parameters.
+   At the time of writing, (Oct 02) not all the wxDialogs are working
+
+7. To make console mode applications with wxWindows functions go
    to the src\msw directory
    'make -f makebase.b32 clean'
    'make -f makebase.b32'
@@ -390,7 +408,7 @@ Metrowerks CodeWarrior compilation
 ----------------------------------
 
 1. CodeWarrior Pro7 project files in XML format are already 
-   included in wxMSW-2.3.3.zip and the setup version.
+   included in wxMSW-2.3.4.zip and the setup version.
 2. Review the file include\wx\msw\setup.h (or include\wx\msw\setup0.h if 
    you are working from the CVS version) to make sure the settings reflect 
    what you want.  If you aren't sure, leave it alone and go with the 
@@ -471,7 +489,7 @@ provide Unix-like tools that you'll need to build wxWindows.
 The solution prior to MSYS was to download extra utilities from
 ports/mingw32 on the wxWindows ftp site or CD-ROM:
 
-  ftp://biolp22.york.ac.uk/pub/ports/mingw32/extra.zip
+  ftp://biolpc22.york.ac.uk/pub/ports/mingw32/extra.zip
   
 These should be extracted to a directory in your path. If you have 
 already downloaded rm, cp, mv from elsewhere, or are using
diff --git a/docs/os2/install.txt b/docs/os2/install.txt
index da9882009e..1202b6de32 100644
--- a/docs/os2/install.txt
+++ b/docs/os2/install.txt
@@ -1,7 +1,7 @@
-Installing wxWindows 2.3.3
+Installing wxWindows 2.3.4
 --------------------------
 
-This is wxWindows 2.3.3 for IBM OS/2 Warp3 and Warp4. This is an unstable
+This is wxWindows 2.3.4 for IBM OS/2 Warp3 and Warp4. This is an unstable
 development release and OS/2 is considered to be in beta.
 
 IMPORTANT NOTE: If you experience problems installing, please
@@ -17,7 +17,7 @@ Unarchiving
 At this time there is no comprehensive setup.exe type installation program.
 wxWindows for OS/2 requires you download various .zip files and unpack them
 to your desired location on your system.  Pick a location say,
-C:\wx\wxWindows-2.3.3, copy the .zip files to there and unzip them ensuring you
+C:\wx\wxWindows-2.3.4, copy the .zip files to there and unzip them ensuring you
 unzip the subdirectories as well.  You will need:
 
 - All common, generic and OS2-specific wxWindows source;
@@ -30,7 +30,7 @@ unzip the subdirectories as well.  You will need:
 - PNG library source;
 - ZLIB library source;
 
-All but the documentation is included in wxOS2-2.3.3.zip, documentation
+All but the documentation is included in wxOS2-2.3.4.zip, documentation
 must be downloaded separately from the wxWindows Web site.
 
 Other add-on packages are available from the wxWindows Web site, such as:
@@ -46,27 +46,27 @@ General installation notes
 After unzipping everything your directory tree should look something like
 this:
 
-x:\wx\wxWindows-2.3.3\docs (your HTML reference manual)
-x:\wx\wxWindows-2.3.3\include\wx
-x:\wx\wxWindows-2.3.3\include\wx\generic
-x:\wx\wxWindows-2.3.3\include\wx\html
-x:\wx\wxWindows-2.3.3\include\wx\os2
-x:\wx\wxWindows-2.3.3\samples\....  (all the sample directories)
-x:\wx\wxWindows-2.3.3\src
-x:\wx\wxWindows-2.3.3\src\common
-x:\wx\wxWindows-2.3.3\src\generic
-x:\wx\wxWindows-2.3.3\src\html
-x:\wx\wxWindows-2.3.3\src\jpeg
-x:\wx\wxWindows-2.3.3\src\os2
-x:\wx\wxWindows-2.3.3\src\png
-x:\wx\wxWindows-2.3.3\src\tiff
-x:\wx\wxWindows-2.3.3\src\zlib
+x:\wx\wxWindows-2.3.4\docs (your HTML reference manual)
+x:\wx\wxWindows-2.3.4\include\wx
+x:\wx\wxWindows-2.3.4\include\wx\generic
+x:\wx\wxWindows-2.3.4\include\wx\html
+x:\wx\wxWindows-2.3.4\include\wx\os2
+x:\wx\wxWindows-2.3.4\samples\....  (all the sample directories)
+x:\wx\wxWindows-2.3.4\src
+x:\wx\wxWindows-2.3.4\src\common
+x:\wx\wxWindows-2.3.4\src\generic
+x:\wx\wxWindows-2.3.4\src\html
+x:\wx\wxWindows-2.3.4\src\jpeg
+x:\wx\wxWindows-2.3.4\src\os2
+x:\wx\wxWindows-2.3.4\src\png
+x:\wx\wxWindows-2.3.4\src\tiff
+x:\wx\wxWindows-2.3.4\src\zlib
 
 If you are using VisualAge, you will also need to ensure you have a
-\lib directory as well, x:\wx\wxWindows-2.3.3\lib
+\lib directory as well, x:\wx\wxWindows-2.3.4\lib
 and you will have to set a WXWIN environment variable in your
 config.sys,
-SET WXWIN=X:\WX\WXWINDOWS-2.3.3;
+SET WXWIN=X:\WX\WXWINDOWS-2.3.4;
 
 Compilation
 -----------
@@ -163,7 +163,10 @@ Compilation using EMX
 In addition to EMX-0.9d you will need a rather complete Unix-like
 environment, starting with a shell (e.g. ash) and most of the
 GNU file/text/shell utilities, but also flex, bison, sed, grep, awk
-and GNU make.
+and GNU make. Particularly note that uname is relevant to get the
+configure script working - the one from GNU shell utilities 1.12
+does work (check that uname -s returns "OS/2" and uname -m returns "i386"
+and you should be mostly fine.
 
 The first thing to do is to decide on a build directory. You can either
 do in-tree builds or you can do the build in a directory separated from
@@ -173,13 +176,17 @@ developping cross-platform applications you might want to compile (and
 update) e.g. wxGTK or wxX11 as well.
 
 In the following, let's assume you decided to build in
-\wx\wxWindows-2.3.3\build\pm. Now we need to set some environment
+\wx\wxWindows-2.3.4\build\pm. Now we need to set some environment
 variables, namely MAKE_SHELL (to a Unix like shell, let's assume ash)
 and INSTALL (to point to the install script. If you omit this, configure
 might find something like the system's tcpip\pcomos\install.exe which will
 not do the thing you want), e.g.
 SET MAKE_SHELL=ash
-SET INSTALL=/wx/wxWindows-2.3.3/install-sh.
+SET INSTALL=/wx/wxWindows-2.3.4/install-sh.
+
+Be warned that depending on the precise version of your make, setting
+MAKE_SHELL might not be sufficient, it might be necessary to set SHELL
+and even COMSPEC to a unix like shell as well.
 
 Now run the provided configure script by executing e.g.
 `ash -c "../../configure \
@@ -217,7 +224,7 @@ Finally, if you also want to build a different port, e.g. wxGTK, you
 essentially have to use the procedure described above, the only difference
 being that you have to pass a switch to configure indicating which port
 to build. If you do not do this in a separate build directory (e.g.
-\wxWindows-2.3.3\build\gtk), you'll have to do a `make clean' first.
+\wxWindows-2.3.4\build\gtk), you'll have to do a `make clean' first.
 The magical switches that have to be passed to configure for the various
 ports are --with-gtk (wxGTK), --with-motif (wxMotif), --with-x11 (wxX11),
 and --disable-gui (wxBase). Note that contrary to the native, PM based
diff --git a/docs/publicity/announce.txt b/docs/publicity/announce.txt
index f1941c35ba..0ef3435e40 100644
--- a/docs/publicity/announce.txt
+++ b/docs/publicity/announce.txt
@@ -1,4 +1,4 @@
-Announcing wxWindows 2.3.3: a cross-platform GUI toolkit
+Announcing wxWindows 2.3.4: a cross-platform GUI toolkit
 ----------------------------------------------------------------
 
 September 16th, 2002 -- the wxWindows team is pleased to
diff --git a/docs/publicity/publicity.txt b/docs/publicity/publicity.txt
index 362a44be1c..81eaa5841e 100644
--- a/docs/publicity/publicity.txt
+++ b/docs/publicity/publicity.txt
@@ -28,11 +28,23 @@ comp.windows.x
 comp.windows.x.announce
 comp.windows.x.motif
 
+Note: submissions to comp.windows.linux.announce must be
+sent to cola@stump.algebra.com, with short descr
+of software and location. See http://stump.algebra.com/~cola/
+NO CROSSPOSTING when sending to this address.
+
+Pack plenty information into the subject. 
+Don't write a subject like "Foo version 1.1 released". Many
+people will not know what Foo is, so the subject won't help them
+select articles. Instead, say "Foo 1.1 - copy files more
+efficiently than cp". There is no need to say that the article
+is an announcement, so don't write a subject like "ANNOUNCEMENT:
+Foo version 1.1 released". 
 
 News and links sites:
 -----------------------
 
-slashdot.org, freshmeat.net
+slashdot.org, freshmeat.net, http://lwn.net/
 
 Many of these links will be out of date now:
 
diff --git a/docs/readme.txt b/docs/readme.txt
index 989b190a88..98c9d2d6c7 100644
--- a/docs/readme.txt
+++ b/docs/readme.txt
@@ -1,4 +1,4 @@
-wxWindows 2.3.3
+wxWindows 2.3.4
 ---------------
 
 *** Please note that this is an UNSTABLE DEVELOPMENT SNAPSHOT.
@@ -204,5 +204,5 @@ web site.
 
 Have fun!
 
-The wxWindows Team, September 2002
+The wxWindows Team, November 2002
 
diff --git a/docs/tech/tn0010.htm b/docs/tech/tn0010.htm
index c8b8063f0a..8476f9a079 100644
--- a/docs/tech/tn0010.htm
+++ b/docs/tech/tn0010.htm
@@ -24,7 +24,7 @@ Compiling wxWindows applications in the VC++ IDE
 <P>
 
 <CENTER>
-<a href="#wxwin2">Settings for wxWindows 2</a> / <a href="#wxwin1">Settings for wxWindows 1.68</a>
+<a href="#wxwin2">Settings for wxWindows 2.2</a> / <a href="#wxwin1">Settings for wxWindows 1.68</a>
 </CENTER>
 
 <P>
@@ -44,9 +44,10 @@ installation path.
 
 <P>
 
-<H2><a name="wxwin2">Settings for wxWindows 2</a></H2>
+<H2><a name="wxwin2">Settings for wxWindows 2.2</a></H2>
 
-These settings apply to wxWindows 2.1.14 and above.<P>
+These settings apply to wxWindows 2.1.14 and above but most of them are not
+necessary any longer for wxWindows 2.3+.<P>
 
 <DL>
 <DT><B>General</B><DD>
@@ -206,77 +207,6 @@ Select your .rc file. The <B>Additional resource include directories</B> field s
 
 </DL>
 
-<P>
-
-<!--
-<PRE>
-From: "Chris Breeze" <chris@hel.co.uk>
-To: <wxwin-users@wx.dent.med.uni-muenchen.de>
-Subject: Re: Compiling 2.0 wxWin Apps in the VC IDE
-Date: Wed, 20 May 1998 14:18:02 +0100
-
-First the apology: the description below is for wx1.68
-not for wx2.0 - sorry if I confused everybody.
-
-Anyway, third time lucky I hope! The settings for
-VC++ 5.0, wx2.0 beta 8, NT Workstation 4.0 sp3
-are:
-
-In project / settings / C/C++:
-Add "__WINDOWS__" to the pre-processor definitions
-Add "{wx}\include" to the additional include directories
-where {wx} is the directory in which wx is installed
-
-In project / settings / Resources:
-add "{wx}\include" to the additional resource include directories
-
-In project / settings / Link:
-Add "wx.lib comctl32.lib dummy.obj" to the Object/Library modules
-
-Add "libcd.lib,libcid.lib" to ignore libraries (under the "input" category)
-
-Add "{wx}\lib,{wx}\src\msw" to the additional library path
-
-I have tested these settings on samples/minimal and can
-build exes which can be debugged using Developer Studio.
-
-I hope I've finally answered the original question. (Next time
-I'll read the question more carefully!).
-
-Regards,
-Chris
-
-Original message (settings for wx1.68c):
-) Try the following (tested with VC++ 5 on NT4):
-) 
-) Create a new Win32 Application project and insert the source files
-) (including .rc files).
-) 
-) In project / settings / C/C++:
-) Add wx_msw to the pre-processor definitions
-) add {wx}\include\base,{wx}\include\msw to the additional include
-directories
-) where {wx} is the directory in which wx is installed
-) 
-) In project / settings / Resources:
-) add {wx}\include\msw;{wx}\contrib\fafa to the additional resource include
-) directories
-) 
-) In project / settings / Link:
-) Add comctl32.lib wx.lib dummy.obj ctl3d32.lib to the Object/Library modules
-) 
-) Add libc to ignore libraries (under the "input" category)
-) 
-) Add {wx}\lib,{wx}\src\msw to the additional library path
-) 
-) These settings are for a debug build. You can use the same settings for
-) a release build apart from ignoring libc.
-
-</PRE>
--->
-
-</font>
-
 </BODY>
 
 </HTML>
diff --git a/docs/tech/tn0013.txt b/docs/tech/tn0013.txt
index 7eca5935ac..070b5deac3 100644
--- a/docs/tech/tn0013.txt
+++ b/docs/tech/tn0013.txt
@@ -13,7 +13,7 @@ the other Unix-based ports including wxMotif, wxX11 and wxBase.
 
 a) Do a fresh checkout using the command
 
-        cvs -d :pserver:anoncvs@cvs.wxwindows.org:/home/wxcvs co wxGTK
+        cvs -d :pserver:anoncvs@cvs.wxwindows.org:/packs/cvsroots/wxwindows co wxGTK
 
    NB: if you realize later that some needed files were not checked out
        by this command, please modify CVSROOT/modules to include the missing
@@ -80,7 +80,7 @@ a) Setting up the RPM tree: you should have the RPM tree set up properly
    dist").
 
 b) Start RPM build by going to RPM_ROOT directory and typing "rpm -ba
-   SPECS/wxGTK.spec". It may be a good idea to append "2&>1 | tee wxGTK.out"
+   SPECS/wxGTK.spec". It may be a good idea to append "2>&1 | tee wxGTK.out"
    (or "|& tee" if you're using the one true shell ;-) as it might be not
    easy to detect errors in the verbose rpm output if anything goes wrong.
 
diff --git a/docs/tech/tn0014.txt b/docs/tech/tn0014.txt
index d8c897fd19..21783d1812 100644
--- a/docs/tech/tn0014.txt
+++ b/docs/tech/tn0014.txt
@@ -4,7 +4,7 @@
                          !!!!! NOT YET FINISHED !!!!!
 
 0. Introduction
----------------
+===============
 
 This note describes the file format used for storing XRC resources that are
 used by wxXmlResource class. It is probably only useful for those implementing
@@ -20,31 +20,41 @@ The XRC format is based on XML 1.0 (please consult W3C's specification). There
 is no DTD available since it is not possible to fully describe the format with
 the limited expressive power of DTDs.
 
+
+
 1. Terminology
---------------
+==============
 
 The usual XML terminology applies. In particular, we shall use the terms 
-"node", "property" and "value" in the XML sense:
+NODE, PROPERTY and VALUE in the XML sense:
 
     <node property1="value1" property2="value2">...</node>
 
-The term "attribute" is specific to XRC and refers to a property-less subnode 
-of an <object> or <object_ref> node. In the example bellow, <pos>, <label> and
-<style> are attributes, while neither <resource> nor either of <object>s is:
+The term ATTRIBUTE is specific to XRC and refers to a subnode 
+of an <object> or <object_ref> node that is itself not <object> or <object_ref>. 
+In the example bellow, <pos>, <label> and <style> are attributes, while neither 
+<resource> nor either of <object>s is:
 
     <?xml version="1.0" encoding="utf-8">
     <resource xmlns="http://www.wxwindows.org/wxxrc" version="2.3.0.1">
         <object class="wxPanel">
-            <style>wxSUNKEN_BORDER</style>
+            <style>wxSUNKEN_BORDER</style>             <!-- attr -->
             <object class="wxStaticText">
-                <label>A label</label>
-                <pos>10,10</pos>
+                <label>A label</label>                 <!-- attr -->
+                <pos>10,10</pos>                       <!-- attr -->
             </object>
         </object>
     </resource>
 
+ATTRIBUTE VALUE is the content of all text elements within attribute tag. In the
+above example, "wxSUNKEN_BORDER", "A label" and "10,10" are attribute values.
+ATTRIBUTE TYPE defines what attribute values are valid for given attribute (you
+can think of it as attribute value syntax definition).
+
+
+
 2. Elementary description
--------------------------
+=========================
 
 XRC resource file is a well-formed XML 1.0 document. All elements of XRC file are
 from the http://www.wxwindows.org/wxxrc namespace. 
@@ -61,7 +71,7 @@ is 0 for the first incompatible change in given wxWindows release, 1 for
 the second etc.
 
 Differences between versions are described within this document in paragraphs
-entitled "Version Note". 
+entitled "Version Note".
 
 The <resource> node contains namespace declaration, too:
 
@@ -70,20 +80,232 @@ The <resource> node contains namespace declaration, too:
 The <resource> node is only allowed to have <object> and <object_ref>
 subnodes, all of which must have the "name" property.
 
-<object> - TODO (name, class, subclass)
+The <object> node represents a single object (GUI element) and it usually maps
+directly to a wxWindows class instance. It three properties: "name", "class"
+and "subclass". "class" must always be present, it tells XRC what wxWindows
+object should be created in this place. The other two are optional. 
+"name" is ID used to identify the object. It is the value passed to the XRCID() macro
+and is also used to construct wxWindow's id and name attributes and must be unique
+among all children of the neareset container object (wxDialog, wxFrame, wxPanel,
+wxNotebook) upside from the object in XML nodes hiearchy (two distinct containers
+may contain objects with same "name", though). "subclass" is
+optional name of class whose constructor will be called instead of the constructor
+for "class". Subclass must be available in the program that loads the resource,
+must be derived from "class" and must be registered within wxWindows' RTTI system.
+
+Example:
+
+    <object name="MyList1" class="wxListCtrl" subclass="MyListCtrlClass">
+        ...
+    </object>    
+    
+<object> node may have arbitrary child nodes. What child nodes and their semantics
+are class-dependent and are defined later in this document. The user is allowed
+to register new object handlers within XRC and extend it to accept new <object>
+classes (and therefore different <object>'s child nodes).
+
+<object_ref> node is identical to <object>, except that it does _not_ have "class"
+property and has additonal required property "ref". It's concept is similar to Unix
+symlinks: value of the "ref" property is equal to the value of "name" property of
+some existing node (called referred node) in the resources (not neccessary top-level). 
+Referred node's "class" property and all subnodes are copied in place of the referee
+<object_ref> node which is then processed as regular <object> node. If the <object_ref>
+node itself has child nodes, then these nodes _override_ any nodes from the referred node.
+
+Example:
+
+    <object name="foo" class="wxTextCtrl">
+        <value>hello</value>
+        <size>100,-1d</size>
+    </object>
+    <object_ref name="bar" ref="foo">
+        <value>bar</value>               <!-- override! -->
+    </object>
+
+is identical to:    
+
+    <object name="foo" class="wxTextCtrl">
+        <value>hello</value>
+        <size>100,-1d</size>
+    </object>
+    <object name="bar" class="wxTextCtrl">
+        <value>bar</value>
+        <size>100,-1d</size>
+    </object>
+
+
+
+3. Common attribute types
+=========================
+
+There are several attribute types (see section 1. Terminology) that are common
+to many attributes of different classes:
+
+String
+------
+Any text. Some characters have special interpretation and are translated
+by XRC parser according to this table:
+    "_"    -> "&"  ('&' is used to underline e.g. menu items in wxWindows)
+    "__"   -> "_"
+    "\n"   -> line break (C character '\n')
+    "\r"   -> carriage return (C character '\r')
+    "\t"   -> tabelator (C character '\t')
+
+Version Note:
+    '$' was used instead of '_' prior to version 2.3.0.1.
+
+
+I18nString
+----------
+Like String, but the value is translated to native language using wxLocale
+at runtime (unless it was disabled by not passing wxXRC_USE_LOCALE flag to
+wxXmlResource constructor). Used for strings that are "visible" in the GUI.
+
+
+UnsignedInteger
+---------------
+This is obvious. Only digits 0-9 may be present and there must be at least
+one digit.
+
+
+Integer
+-------
+Like UnsignedInteger but may be prefixed with '-' (ints less than zero).
+
+
+Position
+--------
+Specifies (window's) position in 2D space. Syntax is <integer>,<integer>[d]
+where <integer> is valid value of Integer type.
+
 
-<object_ref> - TODO (name, ref, subclass)
+Size
+----
+Syntax is same as Position's syntax, but the values are interpreted as window
+size (wxSize type) and not position (wxPosition type).
 
 
-3. Common attributes
---------------------
+Style[wxSomeClass]
+------------------
+List of style flags that can be passed to wxSomeClass' constructor. Flags are
+written in same way as in C++ code (e.g. "wxSUNKEN_BORDER", "wxHW_SCROLLBAR_NEVER")
+and are delimined with any combination of whitespaces and '|'. Possible flags
+are class-dependent and are not described in this technote. Please refer to wxWindows
+manual for all styles that given class can accept; if XRC does not accept a flag
+listed in wxWindows documentation, it is a bug.
+
+
+Bitmap
+------
+Attribute value is interpreted as filename (either absolute or relative to
+the location of XRC resource file). In addition, attribute node may have
+"stock_id" and "stock_client" properties. Their values may be any of wxArtID (or
+wxArtClient respectively) values as used by wxArtProvider (because the user may
+define own constants, efectively any string is legal here). Examples are
+"wxART_FILE_OPEN" (id) or "wxART_MENU" (client).
+
+Any of "stock_id" or "stock_client" properties or the filename may be omitted. XRC
+determines the bitmap to use according to this algorithm:
+  1. If there is non-empty "stock_id" property, query wxArtProvider for the bitmap
+     (if there is no "stock_client", use default one, which is usually wxART_OTHER;
+     exceptions are noted in class-specific sections bellow). If the query fails,
+     continue to 2.
+  2. Load the bitmap from the file in attribute value.
+
+
+Boolean
+-------
+Boolean value, either "0" (false) or "1" (true).
+
 
-TODO
 
 4. Supported classes
---------------------
+====================
+
+Attributes are listed in tables in the following format:
+attribute name             attribute type          default value, if any
+                           [(optional remarks....................
+                           ...................................)]
+
+wxBitmap
+--------
+This is a special case, because it does not create a wxWindow instance but 
+creates wxBitmap instead. Another exceptional thing is that it does not have
+any attributes. Instead, the node itself is interpreted as if it were attribute
+of type Bitmap.
+
+Example: <object class="wxBitmap">bitmaps/foo.gif</object>
+
+
+wxIcon
+------
+Identical to wxBitmap class, except that it creates wxIcon instead of wxBitmap.
+
+
+wxButton
+--------
+position                   Position                -1,-1
+size                       Size                    -1,-1
+style                      Style[wxButton]    
+
+label                      I18nString
+default                    Boolean                 false
+                           (Is the button default button?)
+
+
+wxCalendarCtrl
+--------------
+position                   Position                -1,-1
+size                       Size                    -1,-1
+style                      Style[wxCalendarCtrl]
+
+
+wxCheckBox
+----------
+position                   Position                -1,-1
+size                       Size                    -1,-1
+style                      Style[wxCheckBox]
+checked                    Boolean                 false
+
+
+wxCheckList
+-----------
+position                   Position                -1,-1
+size                       Size                    -1,-1
+style                      Style[wxCheckList]
+content                    (see bellow)            (empty)
+
+Optional "content" attribute does not have attribute value. Instead,
+arbitrary number of <item> nodes may be rooted under it (the control
+is filled with strings contained in these nodes). Each <item>
+node must contain I18nString value and may have "checked" property
+with possible values "0" or "1" indicating the the item is initially
+checked.
+
+Example:
+<object class="wxCheckList">
+    <content>
+      <item>One</item>
+      <item checked="1">Two</item>
+      <item checked="1">Three</item>
+      <item>Four</item>
+    </content>
+</object>
+
+
+wxScrolledWindow
+----------------
+position                   Position                -1,-1
+size                       Size                    -1,-1
+style                      Style[wxScrolledWindow] wxHSCROLL | wxVSCROLL
+
+
+
+5. More features
+================
+
+FIXME -- "platform" property handling
 
-TODO
 
 === EOF ===
 
diff --git a/docs/univ/readme.txt b/docs/univ/readme.txt
index 6f35784ab3..d2ceccc77d 100644
--- a/docs/univ/readme.txt
+++ b/docs/univ/readme.txt
@@ -56,6 +56,12 @@ b) Cygwin
    Please refer to the Unix section below
 
 c) Other compilers
+   Borland: 
+   in the wxwindows\src\msw directory run
+   'make -f makefile.b32 WXUSINGUNIV=1' to build the library and then run
+   'make -f makefile.b32 WXUSINGUNIV=1' in the sample directory  which you wish
+   to build using the wxUniversal widgets. Use 'SET WXTHEME=GTK' [or  WIN32 or METAL]
+   to test the existing themes
 
    Unfortunately we don't have makefiles for any other compilers yet.
 Please contact us if you would like to help us with creating one for the
@@ -115,6 +121,6 @@ itself, namely:
                                                                  Vadim Zeitlin
 
 
-This file is accurate for the version 2.3.3 of wxUniversal. It was last
+This file is accurate for the version 2.3.4 of wxUniversal. It was last
 modified on Apr 15, 2002.
 
diff --git a/docs/x11/install.txt b/docs/x11/install.txt
index 5239306806..3f0e8c2452 100644
--- a/docs/x11/install.txt
+++ b/docs/x11/install.txt
@@ -11,7 +11,7 @@ IMPORTANT NOTE:
 
   When sending bug reports tell us what version of wxWindows you are 
   using (including the beta) and what compiler on what system. One 
-  example: wxX11 2.3.3, gcc 2.95.4, Redhat 6.2
+  example: wxX11 2.3.4, gcc 2.95.4, Redhat 6.2
 
 First steps
 -----------
diff --git a/docs/x11/readme.txt b/docs/x11/readme.txt
index 4e8f155377..a9ece6e956 100644
--- a/docs/x11/readme.txt
+++ b/docs/x11/readme.txt
@@ -1,7 +1,7 @@
 
-  Welcome to wxWindows/X11 2.3.3
+  Welcome to wxWindows/X11 2.3.4
 
-You have downloaded version 2.3.3 of the X11 port of
+You have downloaded version 2.3.4 of the X11 port of
 the wxWindows GUI library. This runs on X11 with no
 Motif, Xt, GTK+ or any other standard widget set --
 instead it uses the wxUniversal widgets. The intention
diff --git a/include/wx/arrimpl.cpp b/include/wx/arrimpl.cpp
index 8296608a01..46f94e5dab 100644
--- a/include/wx/arrimpl.cpp
+++ b/include/wx/arrimpl.cpp
@@ -75,6 +75,8 @@ void name::RemoveAt(size_t uiIndex, size_t nRemove)                           \
                                                                               \
 void name::Add(const T& item, size_t nInsert)                                 \
 {                                                                             \
+  if (nInsert == 0)                                                           \
+    return;                                                                   \
   T* pItem = new T(item);                                                     \
   size_t nOldSize = GetCount();                                               \
   if ( pItem != NULL )                                                        \
@@ -85,6 +87,8 @@ void name::Add(const T& item, size_t nInsert)                                 \
                                                                               \
 void name::Insert(const T& item, size_t uiIndex, size_t nInsert)              \
 {                                                                             \
+  if (nInsert == 0)                                                           \
+    return;                                                                   \
   T* pItem = new T(item);                                                     \
   if ( pItem != NULL )                                                        \
     wxBaseArrayPtrVoid::Insert(pItem, uiIndex, nInsert);                      \
diff --git a/include/wx/artprov.h b/include/wx/artprov.h
index 3bba43e060..4a862d3f58 100644
--- a/include/wx/artprov.h
+++ b/include/wx/artprov.h
@@ -22,6 +22,7 @@
 
 class WXDLLEXPORT wxArtProvidersList;
 class WXDLLEXPORT wxArtProviderCache;
+class wxArtProviderModule;
 
 // ----------------------------------------------------------------------------
 // Types
@@ -113,10 +114,13 @@ public:
                           const wxArtClient& client = wxART_OTHER,
                           const wxSize& size = wxDefaultSize);
 
+protected:
+    friend class wxArtProviderModule;
+    // Initializes default provider
+    static void InitStdProvider();
     // Destroy caches & all providers
     static void CleanUpProviders();
 
-protected:
     // Derived classes must override this method to create requested 
     // art resource. This method is called only once per instance's
     // lifetime for each requested wxArtID.
diff --git a/include/wx/buffer.h b/include/wx/buffer.h
index 3b770e32af..b913e75100 100644
--- a/include/wx/buffer.h
+++ b/include/wx/buffer.h
@@ -23,92 +23,96 @@
 // of new/delete
 // ----------------------------------------------------------------------------
 
-class wxCharBuffer
-{
-public:
-    wxCharBuffer(const char *str)
-        : m_str(str ? strdup(str) : NULL)
-    {
-    }
-
-    wxCharBuffer(size_t len)
-        : m_str((char *)malloc((len + 1)*sizeof(char)))
-    {
-        m_str[len] = '\0';
-    }
-
-    // no need to check for NULL, free() does it
-    ~wxCharBuffer() { free(m_str); }
-
-    wxCharBuffer(const wxCharBuffer& src)
-        : m_str(src.m_str)
-    {
-        // no reference count yet...
-        ((wxCharBuffer*)&src)->m_str = (char *)NULL;
-    }
-    wxCharBuffer& operator=(const wxCharBuffer& src)
-    {
-        m_str = src.m_str;
-        // no reference count yet...
-        ((wxCharBuffer*)&src)->m_str = (char *)NULL;
-        return *this;
-    }
-
-    const char *data() const { return m_str; }
-    operator const char *() const { return m_str; }
-    char operator[](size_t n) const { return m_str[n]; }
-
-private:
-    char *m_str;
-};
+#define DEFINE_BUFFER(classname, chartype, strdupfunc)                      \
+class classname                                                             \
+{                                                                           \
+public:                                                                     \
+    classname(const chartype *str)                                          \
+        : m_str(str ? strdupfunc(str) : NULL)                               \
+    {                                                                       \
+    }                                                                       \
+                                                                            \
+    classname(size_t len)                                                   \
+        : m_str((chartype *)malloc((len + 1)*sizeof(chartype)))             \
+    {                                                                       \
+        m_str[len] = (chartype)0;                                           \
+    }                                                                       \
+                                                                            \
+    /* no need to check for NULL, free() does it */                         \
+    ~classname() { free(m_str); }                                           \
+                                                                            \
+    /*                                                                      \
+        WARNING:                                                            \
+                                                                            \
+        the copy ctor and assignment operators change the passed in object  \
+        even although it is declared as "const", so:                        \
+                                                                            \
+        a) it shouldn't be really const                                     \
+        b) you shouldn't use it afterwards (or know that it was reset)      \
+                                                                            \
+        This is very ugly but is unfortunately needed to make the normal use\
+        of classname buffer objects possible and is very similar to what    \
+        std::auto_ptr<> does (as if it were an excuse...)                   \
+    */                                                                      \
+                                                                            \
+    /*                                                                      \
+       because of the remark above, release() is declared const even if it  \
+       isn't really const                                                   \
+     */                                                                     \
+    chartype *release() const                                               \
+    {                                                                       \
+        chartype *p = m_str;                                                \
+        ((classname *)this)->m_str = NULL;                                  \
+        return p;                                                           \
+    }                                                                       \
+                                                                            \
+    classname(const classname& src)                                         \
+        : m_str(src.release())                                              \
+    {                                                                       \
+    }                                                                       \
+                                                                            \
+    classname& operator=(const chartype *str)                               \
+    {                                                                       \
+        free(m_str);                                                        \
+        m_str = str ? strdupfunc(str) : NULL;                               \
+        return *this;                                                       \
+    }                                                                       \
+                                                                            \
+    classname& operator=(const classname& src)                              \
+    {                                                                       \
+        free(m_str);                                                        \
+        m_str = src.release();                                              \
+                                                                            \
+        return *this;                                                       \
+    }                                                                       \
+                                                                            \
+    chartype *data() { return m_str; }                                      \
+    const chartype *data() const { return m_str; }                          \
+    operator const chartype *() const { return m_str; }                     \
+    chartype operator[](size_t n) const { return m_str[n]; }                \
+                                                                            \
+private:                                                                    \
+    chartype *m_str;                                                        \
+}
+
+DEFINE_BUFFER(wxCharBuffer, char, strdup);
 
 #if wxUSE_WCHAR_T
 
-class wxWCharBuffer
+inline wchar_t *wxWcsdupReplacement(const wchar_t *wcs)
 {
-public:
-    wxWCharBuffer(const wchar_t *wcs)
-        : m_wcs((wchar_t *)NULL)
-    {
-        if (wcs) {
-          size_t siz = (wxWcslen(wcs) + 1)*sizeof(wchar_t);
-          m_wcs = (wchar_t *)malloc(siz);
-          memcpy(m_wcs, wcs, siz);
-        }
-    }
-    wxWCharBuffer(size_t len)
-        : m_wcs((wchar_t *)malloc((len + 1)*sizeof(wchar_t)))
-    {
-        m_wcs[len] = L'\0';
-    }
+    const size_t siz = (wxWcslen(wcs) + 1)*sizeof(wchar_t);
+    wchar_t *wcsCopy = (wchar_t *)malloc(siz);
+    memcpy(wcsCopy, wcs, siz);
+    return wcsCopy;
+}
 
-    // no need to check for NULL, free() does it
-    ~wxWCharBuffer() { free(m_wcs); }
-
-    wxWCharBuffer(const wxWCharBuffer& src)
-        : m_wcs(src.m_wcs)
-    {
-       // no reference count yet...
-       ((wxWCharBuffer*)&src)->m_wcs = (wchar_t *)NULL;
-    }
-    wxWCharBuffer& operator=(const wxWCharBuffer& src)
-    {
-        m_wcs = src.m_wcs;
-        // no reference count yet...
-        ((wxWCharBuffer*)&src)->m_wcs = (wchar_t *)NULL;
-        return *this;
-    }
-
-    const wchar_t *data() const { return m_wcs; }
-    operator const wchar_t *() const { return m_wcs; }
-    wchar_t operator[](size_t n) const { return m_wcs[n]; }
-
-private:
-    wchar_t *m_wcs;
-};
+DEFINE_BUFFER(wxWCharBuffer, wchar_t, wxWcsdupReplacement);
 
 #endif // wxUSE_WCHAR_T
 
+#undef DEFINE_BUFFER
+
 #if wxUSE_UNICODE
     #define wxMB2WXbuf wxWCharBuffer
     #define wxWX2MBbuf wxCharBuffer
@@ -125,101 +129,146 @@ private:
 // A class for holding growable data buffers (not necessarily strings)
 // ----------------------------------------------------------------------------
 
-class wxMemoryBuffer
+// This class manages the actual data buffer pointer and is ref-counted.
+class wxMemoryBufferData
 {
 public:
+    // the initial size and also the size added by ResizeIfNeeded()
     enum { BLOCK_SIZE = 1024 };
-    wxMemoryBuffer(size_t size = wxMemoryBuffer::BLOCK_SIZE)
-        : m_data(malloc(size)), m_size(size), m_len(0)
+
+    friend class wxMemoryBuffer;
+
+    // everyting is private as it can only be used by wxMemoryBuffer
+private:
+    wxMemoryBufferData(size_t size = wxMemoryBufferData::BLOCK_SIZE)
+        : m_data(size ? malloc(size) : NULL), m_size(size), m_len(0), m_ref(0)
     {
     }
+    ~wxMemoryBufferData() { free(m_data); }
 
-    ~wxMemoryBuffer() { free(m_data); }
-
-    // Accessors
-    void*  GetData() const    { return m_data; }
-    size_t GetBufSize() const { return m_size; }
-    size_t GetDataLen() const { return m_len; }
 
-    void   SetBufSize(size_t size) { ResizeIfNeeded(size); }
-    void   SetDataLen(size_t len)
+    void ResizeIfNeeded(size_t newSize)
     {
-        wxASSERT(len <= m_size);
-        m_len = len;
+        if (newSize > m_size)
+        {
+            void *dataOld = m_data;
+            m_data = realloc(m_data, newSize + wxMemoryBufferData::BLOCK_SIZE);
+            if ( !m_data )
+            {
+                free(dataOld);
+            }
+
+            m_size = newSize + wxMemoryBufferData::BLOCK_SIZE;
+        }
     }
 
-    // Ensure the buffer is big enough and return a pointer to it
-    void* GetWriteBuf(size_t sizeNeeded)
+    void IncRef() { m_ref += 1; }
+    void DecRef()
     {
-        ResizeIfNeeded(sizeNeeded);
-        return m_data;
+        m_ref -= 1;
+        if (m_ref == 0)  // are there no more references?
+            delete this;
     }
-    // Update the length after the write
-    void  UngetWriteBuf(size_t sizeUsed) { SetDataLen(sizeUsed); }
 
-    // Like the above, but appends to the buffer
-    void* GetAppendBuf(size_t sizeNeeded)
+
+    // the buffer containing the data
+    void  *m_data;
+
+    // the size of the buffer
+    size_t m_size;
+
+    // the amount of data currently in the buffer
+    size_t m_len;
+
+    // the reference count
+    size_t m_ref;
+};
+
+
+class wxMemoryBuffer
+{
+public:
+    // ctor and dtor
+    wxMemoryBuffer(size_t size = wxMemoryBufferData::BLOCK_SIZE)
     {
-        ResizeIfNeeded(m_len + sizeNeeded);
-        return (char*)m_data + m_len;
+        m_bufdata = new wxMemoryBufferData(size);
+        m_bufdata->IncRef();
     }
-    void  UngetAppendBuf(size_t sizeUsed) { SetDataLen(m_len + sizeUsed); }
 
-    // Other ways to append to the buffer
-    void  AppendByte(char data) {
-        ResizeIfNeeded(m_len + 1);
-        *(((char*)m_data)+m_len) = data;
-        m_len += 1;
+    ~wxMemoryBuffer() { m_bufdata->DecRef(); }
+
+
+    // copy and assignment
+    wxMemoryBuffer(const wxMemoryBuffer& src)
+        : m_bufdata(src.m_bufdata)
+    {
+        m_bufdata->IncRef();
     }
-    void  AppendData(void* data, size_t len)
+
+    wxMemoryBuffer& operator=(const wxMemoryBuffer& src)
     {
-        memcpy(GetAppendBuf(len), data, len);
-        UngetAppendBuf(len);
+        m_bufdata->DecRef();
+        m_bufdata = src.m_bufdata;
+        m_bufdata->IncRef();
+        return *this;
     }
 
-    operator const char *() const { return (const char*)m_data; }
 
+    // Accessors
+    void  *GetData() const    { return m_bufdata->m_data; }
+    size_t GetBufSize() const { return m_bufdata->m_size; }
+    size_t GetDataLen() const { return m_bufdata->m_len; }
 
-    // Copy and assignment
-    wxMemoryBuffer(const wxMemoryBuffer& src)
-        : m_data(src.m_data), m_size(src.m_size), m_len(src.m_len)
+    void   SetBufSize(size_t size) { m_bufdata->ResizeIfNeeded(size); }
+    void   SetDataLen(size_t len)
     {
-        // no reference count yet...
-        ((wxMemoryBuffer*)&src)->m_data = NULL;
-        ((wxMemoryBuffer*)&src)->m_size = 0;
-        ((wxMemoryBuffer*)&src)->m_len  = 0;
+        wxASSERT(len <= m_bufdata->m_size);
+        m_bufdata->m_len = len;
     }
 
-    wxMemoryBuffer& operator=(const wxMemoryBuffer& src)
+    // Ensure the buffer is big enough and return a pointer to it
+    void *GetWriteBuf(size_t sizeNeeded)
     {
-        m_data = src.m_data;
-        m_size = src.m_size;
-        m_len  = src.m_len;
+        m_bufdata->ResizeIfNeeded(sizeNeeded);
+        return m_bufdata->m_data;
+    }
 
-        // no reference count yet...
-        ((wxMemoryBuffer*)&src)->m_data = NULL;
-        ((wxMemoryBuffer*)&src)->m_size = 0;
-        ((wxMemoryBuffer*)&src)->m_len  = 0;
+    // Update the length after the write
+    void  UngetWriteBuf(size_t sizeUsed) { SetDataLen(sizeUsed); }
 
-        return *this;
-   }
+    // Like the above, but appends to the buffer
+    void *GetAppendBuf(size_t sizeNeeded)
+    {
+        m_bufdata->ResizeIfNeeded(m_bufdata->m_len + sizeNeeded);
+        return (char*)m_bufdata->m_data + m_bufdata->m_len;
+    }
 
+    // Update the length after the append
+    void  UngetAppendBuf(size_t sizeUsed)
+    {
+        SetDataLen(m_bufdata->m_len + sizeUsed);
+    }
 
-protected:
-    void ResizeIfNeeded(size_t newSize)
+    // Other ways to append to the buffer
+    void  AppendByte(char data)
     {
-        if (newSize > m_size)
-        {
-            m_data = realloc(m_data, newSize + wxMemoryBuffer::BLOCK_SIZE);
-            wxASSERT(m_data != NULL);
-            m_size = newSize + wxMemoryBuffer::BLOCK_SIZE;
-        }
+        wxCHECK_RET( m_bufdata->m_data, _T("invalid wxMemoryBuffer") );
+
+        m_bufdata->ResizeIfNeeded(m_bufdata->m_len + 1);
+        *(((char*)m_bufdata->m_data) + m_bufdata->m_len) = data;
+        m_bufdata->m_len += 1;
+    }
+
+    void  AppendData(void* data, size_t len)
+    {
+        memcpy(GetAppendBuf(len), data, len);
+        UngetAppendBuf(len);
     }
 
+    operator const char *() const { return (const char*)GetData(); }
+
 private:
-    void*       m_data;
-    size_t      m_size;
-    size_t      m_len;
+    wxMemoryBufferData*  m_bufdata;
 };
 
 // ----------------------------------------------------------------------------
diff --git a/include/wx/busyinfo.h b/include/wx/busyinfo.h
index b5a94ba6de..ab9f5a6f2d 100644
--- a/include/wx/busyinfo.h
+++ b/include/wx/busyinfo.h
@@ -16,7 +16,7 @@
 
 #include "wx/wxprec.h"
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
diff --git a/include/wx/chkconf.h b/include/wx/chkconf.h
index 5c9be4068b..3320f3c855 100644
--- a/include/wx/chkconf.h
+++ b/include/wx/chkconf.h
@@ -95,6 +95,14 @@
 #   endif
 #endif /* !defined(wxUSE_MIMETYPE) */
 
+#ifndef wxUSE_PROLOGIO
+#   ifdef wxABORT_ON_CONFIG_ERROR
+#       error "wxUSE_PROLOGIO must be defined."
+#   else
+#       define wxUSE_PROLOGIO 0
+#   endif
+#endif /* !defined(wxUSE_PROLOGIO) */
+
 #ifndef wxUSE_PROTOCOL
 #   ifdef wxABORT_ON_CONFIG_ERROR
 #       error "wxUSE_PROTOCOL must be defined."
@@ -675,6 +683,14 @@
 #   endif
 #endif /* !defined(wxUSE_TREECTRL) */
 
+#ifndef wxUSE_WX_RESOURCES
+#   ifdef wxABORT_ON_CONFIG_ERROR
+#       error "wxUSE_WX_RESOURCES must be defined."
+#   else
+#       define wxUSE_WX_RESOURCES 0
+#   endif
+#endif /* !defined(wxUSE_WX_RESOURCES) */
+
 #ifndef wxUSE_WXHTML_HELP
 #   ifdef wxABORT_ON_CONFIG_ERROR
 #       error "wxUSE_WXHTML_HELP must be defined."
@@ -1168,5 +1184,14 @@
 #   endif
 #endif /* wxUSE_CLIPBOARD */
 
+#if wxUSE_WX_RESOURCES && !wxUSE_PROLOGIO
+#   ifdef wxABORT_ON_CONFIG_ERROR
+#       error "wxr resources require PrologIO"
+#   else
+#       undef wxUSE_PROLOGIO
+#       define wxUSE_PROLOGIO 1
+#   endif
+#endif /* wxUSE_WX_RESOURCES */
+
 #endif /* wxUSE_GUI */
 
diff --git a/include/wx/cmdproc.h b/include/wx/cmdproc.h
index 91ed5ee234..b5b8b88b10 100644
--- a/include/wx/cmdproc.h
+++ b/include/wx/cmdproc.h
@@ -26,7 +26,7 @@
 class WXDLLEXPORT wxCommand : public wxObject
 {
 public:
-    wxCommand(bool canUndoIt = FALSE, const wxString& name = "");
+    wxCommand(bool canUndoIt = FALSE, const wxString& name = wxT(""));
     ~wxCommand();
 
     // Override this to perform a command
diff --git a/include/wx/cmndata.h b/include/wx/cmndata.h
index d1aed4df34..390ec00aed 100644
--- a/include/wx/cmndata.h
+++ b/include/wx/cmndata.h
@@ -218,9 +218,11 @@ public:
 #elif defined(__WXMAC__)
     void*           m_macPageFormat ;
     void*           m_macPrintSettings ;
+    void*			m_macPrintSession ;
 #endif
 
 private:
+
     int             m_printNoCopies;
     int             m_printOrientation;
     bool            m_printCollate;
diff --git a/include/wx/colordlg.h b/include/wx/colordlg.h
index 8b8ce1d292..d961b8b535 100644
--- a/include/wx/colordlg.h
+++ b/include/wx/colordlg.h
@@ -14,9 +14,9 @@
 
 #if wxUSE_COLOURDLG
 
-#if defined(__WXMSW__)
+#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
     #include "wx/msw/colordlg.h"
-#elif defined(__WXMAC__)
+#elif defined(__WXMAC__) && !defined(__WXUNIVERSAL__)
     #include "wx/mac/colordlg.h"
 #else
     #include "wx/generic/colrdlgg.h"
diff --git a/include/wx/datetime.h b/include/wx/datetime.h
index 654041d61c..c546534b81 100644
--- a/include/wx/datetime.h
+++ b/include/wx/datetime.h
@@ -17,6 +17,8 @@
     #pragma interface "datetime.h"
 #endif
 
+#include "wx/defs.h"
+
 #if wxUSE_DATETIME
 
 #include <time.h>
@@ -657,8 +659,10 @@ public:
     // ------------------------------------------------------------------------
 
         // set to the given week day in the same week as this one
-    wxDateTime& SetToWeekDayInSameWeek(WeekDay weekday);
-    inline wxDateTime GetWeekDayInSameWeek(WeekDay weekday) const;
+    wxDateTime& SetToWeekDayInSameWeek(WeekDay weekday,
+                                       WeekFlags flags = Monday_First);
+    inline wxDateTime GetWeekDayInSameWeek(WeekDay weekday,
+                                           WeekFlags flags = Monday_First) const;
 
         // set to the next week day following this one
     wxDateTime& SetToNextWeekDay(WeekDay weekday);
@@ -692,8 +696,12 @@ public:
         // sets the date to the given day of the given week in the year,
         // returns TRUE on success and FALSE if given date doesn't exist (e.g.
         // numWeek is > 53)
-    bool SetToTheWeek(wxDateTime_t numWeek, WeekDay weekday = Mon);
-    inline wxDateTime GetWeek(wxDateTime_t numWeek, WeekDay weekday = Mon) const;
+    bool SetToTheWeek(wxDateTime_t numWeek,
+                      WeekDay weekday = Mon,
+                      WeekFlags flags = Monday_First);
+    inline wxDateTime GetWeek(wxDateTime_t numWeek,
+                              WeekDay weekday = Mon,
+                              WeekFlags flags = Monday_First) const;
 
         // sets the date to the last day of the given (or current) month or the
         // given (or current) year
@@ -843,6 +851,15 @@ public:
         //     adoption of the Gregorian calendar is simply unknown.
     bool IsGregorianDate(GregorianAdoption country = Gr_Standard) const;
 
+    // dos date and time format
+    // ------------------------------------------------------------------------
+
+        // set from the DOS packed format
+    wxDateTime& SetFromDOS(unsigned long ddt);
+
+        // pack the date in DOS format
+    unsigned long GetAsDOS() const;
+
     // comparison (see also functions below for operator versions)
     // ------------------------------------------------------------------------
 
diff --git a/include/wx/datetime.inl b/include/wx/datetime.inl
index 8ec379dd9d..398b02828b 100644
--- a/include/wx/datetime.inl
+++ b/include/wx/datetime.inl
@@ -156,7 +156,8 @@ inline bool wxDateTime::SetToLastWeekDay(WeekDay weekday,
     return SetToWeekDay(weekday, -1, month, year);
 }
 
-inline wxDateTime wxDateTime::GetWeekDayInSameWeek(WeekDay weekday) const
+inline wxDateTime wxDateTime::GetWeekDayInSameWeek(WeekDay weekday,
+                                                   WeekFlags flags) const
 {
     MODIFY_AND_RETURN( SetToWeekDayInSameWeek(weekday) );
 }
@@ -191,11 +192,12 @@ inline wxDateTime wxDateTime::GetLastWeekDay(WeekDay weekday,
 }
 
 inline wxDateTime wxDateTime::GetWeek(wxDateTime_t numWeek,
-                                      WeekDay weekday) const
+                                      WeekDay weekday,
+                                      WeekFlags flags) const
 {
     wxDateTime dt(*this);
 
-    return dt.SetToTheWeek(numWeek, weekday) ? dt : wxInvalidDateTime;
+    return dt.SetToTheWeek(numWeek, weekday, flags) ? dt : wxInvalidDateTime;
 }
 
 inline wxDateTime wxDateTime::GetLastMonthDay(Month month, int year) const
diff --git a/include/wx/db.h b/include/wx/db.h
index e43e77db95..ecb4f3ab6a 100644
--- a/include/wx/db.h
+++ b/include/wx/db.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        db.h
+// Name:        wx/db.h
 // Purpose:     Header file wxDb class.  The wxDb class represents a connection
 //              to an ODBC data source.  The wxDb class allows operations on the data
 //              source such as opening and closing the data source.
@@ -32,13 +32,8 @@
 //
 ///////////////////////////////////////////////////////////////////////////////
 
-/*
-// SYNOPSIS START
-// SYNOPSIS STOP
-*/
-
-#ifndef DB_DOT_H
-#define DB_DOT_H
+#ifndef _WX_DB_H_
+#define _WX_DB_H_
 
 
 // BJO 20000503: introduce new GetColumns members which are more database independant and 
@@ -58,36 +53,40 @@
 #include "wx/string.h"
 
 #ifdef __VISUALC__
-// include standard Windows headers
-#if defined(__WXMSW__) && !wxUSE_MFC
-    #ifndef STRICT
-        #define STRICT 1
-    #endif
-
-    #include <windows.h>
-    #include "wx/msw/winundef.h"
-#endif
-
-// If you use the wxDbCreateDataSource() function with MSW/VC6,
-// you cannot use the iODBC headers, you must use the VC headers,
-// plus the odbcinst.h header - gt Nov 2 2000
-//
-//  Must add "odbccp32.lib" in \wx2\wxWindows\src\makevc.env to the WINLIBS= line
-//
+    // we need to include standard Windows headers but we can't include
+    // <windows.h> directly when using MFC because it includes it itself in a
+    // different manner
+    #if wxUSE_MFC
+        #include <afxwin.h>
+    #else // !wxUSE_MFC
+        #ifndef STRICT
+            #define STRICT 1
+        #endif
+
+        #include <windows.h>
+        #include "wx/msw/winundef.h"
+    #endif // wxUSE_MFC/!wxUSE_MFC
+
+    // If you use the wxDbCreateDataSource() function with MSW/VC6,
+    // you cannot use the iODBC headers, you must use the VC headers,
+    // plus the odbcinst.h header - gt Nov 2 2000
+    //
+    // Must add "odbccp32.lib" in \wx2\wxWindows\src\makevc.env to the WINLIBS= line
+    //
     #include "sql.h"
     #include "sqlext.h"
     #include "odbcinst.h"
 #elif defined( __VMS )
-// For OpenVMS use the ones from the library
-extern "C" {
-    #include <isql.h>
-    #include <isqlext.h>
-}
-#else
-extern "C" {
-    #include "wx/isql.h"
-    #include "wx/isqlext.h"
-}
+    // For OpenVMS use the ones from the library
+    extern "C" {
+        #include <isql.h>
+        #include <isqlext.h>
+    }
+#else // !__VISUALC__, !__VMS
+    extern "C" {
+        #include "wx/isql.h"
+        #include "wx/isqlext.h"
+    }
 #endif
 
 
@@ -715,7 +714,7 @@ int   WXDLLEXPORT  wxDbConnectionsInUse(void);
 
 // Writes a message to the wxLog window (stdout usually) when an internal error
 // situation occurs.  This function only works in DEBUG builds
-const wxChar WXDLLEXPORT *wxDbLogExtendedErrorMsg(const wxChar *userText,
+const wxChar* WXDLLEXPORT wxDbLogExtendedErrorMsg(const wxChar *userText,
                                                   wxDb *pDb,
                                                   const wxChar *ErrFile,
                                                   int ErrLine);
@@ -772,10 +771,11 @@ bool  WXDLLEXPORT  FreeDbConnection(wxDB *pDb);
 void  WXDLLEXPORT  CloseDbConnections(void);
 int   WXDLLEXPORT  NumberDbConnectionsInUse(void);
 
-bool SqlLog(sqlLog state, const char *filename = SQL_LOG_FILENAME);
+bool SqlLog(sqlLog state, const wxChar *filename = SQL_LOG_FILENAME);
 
 bool WXDLLEXPORT GetDataSource(HENV henv, char *Dsn, SWORD DsnMax, char *DsDesc, SWORD DsDescMax,
                                UWORD direction = SQL_FETCH_NEXT);
 #endif  // Deprecated structures/classes/functions
 
-#endif
+#endif // _WX_DB_H_
+
diff --git a/include/wx/debug.h b/include/wx/debug.h
index 9c92739aaa..4f4230f6c5 100644
--- a/include/wx/debug.h
+++ b/include/wx/debug.h
@@ -123,12 +123,13 @@
 // Use of wxFalse instead of FALSE suppresses compiler warnings about testing
 // constant expression
 WXDLLEXPORT_DATA(extern const bool) wxFalse;
+#define wxAssertFailure wxFalse
 
 // special form of assert: always triggers it (in debug mode)
-#define wxFAIL                 wxASSERT(wxFalse)
+#define wxFAIL                 wxASSERT(wxAssertFailure)
 
 // FAIL with some message
-#define wxFAIL_MSG(msg)        wxASSERT_MSG(wxFalse, msg)
+#define wxFAIL_MSG(msg)        wxASSERT_MSG(wxAssertFailure, msg)
 
 // NB: the following macros work also in release mode!
 
diff --git a/include/wx/defs.h b/include/wx/defs.h
index f0ce9ccc28..5482b48848 100644
--- a/include/wx/defs.h
+++ b/include/wx/defs.h
@@ -1099,6 +1099,7 @@ enum wxBorder
  * wxRadioButton style flag
  */
 #define wxRB_GROUP          0x0004
+#define wxRB_SINGLE         0x0008
 
 /*
  * wxGauge flags
@@ -1172,8 +1173,12 @@ enum wxBorder
  */
 #define wxTC_RIGHTJUSTIFY     0x0010
 #define wxTC_FIXEDWIDTH       0x0020
-#define wxTC_OWNERDRAW        0x0040
+#define wxTC_TOP              0x0000    // default
+#define wxTC_LEFT             0x0020
+#define wxTC_RIGHT            0x0040
+#define wxTC_BOTTOM           0x0080
 #define wxTC_MULTILINE        wxNB_MULTILINE
+#define wxTC_OWNERDRAW        0x0200
 
 // wxToolBar style flags
 #define wxTB_HORIZONTAL     wxHORIZONTAL    // == 0x0004
@@ -1794,11 +1799,11 @@ enum wxPrintMode
 
 // macro to specify "All Files" on different platforms
 #if defined(__WXMSW__) || defined(__WXPM__)
-#   define wxALL_FILES_PATTERN   "*.*"
-#   define wxALL_FILES           gettext_noop("All files (*.*)|*.*")
+#   define wxALL_FILES_PATTERN   wxT("*.*")
+#   define wxALL_FILES           gettext_noop(wxT("All files (*.*)|*.*"))
 #else
-#   define wxALL_FILES_PATTERN   "*"
-#   define wxALL_FILES           gettext_noop("All files (*)|*")
+#   define wxALL_FILES_PATTERN   wxT("*")
+#   define wxALL_FILES           gettext_noop(wxT("All files (*)|*"))
 #endif
 
 // ---------------------------------------------------------------------------
@@ -2083,13 +2088,24 @@ typedef GtkWidget *WXWidget;
 #endif
 
 #ifdef __WXGTK20__
+/* Input method thing */
+typedef struct _GtkIMMulticontext    GtkIMMulticontext;
+#endif // __WXGTK20__
+
+#endif // __WXGTK__
+
+#if defined(__WXGTK20__) || (defined(__WXX11__) && wxUSE_UNICODE)
+#define wxUSE_PANGO 1
+#else
+#define wxUSE_PANGO 0
+#endif
+
+#if wxUSE_PANGO
 /* Stand-ins for Pango types */
 typedef struct _PangoContext         PangoContext;
 typedef struct _PangoLayout          PangoLayout;
 typedef struct _PangoFontDescription PangoFontDescription;
-#endif // GTK+ 2.0
-
-#endif // GTK
+#endif
 
 #ifdef __WXMGL__
 typedef struct window_t *WXWidget;
diff --git a/include/wx/docmdi.h b/include/wx/docmdi.h
index 37b2109475..089a328ce4 100644
--- a/include/wx/docmdi.h
+++ b/include/wx/docmdi.h
@@ -29,26 +29,26 @@
 
 class WXDLLEXPORT wxDocMDIParentFrame: public wxMDIParentFrame
 {
-  DECLARE_CLASS(wxDocMDIParentFrame)
- public:
-  wxDocMDIParentFrame(wxDocManager *manager, wxFrame *parent, wxWindowID id,
-      const wxString& title, const wxPoint& pos = wxDefaultPosition,
-      const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
+public:
+    wxDocMDIParentFrame(wxDocManager *manager, wxFrame *parent, wxWindowID id,
+        const wxString& title, const wxPoint& pos = wxDefaultPosition,
+        const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxT("frame"));
 
-  // Extend event processing to search the document manager's event table
-  virtual bool ProcessEvent(wxEvent& event);
+    // Extend event processing to search the document manager's event table
+    virtual bool ProcessEvent(wxEvent& event);
 
-  wxDocManager *GetDocumentManager(void) const { return m_docManager; }
+    wxDocManager *GetDocumentManager(void) const { return m_docManager; }
 
-  void OnExit(wxCommandEvent& event);
-  void OnMRUFile(wxCommandEvent& event);
-  void OnCloseWindow(wxCloseEvent& event);
+    void OnExit(wxCommandEvent& event);
+    void OnMRUFile(wxCommandEvent& event);
+    void OnCloseWindow(wxCloseEvent& event);
 
- protected:
-  wxDocManager *m_docManager;
+protected:
+    wxDocManager *m_docManager;
 
-
-DECLARE_EVENT_TABLE()
+private:
+    DECLARE_CLASS(wxDocMDIParentFrame)
+    DECLARE_EVENT_TABLE()
 };
 
 /*
@@ -57,31 +57,31 @@ DECLARE_EVENT_TABLE()
 
 class WXDLLEXPORT wxDocMDIChildFrame: public wxMDIChildFrame
 {
-  DECLARE_CLASS(wxDocMDIChildFrame)
-
- public:
-  wxDocMDIChildFrame(wxDocument *doc, wxView *view, wxMDIParentFrame *frame, wxWindowID id,
-    const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
-    long type = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame");
-  ~wxDocMDIChildFrame(void);
-
-  // Extend event processing to search the view's event table
-  virtual bool ProcessEvent(wxEvent& event);
-
-  void OnActivate(wxActivateEvent& event);
-  void OnCloseWindow(wxCloseEvent& event);
-
-  inline wxDocument *GetDocument(void) const { return m_childDocument; }
-  inline wxView *GetView(void) const { return m_childView; }
-  inline void SetDocument(wxDocument *doc) { m_childDocument = doc; }
-  inline void SetView(wxView *view) { m_childView = view; }
-  bool Destroy() { m_childView = (wxView *)NULL; return wxMDIChildFrame::Destroy(); }
- protected:
-  wxDocument*       m_childDocument;
-  wxView*           m_childView;
-
-DECLARE_EVENT_TABLE()
-
+public:
+    wxDocMDIChildFrame(wxDocument *doc, wxView *view, wxMDIParentFrame *frame, wxWindowID id,
+        const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
+        long type = wxDEFAULT_FRAME_STYLE, const wxString& name = wxT("frame"));
+    ~wxDocMDIChildFrame();
+
+    // Extend event processing to search the view's event table
+    virtual bool ProcessEvent(wxEvent& event);
+
+    void OnActivate(wxActivateEvent& event);
+    void OnCloseWindow(wxCloseEvent& event);
+
+    inline wxDocument *GetDocument() const { return m_childDocument; }
+    inline wxView *GetView(void) const { return m_childView; }
+    inline void SetDocument(wxDocument *doc) { m_childDocument = doc; }
+    inline void SetView(wxView *view) { m_childView = view; }
+    bool Destroy() { m_childView = (wxView *)NULL; return wxMDIChildFrame::Destroy(); }
+    
+protected:
+    wxDocument*       m_childDocument;
+    wxView*           m_childView;
+
+private:
+    DECLARE_EVENT_TABLE()
+    DECLARE_CLASS(wxDocMDIChildFrame)
 };
 
 #endif
diff --git a/include/wx/docview.h b/include/wx/docview.h
index 93e968d334..0a6ca711f4 100644
--- a/include/wx/docview.h
+++ b/include/wx/docview.h
@@ -64,8 +64,6 @@ enum
 
 class WXDLLEXPORT wxDocument : public wxEvtHandler
 {
-    DECLARE_ABSTRACT_CLASS(wxDocument)
-
 public:
     wxDocument(wxDocument *parent = (wxDocument *) NULL);
     ~wxDocument();
@@ -160,12 +158,13 @@ protected:
     wxDocument*           m_documentParent;
     wxCommandProcessor*   m_commandProcessor;
     bool                  m_savedYet;
+    
+private:
+    DECLARE_ABSTRACT_CLASS(wxDocument)
 };
 
 class WXDLLEXPORT wxView: public wxEvtHandler
 {
-    DECLARE_ABSTRACT_CLASS(wxView)
-
 public:
     //  wxView(wxDocument *doc = (wxDocument *) NULL);
     wxView();
@@ -222,12 +221,14 @@ protected:
     wxDocument*       m_viewDocument;
     wxString          m_viewTypeName;
     wxWindow*         m_viewFrame;
+    
+private:
+    DECLARE_ABSTRACT_CLASS(wxView)
 };
 
 // Represents user interface (and other) properties of documents and views
 class WXDLLEXPORT wxDocTemplate: public wxObject
 {
-DECLARE_CLASS(wxDocTemplate)
 
 friend class WXDLLEXPORT wxDocManager;
 
@@ -286,6 +287,9 @@ protected:
     // For dynamic creation of appropriate instances.
     wxClassInfo*      m_docClassInfo;
     wxClassInfo*      m_viewClassInfo;
+    
+private:
+    DECLARE_CLASS(wxDocTemplate)
 };
 
 // One object of this class may be created in an application, to manage all
@@ -333,9 +337,6 @@ public:
 
     // called when file format detection didn't work, can be overridden to do
     // something in this case
-    // This is of course completely stupid, because if the file dialog is
-    // cancelled you get an assert. Brilliant. -- JACS
-//    virtual void OnOpenFileFailure() { wxFAIL_MSG(_T("file format mismatch")); }
     virtual void OnOpenFileFailure() { }
 
     virtual wxDocument *CreateDocument(const wxString& path, long flags = 0);
@@ -427,8 +428,6 @@ protected:
 
 class WXDLLEXPORT wxDocChildFrame : public wxFrame
 {
-    DECLARE_CLASS(wxDocChildFrame)
-
 public:
     wxDocChildFrame(wxDocument *doc,
                     wxView *view,
@@ -438,7 +437,7 @@ public:
                     const wxPoint& pos = wxDefaultPosition,
                     const wxSize& size = wxDefaultSize,
                     long type = wxDEFAULT_FRAME_STYLE,
-                    const wxString& name = "frame");
+                    const wxString& name = wxT("frame"));
     ~wxDocChildFrame();
 
     // Extend event processing to search the view's event table
@@ -457,6 +456,8 @@ protected:
     wxDocument*       m_childDocument;
     wxView*           m_childView;
 
+private:
+    DECLARE_CLASS(wxDocChildFrame)
     DECLARE_EVENT_TABLE()
 };
 
@@ -466,8 +467,6 @@ protected:
 
 class WXDLLEXPORT wxDocParentFrame : public wxFrame
 {
-    DECLARE_CLASS(wxDocParentFrame)
-
 public:
     wxDocParentFrame(wxDocManager *manager,
                      wxFrame *frame,
@@ -476,7 +475,7 @@ public:
                      const wxPoint& pos = wxDefaultPosition,
                      const wxSize& size = wxDefaultSize,
                      long type = wxDEFAULT_FRAME_STYLE,
-                     const wxString& name = "frame");
+                     const wxString& name = wxT("frame"));
 
     // Extend event processing to search the document manager's event table
     virtual bool ProcessEvent(wxEvent& event);
@@ -490,6 +489,8 @@ public:
 protected:
     wxDocManager *m_docManager;
 
+private:
+    DECLARE_CLASS(wxDocParentFrame)
     DECLARE_EVENT_TABLE()
 };
 
@@ -500,10 +501,8 @@ protected:
 #if wxUSE_PRINTING_ARCHITECTURE
 class WXDLLEXPORT wxDocPrintout : public wxPrintout
 {
-    DECLARE_DYNAMIC_CLASS(wxDocPrintout)
-
 public:
-    wxDocPrintout(wxView *view = (wxView *) NULL, const wxString& title = "Printout");
+    wxDocPrintout(wxView *view = (wxView *) NULL, const wxString& title = wxT("Printout"));
     bool OnPrintPage(int page);
     bool HasPage(int page);
     bool OnBeginDocument(int startPage, int endPage);
@@ -513,6 +512,9 @@ public:
 
 protected:
     wxView*       m_printoutView;
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxDocPrintout)
 };
 #endif // wxUSE_PRINTING_ARCHITECTURE
 
@@ -522,8 +524,6 @@ protected:
 
 class WXDLLEXPORT wxFileHistory : public wxObject
 {
-    DECLARE_DYNAMIC_CLASS(wxFileHistory)
-
 public:
     wxFileHistory(int maxFiles = 9);
     ~wxFileHistory();
@@ -563,6 +563,9 @@ protected:
     wxList            m_fileMenus;
     // Max files to maintain
     int               m_fileMaxFiles;
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxFileHistory)
 };
 
 #if wxUSE_STD_IOSTREAM
diff --git a/include/wx/dragimag.h b/include/wx/dragimag.h
index 097edaacd3..39d4a81058 100644
--- a/include/wx/dragimag.h
+++ b/include/wx/dragimag.h
@@ -8,7 +8,7 @@ class WXDLLEXPORT wxMemoryDC;
 class WXDLLEXPORT wxDC;
 
 #if defined(__WXMSW__)
-#ifdef __WIN16__
+#if defined(__WIN16__)  || defined(__WXUNIVERSAL__)
 #include "wx/generic/dragimgg.h"
 #define wxDragImage wxGenericDragImage
 #define sm_classwxDragImage sm_classwxGenericDragImage
diff --git a/include/wx/dynload.h b/include/wx/dynload.h
index 11462250d6..a1c19d73a9 100644
--- a/include/wx/dynload.h
+++ b/include/wx/dynload.h
@@ -25,7 +25,7 @@
 
 #if wxUSE_DYNAMIC_LOADER
 
-#include "wx/hash.h"
+#include "wx/hashmap.h"
 #include "wx/module.h"
 
 // FIXME: can this go in private.h or something too??
@@ -38,11 +38,10 @@
 #include "wx/msw/private.h"
 #endif
 
-// Ugh, I'd much rather this was typesafe, but no time
-// to rewrite wxHashTable right now..
+class WXDLLEXPORT wxPluginLibrary;
 
-typedef wxHashTable wxDLManifest;
-typedef wxHashTable wxDLImports;
+WX_DECLARE_EXPORTED_STRING_HASH_MAP(wxPluginLibrary *, wxDLManifest);
+typedef wxDLManifest wxDLImports;
 
 // ----------------------------------------------------------------------------
 // conditional compilation
@@ -168,7 +167,7 @@ protected:
         // no copy ctor/assignment operators
         // or we'd try to unload the library twice
 
-DECLARE_NO_COPY_CLASS(wxDynamicLibrary)
+    DECLARE_NO_COPY_CLASS(wxDynamicLibrary)
 };
 
 
@@ -234,7 +233,7 @@ private:
     void    RegisterModules();      // Init any wxModules in the lib.
     void    UnregisterModules();    // Cleanup any wxModules we installed.
 
-DECLARE_NO_COPY_CLASS(wxPluginLibrary)
+    DECLARE_NO_COPY_CLASS(wxPluginLibrary)
 };
 
 
@@ -257,7 +256,7 @@ public:
 
         // Instance methods.
 
-    wxPluginManager() : m_entry(0) {};
+    wxPluginManager() : m_entry(NULL) {};
     wxPluginManager(const wxString &libname, int flags = wxDL_DEFAULT)
     {
         Load(libname, flags);
@@ -277,14 +276,21 @@ public:
     static void ClearManifest() { delete ms_manifest; ms_manifest = NULL; }
 
 private:
+    // return the pointer to the entry for the library with given name in
+    // ms_manifest or NULL if none
+    static wxPluginLibrary *FindByName(const wxString& name)
+    {
+        const wxDLManifest::iterator i = ms_manifest->find(name);
+
+        return i == ms_manifest->end() ? NULL : i->second;
+    }
 
     static wxDLManifest* ms_manifest;  // Static hash of loaded libs.
     wxPluginLibrary*     m_entry;      // Cache our entry in the manifest.
 
     // We could allow this class to be copied if we really
     // wanted to, but not without modification.
-
-DECLARE_NO_COPY_CLASS(wxPluginManager)
+    DECLARE_NO_COPY_CLASS(wxPluginManager)
 };
 
 
diff --git a/include/wx/encconv.h b/include/wx/encconv.h
index 013b9d76bf..7b9589f355 100644
--- a/include/wx/encconv.h
+++ b/include/wx/encconv.h
@@ -62,7 +62,7 @@ class WXDLLEXPORT wxEncodingConverter : public wxObject
             wxEncodingConverter();
             ~wxEncodingConverter() { if (m_Table) delete[] m_Table; }
 
-            // Initialize convertion. Both output or input encoding may
+            // Initialize conversion. Both output or input encoding may
             // be wxFONTENCODING_UNICODE, but only if wxUSE_WCHAR_T is set to 1.
             //
             // All subsequent calls to Convert() will interpret it's argument
diff --git a/include/wx/event.h b/include/wx/event.h
index 223502421d..744263bba4 100644
--- a/include/wx/event.h
+++ b/include/wx/event.h
@@ -817,22 +817,7 @@ class WXDLLEXPORT wxKeyEvent : public wxEvent
 {
 public:
     wxKeyEvent(wxEventType keyType = wxEVT_NULL);
-	wxKeyEvent(const wxKeyEvent& evt) : wxEvent(evt)
-    {
-        m_x = evt.m_x;
-        m_y = evt.m_y;
-
-        m_keyCode = evt.m_keyCode;
-
-        m_controlDown = evt.m_controlDown;
-        m_shiftDown = evt.m_shiftDown;
-        m_altDown = evt.m_altDown;
-        m_metaDown = evt.m_metaDown;
-        m_scanCode = evt.m_scanCode;
-        m_rawCode = evt.m_rawCode;
-        m_rawFlags = evt.m_rawFlags;
-    }
-
+	wxKeyEvent(const wxKeyEvent& evt);
 
     // Find state of shift/control keys
     bool ControlDown() const { return m_controlDown; }
@@ -914,8 +899,14 @@ public:
     bool          m_metaDown;
     bool          m_scanCode;
 
-    // these fields contain the platform-specific information about the pressed
-    // key
+#if wxUSE_UNICODE
+    // This contains the full Unicode character
+    // in a character events in Unicode mode
+    wxChar        m_uniChar;
+#endif
+
+    // these fields contain the platform-specific information about
+    // key that was pressed
     wxUint32      m_rawCode;
     wxUint32      m_rawFlags;
 
diff --git a/include/wx/filefn.h b/include/wx/filefn.h
index 45e3648086..b6d2f0087f 100644
--- a/include/wx/filefn.h
+++ b/include/wx/filefn.h
@@ -150,34 +150,25 @@ WXDLLEXPORT int wxOpen( const wxChar *pathname, int flags, mode_t mode );
 // functions
 // ----------------------------------------------------------------------------
 WXDLLEXPORT bool wxFileExists(const wxString& filename);
-#define FileExists wxFileExists
 
 // does the path exist? (may have or not '/' or '\\' at the end)
 WXDLLEXPORT bool wxPathExists(const wxChar *pszPathName);
 
-#define wxDirExists wxPathExists
-#define DirExists wxDirExists
-
 WXDLLEXPORT bool wxIsAbsolutePath(const wxString& filename);
-#define IsAbsolutePath wxIsAbsolutePath
 
 // Get filename
 WXDLLEXPORT wxChar* wxFileNameFromPath(wxChar *path);
 WXDLLEXPORT wxString wxFileNameFromPath(const wxString& path);
-#define FileNameFromPath wxFileNameFromPath
 
 // Get directory
 WXDLLEXPORT wxString wxPathOnly(const wxString& path);
-#define PathOnly wxPathOnly
 
 // wxString version
 WXDLLEXPORT wxString wxRealPath(const wxString& path);
 
 WXDLLEXPORT void wxDos2UnixFilename(wxChar *s);
-#define Dos2UnixFilename wxDos2UnixFilename
 
 WXDLLEXPORT void wxUnix2DosFilename(wxChar *s);
-#define Unix2DosFilename wxUnix2DosFilename
 
 // Strip the extension, in situ
 WXDLLEXPORT void wxStripExtension(wxChar *buffer);
@@ -251,6 +242,19 @@ WXDLLEXPORT bool wxMkdir(const wxString& dir, int perm = 0777);
 // Remove directory. Flags reserved for future use.
 WXDLLEXPORT bool wxRmdir(const wxString& dir, int flags = 0);
 
+// compatibility defines, don't use in new code
+#define wxDirExists wxPathExists
+
+#if WXWIN_COMPATIBILITY_2
+    #define FileExists wxFileExists
+    #define DirExists wxDirExists
+    #define IsAbsolutePath wxIsAbsolutePath
+    #define FileNameFromPath wxFileNameFromPath
+    #define PathOnly wxPathOnly
+    #define Dos2UnixFilename wxDos2UnixFilename
+    #define Unix2DosFilename wxUnix2DosFilename
+#endif
+
 // ----------------------------------------------------------------------------
 // separators in file names
 // ----------------------------------------------------------------------------
diff --git a/include/wx/filename.h b/include/wx/filename.h
index 491e7deecc..38e6645e06 100644
--- a/include/wx/filename.h
+++ b/include/wx/filename.h
@@ -274,14 +274,21 @@ public:
 
     // Comparison
 
-        // compares with the rules of this platform
-    bool SameAs(const wxFileName &filepath,
-                wxPathFormat format = wxPATH_NATIVE);
-
-        // uses the current platform settings
-    bool operator==(const wxFileName& filename) { return SameAs(filename); }
-    bool operator==(const wxString& filename)
-        { return *this == wxFileName(filename); }
+        // compares with the rules of the given platforms format
+    bool SameAs(const wxFileName& filepath,
+                wxPathFormat format = wxPATH_NATIVE) const;
+
+        // compare with another filename object
+    bool operator==(const wxFileName& filename) const
+        { return SameAs(filename); }
+    bool operator!=(const wxFileName& filename) const
+        { return !SameAs(filename); }
+
+        // compare with a filename string interpreted as a native file name
+    bool operator==(const wxString& filename) const
+        { return SameAs(wxFileName(filename)); }
+    bool operator!=(const wxString& filename) const
+        { return !SameAs(wxFileName(filename)); }
 
         // are the file names of this type cases sensitive?
     static bool IsCaseSensitive( wxPathFormat format = wxPATH_NATIVE );
diff --git a/include/wx/filesys.h b/include/wx/filesys.h
index b8e5da0927..b819282152 100644
--- a/include/wx/filesys.h
+++ b/include/wx/filesys.h
@@ -180,6 +180,13 @@ public:
     // remove all items from the m_Handlers list
     static void CleanUpHandlers();
 
+    // Returns the native path for a file URL
+    static wxString URLToNativePath( const wxString& url );
+
+    // Returns the file URL for a native path
+    static wxString NativePathToURL( const wxString& path );
+
+
 protected:
     wxString m_Path;
             // the path (location) we are currently in
diff --git a/include/wx/font.h b/include/wx/font.h
index e519bad84d..0e6098ea3b 100644
--- a/include/wx/font.h
+++ b/include/wx/font.h
@@ -182,6 +182,10 @@ public:
     wxString GetStyleString() const;
     wxString GetWeightString() const;
 
+    // Unofficial API, don't use
+    virtual void SetNoAntiAliasing( bool no = TRUE ) {  }
+    virtual bool GetNoAntiAliasing() { return FALSE; }
+
     // the default encoding is used for creating all fonts with default
     // encoding parameter
     static wxFontEncoding GetDefaultEncoding() { return ms_encodingDefault; }
@@ -191,7 +195,7 @@ protected:
     // get the internal data
     wxFontRefData *GetFontData() const
         { return (wxFontRefData *)m_refData; }
-
+    
 private:
     // the currently default encoding: by default, it's the default system
     // encoding, but may be changed by the application using
diff --git a/include/wx/fontenc.h b/include/wx/fontenc.h
index 2ec2bc147a..afa99f08f1 100644
--- a/include/wx/fontenc.h
+++ b/include/wx/fontenc.h
@@ -71,6 +71,15 @@ enum wxFontEncoding
     wxFONTENCODING_UTF7,            // UTF-7 Unicode encoding
     wxFONTENCODING_UTF8,            // UTF-8 Unicode encoding
 
+    // Far Eastern encodings
+        // Chinese
+    wxFONTENCODING_GB2312 = wxFONTENCODING_CP936, // Simplified Chinese
+    wxFONTENCODING_BIG5 = wxFONTENCODING_CP950,   // Traditional Chinese
+
+        // Japanese (see http://zsigri.tripod.com/fontboard/cjk/jis.html)
+    wxFONTENCODING_SHIFT_JIS = wxFONTENCODING_CP932,  // Shift JIS
+    wxFONTENCODING_EUC_JP,          // Extended Unix Codepage for Japanese
+
     wxFONTENCODING_UNICODE,         // Unicode - currently used only by
                                     // wxEncodingConverter class
 
diff --git a/include/wx/fontutil.h b/include/wx/fontutil.h
index 90ec00dc1c..2adeb7ed40 100644
--- a/include/wx/fontutil.h
+++ b/include/wx/fontutil.h
@@ -72,7 +72,9 @@ enum wxXLFDField
 //     further it might make sense to make it a real class with virtual methods
 struct WXDLLEXPORT wxNativeFontInfo
 {
-#if defined(_WX_X_FONTLIKE)
+#if wxUSE_PANGO
+    PangoFontDescription *description;
+#elif defined(_WX_X_FONTLIKE)
     // the members can't be accessed directly as we only parse the
     // xFontName on demand
 private:
@@ -113,8 +115,6 @@ public:
     FATTRS       fa;
     FONTMETRICS  fm;
     FACENAMEDESC fn;
-#elif defined(__WXGTK20__)
-    PangoFontDescription *description;
 #else // other platforms
     //
     //  This is a generic implementation that should work on all ports
diff --git a/include/wx/frame.h b/include/wx/frame.h
index 2af6cd1d8d..4228ea0c10 100644
--- a/include/wx/frame.h
+++ b/include/wx/frame.h
@@ -86,8 +86,10 @@ public:
     virtual wxMenuBar *GetMenuBar() const { return m_frameMenuBar; }
 #endif // wxUSE_MENUS
 
+#ifdef WXWIN_COMPATIBILITY_2_2
     // call this to simulate a menu command
     bool Command(int id) { return ProcessCommand(id); }
+#endif // WXWIN_COMPATIBILITY_2_2
 
     // process menu command: returns TRUE if processed
     bool ProcessCommand(int id);
diff --git a/include/wx/fs_mem.h b/include/wx/fs_mem.h
index 0d70b7be9e..44cd4d489d 100644
--- a/include/wx/fs_mem.h
+++ b/include/wx/fs_mem.h
@@ -15,7 +15,7 @@
 
 #include "wx/wxprec.h"
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
diff --git a/include/wx/fs_zip.h b/include/wx/fs_zip.h
index cfc1a99525..0678587f36 100644
--- a/include/wx/fs_zip.h
+++ b/include/wx/fs_zip.h
@@ -16,7 +16,7 @@
 
 #include "wx/wxprec.h"
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
diff --git a/include/wx/gdicmn.h b/include/wx/gdicmn.h
index 9f206f30fc..3cd8a18402 100644
--- a/include/wx/gdicmn.h
+++ b/include/wx/gdicmn.h
@@ -151,10 +151,10 @@ enum wxStockCursor
 
 #ifdef __WXMSW__
     // Load from a resource
-    #define wxICON(X) wxIcon("" #X "")
+    #define wxICON(X) wxIcon(wxT(#X))
 #elif defined(__WXPM__)
     // Load from a resource
-    #define wxICON(X) wxIcon("" #X "")
+    #define wxICON(X) wxIcon(wxT(#X))
 #elif defined(__WXMGL__)
     // Initialize from an included XPM
     #define wxICON(X) wxIcon( (const char**) X##_xpm )
@@ -172,7 +172,7 @@ enum wxStockCursor
     #define wxICON(X) wxIcon( X##_xpm )
 #else
     // This will usually mean something on any platform
-    #define wxICON(X) wxIcon("" #X "")
+    #define wxICON(X) wxIcon(wxT(#X))
 #endif // platform
 
 /* Another macro: this one is for portable creation of bitmaps. We assume that
@@ -180,7 +180,7 @@ enum wxStockCursor
  */
 
 #if defined(__WXMSW__) || defined(__WXPM__)
-    #define wxBITMAP(name) wxBitmap(#name, wxBITMAP_TYPE_RESOURCE)
+    #define wxBITMAP(name) wxBitmap(wxT(#name), wxBITMAP_TYPE_RESOURCE)
 #elif defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXX11__) || defined(__WXMAC__) || defined(__WXMGL__)
     // Initialize from an included XPM
     #define wxBITMAP(name) wxBitmap( (const char**) name##_xpm )
@@ -247,6 +247,7 @@ public:
     wxRealPoint operator-(const wxRealPoint& pt) const { return wxRealPoint(x - pt.x, y - pt.y); }
 
     bool operator==(const wxRealPoint& pt) const { return x == pt.x && y == pt.y; }
+    bool operator!=(const wxRealPoint& pt) const { return x != pt.x || y != pt.y; }
 };
 
 class WXDLLEXPORT wxPoint
diff --git a/include/wx/generic/calctrl.h b/include/wx/generic/calctrl.h
index 63f98225f8..879ddcda07 100644
--- a/include/wx/generic/calctrl.h
+++ b/include/wx/generic/calctrl.h
@@ -43,12 +43,7 @@ public:
                    const wxPoint& pos = wxDefaultPosition,
                    const wxSize& size = wxDefaultSize,
                    long style = wxCAL_SHOW_HOLIDAYS | wxWANTS_CHARS,
-                   const wxString& name = wxCalendarNameStr)
-    {
-        Init();
-
-        (void)Create(parent, id, date, pos, size, style, name);
-    }
+                   const wxString& name = wxCalendarNameStr);
 
     bool Create(wxWindow *parent,
                 wxWindowID id,
diff --git a/include/wx/generic/dirctrlg.h b/include/wx/generic/dirctrlg.h
index f0456997a9..b19d21f647 100644
--- a/include/wx/generic/dirctrlg.h
+++ b/include/wx/generic/dirctrlg.h
@@ -102,9 +102,9 @@ public:
               int defaultFilter = 0,
               const wxString& name = wxTreeCtrlNameStr );
 
-    void Init();
+    virtual void Init();
 
-    ~wxGenericDirCtrl();
+    virtual ~wxGenericDirCtrl();
 
     void OnExpandItem(wxTreeEvent &event );
     void OnCollapseItem(wxTreeEvent &event );
@@ -113,52 +113,52 @@ public:
     void OnSize(wxSizeEvent &event );
 
     // Try to expand as much of the given path as possible.
-    bool ExpandPath(const wxString& path);
+    virtual bool ExpandPath(const wxString& path);
 
     // Accessors
 
-    inline wxString GetDefaultPath() const { return m_defaultPath; }
-    void SetDefaultPath(const wxString& path) { m_defaultPath = path; }
+    virtual inline wxString GetDefaultPath() const { return m_defaultPath; }
+    virtual void SetDefaultPath(const wxString& path) { m_defaultPath = path; }
 
     // Get dir or filename
-    wxString GetPath() const;
+    virtual wxString GetPath() const;
     
     // Get selected filename path only (else empty string).
     // I.e. don't count a directory as a selection
-    wxString GetFilePath() const;
-    void SetPath(const wxString& path);
+    virtual wxString GetFilePath() const;
+    virtual void SetPath(const wxString& path);
     
-    void ShowHidden( bool show );
-    bool GetShowHidden() { return m_showHidden; }
+    virtual void ShowHidden( bool show );
+    virtual bool GetShowHidden() { return m_showHidden; }
 
-    wxString GetFilter() const { return m_filter; }
-    void SetFilter(const wxString& filter);
+    virtual wxString GetFilter() const { return m_filter; }
+    virtual void SetFilter(const wxString& filter);
 
-    int GetFilterIndex() const { return m_currentFilter; }
-    void SetFilterIndex(int n);
+    virtual int GetFilterIndex() const { return m_currentFilter; }
+    virtual void SetFilterIndex(int n);
 
-    wxTreeItemId GetRootId() { return m_rootId; }
+    virtual wxTreeItemId GetRootId() { return m_rootId; }
 
-    wxTreeCtrl* GetTreeCtrl() const { return m_treeCtrl; }
-    wxDirFilterListCtrl* GetFilterListCtrl() const { return m_filterListCtrl; }
+    virtual wxTreeCtrl* GetTreeCtrl() const { return m_treeCtrl; }
+    virtual wxDirFilterListCtrl* GetFilterListCtrl() const { return m_filterListCtrl; }
 
     // Helper
-    void SetupSections();
+    virtual void SetupSections();
     
     // Parse the filter into an array of filters and an array of descriptions
-    int ParseFilter(const wxString& filterStr, wxArrayString& filters, wxArrayString& descriptions);
+    virtual int ParseFilter(const wxString& filterStr, wxArrayString& filters, wxArrayString& descriptions);
     
     // Find the child that matches the first part of 'path'.
     // E.g. if a child path is "/usr" and 'path' is "/usr/include"
     // then the child for /usr is returned.
     // If the path string has been used (we're at the leaf), done is set to TRUE
-    wxTreeItemId FindChild(wxTreeItemId parentId, const wxString& path, bool& done);
+    virtual wxTreeItemId FindChild(wxTreeItemId parentId, const wxString& path, bool& done);
     
     // Resize the components of the control
-    void DoResize();
+    virtual void DoResize();
     
     // Collapse & expand the tree, thus re-creating it from scratch:
-    void ReCreateTree();
+    virtual void ReCreateTree();
     
 protected:
     void ExpandDir(wxTreeItemId parentId);
diff --git a/include/wx/generic/dragimgg.h b/include/wx/generic/dragimgg.h
index 0a907fdfac..ad24c31e6e 100644
--- a/include/wx/generic/dragimgg.h
+++ b/include/wx/generic/dragimgg.h
@@ -1,4 +1,4 @@
-/////////////////////////////////////////////////////////////////////////////
+//////////////////////////////////////////////////////////////////////////////
 // Name:        wx/generic/dragimgg.h
 // Purpose:     wxDragImage class: a kind of a cursor, that can cope
 //              with more sophisticated images
@@ -22,6 +22,7 @@
 #include "wx/cursor.h"
 #include "wx/treectrl.h"
 #include "wx/listctrl.h"
+#include "wx/log.h"
 
 /*
   To use this class, create a wxDragImage when you start dragging, for example:
diff --git a/include/wx/generic/filedlgg.h b/include/wx/generic/filedlgg.h
index 452a01cf6a..41e4ba171a 100644
--- a/include/wx/generic/filedlgg.h
+++ b/include/wx/generic/filedlgg.h
@@ -89,13 +89,16 @@ public:
     void OnHome( wxCommandEvent &event );
     void OnListOk( wxCommandEvent &event );
     void OnNew( wxCommandEvent &event );
-    void OnChoice( wxCommandEvent &event );
+    void OnChoiceFilter( wxCommandEvent &event );
     void OnTextEnter( wxCommandEvent &event );
     void OnCheck( wxCommandEvent &event );
 
     void HandleAction( const wxString &fn );
 
 protected:
+    // use the filter with the given index
+    void DoSetFilterIndex(int filterindex);
+
     wxString       m_message;
     long           m_dialogStyle;
     wxString       m_dir;
diff --git a/include/wx/generic/grid.h b/include/wx/generic/grid.h
index 3add2b3c6a..9154f8970c 100644
--- a/include/wx/generic/grid.h
+++ b/include/wx/generic/grid.h
@@ -1824,7 +1824,7 @@ protected:
     bool GetModelValues();
     bool SetModelValues();
 
-        friend class wxGridSelection;
+    friend class WXDLLEXPORT wxGridSelection;
 
     DECLARE_DYNAMIC_CLASS( wxGrid )
     DECLARE_EVENT_TABLE()
diff --git a/include/wx/generic/gridsel.h b/include/wx/generic/gridsel.h
index 4645f2c142..87fc640315 100644
--- a/include/wx/generic/gridsel.h
+++ b/include/wx/generic/gridsel.h
@@ -82,7 +82,7 @@ private:
     wxGrid                              *m_grid;
     wxGrid::wxGridSelectionModes        m_selectionMode;
 
-    friend class wxGrid;
+    friend class WXDLLEXPORT wxGrid;
 };
 
 #endif  // #ifdef __WXGRIDSEL_H__
diff --git a/include/wx/generic/helphtml.h b/include/wx/generic/helphtml.h
index ca99146693..8e81689988 100644
--- a/include/wx/generic/helphtml.h
+++ b/include/wx/generic/helphtml.h
@@ -86,7 +86,7 @@ DECLARE_ABSTRACT_CLASS(wxHTMLHelpControllerBase)
        @file Name of help directory.
        @return true on success
    */
-   virtual bool LoadFile(const wxString& file = "");
+   virtual bool LoadFile(const wxString& file = wxT(""));
 
    /** Display list of all help entries.
        @return true on success
diff --git a/include/wx/generic/laywin.h b/include/wx/generic/laywin.h
index 7a4908efdc..992e1b0d34 100644
--- a/include/wx/generic/laywin.h
+++ b/include/wx/generic/laywin.h
@@ -61,9 +61,7 @@ enum wxLayoutAlignment
 
 class WXDLLEXPORT wxQueryLayoutInfoEvent: public wxEvent
 {
-DECLARE_DYNAMIC_CLASS(wxQueryLayoutInfoEvent)
 public:
-
     wxQueryLayoutInfoEvent(wxWindowID id = 0)
     {
         SetEventType(wxEVT_QUERY_LAYOUT_INFO);
@@ -99,7 +97,9 @@ protected:
     wxSize                  m_size;
     wxLayoutOrientation     m_orientation;
     wxLayoutAlignment       m_alignment;
-
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxQueryLayoutInfoEvent)
 };
 
 typedef void (wxEvtHandler::*wxQueryLayoutInfoEventFunction)(wxQueryLayoutInfoEvent&);
@@ -113,7 +113,6 @@ typedef void (wxEvtHandler::*wxQueryLayoutInfoEventFunction)(wxQueryLayoutInfoEv
 
 class WXDLLEXPORT wxCalculateLayoutEvent: public wxEvent
 {
-DECLARE_DYNAMIC_CLASS(wxCalculateLayoutEvent)
 public:
     wxCalculateLayoutEvent(wxWindowID id = 0)
     {
@@ -135,6 +134,9 @@ public:
 protected:
     int                     m_flags;
     wxRect                  m_rect;
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxCalculateLayoutEvent)
 };
 
 typedef void (wxEvtHandler::*wxCalculateLayoutEventFunction)(wxCalculateLayoutEvent&);
@@ -149,7 +151,6 @@ typedef void (wxEvtHandler::*wxCalculateLayoutEventFunction)(wxCalculateLayoutEv
 // an IDE-style interface.
 class WXDLLEXPORT wxSashLayoutWindow: public wxSashWindow
 {
-    DECLARE_CLASS(wxSashLayoutWindow)
 public:
     wxSashLayoutWindow()
     {
@@ -157,13 +158,13 @@ public:
     }
 
     wxSashLayoutWindow(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "layoutWindow")
+        const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = wxT("layoutWindow"))
     {
         Create(parent, id, pos, size, style, name);
     }
 
     bool Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "layoutWindow");
+        const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = wxT("layoutWindow"));
 
 // Accessors
     inline wxLayoutAlignment GetAlignment() const { return m_alignment; };
@@ -190,7 +191,9 @@ private:
     wxLayoutOrientation         m_orientation;
     wxSize                      m_defaultSize;
 
-DECLARE_EVENT_TABLE()
+private:
+    DECLARE_CLASS(wxSashLayoutWindow)
+    DECLARE_EVENT_TABLE()
 };
 
 #endif // wxUSE_SASH
diff --git a/include/wx/generic/listctrl.h b/include/wx/generic/listctrl.h
index b29dd9b516..b84337ef21 100644
--- a/include/wx/generic/listctrl.h
+++ b/include/wx/generic/listctrl.h
@@ -72,7 +72,7 @@ public:
                 const wxSize &size = wxDefaultSize,
                 long style = wxLC_ICON,
                 const wxValidator& validator = wxDefaultValidator,
-                const wxString &name = "listctrl" )
+                const wxString &name = wxT("listctrl") )
     {
         Create(parent, id, pos, size, style, validator, name);
     }
@@ -84,7 +84,7 @@ public:
                  const wxSize &size = wxDefaultSize,
                  long style = wxLC_ICON,
                  const wxValidator& validator = wxDefaultValidator,
-                 const wxString &name = "listctrl" );
+                 const wxString &name = wxT("listctrl") );
 
     bool GetColumn( int col, wxListItem& item ) const;
     bool SetColumn( int col, wxListItem& item );
@@ -246,7 +246,7 @@ public:
                const wxSize& size = wxDefaultSize,
                long style = wxLC_ICON,
                const wxValidator &validator = wxDefaultValidator,
-               const wxString &name = "listctrl" )
+               const wxString &name = wxT("listctrl") )
     : wxGenericListCtrl(parent, id, pos, size, style, validator, name)
     {
     }
diff --git a/include/wx/generic/mdig.h b/include/wx/generic/mdig.h
index 467bddfef4..de26aa026d 100644
--- a/include/wx/generic/mdig.h
+++ b/include/wx/generic/mdig.h
@@ -265,6 +265,8 @@ private:
 
 #if wxUSE_GENERIC_MDI_AS_NATIVE
 
+class wxMDIChildFrame ;
+
 //-----------------------------------------------------------------------------
 // wxMDIParentFrame
 //-----------------------------------------------------------------------------
@@ -284,6 +286,9 @@ public:
     {
     }
 
+    wxMDIChildFrame * GetActiveChild() const ;
+    
+    
 private:
     DECLARE_DYNAMIC_CLASS(wxMDIParentFrame)
 };
diff --git a/include/wx/generic/panelg.h b/include/wx/generic/panelg.h
index b7f14c0af2..cb4a5f7769 100644
--- a/include/wx/generic/panelg.h
+++ b/include/wx/generic/panelg.h
@@ -82,8 +82,8 @@ public:
     virtual void InitDialog();
 
 #ifdef __WXUNIVERSAL__
-    virtual bool IsCanvasWindow() { return TRUE; }
-    virtual bool ProvidesBackground() { return TRUE; }
+    virtual bool IsCanvasWindow() const { return TRUE; }
+    virtual bool ProvidesBackground() const { return TRUE; }
 #endif
 
     WX_DECLARE_CONTROL_CONTAINER();
diff --git a/include/wx/generic/sashwin.h b/include/wx/generic/sashwin.h
index f21b76c8a3..dcd39f47f5 100644
--- a/include/wx/generic/sashwin.h
+++ b/include/wx/generic/sashwin.h
@@ -69,13 +69,7 @@ public:
 
 class WXDLLEXPORT wxSashWindow: public wxWindow
 {
-  DECLARE_DYNAMIC_CLASS(wxSashWindow)
-
 public:
-
-////////////////////////////////////////////////////////////////////////////
-// Public API
-
     // Default constructor
     wxSashWindow()
     {
@@ -84,7 +78,7 @@ public:
 
     // Normal constructor
     wxSashWindow(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "sashWindow")
+        const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = wxT("sashWindow"))
     {
         Init();
         Create(parent, id, pos, size, style, name);
@@ -93,7 +87,7 @@ public:
     ~wxSashWindow();
 
     bool Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "sashWindow");
+        const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = wxT("sashWindow"));
 
     // Set whether there's a sash in this position
     void SetSashVisible(wxSashEdgePosition edge, bool sash);
@@ -144,6 +138,11 @@ public:
     // Adjusts the panes
     void OnSize(wxSizeEvent& event);
 
+#ifdef __WXMSW__
+    // Handle cursor correctly
+    void OnSetCursor(wxSetCursorEvent& event);
+#endif // wxMSW
+
     // Draws borders
     void DrawBorders(wxDC& dc);
 
@@ -189,8 +188,11 @@ private:
     wxColour    m_hilightColour;
     wxColour    m_faceColour;
     bool        m_mouseCaptured;
+    wxCursor*   m_currentCursor;
 
-DECLARE_EVENT_TABLE()
+private:
+    DECLARE_DYNAMIC_CLASS(wxSashWindow)
+    DECLARE_EVENT_TABLE()
 };
 
 BEGIN_DECLARE_EVENT_TYPES()
@@ -207,9 +209,7 @@ enum wxSashDragStatus
 
 class WXDLLEXPORT wxSashEvent: public wxCommandEvent
 {
-  DECLARE_DYNAMIC_CLASS(wxSashEvent)
-
- public:
+public:
     inline wxSashEvent(int id = 0, wxSashEdgePosition edge = wxSASH_NONE) {
      m_eventType = (wxEventType) wxEVT_SASH_DRAGGED; m_id = id; m_edge = edge; }
 
@@ -224,10 +224,14 @@ class WXDLLEXPORT wxSashEvent: public wxCommandEvent
     //// dragging the top below the bottom)
     inline void SetDragStatus(wxSashDragStatus status) { m_dragStatus = status; }
     inline wxSashDragStatus GetDragStatus() const { return m_dragStatus; }
- private:
+    
+private:
     wxSashEdgePosition  m_edge;
     wxRect              m_dragRect;
     wxSashDragStatus    m_dragStatus;
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxSashEvent)
 };
 
 typedef void (wxEvtHandler::*wxSashEventFunction)(wxSashEvent&);
diff --git a/include/wx/generic/scrolwin.h b/include/wx/generic/scrolwin.h
index 1d3a4d3404..e0336e1368 100644
--- a/include/wx/generic/scrolwin.h
+++ b/include/wx/generic/scrolwin.h
@@ -69,6 +69,8 @@ public:
     // lay out the window and its children
     virtual bool Layout();
 
+    virtual void DoSetVirtualSize(int x, int y);
+
 protected:
     // this is needed for wxEVT_PAINT processing hack described in
     // wxScrollHelperEvtHandler::ProcessEvent()
diff --git a/include/wx/generic/splitter.h b/include/wx/generic/splitter.h
index 2ea74a49d0..26480fe129 100644
--- a/include/wx/generic/splitter.h
+++ b/include/wx/generic/splitter.h
@@ -71,7 +71,7 @@ public:
                      const wxPoint& pos = wxDefaultPosition,
                      const wxSize& size = wxDefaultSize,
                      long style = wxSP_3D,
-                     const wxString& name = "splitter")
+                     const wxString& name = wxT("splitter"))
     {
         Init();
         Create(parent, id, pos, size, style, name);
@@ -83,7 +83,7 @@ public:
                      const wxPoint& pos = wxDefaultPosition,
                      const wxSize& size = wxDefaultSize,
                      long style = wxSP_3D,
-                     const wxString& name = "splitter");
+                     const wxString& name = wxT("splitter"));
 
     // Gets the only or left/top pane
     wxWindow *GetWindow1() const { return m_windowOne; }
diff --git a/include/wx/generic/statusbr.h b/include/wx/generic/statusbr.h
index fc08061abf..fe00d93e30 100644
--- a/include/wx/generic/statusbr.h
+++ b/include/wx/generic/statusbr.h
@@ -92,7 +92,9 @@ public:
   void SetBorderY(int y);
 
   void OnPaint(wxPaintEvent& event);
-  void OnSize(wxSizeEvent& event);
+  
+  void OnLeftDown(wxMouseEvent& event);
+  void OnRightDown(wxMouseEvent& event);
 
   virtual void InitColours();
 
@@ -105,6 +107,8 @@ protected:
 
   wxArrayString     m_statusStrings;
 
+  // the last known width of the client rect (used to rebuild cache)
+  int               m_lastClientWidth;
   // the widths of the status bar panes in pixels
   wxArrayInt        m_widthsAbs;
 
diff --git a/include/wx/generic/treectlg.h b/include/wx/generic/treectlg.h
index 8d88362e3a..8cf87709b1 100644
--- a/include/wx/generic/treectlg.h
+++ b/include/wx/generic/treectlg.h
@@ -117,6 +117,15 @@ public:
         // get the data associated with the item
     wxTreeItemData *GetItemData(const wxTreeItemId& item) const;
 
+        // get the item's text colour
+    wxColour GetItemTextColour(const wxTreeItemId& item) const;
+
+        // get the item's background colour
+    wxColour GetItemBackgroundColour(const wxTreeItemId& item) const;
+
+        // get the item's font
+    wxFont GetItemFont(const wxTreeItemId& item) const;
+
     // modifiers
     // ---------
 
diff --git a/include/wx/generic/treelay.h b/include/wx/generic/treelay.h
index 4bcc4baf0f..b202da646e 100644
--- a/include/wx/generic/treelay.h
+++ b/include/wx/generic/treelay.h
@@ -29,8 +29,6 @@ class wxMouseEvent;
 
 class WXDLLEXPORT wxTreeLayout: public wxObject
 {
-    DECLARE_ABSTRACT_CLASS(wxTreeLayout)
-
 public:
     wxTreeLayout();
     virtual ~wxTreeLayout() { }
@@ -49,7 +47,7 @@ public:
     // Optional redefinition
     void Initialize(void);
     inline virtual void SetNodeName(long WXUNUSED(id), const wxString& WXUNUSED(name)) {}
-    inline virtual wxString GetNodeName(long WXUNUSED(id)) { return wxString(""); }
+    inline virtual wxString GetNodeName(long WXUNUSED(id)) { return wxString(wxT("")); }
     virtual void GetNodeSize(long id, long *x, long *y, wxDC& dc);
     virtual void Draw(wxDC& dc);
     virtual void DrawNodes(wxDC& dc);
@@ -76,8 +74,6 @@ public:
 private:
     void CalcLayout(long node_id, int level, wxDC& dc);
 
-    // Members
-
 protected:
     long          m_parentNode;
     long          m_lastY;
@@ -87,6 +83,9 @@ protected:
     long          m_topMargin;
     long          m_leftMargin;
     bool          m_orientation; // TRUE for top-to-bottom, FALSE for left-to-right
+    
+private:
+    DECLARE_ABSTRACT_CLASS(wxTreeLayout)
 };
 
 class WXDLLEXPORT wxStoredNode
@@ -105,7 +104,6 @@ public:
 
 class WXDLLEXPORT wxTreeLayoutStored: public wxTreeLayout
 {
-    DECLARE_DYNAMIC_CLASS(wxTreeLayoutStored)
 public:
     wxTreeLayoutStored(int noNodes = 200);
     virtual ~wxTreeLayoutStored(void);
@@ -130,7 +128,7 @@ public:
     virtual void SetClientData(long id, long clientData);
     virtual long GetClientData(long id) const;
 
-    virtual long AddChild(const wxString& name, const wxString& parent = "");
+    virtual long AddChild(const wxString& name, const wxString& parent = wxT(""));
     virtual long AddChild(const wxString& name, long parent);
     virtual long NameToId(const wxString& name);
 
@@ -139,6 +137,9 @@ private:
     wxStoredNode*     m_nodes;
     int               m_num;
     int               m_maxNodes;
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxTreeLayoutStored)
 };
 
 // For backward compatibility
diff --git a/include/wx/geometry.h b/include/wx/geometry.h
index dacbdd6203..b872f8a7fb 100644
--- a/include/wx/geometry.h
+++ b/include/wx/geometry.h
@@ -59,11 +59,11 @@ public :
     inline wxPoint2DInt( const wxPoint &pt );
 
     // noops for this class, just return the coords
-    inline void GetFloor( wxInt32 *x , wxInt32 *y );
-    inline void GetRounded( wxInt32 *x , wxInt32 *y );
+    inline void GetFloor( wxInt32 *x , wxInt32 *y ) const;
+    inline void GetRounded( wxInt32 *x , wxInt32 *y ) const;
 
-    inline wxDouble GetVectorLength();
-           wxDouble GetVectorAngle();
+    inline wxDouble GetVectorLength() const;
+           wxDouble GetVectorAngle() const;
     inline void SetVectorLength( wxDouble length );
            void SetVectorAngle( wxDouble degrees );
            void SetPolarCoordinates( wxInt32 angle , wxInt32 length );
@@ -133,7 +133,7 @@ inline wxPoint2DInt::wxPoint2DInt( const wxPoint &pt )
     m_y = pt.y;
 }
 
-inline void wxPoint2DInt::GetFloor( wxInt32 *x , wxInt32 *y )
+inline void wxPoint2DInt::GetFloor( wxInt32 *x , wxInt32 *y ) const
 {
     if ( x )
         *x = m_x;
@@ -141,12 +141,12 @@ inline void wxPoint2DInt::GetFloor( wxInt32 *x , wxInt32 *y )
         *y = m_y;
 }
 
-inline void wxPoint2DInt::GetRounded( wxInt32 *x , wxInt32 *y )
+inline void wxPoint2DInt::GetRounded( wxInt32 *x , wxInt32 *y ) const
 {
     GetFloor(x, y);
 }
 
-inline wxDouble wxPoint2DInt::GetVectorLength()
+inline wxDouble wxPoint2DInt::GetVectorLength() const
 {
     // cast needed MIPSpro compiler under SGI
     return sqrt( (double)(m_x)*(m_x) + (m_y)*(m_y) );
@@ -304,8 +304,8 @@ public :
 		{ 	m_x = (wxDouble) pt.x ; m_y = (wxDouble) pt.y ; }
 
     // two different conversions to integers, floor and rounding
-    inline void GetFloor( wxInt32 *x , wxInt32 *y );
-    inline void GetRounded( wxInt32 *x , wxInt32 *y );
+    inline void GetFloor( wxInt32 *x , wxInt32 *y ) const;
+    inline void GetRounded( wxInt32 *x , wxInt32 *y ) const;
 
     inline wxDouble GetVectorLength() const;
      wxDouble GetVectorAngle() const ;
@@ -315,10 +315,10 @@ public :
     // set the vector length to 1.0, preserving the angle
     void Normalize();
 
-    inline wxDouble GetDistance( const wxPoint2DDouble &pt );
-    inline wxDouble GetDistanceSquare( const wxPoint2DDouble &pt );
-    inline wxDouble GetDotProduct( const wxPoint2DDouble &vec );
-    inline wxDouble GetCrossProduct( const wxPoint2DDouble &vec );
+    inline wxDouble GetDistance( const wxPoint2DDouble &pt ) const;
+    inline wxDouble GetDistanceSquare( const wxPoint2DDouble &pt ) const;
+    inline wxDouble GetDotProduct( const wxPoint2DDouble &vec ) const;
+    inline wxDouble GetCrossProduct( const wxPoint2DDouble &vec ) const;
 
     // the reflection of this point
     inline wxPoint2DDouble operator-();
@@ -369,13 +369,13 @@ inline wxPoint2DDouble::wxPoint2DDouble( const wxPoint2DDouble &pt )
     m_y = pt.m_y;
 }
 
-inline void wxPoint2DDouble::GetFloor( wxInt32 *x , wxInt32 *y )
+inline void wxPoint2DDouble::GetFloor( wxInt32 *x , wxInt32 *y ) const
 {
     *x = (wxInt32) floor( m_x );
     *y = (wxInt32) floor( m_y );
 }
 
-inline void wxPoint2DDouble::GetRounded( wxInt32 *x , wxInt32 *y )
+inline void wxPoint2DDouble::GetRounded( wxInt32 *x , wxInt32 *y ) const
 {
     *x = (wxInt32) floor( m_x + 0.5 );
     *y = (wxInt32) floor( m_y + 0.5);
@@ -393,22 +393,22 @@ inline void wxPoint2DDouble::SetVectorLength( wxDouble length )
     m_y = (m_y * length / before) ;
 }
 
-inline wxDouble wxPoint2DDouble::GetDistance( const wxPoint2DDouble &pt )
+inline wxDouble wxPoint2DDouble::GetDistance( const wxPoint2DDouble &pt ) const
 {
     return sqrt( GetDistanceSquare( pt ) );
 }
 
-inline wxDouble wxPoint2DDouble::GetDistanceSquare( const wxPoint2DDouble &pt )
+inline wxDouble wxPoint2DDouble::GetDistanceSquare( const wxPoint2DDouble &pt ) const
 {
     return ( (pt.m_x-m_x)*(pt.m_x-m_x) + (pt.m_y-m_y)*(pt.m_y-m_y) );
 }
 
-inline wxDouble wxPoint2DDouble::GetDotProduct( const wxPoint2DDouble &vec )
+inline wxDouble wxPoint2DDouble::GetDotProduct( const wxPoint2DDouble &vec ) const
 {
     return ( m_x * vec.m_x + m_y * vec.m_y );
 }
 
-inline wxDouble wxPoint2DDouble::GetCrossProduct( const wxPoint2DDouble &vec )
+inline wxDouble wxPoint2DDouble::GetCrossProduct( const wxPoint2DDouble &vec ) const
 {
     return ( m_x * vec.m_y - vec.m_x * m_y );
 }
diff --git a/include/wx/glcanvas.h b/include/wx/glcanvas.h
index 45962a519d..3c4a52646e 100644
--- a/include/wx/glcanvas.h
+++ b/include/wx/glcanvas.h
@@ -5,6 +5,8 @@
 
 #if wxUSE_GLCANVAS
 
+#define wxGLCanvasName _T("GLCanvas")
+
 #if defined(__WXMSW__)
 #include "wx/msw/glcanvas.h"
 #elif defined(__WXMOTIF__)
diff --git a/include/wx/gtk/button.h b/include/wx/gtk/button.h
index f6d0a48857..5b895a059e 100644
--- a/include/wx/gtk/button.h
+++ b/include/wx/gtk/button.h
@@ -65,6 +65,7 @@ public:
     // --------------
 
     void ApplyWidgetStyle();
+    bool IsOwnGtkWindow( GdkWindow *window );
 
 protected:
     virtual wxSize DoGetBestSize() const;
diff --git a/include/wx/gtk/colour.h b/include/wx/gtk/colour.h
index f299ca5949..de243d30a7 100644
--- a/include/wx/gtk/colour.h
+++ b/include/wx/gtk/colour.h
@@ -47,7 +47,7 @@ public:
 
     // Implicit conversion from the colour name
     wxColour( const wxString &colourName ) { InitFromName(colourName); }
-    wxColour( const char *colourName ) { InitFromName(colourName); }
+    wxColour( const char *colourName ) { InitFromName( wxString::FromAscii(colourName) ); }
 #if wxUSE_UNICODE
     wxColour( const wxChar *colourName ) { InitFromName( wxString(colourName) ); }
 #endif
diff --git a/include/wx/gtk/combobox.h b/include/wx/gtk/combobox.h
index 3574f6837f..6fc045a704 100644
--- a/include/wx/gtk/combobox.h
+++ b/include/wx/gtk/combobox.h
@@ -108,6 +108,8 @@ public:
   
     // implementation
     
+    virtual void SetFocus();
+    
     void OnSize( wxSizeEvent &event );
     void OnChar( wxKeyEvent &event );
   
diff --git a/include/wx/gtk/dataobj.h b/include/wx/gtk/dataobj.h
index 019d5f657f..52ea20c7bd 100644
--- a/include/wx/gtk/dataobj.h
+++ b/include/wx/gtk/dataobj.h
@@ -22,10 +22,8 @@ class wxDataObject : public wxDataObjectBase
 {
 public:
     wxDataObject();
-#ifdef __DARWIN__
-    virtual ~wxDataObject() { }
-#endif
-    
+    virtual ~wxDataObject();
+
     virtual bool IsSupportedFormat( const wxDataFormat& format, Direction dir = Get ) const;
 };
 
diff --git a/include/wx/gtk/dcclient.h b/include/wx/gtk/dcclient.h
index 802e60b693..a9cb16b074 100644
--- a/include/wx/gtk/dcclient.h
+++ b/include/wx/gtk/dcclient.h
@@ -118,6 +118,8 @@ public:
     wxWindow     *m_owner;
     wxRegion      m_currentClippingRegion;
     wxRegion      m_paintClippingRegion;
+    
+    // PangoContext stuff for GTK 2.0
 #ifdef __WXGTK20__
     PangoContext *m_context;
     PangoFontDescription *m_fontdesc;
diff --git a/include/wx/gtk/font.h b/include/wx/gtk/font.h
index 9311e7d115..bad03b9d6b 100644
--- a/include/wx/gtk/font.h
+++ b/include/wx/gtk/font.h
@@ -96,6 +96,9 @@ public:
     virtual void SetEncoding(wxFontEncoding encoding);
     virtual void SetNativeFontInfo( const wxNativeFontInfo& info );
 
+    virtual void SetNoAntiAliasing( bool no = TRUE );
+    virtual bool GetNoAntiAliasing();
+    
     // implementation from now on
     void Unshare();
 
diff --git a/include/wx/gtk/frame.h b/include/wx/gtk/frame.h
index 0a14bb20c3..d4ec4bc940 100644
--- a/include/wx/gtk/frame.h
+++ b/include/wx/gtk/frame.h
@@ -84,6 +84,7 @@ public:
     virtual void OnInternalIdle();
 
     bool          m_menuBarDetached;
+    int           m_menuBarHeight;
     bool          m_toolBarDetached;
 
 protected:
@@ -95,8 +96,14 @@ protected:
     virtual void DoGetClientSize( int *width, int *height ) const;
 
 #if wxUSE_MENUS_NATIVE
+
     virtual void DetachMenuBar();
     virtual void AttachMenuBar(wxMenuBar *menubar);
+
+public:
+    // Menu size is dynamic now, call this whenever it might change.
+    void UpdateMenuBarSize();
+
 #endif // wxUSE_MENUS_NATIVE
 
     DECLARE_DYNAMIC_CLASS(wxFrame)
diff --git a/include/wx/gtk/gauge.h b/include/wx/gtk/gauge.h
index 11ec3318c1..c1d22c1a98 100644
--- a/include/wx/gtk/gauge.h
+++ b/include/wx/gtk/gauge.h
@@ -42,25 +42,32 @@ extern const wxChar* wxGaugeNameStr;
 class wxGauge: public wxControl
 {
 public:
-    inline wxGauge() { m_rangeMax = 0; m_gaugePos = 0; m_useProgressBar = TRUE; }
-
-    inline wxGauge( wxWindow *parent, wxWindowID id, int range,
-           const wxPoint& pos = wxDefaultPosition,
-           const wxSize& size = wxDefaultSize,
-           long style = wxGA_HORIZONTAL,
-           const wxValidator& validator = wxDefaultValidator,
-           const wxString& name = wxGaugeNameStr )
+    wxGauge() { Init(); }
+
+    wxGauge( wxWindow *parent,
+             wxWindowID id,
+             int range,
+             const wxPoint& pos = wxDefaultPosition,
+             const wxSize& size = wxDefaultSize,
+             long style = wxGA_HORIZONTAL,
+             const wxValidator& validator = wxDefaultValidator,
+             const wxString& name = wxGaugeNameStr )
     {
-      Create(parent, id, range, pos, size, style, validator, name);
+        Init();
+
+        Create(parent, id, range, pos, size, style, validator, name);
     }
-    bool Create( wxWindow *parent, wxWindowID id, int range,
-           const wxPoint& pos = wxDefaultPosition,
-           const wxSize& size = wxDefaultSize,
-           long style = wxGA_HORIZONTAL,
-           const wxValidator& validator = wxDefaultValidator,
-           const wxString& name = wxGaugeNameStr );
-    void SetShadowWidth( int WXUNUSED(w) ) {};
-    void SetBezelFace( int WXUNUSED(w) ) {};
+
+    bool Create( wxWindow *parent,
+                 wxWindowID id, int range,
+                 const wxPoint& pos = wxDefaultPosition,
+                 const wxSize& size = wxDefaultSize,
+                 long style = wxGA_HORIZONTAL,
+                 const wxValidator& validator = wxDefaultValidator,
+                 const wxString& name = wxGaugeNameStr );
+
+    void SetShadowWidth( int WXUNUSED(w) ) { }
+    void SetBezelFace( int WXUNUSED(w) ) { }
     void SetRange( int r );
     void SetValue( int pos );
     int GetShadowWidth() const { return 0; };
@@ -68,17 +75,27 @@ public:
     int GetRange() const;
     int GetValue() const;
 
-    // Are we a Win95/GTK progress bar, or a normal gauge?
-    inline bool GetProgressBar() const { return m_useProgressBar; }
-    
     // implementation
     // -------------
-    
+
     void ApplyWidgetStyle();
-    int      m_rangeMax;
-    int      m_gaugePos;
-    bool     m_useProgressBar;
-   
+
+    // the max and current gauge values
+    int m_rangeMax,
+        m_gaugePos;
+
+    // obsolete functions, don't use
+#ifdef WXWIN_COMPATIBILITY_2_2
+    bool GetProgressBar() const { return TRUE; }
+#endif // WXWIN_COMPATIBILITY_2_2
+
+protected:
+    // common part of all ctors
+    void Init() { m_rangeMax = m_gaugePos = 0; }
+
+    // set the gauge value to the value of m_gaugePos
+    void DoSetGauge();
+
 private:
     DECLARE_DYNAMIC_CLASS(wxGauge)
 };
diff --git a/include/wx/gtk/glcanvas.h b/include/wx/gtk/glcanvas.h
index 472ba104ff..29f3deabc3 100644
--- a/include/wx/gtk/glcanvas.h
+++ b/include/wx/gtk/glcanvas.h
@@ -6,7 +6,7 @@
 // Created:     17/8/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Robert Roebling
-// Licence:   	wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #if defined(__GNUG__) && !defined(__APPLE__)
@@ -65,15 +65,15 @@ class WXDLLEXPORT wxGLContext: public wxObject
 {
 public:
     wxGLContext( bool isRGB, wxWindow *win, const wxPalette& palette = wxNullPalette );
-    wxGLContext( 
-               bool WXUNUSED(isRGB), wxWindow *win, 
+    wxGLContext(
+               bool WXUNUSED(isRGB), wxWindow *win,
                const wxPalette& WXUNUSED(palette),
                const wxGLContext *other        /* for sharing display lists */
     );
     ~wxGLContext();
 
     void SetCurrent();
-    void SetColour(const char *colour);
+    void SetColour(const wxChar *colour);
     void SwapBuffers();
 
     void SetupPixelFormat();
@@ -91,7 +91,7 @@ public:
    GtkWidget       *m_widget;
    wxPalette        m_palette;
    wxWindow*        m_window;
-   
+
 private:
   DECLARE_CLASS(wxGLContext)
 };
@@ -110,51 +110,52 @@ public:
       m_vi = (void*) NULL;
       m_exposed = FALSE;
    }
-   wxGLCanvas( wxWindow *parent, wxWindowID id = -1, 
+   wxGLCanvas( wxWindow *parent, wxWindowID id = -1,
         const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize, 
-        long style = 0, const wxString& name = "GLCanvas", 
-        int *attribList = (int*) NULL, 
+        const wxSize& size = wxDefaultSize,
+        long style = 0, const wxString& name = wxGLCanvasName,
+        int *attribList = (int*) NULL,
         const wxPalette& palette = wxNullPalette );
    wxGLCanvas( wxWindow *parent, const wxGLContext *shared = (wxGLContext *)NULL,
-        wxWindowID id = -1, 
+        wxWindowID id = -1,
         const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize, 
-        long style = 0, const wxString& name = "GLCanvas", 
-        int *attribList = (int*) NULL, 
+        const wxSize& size = wxDefaultSize,
+        long style = 0, const wxString& name = wxGLCanvasName,
+        int *attribList = (int*) NULL,
         const wxPalette& palette = wxNullPalette );
    wxGLCanvas( wxWindow *parent, const wxGLCanvas *shared = (wxGLCanvas *)NULL,
-        wxWindowID id = -1, 
+        wxWindowID id = -1,
         const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize, 
-        long style = 0, const wxString& name = "GLCanvas", 
-        int *attribList = (int*) NULL, 
+        const wxSize& size = wxDefaultSize,
+        long style = 0, const wxString& name = wxGLCanvasName,
+        int *attribList = (int*) NULL,
         const wxPalette& palette = wxNullPalette );
 
-   bool Create( wxWindow *parent, 
-	const wxGLContext *shared = (wxGLContext*)NULL,
-	const wxGLCanvas *shared_context_of = (wxGLCanvas*)NULL,
-        wxWindowID id = -1, 
-        const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize, 
-	long style = 0, const wxString& name = "GLCanvas", 
-	int *attribList = (int*) NULL,
-	const wxPalette& palette = wxNullPalette );
-	
+   bool Create( wxWindow *parent,
+                const wxGLContext *shared = (wxGLContext*)NULL,
+                const wxGLCanvas *shared_context_of = (wxGLCanvas*)NULL,
+                wxWindowID id = -1,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = 0,
+                const wxString& name = wxGLCanvasName,
+                int *attribList = (int*) NULL,
+                const wxPalette& palette = wxNullPalette );
+
    ~wxGLCanvas();
 
    void SetCurrent();
-   void SetColour(const char *colour);
+   void SetColour(const wxChar *colour);
    void SwapBuffers();
 
    void OnSize(wxSizeEvent& event);
-   
+
    void OnInternalIdle();
 
-   inline wxGLContext* GetContext() const { return m_glContext; } 
+   inline wxGLContext* GetContext() const { return m_glContext; }
 
  // implementation
-  
+
     wxGLContext      *m_glContext,
                      *m_sharedContext;
     wxGLCanvas       *m_sharedContextOf;
@@ -162,10 +163,10 @@ public:
     bool              m_canFreeVi;
     GtkWidget        *m_glWidget;
     bool              m_exposed;
-    
+
     // returns an XVisualInfo* based on desired GL attributes;
     // returns NULL if an appropriate visual is not found. The
-    // caller is reponsible for using XFree() to deallocate 
+    // caller is reponsible for using XFree() to deallocate
     // the returned structure.
     static void* ChooseGLVisual(int *attribList);
 
diff --git a/include/wx/gtk/notebook.h b/include/wx/gtk/notebook.h
index 5d6abe9932..ec9ce37371 100644
--- a/include/wx/gtk/notebook.h
+++ b/include/wx/gtk/notebook.h
@@ -122,12 +122,15 @@ public:
     // selection internally instead of querying the notebook for it
     int m_selection;
 
+    // flag set to TRUE while we're inside "switch_page" callback
+    bool m_inSwitchPage;
+
 protected:
     // remove one page from the notebook but do not destroy it
     virtual wxNotebookPage *DoRemovePage(int nPage);
 
 private:
-
+    // the padding set by SetPadding()
     int m_padding;
 
     DECLARE_DYNAMIC_CLASS(wxNotebook)
diff --git a/include/wx/gtk/region.h b/include/wx/gtk/region.h
index 7c224ab08b..51e739c73f 100644
--- a/include/wx/gtk/region.h
+++ b/include/wx/gtk/region.h
@@ -146,11 +146,11 @@ public:
     void Reset() { m_current = 0u; }
     void Reset(const wxRegion& region);
 
-    operator bool () const;
     bool HaveRects() const;
+    operator bool () const { return HaveRects(); }
 
-    void operator ++ ();
-    void operator ++ (int);
+    wxRegionIterator& operator ++ ();
+    wxRegionIterator operator ++ (int);
 
     wxCoord GetX() const;
     wxCoord GetY() const;
diff --git a/include/wx/gtk/scrolbar.h b/include/wx/gtk/scrolbar.h
index 455eb42799..f471873aa3 100644
--- a/include/wx/gtk/scrolbar.h
+++ b/include/wx/gtk/scrolbar.h
@@ -12,7 +12,7 @@
 #define __GTKSCROLLBARH__
 
 #if defined(__GNUG__) && !defined(__APPLE__)
-#pragma interface
+#pragma interface "scrolbar.h"
 #endif
 
 #include "wx/defs.h"
diff --git a/include/wx/gtk/window.h b/include/wx/gtk/window.h
index 7a48f97ffd..13adf9b21f 100644
--- a/include/wx/gtk/window.h
+++ b/include/wx/gtk/window.h
@@ -157,6 +157,17 @@ public:
     // and sets m_widgetStyle to this value.
     GtkStyle *GetWidgetStyle();
 
+#ifdef __WXGTK20__
+    // Returns the default context which usually is anti-aliased
+    PangoContext   *GtkGetPangoDefaultContext();
+    
+    // Returns the X11 context which renders on the X11 client
+    // side (which can be remote) and which usually is not
+    // anti-aliased and is thus faster
+    PangoContext   *GtkGetPangoX11Context();
+    PangoContext   *m_x11Context;
+#endif
+
     // Called by SetFont() and SetXXXColour etc
     void SetWidgetStyle();
 
@@ -195,11 +206,15 @@ public:
     // this widget will be queried for GTK's focus events
     GtkWidget           *m_focusWidget;
 
+#ifdef __WXGTK20__
+    GtkIMMulticontext   *m_imContext;
+#else
 #if HAVE_XIM
     // XIM support for wxWindows
     GdkIC               *m_ic;
     GdkICAttr           *m_icattr;
 #endif
+#endif
 
 #ifndef __WXGTK20__
     // The area to be cleared (and not just refreshed)
diff --git a/include/wx/gtk1/button.h b/include/wx/gtk1/button.h
index f6d0a48857..5b895a059e 100644
--- a/include/wx/gtk1/button.h
+++ b/include/wx/gtk1/button.h
@@ -65,6 +65,7 @@ public:
     // --------------
 
     void ApplyWidgetStyle();
+    bool IsOwnGtkWindow( GdkWindow *window );
 
 protected:
     virtual wxSize DoGetBestSize() const;
diff --git a/include/wx/gtk1/colour.h b/include/wx/gtk1/colour.h
index f299ca5949..de243d30a7 100644
--- a/include/wx/gtk1/colour.h
+++ b/include/wx/gtk1/colour.h
@@ -47,7 +47,7 @@ public:
 
     // Implicit conversion from the colour name
     wxColour( const wxString &colourName ) { InitFromName(colourName); }
-    wxColour( const char *colourName ) { InitFromName(colourName); }
+    wxColour( const char *colourName ) { InitFromName( wxString::FromAscii(colourName) ); }
 #if wxUSE_UNICODE
     wxColour( const wxChar *colourName ) { InitFromName( wxString(colourName) ); }
 #endif
diff --git a/include/wx/gtk1/combobox.h b/include/wx/gtk1/combobox.h
index 3574f6837f..6fc045a704 100644
--- a/include/wx/gtk1/combobox.h
+++ b/include/wx/gtk1/combobox.h
@@ -108,6 +108,8 @@ public:
   
     // implementation
     
+    virtual void SetFocus();
+    
     void OnSize( wxSizeEvent &event );
     void OnChar( wxKeyEvent &event );
   
diff --git a/include/wx/gtk1/dataobj.h b/include/wx/gtk1/dataobj.h
index 019d5f657f..52ea20c7bd 100644
--- a/include/wx/gtk1/dataobj.h
+++ b/include/wx/gtk1/dataobj.h
@@ -22,10 +22,8 @@ class wxDataObject : public wxDataObjectBase
 {
 public:
     wxDataObject();
-#ifdef __DARWIN__
-    virtual ~wxDataObject() { }
-#endif
-    
+    virtual ~wxDataObject();
+
     virtual bool IsSupportedFormat( const wxDataFormat& format, Direction dir = Get ) const;
 };
 
diff --git a/include/wx/gtk1/dcclient.h b/include/wx/gtk1/dcclient.h
index 802e60b693..a9cb16b074 100644
--- a/include/wx/gtk1/dcclient.h
+++ b/include/wx/gtk1/dcclient.h
@@ -118,6 +118,8 @@ public:
     wxWindow     *m_owner;
     wxRegion      m_currentClippingRegion;
     wxRegion      m_paintClippingRegion;
+    
+    // PangoContext stuff for GTK 2.0
 #ifdef __WXGTK20__
     PangoContext *m_context;
     PangoFontDescription *m_fontdesc;
diff --git a/include/wx/gtk1/font.h b/include/wx/gtk1/font.h
index 9311e7d115..bad03b9d6b 100644
--- a/include/wx/gtk1/font.h
+++ b/include/wx/gtk1/font.h
@@ -96,6 +96,9 @@ public:
     virtual void SetEncoding(wxFontEncoding encoding);
     virtual void SetNativeFontInfo( const wxNativeFontInfo& info );
 
+    virtual void SetNoAntiAliasing( bool no = TRUE );
+    virtual bool GetNoAntiAliasing();
+    
     // implementation from now on
     void Unshare();
 
diff --git a/include/wx/gtk1/frame.h b/include/wx/gtk1/frame.h
index 0a14bb20c3..d4ec4bc940 100644
--- a/include/wx/gtk1/frame.h
+++ b/include/wx/gtk1/frame.h
@@ -84,6 +84,7 @@ public:
     virtual void OnInternalIdle();
 
     bool          m_menuBarDetached;
+    int           m_menuBarHeight;
     bool          m_toolBarDetached;
 
 protected:
@@ -95,8 +96,14 @@ protected:
     virtual void DoGetClientSize( int *width, int *height ) const;
 
 #if wxUSE_MENUS_NATIVE
+
     virtual void DetachMenuBar();
     virtual void AttachMenuBar(wxMenuBar *menubar);
+
+public:
+    // Menu size is dynamic now, call this whenever it might change.
+    void UpdateMenuBarSize();
+
 #endif // wxUSE_MENUS_NATIVE
 
     DECLARE_DYNAMIC_CLASS(wxFrame)
diff --git a/include/wx/gtk1/gauge.h b/include/wx/gtk1/gauge.h
index 11ec3318c1..c1d22c1a98 100644
--- a/include/wx/gtk1/gauge.h
+++ b/include/wx/gtk1/gauge.h
@@ -42,25 +42,32 @@ extern const wxChar* wxGaugeNameStr;
 class wxGauge: public wxControl
 {
 public:
-    inline wxGauge() { m_rangeMax = 0; m_gaugePos = 0; m_useProgressBar = TRUE; }
-
-    inline wxGauge( wxWindow *parent, wxWindowID id, int range,
-           const wxPoint& pos = wxDefaultPosition,
-           const wxSize& size = wxDefaultSize,
-           long style = wxGA_HORIZONTAL,
-           const wxValidator& validator = wxDefaultValidator,
-           const wxString& name = wxGaugeNameStr )
+    wxGauge() { Init(); }
+
+    wxGauge( wxWindow *parent,
+             wxWindowID id,
+             int range,
+             const wxPoint& pos = wxDefaultPosition,
+             const wxSize& size = wxDefaultSize,
+             long style = wxGA_HORIZONTAL,
+             const wxValidator& validator = wxDefaultValidator,
+             const wxString& name = wxGaugeNameStr )
     {
-      Create(parent, id, range, pos, size, style, validator, name);
+        Init();
+
+        Create(parent, id, range, pos, size, style, validator, name);
     }
-    bool Create( wxWindow *parent, wxWindowID id, int range,
-           const wxPoint& pos = wxDefaultPosition,
-           const wxSize& size = wxDefaultSize,
-           long style = wxGA_HORIZONTAL,
-           const wxValidator& validator = wxDefaultValidator,
-           const wxString& name = wxGaugeNameStr );
-    void SetShadowWidth( int WXUNUSED(w) ) {};
-    void SetBezelFace( int WXUNUSED(w) ) {};
+
+    bool Create( wxWindow *parent,
+                 wxWindowID id, int range,
+                 const wxPoint& pos = wxDefaultPosition,
+                 const wxSize& size = wxDefaultSize,
+                 long style = wxGA_HORIZONTAL,
+                 const wxValidator& validator = wxDefaultValidator,
+                 const wxString& name = wxGaugeNameStr );
+
+    void SetShadowWidth( int WXUNUSED(w) ) { }
+    void SetBezelFace( int WXUNUSED(w) ) { }
     void SetRange( int r );
     void SetValue( int pos );
     int GetShadowWidth() const { return 0; };
@@ -68,17 +75,27 @@ public:
     int GetRange() const;
     int GetValue() const;
 
-    // Are we a Win95/GTK progress bar, or a normal gauge?
-    inline bool GetProgressBar() const { return m_useProgressBar; }
-    
     // implementation
     // -------------
-    
+
     void ApplyWidgetStyle();
-    int      m_rangeMax;
-    int      m_gaugePos;
-    bool     m_useProgressBar;
-   
+
+    // the max and current gauge values
+    int m_rangeMax,
+        m_gaugePos;
+
+    // obsolete functions, don't use
+#ifdef WXWIN_COMPATIBILITY_2_2
+    bool GetProgressBar() const { return TRUE; }
+#endif // WXWIN_COMPATIBILITY_2_2
+
+protected:
+    // common part of all ctors
+    void Init() { m_rangeMax = m_gaugePos = 0; }
+
+    // set the gauge value to the value of m_gaugePos
+    void DoSetGauge();
+
 private:
     DECLARE_DYNAMIC_CLASS(wxGauge)
 };
diff --git a/include/wx/gtk1/glcanvas.h b/include/wx/gtk1/glcanvas.h
index 472ba104ff..29f3deabc3 100644
--- a/include/wx/gtk1/glcanvas.h
+++ b/include/wx/gtk1/glcanvas.h
@@ -6,7 +6,7 @@
 // Created:     17/8/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Robert Roebling
-// Licence:   	wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #if defined(__GNUG__) && !defined(__APPLE__)
@@ -65,15 +65,15 @@ class WXDLLEXPORT wxGLContext: public wxObject
 {
 public:
     wxGLContext( bool isRGB, wxWindow *win, const wxPalette& palette = wxNullPalette );
-    wxGLContext( 
-               bool WXUNUSED(isRGB), wxWindow *win, 
+    wxGLContext(
+               bool WXUNUSED(isRGB), wxWindow *win,
                const wxPalette& WXUNUSED(palette),
                const wxGLContext *other        /* for sharing display lists */
     );
     ~wxGLContext();
 
     void SetCurrent();
-    void SetColour(const char *colour);
+    void SetColour(const wxChar *colour);
     void SwapBuffers();
 
     void SetupPixelFormat();
@@ -91,7 +91,7 @@ public:
    GtkWidget       *m_widget;
    wxPalette        m_palette;
    wxWindow*        m_window;
-   
+
 private:
   DECLARE_CLASS(wxGLContext)
 };
@@ -110,51 +110,52 @@ public:
       m_vi = (void*) NULL;
       m_exposed = FALSE;
    }
-   wxGLCanvas( wxWindow *parent, wxWindowID id = -1, 
+   wxGLCanvas( wxWindow *parent, wxWindowID id = -1,
         const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize, 
-        long style = 0, const wxString& name = "GLCanvas", 
-        int *attribList = (int*) NULL, 
+        const wxSize& size = wxDefaultSize,
+        long style = 0, const wxString& name = wxGLCanvasName,
+        int *attribList = (int*) NULL,
         const wxPalette& palette = wxNullPalette );
    wxGLCanvas( wxWindow *parent, const wxGLContext *shared = (wxGLContext *)NULL,
-        wxWindowID id = -1, 
+        wxWindowID id = -1,
         const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize, 
-        long style = 0, const wxString& name = "GLCanvas", 
-        int *attribList = (int*) NULL, 
+        const wxSize& size = wxDefaultSize,
+        long style = 0, const wxString& name = wxGLCanvasName,
+        int *attribList = (int*) NULL,
         const wxPalette& palette = wxNullPalette );
    wxGLCanvas( wxWindow *parent, const wxGLCanvas *shared = (wxGLCanvas *)NULL,
-        wxWindowID id = -1, 
+        wxWindowID id = -1,
         const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize, 
-        long style = 0, const wxString& name = "GLCanvas", 
-        int *attribList = (int*) NULL, 
+        const wxSize& size = wxDefaultSize,
+        long style = 0, const wxString& name = wxGLCanvasName,
+        int *attribList = (int*) NULL,
         const wxPalette& palette = wxNullPalette );
 
-   bool Create( wxWindow *parent, 
-	const wxGLContext *shared = (wxGLContext*)NULL,
-	const wxGLCanvas *shared_context_of = (wxGLCanvas*)NULL,
-        wxWindowID id = -1, 
-        const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize, 
-	long style = 0, const wxString& name = "GLCanvas", 
-	int *attribList = (int*) NULL,
-	const wxPalette& palette = wxNullPalette );
-	
+   bool Create( wxWindow *parent,
+                const wxGLContext *shared = (wxGLContext*)NULL,
+                const wxGLCanvas *shared_context_of = (wxGLCanvas*)NULL,
+                wxWindowID id = -1,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = 0,
+                const wxString& name = wxGLCanvasName,
+                int *attribList = (int*) NULL,
+                const wxPalette& palette = wxNullPalette );
+
    ~wxGLCanvas();
 
    void SetCurrent();
-   void SetColour(const char *colour);
+   void SetColour(const wxChar *colour);
    void SwapBuffers();
 
    void OnSize(wxSizeEvent& event);
-   
+
    void OnInternalIdle();
 
-   inline wxGLContext* GetContext() const { return m_glContext; } 
+   inline wxGLContext* GetContext() const { return m_glContext; }
 
  // implementation
-  
+
     wxGLContext      *m_glContext,
                      *m_sharedContext;
     wxGLCanvas       *m_sharedContextOf;
@@ -162,10 +163,10 @@ public:
     bool              m_canFreeVi;
     GtkWidget        *m_glWidget;
     bool              m_exposed;
-    
+
     // returns an XVisualInfo* based on desired GL attributes;
     // returns NULL if an appropriate visual is not found. The
-    // caller is reponsible for using XFree() to deallocate 
+    // caller is reponsible for using XFree() to deallocate
     // the returned structure.
     static void* ChooseGLVisual(int *attribList);
 
diff --git a/include/wx/gtk1/notebook.h b/include/wx/gtk1/notebook.h
index 5d6abe9932..ec9ce37371 100644
--- a/include/wx/gtk1/notebook.h
+++ b/include/wx/gtk1/notebook.h
@@ -122,12 +122,15 @@ public:
     // selection internally instead of querying the notebook for it
     int m_selection;
 
+    // flag set to TRUE while we're inside "switch_page" callback
+    bool m_inSwitchPage;
+
 protected:
     // remove one page from the notebook but do not destroy it
     virtual wxNotebookPage *DoRemovePage(int nPage);
 
 private:
-
+    // the padding set by SetPadding()
     int m_padding;
 
     DECLARE_DYNAMIC_CLASS(wxNotebook)
diff --git a/include/wx/gtk1/region.h b/include/wx/gtk1/region.h
index 7c224ab08b..51e739c73f 100644
--- a/include/wx/gtk1/region.h
+++ b/include/wx/gtk1/region.h
@@ -146,11 +146,11 @@ public:
     void Reset() { m_current = 0u; }
     void Reset(const wxRegion& region);
 
-    operator bool () const;
     bool HaveRects() const;
+    operator bool () const { return HaveRects(); }
 
-    void operator ++ ();
-    void operator ++ (int);
+    wxRegionIterator& operator ++ ();
+    wxRegionIterator operator ++ (int);
 
     wxCoord GetX() const;
     wxCoord GetY() const;
diff --git a/include/wx/gtk1/scrolbar.h b/include/wx/gtk1/scrolbar.h
index 455eb42799..f471873aa3 100644
--- a/include/wx/gtk1/scrolbar.h
+++ b/include/wx/gtk1/scrolbar.h
@@ -12,7 +12,7 @@
 #define __GTKSCROLLBARH__
 
 #if defined(__GNUG__) && !defined(__APPLE__)
-#pragma interface
+#pragma interface "scrolbar.h"
 #endif
 
 #include "wx/defs.h"
diff --git a/include/wx/gtk1/window.h b/include/wx/gtk1/window.h
index 7a48f97ffd..13adf9b21f 100644
--- a/include/wx/gtk1/window.h
+++ b/include/wx/gtk1/window.h
@@ -157,6 +157,17 @@ public:
     // and sets m_widgetStyle to this value.
     GtkStyle *GetWidgetStyle();
 
+#ifdef __WXGTK20__
+    // Returns the default context which usually is anti-aliased
+    PangoContext   *GtkGetPangoDefaultContext();
+    
+    // Returns the X11 context which renders on the X11 client
+    // side (which can be remote) and which usually is not
+    // anti-aliased and is thus faster
+    PangoContext   *GtkGetPangoX11Context();
+    PangoContext   *m_x11Context;
+#endif
+
     // Called by SetFont() and SetXXXColour etc
     void SetWidgetStyle();
 
@@ -195,11 +206,15 @@ public:
     // this widget will be queried for GTK's focus events
     GtkWidget           *m_focusWidget;
 
+#ifdef __WXGTK20__
+    GtkIMMulticontext   *m_imContext;
+#else
 #if HAVE_XIM
     // XIM support for wxWindows
     GdkIC               *m_ic;
     GdkICAttr           *m_icattr;
 #endif
+#endif
 
 #ifndef __WXGTK20__
     // The area to be cleared (and not just refreshed)
diff --git a/include/wx/hashmap.h b/include/wx/hashmap.h
index 9b635e8a07..f1698d3a11 100644
--- a/include/wx/hashmap.h
+++ b/include/wx/hashmap.h
@@ -62,9 +62,9 @@ protected:
                                _wxHashTable_NodeBase** dstTable,
                                BucketFromNode func, ProcessNode proc );
 
-    static void** AllocTable( size_t size )
+    static void** AllocTable( size_t sz )
     {
-        return (void **)calloc(size, sizeof(void*));
+        return (void **)calloc(sz, sizeof(void*));
     }
 };
 
@@ -172,10 +172,10 @@ public: \
         const_pointer operator ->() const { return &(m_node->m_value); } \
     }; \
  \
-    CLASSNAME( size_type size = 10, const hasher& hfun = hasher(), \
+    CLASSNAME( size_type sz = 10, const hasher& hfun = hasher(), \
                const key_equal& k_eq = key_equal(), \
                const key_extractor& k_ex = key_extractor() ) \
-        : m_tableBuckets( GetNextPrime( size ) ), \
+        : m_tableBuckets( GetNextPrime( sz ) ), \
           m_items( 0 ), \
           m_hasher( hfun ), \
           m_equals( k_eq ), \
@@ -218,7 +218,12 @@ public: \
  \
     /* removes all elements from the hash table, but does not */ \
     /* shrink it ( perhaps it should ) */ \
-    void clear() { DeleteNodes( m_tableBuckets, (_wxHashTable_NodeBase**)m_table, DeleteNode ); } \
+    void clear() \
+    { \
+        DeleteNodes( m_tableBuckets, (_wxHashTable_NodeBase**)m_table, \
+                     DeleteNode ); \
+        m_items = 0; \
+    } \
  \
     size_type size() const { return m_items; } \
     size_type max_size() const { return size_type(-1); } \
diff --git a/include/wx/helpbase.h b/include/wx/helpbase.h
index 9ac23f2e9f..95a1562e7a 100644
--- a/include/wx/helpbase.h
+++ b/include/wx/helpbase.h
@@ -31,11 +31,9 @@
 // Defines the API for help controllers
 class WXDLLEXPORT wxHelpControllerBase: public wxObject
 {
-    DECLARE_CLASS(wxHelpControllerBase)
-
 public:
     inline wxHelpControllerBase() {}
-    inline ~wxHelpControllerBase() {};
+    inline ~wxHelpControllerBase() {}
 
     // Must call this to set the filename and server name.
     // server is only required when implementing TCP/IP-based
@@ -47,7 +45,7 @@ public:
     virtual void SetViewer(const wxString& WXUNUSED(viewer), long WXUNUSED(flags) = 0) {}
 
     // If file is "", reloads file given  in Initialize
-    virtual bool LoadFile(const wxString& file = "") = 0;
+    virtual bool LoadFile(const wxString& file = wxT("")) = 0;
 
     // Displays the contents
     virtual bool DisplayContents(void) = 0;
@@ -59,11 +57,11 @@ public:
     virtual bool DisplayContextPopup(int WXUNUSED(contextId)) { return FALSE; };
 
     // Display the text in a popup, if possible
-    virtual bool DisplayTextPopup(const wxString& WXUNUSED(text), const wxPoint& WXUNUSED(pos)) { return FALSE; };
+    virtual bool DisplayTextPopup(const wxString& WXUNUSED(text), const wxPoint& WXUNUSED(pos)) { return FALSE; }
 
     // By default, uses KeywordSection to display a topic. Implementations
     // may override this for more specific behaviour.
-    virtual bool DisplaySection(const wxString& section) { return KeywordSearch(section); };
+    virtual bool DisplaySection(const wxString& section) { return KeywordSearch(section); }
     virtual bool DisplayBlock(long blockNo) = 0;
     virtual bool KeywordSearch(const wxString& k) = 0;
     /// Allows one to override the default settings for the help frame.
@@ -80,11 +78,14 @@ public:
         wxPoint *WXUNUSED(pos) = NULL,
         bool *WXUNUSED(newFrameEachTime) = NULL)
     {
-        return (wxFrame*) NULL;// does nothing by default
+        return (wxFrame*) NULL; // does nothing by default
     }
 
-    virtual bool Quit(void) = 0;
-    virtual void OnQuit(void) {};
+    virtual bool Quit() = 0;
+    virtual void OnQuit() {}
+    
+private:
+    DECLARE_CLASS(wxHelpControllerBase)
 };
 
 #endif // wxUSE_HELP
diff --git a/include/wx/html/forcelnk.h b/include/wx/html/forcelnk.h
index 38aca9f672..87c6b5a041 100644
--- a/include/wx/html/forcelnk.h
+++ b/include/wx/html/forcelnk.h
@@ -67,7 +67,6 @@ See mod_*.cpp and htmlwin.cpp for example :-)
     FORCE_LINK(m_hline) \
     FORCE_LINK(m_links) \
     FORCE_LINK(m_tables) \
-    FORCE_LINK(m_meta) \
     FORCE_LINK(m_style)
 
 
diff --git a/include/wx/html/helpctrl.h b/include/wx/html/helpctrl.h
index f5f285d8b7..e71db3db4c 100644
--- a/include/wx/html/helpctrl.h
+++ b/include/wx/html/helpctrl.h
@@ -57,7 +57,7 @@ public:
     virtual bool Initialize(const wxString& file, int WXUNUSED(server) ) { return Initialize(file); }
     virtual bool Initialize(const wxString& file);
     virtual void SetViewer(const wxString& WXUNUSED(viewer), long WXUNUSED(flags) = 0) {}
-    virtual bool LoadFile(const wxString& file = "");
+    virtual bool LoadFile(const wxString& file = wxT(""));
     virtual bool DisplaySection(int sectionNo);
     virtual bool DisplaySection(const wxString& section) { return Display(section); }
     virtual bool DisplayBlock(long blockNo) { return DisplaySection(blockNo); }
diff --git a/include/wx/html/helpdata.h b/include/wx/html/helpdata.h
index 72612cf2b1..cf318613f2 100644
--- a/include/wx/html/helpdata.h
+++ b/include/wx/html/helpdata.h
@@ -93,23 +93,23 @@ struct wxHtmlContentsItem
 };
 
 //------------------------------------------------------------------------------
-// wxSearchEngine
+// wxHtmlSearchEngine
 //                  This class takes input streams and scans them for occurence
 //                  of keyword(s)
 //------------------------------------------------------------------------------
 
-class WXDLLEXPORT wxSearchEngine : public wxObject
+class WXDLLEXPORT wxHtmlSearchEngine : public wxObject
 {
 public:
-    wxSearchEngine() : wxObject() {m_Keyword = NULL; }
-    ~wxSearchEngine() {if (m_Keyword) delete[] m_Keyword; }
+    wxHtmlSearchEngine() : wxObject() {m_Keyword = NULL; }
+    ~wxHtmlSearchEngine() {if (m_Keyword) delete[] m_Keyword; }
 
     // Sets the keyword we will be searching for
     virtual void LookFor(const wxString& keyword, bool case_sensitive, bool whole_words_only);
 
     // Scans the stream for the keyword.
     // Returns TRUE if the stream contains keyword, fALSE otherwise
-    virtual bool Scan(wxInputStream *stream);
+    virtual bool Scan(const wxFSFile& file);
 
 private:
     wxChar *m_Keyword;
@@ -139,7 +139,7 @@ public:
 
 private:
     wxHtmlHelpData* m_Data;
-    wxSearchEngine m_Engine;
+    wxHtmlSearchEngine m_Engine;
     wxString m_Keyword, m_Name;
     wxChar *m_LastPage;
     wxHtmlContentsItem* m_ContentsItem;
diff --git a/include/wx/html/helpfrm.h b/include/wx/html/helpfrm.h
index 11a5e82961..3e0e6e9264 100644
--- a/include/wx/html/helpfrm.h
+++ b/include/wx/html/helpfrm.h
@@ -33,7 +33,9 @@
 #include "wx/stattext.h"
 #include "wx/html/htmlwin.h"
 #include "wx/html/htmprint.h"
+
 class WXDLLEXPORT wxButton;
+class WXDLLEXPORT wxTextCtrl;
 
 
 // style flags for the Help Frame
diff --git a/include/wx/html/htmlcell.h b/include/wx/html/htmlcell.h
index e2760ab1f8..eb2b4bee51 100644
--- a/include/wx/html/htmlcell.h
+++ b/include/wx/html/htmlcell.h
@@ -219,6 +219,9 @@ public:
     void SetMinHeight(int h, int align = wxHTML_ALIGN_TOP) {m_MinHeight = h; m_MinHeightAlign = align; m_LastLayout = -1;}
 
     void SetBackgroundColour(const wxColour& clr) {m_UseBkColour = TRUE; m_BkColour = clr;}
+    // returns background colour (of wxNullColour if none set), so that widgets can
+    // adapt to it:
+    wxColour GetBackgroundColour();
     void SetBorder(const wxColour& clr1, const wxColour& clr2) {m_UseBorder = TRUE; m_BorderColour1 = clr1, m_BorderColour2 = clr2;}
     virtual wxHtmlLinkInfo* GetLink(int x = 0, int y = 0) const;
     virtual const wxHtmlCell* Find(int condition, const void* param) const;
diff --git a/include/wx/html/htmlfilt.h b/include/wx/html/htmlfilt.h
index 57c5b47187..4f49f9f8c7 100644
--- a/include/wx/html/htmlfilt.h
+++ b/include/wx/html/htmlfilt.h
@@ -65,6 +65,20 @@ public:
     virtual wxString ReadFile(const wxFSFile& file) const;
 };
 
+//--------------------------------------------------------------------------------
+// wxHtmlFilterHTML
+//          filter for text/html
+//--------------------------------------------------------------------------------
+
+class wxHtmlFilterHTML : public wxHtmlFilter
+{
+    DECLARE_DYNAMIC_CLASS(wxHtmlFilterHTML)
+
+    public:
+        virtual bool CanRead(const wxFSFile& file) const;
+        virtual wxString ReadFile(const wxFSFile& file) const;
+};
+
 
 
 #endif // wxUSE_HTML
diff --git a/include/wx/html/htmlpars.h b/include/wx/html/htmlpars.h
index ea6a99bc5c..58f2f2bcc0 100644
--- a/include/wx/html/htmlpars.h
+++ b/include/wx/html/htmlpars.h
@@ -72,6 +72,9 @@ public:
     virtual void InitParser(const wxString& source);
     // This must be called after Parse().
     virtual void DoneParser();
+    
+    // May be called during parsing to immediately return from Parse().
+    virtual void StopParsing() { m_stopParsing = TRUE; }
 
     // Parses the m_Source from begin_pos to end_pos-1.
     // (in noparams version it parses whole m_Source)
@@ -117,6 +120,11 @@ public:
     // Restores parser's state from stack or returns FALSE if the stack is
     // empty
     virtual bool RestoreState();
+    
+    // Parses HTML string 'markup' and extracts charset info from <meta> tag
+    // if present. Returns empty string if the tag is missing.
+    // For wxHTML's internal use.
+    static wxString ExtractCharsetInformation(const wxString& markup);
 
 protected:
     // DOM structure
@@ -173,6 +181,9 @@ protected:
     
     // entity parse
     wxHtmlEntitiesParser *m_entitiesParser;
+    
+    // flag indicating that the parser should stop
+    bool m_stopParsing;
 };
 
 
@@ -242,7 +253,11 @@ public:
     wxChar GetEntityChar(const wxString& entity);
 
     // Returns character that represents given Unicode code
+#if wxUSE_UNICODE
+    wxChar GetCharForCode(unsigned code) { return (wxChar)code; }
+#else
     wxChar GetCharForCode(unsigned code);
+#endif
 
 protected:
 #if wxUSE_WCHAR_T && !wxUSE_UNICODE
diff --git a/include/wx/html/htmprint.h b/include/wx/html/htmprint.h
index 38575d5b5a..713d1ef895 100644
--- a/include/wx/html/htmprint.h
+++ b/include/wx/html/htmprint.h
@@ -98,7 +98,7 @@ enum {
 class WXDLLEXPORT wxHtmlPrintout : public wxPrintout
 {
 public:
-    wxHtmlPrintout(const wxString& title = "Printout");
+    wxHtmlPrintout(const wxString& title = wxT("Printout"));
     ~wxHtmlPrintout();
 
     void SetHtmlText(const wxString& html, const wxString &basepath = wxEmptyString, bool isdir = TRUE); 
@@ -176,7 +176,7 @@ private:
 class WXDLLEXPORT wxHtmlEasyPrinting : public wxObject
 {
 public:
-    wxHtmlEasyPrinting(const wxString& name = "Printing", wxFrame *parent_frame = NULL);
+    wxHtmlEasyPrinting(const wxString& name = wxT("Printing"), wxFrame *parent_frame = NULL);
     ~wxHtmlEasyPrinting();
 
     bool PreviewFile(const wxString &htmlfile);
diff --git a/include/wx/html/m_templ.h b/include/wx/html/m_templ.h
index 9d9174772d..7dc0e16227 100644
--- a/include/wx/html/m_templ.h
+++ b/include/wx/html/m_templ.h
@@ -32,7 +32,7 @@ I STRONGLY recommend reading and understanding these macros!!
     class HTML_Handler_##name : public wxHtmlWinTagHandler                \
     {                                                                     \
         public:                                                           \
-            wxString GetSupportedTags() {return tags;}
+            wxString GetSupportedTags() {return wxT(tags);}
 
 
 
diff --git a/include/wx/html/winpars.h b/include/wx/html/winpars.h
index 5e6866d069..23905552f7 100644
--- a/include/wx/html/winpars.h
+++ b/include/wx/html/winpars.h
@@ -117,10 +117,12 @@ public:
     const wxHtmlLinkInfo& GetLink() const { return m_Link; }
     void SetLink(const wxHtmlLinkInfo& link);
 
+#if !wxUSE_UNICODE
     void SetInputEncoding(wxFontEncoding enc);
     wxFontEncoding GetInputEncoding() const { return m_InputEnc; }
     wxFontEncoding GetOutputEncoding() const { return m_OutputEnc; }
     wxEncodingConverter *GetEncodingConverter() const { return m_EncConv; }
+#endif
 
     // creates font depending on m_Font* members.
     virtual wxFont* CreateCurrentFont();
@@ -161,7 +163,9 @@ private:
 
     wxFont* m_FontsTable[2][2][2][2][7];
     wxString m_FontsFacesTable[2][2][2][2][7];
+#if !wxUSE_UNICODE
     wxFontEncoding m_FontsEncTable[2][2][2][2][7];
+#endif
             // table of loaded fonts. 1st four indexes are 0 or 1, depending on on/off
             // state of these flags (from left to right):
             // [bold][italic][underlined][fixed_size]
@@ -172,9 +176,11 @@ private:
     wxString m_FontFaceFixed, m_FontFaceNormal;
             // html font sizes and faces of fixed and proportional fonts
 
+#if !wxUSE_UNICODE
     wxFontEncoding m_InputEnc, m_OutputEnc;
             // I/O font encodings
     wxEncodingConverter *m_EncConv;
+#endif
 };
 
 
diff --git a/include/wx/image.h b/include/wx/image.h
index 6d025c286b..848f5e324a 100644
--- a/include/wx/image.h
+++ b/include/wx/image.h
@@ -44,7 +44,7 @@ class WXDLLEXPORT wxImageHandler: public wxObject
 {
 public:
     wxImageHandler()
-        : m_name(""), m_extension(""), m_mime(), m_type(0)
+        : m_name(wxT("")), m_extension(wxT("")), m_mime(), m_type(0)
         { }
 
 #if wxUSE_STREAMS
@@ -97,7 +97,7 @@ public:
 
 WX_DECLARE_EXPORTED_HASH_MAP(unsigned long, wxImageHistogramEntry,
                              wxIntegerHash, wxIntegerEqual,
-                             wxImageHistogram);
+                             wxImageHistogram)
 
 //-----------------------------------------------------------------------------
 // wxImage
@@ -121,7 +121,7 @@ public:
     wxImage( const wxImage* image );
 
 #if WXWIN_COMPATIBILITY_2_2 && wxUSE_GUI
-    // convertion to/from wxBitmap (deprecated, use wxBitmap's methods instead):
+    // conversion to/from wxBitmap (deprecated, use wxBitmap's methods instead):
     wxImage( const wxBitmap &bitmap );
     wxBitmap ConvertToBitmap() const;
 #ifdef __WXGTK__
@@ -248,9 +248,9 @@ public:
         return *this;
     }
 
-    bool operator == (const wxImage& image)
+    bool operator == (const wxImage& image) const
         { return m_refData == image.m_refData; }
-    bool operator != (const wxImage& image)
+    bool operator != (const wxImage& image) const
         { return m_refData != image.m_refData; }
 
     static wxList& GetHandlers() { return sm_handlers; }
diff --git a/include/wx/imaggif.h b/include/wx/imaggif.h
index 1eaba1b62e..5af07e4072 100644
--- a/include/wx/imaggif.h
+++ b/include/wx/imaggif.h
@@ -25,23 +25,23 @@
 
 class WXDLLEXPORT wxGIFHandler : public wxImageHandler
 {
-  DECLARE_DYNAMIC_CLASS(wxGIFHandler)
-
 public:
-
-  inline wxGIFHandler()
-  {
-      m_name = "GIF file";
-      m_extension = "gif";
-      m_type = wxBITMAP_TYPE_GIF;
-      m_mime = "image/gif";
-  };
+    inline wxGIFHandler()
+    {
+        m_name = wxT("GIF file");
+        m_extension = wxT("gif");
+        m_type = wxBITMAP_TYPE_GIF;
+        m_mime = wxT("image/gif");
+    }
 
 #if wxUSE_STREAMS
-  virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=-1 );
-  virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
-  virtual bool DoCanRead( wxInputStream& stream );
+    virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=-1 );
+    virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
+    virtual bool DoCanRead( wxInputStream& stream );
 #endif
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxGIFHandler)
 };
 #endif
 
diff --git a/include/wx/imagiff.h b/include/wx/imagiff.h
index 076cc115a9..3591d7570e 100644
--- a/include/wx/imagiff.h
+++ b/include/wx/imagiff.h
@@ -24,8 +24,6 @@
 
 class WXDLLEXPORT wxIFFHandler : public wxImageHandler
 {
-    DECLARE_DYNAMIC_CLASS(wxIFFHandler)
-
 public:
     wxIFFHandler()
     {
@@ -33,13 +31,16 @@ public:
         m_extension = wxT("iff");
         m_type = wxBITMAP_TYPE_IFF;
         m_mime = wxT("image/x-iff");
-    };
+    }
 
 #if wxUSE_STREAMS
     virtual bool LoadFile(wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=-1);
     virtual bool SaveFile(wxImage *image, wxOutputStream& stream, bool verbose=TRUE);
     virtual bool DoCanRead(wxInputStream& stream);
 #endif
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxIFFHandler)
 };
 
 #endif // wxUSE_IMAGE && wxUSE_IFF
diff --git a/include/wx/imagjpeg.h b/include/wx/imagjpeg.h
index ff76239224..7c9a82de9d 100644
--- a/include/wx/imagjpeg.h
+++ b/include/wx/imagjpeg.h
@@ -23,23 +23,23 @@
 #if wxUSE_LIBJPEG
 class WXDLLEXPORT wxJPEGHandler: public wxImageHandler
 {
-  DECLARE_DYNAMIC_CLASS(wxJPEGHandler)
-
 public:
-
-  inline wxJPEGHandler()
-  {
-      m_name = "JPEG file";
-      m_extension = "jpg";
-      m_type = wxBITMAP_TYPE_JPEG;
-      m_mime = "image/jpeg";
-  };
+    inline wxJPEGHandler()
+    {
+        m_name = wxT("JPEG file");
+        m_extension = wxT("jpg");
+        m_type = wxBITMAP_TYPE_JPEG;
+        m_mime = wxT("image/jpeg");
+    }
 
 #if wxUSE_STREAMS
-  virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=-1 );
-  virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
-  virtual bool DoCanRead( wxInputStream& stream );
+    virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=-1 );
+    virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
+    virtual bool DoCanRead( wxInputStream& stream );
 #endif
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxJPEGHandler)
 };
 #endif
 
diff --git a/include/wx/imagpcx.h b/include/wx/imagpcx.h
index f6e5908472..40d3ca7c7e 100644
--- a/include/wx/imagpcx.h
+++ b/include/wx/imagpcx.h
@@ -24,23 +24,23 @@
 #if wxUSE_PCX
 class WXDLLEXPORT wxPCXHandler : public wxImageHandler
 {
-  DECLARE_DYNAMIC_CLASS(wxPCXHandler)
-
 public:
-
-  inline wxPCXHandler()
-  {
-      m_name = "PCX file";
-      m_extension = "pcx";
-      m_type = wxBITMAP_TYPE_PCX;
-      m_mime = "image/pcx";
-  };
+    inline wxPCXHandler()
+    {
+        m_name = wxT("PCX file");
+        m_extension = wxT("pcx");
+        m_type = wxBITMAP_TYPE_PCX;
+        m_mime = wxT("image/pcx");
+    }
 
 #if wxUSE_STREAMS
-  virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=-1 );
-  virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
-  virtual bool DoCanRead( wxInputStream& stream );
+    virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=-1 );
+    virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
+    virtual bool DoCanRead( wxInputStream& stream );
 #endif // wxUSE_STREAMS
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxPCXHandler)
 };
 #endif // wxUSE_PCX
 
diff --git a/include/wx/imagpng.h b/include/wx/imagpng.h
index 232e880403..1183280c11 100644
--- a/include/wx/imagpng.h
+++ b/include/wx/imagpng.h
@@ -23,23 +23,23 @@
 #if wxUSE_LIBPNG
 class WXDLLEXPORT wxPNGHandler: public wxImageHandler
 {
-  DECLARE_DYNAMIC_CLASS(wxPNGHandler)
-
 public:
-
-  inline wxPNGHandler()
-  {
-      m_name = "PNG file";
-      m_extension = "png";
-      m_type = wxBITMAP_TYPE_PNG;
-      m_mime = "image/png";
-  };
+    inline wxPNGHandler()
+    {
+        m_name = wxT("PNG file");
+        m_extension = wxT("png");
+        m_type = wxBITMAP_TYPE_PNG;
+        m_mime = wxT("image/png");
+    }
 
 #if wxUSE_STREAMS
-  virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=-1 );
-  virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
-  virtual bool DoCanRead( wxInputStream& stream );
+    virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=-1 );
+    virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
+    virtual bool DoCanRead( wxInputStream& stream );
 #endif
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxPNGHandler)
 };
 #endif
 
diff --git a/include/wx/imagpnm.h b/include/wx/imagpnm.h
index 21f2896b57..12f184f587 100644
--- a/include/wx/imagpnm.h
+++ b/include/wx/imagpnm.h
@@ -23,23 +23,23 @@
 #if wxUSE_PNM
 class WXDLLEXPORT wxPNMHandler : public wxImageHandler
 {
-  DECLARE_DYNAMIC_CLASS(wxPNMHandler)
-
 public:
-
-  inline wxPNMHandler()
-  {
-      m_name = "PNM file";
-      m_extension = "pnm";
-      m_type = wxBITMAP_TYPE_PNM;
-      m_mime = "image/pnm";
-  };
+    inline wxPNMHandler()
+    {
+        m_name = wxT("PNM file");
+        m_extension = wxT("pnm");
+        m_type = wxBITMAP_TYPE_PNM;
+        m_mime = wxT("image/pnm");
+    }
 
 #if wxUSE_STREAMS
-  virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=-1 );
-  virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
-  virtual bool DoCanRead( wxInputStream& stream );
+    virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=-1 );
+    virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
+    virtual bool DoCanRead( wxInputStream& stream );
 #endif
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxPNMHandler)
 };
 #endif
 
diff --git a/include/wx/imagtiff.h b/include/wx/imagtiff.h
index 5d539336a8..67657d6d4f 100644
--- a/include/wx/imagtiff.h
+++ b/include/wx/imagtiff.h
@@ -24,24 +24,24 @@
 #if wxUSE_LIBTIFF
 class WXDLLEXPORT wxTIFFHandler: public wxImageHandler
 {
-  DECLARE_DYNAMIC_CLASS(wxTIFFHandler)
-
 public:
-
-  inline wxTIFFHandler()
-  {
-      m_name = "TIFF file";
-      m_extension = "tif";
-      m_type = wxBITMAP_TYPE_TIF;
-      m_mime = "image/tiff";
-  };
+    inline wxTIFFHandler()
+    {
+        m_name = wxT("TIFF file");
+        m_extension = wxT("tif");
+        m_type = wxBITMAP_TYPE_TIF;
+        m_mime = wxT("image/tiff");
+    }
 
 #if wxUSE_STREAMS
-  virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=-1 );
-  virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
-  virtual bool DoCanRead( wxInputStream& stream );
-  virtual int GetImageCount( wxInputStream& stream );
+    virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=-1 );
+    virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
+    virtual bool DoCanRead( wxInputStream& stream );
+    virtual int GetImageCount( wxInputStream& stream );
 #endif
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxTIFFHandler)
 };
 #endif
 
diff --git a/include/wx/imagxpm.h b/include/wx/imagxpm.h
index 658fa3d622..f8825308c2 100644
--- a/include/wx/imagxpm.h
+++ b/include/wx/imagxpm.h
@@ -23,23 +23,23 @@
 
 class WXDLLEXPORT wxXPMHandler : public wxImageHandler
 {
-  DECLARE_DYNAMIC_CLASS(wxXPMHandler)
-
 public:
-
-  inline wxXPMHandler()
-  {
-      m_name = wxT("XPM file");
-      m_extension = wxT("xpm");
-      m_type = wxBITMAP_TYPE_XPM;
-      m_mime = wxT("image/xpm");
-  };
+    inline wxXPMHandler()
+    {
+        m_name = wxT("XPM file");
+        m_extension = wxT("xpm");
+        m_type = wxBITMAP_TYPE_XPM;
+        m_mime = wxT("image/xpm");
+    }
 
 #if wxUSE_STREAMS
-  virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=-1 );
-  virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
-  virtual bool DoCanRead( wxInputStream& stream );
+    virtual bool LoadFile( wxImage *image, wxInputStream& stream, bool verbose=TRUE, int index=-1 );
+    virtual bool SaveFile( wxImage *image, wxOutputStream& stream, bool verbose=TRUE );
+    virtual bool DoCanRead( wxInputStream& stream );
 #endif
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxXPMHandler)
 };
 
 
diff --git a/include/wx/list.h b/include/wx/list.h
index 886c744618..ed182de01f 100644
--- a/include/wx/list.h
+++ b/include/wx/list.h
@@ -193,7 +193,7 @@ private:
 
 class WXDLLEXPORT wxListBase : public wxObject
 {
-friend class wxNodeBase;        // should be able to call DetachNode()
+friend class WXDLLEXPORT wxNodeBase; // should be able to call DetachNode()
 friend class wxHashTableBase;   // should be able to call untyped Find()
 private:
         // common part of all ctors
@@ -235,7 +235,7 @@ public:
     int Number() const { return GetCount(); }
     wxNode *First() const { return (wxNode *)GetFirst(); }
     wxNode *Last() const { return (wxNode *)GetLast(); }
-    wxNode *Nth(size_t index) const { return (wxNode *)Item(index); }
+    wxNode *Nth(size_t n) const { return (wxNode *)Item(n); }
 #endif // wxLIST_COMPATIBILITY
 
 protected:
@@ -274,8 +274,12 @@ protected:
     wxNodeBase *Item(size_t index) const;
 
         // get the list item's data
-    void *operator[](size_t index) const
-        { wxNodeBase *node = Item(index); return node ? node->GetData() : (wxNodeBase*)NULL; }
+    void *operator[](size_t n) const
+    {
+        wxNodeBase *node = Item(n);
+
+        return node ? node->GetData() : (wxNodeBase *)NULL;
+    }
 
     // operations
         // append to end of list
diff --git a/include/wx/listctrl.h b/include/wx/listctrl.h
index a89000e868..c57ee5ef67 100644
--- a/include/wx/listctrl.h
+++ b/include/wx/listctrl.h
@@ -44,7 +44,7 @@ public:
                 const wxSize& size = wxDefaultSize,
                 long style = wxLC_REPORT,
                 const wxValidator& validator = wxDefaultValidator,
-                const wxString &name = "listctrl" )
+                const wxString &name = wxT("listctrl") )
     {
         Create(parent, id, pos, size, style, validator, name);
     }
diff --git a/include/wx/longlong.h b/include/wx/longlong.h
index a4eb5f547d..db1bc25975 100644
--- a/include/wx/longlong.h
+++ b/include/wx/longlong.h
@@ -50,29 +50,39 @@
 // long", then check for specific compilers
 #if defined(SIZEOF_LONG) && (SIZEOF_LONG == 8)
     #define wxLongLong_t long
+    #define wxLongLongSuffix l
+    #define wxLongLongFmtSpec _T("l")
     #define wxLongLongIsLong
 #elif (defined(__VISUALC__) && defined(__WIN32__)) || defined( __VMS__ )
     #define wxLongLong_t __int64
+    #define wxLongLongSuffix i64
+    #define wxLongLongFmtSpec _T("I64")
 #elif defined(__BORLANDC__) && defined(__WIN32__) && (__BORLANDC__ >= 0x520)
     #define wxLongLong_t __int64
-#elif defined(SIZEOF_LONG_LONG) && SIZEOF_LONG_LONG >= 8
-    #define wxLongLong_t long long
-#elif defined(__MINGW32__) || defined(__CYGWIN__) || defined(__WXMICROWIN__)
+    #define wxLongLongSuffix i64
+    #define wxLongLongFmtSpec _T("I64")
+#elif (defined(SIZEOF_LONG_LONG) && SIZEOF_LONG_LONG >= 8)  || \
+        defined(__MINGW32__) || \
+        defined(__CYGWIN__) || \
+        defined(__WXMICROWIN__) || \
+        (defined(__DJGPP__) && __DJGPP__ >= 2)
     #define wxLongLong_t long long
+    #define wxLongLongSuffix ll
+    #define wxLongLongFmtSpec _T("ll")
 #elif defined(__MWERKS__)
     #if __option(longlong)
         #define wxLongLong_t long long
+        #define wxLongLongSuffix ll
+        #define wxLongLongFmtSpec _T("ll")
     #else
         #error "The 64 bit integer support in CodeWarrior has been disabled."
         #error "See the documentation on the 'longlong' pragma."
     #endif
 #elif defined(__VISAGECPP__) && __IBMCPP__ >= 400
-        #define wxLongLong_t long long
-#elif defined(__DJGPP__) && __DJGPP__ >= 2
     #define wxLongLong_t long long
 #else // no native long long type
     // both warning and pragma warning are not portable, but at least an
-    // unknown pragma should never be an error - except that, actually, some
+    // unknown pragma should never be an error -- except that, actually, some
     // broken compilers don't like it, so we have to disable it in this case
     // <sigh>
 #if !(defined(__WATCOMC__) || defined(__VISAGECPP__))
@@ -85,6 +95,11 @@
     #define wxUSE_LONGLONG_WX 1
 #endif // compiler
 
+// this macro allows to definea 64 bit constant in a portable way
+#define wxMakeLongLong(x, s) x ## s
+#define wxMakeLongLong2(x, s) wxMakeLongLong(x, s)
+#define wxLL(x) wxMakeLongLong2(x, wxLongLongSuffix)
+
 // the user may predefine wxUSE_LONGLONG_NATIVE and/or wxUSE_LONGLONG_NATIVE
 // to disable automatic testing (useful for the test program which defines
 // both classes) but by default we only use one class
diff --git a/include/wx/mac/app.h b/include/wx/mac/app.h
index bbc96c1099..0241b2e649 100644
--- a/include/wx/mac/app.h
+++ b/include/wx/mac/app.h
@@ -109,6 +109,8 @@ public:
     static bool           s_macDefaultEncodingIsPC ;
     static bool           s_macSupportPCMenuShortcuts ;
     static long           s_macAboutMenuItemId ;
+    static long           s_macPreferencesMenuItemId ;
+    static long           s_macExitMenuItemId ;
     static wxString       s_macHelpMenuTitleName ;
 
     static bool           s_macHasAppearance ;
diff --git a/include/wx/mac/dataform.h b/include/wx/mac/dataform.h
index d9267a9981..d1bf0f98bc 100644
--- a/include/wx/mac/dataform.h
+++ b/include/wx/mac/dataform.h
@@ -12,7 +12,7 @@
 #ifndef _WX_MAC_DATAFORM_H
 #define _WX_MAC_DATAFORM_H
 
-class wxDataFormat
+class WXDLLEXPORT wxDataFormat
 {
 public:
     typedef unsigned long NativeFormat;
diff --git a/include/wx/mac/dataobj.h b/include/wx/mac/dataobj.h
index 3c1e8de47b..d0986d168e 100644
--- a/include/wx/mac/dataobj.h
+++ b/include/wx/mac/dataobj.h
@@ -20,7 +20,7 @@
 // wxDataObject is the same as wxDataObjectBase under wxGTK
 // ----------------------------------------------------------------------------
 
-class wxDataObject : public wxDataObjectBase
+class WXDLLEXPORT wxDataObject : public wxDataObjectBase
 {
 public:
     wxDataObject();
diff --git a/include/wx/mac/dataobj2.h b/include/wx/mac/dataobj2.h
index 744aa141ae..c6fd53689c 100644
--- a/include/wx/mac/dataobj2.h
+++ b/include/wx/mac/dataobj2.h
@@ -20,7 +20,7 @@
 // wxBitmapDataObject is a specialization of wxDataObject for bitmaps
 // ----------------------------------------------------------------------------
 
-class wxBitmapDataObject : public wxBitmapDataObjectBase
+class WXDLLEXPORT wxBitmapDataObject : public wxBitmapDataObjectBase
 {
 public:
     // ctors
@@ -64,7 +64,7 @@ private:
 // wxFileDataObject is a specialization of wxDataObject for file names
 // ----------------------------------------------------------------------------
 
-class wxFileDataObject : public wxFileDataObjectBase
+class WXDLLEXPORT wxFileDataObject : public wxFileDataObjectBase
 {
 public:
     // implement base class pure virtuals
diff --git a/include/wx/mac/frame.h b/include/wx/mac/frame.h
index 6434553ebe..1005712dd7 100644
--- a/include/wx/mac/frame.h
+++ b/include/wx/mac/frame.h
@@ -113,6 +113,9 @@ protected:
     virtual void DoGetClientSize(int *width, int *height) const;
     virtual void DoSetClientSize(int width, int height);
 
+    virtual void DetachMenuBar();
+    virtual void AttachMenuBar(wxMenuBar *menubar);
+
 protected:
 #if wxUSE_STATUSBAR
     static bool           m_useNativeStatusBar;
diff --git a/include/wx/mac/menu.h b/include/wx/mac/menu.h
index 4c79dbf2aa..6c39c96fc0 100644
--- a/include/wx/mac/menu.h
+++ b/include/wx/mac/menu.h
@@ -63,7 +63,6 @@ public:
     // implementation only from now on
     // -------------------------------
 
-  	bool MacMenuSelect(wxEvtHandler* handler, long when , int macMenuId, int macMenuItemNum) ;
   	int	MacGetIndexFromId( int id ) ; 
   	int	MacGetIndexFromItem( wxMenuItem *pItem ) ; 
   	void MacEnableMenu( bool bDoEnable ) ;
@@ -163,6 +162,11 @@ public:
         // attach to a frame
     void Attach(wxFrame *frame);
 
+		// clear the invoking window for all menus and submenus
+	void UnsetInvokingWindow() ;
+
+		// set the invoking window for all menus and submenus
+	void SetInvokingWindow( wxFrame* frame ) ;
 #if wxUSE_ACCEL
     // get the accel table for all the menus
     const wxAcceleratorTable& GetAccelTable() const { return m_accelTable; }
@@ -176,7 +180,6 @@ public:
     void Refresh(bool eraseBackground = TRUE, const wxRect *rect = (const wxRect *) NULL);
 
   void MacInstallMenuBar() ;
-  void MacMenuSelect(wxEvtHandler* handler, long when , int macMenuId, int macMenuItemNum) ;
   static wxMenuBar* MacGetInstalledMenuBar() { return s_macInstalledMenuBar ; }
 
 protected:
diff --git a/include/wx/mac/notebook.h b/include/wx/mac/notebook.h
index e461360b9f..bdeec4ee71 100644
--- a/include/wx/mac/notebook.h
+++ b/include/wx/mac/notebook.h
@@ -143,8 +143,8 @@ protected:
   void ChangePage(int nOldSel, int nSel); // change pages
   void MacSetupTabs();
 
-//  wxImageList  *m_pImageList; // we can have an associated image list
-//  wxArrayPages  m_aPages;     // array of pages
+  // the icon indices
+  wxArrayInt m_images;
 
   int m_nSelection;           // the current selection (-1 if none)
 
diff --git a/include/wx/mac/private.h b/include/wx/mac/private.h
index f34b32ea62..341d5307c7 100644
--- a/include/wx/mac/private.h
+++ b/include/wx/mac/private.h
@@ -129,7 +129,7 @@ PicHandle 	    wxMacCreatePict( GWorldPtr gw , GWorldPtr mask = NULL ) ;
 CIconHandle     wxMacCreateCIcon(GWorldPtr image , GWorldPtr mask , short dstDepth , short iconSize  ) ;
 void 		        wxMacSetColorTableEntry( CTabHandle newColors , int index , int red , int green ,  int blue ) ;
 CTabHandle 	    wxMacCreateColorTable( int numColors ) ;
-void wxMacCreateBitmapButton( ControlButtonContentInfo*info , const wxBitmap& bitmap , bool forceColorIcon = false ) ;
+void wxMacCreateBitmapButton( ControlButtonContentInfo*info , const wxBitmap& bitmap , int forceType = 0 ) ;
 
 #define MAC_WXCOLORREF(a) (*((RGBColor*)&(a)))
 #define MAC_WXHBITMAP(a) (GWorldPtr(a))
diff --git a/include/wx/mac/setup0.h b/include/wx/mac/setup0.h
index 5942f39266..5f5157bb1b 100644
--- a/include/wx/mac/setup0.h
+++ b/include/wx/mac/setup0.h
@@ -36,6 +36,22 @@
 // so there is little advantage to setting it to 1.
 #define WXWIN_COMPATIBILITY  0
 
+// This setting determines the compatibility with 2.0 API: set it to 1 to
+// enable it
+//
+// Default is 0.
+//
+// Recommended setting: 0 (please update your code instead!)
+#define WXWIN_COMPATIBILITY_2 0
+
+// This setting determines the compatibility with 2.0 API: set it to 1 to
+// enable it
+//
+// Default is 1.
+//
+// Recommended setting: 0 (please update your code instead!)
+#define WXWIN_COMPATIBILITY_2_2 1
+
 // in wxMSW version 2.1.11 and earlier, wxIcon always derives from wxBitmap,
 // but this is very dangerous because you can mistakenly pass an icon instead
 // of a bitmap to a function taking "const wxBitmap&" - which will *not* work
@@ -106,23 +122,25 @@
 #define wxUSE_MEMORY_TRACING 1
 
 // In debug mode, cause new and delete to be redefined globally.
-// If this causes problems (e.g. link errors), set this to 0.
+// If this causes problems (e.g. link errors which is a common problem
+// especially if you use another library which also redefines the global new
+// and delete), set this to 0.
 // This switch is currently ignored for mingw / cygwin
 //
-// Default is 1
+// Default is 0
 //
-// Recommended setting: 1 but see comment in the beginning of this section
+// Recommended setting: 0
 #define wxUSE_GLOBAL_MEMORY_OPERATORS 0
 
 // In debug mode, causes new to be defined to be WXDEBUG_NEW (see object.h). If
 // this causes problems (e.g. link errors), set this to 0. You may need to set
 // this to 0 if using templates (at least for VC++). This switch is currently
-// ignored for mingw / cygwin
+// ignored for mingw / cygwin 
 //
-// Default is 1
+// Default is 0
 //
-// Recommended setting: 1 but see comment in the beginning of this section
-#define wxUSE_DEBUG_NEW_ALWAYS 1
+// Recommended setting: 0
+#define wxUSE_DEBUG_NEW_ALWAYS 0
 
 // wxHandleFatalExceptions() may be used to catch the program faults at run
 // time and, instead of terminating the program with a usual GPF message box,
@@ -190,6 +208,13 @@
 // Recommended setting: 1 (always)
 #define wxUSE_LOG_DIALOG 1
 
+// Support for command line parsing using wxCmdLineParser class.
+//
+// Default is 1
+//
+// Recommended setting: 1 (can be set to 0 if you don't use the cmd line)
+#define wxUSE_CMDLINE_PARSER 1
+
 // Support for multithreaded applications: if 1, compile in thread classes
 // (thread.h) and make the library a bit more thread safe. Although thread
 // support is quite stable by now, you may still consider recompiling the
@@ -246,7 +271,8 @@
 // use wxTextBuffer class: required by wxTextFile
 #define wxUSE_TEXTBUFFER    1
 
-// use wxTextFile class: requires wxFile, required by wxFileConfig
+// use wxTextFile class: requires wxFile and wxTextBuffer, required by
+// wxFileConfig
 #define wxUSE_TEXTFILE      1
 
 // i18n support: _() macro, wxLocale class. Requires wxTextFile.
@@ -317,14 +343,14 @@
 
 // If wxUSE_DIALUP_MANAGER is 1, compile in wxDialUpManager class which allows
 // to connect/disconnect from the network and be notified whenever the dial-up
-// network connection is established/terminated. Requires wxUSE_DYNLIB_CLASS.
+// network connection is established/terminated. Requires wxUSE_DYNAMIC_LOADER.
 //
 // Default is 1.
 //
 // Recommended setting: 1
 #define wxUSE_DIALUP_MANAGER   1
 
-// Compile in wxLibrary class for run-time DLL loading and function calling.
+// Compile in classes for run-time DLL loading and function calling.
 // Required by wxUSE_DIALUP_MANAGER.
 //
 // This setting is for Win32 only
@@ -374,9 +400,6 @@
 // wxMimeTypesManager class
 #define wxUSE_MIMETYPE 1
 
-// wxSystemOptions class
-#define wxUSE_SYSTEM_OPTIONS 1
-
 // wxProtocol and related classes: if you want to use either of wxFTP, wxHTTP
 // or wxURL you need to set this to 1.
 //
@@ -401,7 +424,13 @@
 //
 // Recommended setting: 1 if your compiler supports it, if it doesn't please
 // contribute us a makefile for src/regex for it
-#define wxUSE_REGEX       0
+#define wxUSE_REGEX       1
+
+// wxSystemOptions class
+#define wxUSE_SYSTEM_OPTIONS 1
+
+// wxWave class
+#define wxUSE_WAVE      1
 
 // ----------------------------------------------------------------------------
 // Individual GUI controls
@@ -450,7 +479,6 @@
 #define wxUSE_GAUGE        1    // wxGauge
 #define wxUSE_LISTBOX      1    // wxListBox
 #define wxUSE_LISTCTRL     1    // wxListCtrl
-#define wxUSE_PROPSHEET    1    // wxProperty
 #define wxUSE_RADIOBOX     1    // wxRadioBox
 #define wxUSE_RADIOBTN     1    // wxRadioButton
 #define wxUSE_SCROLLBAR    1    // wxScrollBar
@@ -532,6 +560,9 @@
 #define wxUSE_GRID         1
 #define wxUSE_NEW_GRID     1
 
+// wxProperty[Value/Form/List] classes, used by Dialog Editor
+#define wxUSE_PROPSHEET    0
+
 // ----------------------------------------------------------------------------
 // Miscellaneous GUI stuff
 // ----------------------------------------------------------------------------
@@ -617,6 +648,13 @@
 // Recommended setting: 1 (used in the library itself)
 #define wxUSE_CHOICEDLG     1
 
+// Use colour picker dialog
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_COLOURDLG     1
+
 // wxDirDlg class for getting a directory name from user
 #define wxUSE_DIRDLG 1
 
@@ -629,6 +667,13 @@
 // Recommended setting: 1 (used in many places in the library itself)
 #define wxUSE_FILEDLG       1
 
+// Use find/replace dialogs.
+//
+// Default is 1
+//
+// Recommended setting: 1 (but may be safely set to 0)
+#define wxUSE_FINDREPLDLG       1
+
 // Use font picker dialog
 //
 // Default is 1
@@ -655,9 +700,6 @@
 // number entry dialog
 #define wxUSE_NUMBERDLG 1
 
-// color chooser dialog
-#define wxUSE_COLOURDLG 1
-
 // splash screen class
 #define wxUSE_SPLASH 1
 
@@ -770,8 +812,11 @@
 #define wxUSE_SPLINES     1
                                 // 0 for no splines
 
-#define wxUSE_WX_RESOURCES        1
-                                // Use .wxr resource mechanism (requires PrologIO library)
+// use wxExpr (a.k.a. PrologIO)
+#define wxUSE_PROLOGIO          0
+
+// Use .wxr resource mechanism (requires PrologIO library)
+#define wxUSE_WX_RESOURCES        0
 
 #define wxUSE_MOUSEWHEEL        1
                                 // Include mouse wheel support
diff --git a/include/wx/mac/textctrl.h b/include/wx/mac/textctrl.h
index 1d9b218333..5c2c753c43 100644
--- a/include/wx/mac/textctrl.h
+++ b/include/wx/mac/textctrl.h
@@ -152,7 +152,8 @@ public:
     void OnUpdateRedo(wxUpdateUIEvent& event);
 
    	virtual bool MacCanFocus() const { return true ; }
-    
+    virtual bool MacSetupCursor( const wxPoint& pt ) ;
+
     virtual void 	 MacSuperShown( bool show ) ;
     virtual bool	 Show(bool show = TRUE) ;
 
diff --git a/include/wx/mac/uma.h b/include/wx/mac/uma.h
index c9172b6c8a..7709e2a12a 100644
--- a/include/wx/mac/uma.h
+++ b/include/wx/mac/uma.h
@@ -16,6 +16,7 @@
 
 void UMAInitToolbox( UInt16 inMoreMastersCalls) ;
 void UMACleanupToolbox() ;
+long UMAGetSystemVersion() ;
 bool UMAHasAppearance() ;
 long UMAGetAppearanceVersion() ;
 bool UMAHasWindowManager() ;
diff --git a/include/wx/mac/window.h b/include/wx/mac/window.h
index 6018e46219..cef26853e1 100644
--- a/include/wx/mac/window.h
+++ b/include/wx/mac/window.h
@@ -242,7 +242,7 @@ public:
     virtual void         Update() ;
     // for compatibility
     void                 MacUpdateImmediately() { Update() ; }
-    bool                 MacSetupCursor( const wxPoint& pt ) ;
+    virtual bool         MacSetupCursor( const wxPoint& pt ) ;
         
 //    virtual bool         MacSetPortDrawingParams( const Point & localOrigin, const Rect & clipRect, WindowRef window , wxWindowMac* rootwin )  ;
 //    virtual void         MacGetPortParams(Point* localOrigin, Rect* clipRect, WindowRef *window , wxWindowMac** rootwin ) ;
diff --git a/include/wx/motif/statbox.h b/include/wx/motif/statbox.h
index a2a31bdcb7..38a5e89ebd 100644
--- a/include/wx/motif/statbox.h
+++ b/include/wx/motif/statbox.h
@@ -55,20 +55,11 @@ public:
     
     // Implementation
     virtual void ChangeFont(bool keepOriginalSize = TRUE);
-    virtual void ChangeBackgroundColour();
-    virtual void ChangeForegroundColour();
-    WXWidget GetTopWidget() const { return m_formWidget; }
-    WXWidget GetLabelWidget() const { return m_labelWidget; }
     
 protected:
     // Motif-specific
-    WXWidget  m_formWidget;
     WXWidget  m_labelWidget;
-    
-    virtual void DoSetSize(int x, int y,
-        int width, int height,
-        int sizeFlags = wxSIZE_AUTO);
-    
+   
 private:
     DECLARE_EVENT_TABLE()
 };
diff --git a/include/wx/msw/brush.h b/include/wx/msw/brush.h
index ccc307e118..842e259d27 100644
--- a/include/wx/msw/brush.h
+++ b/include/wx/msw/brush.h
@@ -50,8 +50,8 @@ public:
 
     bool Ok() const { return m_refData != NULL; }
 
-    // create (if necessary) and return the HBRUSH for this brush
-    WXHBRUSH GetResourceHandle() const;
+    // return the HBRUSH for this brush
+    virtual WXHANDLE GetResourceHandle() const;
 
 protected:
     virtual wxObjectRefData *CreateRefData() const;
diff --git a/include/wx/msw/checkbox.h b/include/wx/msw/checkbox.h
index 97cf1d32b5..57603fc9a0 100644
--- a/include/wx/msw/checkbox.h
+++ b/include/wx/msw/checkbox.h
@@ -17,31 +17,37 @@
 #endif
 
 // Checkbox item (single checkbox)
-class WXDLLEXPORT wxBitmap;
 class WXDLLEXPORT wxCheckBox : public wxCheckBoxBase
 {
 public:
     wxCheckBox() { }
-    wxCheckBox(wxWindow *parent, wxWindowID id, const wxString& label,
-            const wxPoint& pos = wxDefaultPosition,
-            const wxSize& size = wxDefaultSize, long style = 0,
-            const wxValidator& validator = wxDefaultValidator,
-            const wxString& name = wxCheckBoxNameStr)
+    wxCheckBox(wxWindow *parent,
+               wxWindowID id,
+               const wxString& label,
+               const wxPoint& pos = wxDefaultPosition,
+               const wxSize& size = wxDefaultSize,
+               long style = 0,
+               const wxValidator& validator = wxDefaultValidator,
+               const wxString& name = wxCheckBoxNameStr)
     {
         Create(parent, id, label, pos, size, style, validator, name);
     }
 
-    bool Create(wxWindow *parent, wxWindowID id, const wxString& label,
-            const wxPoint& pos = wxDefaultPosition,
-            const wxSize& size = wxDefaultSize, long style = 0,
-            const wxValidator& validator = wxDefaultValidator,
-            const wxString& name = wxCheckBoxNameStr);
+    bool Create(wxWindow *parent,
+                wxWindowID id,
+                const wxString& label,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = 0,
+                const wxValidator& validator = wxDefaultValidator,
+                const wxString& name = wxCheckBoxNameStr);
 
     virtual void SetValue(bool value);
-    virtual bool GetValue() const ;
+    virtual bool GetValue() const;
 
-    virtual bool MSWCommand(WXUINT param, WXWORD id);
     virtual void SetLabel(const wxString& label);
+
+    virtual bool MSWCommand(WXUINT param, WXWORD id);
     virtual void Command(wxCommandEvent& event);
 
 protected:
@@ -51,32 +57,5 @@ private:
     DECLARE_DYNAMIC_CLASS(wxCheckBox)
 };
 
-class WXDLLEXPORT wxBitmapCheckBox: public wxCheckBox
-{
-DECLARE_DYNAMIC_CLASS(wxBitmapCheckBox)
-
-public:
-    int checkWidth ;
-    int checkHeight ;
-
-    wxBitmapCheckBox() { checkWidth = -1; checkHeight = -1; }
-    wxBitmapCheckBox(wxWindow *parent, wxWindowID id, const wxBitmap *label,
-            const wxPoint& pos = wxDefaultPosition,
-            const wxSize& size = wxDefaultSize, long style = 0,
-            const wxValidator& validator = wxDefaultValidator,
-            const wxString& name = wxCheckBoxNameStr)
-    {
-        Create(parent, id, label, pos, size, style, validator, name);
-    }
-
-    bool Create(wxWindow *parent, wxWindowID id, const wxBitmap *bitmap,
-            const wxPoint& pos = wxDefaultPosition,
-            const wxSize& size = wxDefaultSize, long style = 0,
-            const wxValidator& validator = wxDefaultValidator,
-            const wxString& name = wxCheckBoxNameStr);
-
-    virtual void SetLabel(const wxBitmap& bitmap);
-};
-
 #endif
     // _WX_CHECKBOX_H_
diff --git a/include/wx/msw/checklst.h b/include/wx/msw/checklst.h
index 7b7db054e4..ffc70a0a51 100644
--- a/include/wx/msw/checklst.h
+++ b/include/wx/msw/checklst.h
@@ -64,7 +64,7 @@ public:
 protected:
   // we create our items ourselves and they have non-standard size,
   // so we need to override these functions
-  virtual wxOwnerDrawn *CreateItem(size_t n);
+  virtual wxOwnerDrawn *CreateLboxItem(size_t n);
   virtual bool          MSWOnMeasure(WXMEASUREITEMSTRUCT *item);
 
   // this can't be called DoHitTest() because wxWindow already has this method
diff --git a/include/wx/msw/dialog.h b/include/wx/msw/dialog.h
index 3a779079b4..2c3b5b2088 100644
--- a/include/wx/msw/dialog.h
+++ b/include/wx/msw/dialog.h
@@ -20,6 +20,8 @@
 
 WXDLLEXPORT_DATA(extern const wxChar*) wxDialogNameStr;
 
+class WXDLLEXPORT wxWindowDisabler;
+
 // Dialog boxes
 class WXDLLEXPORT wxDialog : public wxDialogBase
 {
@@ -115,7 +117,7 @@ private:
 
     // while we are showing a modal dialog we disable the other windows using
     // this object
-    class wxWindowDisabler *m_windowDisabler;
+    wxWindowDisabler *m_windowDisabler;
 
     DECLARE_DYNAMIC_CLASS(wxDialog)
     DECLARE_EVENT_TABLE()
diff --git a/include/wx/msw/filedlg.h b/include/wx/msw/filedlg.h
index e146c83928..f4637fcc78 100644
--- a/include/wx/msw/filedlg.h
+++ b/include/wx/msw/filedlg.h
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        filedlg.h
+// Name:        wx/msw/filedlg.h
 // Purpose:     wxFileDialog class
 // Author:      Julian Smart
 // Modified by:
@@ -28,12 +28,16 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxFileSelectorDefaultWildcardStr;
 class WXDLLEXPORT wxFileDialog: public wxDialog
 {
 public:
-    wxFileDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr,
-        const wxString& defaultDir = wxEmptyString, const wxString& defaultFile = wxEmptyString, const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
-        long style = 0, const wxPoint& pos = wxDefaultPosition);
+    wxFileDialog(wxWindow *parent,
+                 const wxString& message = wxFileSelectorPromptStr,
+                 const wxString& defaultDir = wxEmptyString,
+                 const wxString& defaultFile = wxEmptyString,
+                 const wxString& wildCard = wxFileSelectorDefaultWildcardStr,
+                 long style = 0,
+                 const wxPoint& pos = wxDefaultPosition);
 
     void SetMessage(const wxString& message) { m_message = message; }
-    void SetPath(const wxString& path) { m_path = path; }
+    void SetPath(const wxString& path);
     void SetDirectory(const wxString& dir) { m_dir = dir; }
     void SetFilename(const wxString& name) { m_fileName = name; }
     void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; }
@@ -50,7 +54,7 @@ public:
     long GetStyle() const { return m_dialogStyle; }
     int GetFilterIndex() const { return m_filterIndex ; }
 
-    int ShowModal();
+    virtual int ShowModal();
 
 protected:
     wxString      m_message;
diff --git a/include/wx/msw/font.h b/include/wx/msw/font.h
index 06c17b10b1..505e9970b9 100644
--- a/include/wx/msw/font.h
+++ b/include/wx/msw/font.h
@@ -90,11 +90,10 @@ public:
 
     virtual bool IsFree() const;
     virtual bool RealizeResource();
-    virtual WXHANDLE GetResourceHandle();
+    virtual WXHANDLE GetResourceHandle() const;
     virtual bool FreeResource(bool force = FALSE);
 
-    // for consistency with other wxMSW classes and to have a const
-    // GetResourceHandle()-like function we have a synonym for it
+    // for consistency with other wxMSW classes
     WXHFONT GetHFONT() const;
 
     /*
diff --git a/include/wx/msw/gdiimage.h b/include/wx/msw/gdiimage.h
index 0dca4c7931..3bf601dda4 100644
--- a/include/wx/msw/gdiimage.h
+++ b/include/wx/msw/gdiimage.h
@@ -180,7 +180,7 @@ public:
 
     // forward some of base class virtuals to wxGDIImageRefData
     bool FreeResource(bool force = FALSE);
-    virtual WXHANDLE GetResourceHandle();
+    virtual WXHANDLE GetResourceHandle() const;
 
 protected:
     // create the data for the derived class here
diff --git a/include/wx/msw/gdiobj.h b/include/wx/msw/gdiobj.h
index e7285541d1..7ea71fbec2 100644
--- a/include/wx/msw/gdiobj.h
+++ b/include/wx/msw/gdiobj.h
@@ -49,7 +49,7 @@ public:
     bool IsNull() const { return (m_refData == 0); }
 
     // Returns handle.
-    virtual WXHANDLE GetResourceHandle() { return 0; }
+    virtual WXHANDLE GetResourceHandle() const { return 0; }
 
     virtual bool GetVisible() { return m_visible; }
     virtual void SetVisible(bool v) { m_visible = v; }
diff --git a/include/wx/msw/glcanvas.h b/include/wx/msw/glcanvas.h
index 31301489e0..b8dab7af65 100644
--- a/include/wx/msw/glcanvas.h
+++ b/include/wx/msw/glcanvas.h
@@ -6,7 +6,7 @@
 // Created:     04/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:   	wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -16,10 +16,11 @@
 #ifndef _WX_GLCANVAS_H_
 #define _WX_GLCANVAS_H_
 
-#include <wx/palette.h>
-#include <wx/scrolwin.h>
+#include "wx/palette.h"
+#include "wx/scrolwin.h"
 
 #include <windows.h>
+#include "wx/msw/winundef.h"
 
 #include <GL/gl.h>
 
@@ -57,15 +58,15 @@ class WXDLLEXPORT wxGLContext: public wxObject
 {
 public:
    wxGLContext(bool isRGB, wxGLCanvas *win, const wxPalette& palette = wxNullPalette);
-   wxGLContext( 
-               bool isRGB, wxGLCanvas *win, 
+   wxGLContext(
+               bool isRGB, wxGLCanvas *win,
                const wxPalette& WXUNUSED(palette),
                const wxGLContext *other        /* for sharing display lists */
     );
    ~wxGLContext();
 
    void SetCurrent();
-   void SetColour(const char *colour);
+   void SetColour(const wxChar *colour);
    void SwapBuffers();
 
 
@@ -85,15 +86,16 @@ class WXDLLEXPORT wxGLCanvas: public wxWindow
  public:
    wxGLCanvas(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
         const wxSize& size = wxDefaultSize, long style = 0,
-        const wxString& name = "GLCanvas", int *attribList = 0, const wxPalette& palette = wxNullPalette);
+        const wxString& name = wxGLCanvasName, int *attribList = 0, const wxPalette& palette = wxNullPalette);
    wxGLCanvas( wxWindow *parent, const wxGLContext *shared = (wxGLContext *)NULL,
         wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition,
-        const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "GLCanvas", 
+        const wxSize& size = wxDefaultSize, long style = 0, const wxString&
+        name = wxGLCanvasName,
         int *attribList = (int*) NULL, const wxPalette& palette = wxNullPalette );
 
    wxGLCanvas( wxWindow *parent, const wxGLCanvas *shared = (wxGLCanvas *)NULL, wxWindowID id = -1,
-        const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, 
-        const wxString& name = "GLCanvas", int *attribList = 0, const wxPalette& palette = wxNullPalette );
+        const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0,
+        const wxString& name = wxGLCanvasName, int *attribList = 0, const wxPalette& palette = wxNullPalette );
 
    ~wxGLCanvas();
 
@@ -102,7 +104,7 @@ class WXDLLEXPORT wxGLCanvas: public wxWindow
           const wxPoint& pos, const wxSize& size, long style, const wxString& name);
 
    void SetCurrent();
-   void SetColour(const char *colour);
+   void SetColour(const wxChar *colour);
    void SwapBuffers();
 
    void OnSize(wxSizeEvent& event);
diff --git a/include/wx/msw/listbox.h b/include/wx/msw/listbox.h
index 0021cc304f..0c5161b91f 100644
--- a/include/wx/msw/listbox.h
+++ b/include/wx/msw/listbox.h
@@ -95,7 +95,7 @@ public:
     bool MSWOnDraw(WXDRAWITEMSTRUCT *item);
 
     // plug-in for derived classes
-    virtual wxOwnerDrawn *CreateItem(size_t n);
+    virtual wxOwnerDrawn *CreateLboxItem(size_t n);
 
     // allows to get the item and use SetXXX functions to set it's appearance
     wxOwnerDrawn *GetItem(size_t n) const { return m_aItems[n]; }
diff --git a/include/wx/msw/missing.h b/include/wx/msw/missing.h
index 7243690420..631006ba34 100644
--- a/include/wx/msw/missing.h
+++ b/include/wx/msw/missing.h
@@ -159,6 +159,19 @@ typedef struct tagNMLVDISPINFOW {
 #endif
 #endif
 
+#if defined(__GNUWIN32__) && !defined(HDN_GETDISPINFOW)
+#define HDN_GETDISPINFOW (HDN_FIRST-29)
+typedef struct {
+        NMHDR hdr;
+        int iItem;
+        UINT mask;
+        LPWSTR pszText;
+        int cchTextMax;
+        int iImage;
+        LPARAM lParam;
+} NMHDDISPINFOW, *LPNMHDDISPINFOW;
+#endif
+
 
 // ----------------------------------------------------------------------------
 // MS HTML Help
diff --git a/include/wx/msw/notebook.h b/include/wx/msw/notebook.h
index b26643862e..4fd14d30da 100644
--- a/include/wx/msw/notebook.h
+++ b/include/wx/msw/notebook.h
@@ -40,14 +40,14 @@ public:
              const wxPoint& pos = wxDefaultPosition,
              const wxSize& size = wxDefaultSize,
              long style = 0,
-             const wxString& name = "notebook");
+             const wxString& name = wxNOTEBOOK_NAME);
     // Create() function
   bool Create(wxWindow *parent,
               wxWindowID id,
               const wxPoint& pos = wxDefaultPosition,
               const wxSize& size = wxDefaultSize,
               long style = 0,
-              const wxString& name = "notebook");
+              const wxString& name = wxNOTEBOOK_NAME);
 
   // accessors
   // ---------
@@ -133,10 +133,8 @@ protected:
   // remove one page from the notebook, without deleting
   virtual wxNotebookPage *DoRemovePage(int nPage);
 
-  // helper functions
-  void ChangePage(int nOldSel, int nSel); // change pages
-
-  int m_nSelection;           // the current selection (-1 if none)
+  // the current selection (-1 if none)
+  int m_nSelection;
 
   DECLARE_DYNAMIC_CLASS(wxNotebook)
   DECLARE_EVENT_TABLE()
diff --git a/include/wx/msw/pen.h b/include/wx/msw/pen.h
index 3c56bdaa70..a653d39db0 100644
--- a/include/wx/msw/pen.h
+++ b/include/wx/msw/pen.h
@@ -89,7 +89,7 @@ public:
   // Internal
   bool RealizeResource();
   bool FreeResource(bool force = FALSE);
-  WXHANDLE GetResourceHandle() ;
+  WXHANDLE GetResourceHandle() const;
   bool IsFree() const;
   void Unshare();
 };
diff --git a/include/wx/msw/region.h b/include/wx/msw/region.h
index 72f8dfcd02..bb1e56cea6 100644
--- a/include/wx/msw/region.h
+++ b/include/wx/msw/region.h
@@ -5,7 +5,7 @@
 // Modified by:
 // Created:     01/02/97
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart
+// Copyright:   (c) 1997-2002 wxWindows team
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
@@ -13,10 +13,9 @@
 #define _WX_REGION_H_
 
 #ifdef __GNUG__
-#pragma interface "region.h"
+    #pragma interface "region.h"
 #endif
 
-#include "wx/list.h"
 #include "wx/gdiobj.h"
 #include "wx/gdicmn.h"
 
@@ -93,11 +92,11 @@ public:
 
     // Outer bounds of region
     void GetBox(wxCoord& x, wxCoord& y, wxCoord&w, wxCoord &h) const;
-    wxRect GetBox(void) const ;
+    wxRect GetBox() const ;
 
     // Is region empty?
-    bool Empty(void) const;
-    inline bool IsEmpty(void) const { return Empty(); }
+    bool Empty() const;
+    inline bool IsEmpty() const { return Empty(); }
 
     // Tests
     // Does the region contain the point (x,y)?
@@ -129,31 +128,39 @@ protected:
 class WXDLLEXPORT wxRegionIterator : public wxObject
 {
 public:
-    wxRegionIterator(void);
+    wxRegionIterator() { Init(); }
     wxRegionIterator(const wxRegion& region);
-    ~wxRegionIterator(void);
+    wxRegionIterator(const wxRegionIterator& ri) { Init(); *this = ri; }
 
-    void Reset(void) { m_current = 0; }
+    wxRegionIterator& operator=(const wxRegionIterator& ri);
+
+    virtual ~wxRegionIterator();
+
+    void Reset() { m_current = 0; }
     void Reset(const wxRegion& region);
 
+    bool HaveRects() const { return (m_current < m_numRects); }
+
 #ifndef __SALFORDC__
-    operator bool (void) const { return (m_current < m_numRects); }
+    operator bool () const { return HaveRects(); }
 #endif
 
-    bool HaveRects(void) const { return (m_current < m_numRects); }
+    wxRegionIterator& operator++();
+    wxRegionIterator operator++(int);
 
-    void operator ++ (void);
-    void operator ++ (int);
+    wxCoord GetX() const;
+    wxCoord GetY() const;
+    wxCoord GetW() const;
+    wxCoord GetWidth() const { return GetW(); }
+    wxCoord GetH() const;
+    wxCoord GetHeight() const { return GetH(); }
 
-    wxCoord GetX(void) const;
-    wxCoord GetY(void) const;
-    wxCoord GetW(void) const;
-    wxCoord GetWidth(void) const { return GetW(); }
-    wxCoord GetH(void) const;
-    wxCoord GetHeight(void) const { return GetH(); }
-    wxRect GetRect() const { return wxRect(GetX(), GetY(), GetWidth(), GetHeight()); }
+    wxRect GetRect() const { return wxRect(GetX(), GetY(), GetW(), GetH()); }
 
 private:
+    // common part of all ctors
+    void Init();
+
     long     m_current;
     long     m_numRects;
     wxRegion m_region;
diff --git a/include/wx/msw/setup0.h b/include/wx/msw/setup0.h
index 10ad566b6d..bb0e917728 100644
--- a/include/wx/msw/setup0.h
+++ b/include/wx/msw/setup0.h
@@ -44,12 +44,12 @@
 // Recommended setting: 0 (please update your code instead!)
 #define WXWIN_COMPATIBILITY_2 0
 
-// This setting determines the compatibility with 2.0 API: set it to 1 to
-// enable it
+// This setting determines the compatibility with 2.2 API: set it to 0 to
+// flag all cases of using deprecated functions.
 //
-// Default is 1.
+// Default is 1 but please try building your code with 0.
 //
-// Recommended setting: 0 (please update your code instead!)
+// Recommended setting: 0 (please update your code)
 #define WXWIN_COMPATIBILITY_2_2 1
 
 // in wxMSW version 2.1.11 and earlier, wxIcon always derives from wxBitmap,
@@ -209,13 +209,6 @@
 // Recommended setting: 1 (always)
 #define wxUSE_LOG 1
 
-// Support for command line parsing using wxCmdLineParser class.
-//
-// Default is 1
-//
-// Recommended setting: 1 (can be set to 0 if you don't use the cmd line)
-#define wxUSE_CMDLINE_PARSER 1
-
 // Recommended setting: 1
 #define wxUSE_LOGWINDOW 1
 
@@ -225,6 +218,13 @@
 // Recommended setting: 1
 #define wxUSE_LOG_DIALOG 1
 
+// Support for command line parsing using wxCmdLineParser class.
+//
+// Default is 1
+//
+// Recommended setting: 1 (can be set to 0 if you don't use the cmd line)
+#define wxUSE_CMDLINE_PARSER 1
+
 // Support for multithreaded applications: if 1, compile in thread classes
 // (thread.h) and make the library a bit more thread safe. Although thread
 // support is quite stable by now, you may still consider recompiling the
@@ -768,7 +768,15 @@
 // smaller library.
 #define wxUSE_HTML          1
 
-// OpenGL canvas
+// Setting wxUSE_GLCANVAS to 1 enables OpenGL support. You need to have OpenGL
+// headers and libraries to be able to compile the library with wxUSE_GLCANVAS
+// set to 1. Note that for some compilers (notably Microsoft Visual C++) you
+// will need to manually add opengl32.lib and glu32.lib to the list of
+// libraries linked with your program if you use OpenGL.
+//
+// Default is 0.
+//
+// Recommended setting: 1 if you intend to use OpenGL, 0 otherwise
 #define wxUSE_GLCANVAS       0
 
 // wxTreeLayout class
@@ -846,8 +854,12 @@
 #define wxUSE_RESOURCE_LOADING_IN_MSW     1
                                 // Use dynamic icon/cursor loading/saving code
                                 // under MSW.
-#define wxUSE_WX_RESOURCES        1
-                                // Use .wxr resource mechanism (requires PrologIO library)
+
+// use wxExpr (a.k.a. PrologIO)
+#define wxUSE_PROLOGIO          0
+
+// Use .wxr resource mechanism (requires PrologIO library)
+#define wxUSE_WX_RESOURCES      0
 
 #define wxUSE_MOUSEWHEEL        1
                                 // Include mouse wheel support
diff --git a/include/wx/msw/stattext.h b/include/wx/msw/stattext.h
index 29561640a9..20c49b73a4 100644
--- a/include/wx/msw/stattext.h
+++ b/include/wx/msw/stattext.h
@@ -48,7 +48,6 @@ protected:
     virtual void DoSetSize(int x, int y, int w, int h,
                            int sizeFlags = wxSIZE_AUTO);
     virtual wxSize DoGetBestSize() const;
-    virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
 
     DECLARE_DYNAMIC_CLASS(wxStaticText)
 };
diff --git a/include/wx/msw/tabctrl.h b/include/wx/msw/tabctrl.h
index d1985bfddd..014ea3167b 100644
--- a/include/wx/msw/tabctrl.h
+++ b/include/wx/msw/tabctrl.h
@@ -40,7 +40,7 @@ class WXDLLEXPORT wxTabCtrl: public wxControl
     wxTabCtrl();
 
     inline wxTabCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
-            long style = 0, const wxString& name = "tabCtrl")
+            long style = 0, const wxString& name = wxT("tabCtrl"))
     {
         Create(parent, id, pos, size, style, name);
     }
@@ -99,7 +99,7 @@ class WXDLLEXPORT wxTabCtrl: public wxControl
 // Operations
 
     bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
-                long style = 0, const wxString& name = "tabCtrl");
+                long style = 0, const wxString& name = wxT("tabCtrl"));
 
     // Delete all items
     bool DeleteAllItems();
@@ -126,12 +126,30 @@ protected:
 DECLARE_EVENT_TABLE()
 };
 
-class WXDLLEXPORT wxTabEvent: public wxCommandEvent
+class WXDLLEXPORT wxTabEvent : public wxNotifyEvent
 {
-  DECLARE_DYNAMIC_CLASS(wxTabEvent)
-
- public:
-  wxTabEvent(wxEventType commandType = wxEVT_NULL, int id = 0);
+public:
+    wxTabEvent(wxEventType commandType = wxEVT_NULL, int id = 0,
+                    int nSel = -1, int nOldSel = -1)
+        : wxNotifyEvent(commandType, id)
+        {
+            m_nSel = nSel;
+            m_nOldSel = nOldSel;
+        }
+
+    // accessors
+        // the currently selected page (-1 if none)
+    int GetSelection() const { return m_nSel; }
+    void SetSelection(int nSel) { m_nSel = nSel; }
+        // the page that was selected before the change (-1 if none)
+    int GetOldSelection() const { return m_nOldSel; }
+    void SetOldSelection(int nOldSel) { m_nOldSel = nOldSel; }
+
+private:
+    int m_nSel,     // currently selected page
+        m_nOldSel;  // previously selected page
+
+    DECLARE_DYNAMIC_CLASS(wxTabEvent)
 };
 
 typedef void (wxEvtHandler::*wxTabEventFunction)(wxTabEvent&);
diff --git a/include/wx/msw/taskbar.h b/include/wx/msw/taskbar.h
index b93a400944..2da54b6894 100644
--- a/include/wx/msw/taskbar.h
+++ b/include/wx/msw/taskbar.h
@@ -33,7 +33,7 @@ public:
     inline bool IsIconInstalled() const { return m_iconAdded; }
 
 // Operations
-    bool SetIcon(const wxIcon& icon, const wxString& tooltip = "");
+    bool SetIcon(const wxIcon& icon, const wxString& tooltip = wxEmptyString);
     bool RemoveIcon(void);
     bool PopupMenu(wxMenu *menu); //, int x, int y);
 
diff --git a/include/wx/msw/textctrl.h b/include/wx/msw/textctrl.h
index 283e86b826..1ac33d3ad2 100644
--- a/include/wx/msw/textctrl.h
+++ b/include/wx/msw/textctrl.h
@@ -35,6 +35,7 @@ public:
 
         Create(parent, id, value, pos, size, style, validator, name);
     }
+    ~wxTextCtrl();
 
     bool Create(wxWindow *parent, wxWindowID id,
                 const wxString& value = wxEmptyString,
@@ -167,12 +168,20 @@ public:
     void OnPaste(wxCommandEvent& event);
     void OnUndo(wxCommandEvent& event);
     void OnRedo(wxCommandEvent& event);
+    void OnDelete(wxCommandEvent& event);
+    void OnSelectAll(wxCommandEvent& event);
 
     void OnUpdateCut(wxUpdateUIEvent& event);
     void OnUpdateCopy(wxUpdateUIEvent& event);
     void OnUpdatePaste(wxUpdateUIEvent& event);
     void OnUpdateUndo(wxUpdateUIEvent& event);
     void OnUpdateRedo(wxUpdateUIEvent& event);
+    void OnUpdateDelete(wxUpdateUIEvent& event);
+    void OnUpdateSelectAll(wxUpdateUIEvent& event);
+
+    // Show a context menu for Rich Edit controls (the standard
+    // EDIT control has one already)
+    void OnRightClick(wxMouseEvent& event);
 
 protected:
     // common part of all ctors
@@ -203,6 +212,9 @@ protected:
     // set the selection possibly without scrolling the caret into view
     void DoSetSelection(long from, long to, bool scrollCaret = TRUE);
 
+    // return true if there is a non empty selection in the control
+    bool HasSelection() const;
+
     // get the length of the line containing the character at the given
     // position
     long GetLengthOfLineContainingPos(long pos) const;
@@ -221,15 +233,17 @@ protected:
     // 0, it also gives the version of the RICHEDIT control being used (1, 2 or
     // 3 so far)
     int m_verRichEdit;
+#endif // wxUSE_RICHEDIT
 
     // if TRUE, SendUpdateEvent() will eat the next event (see comments in the
     // code as to why this is needed)
     bool m_suppressNextUpdate;
-#endif // wxUSE_RICHEDIT
 
 private:
     DECLARE_EVENT_TABLE()
     DECLARE_DYNAMIC_CLASS(wxTextCtrl)
+
+    wxMenu* m_privateContextMenu;
 };
 
 #endif
diff --git a/include/wx/msw/toplevel.h b/include/wx/msw/toplevel.h
index d09a48ce0a..202983d285 100644
--- a/include/wx/msw/toplevel.h
+++ b/include/wx/msw/toplevel.h
@@ -119,10 +119,6 @@ protected:
     // the last focused child: we restore focus to it on activation
     wxWindow             *m_winLastFocused;
 
-    // the hidden parent window for the frames which shouldn't appear in the
-    // taskbar
-    static wxWindow *ms_hiddenParent;
-
     DECLARE_EVENT_TABLE()
 };
 
diff --git a/include/wx/msw/treectrl.h b/include/wx/msw/treectrl.h
index dd1deab918..68062889b5 100644
--- a/include/wx/msw/treectrl.h
+++ b/include/wx/msw/treectrl.h
@@ -76,7 +76,7 @@ public:
                const wxSize& size = wxDefaultSize,
                long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,
                const wxValidator& validator = wxDefaultValidator,
-               const wxString& name = "wxTreeCtrl")
+               const wxString& name = wxTreeCtrlNameStr)
     {
         Create(parent, id, pos, size, style, validator, name);
     }
@@ -88,7 +88,7 @@ public:
                 const wxSize& size = wxDefaultSize,
                 long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT,
                 const wxValidator& validator = wxDefaultValidator,
-                const wxString& name = "wxTreeCtrl");
+                const wxString& name = wxTreeCtrlNameStr);
 
     // accessors
     // ---------
@@ -141,6 +141,15 @@ public:
         // get the data associated with the item
     wxTreeItemData *GetItemData(const wxTreeItemId& item) const;
 
+        // get the item's text colour
+    wxColour GetItemTextColour(const wxTreeItemId& item) const;
+
+        // get the item's background colour
+    wxColour GetItemBackgroundColour(const wxTreeItemId& item) const;
+
+        // get the item's font
+    wxFont GetItemFont(const wxTreeItemId& item) const;
+
     // modifiers
     // ---------
 
diff --git a/include/wx/msw/winundef.h b/include/wx/msw/winundef.h
index af1cc51108..d1d9610808 100644
--- a/include/wx/msw/winundef.h
+++ b/include/wx/msw/winundef.h
@@ -58,6 +58,21 @@
     }
 #endif
 
+// FindText
+
+#ifdef FindText
+    #undef FindText
+
+    inline HWND APIENTRY FindText(LPFINDREPLACE lpfindreplace)
+    {
+        #ifdef UNICODE
+            return FindTextW(lpfindreplace);
+        #else
+            return FindTextA(lpfindreplace);
+        #endif // !UNICODE
+    }
+#endif
+
 // GetCharWidth
 
 #ifdef GetCharWidth
diff --git a/include/wx/msw/wx.rc b/include/wx/msw/wx.rc
index b1dc54050d..da439acd9b 100644
--- a/include/wx/msw/wx.rc
+++ b/include/wx/msw/wx.rc
@@ -98,12 +98,7 @@ wxICON_SMALL_REMOVEABLE         ICON "wx/msw/removble.ico"
 // Bitmaps
 //
 
-#ifdef __SALFORDC__
-wxDISABLE_BUTTON_BITMAP         BITMAP  WXINCDIR"wx/msw/disable.bmp"
-#else
 wxDISABLE_BUTTON_BITMAP         BITMAP  "wx/msw/disable.bmp"
-#endif
-
 
 // For wxContextHelpButton
 csquery                 BITMAP "wx/msw/csquery.bmp"
diff --git a/include/wx/object.h b/include/wx/object.h
index 4fcb3c178c..be4a7bbc3f 100644
--- a/include/wx/object.h
+++ b/include/wx/object.h
@@ -501,7 +501,7 @@ protected:
 
 class WXDLLEXPORT wxObjectRefData
 {
-    friend class wxObject;
+    friend class WXDLLEXPORT wxObject;
 
 public:
     wxObjectRefData() : m_count(1) { }
diff --git a/include/wx/os2/notebook.h b/include/wx/os2/notebook.h
index 68fc28013b..4adaa2c64f 100644
--- a/include/wx/os2/notebook.h
+++ b/include/wx/os2/notebook.h
@@ -189,9 +189,6 @@ protected:
     //
     // Helper functions
     //
-            void            ChangePage( int nOldSel
-                                       ,int nSel
-                                      ); // change pages
 
     int                     m_nSelection; // The current selection (-1 if none)
 
diff --git a/include/wx/os2/setup0.h b/include/wx/os2/setup0.h
index 700bab6e27..38bba247cc 100644
--- a/include/wx/os2/setup0.h
+++ b/include/wx/os2/setup0.h
@@ -398,5 +398,10 @@
 #define wxUSE_PROTOCOL_FTP      1
 #define wxUSE_PROTOCOL_FILE     1
 
+#define wxUSE_GENERIC_MDI_AS_NATIVE 1
+
+// use wxExpr (a.k.a. PrologIO)
+#define wxUSE_PROLOGIO          1
+
 #endif
     // _WX_SETUP_H_
diff --git a/include/wx/os2/textctrl.h b/include/wx/os2/textctrl.h
index 8770ddbda2..9eb7c15000 100644
--- a/include/wx/os2/textctrl.h
+++ b/include/wx/os2/textctrl.h
@@ -30,6 +30,7 @@ public:
     {
         Create(pParent, vId, rsValue, rPos, rSize, lStyle, rValidator, rsName);
     }
+    ~wxTextCtrl();
 
     bool Create( wxWindow*          pParent
                 ,wxWindowID         vId
@@ -154,12 +155,16 @@ public:
     void OnPaste(wxCommandEvent& rEvent);
     void OnUndo(wxCommandEvent& rEvent);
     void OnRedo(wxCommandEvent& rEvent);
+    void OnDelete(wxCommandEvent& rEvent);
+    void OnSelectAll(wxCommandEvent& rEvent);
 
     void OnUpdateCut(wxUpdateUIEvent& rEvent);
     void OnUpdateCopy(wxUpdateUIEvent& rEvent);
     void OnUpdatePaste(wxUpdateUIEvent& rEvent);
     void OnUpdateUndo(wxUpdateUIEvent& rEvent);
     void OnUpdateRedo(wxUpdateUIEvent& rEvent);
+    void OnUpdateDelete(wxUpdateUIEvent& rEvent);
+    void OnUpdateSelectAll(wxUpdateUIEvent& rEvent);
 
     inline bool IsMLE(void) {return m_bIsMLE;}
     inline void SetMLE(bool bIsMLE) {m_bIsMLE = bIsMLE;}
diff --git a/include/wx/print.h b/include/wx/print.h
index 801dea98ae..31c9588da2 100644
--- a/include/wx/print.h
+++ b/include/wx/print.h
@@ -1,7 +1,7 @@
 #ifndef _WX_PRINT_H_BASE_
 #define _WX_PRINT_H_BASE_
 
-#if defined(__WXMSW__)
+#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
 #include "wx/msw/printwin.h"
 
 #ifndef wxPrinter
diff --git a/include/wx/printdlg.h b/include/wx/printdlg.h
index 36c7cc1e58..1e72c149f7 100644
--- a/include/wx/printdlg.h
+++ b/include/wx/printdlg.h
@@ -1,7 +1,9 @@
 #ifndef _WX_PRINTDLG_H_BASE_
 #define _WX_PRINTDLG_H_BASE_
 
-#if defined(__WXMSW__)
+#if defined(__WXUNIVERSAL__)
+#include "wx/generic/prntdlgg.h"
+#elif defined(__WXMSW__)
 #include "wx/msw/printdlg.h"
 #elif defined(__WXMOTIF__)
 #include "wx/generic/prntdlgg.h"
@@ -19,7 +21,7 @@
 #include "wx/generic/prntdlgg.h"
 #endif
 
-#if !defined(__WXMSW__) && !defined(__WXMAC__)
+#if defined(__WXUNIVERSAL__) || (!defined(__WXMSW__) && !defined(__WXMAC__))
 #define wxPrintDialog wxGenericPrintDialog
 #define sm_classwxPrintDialog sm_classwxGenericPrintDialog
 
diff --git a/include/wx/prntbase.h b/include/wx/prntbase.h
index 688a957481..d8357cb11b 100644
--- a/include/wx/prntbase.h
+++ b/include/wx/prntbase.h
@@ -53,8 +53,6 @@ enum wxPrinterError
 
 class WXDLLEXPORT wxPrinterBase: public wxObject
 {
-    DECLARE_CLASS(wxPrinterBase)
-
 public:
     wxPrinterBase(wxPrintDialogData *data = (wxPrintDialogData *) NULL);
     virtual ~wxPrinterBase();
@@ -85,6 +83,8 @@ public:
     static wxWindow*      sm_abortWindow;
     static bool           sm_abortIt;
 
+private:
+    DECLARE_CLASS(wxPrinterBase)
 };
 
 /*
@@ -97,10 +97,8 @@ public:
 
 class WXDLLEXPORT wxPrintout: public wxObject
 {
-DECLARE_ABSTRACT_CLASS(wxPrintout)
-
 public:
-    wxPrintout(const wxString& title = "Printout");
+    wxPrintout(const wxString& title = wxT("Printout"));
     virtual ~wxPrintout();
 
     virtual bool OnBeginDocument(int startPage, int endPage);
@@ -149,6 +147,9 @@ private:
     int              m_PPIPrinterY;
 
     bool             m_isPreview;
+
+private:
+    DECLARE_ABSTRACT_CLASS(wxPrintout)
 };
 
 /*
@@ -158,15 +159,13 @@ private:
 
 class WXDLLEXPORT wxPreviewCanvas: public wxScrolledWindow
 {
-    DECLARE_CLASS(wxPreviewCanvas)
-
 public:
     wxPreviewCanvas(wxPrintPreviewBase *preview,
                     wxWindow *parent,
                     const wxPoint& pos = wxDefaultPosition,
                     const wxSize& size = wxDefaultSize,
                     long style = 0,
-                    const wxString& name = "canvas");
+                    const wxString& name = wxT("canvas"));
     ~wxPreviewCanvas();
 
     void OnPaint(wxPaintEvent& event);
@@ -177,6 +176,7 @@ public:
 private:
     wxPrintPreviewBase* m_printPreview;
 
+    DECLARE_CLASS(wxPreviewCanvas)
     DECLARE_EVENT_TABLE()
 };
 
@@ -187,16 +187,14 @@ private:
 
 class WXDLLEXPORT wxPreviewFrame: public wxFrame
 {
-    DECLARE_CLASS(wxPreviewFrame)
-
 public:
     wxPreviewFrame(wxPrintPreviewBase *preview,
                    wxFrame *parent,
-                   const wxString& title = "Print Preview",
+                   const wxString& title = wxT("Print Preview"),
                    const wxPoint& pos = wxDefaultPosition,
                    const wxSize& size = wxDefaultSize,
                    long style = wxDEFAULT_FRAME_STYLE,
-                   const wxString& name = "frame");
+                   const wxString& name = wxT("frame"));
     ~wxPreviewFrame();
 
     void OnCloseWindow(wxCloseEvent& event);
@@ -209,6 +207,7 @@ protected:
     wxPrintPreviewBase*   m_printPreview;
 
 private:
+    DECLARE_CLASS(wxPreviewFrame)
     DECLARE_EVENT_TABLE()
 };
 
@@ -251,7 +250,7 @@ public:
                         const wxPoint& pos = wxDefaultPosition,
                         const wxSize& size = wxDefaultSize,
                         long style = 0,
-                        const wxString& name = "panel");
+                        const wxString& name = wxT("panel"));
     ~wxPreviewControlBar();
 
     virtual void CreateButtons();
@@ -392,7 +391,7 @@ public:
                        const wxPoint& pos = wxDefaultPosition,
                        const wxSize& size = wxDefaultSize,
                        long style = 0,
-                       const wxString& name = "dialog")
+                       const wxString& name = wxT("dialog"))
         : wxDialog(parent, -1, title, pos, size, style, name)
         {
         }
diff --git a/include/wx/prop.h b/include/wx/prop.h
index 6ddf2f3b5f..efc9573399 100644
--- a/include/wx/prop.h
+++ b/include/wx/prop.h
@@ -43,44 +43,47 @@ class wxPropertyValidatorRegistry;
 // A storable sheet of values
 class WXDLLEXPORT wxPropertySheet: public wxObject
 {
- DECLARE_DYNAMIC_CLASS(wxPropertySheet)
- public:
-  wxPropertySheet(const wxString& name = "");
-  ~wxPropertySheet(void);
+public:
+    wxPropertySheet(const wxString& name = wxT(""));
+    ~wxPropertySheet();
 
-  // Set the name of the sheet
-  inline virtual void SetName(const wxString& name) { m_name=name; }
-  inline virtual wxString GetName() const { return m_name; }
-  // Does this sheet contain a property with this name
-  virtual bool HasProperty(const wxString& name) const;
+    // Set the name of the sheet
+    inline virtual void SetName(const wxString& name) { m_name=name; }
+    inline virtual wxString GetName() const { return m_name; }
+    
+    // Does this sheet contain a property with this name
+    virtual bool HasProperty(const wxString& name) const;
 
-  // Set property name to value
-  virtual bool SetProperty(const wxString& name, const wxPropertyValue& value);
+    // Set property name to value
+    virtual bool SetProperty(const wxString& name, const wxPropertyValue& value);
 
-  // Remove property from sheet by name, deleting it
-  virtual void RemoveProperty(const wxString& name);
+    // Remove property from sheet by name, deleting it
+    virtual void RemoveProperty(const wxString& name);
 
-  // Get the name of the sheet
-  // Add a property
-  virtual void AddProperty(wxProperty *property);
+    // Get the name of the sheet
+    // Add a property
+    virtual void AddProperty(wxProperty *property);
 
-  // Get property by name
-  virtual wxProperty *GetProperty(const wxString& name) const;
+    // Get property by name
+    virtual wxProperty *GetProperty(const wxString& name) const;
 
-  // Clear all properties
-  virtual void Clear(void);
+    // Clear all properties
+    virtual void Clear();
 
-  virtual void UpdateAllViews(wxPropertyView *thisView = NULL);
-  inline virtual wxList& GetProperties(void) const { return (wxList&) m_properties; }
+    virtual void UpdateAllViews(wxPropertyView *thisView = NULL);
+    inline virtual wxList& GetProperties() const { return (wxList&) m_properties; }
   
-  // Sets/clears the modified flag for each property value
-  virtual void SetAllModified(bool flag = TRUE);
-
- protected:
-  wxObject*         m_viewedObject;
-  wxList            m_properties;
-  wxPropertyView*   m_propertyView;
-  wxString			m_name;
+    // Sets/clears the modified flag for each property value
+    virtual void SetAllModified(bool flag = TRUE);
+
+protected:
+    wxObject*         m_viewedObject;
+    wxList            m_properties;
+    wxPropertyView*   m_propertyView;
+    wxString			m_name;
+  
+private:
+    DECLARE_DYNAMIC_CLASS(wxPropertySheet)
 };
 
 
@@ -88,71 +91,69 @@ class WXDLLEXPORT wxPropertySheet: public wxObject
 // classes: wxPropertyListView, and wxPropertyFormView.
 class WXDLLEXPORT wxPropertyView: public wxEvtHandler
 {
- DECLARE_DYNAMIC_CLASS(wxPropertyView)
- public:
-  wxPropertyView(long flags = 0);
-  ~wxPropertyView(void);
-
-  // Associates and shows the view
-  virtual void ShowView(wxPropertySheet *WXUNUSED(propertySheet), wxWindow *WXUNUSED(panel)) {}
-
-  // Update this view of the viewed object, called e.g. by
-  // the object itself.
-  virtual bool OnUpdateView(void) {return FALSE;};
-
-  // Override this to do something as soon as the property changed,
-  // if the view and validators support it.
-  virtual void OnPropertyChanged(wxProperty *WXUNUSED(property)) {}
-
-  virtual void AddRegistry(wxPropertyValidatorRegistry *registry);
-  inline virtual wxList& GetRegistryList(void) const
-   { return (wxList&) m_validatorRegistryList; }
-
-  virtual wxPropertyValidator *FindPropertyValidator(wxProperty *property);
-  inline virtual void SetPropertySheet(wxPropertySheet *sheet) { m_propertySheet = sheet; }
-  inline virtual wxPropertySheet *GetPropertySheet(void) const { return m_propertySheet; }
-
-/*
-  virtual void OnOk(void) {};
-  virtual void OnCancel(void) {};
-  virtual void OnHelp(void) {};
-*/
-
-  inline virtual bool OnClose(void) { return FALSE; }
-  inline long GetFlags(void) { return m_buttonFlags; }
-
- protected:
-  long                  m_buttonFlags;
-  wxPropertySheet*      m_propertySheet;
-  wxProperty*           m_currentProperty;
-  wxList                m_validatorRegistryList;
-  wxPropertyValidator*  m_currentValidator;
+public:
+    wxPropertyView(long flags = 0);
+    ~wxPropertyView();
+
+    // Associates and shows the view
+    virtual void ShowView(wxPropertySheet *WXUNUSED(propertySheet), wxWindow *WXUNUSED(panel)) {}
+
+    // Update this view of the viewed object, called e.g. by
+    // the object itself.
+    virtual bool OnUpdateView() {return FALSE;};
+
+    // Override this to do something as soon as the property changed,
+    // if the view and validators support it.
+    virtual void OnPropertyChanged(wxProperty *WXUNUSED(property)) {}
+
+    virtual void AddRegistry(wxPropertyValidatorRegistry *registry);
+    inline virtual wxList& GetRegistryList() const
+        { return (wxList&) m_validatorRegistryList; }
+
+    virtual wxPropertyValidator *FindPropertyValidator(wxProperty *property);
+    inline virtual void SetPropertySheet(wxPropertySheet *sheet) { m_propertySheet = sheet; }
+    inline virtual wxPropertySheet *GetPropertySheet() const { return m_propertySheet; }
+
+    inline virtual bool OnClose() { return FALSE; }
+    inline long GetFlags(void) { return m_buttonFlags; }
+
+protected:
+    long                  m_buttonFlags;
+    wxPropertySheet*      m_propertySheet;
+    wxProperty*           m_currentProperty;
+    wxList                m_validatorRegistryList;
+    wxPropertyValidator*  m_currentValidator;
+  
+private:
+    DECLARE_DYNAMIC_CLASS(wxPropertyView)
 };
 
 
 class WXDLLEXPORT wxPropertyValidator: public wxEvtHandler
 {
-  DECLARE_DYNAMIC_CLASS(wxPropertyValidator)
- public:
-  wxPropertyValidator(long flags = 0);
-  ~wxPropertyValidator(void);
-
-  inline long GetFlags(void) const { return m_validatorFlags; }
-  inline void SetValidatorProperty(wxProperty *prop) { m_validatorProperty = prop; }
-  inline wxProperty *GetValidatorProperty(void) const { return m_validatorProperty; }
-
-  virtual bool StringToFloat (wxChar *s, float *number);
-  virtual bool StringToDouble (wxChar *s, double *number);
-  virtual bool StringToInt (wxChar *s, int *number);
-  virtual bool StringToLong (wxChar *s, long *number);
-  virtual wxChar *FloatToString (float number);
-  virtual wxChar *DoubleToString (double number);
-  virtual wxChar *IntToString (int number);
-  virtual wxChar *LongToString (long number);
-
- protected:
-  long          m_validatorFlags;
-  wxProperty*   m_validatorProperty;
+public:
+    wxPropertyValidator(long flags = 0);
+    ~wxPropertyValidator();
+
+    inline long GetFlags() const { return m_validatorFlags; }
+    inline void SetValidatorProperty(wxProperty *prop) { m_validatorProperty = prop; }
+    inline wxProperty *GetValidatorProperty(void) const { return m_validatorProperty; }
+
+    virtual bool StringToFloat (wxChar *s, float *number);
+    virtual bool StringToDouble (wxChar *s, double *number);
+    virtual bool StringToInt (wxChar *s, int *number);
+    virtual bool StringToLong (wxChar *s, long *number);
+    virtual wxChar *FloatToString (float number);
+    virtual wxChar *DoubleToString (double number);
+    virtual wxChar *IntToString (int number);
+    virtual wxChar *LongToString (long number);
+
+protected:
+    long          m_validatorFlags;
+    wxProperty*   m_validatorProperty;
+  
+private:
+    DECLARE_DYNAMIC_CLASS(wxPropertyValidator)
 };
 
 
@@ -160,14 +161,16 @@ class WXDLLEXPORT wxPropertyValidator: public wxEvtHandler
 
 class WXDLLEXPORT wxPropertyValidatorRegistry: public wxHashTable
 {
-  DECLARE_DYNAMIC_CLASS(wxPropertyValidatorRegistry)
- public:
-  wxPropertyValidatorRegistry(void);
-  ~wxPropertyValidatorRegistry(void);
+public:
+    wxPropertyValidatorRegistry();
+    ~wxPropertyValidatorRegistry();
 
-  virtual void RegisterValidator(const wxString& roleName, wxPropertyValidator *validator);
-  virtual wxPropertyValidator *GetValidator(const wxString& roleName);
-  void ClearRegistry(void);
+    virtual void RegisterValidator(const wxString& roleName, wxPropertyValidator *validator);
+    virtual wxPropertyValidator *GetValidator(const wxString& roleName);
+    void ClearRegistry();
+  
+private:
+    DECLARE_DYNAMIC_CLASS(wxPropertyValidatorRegistry)
 };
 
 /*
diff --git a/include/wx/proplist.h b/include/wx/proplist.h
index b21f36aa09..72e0fad5fd 100644
--- a/include/wx/proplist.h
+++ b/include/wx/proplist.h
@@ -78,8 +78,7 @@
 // Mediates between a physical panel and the property sheet
 class WXDLLEXPORT wxPropertyListView: public wxPropertyView
 {
- DECLARE_DYNAMIC_CLASS(wxPropertyListView)
- public:
+public:
   wxPropertyListView(wxPanel *propPanel = NULL, long flags = wxPROP_BUTTON_DEFAULT);
   ~wxPropertyListView(void);
 
@@ -186,10 +185,12 @@ public:
   wxButton*         m_windowCancelButton;
   wxButton*         m_windowHelpButton;
 
-DECLARE_EVENT_TABLE()
 private:
-  virtual void ShowView(wxPropertySheet *propertySheet, wxWindow *window)
-  { wxPropertyView::ShowView(propertySheet, window); };
+    DECLARE_DYNAMIC_CLASS(wxPropertyListView)
+    DECLARE_EVENT_TABLE()
+    
+    virtual void ShowView(wxPropertySheet *propertySheet, wxWindow *window)
+        { wxPropertyView::ShowView(propertySheet, window); };
 };
 
 class WXDLLEXPORT wxPropertyTextEdit: public wxTextCtrl
@@ -202,13 +203,14 @@ public:
                        const wxPoint& pos = wxDefaultPosition,
                        const wxSize& size = wxDefaultSize,
                        long style = 0,
-                       const wxString& name = _T("text"));
+                       const wxString& name = wxT("text"));
 
     void OnSetFocus();
     void OnKillFocus();
 
     wxPropertyListView* m_view;
 
+private:
     DECLARE_CLASS(wxPropertyTextEdit)
 };
 
@@ -220,11 +222,9 @@ public:
 
 class WXDLLEXPORT wxPropertyListValidator: public wxPropertyValidator
 {
-  DECLARE_DYNAMIC_CLASS(wxPropertyListValidator)
- protected:
- public:
+public:
    wxPropertyListValidator(long flags = wxPROP_ALLOW_TEXT_EDITING): wxPropertyValidator(flags) { }
-   ~wxPropertyListValidator(void) {}
+   ~wxPropertyListValidator() {}
 
    // Called when the property is selected or deselected: typically displays the value
    // in the edit control (having chosen a suitable control to display: (non)editable text or listbox)
@@ -274,6 +274,9 @@ class WXDLLEXPORT wxPropertyListValidator: public wxPropertyValidator
    virtual bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 
    virtual bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+   
+private:
+    DECLARE_DYNAMIC_CLASS(wxPropertyListValidator)
 };
 
 /*
@@ -289,7 +292,7 @@ public:
                          const wxPoint& pos = wxDefaultPosition,
                          const wxSize& size = wxDefaultSize,
                          long style = wxDEFAULT_DIALOG_STYLE,
-                         const wxString& name = _T("dialogBox"));
+                         const wxString& name = wxT("dialogBox"));
 
     void OnCloseWindow(wxCloseEvent& event);
     void OnDefaultAction(wxControl *item);
@@ -301,6 +304,7 @@ public:
 private:
     wxPropertyListView*   m_view;
 
+private:
     DECLARE_CLASS(wxPropertyListDialog)
     DECLARE_EVENT_TABLE()
 };
@@ -317,7 +321,7 @@ public:
                         const wxPoint& pos = wxDefaultPosition,
                         const wxSize& size = wxDefaultSize,
                         long style = 0,
-                        const wxString& name = _T("panel"))
+                        const wxString& name = wxT("panel"))
         : wxPanel(parent, -1, pos, size, style, name)
         {
             m_view = v;
@@ -337,6 +341,7 @@ public:
 private:
     wxPropertyListView*   m_view;
 
+private:
     DECLARE_EVENT_TABLE()
     DECLARE_CLASS(wxPropertyListPanel)
 };
@@ -372,6 +377,7 @@ private:
     wxPropertyListView*       m_view;
     wxPropertyListPanel*      m_propertyPanel;
 
+private:
     DECLARE_EVENT_TABLE()
     DECLARE_CLASS(wxPropertyListFrame)
 };
@@ -382,41 +388,40 @@ private:
 
 class WXDLLEXPORT wxRealListValidator: public wxPropertyListValidator
 {
-  DECLARE_DYNAMIC_CLASS(wxRealListValidator)
- public:
-   // 0.0, 0.0 means no range
-   wxRealListValidator(float min = 0.0, float max = 0.0, long flags = wxPROP_ALLOW_TEXT_EDITING):wxPropertyListValidator(flags)
-   {
-     m_realMin = min; m_realMax = max;
-   }
-   ~wxRealListValidator(void) {}
-
-   bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-
-   // Called when TICK is pressed or focus is lost.
-   // Return FALSE if value didn't check out; signal to restore old value.
-   bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-
-   // Called when TICK is pressed or focus is lost or view wants to update
-   // the property list.
-   // Does the transfer from the property editing area to the property itself
-   bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-
- protected:
-  float     m_realMin;
-  float     m_realMax;
+public:
+    // 0.0, 0.0 means no range
+    wxRealListValidator(float min = 0.0, float max = 0.0, long flags = wxPROP_ALLOW_TEXT_EDITING):wxPropertyListValidator(flags)
+        { m_realMin = min; m_realMax = max; }
+    ~wxRealListValidator() {}
+
+    bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+
+    // Called when TICK is pressed or focus is lost.
+    // Return FALSE if value didn't check out; signal to restore old value.
+    bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+
+    // Called when TICK is pressed or focus is lost or view wants to update
+    // the property list.
+    // Does the transfer from the property editing area to the property itself
+    bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+
+protected:
+    float     m_realMin;
+    float     m_realMax;
+  
+private:
+    DECLARE_DYNAMIC_CLASS(wxRealListValidator)
 };
 
 class WXDLLEXPORT wxIntegerListValidator: public wxPropertyListValidator
 {
-  DECLARE_DYNAMIC_CLASS(wxIntegerListValidator)
- public:
+public:
    // 0, 0 means no range
    wxIntegerListValidator(long min = 0, long max = 0, long flags = wxPROP_ALLOW_TEXT_EDITING):wxPropertyListValidator(flags)
    {
      m_integerMin = min; m_integerMax = max;
    }
-   ~wxIntegerListValidator(void) {}
+   ~wxIntegerListValidator() {}
 
    bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 
@@ -429,156 +434,158 @@ class WXDLLEXPORT wxIntegerListValidator: public wxPropertyListValidator
    // Does the transfer from the property editing area to the property itself
    bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 
- protected:
-  long m_integerMin;
-  long m_integerMax;
+protected:
+    long m_integerMin;
+    long m_integerMax;
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxIntegerListValidator)
 };
 
 class WXDLLEXPORT wxBoolListValidator: public wxPropertyListValidator
 {
-  DECLARE_DYNAMIC_CLASS(wxBoolListValidator)
- protected:
- public:
-   wxBoolListValidator(long flags = 0):wxPropertyListValidator(flags)
-   {
-   }
-   ~wxBoolListValidator(void) {}
-
-   bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-   bool OnPrepareDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-   bool OnClearDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-
-   // Called when TICK is pressed or focus is lost.
-   // Return FALSE if value didn't check out; signal to restore old value.
-   bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-
-   // Called when TICK is pressed or focus is lost or view wants to update
-   // the property list.
-   // Does the transfer from the property editing area to the property itself
-   bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-   bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-
-   // Called when the property is double clicked. Extra functionality can be provided,
-   // cycling through possible values.
-   virtual bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+public:
+    wxBoolListValidator(long flags = 0):wxPropertyListValidator(flags) {}
+    ~wxBoolListValidator() {}
+
+    bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    bool OnPrepareDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    bool OnClearDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+
+    // Called when TICK is pressed or focus is lost.
+    // Return FALSE if value didn't check out; signal to restore old value.
+    bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+
+    // Called when TICK is pressed or focus is lost or view wants to update
+    // the property list.
+    // Does the transfer from the property editing area to the property itself
+    bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+
+    // Called when the property is double clicked. Extra functionality can be provided,
+    // cycling through possible values.
+    virtual bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+   
+private:
+    DECLARE_DYNAMIC_CLASS(wxBoolListValidator)
 };
 
 class WXDLLEXPORT wxStringListValidator: public wxPropertyListValidator
 {
-  DECLARE_DYNAMIC_CLASS(wxStringListValidator)
- public:
+public:
    wxStringListValidator(wxStringList *list = NULL, long flags = 0);
 
-   ~wxStringListValidator(void)
-   {
-     if (m_strings)
-       delete m_strings;
-   }
-
-   bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-   bool OnPrepareDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-   bool OnClearDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-
-   // Called when TICK is pressed or focus is lost.
-   // Return FALSE if value didn't check out; signal to restore old value.
-   bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-
-   // Called when TICK is pressed or focus is lost or view wants to update
-   // the property list.
-   // Does the transfer from the property editing area to the property itself
-   bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-   bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-
-   // Called when the property is double clicked. Extra functionality can be provided,
-   // cycling through possible values.
-   bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-
- protected:
-  wxStringList*     m_strings;
+    ~wxStringListValidator()
+    {
+        if (m_strings)
+            delete m_strings;
+    }
+
+    bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    bool OnPrepareDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    bool OnClearDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+
+    // Called when TICK is pressed or focus is lost.
+    // Return FALSE if value didn't check out; signal to restore old value.
+    bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+
+    // Called when TICK is pressed or focus is lost or view wants to update
+    // the property list.
+    // Does the transfer from the property editing area to the property itself
+    bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+
+    // Called when the property is double clicked. Extra functionality can be provided,
+    // cycling through possible values.
+    bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+
+protected:
+    wxStringList*     m_strings;
+    
+private:
+    DECLARE_DYNAMIC_CLASS(wxStringListValidator)
 };
 
 class WXDLLEXPORT wxFilenameListValidator: public wxPropertyListValidator
 {
-  DECLARE_DYNAMIC_CLASS(wxFilenameListValidator)
- public:
-   wxFilenameListValidator(wxString message = "Select a file", wxString wildcard = wxALL_FILES_PATTERN, long flags = 0);
+public:
+    wxFilenameListValidator(wxString message = wxT("Select a file"), wxString wildcard = wxALL_FILES_PATTERN, long flags = 0);
+    ~wxFilenameListValidator();
 
-   ~wxFilenameListValidator(void);
+    // Called when TICK is pressed or focus is lost.
+    // Return FALSE if value didn't check out; signal to restore old value.
+    bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 
-   // Called when TICK is pressed or focus is lost.
-   // Return FALSE if value didn't check out; signal to restore old value.
-   bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    // Called when TICK is pressed or focus is lost or view wants to update
+    // the property list.
+    // Does the transferance from the property editing area to the property itself
+    bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 
-   // Called when TICK is pressed or focus is lost or view wants to update
-   // the property list.
-   // Does the transferance from the property editing area to the property itself
-   bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-   bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 
-   bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 
-   bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    // Called when the edit (...) button is pressed.
+    void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 
-   // Called when the edit (...) button is pressed.
-   void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-
- protected:
-  wxString  m_filenameWildCard;
-  wxString  m_filenameMessage;
+protected:
+    wxString  m_filenameWildCard;
+    wxString  m_filenameMessage;
 
+private:
+    DECLARE_DYNAMIC_CLASS(wxFilenameListValidator)
 };
 
 class WXDLLEXPORT wxColourListValidator: public wxPropertyListValidator
 {
-  DECLARE_DYNAMIC_CLASS(wxColourListValidator)
- protected:
- public:
-   wxColourListValidator(long flags = 0);
-
-   ~wxColourListValidator(void);
+public:
+    wxColourListValidator(long flags = 0);
+    ~wxColourListValidator();
 
-   bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-   bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-   bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 
-   bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 
-   bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 
-   // Called when the edit (...) button is pressed.
-   void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    // Called when the edit (...) button is pressed.
+    void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+   
+private:
+    DECLARE_DYNAMIC_CLASS(wxColourListValidator)
 };
 
 class WXDLLEXPORT wxListOfStringsListValidator: public wxPropertyListValidator
 {
-  DECLARE_DYNAMIC_CLASS(wxListOfStringsListValidator)
- protected:
- public:
-   wxListOfStringsListValidator(long flags = 0);
-
-   ~wxListOfStringsListValidator(void)
-   {
-   }
+public:
+    wxListOfStringsListValidator(long flags = 0);
+    ~wxListOfStringsListValidator() {}
 
-   bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 
-   // Called when TICK is pressed or focus is lost.
-   // Return FALSE if value didn't check out; signal to restore old value.
-   bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    // Called when TICK is pressed or focus is lost.
+    // Return FALSE if value didn't check out; signal to restore old value.
+    bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 
-   // Called when TICK is pressed or focus is lost or view wants to update
-   // the property list.
-   // Does the transfer from the property editing area to the property itself
-   bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
-   bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    // Called when TICK is pressed or focus is lost or view wants to update
+    // the property list.
+    // Does the transfer from the property editing area to the property itself
+    bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 
-   // Called when the property is double clicked.
-   bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    // Called when the property is double clicked.
+    bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 
-   bool EditStringList(wxWindow *parent, wxStringList *stringList, const wxChar *title = wxT("String List Editor"));
+    bool EditStringList(wxWindow *parent, wxStringList *stringList, const wxChar *title = wxT("String List Editor"));
 
-   // Called when the edit (...) button is pressed.
-   void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+    // Called when the edit (...) button is pressed.
+    void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
+   
+private:
+    DECLARE_DYNAMIC_CLASS(wxListOfStringsListValidator)
 };
 
 #endif
diff --git a/include/wx/sizer.h b/include/wx/sizer.h
index 3857f28d25..993647edc7 100644
--- a/include/wx/sizer.h
+++ b/include/wx/sizer.h
@@ -80,6 +80,8 @@ public:
         { m_flag = flag; }
     void SetBorder( int border )
         { m_border = border; }
+    void Show ( bool show )
+        { m_show = show; }
 
     wxWindow *GetWindow() const
         { return m_window; }
@@ -95,6 +97,8 @@ public:
         { return m_flag; }
     int GetBorder() const
         { return m_border; }
+    bool IsShown() const
+        { return m_show; }
     wxObject* GetUserData()
         { return m_userData; }
     wxPoint GetPosition()
@@ -109,10 +113,15 @@ protected:
     int          m_option;
     int          m_border;
     int          m_flag;
+
+    // If TRUE, then this item is considered in the layout
+    // calculation.  Otherwise, it is skipped over. 
+    bool         m_show;
     // als: aspect ratio can always be calculated from m_size,
     //      but this would cause precision loss when the window
     //      is shrinked.  it is safer to preserve initial value.
     float        m_ratio;
+
     wxObject    *m_userData;
 
 private:
@@ -194,6 +203,21 @@ public:
 
     void SetDimension( int x, int y, int width, int height );
 
+    // Manage whether individual windows or sub-sizers are considered
+    // in the layout calculations or not.
+    void Show( wxWindow *window, bool show = TRUE );
+    void Hide( wxWindow *window )
+        { Show (window, FALSE); }
+    void Show( wxSizer *sizer, bool show = TRUE );
+    void Hide( wxSizer *sizer )
+        { Show (sizer, FALSE); }
+
+    bool IsShown( wxWindow *window );
+    bool IsShown( wxSizer *sizer );
+    
+    // Recursively call wxWindow::Show () on all sizer items.
+    void ShowItems (bool show);
+
 protected:
     wxSize  m_size;
     wxSize  m_minSize;
diff --git a/include/wx/stc/stc.h b/include/wx/stc/stc.h
index 640eac8baf..82cd6684ff 100644
--- a/include/wx/stc/stc.h
+++ b/include/wx/stc/stc.h
@@ -24,6 +24,12 @@
 #include <wx/wx.h>
 #include <wx/dnd.h>
 
+#ifdef STCISDLL
+#define STCDLLEXPORT WXDLLEXPORT
+#else
+#define STCDLLEXPORT
+#endif
+
 //----------------------------------------------------------------------
 
 // Should a wxPopupWindow be used for the call tips and autocomplete windows?
@@ -43,12 +49,6 @@
 #define wxSTC_START 2000
 #define wxSTC_OPTIONAL_START 3000
 #define wxSTC_LEXER_START 4000
-
-// Redoes the next action on the undo history.
-#define wxSTC_CMD_REDO 2011
-
-// Select all the text in the document.
-#define wxSTC_CMD_SELECTALL 2013
 #define wxSTC_WS_INVISIBLE 0
 #define wxSTC_WS_VISIBLEALWAYS 1
 #define wxSTC_WS_VISIBLEAFTERINDENT 2
@@ -167,18 +167,6 @@
 #define wxSTC_FIND_MATCHCASE 4
 #define wxSTC_FIND_WORDSTART 0x00100000
 #define wxSTC_FIND_REGEXP 0x00200000
-
-// Undo one action in the undo history.
-#define wxSTC_CMD_UNDO 2176
-
-// Cut the selection to the clipboard.
-#define wxSTC_CMD_CUT 2177
-
-// Copy the selection to the clipboard.
-#define wxSTC_CMD_COPY 2178
-
-// Paste the contents of the clipboard into the document replacing the selection.
-#define wxSTC_CMD_PASTE 2179
 #define wxSTC_FOLDLEVELBASE 0x400
 #define wxSTC_FOLDLEVELWHITEFLAG 0x1000
 #define wxSTC_FOLDLEVELHEADERFLAG 0x2000
@@ -190,158 +178,6 @@
 #define wxSTC_CACHE_CARET 1
 #define wxSTC_CACHE_PAGE 2
 #define wxSTC_CACHE_DOCUMENT 3
-
-// Move caret down one line.
-#define wxSTC_CMD_LINEDOWN 2300
-
-// Move caret down one line extending selection to new caret position.
-#define wxSTC_CMD_LINEDOWNEXTEND 2301
-
-// Move caret up one line.
-#define wxSTC_CMD_LINEUP 2302
-
-// Move caret up one line extending selection to new caret position.
-#define wxSTC_CMD_LINEUPEXTEND 2303
-
-// Move caret left one character.
-#define wxSTC_CMD_CHARLEFT 2304
-
-// Move caret left one character extending selection to new caret position.
-#define wxSTC_CMD_CHARLEFTEXTEND 2305
-
-// Move caret right one character.
-#define wxSTC_CMD_CHARRIGHT 2306
-
-// Move caret right one character extending selection to new caret position.
-#define wxSTC_CMD_CHARRIGHTEXTEND 2307
-
-// Move caret left one word.
-#define wxSTC_CMD_WORDLEFT 2308
-
-// Move caret left one word extending selection to new caret position.
-#define wxSTC_CMD_WORDLEFTEXTEND 2309
-
-// Move caret right one word.
-#define wxSTC_CMD_WORDRIGHT 2310
-
-// Move caret right one word extending selection to new caret position.
-#define wxSTC_CMD_WORDRIGHTEXTEND 2311
-
-// Move caret to first position on line.
-#define wxSTC_CMD_HOME 2312
-
-// Move caret to first position on line extending selection to new caret position.
-#define wxSTC_CMD_HOMEEXTEND 2313
-
-// Move caret to last position on line.
-#define wxSTC_CMD_LINEEND 2314
-
-// Move caret to last position on line extending selection to new caret position.
-#define wxSTC_CMD_LINEENDEXTEND 2315
-
-// Move caret to first position in document.
-#define wxSTC_CMD_DOCUMENTSTART 2316
-
-// Move caret to first position in document extending selection to new caret position.
-#define wxSTC_CMD_DOCUMENTSTARTEXTEND 2317
-
-// Move caret to last position in document.
-#define wxSTC_CMD_DOCUMENTEND 2318
-
-// Move caret to last position in document extending selection to new caret position.
-#define wxSTC_CMD_DOCUMENTENDEXTEND 2319
-
-// Move caret one page up.
-#define wxSTC_CMD_PAGEUP 2320
-
-// Move caret one page up extending selection to new caret position.
-#define wxSTC_CMD_PAGEUPEXTEND 2321
-
-// Move caret one page down.
-#define wxSTC_CMD_PAGEDOWN 2322
-
-// Move caret one page down extending selection to new caret position.
-#define wxSTC_CMD_PAGEDOWNEXTEND 2323
-
-// Switch from insert to overtype mode or the reverse.
-#define wxSTC_CMD_EDITTOGGLEOVERTYPE 2324
-
-// Cancel any modes such as call tip or auto-completion list display.
-#define wxSTC_CMD_CANCEL 2325
-
-// Delete the selection or if no selection, the character before the caret.
-#define wxSTC_CMD_DELETEBACK 2326
-
-// If selection is empty or all on one line replace the selection with a tab character.
-// If more than one line selected, indent the lines.
-#define wxSTC_CMD_TAB 2327
-
-// Dedent the selected lines.
-#define wxSTC_CMD_BACKTAB 2328
-
-// Insert a new line, may use a CRLF, CR or LF depending on EOL mode.
-#define wxSTC_CMD_NEWLINE 2329
-
-// Insert a Form Feed character.
-#define wxSTC_CMD_FORMFEED 2330
-
-// Move caret to before first visible character on line.
-// If already there move to first character on line.
-#define wxSTC_CMD_VCHOME 2331
-
-// Like VCHome but extending selection to new caret position.
-#define wxSTC_CMD_VCHOMEEXTEND 2332
-
-// Magnify the displayed text by increasing the sizes by 1 point.
-#define wxSTC_CMD_ZOOMIN 2333
-
-// Make the displayed text smaller by decreasing the sizes by 1 point.
-#define wxSTC_CMD_ZOOMOUT 2334
-
-// Delete the word to the left of the caret.
-#define wxSTC_CMD_DELWORDLEFT 2335
-
-// Delete the word to the right of the caret.
-#define wxSTC_CMD_DELWORDRIGHT 2336
-
-// Cut the line containing the caret.
-#define wxSTC_CMD_LINECUT 2337
-
-// Delete the line containing the caret.
-#define wxSTC_CMD_LINEDELETE 2338
-
-// Switch the current line with the previous.
-#define wxSTC_CMD_LINETRANSPOSE 2339
-
-// Transform the selection to lower case.
-#define wxSTC_CMD_LOWERCASE 2340
-
-// Transform the selection to upper case.
-#define wxSTC_CMD_UPPERCASE 2341
-
-// Scroll the document down, keeping the caret visible.
-#define wxSTC_CMD_LINESCROLLDOWN 2342
-
-// Scroll the document up, keeping the caret visible.
-#define wxSTC_CMD_LINESCROLLUP 2343
-
-// Delete the selection or if no selection, the character before the caret.
-// Will not delete the character before at the start of a line.
-#define wxSTC_CMD_DELETEBACKNOTLINE 2344
-
-// Move caret to first position on display line.
-#define wxSTC_CMD_HOMEDISPLAY 2345
-
-// Move caret to first position on display line extending selection to 
-// new caret position.
-#define wxSTC_CMD_HOMEDISPLAYEXTEND 2346
-
-// Move caret to last position on display line.
-#define wxSTC_CMD_LINEENDDISPLAY 2347
-
-// Move caret to last position on display line extending selection to new 
-// caret position.
-#define wxSTC_CMD_LINEENDDISPLAYEXTEND 2348
 #define wxSTC_EDGE_NONE 0
 #define wxSTC_EDGE_LINE 1
 #define wxSTC_EDGE_BACKGROUND 2
@@ -866,6 +702,204 @@
 #define wxSTC_SCRIPTOL_COMMENTDOCKEYWORDERROR 18
 #define wxSTC_SCRIPTOL_COMMENTBASIC 19
 
+
+//-----------------------------------------
+// Commands that can be bound to keystrokes
+
+// Redoes the next action on the undo history.
+#define wxSTC_CMD_REDO 2011
+
+// Select all the text in the document.
+#define wxSTC_CMD_SELECTALL 2013
+
+// Undo one action in the undo history.
+#define wxSTC_CMD_UNDO 2176
+
+// Cut the selection to the clipboard.
+#define wxSTC_CMD_CUT 2177
+
+// Copy the selection to the clipboard.
+#define wxSTC_CMD_COPY 2178
+
+// Paste the contents of the clipboard into the document replacing the selection.
+#define wxSTC_CMD_PASTE 2179
+
+// Clear the selection.
+#define wxSTC_CMD_CLEAR 2180
+
+// Move caret down one line.
+#define wxSTC_CMD_LINEDOWN 2300
+
+// Move caret down one line extending selection to new caret position.
+#define wxSTC_CMD_LINEDOWNEXTEND 2301
+
+// Move caret up one line.
+#define wxSTC_CMD_LINEUP 2302
+
+// Move caret up one line extending selection to new caret position.
+#define wxSTC_CMD_LINEUPEXTEND 2303
+
+// Move caret left one character.
+#define wxSTC_CMD_CHARLEFT 2304
+
+// Move caret left one character extending selection to new caret position.
+#define wxSTC_CMD_CHARLEFTEXTEND 2305
+
+// Move caret right one character.
+#define wxSTC_CMD_CHARRIGHT 2306
+
+// Move caret right one character extending selection to new caret position.
+#define wxSTC_CMD_CHARRIGHTEXTEND 2307
+
+// Move caret left one word.
+#define wxSTC_CMD_WORDLEFT 2308
+
+// Move caret left one word extending selection to new caret position.
+#define wxSTC_CMD_WORDLEFTEXTEND 2309
+
+// Move caret right one word.
+#define wxSTC_CMD_WORDRIGHT 2310
+
+// Move caret right one word extending selection to new caret position.
+#define wxSTC_CMD_WORDRIGHTEXTEND 2311
+
+// Move caret to first position on line.
+#define wxSTC_CMD_HOME 2312
+
+// Move caret to first position on line extending selection to new caret position.
+#define wxSTC_CMD_HOMEEXTEND 2313
+
+// Move caret to last position on line.
+#define wxSTC_CMD_LINEEND 2314
+
+// Move caret to last position on line extending selection to new caret position.
+#define wxSTC_CMD_LINEENDEXTEND 2315
+
+// Move caret to first position in document.
+#define wxSTC_CMD_DOCUMENTSTART 2316
+
+// Move caret to first position in document extending selection to new caret position.
+#define wxSTC_CMD_DOCUMENTSTARTEXTEND 2317
+
+// Move caret to last position in document.
+#define wxSTC_CMD_DOCUMENTEND 2318
+
+// Move caret to last position in document extending selection to new caret position.
+#define wxSTC_CMD_DOCUMENTENDEXTEND 2319
+
+// Move caret one page up.
+#define wxSTC_CMD_PAGEUP 2320
+
+// Move caret one page up extending selection to new caret position.
+#define wxSTC_CMD_PAGEUPEXTEND 2321
+
+// Move caret one page down.
+#define wxSTC_CMD_PAGEDOWN 2322
+
+// Move caret one page down extending selection to new caret position.
+#define wxSTC_CMD_PAGEDOWNEXTEND 2323
+
+// Switch from insert to overtype mode or the reverse.
+#define wxSTC_CMD_EDITTOGGLEOVERTYPE 2324
+
+// Cancel any modes such as call tip or auto-completion list display.
+#define wxSTC_CMD_CANCEL 2325
+
+// Delete the selection or if no selection, the character before the caret.
+#define wxSTC_CMD_DELETEBACK 2326
+
+// If selection is empty or all on one line replace the selection with a tab character.
+// If more than one line selected, indent the lines.
+#define wxSTC_CMD_TAB 2327
+
+// Dedent the selected lines.
+#define wxSTC_CMD_BACKTAB 2328
+
+// Insert a new line, may use a CRLF, CR or LF depending on EOL mode.
+#define wxSTC_CMD_NEWLINE 2329
+
+// Insert a Form Feed character.
+#define wxSTC_CMD_FORMFEED 2330
+
+// Move caret to before first visible character on line.
+// If already there move to first character on line.
+#define wxSTC_CMD_VCHOME 2331
+
+// Like VCHome but extending selection to new caret position.
+#define wxSTC_CMD_VCHOMEEXTEND 2332
+
+// Magnify the displayed text by increasing the sizes by 1 point.
+#define wxSTC_CMD_ZOOMIN 2333
+
+// Make the displayed text smaller by decreasing the sizes by 1 point.
+#define wxSTC_CMD_ZOOMOUT 2334
+
+// Delete the word to the left of the caret.
+#define wxSTC_CMD_DELWORDLEFT 2335
+
+// Delete the word to the right of the caret.
+#define wxSTC_CMD_DELWORDRIGHT 2336
+
+// Cut the line containing the caret.
+#define wxSTC_CMD_LINECUT 2337
+
+// Delete the line containing the caret.
+#define wxSTC_CMD_LINEDELETE 2338
+
+// Switch the current line with the previous.
+#define wxSTC_CMD_LINETRANSPOSE 2339
+
+// Transform the selection to lower case.
+#define wxSTC_CMD_LOWERCASE 2340
+
+// Transform the selection to upper case.
+#define wxSTC_CMD_UPPERCASE 2341
+
+// Scroll the document down, keeping the caret visible.
+#define wxSTC_CMD_LINESCROLLDOWN 2342
+
+// Scroll the document up, keeping the caret visible.
+#define wxSTC_CMD_LINESCROLLUP 2343
+
+// Delete the selection or if no selection, the character before the caret.
+// Will not delete the character before at the start of a line.
+#define wxSTC_CMD_DELETEBACKNOTLINE 2344
+
+// Move caret to first position on display line.
+#define wxSTC_CMD_HOMEDISPLAY 2345
+
+// Move caret to first position on display line extending selection to
+// new caret position.
+#define wxSTC_CMD_HOMEDISPLAYEXTEND 2346
+
+// Move caret to last position on display line.
+#define wxSTC_CMD_LINEENDDISPLAY 2347
+
+// Move caret to last position on display line extending selection to new
+// caret position.
+#define wxSTC_CMD_LINEENDDISPLAYEXTEND 2348
+
+// Move to the previous change in capitalisation.
+#define wxSTC_CMD_WORDPARTLEFT 2390
+
+// Move to the previous change in capitalisation extending selection
+// to new caret position.
+#define wxSTC_CMD_WORDPARTLEFTEXTEND 2391
+
+// Move to the change next in capitalisation.
+#define wxSTC_CMD_WORDPARTRIGHT 2392
+
+// Move to the next change in capitalisation extending selection
+// to new caret position.
+#define wxSTC_CMD_WORDPARTRIGHTEXTEND 2393
+
+// Delete back from the current position to the start of the line.
+#define wxSTC_CMD_DELLINELEFT 2395
+
+// Delete forwards from the current position to the end of the line.
+#define wxSTC_CMD_DELLINERIGHT 2396
+
+
 // END of generated section
 //----------------------------------------------------------------------
 
@@ -873,8 +907,11 @@ class  ScintillaWX;                      // forward declare
 class  WordList;
 struct SCNotification;
 
-
-extern const wxChar* wxSTCNameStr;
+#ifndef SWIG
+extern STCDLLEXPORT const wxChar* wxSTCNameStr;
+class STCDLLEXPORT wxStyledTextCtrl;
+class STCDLLEXPORT wxStyledTextEvent;
+#endif
 
 //----------------------------------------------------------------------
 
@@ -1644,14 +1681,14 @@ public:
     // Move caret to first position on display line.
     void HomeDisplay();
 
-    // Move caret to first position on display line extending selection to 
+    // Move caret to first position on display line extending selection to
     // new caret position.
     void HomeDisplayExtend();
 
     // Move caret to last position on display line.
     void LineEndDisplay();
 
-    // Move caret to last position on display line extending selection to new 
+    // Move caret to last position on display line extending selection to new
     // caret position.
     void LineEndDisplayExtend();
 
@@ -1933,6 +1970,7 @@ private:
     void OnMouseMove(wxMouseEvent& evt);
     void OnMouseLeftUp(wxMouseEvent& evt);
     void OnMouseRightUp(wxMouseEvent& evt);
+    void OnMouseMiddleUp(wxMouseEvent& evt);
     void OnContextMenu(wxContextMenuEvent& evt);
     void OnMouseWheel(wxMouseEvent& evt);
     void OnChar(wxKeyEvent& evt);
@@ -1968,7 +2006,7 @@ private:
 
 //----------------------------------------------------------------------
 
-// SWIG can't handle "#if" type of conditionals, onlu "#ifdef"
+// SWIG can't handle "#if" type of conditionals, only "#ifdef"
 #ifdef SWIG
 #define STC_USE_DND 1
 #else
diff --git a/include/wx/strconv.h b/include/wx/strconv.h
index 7b4b2255f3..7d22b34c0a 100644
--- a/include/wx/strconv.h
+++ b/include/wx/strconv.h
@@ -54,6 +54,9 @@ public:
     const wxCharBuffer cWC2WX(const wchar_t *psz) const { return cWC2MB(psz); }
     const wxWCharBuffer cWX2WC(const char *psz) const { return cMB2WC(psz); }
 #endif // Unicode/ANSI
+
+    // virtual dtor for any base class
+    virtual ~wxMBConv();
 };
 
 WXDLLEXPORT_DATA(extern wxMBConv) wxConvLibc;
@@ -115,7 +118,7 @@ public:
     virtual ~wxCSConv();
 
     wxCSConv& operator=(const wxCSConv& conv);
-    
+
     void LoadNow();
 
     virtual size_t MB2WC(wchar_t *buf, const char *psz, size_t n) const;
@@ -135,6 +138,7 @@ private:
 
 #define wxConvFile wxConvLocal
 WXDLLEXPORT_DATA(extern wxCSConv) wxConvLocal;
+WXDLLEXPORT_DATA(extern wxCSConv) wxConvISO8859_1;
 WXDLLEXPORT_DATA(extern wxMBConv *) wxConvCurrent;
 
 // ----------------------------------------------------------------------------
@@ -170,7 +174,7 @@ public:
     const char* cWX2MB(const char *psz) const { return psz; }
 };
 
-WXDLLEXPORT_DATA(extern wxMBConv) wxConvLibc, wxConvFile, wxConvLocal;
+WXDLLEXPORT_DATA(extern wxMBConv) wxConvLibc, wxConvFile, wxConvLocal, wxConvISO8859_1;
 WXDLLEXPORT_DATA(extern wxMBConv *) wxConvCurrent;
 
 #define wxFNCONV(name) name
diff --git a/include/wx/stream.h b/include/wx/stream.h
index 488d1905dc..5b80f8766c 100644
--- a/include/wx/stream.h
+++ b/include/wx/stream.h
@@ -1,7 +1,7 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        wx/stream.h
-// Purpose:     "wxWindows stream" base classes
-// Author:      Guilhem Lavaux
+// Purpose:     stream classes
+// Author:      Guilhem Lavaux, Guillermo Rodriguez Garcia, Vadim Zeitlin
 // Modified by:
 // Created:     11/07/98
 // RCS-ID:      $Id$
@@ -34,30 +34,38 @@ typedef wxOutputStream& (*__wxOutputManip)(wxOutputStream&);
 
 WXDLLEXPORT wxOutputStream& wxEndL(wxOutputStream& o_stream);
 
-// ---------------------------------------------------------------------------
-// wxStream: base classes
-// ---------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+// constants
+// ----------------------------------------------------------------------------
 
 enum wxStreamError
 {
-    wxSTREAM_NO_ERROR = 0,
-    wxSTREAM_NO_ERR = wxSTREAM_NO_ERROR,
-    wxSTREAM_NOERROR = wxSTREAM_NO_ERROR,
-
-    wxSTREAM_EOF,
-
-    wxSTREAM_WRITE_ERROR,
-    wxSTREAM_WRITE_ERR = wxSTREAM_WRITE_ERROR,
-
-    wxSTREAM_READ_ERROR,
-    wxSTREAM_READ_ERR = wxSTREAM_READ_ERROR
+    wxSTREAM_NO_ERROR = 0,      // stream is in good state
+    wxSTREAM_EOF,               // EOF reached in Read() or similar
+    wxSTREAM_WRITE_ERROR,       // generic write error
+    wxSTREAM_READ_ERROR         // generic read error
 };
 
 // compatibility
-#define wxStream_NOERROR    wxSTREAM_NOERROR
-#define wxStream_EOF        wxSTREAM_EOF
-#define wxStream_WRITE_ERR  wxSTREAM_WRITE_ERROR
-#define wxStream_READ_ERR   wxSTREAM_READ_ERROR
+#if WXWIN_COMPATIBILITY_2_2
+    #define wxStream_NOERROR    wxSTREAM_NOERROR
+    #define wxStream_EOF        wxSTREAM_EOF
+    #define wxStream_WRITE_ERR  wxSTREAM_WRITE_ERROR
+    #define wxStream_READ_ERR   wxSTREAM_READ_ERROR
+
+    #define wxSTREAM_NO_ERR     wxSTREAM_NO_ERROR
+    #define wxSTREAM_NOERROR    wxSTREAM_NO_ERROR
+    #define wxSTREAM_WRITE_ERR  wxSTREAM_WRITE_ERROR
+    #define wxSTREAM_READ_ERR   wxSTREAM_READ_ERROR
+#endif // WXWIN_COMPATIBILITY_2_2
+
+// ============================================================================
+// base stream classes: wxInputStream and wxOutputStream
+// ============================================================================
+
+// ---------------------------------------------------------------------------
+// wxStreamBase: common (but non virtual!) base for all stream classes
+// ---------------------------------------------------------------------------
 
 class WXDLLEXPORT wxStreamBase
 {
@@ -67,80 +75,168 @@ public:
 
     // error testing
     wxStreamError GetLastError() const { return m_lasterror; }
-    bool IsOk() const { return LastError() == wxSTREAM_NOERROR; }
-    bool operator!() const { return LastError() != wxSTREAM_NOERROR; }
+    bool IsOk() const { return GetLastError() == wxSTREAM_NO_ERROR; }
+    bool operator!() const { return !IsOk(); }
 
+    // reset the stream state
+    void Reset() { m_lasterror = wxSTREAM_NO_ERROR; }
+
+    // deprecated (doesn't make sense!), don't use
     virtual size_t GetSize() const { return 0; }
 
+#if WXWIN_COMPATIBILITY_2_2
     // deprecated, for compatibility only
     wxStreamError LastError() const { return m_lasterror; }
     size_t StreamSize() const { return GetSize(); }
+#endif // WXWIN_COMPATIBILITY_2_2
 
 protected:
-    // VZ: these functions are really pure virtual and shouldn't be declared
-    //     in the base class because it creates ambiguties in stream classes
-    //     deriving from both wxInputStream and wxOutputStream
-#if 0
-    virtual size_t OnSysRead(void *buffer, size_t bufsize);
-    virtual size_t OnSysWrite(const void *buffer, size_t bufsize);
-#endif
-
     virtual off_t OnSysSeek(off_t seek, wxSeekMode mode);
     virtual off_t OnSysTell() const;
 
-    friend class wxStreamBuffer;
-
     size_t m_lastcount;
     wxStreamError m_lasterror;
+
+    friend class wxStreamBuffer;
 };
 
-class WXDLLEXPORT wxInputStream : /* virtual */ public wxStreamBase
+// ----------------------------------------------------------------------------
+// wxInputStream: base class for the input streams
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxInputStream : public wxStreamBase
 {
 public:
+    // ctor and dtor, nothing exciting
     wxInputStream();
     virtual ~wxInputStream();
 
-    // is the stream at EOF?
-    virtual bool Eof() const;
 
     // IO functions
+    // ------------
+
+    // return a character from the stream without removing it, i.e. it will
+    // still be returned by the next call to GetC()
+    //
+    // blocks until something appears in the stream if necessary, if nothing
+    // ever does (i.e. EOF) LastRead() will return 0 (and the return value is
+    // undefined), otherwise 1
     virtual char Peek();
+
+    // return one character from the stream, blocking until it appears if
+    // necessary
+    //
+    // if EOF, return value is undefined and LastRead() will return 0 and not 1
     char GetC();
+
+    // read at most the given number of bytes from the stream
+    //
+    // there are 2 possible situations here: either there is nothing at all in
+    // the stream right now in which case Read() blocks until something appears
+    // (use CanRead() to avoid this) or there is already some data available in
+    // the stream and then Read() doesn't block but returns just the data it
+    // can read without waiting for more
+    //
+    // in any case, if there are not enough bytes in the stream right now,
+    // LastRead() value will be less than size but greater than 0. If it is 0,
+    // it means that EOF has been reached.
     virtual wxInputStream& Read(void *buffer, size_t size);
-    wxInputStream& Read(wxOutputStream& stream_out);
 
-    // Position functions
-    virtual off_t SeekI(off_t pos, wxSeekMode mode = wxFromStart);
-    virtual off_t TellI() const;
+    // copy the entire contents of this stream into streamOut, stopping only
+    // when EOF is reached or an error occurs
+    wxInputStream& Read(wxOutputStream& streamOut);
+
+
+    // status functions
+    // ----------------
+
+    // returns the number of bytes read by the last call to Read(), GetC() or
+    // Peek()
+    //
+    // this should be used to discover whether that call succeeded in reading
+    // all the requested data or not
+    virtual size_t LastRead() const { return wxStreamBase::m_lastcount; }
+
+    // returns TRUE if some data is available in the stream right now, so that
+    // calling Read() wouldn't block
+    virtual bool CanRead() const;
 
-    // State functions
-    virtual size_t LastRead() { return wxStreamBase::m_lastcount; }
+    // is the stream at EOF?
+    //
+    // note that this cannot be really implemented for all streams and
+    // CanRead() is more reliable than Eof()
+    virtual bool Eof() const;
+
+
+    // write back buffer
+    // -----------------
 
-    // Ungetch
+    // put back the specified number of bytes into the stream, they will be
+    // fetched by the next call to the read functions
+    //
+    // returns the number of bytes really stuffed back
     size_t Ungetch(const void *buffer, size_t size);
+
+    // put back the specified character in the stream
+    //
+    // returns TRUE if ok, FALSE on error
     bool Ungetch(char c);
 
-    // Operators
+
+    // position functions
+    // ------------------
+
+    // move the stream pointer to the given position (if the stream supports
+    // it)
+    //
+    // returns wxInvalidOffset on error
+    virtual off_t SeekI(off_t pos, wxSeekMode mode = wxFromStart);
+
+    // return the current position of the stream pointer or wxInvalidOffset
+    virtual off_t TellI() const;
+
+
+    // stream-like operators
+    // ---------------------
+
     wxInputStream& operator>>(wxOutputStream& out) { return Read(out); }
-    wxInputStream& operator>>( __wxInputManip func) { return func(*this); }
+    wxInputStream& operator>>(__wxInputManip func) { return func(*this); }
 
 protected:
-    // to be implemented in the derived classes (it should have been pure
-    // virtual)
-    virtual size_t OnSysRead(void *buffer, size_t bufsize);
+    // do read up to size bytes of data into the provided buffer
+    //
+    // this method should return 0 if EOF has been reached or an error occured
+    // (m_lasterror should be set accordingly as well) or the number of bytes
+    // read
+    virtual size_t OnSysRead(void *buffer, size_t size) = 0;
+
+    // write-back buffer support
+    // -------------------------
+
+    // return the pointer to a buffer big enough to hold sizeNeeded bytes
+    char *AllocSpaceWBack(size_t sizeNeeded);
+
+    // read up to size data from the write back buffer, return the number of
+    // bytes read
+    size_t GetWBack(void *buf, size_t size);
 
-    // Ungetch managers
+    // write back buffer or NULL if none
     char *m_wback;
+
+    // the size of the buffer
     size_t m_wbacksize;
-    size_t m_wbackcur;
 
-    char *AllocSpaceWBack(size_t needed_size);
-    size_t GetWBack(void *buf, size_t bsize);
+    // the current position in the buffer
+    size_t m_wbackcur;
 
     friend class wxStreamBuffer;
 };
 
-class WXDLLEXPORT wxOutputStream : /* virtual */ public wxStreamBase
+// ----------------------------------------------------------------------------
+// wxOutputStream: base for the output streams
+// ----------------------------------------------------------------------------
+
+class WXDLLEXPORT wxOutputStream : public wxStreamBase
 {
 public:
     wxOutputStream();
@@ -168,6 +264,10 @@ protected:
     friend class wxStreamBuffer;
 };
 
+// ============================================================================
+// helper stream classes
+// ============================================================================
+
 // ---------------------------------------------------------------------------
 // A stream for measuring streamed output
 // ---------------------------------------------------------------------------
@@ -224,6 +324,10 @@ protected:
     wxOutputStream *m_parent_o_stream;
 };
 
+// ============================================================================
+// buffered streams
+// ============================================================================
+
 // ---------------------------------------------------------------------------
 // Stream buffer: this class can be derived from and passed to
 // wxBufferedStreams to implement custom buffering
@@ -240,7 +344,6 @@ public:
     };
 
     wxStreamBuffer(wxStreamBase& stream, BufMode mode);
-    wxStreamBuffer(BufMode mode);
     wxStreamBuffer(const wxStreamBuffer& buf);
     virtual ~wxStreamBuffer();
 
@@ -294,6 +397,10 @@ public:
     // deprecated, for compatibility only
     wxStreamBase *Stream() { return m_stream; }
 
+    // this constructs a dummy wxStreamBuffer, used by (and exists for)
+    // wxMemoryStreams only, don't use!
+    wxStreamBuffer(BufMode mode);
+
 protected:
     void GetFromBuffer(void *buffer, size_t size);
     void PutToBuffer(const void *buffer, size_t size);
@@ -328,13 +435,12 @@ protected:
 
     // flags
     bool m_destroybuf,      // deallocate buffer?
-         m_destroystream,   // delete associated stream?
          m_fixed,
          m_flushable;
 };
 
 // ---------------------------------------------------------------------------
-// wxBufferedStreams
+// wxBufferedInputStream
 // ---------------------------------------------------------------------------
 
 class WXDLLEXPORT wxBufferedInputStream : public wxFilterInputStream
@@ -367,6 +473,10 @@ protected:
     wxStreamBuffer *m_i_streambuf;
 };
 
+// ----------------------------------------------------------------------------
+// wxBufferedOutputStream
+// ----------------------------------------------------------------------------
+
 class WXDLLEXPORT wxBufferedOutputStream : public wxFilterOutputStream
 {
 public:
diff --git a/include/wx/string.h b/include/wx/string.h
index 1c6dbc1f0b..559817da01 100644
--- a/include/wx/string.h
+++ b/include/wx/string.h
@@ -314,7 +314,7 @@ public:
     // from multibyte string
     // (NB: nLength is right now number of Unicode characters, not
     //  characters in psz! So try not to use it yet!)
-  wxString(const char *psz, wxMBConv& conv = wxConvLibc, size_t nLength = wxSTRING_MAXLEN);
+  wxString(const char *psz, wxMBConv& conv, size_t nLength = wxSTRING_MAXLEN);
     // from wxWCharBuffer (i.e. return from wxGetString)
   wxString(const wxWCharBuffer& psz)
     { InitWith(psz, 0, wxSTRING_MAXLEN); }
@@ -461,14 +461,16 @@ public:
     // the behaviour of these functions with the strings containing anything
     // else than 7 bit ASCII characters is undefined, use at your own risk.
 #if wxUSE_UNICODE
-    static wxString FromAscii(const char *ascii);
+    static wxString FromAscii(const char *ascii);  // string
+    static wxString FromAscii(const char ascii);   // char
     const wxCharBuffer ToAscii() const;
 #else // ANSI
     static wxString FromAscii(const char *ascii) { return wxString( ascii ); }
+    static wxString FromAscii(const char ascii) { return wxString( ascii ); }
     const char *ToAscii() const { return c_str(); }
 #endif // Unicode/!Unicode
 
-    // conversions with (possible) format convertions: have to return a
+    // conversions with (possible) format conversions: have to return a
     // buffer with temporary data
     //
     // the functions defined (in either Unicode or ANSI) mode are mb_str() to
@@ -833,7 +835,7 @@ public:
     // returns true if the string is empty
   bool empty() const { return IsEmpty(); }
     // inform string about planned change in size
-  void reserve(size_t size) { Alloc(size); }
+  void reserve(size_t sz) { Alloc(sz); }
 
   // lib.string.access
     // return the character at position n
diff --git a/include/wx/textbuf.h b/include/wx/textbuf.h
index c7087c669a..32d8379a0d 100644
--- a/include/wx/textbuf.h
+++ b/include/wx/textbuf.h
@@ -81,10 +81,10 @@ public:
     bool Create(const wxString& strBufferName);
 
     // Open() also loads buffer in memory on success
-    bool Open(wxMBConv& conv = wxConvLibc);
+    bool Open(wxMBConv& conv = wxConvISO8859_1);
 
     // same as Open() but with (another) buffer name
-    bool Open(const wxString& strBufferName, wxMBConv& conv = wxConvLibc);
+    bool Open(const wxString& strBufferName, wxMBConv& conv = wxConvISO8859_1);
 
     // closes the buffer and frees memory, losing all changes
     bool Close();
@@ -148,7 +148,7 @@ public:
     // change the buffer (default argument means "don't change type")
     // possibly in another format
     bool Write(wxTextFileType typeNew = wxTextFileType_None,
-               wxMBConv& conv = wxConvLibc);
+               wxMBConv& conv = wxConvISO8859_1);
 
     // dtor
     virtual ~wxTextBuffer();
@@ -171,8 +171,7 @@ protected:
                         wxTextBufferOpenMode openmode) = 0;
     virtual bool OnClose() = 0;
     virtual bool OnRead(wxMBConv& conv) = 0;
-    virtual bool OnWrite(wxTextFileType typeNew,
-                        wxMBConv& conv = wxConvLibc) = 0;
+    virtual bool OnWrite(wxTextFileType typeNew, wxMBConv& conv) = 0;
 
     wxString m_strBufferName;  // name of the buffer
 
diff --git a/include/wx/textfile.h b/include/wx/textfile.h
index b66afc76c4..43024f64db 100644
--- a/include/wx/textfile.h
+++ b/include/wx/textfile.h
@@ -44,7 +44,7 @@ protected:
                         wxTextBufferOpenMode OpenMode);
     virtual bool OnClose();
     virtual bool OnRead(wxMBConv& conv);
-    virtual bool OnWrite(wxTextFileType typeNew, wxMBConv& conv = wxConvLibc);
+    virtual bool OnWrite(wxTextFileType typeNew, wxMBConv& conv);
 
 private:
     wxFile m_file;
diff --git a/include/wx/txtstrm.h b/include/wx/txtstrm.h
index d7948933f7..dff4466bd1 100644
--- a/include/wx/txtstrm.h
+++ b/include/wx/txtstrm.h
@@ -28,10 +28,15 @@ typedef wxTextOutputStream& (*__wxTextOutputManip)(wxTextOutputStream&);
 
 WXDLLEXPORT wxTextOutputStream &endl( wxTextOutputStream &stream );
 
+
 class WXDLLEXPORT wxTextInputStream
 {
 public:
+#if wxUSE_UNICODE
+    wxTextInputStream(wxInputStream& s, const wxString &sep=wxT(" \t"), wxMBConv& conv = wxConvUTF8 );
+#else
     wxTextInputStream(wxInputStream& s, const wxString &sep=wxT(" \t") );
+#endif
     ~wxTextInputStream();
 
     wxUint32 Read32();
@@ -60,13 +65,18 @@ public:
 protected:
     wxInputStream &m_input;
     wxString m_separators;
+    
+#if wxUSE_UNICODE
+    wxMBConv &m_conv;
+#endif
 
     bool   EatEOL(const wxChar &c);
     wxChar NextNonSeparators();
     void   SkipIfEndOfLine( wxChar c );
 };
 
-typedef enum {
+typedef enum
+{
   wxEOL_NATIVE,
   wxEOL_UNIX,
   wxEOL_MAC,
@@ -76,7 +86,11 @@ typedef enum {
 class WXDLLEXPORT wxTextOutputStream
 {
 public:
+#if wxUSE_UNICODE
+    wxTextOutputStream( wxOutputStream& s, wxEOL mode = wxEOL_NATIVE, wxMBConv& conv = wxConvUTF8  );
+#else
     wxTextOutputStream( wxOutputStream& s, wxEOL mode = wxEOL_NATIVE );
+#endif
     virtual ~wxTextOutputStream();
 
     void SetMode( wxEOL mode = wxEOL_NATIVE );
@@ -103,6 +117,11 @@ public:
 protected:
     wxOutputStream &m_output;
     wxEOL           m_mode;
+    
+#if wxUSE_UNICODE
+    wxMBConv &m_conv;
+#endif
+
 };
 
 #endif
diff --git a/include/wx/univ/listbox.h b/include/wx/univ/listbox.h
index aa608cfba6..363f523ac8 100644
--- a/include/wx/univ/listbox.h
+++ b/include/wx/univ/listbox.h
@@ -129,10 +129,10 @@ public:
     void Activate(int item = -1);
 
     // select or unselect the specified or current (if -1) item
-    void Select(bool sel = TRUE, int item = -1);
+    void DoSelect(int item = -1, bool sel = TRUE);
 
     // more readable wrapper
-    void Unselect(int item) { Select(FALSE, item); }
+    void DoUnselect(int item) { DoSelect(item, FALSE); }
 
     // select an item and send a notification about it
     void SelectAndNotify(int item);
diff --git a/include/wx/univ/setup.h b/include/wx/univ/setup.h
index 1873148307..ed4f25881e 100644
--- a/include/wx/univ/setup.h
+++ b/include/wx/univ/setup.h
@@ -13,500 +13,1316 @@
 #define _WX_UNIV_SETUP_H_
 
 // ----------------------------------------------------------------------------
-// not all ports implement everything...
+// global settings
 // ----------------------------------------------------------------------------
 
-// FIXME: why do we have different sections for Mac/OS2/the rest? Most settings
-//        should have the same value, like this it's a real pain to update this
-//        file...
+// define this to 0 when building wxBase library - this can also be done from
+// makefile/project file overriding the value here
+#ifndef wxUSE_GUI
+    #define wxUSE_GUI 1
+#endif // wxUSE_GUI
 
-#define wxUSE_DYNAMIC_LOADER 0
+// ----------------------------------------------------------------------------
+// compatibility settings
+// ----------------------------------------------------------------------------
 
-#define wxUSE_PROTOCOL 0
-#define wxUSE_URL 0
+// This setting determines the compatibility with 1.68 API:
+// Level 0: no backward compatibility, all new features
+// Level 1: some extra methods are defined for compatibility.
+//
+// Default is 0.
+//
+// Recommended setting: 0 (in fact the compatibility code is now very minimal
+// so there is little advantage to setting it to 1.
+#define WXWIN_COMPATIBILITY 0
 
-#define wxUSE_UNICODE_MSLU 0
+// This setting determines the compatibility with 2.0 API: set it to 1 to
+// enable it
+//
+// Default is 0.
+//
+// Recommended setting: 0 (please update your code instead!)
+#define WXWIN_COMPATIBILITY_2 0
+
+// This setting determines the compatibility with 2.0 API: set it to 1 to
+// enable it
+//
+// Default is 1.
+//
+// Recommended setting: 0 (please update your code instead!)
+#define WXWIN_COMPATIBILITY_2_2 0
+
+// in wxMSW version 2.1.11 and earlier, wxIcon always derives from wxBitmap,
+// but this is very dangerous because you can mistakenly pass an icon instead
+// of a bitmap to a function taking "const wxBitmap&" - which will *not* work
+// because an icon is not a valid bitmap
+//
+// Starting from 2.1.12, you have the choice under this backwards compatible
+// behaviour (your code will still compile, but probably won't behave as
+// expected!) and not deriving wxIcon class from wxBitmap, but providing a
+// conversion ctor wxBitmap(const wxIcon&) instead.
+//
+// Recommended setting: 0
+#define wxICON_IS_BITMAP 0
+
+// Define as 1 for font size to be backward compatible to 1.63 and earlier.
+// 1.64 and later define point sizes to be compatible with Windows.
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxFONT_SIZE_COMPATIBILITY 0
+
+// Set to 0 for accurate dialog units, else 1 to be as per 2.1.16 and before.
+// If migrating between versions, your dialogs may seem to shrink.
+//
+// Default is 1
+//
+// Recommended setting: 0 (the new calculations are more correct!)
+#define wxDIALOG_UNIT_COMPATIBILITY 0
+
+// ----------------------------------------------------------------------------
+// debugging settings
+// ----------------------------------------------------------------------------
 
-#if defined(__WXMAC__)
+// Generic comment about debugging settings: they are very useful if you don't
+// use any other memory leak detection tools such as Purify/BoundsChecker, but
+// are probably redundant otherwise. Also, Visual C++ CRT has the same features
+// as wxWindows memory debugging subsystem built in since version 5.0 and you
+// may prefer to use it instead of built in memory debugging code because it is
+// faster and more fool proof.
+//
+// Using VC++ CRT memory debugging is enabled by default in debug mode
+// (__WXDEBUG__) if wxUSE_GLOBAL_MEMORY_OPERATORS is *not* enabled (i.e. is 0)
+// and if __NO_VC_CRTDBG__ is not defined.
 
-#define wxUSE_GUI            1
-#define WXWIN_COMPATIBILITY  0
-#define wxICON_IS_BITMAP    0
-#define wxFONT_SIZE_COMPATIBILITY    0
-#define wxDIALOG_UNIT_COMPATIBILITY   0
-#define wxUSE_DEBUG_CONTEXT 0
+// If 1, enables wxDebugContext, for writing error messages to file, etc. If
+// __WXDEBUG__ is not defined, will still use the normal memory operators.
+//
+// Default is 0
+//
+// Recommended setting: 0
+#ifdef __MWERKS__
+    #define wxUSE_DEBUG_CONTEXT 1
+#else
+    #define wxUSE_DEBUG_CONTEXT 0
+#endif
+
+// If 1, enables debugging versions of wxObject::new and wxObject::delete *IF*
+// __WXDEBUG__ is also defined.
+//
+// WARNING: this code may not work with all architectures, especially if
+// alignment is an issue. This switch is currently ignored for mingw / cygwin
+//
+// Default is 0
+//
+// Recommended setting: 1 if you are not using a memory debugging tool, else 0
 #define wxUSE_MEMORY_TRACING 0
+
+// In debug mode, cause new and delete to be redefined globally.
+// If this causes problems (e.g. link errors which is a common problem
+// especially if you use another library which also redefines the global new
+// and delete), set this to 0.
+// This switch is currently ignored for mingw / cygwin
+//
+// Default is 0
+//
+// Recommended setting: 0
 #define wxUSE_GLOBAL_MEMORY_OPERATORS 0
+
+// In debug mode, causes new to be defined to be WXDEBUG_NEW (see object.h). If
+// this causes problems (e.g. link errors), set this to 0. You may need to set
+// this to 0 if using templates (at least for VC++). This switch is currently
+// ignored for mingw / cygwin / CodeWarrior
+//
+// Default is 0
+//
+// Recommended setting: 0
 #define wxUSE_DEBUG_NEW_ALWAYS 0
-#define wxUSE_ON_FATAL_EXCEPTION 0
 
+// wxHandleFatalExceptions() may be used to catch the program faults at run
+// time and, instead of terminating the program with a usual GPF message box,
+// call the user-defined wxApp::OnFatalException() function. If you set
+// wxUSE_ON_FATAL_EXCEPTION to 0, wxHandleFatalExceptions() will not work.
+//
+// This setting is for Win32 only and can only be enabled if your compiler
+// supports Win32 structured exception handling (currently only VC++ does)
+//
+// Default is 1
+//
+// Recommended setting: 1 if your compiler supports it.
+#ifdef _MSC_VER
+    #define wxUSE_ON_FATAL_EXCEPTION 1
+#else
+    #define wxUSE_ON_FATAL_EXCEPTION 0
+#endif
+
+// ----------------------------------------------------------------------------
+// Unicode support
+// ----------------------------------------------------------------------------
+
+// Set wxUSE_UNICODE to 1 to compile wxWindows in Unicode mode: wxChar will be
+// defined as wchar_t, wxString will use Unicode internally. If you set this
+// to 1, you must use wxT() macro for all literal strings in the program.
+//
+// Unicode is currently only fully supported under Windows NT/2000/XP (Windows 9x
+// doesn't support it and the programs compiled in Unicode mode will not run
+// under 9x).
+//
+// Default is 0
+//
+// Recommended setting: 0 (unless you only plan to use Windows NT/2000/XP)
 #define wxUSE_UNICODE 0
-#define wxUSE_WCHAR_T 0
+
+// Set wxUSE_UNICODE_MSLU to 1 if you want to compile wxWindows in Unicode mode
+// and be able to run compiled apps under Windows 9x as well as NT/2000/XP. This
+// setting enables use of unicows.dll from MSLU (MS Layer for Unicode, see
+// http://www.microsoft.com/globaldev/Articles/mslu_announce.asp). Note that you
+// will have to modify the makefiles to include unicows.lib import library as the first
+// library (if you use MSVC, you can run the makefile with "nmake MSLU=1 UNICODE=1"
+// command).
+//
+// If your compiler doesn't have unicows.lib, you can get a version of it at
+// http://libunicows.sourceforge.net
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxUSE_UNICODE_MSLU 0
+
+// Setting wxUSE_WCHAR_T to 1 gives you some degree of Unicode support without
+// compiling the program in Unicode mode. More precisely, it will be possible
+// to construct wxString from a wide (Unicode) string and convert any wxString
+// to Unicode.
+//
+// Default is 1
+//
+// Recommended setting: 1 for win32 else 0
+#if defined(__WIN32__)
+    #define wxUSE_WCHAR_T 0 //? unresolved external symbol wxCharsetToCodepage
+#else
+    #define wxUSE_WCHAR_T 0
+#endif
+
+// ----------------------------------------------------------------------------
+// global features
+// ----------------------------------------------------------------------------
+
+// Support for message/error logging. This includes wxLogXXX() functions and
+// wxLog and derived classes. Don't set this to 0 unless you really know what
+// you are doing.
+//
+// Default is 1
+//
+// Recommended setting: 1 (always)
 #define wxUSE_LOG 1
-#define wxUSE_LOGGUI 1
+
+// Support for command line parsing using wxCmdLineParser class.
+//
+// Default is 1
+//
+// Recommended setting: 1 (can be set to 0 if you don't use the cmd line)
+#define wxUSE_CMDLINE_PARSER 1
+
+// Recommended setting: 1
 #define wxUSE_LOGWINDOW 1
-#define wxUSE_LOG_DIALOG 0
-#define wxUSE_THREADS 0
-#define wxUSE_STREAMS       0
-#define wxUSE_STD_IOSTREAM  0
-#define wxUSE_SERIAL        0
-#define wxUSE_LONGLONG      1
-#define wxUSE_TIMER      1
-#define wxUSE_STOPWATCH  1
-#define wxUSE_TIMEDATE      0
-#define wxUSE_DATETIME      1
-#define wxUSE_CONFIG           0
-#define wxUSE_CONFIG_NATIVE   0
-#define wxUSE_DIALUP_MANAGER   0
-#define wxUSE_DYNLIB_CLASS  0
-#define wxUSE_SOCKETS       0
-#define wxUSE_FILESYSTEM    0
-#define wxUSE_FS_ZIP        0
-#define wxUSE_FS_INET       0
-#define wxUSE_ZIPSTREAM     0
-#define wxUSE_ZLIB          0
-#define wxUSE_FILESYSTEM    0
-#define wxUSE_FS_ZIP        0
-#define wxUSE_FS_INET       0
-#define wxUSE_ZIPSTREAM     0
-#define wxUSE_ZLIB          0
-#define wxUSE_APPLE_IEEE          0
-#define wxUSE_FILE                1
-#define wxUSE_FFILE               1
-#define wxUSE_TEXTFILE            0
-#define wxUSE_INTL                0
-#define wxUSE_MENUS 0 // was 1
-#define wxUSE_TOOLBAR 1
-#define wxUSE_TOOLBAR_NATIVE 0
-#define wxUSE_TOOLBAR_SIMPLE 0
-#define wxUSE_NOTEBOOK 1
-#define wxUSE_FONTMAP 0
-#define wxUSE_MIMETYPE 0
-#define wxUSE_IMAGE        1
-#define wxUSE_SYSTEM_OPTIONS 1
 
-#define wxUSE_CONTROLS     1
-#define wxUSE_POPUPWIN     1
-#define wxUSE_TIPWINDOW    1
-#define wxUSE_BUTTON       1
-#define wxUSE_BMPBUTTON    1
-#define wxUSE_CALENDARCTRL 0
-#define wxUSE_CARET        1
-#define wxUSE_CHECKBOX     1
-#define wxUSE_CHECKLISTBOX 1
-#define wxUSE_CHOICE       0
-#define wxUSE_COMBOBOX     0 // was 1
-#define wxUSE_GAUGE        1
-#define wxUSE_IMAGLIST     1
-#define wxUSE_LISTBOX      1
-#define wxUSE_LISTCTRL     0
-#define wxUSE_RADIOBOX     1
-#define wxUSE_RADIOBTN     1
-#define wxUSE_SASH         0
-#define wxUSE_SCROLLBAR    1
-#define wxUSE_SLIDER       1
-#define wxUSE_SPINBTN      1
-#define wxUSE_SPINCTRL     1
-#define wxUSE_STATBOX      1
-#define wxUSE_STATLINE     1
-#define wxUSE_STATTEXT     1
-#define wxUSE_STATBMP      1
-#define wxUSE_STATUSBAR    1
-#define wxUSE_TEXTCTRL     1
-#define wxUSE_TOOLTIPS     0
-#define wxUSE_TREECTRL     0
-
-#define wxUSE_NATIVE_STATUSBAR        0
-#define wxUSE_BUTTONBAR    0
-#define wxUSE_GRID         0
-#define wxUSE_NEW_GRID     0
-#define wxUSE_VALIDATORS 0
-#define wxUSE_DC_CACHEING 0
-#define wxUSE_ACCEL 1
-#define wxUSE_GENERIC_DIALOGS_IN_MSW 0
-#define wxUSE_COMMON_DIALOGS 0
-#define wxUSE_TEXTDLG 0
-#define wxUSE_PROGRESSDLG 0
-#define wxUSE_BUSYINFO      0
-#define wxUSE_DIRDLG 0
-#define wxUSE_FONTDLG 0
-#define wxUSE_FILEDLG 0
-#define wxUSE_FILEDLG 0
-#define wxUSE_COLOURDLG 0
-#define wxUSE_CHOICEDLG 0
-#define wxUSE_NUMBERDLG 1
-#define wxUSE_STARTUP_TIPS 0
-#define wxUSE_MSGDLG       1
-#define wxUSE_SPLITTER     1
-#define wxUSE_TAB_DIALOG   0
-
-#define wxUSE_JOYSTICK 0
-#define wxUSE_METAFILE              0
-#define wxUSE_ENH_METAFILE          0
-#define wxUSE_WIN_METAFILES_ALWAYS  0
-#define wxUSE_DOC_VIEW_ARCHITECTURE 0
-#define wxUSE_MDI_ARCHITECTURE    0
-#define wxUSE_PRINTING_ARCHITECTURE  0
-#define wxUSE_HTML          0
-#define wxUSE_PLOT           0
-#define wxUSE_GLCANVAS       0
-#define wxUSE_TREELAYOUT     0
-#define wxUSE_IPC         0
-#define wxUSE_HELP        0
-#define wxUSE_MS_HTML_HELP 0
-#define wxUSE_RESOURCES   0
-#define wxUSE_CONSTRAINTS 1
-#define wxUSE_CLIPBOARD   0
-#define wxUSE_DATAOBJ     1
-#define wxUSE_SPLINES     0
-#define wxUSE_DRAG_AND_DROP 0
-#define wxUSE_XPM_IN_MSW   1
-#define wxUSE_XPM         1
-#define wxUSE_IMAGE_LOADING_IN_MSW        1
-#define wxUSE_RESOURCE_LOADING_IN_MSW     0
-#define wxUSE_WX_RESOURCES        0
-#define wxUSE_POSTSCRIPT  0
-#define wxUSE_AFM_FOR_POSTSCRIPT 0
-#define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 0
-#define wxUSE_ODBC          0
-#define wxODBC_FWD_ONLY_CURSORS 0
-#define wxODBC_BACKWARD_COMPATABILITY 0
-#define REMOVE_UNUSED_ARG   1
-#define wxUSE_IOSTREAMH     0
+// Recommended setting: 1
+#define wxUSE_LOGGUI 1
 
-#define wxUSE_ICO_CUR       1
+// Recommended setting: 1
+#define wxUSE_LOG_DIALOG 1
 
-#define wxUSE_MFC           0
-#define wxUSE_OLE           0
-#define wxUSE_CTL3D                      0
-#define wxUSE_ITSY_BITSY             0
-#define wxUSE_DYNAMIC_CLASSES     1
+// Support for multithreaded applications: if 1, compile in thread classes
+// (thread.h) and make the library a bit more thread safe. Although thread
+// support is quite stable by now, you may still consider recompiling the
+// library without it if you have no use for it - this will result in a
+// somewhat smaller and faster operation.
+//
+// This is ignored under Win16, threads are only supported under Win32.
+//
+// Default is 1
+//
+// Recommended setting: 0 unless you do plan to develop MT applications
+#define wxUSE_THREADS 1
 
+// If enabled (1), compiles wxWindows streams classes
+#define wxUSE_STREAMS 1
 
-#elif defined(__WXPM__)
+// Use standard C++ streams if 1. If 0, use wxWin streams implementation.
+#ifdef __MWERKS__
+    #define wxUSE_STD_IOSTREAM 1
+#else
+    #define wxUSE_STD_IOSTREAM 0
+#endif
 
-#define wxUSE_GUI            1
-#define WXWIN_COMPATIBILITY  0
-#define wxICON_IS_BITMAP    0
-#define wxFONT_SIZE_COMPATIBILITY    0
-#define wxDIALOG_UNIT_COMPATIBILITY   0
-#define wxUSE_DEBUG_CONTEXT 0
-#define wxUSE_MEMORY_TRACING 0
-#define wxUSE_GLOBAL_MEMORY_OPERATORS 0
-#define wxUSE_DEBUG_NEW_ALWAYS 0
-#define wxUSE_ON_FATAL_EXCEPTION 0
+// ----------------------------------------------------------------------------
+// non GUI features selection
+// ----------------------------------------------------------------------------
 
-#define wxUSE_UNICODE 0
-#define wxUSE_WCHAR_T 0
-#define wxUSE_LOG 1
-#define wxUSE_LOGGUI 1
-#define wxUSE_LOGWINDOW 1
-#define wxUSE_LOG_DIALOG 0
-#define wxUSE_THREADS 0
-#define wxUSE_STREAMS       0
-#define wxUSE_STD_IOSTREAM  0
-#define wxUSE_SERIAL        0
-#define wxUSE_LONGLONG      1
-#define wxUSE_TIMER      1
-#define wxUSE_STOPWATCH  1
-#define wxUSE_TIMEDATE      0
-#define wxUSE_DATETIME      1
-#define wxUSE_CONFIG           0
-#define wxUSE_CONFIG_NATIVE   0
-#define wxUSE_DIALUP_MANAGER   0
-#define wxUSE_DYNLIB_CLASS  0
-#define wxUSE_SOCKETS       0
-#define wxUSE_FILESYSTEM    0
-#define wxUSE_FS_ZIP        0
-#define wxUSE_FS_INET       0
-#define wxUSE_ZIPSTREAM     0
-#define wxUSE_ZLIB          0
-#define wxUSE_APPLE_IEEE          0
-#define wxUSE_FILE                1
-#define wxUSE_FFILE               1
-#define wxUSE_TEXTFILE            0
-#define wxUSE_INTL                0
-#define wxUSE_MENUS        1
-#define wxUSE_TOOLBAR      1
-#define wxUSE_TOOLBAR_NATIVE 0
-#define wxUSE_TOOLBAR_SIMPLE 0
-#define wxUSE_NOTEBOOK     1
-#define wxUSE_FONTMAP      0
-#define wxUSE_MIMETYPE     0
-#define wxUSE_IMAGE        1
+// Set wxUSE_LONGLONG to 1 to compile the wxLongLong class. This is a 64 bit
+// integer which is implemented in terms of native 64 bit integers if any or
+// uses emulation otherwise.
+//
+// This class is required by wxDateTime and so you should enable it if you want
+// to use wxDateTime. For most modern platforms, it will use the native 64 bit
+// integers in which case (almost) all of its functions are inline and it
+// almost does not take any space, so there should be no reason to switch it
+// off.
+//
+// Recommended setting: 1
+#define wxUSE_LONGLONG 1
+
+// Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
+// POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
+//
+// Default is 1
+//
+// Recommended setting: 1 (wxFile is highly recommended as it is required by
+// i18n code, wxFileConfig and others)
+#define wxUSE_FILE 1
+#define wxUSE_FFILE 1
+
+// Use wxFSVolume class providing access to the configured/active mount points
+//
+// Default is 1
+//
+// Recommended setting: 1 (but may be safely disabled if you don't use it)
+#define wxUSE_FSVOLUME 1
+
+// use wxTextBuffer class: required by wxTextFile
+#define wxUSE_TEXTBUFFER 1
+
+// use wxTextFile class: requires wxFile and wxTextBuffer, required by
+// wxFileConfig
+#define wxUSE_TEXTFILE 1
+
+// i18n support: _() macro, wxLocale class. Requires wxTextFile.
+#define wxUSE_INTL 1
+
+// Set wxUSE_DATETIME to 1 to compile the wxDateTime and related classes which
+// allow to manipulate dates, times and time intervals. wxDateTime replaces the
+// old wxTime and wxDate classes which are still provided for backwards
+// compatibility (and implemented in terms of wxDateTime).
+//
+// Note that this class is relatively new and is still officially in alpha
+// stage because some features are not yet (fully) implemented. It is already
+// quite useful though and should only be disabled if you are aiming at
+// absolutely minimal version of the library.
+//
+// Requires: wxUSE_LONGLONG
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_DATETIME 1
+
+// wxUSE_TIMEDATE enables compilation of the old wxDate and wxTime classes (not
+// the same as wxDateTime!). These classes are obsolete and shouldn't be used
+// in new code
+//
+// Default is 0
+//
+// Recommended setting: 0 unless you have legacy code which uses these classes
+#define wxUSE_TIMEDATE 0
+
+// Set wxUSE_TIMER to 1 to compile wxTimer class
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_TIMER 1
+
+// Use wxStopWatch clas.
+//
+// Default is 1
+//
+// Recommended setting: 1 (needed by wxSocket)
+#define wxUSE_STOPWATCH 1
+
+// Setting wxUSE_CONFIG to 1 enables the use of wxConfig and related classes
+// which allow the application to store its settings in the persistent
+// storage. Setting this to 1 will also enable on-demand creation of the
+// global config object in wxApp.
+//
+// See also wxUSE_CONFIG_NATIVE below.
+//
+// Recommended setting: 1
+#define wxUSE_CONFIG 1
+
+// If wxUSE_CONFIG is 1, you may choose to use either the native config
+// classes under Windows (using .INI files under Win16 and the registry under
+// Win32) or the portable text file format used by the config classes under
+// Unix.
+//
+// Default is 1 to use native classes. Note that you may still use
+// wxFileConfig even if you set this to 1 - just the config object created by
+// default for the applications needs will be a wxRegConfig or wxIniConfig and
+// not wxFileConfig.
+//
+// Recommended setting: 0 (universal should not use native)
+#if defined(__WIN32__)
+    #define wxUSE_CONFIG_NATIVE 0
+#else
+    #define wxUSE_CONFIG_NATIVE 0
+#endif
+
+// If wxUSE_DIALUP_MANAGER is 1, compile in wxDialUpManager class which allows
+// to connect/disconnect from the network and be notified whenever the dial-up
+// network connection is established/terminated. Requires wxUSE_DYNAMIC_LOADER.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#if defined(__WIN32__)
+    #define wxUSE_DIALUP_MANAGER 1
+#else
+    #define wxUSE_DIALUP_MANAGER 0
+#endif
+
+// Compile in classes for run-time DLL loading and function calling.
+// Required by wxUSE_DIALUP_MANAGER.
+//
+// This setting is for Win32 only
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#if defined(__WIN32__)
+    #define wxUSE_DYNLIB_CLASS 1
+#else
+    #define wxUSE_DYNLIB_CLASS 0
+#endif
+
+// experimental, don't use for now
+#if defined(__WIN32__)
+    #define wxUSE_DYNAMIC_LOADER 1
+#else
+    #define wxUSE_DYNAMIC_LOADER 0
+#endif
+
+// Set to 1 to use socket classes
+#define wxUSE_SOCKETS 1
+
+// Set to 1 to enable virtual file systems (required by wxHTML)
+#define wxUSE_FILESYSTEM 1
+
+// Set to 1 to enable virtual ZIP filesystem (requires wxUSE_FILESYSTEM)
+#define wxUSE_FS_ZIP 1
+
+// Set to 1 to compile wxZipInput/OutputStream classes.
+#define wxUSE_ZIPSTREAM 1
+
+// Set to 1 to compile wxZlibInput/OutputStream classes. Also required by
+// wxUSE_LIBPNG.
+#define wxUSE_ZLIB 1
+
+// Set to 1 to enable virtual Internet filesystem (requires wxUSE_FILESYSTEM)
+#define wxUSE_FS_INET 1
+
+// If enabled, the code written by Apple will be used to write, in a portable
+// way, float on the disk. See extended.c for the license which is different
+// from wxWindows one.
+//
+// Default is 1.
+//
+// Recommended setting: 1 unless you don't like the license terms (unlikely)
+#define wxUSE_APPLE_IEEE 1
+
+// Joystick support class
+#if defined(__WIN32__)
+    #define wxUSE_JOYSTICK 1
+#else
+    #define wxUSE_JOYSTICK 1
+#endif
+
+// wxFontMapper class
+#define wxUSE_FONTMAP 1
+
+// wxMimeTypesManager class
+#define wxUSE_MIMETYPE 1
+
+// wxProtocol and related classes: if you want to use either of wxFTP, wxHTTP
+// or wxURL you need to set this to 1.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_PROTOCOL 1
+
+// Define this to use wxURL class.
+#define wxUSE_URL 1
+
+// The settings for the individual URL schemes
+#define wxUSE_PROTOCOL_FILE 1
+#define wxUSE_PROTOCOL_FTP 1
+#define wxUSE_PROTOCOL_HTTP 1
+
+// Support for regular expression matching via wxRegEx class: enable this to
+// use POSIX regular expressions in your code. You need to compile regex
+// library from src/regex to use it under Windows.
+//
+// Default is 0
+//
+// Recommended setting: 1 if your compiler supports it, if it doesn't please
+// contribute us a makefile for src/regex for it
+#define wxUSE_REGEX 1
+
+// wxSystemOptions class
 #define wxUSE_SYSTEM_OPTIONS 1
 
+// wxWave class
+#if defined(__WIN32__)
+    #define wxUSE_WAVE 1
+#else
+    #define wxUSE_WAVE 1
+#endif
+
+// ----------------------------------------------------------------------------
+// Individual GUI controls
+// ----------------------------------------------------------------------------
+
+// You must set wxUSE_CONTROLS to 1 if you are using any controls at all
+// (without it, wxControl class is not compiled)
+//
+// Default is 1
+//
+// Recommended setting: 1 (don't change except for very special programs)
 #define wxUSE_CONTROLS     1
-#define wxUSE_POPUPWIN     1
-#define wxUSE_TIPWINDOW    1
-#define wxUSE_BUTTON       1
-#define wxUSE_BMPBUTTON    1
-#define wxUSE_CALENDARCTRL 0
-#define wxUSE_CARET        1
-#define wxUSE_CHECKBOX     1
-#define wxUSE_CHECKLISTBOX 1
-#define wxUSE_CHOICE       0
-#define wxUSE_COMBOBOX     1
-#define wxUSE_GAUGE        1
-#define wxUSE_IMAGLIST     1
-#define wxUSE_LISTBOX      1
-#define wxUSE_LISTCTRL     0
-#define wxUSE_RADIOBOX     1
-#define wxUSE_RADIOBTN     1
-#define wxUSE_SASH         0
-#define wxUSE_SCROLLBAR    1
-#define wxUSE_SLIDER       1
-#define wxUSE_SPINBTN      1
-#define wxUSE_SPINCTRL     1
-#define wxUSE_STATBOX      1
-#define wxUSE_STATLINE     1
-#define wxUSE_STATTEXT     1
-#define wxUSE_STATBMP      1
-//#define wxUSE_STATUSBAR    0
-#define wxUSE_TEXTCTRL     1
-#define wxUSE_TOOLTIPS     0
-#define wxUSE_TREECTRL     0
-
-#define wxUSE_NATIVE_STATUSBAR        0
-#define wxUSE_BUTTONBAR    0
-#define wxUSE_GRID         0
-#define wxUSE_NEW_GRID     0
-#define wxUSE_VALIDATORS   0
-#define wxUSE_DC_CACHEING  1
-#define wxUSE_ACCEL        1
-#define wxUSE_GENERIC_DIALOGS_IN_MSW 0
-#define wxUSE_COMMON_DIALOGS 0
-#define wxUSE_TEXTDLG      0
-#define wxUSE_PROGRESSDLG  0
-#define wxUSE_BUSYINFO     0
-#define wxUSE_DIRDLG       0
-#define wxUSE_FONTDLG      0
-#define wxUSE_FILEDLG      0
-#define wxUSE_COLOURDLG    0
-#define wxUSE_TEXTDLG      0
-#define wxUSE_CHOICEDLG    0
-#define wxUSE_NUMBERDLG    0
-#define wxUSE_STARTUP_TIPS 0
-#define wxUSE_MSGDLG       1
-#define wxUSE_SPLITTER     1
-#define wxUSE_TAB_DIALOG   0
-
-#define wxUSE_METAFILE              0
-#define wxUSE_ENH_METAFILE          0
-#define wxUSE_WIN_METAFILES_ALWAYS  0
-#define wxUSE_DOC_VIEW_ARCHITECTURE 0
-#define wxUSE_MDI_ARCHITECTURE    0
-#define wxUSE_PRINTING_ARCHITECTURE  0
-#define wxUSE_HTML          0
-#define wxUSE_PLOT          0
-#define wxUSE_GLCANVAS      0
-#define wxUSE_TREELAYOUT    0
-#define wxUSE_IPC           0
-#define wxUSE_HELP          0
-#define wxUSE_MS_HTML_HELP  0
-#define wxUSE_WXHTML_HELP   0
-#define wxUSE_RESOURCES     0
-#define wxUSE_CONSTRAINTS   1
-#define wxUSE_CLIPBOARD     0
-#define wxUSE_DATAOBJ       1
-#define wxUSE_SPLINES       0
-#define wxUSE_DRAG_AND_DROP 0
-#define wxUSE_XPM_IN_MSW    1
-#define wxUSE_XPM           1
-#define wxUSE_IMAGE_LOADING_IN_MSW        1
-#define wxUSE_RESOURCE_LOADING_IN_MSW     0
-#define wxUSE_WX_RESOURCES  0
-#define wxUSE_POSTSCRIPT    0
-#define wxUSE_AFM_FOR_POSTSCRIPT 0
-#define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 0
-#define wxUSE_ODBC          0
-#define wxODBC_FWD_ONLY_CURSORS 0
-#define wxODBC_BACKWARD_COMPATABILITY 0
-#define REMOVE_UNUSED_ARG   1
-#define wxUSE_IOSTREAMH     0
 
-#define wxUSE_ICO_CUR       1
+// wxPopupWindow class is a top level transient window. It is currently used
+// to implement wxTipWindow
+//
+// Default is 1
+//
+// Recommended setting: 1 (may be set to 0 if you don't wxUSE_TIPWINDOW)
+#define wxUSE_POPUPWIN     1
 
-#define wxUSE_MFC           0
-#define wxUSE_OLE           0
-#define wxUSE_CTL3D         0
-#define wxUSE_ITSY_BITSY    0
-#define wxUSE_DYNAMIC_CLASSES     1
+// wxTipWindow allows to implement the custom tooltips, it is used by the
+// context help classes. Requires wxUSE_POPUPWIN.
+//
+// Default is 1
+//
+// Recommended setting: 1 (may be set to 0)
+#define wxUSE_TIPWINDOW    1
 
-#define wxUSE_JOYSTICK      1
-#define wxUSE_REGEX         0
-#define wxUSE_STATUSBAR     1
+// Each of the settings below corresponds to one wxWindows control. They are
+// all switched on by default but may be disabled if you are sure that your
+// program (including any standard dialogs it can show!) doesn't need them and
+// if you desperately want to save some space. If you use any of these you must
+// set wxUSE_CONTROLS as well.
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_BUTTON       1    // wxButton
+#define wxUSE_BMPBUTTON    1    // wxBitmapButton
+#define wxUSE_CALENDARCTRL 1    // wxCalendarCtrl
+#define wxUSE_CHECKBOX     1    // wxCheckBox
+#define wxUSE_CHECKLISTBOX 1    // wxCheckListBox (requires wxUSE_OWNER_DRAWN)
+#define wxUSE_CHOICE       1    // wxChoice
+#define wxUSE_COMBOBOX     1    // wxComboBox
+#define wxUSE_GAUGE        1    // wxGauge
+#define wxUSE_LISTBOX      1    // wxListBox
+#define wxUSE_LISTCTRL     1    // wxListCtrl
+#define wxUSE_RADIOBOX     1    // wxRadioBox
+#define wxUSE_RADIOBTN     1    // wxRadioButton
+#define wxUSE_SCROLLBAR    1    // wxScrollBar
+#define wxUSE_SLIDER       1    // wxSlider
+#define wxUSE_SPINBTN      1    // wxSpinButton
+#define wxUSE_SPINCTRL     1    // wxSpinCtrl
+#define wxUSE_STATBOX      1    // wxStaticBox
+#define wxUSE_STATLINE     1    // wxStaticLine
+#define wxUSE_STATTEXT     1    // wxStaticText
+#define wxUSE_STATBMP      1    // wxStaticBitmap
+#define wxUSE_TEXTCTRL     1    // wxTextCtrl
+#define wxUSE_TOGGLEBTN    0    // requires wxButton //? not supported in generic and wrong in msw
+#define wxUSE_TREECTRL     1    // wxTreeCtrl
 
-#else // !Mac, !OS2
+// Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR
+// below either wxStatusBar95 or a generic wxStatusBar will be used.
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_STATUSBAR 1
 
-#define wxUSE_GUI            1
-#define WXWIN_COMPATIBILITY  0
-#define wxICON_IS_BITMAP    0
-#define wxFONT_SIZE_COMPATIBILITY    0
-#define wxDIALOG_UNIT_COMPATIBILITY   0
-#define wxUSE_DEBUG_CONTEXT 0
-#define wxUSE_MEMORY_TRACING 0
-#define wxUSE_GLOBAL_MEMORY_OPERATORS 0
-#define wxUSE_DEBUG_NEW_ALWAYS 0
-#define wxUSE_ON_FATAL_EXCEPTION 0
-#define wxUSE_REGEX 0
+// Two status bar implementations are available under Win32: the generic one
+// or the wrapper around native control. For native look and feel the native
+// version should be used.
+//
+// Default is 0.
+//
+// Recommended setting: 0
+#define wxUSE_NATIVE_STATUSBAR 0
 
-#define wxUSE_UNICODE 0
-#define wxUSE_WCHAR_T 0
-#define wxUSE_LOG 1
-#define wxUSE_LOGGUI 1
-#define wxUSE_LOGWINDOW 1
-#define wxUSE_LOG_DIALOG 0
-#define wxUSE_THREADS 0
-#define wxUSE_STREAMS       0
-#define wxUSE_STD_IOSTREAM  0
-#define wxUSE_SERIAL        0
-#define wxUSE_LONGLONG      1
-#define wxUSE_TIMER      1
-#define wxUSE_STOPWATCH  1
-#define wxUSE_TIMEDATE      0
-#define wxUSE_DATETIME      1
-#define wxUSE_CONFIG           0
-#define wxUSE_CONFIG_NATIVE   0
-#define wxUSE_DIALUP_MANAGER   0
-#define wxUSE_DYNLIB_CLASS  0
-#define wxUSE_SOCKETS       0
-#define wxUSE_FILESYSTEM    0
-#define wxUSE_FS_ZIP        0
-#define wxUSE_FS_INET       0
-#define wxUSE_ZIPSTREAM     0
-#define wxUSE_ZLIB          0
-#define wxUSE_APPLE_IEEE          0
-#define wxUSE_FILE                1
-#define wxUSE_FFILE               1
-#define wxUSE_TEXTFILE            0
-#define wxUSE_TEXTBUFFER          0
-#define wxUSE_INTL                0
-#define wxUSE_MENUS 1
+// wxToolBar related settings: if wxUSE_TOOLBAR is 0, don't compile any toolbar
+// classes at all. Otherwise, use the native toolbar class unless
+// wxUSE_TOOLBAR_NATIVE is 0. Additionally, the generic toolbar class which
+// supports some features which might not be supported by the native wxToolBar
+// class may be compiled in if wxUSE_TOOLBAR_SIMPLE is 1.
+//
+// Default is 0 for all settings.
+//
+// Recommended setting: 1 for wxUSE_TOOLBAR and 0 for wxUSE_TOOLBAR_NATIVE and
+// wxUSE_TOOLBAR_SIMPLE.
 #define wxUSE_TOOLBAR 1
 #define wxUSE_TOOLBAR_NATIVE 0
 #define wxUSE_TOOLBAR_SIMPLE 0
+
+// this setting is obsolete, value is ignored
+#define wxUSE_BUTTONBAR 0
+
+// wxNotebook is a control with several "tabs" located on one of its sides. It
+// may be used ot logically organise the data presented to the user instead of
+// putting everything in one huge dialog. It replaces wxTabControl and related
+// classes of wxWin 1.6x.
+//
+// Default is 1.
+//
+// Recommended setting: 1
 #define wxUSE_NOTEBOOK 1
-#define wxUSE_FONTMAP 0
-#define wxUSE_MIMETYPE 0
-#define wxUSE_IMAGE        1
-#define wxUSE_SYSTEM_OPTIONS 1
 
-#define wxUSE_CONTROLS     1
-#define wxUSE_POPUPWIN     1
-#define wxUSE_TIPWINDOW    1
-#define wxUSE_BUTTON       1
-#define wxUSE_BMPBUTTON    1
-#define wxUSE_CALENDARCTRL 0
-#define wxUSE_CARET        1
-#define wxUSE_CHECKBOX     1
-#define wxUSE_CHECKLISTBOX 1
-#define wxUSE_CHOICE       0
-#define wxUSE_COMBOBOX     1
-#define wxUSE_GAUGE        1
-#define wxUSE_IMAGLIST     1
-#define wxUSE_LISTBOX      1
-#define wxUSE_LISTCTRL     0
-#define wxUSE_RADIOBOX     1
-#define wxUSE_RADIOBTN     1
-#define wxUSE_SASH         0
-#define wxUSE_SCROLLBAR    1
-#define wxUSE_SLIDER       1
-#define wxUSE_SPINBTN      1
-#define wxUSE_SPINCTRL     1
-#define wxUSE_STATBOX      1
-#define wxUSE_STATLINE     1
-#define wxUSE_STATTEXT     1
-#define wxUSE_STATBMP      1
-#define wxUSE_STATUSBAR    1
-#define wxUSE_TEXTCTRL     1
-#define wxUSE_TOOLTIPS     0
-#define wxUSE_TREECTRL     0
-
-#define wxUSE_NATIVE_STATUSBAR        0
-#define wxUSE_BUTTONBAR    0
-#define wxUSE_GRID         0
-#define wxUSE_NEW_GRID     0
-#define wxUSE_VALIDATORS 0
-#define wxUSE_DC_CACHEING 1
+// wxTabDialog is a generic version of wxNotebook but it is incompatible with
+// the new class. It shouldn't be used in new code.
+//
+// Default is 0.
+//
+// Recommended setting: 0 (use wxNotebook)
+#define wxUSE_TAB_DIALOG 0
+
+// wxGrid class comes in two flavours: the original (pre wxWin 2.2) one and
+// the new, much imporved and enhanced version. The new version is backwards
+// compatible with the old one and should be used whenever possible, i.e. if
+// you set wxUSE_GRID to 1, set wxUSE_NEW_GRID to 1 too.
+//
+// Default is 1 for both options.
+//
+// Recommended setting: 1 for wxUSE_NEW_GRID, 0 if you have an old code using
+// wxGrid and 100% backwards compatibality (with all old wxGrid quirks) is
+// essential.
+//
+// WIN16/BC++ resets wxUSE_NEW_GRID to 0 because it exceeds the data limit.
+#define wxUSE_GRID 1
+#define wxUSE_NEW_GRID 1
+
+// wxProperty[Value/Form/List] classes, used by Dialog Editor
+#define wxUSE_PROPSHEET 1
+
+// ----------------------------------------------------------------------------
+// Miscellaneous GUI stuff
+// ----------------------------------------------------------------------------
+
+// wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar)
 #define wxUSE_ACCEL 1
+
+// Use wxCaret: a class implementing a "cursor" in a text control (called caret
+// under Windows).
+//
+// Default is 1.
+//
+// Recommended setting: 1 (can be safely set to 0, not used by the library)
+#define wxUSE_CARET 1
+
+// Miscellaneous geometry code: needed for Canvas library
+#define wxUSE_GEOMETRY 0
+
+// Use wxImageList. This class is needed by wxNotebook, wxTreeCtrl and
+// wxListCtrl.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (set it to 0 if you don't use any of the controls
+// enumerated above, then this class is mostly useless too)
+#define wxUSE_IMAGLIST 1
+
+// Use wxMenu, wxMenuBar, wxMenuItem.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (can't be disabled under MSW)
+#define wxUSE_MENUS 1
+
+// Use wxSashWindow class.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_SASH 1
+
+// Use wxSplitterWindow class.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_SPLITTER 1
+
+// Use wxToolTip and wxWindow::Set/GetToolTip() methods.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#if defined(__WIN32__)
+    #define wxUSE_TOOLTIPS 0 //? error 'SetWindow' cannot convert parameter 1 ...
+#else
+    #define wxUSE_TOOLTIPS 0
+#endif
+
+// wxValidator class and related methods
+#define wxUSE_VALIDATORS 1
+
+// wxDC cacheing implementation
+#define wxUSE_DC_CACHEING 1
+
+// ----------------------------------------------------------------------------
+// common dialogs
+// ----------------------------------------------------------------------------
+
+// Define 1 to use generic dialogs in Windows, even though they duplicate
+// native common dialog (e.g. wxColourDialog). This is mainly useful for
+// testing.
+//
+// Default is 0
+//
+// Recommended setting: 0
 #define wxUSE_GENERIC_DIALOGS_IN_MSW 0
-#define wxUSE_COMMON_DIALOGS 0
-#define wxUSE_TEXTDLG 0
-#define wxUSE_PROGRESSDLG 0
-#define wxUSE_BUSYINFO      0
-#define wxUSE_DIRDLG 0
-#define wxUSE_FONTDLG 0
-#define wxUSE_FILEDLG 0
-#define wxUSE_COLOURDLG 0
-#define wxUSE_TEXTDLG 0
-#define wxUSE_CHOICEDLG 0
+
+// On rare occasions (e.g. using DJGPP) may want to omit common dialogs (e.g.
+// file selector, printer dialog). Switching this off also switches off the
+// printing architecture and interactive wxPrinterDC.
+//
+// Default is 1
+//
+// Recommended setting: 1 (unless it really doesn't work)
+#define wxUSE_COMMON_DIALOGS 1
+
+// wxBusyInfo displays window with message when app is busy. Works in same way
+// as wxBusyCursor
+#define wxUSE_BUSYINFO 1
+
+// Use single/multiple choice dialogs.
+//
+// Default is 1
+//
+// Recommended setting: 1 (used in the library itself)
+#define wxUSE_CHOICEDLG 1
+
+// Use colour picker dialog
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_COLOURDLG 1
+
+// wxDirDlg class for getting a directory name from user
+#define wxUSE_DIRDLG 1
+
+// TODO: setting to choose the generic or native one
+
+// Use file open/save dialogs.
+//
+// Default is 1
+//
+// Recommended setting: 1 (used in many places in the library itself)
+#if defined(__WIN32__)
+    #define wxUSE_FILEDLG 1
+#else
+    #define wxUSE_FILEDLG 1
+#endif
+
+// Use find/replace dialogs.
+//
+// Default is 1
+//
+// Recommended setting: 1 (but may be safely set to 0)
+#define wxUSE_FINDREPLDLG 1
+
+// Use font picker dialog
+//
+// Default is 1
+//
+// Recommended setting: 1 (used in the library itself)
+#define wxUSE_FONTDLG 1
+
+// Use wxMessageDialog and wxMessageBox.
+//
+// Default is 1
+//
+// Recommended setting: 1 (used in the library itself)
+#define wxUSE_MSGDLG 1
+
+// progress dialog class for lengthy operations
+#define wxUSE_PROGRESSDLG 1
+
+// support for startup tips (wxShowTip &c)
+#define wxUSE_STARTUP_TIPS 1
+
+// text entry dialog and wxGetTextFromUser function
+#define wxUSE_TEXTDLG 1
+
+// number entry dialog
 #define wxUSE_NUMBERDLG 1
-#define wxUSE_STARTUP_TIPS 0
-#define wxUSE_MSGDLG       1
-#define wxUSE_SPLITTER     1
-#define wxUSE_TAB_DIALOG   0
 
+// splash screen class
 #define wxUSE_SPLASH 1
-#define wxUSE_JOYSTICK 0
-#define wxUSE_METAFILE              0
-#define wxUSE_ENH_METAFILE          0
-#define wxUSE_WIN_METAFILES_ALWAYS  0
-#define wxUSE_DOC_VIEW_ARCHITECTURE 0
-#define wxUSE_MDI_ARCHITECTURE    0
-#define wxUSE_PRINTING_ARCHITECTURE  0
-#define wxUSE_HTML          0
-#define wxUSE_PLOT           0
-#define wxUSE_GLCANVAS       0
-#define wxUSE_TREELAYOUT     0
-#define wxUSE_IPC         0
-#define wxUSE_HELP        0
-#define wxUSE_MS_HTML_HELP 0
-#define wxUSE_WXHTML_HELP 0
-#define wxUSE_RESOURCES   0
+
+// wizards
+#define wxUSE_WIZARDDLG 0 //? error '_wxArraywxArrayPages' redefinition
+
+// ----------------------------------------------------------------------------
+// Metafiles support
+// ----------------------------------------------------------------------------
+
+// Windows supports the graphics format known as metafile which is, though not
+// portable, is widely used under Windows and so is supported by wxWin (under
+// Windows only, of course). Win16 (Win3.1) used the so-called "Window
+// MetaFiles" or WMFs which were replaced with "Enhanced MetaFiles" or EMFs in
+// Win32 (Win9x, NT, 2000). Both of these are supported in wxWin and, by
+// default, WMFs will be used under Win16 and EMFs under Win32. This may be
+// changed by setting wxUSE_WIN_METAFILES_ALWAYS to 1 and/or setting
+// wxUSE_ENH_METAFILE to 0. You may also set wxUSE_METAFILE to 0 to not compile
+// in any metafile related classes at all.
+//
+// Default is 1 for wxUSE_ENH_METAFILE and 0 for wxUSE_WIN_METAFILES_ALWAYS.
+//
+// Recommended setting: default or 0 for everything for portable programs.
+#define wxUSE_METAFILE 0
+#define wxUSE_ENH_METAFILE 0
+#define wxUSE_WIN_METAFILES_ALWAYS 0
+
+// ----------------------------------------------------------------------------
+// Big GUI components
+// ----------------------------------------------------------------------------
+
+// Set to 0 to disable document/view architecture
+#define wxUSE_DOC_VIEW_ARCHITECTURE 1
+
+// Set to 0 to disable MDI document/view architecture
+#define wxUSE_MDI_ARCHITECTURE 1
+
+// Set to 0 to disable print/preview architecture code
+#define wxUSE_PRINTING_ARCHITECTURE 1
+
+// wxHTML sublibrary allows to display HTML in wxWindow programs and much,
+// much more.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (wxHTML is great!), set to 0 if you want compile a
+// smaller library.
+#define wxUSE_HTML 1
+
+// OpenGL canvas
+#if defined(__WIN32__)
+    #define wxUSE_GLCANVAS 0 //? error unresolved external symbol ...
+#else
+    #define wxUSE_GLCANVAS 0
+#endif
+
+// wxTreeLayout class
+#define wxUSE_TREELAYOUT 1
+
+// ----------------------------------------------------------------------------
+// Data transfer
+// ----------------------------------------------------------------------------
+
+// Use wxClipboard class for clipboard copy/paste.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_CLIPBOARD 0 //? needs wxUSE_OLE
+
+// Use wxDataObject and related classes. Needed for clipboard and OLE drag and
+// drop
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_DATAOBJ 1
+
+// Use wxDropTarget and wxDropSource classes for drag and drop (this is
+// different from "built in" drag and drop in wxTreeCtrl which is always
+// available). Requires wxUSE_DATAOBJ.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#if defined(__WIN32__)
+    #define wxUSE_DRAG_AND_DROP 0 //? needs wxUSE_OLE
+#else
+    #define wxUSE_DRAG_AND_DROP 0
+#endif
+
+// ----------------------------------------------------------------------------
+// miscellaneous settings
+// ----------------------------------------------------------------------------
+
+// wxSingleInstanceChecker class allows to verify at startup if another program
+// instance is running (it is only available under Win32)
+//
+// Default is 1
+//
+// Recommended setting: 1 (the class is tiny, disabling it won't save much
+// space)
+#if defined(__WIN32__)
+    #define wxUSE_SNGLINST_CHECKER 1
+#else
+    #define wxUSE_SNGLINST_CHECKER 0
+#endif
+
+// Drag image
+#define wxUSE_DRAGIMAGE 1
+
+// Interprocess communication
+#define wxUSE_IPC 1
+
+// Help
+#if defined(__WIN32__)
+    #define wxUSE_HELP 1
+#else
+    #define wxUSE_HELP 1
+#endif
+
+// MS help
+#define wxUSE_MS_HTML_HELP 1
+
+// Use wxHTML-based help controller?
+#define wxUSE_WXHTML_HELP 0 //? error 'type cast' cannot convert from ...
+
+// Use resources
+#define wxUSE_RESOURCES 1
+
+// Window layout constraint system
 #define wxUSE_CONSTRAINTS 1
-#define wxUSE_CLIPBOARD   0
-#define wxUSE_DATAOBJ     1
-#define wxUSE_SPLINES     0
-#define wxUSE_DRAG_AND_DROP 0
-#define wxUSE_XPM_IN_MSW   1
-#define wxUSE_XPM         1
-#define wxUSE_IMAGE_LOADING_IN_MSW        1
-#define wxUSE_RESOURCE_LOADING_IN_MSW     0
-#define wxUSE_WX_RESOURCES        0
-#define wxUSE_POSTSCRIPT  0
-#define wxUSE_AFM_FOR_POSTSCRIPT 0
-#define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 0
-#define wxUSE_ODBC          0
+
+// Splines
+#define wxUSE_SPLINES 1
+
+// Use XPM support in wxBitmap
+//
+// Default is 1, as XPM is now fully supported this makes easier the issue
+// of portable icons and bitmaps
+#if defined(__WIN32__)
+    #define wxUSE_XPM_IN_MSW 1
+#else
+    #define wxUSE_XPM_IN_MSW 0
+#endif
+
+// Use dynamic DIB loading/saving code in utils/dib under MSW.
+#if defined(__WIN32__)
+    #define wxUSE_IMAGE_LOADING_IN_MSW 0 //? needs more testing
+#else
+    #define wxUSE_IMAGE_LOADING_IN_MSW 0
+#endif
+
+// Use dynamic icon/cursor loading/saving code under MSW.
+#if defined(__WIN32__)
+    #define wxUSE_RESOURCE_LOADING_IN_MSW 0 //? needs more testing
+#else
+    #define wxUSE_RESOURCE_LOADING_IN_MSW 0
+#endif
+
+// use wxExpr (a.k.a. PrologIO)
+#define wxUSE_PROLOGIO          0
+
+// Use .wxr resource mechanism (requires PrologIO library)
+#define wxUSE_WX_RESOURCES 0
+
+// Include mouse wheel support
+#define wxUSE_MOUSEWHEEL 1
+
+// ----------------------------------------------------------------------------
+// postscript support settings
+// ----------------------------------------------------------------------------
+
+// Set to 1 for PostScript device context.
+#define wxUSE_POSTSCRIPT 1
+
+// Set to 1 to use font metric files in GetTextExtent
+#define wxUSE_AFM_FOR_POSTSCRIPT 1
+
+// Set to 0 to disable PostScript print/preview architecture code under Windows
+// (just use Windows printing).
+#if defined(__WIN32__)
+    #define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 1
+#else
+    #define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 0
+#endif
+
+// ----------------------------------------------------------------------------
+// database classes
+// ----------------------------------------------------------------------------
+
+// Define 1 to use ODBC classes
+#define wxUSE_ODBC 1
+
+// For backward compatibility reasons, this parameter now only controls the
+// default scrolling method used by cursors.  This default behavior can be
+// overriden by setting the second param of wxDB::wxDbGetConnection() or
+// wxDb() constructor to indicate whether the connection (and any wxDbTable()s
+// that use the connection) should support forward only scrolling of cursors,
+// or both forward and backward support for backward scrolling cursors is
+// dependent on the data source as well as the ODBC driver being used.
 #define wxODBC_FWD_ONLY_CURSORS 0
+
+// Default is 0.  Set to 1 to use the deprecated classes, enum types, function,
+// member variables.  With a setting of 1, full backward compatability with the
+// 2.0.x release is possible. It is STRONGLY recommended that this be set to 0,
+// as future development will be done only on the non-deprecated
+// functions/classes/member variables/etc.
 #define wxODBC_BACKWARD_COMPATABILITY 0
-#define REMOVE_UNUSED_ARG   1
-#define wxUSE_IOSTREAMH     0
-#define wxUSE_LIBPNG        0
-#define wxUSE_LIBJPEG       0
-#define wxUSE_LIBTIFF       0
-#define wxUSE_GIF           0
-#define wxUSE_PNM           0
-#define wxUSE_PCX           0
-
-#define wxUSE_ICO_CUR       1
-
-#define wxUSE_MFC           0
-#define wxUSE_OLE           0
-#define wxUSE_CTL3D                      0
-#define wxUSE_ITSY_BITSY             0
-#define wxUSE_DYNAMIC_CLASSES     1
-
-#endif
-
-#define wxUSE_PALETTE 0
-
-#define wxUSE_LIBPNG        0
-#define wxUSE_LIBJPEG       0
-#define wxUSE_LIBTIFF       0
-#define wxUSE_IFF           0
-#define wxUSE_GIF           0
-#define wxUSE_PNM           0
-#define wxUSE_PCX           0
+
+// ----------------------------------------------------------------------------
+// other compiler (mis)features
+// ----------------------------------------------------------------------------
+
+// Set this to 0 if your compiler can't cope with omission of prototype
+// parameters.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (should never need to set this to 0)
+#define REMOVE_UNUSED_ARG 1
+
+// VC++ 4.2 and above allows <iostream> and <iostream.h> but you can't mix
+// them. Set to 1 for <iostream.h>, 0 for <iostream>
+//
+// Default is 1.
+//
+// Recommended setting: whatever your compiler likes more
+#ifdef __MWERKS__
+    #define wxUSE_IOSTREAMH 1
+#else
+    #define wxUSE_IOSTREAMH 0
+#endif
+
+// ----------------------------------------------------------------------------
+// image format support
+// ----------------------------------------------------------------------------
+
+// wxImage supports many different image formats which can be configured at
+// compile-time. BMP is always supported, others are optional and can be safely
+// disabled if you don't plan to use images in such format sometimes saving
+// substantial amount of code in the final library.
+//
+// Some formats require an extra library which is included in wxWin sources
+// which is mentioned if it is the case.
+
+// Set to 1 for wxImage support (recommended).
+#define wxUSE_IMAGE 1
+
+// Set to 1 for PNG format support (requires libpng). Also requires wxUSE_ZLIB.
+#define wxUSE_LIBPNG 1
+
+// Set to 1 for JPEG format support (requires libjpeg)
+#define wxUSE_LIBJPEG 1
+
+// Set to 1 for TIFF format support (requires libtiff)
+#define wxUSE_LIBTIFF 1
+
+// Set to 1 for GIF format support
+#define wxUSE_GIF 1
+
+// Set to 1 for PNM format support
+#define wxUSE_PNM 1
+
+// Set to 1 for PCX format support
+#define wxUSE_PCX 1
+
+// Set to 1 for IFF format support (Amiga format)
+#define wxUSE_IFF 0
+
+// Set to 1 for XPM format support
+#define wxUSE_XPM 1
+
+// Set to 1 for MS Icons and Cursors format support
+#define wxUSE_ICO_CUR 0
+
+// Set to 1 to compile in wxPalette class
+#if defined(__WIN32__)
+    #define wxUSE_PALETTE 1
+#else
+    #define wxUSE_PALETTE 1
+#endif
+
+// ----------------------------------------------------------------------------
+// Windows-only settings
+// ----------------------------------------------------------------------------
+#if defined(__WINDOWS__)
+
+// Set this to 1 if you want to use wxWindows and MFC in the same program. This
+// will override some other settings (see below)
+//
+// Default is 0.
+//
+// Recommended setting: 0 unless you really have to use MFC
+#define wxUSE_MFC 0
+
+// Set this to 1 for generic OLE support: this is required for drag-and-drop,
+// clipboard, OLE Automation. Only set it to 0 if your compiler is very old and
+// can't compile/doesn't have the OLE headers.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_OLE 0 //? needs more testing
+
+// Set this to 1 to use Microsoft CTL3D library for "3D-look" under Win16 or NT
+// 3.x. This setting is ignored under Win9x and NT 4.0+.
+//
+// Default is 0 for (most) Win32 (systems), 1 for Win16
+//
+// Recommended setting: same as default
+#if defined(__WIN95__) //? wrong test, should be positive
+    #define wxUSE_CTL3D 0
+#else
+    #define wxUSE_CTL3D 0 //? see above
+#endif
+
+// Define as 1 to use Microsoft's ItsyBitsy small title bar library, for
+// wxMiniFrame. This setting is only used for Win3.1; Win9x and NT use native
+// miniframes support instead.
+//
+// Default is 0 for (most) Win32 (systems), 1 for Win16
+//
+// Recommended setting: same as default
+#if defined(__WIN95__) //? wrong test, should be positive
+    #define wxUSE_ITSY_BITSY 0
+#else
+    #define wxUSE_ITSY_BITSY 0 //? see above
+#endif
+
+// Set this to 1 to use RICHEDIT controls for wxTextCtrl with style wxTE_RICH
+// which allows to put more than ~32Kb of text in it even under Win9x (NT
+// doesn't have such limitation).
+//
+// Default is 1 for compilers which support it
+//
+// Recommended setting: 1, only set it to 0 if your compiler doesn't have
+//                      or can't compile <richedit.h>
+#if defined(__WIN95__) && !defined(__TWIN32__) && !defined(__GNUWIN32_OLD__)
+// TODO:  This should be ifdef'ed for any compilers that don't support
+//        RichEdit 2.0 but do have RichEdit 1.0...
+    #define wxUSE_RICHEDIT 0 //? needs more testing
+    #define wxUSE_RICHEDIT2 0 //? needs more testing
+
+#else
+    #define wxUSE_RICHEDIT 0
+    #define wxUSE_RICHEDIT2 0
+#endif
+
+// Set this to 1 to enable support for the owner-drawn menu and listboxes. This
+// is required by wxUSE_CHECKLISTBOX.
+//
+// Default is 1.
+//
+// Recommended setting: 1, set to 0 for a small library size reduction
+#define wxUSE_OWNER_DRAWN 0 //? error 'MSWOnDraw' is not a member of 'wxControl'
+
+#endif
+
+// ----------------------------------------------------------------------------
+// disable the settings which don't work for some compilers
+// ----------------------------------------------------------------------------
+
+#ifndef wxUSE_NORLANDER_HEADERS
+    #if (defined(__MINGW32__) || defined(__CYGWIN__)) && ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95)))
+        #define wxUSE_NORLANDER_HEADERS 1
+    #else
+        #define wxUSE_NORLANDER_HEADERS 0
+    #endif
+#endif
+
+// wxUSE_DEBUG_NEW_ALWAYS doesn't work with CodeWarrior
+#if defined(__MWERKS__)
+    #undef wxUSE_DEBUG_NEW_ALWAYS
+    #define wxUSE_DEBUG_NEW_ALWAYS 0
+#endif
+
+#if defined(__GNUWIN32__)
+// These don't work as expected for mingw32 and cygwin32
+    #undef  wxUSE_MEMORY_TRACING
+    #define wxUSE_MEMORY_TRACING 0
+
+    #undef  wxUSE_GLOBAL_MEMORY_OPERATORS
+    #define wxUSE_GLOBAL_MEMORY_OPERATORS 0
+
+    #undef  wxUSE_DEBUG_NEW_ALWAYS
+    #define wxUSE_DEBUG_NEW_ALWAYS 0
+
+// Cygwin betas don't have wcslen
+    #if defined(__CYGWIN__) || defined(__CYGWIN32__)
+        #if ! ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95)))
+            #undef wxUSE_WCHAR_T
+            #define wxUSE_WCHAR_T 0
+        #endif
+    #endif
+
+#endif // __GNUWIN32__
+
+// MFC duplicates these operators
+#if wxUSE_MFC
+    #undef  wxUSE_GLOBAL_MEMORY_OPERATORS
+    #define wxUSE_GLOBAL_MEMORY_OPERATORS 0
+
+    #undef  wxUSE_DEBUG_NEW_ALWAYS
+    #define wxUSE_DEBUG_NEW_ALWAYS 0
+#endif // wxUSE_MFC
+
+#if (!defined(WIN32) && !defined(__WIN32__)) || (defined(__GNUWIN32__) && !wxUSE_NORLANDER_HEADERS)
+// Can't use OLE drag and drop in Windows 3.1 because we don't know how
+// to implement UUIDs
+// GnuWin32 doesn't have appropriate headers for e.g. IUnknown.
+    #undef wxUSE_DRAG_AND_DROP
+    #define wxUSE_DRAG_AND_DROP 0
+#endif
+
+// Only WIN32 supports wxStatusBar95
+#if !defined(__WIN32__) && wxUSE_NATIVE_STATUSBAR
+    #undef  wxUSE_NATIVE_STATUSBAR
+    #define wxUSE_NATIVE_STATUSBAR 0
+#endif
+
+#if !wxUSE_OWNER_DRAWN
+    #undef wxUSE_CHECKLISTBOX
+    #define wxUSE_CHECKLISTBOX 0
+#endif
+
+// Salford C++ doesn't like some of the memory operator definitions
+#ifdef __SALFORDC__
+    #undef  wxUSE_MEMORY_TRACING
+    #define wxUSE_MEMORY_TRACING 0
+
+    #undef wxUSE_GLOBAL_MEMORY_OPERATORS
+    #define wxUSE_GLOBAL_MEMORY_OPERATORS 0
+
+    #undef wxUSE_DEBUG_NEW_ALWAYS
+    #define wxUSE_DEBUG_NEW_ALWAYS 0
+
+    #undef wxUSE_THREADS
+    #define wxUSE_THREADS 0
+
+    #undef wxUSE_OWNER_DRAWN
+    #define wxUSE_OWNER_DRAWN 0
+#endif // __SALFORDC__
+
+#ifdef __TWIN32__
+    #undef wxUSE_THREADS
+    #define wxUSE_THREADS 0
+
+    #undef wxUSE_ODBC
+    #define wxUSE_ODBC 0
+#endif // __TWIN32__
+
+// BC++/Win16 can't cope with the amount of data in resource.cpp
+#if defined(__WIN16__) && defined(__BORLANDC__)
+    #undef wxUSE_WX_RESOURCES
+    #define wxUSE_WX_RESOURCES 0
+
+    #undef wxUSE_ODBC
+    #define wxUSE_ODBC 0
+
+    #undef wxUSE_NEW_GRID
+    #define wxUSE_NEW_GRID 0
+#endif
+
+#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
+// BC++ 4.0 can't compile JPEG library
+    #undef wxUSE_LIBJPEG
+    #define wxUSE_LIBJPEG 0
+#endif
+
+// wxUSE_DEBUG_NEW_ALWAYS = 1 not compatible with BC++ in DLL mode
+#if defined(__BORLANDC__) && (defined(WXMAKINGDLL) || defined(WXUSINGDLL))
+    #undef wxUSE_DEBUG_NEW_ALWAYS
+    #define wxUSE_DEBUG_NEW_ALWAYS 0
+#endif
+
+#if defined(__WXMSW__) && defined(__WATCOMC__)
+    /*
+    #undef  wxUSE_GLCANVAS
+    #define wxUSE_GLCANVAS 0
+    */
+
+    #undef wxUSE_WCHAR_T
+    #define wxUSE_WCHAR_T 0
+#endif
+
+#if defined(__WXMSW__) && !defined(__WIN32__)
+    #undef wxUSE_SOCKETS
+    #define wxUSE_SOCKETS 0
+
+    #undef wxUSE_THREADS
+    #define wxUSE_THREADS 0
+
+    #undef wxUSE_TOOLTIPS
+    #define wxUSE_TOOLTIPS 0
+
+    #undef wxUSE_SPINCTRL
+    #define wxUSE_SPINCTRL 0
+
+    #undef wxUSE_SPINBTN
+    #define wxUSE_SPINBTN 0
+
+    #undef wxUSE_LIBPNG
+    #define wxUSE_LIBPNG 0
+
+    #undef wxUSE_LIBJPEG
+    #define wxUSE_LIBJPEG 0
+
+    #undef wxUSE_LIBTIFF
+    #define wxUSE_LIBTIFF 0
+
+    #undef wxUSE_GIF
+    #define wxUSE_GIF 0
+
+    #undef wxUSE_PNM
+    #define wxUSE_PNM 0
+
+    #undef wxUSE_PCX
+    #define wxUSE_PCX 0
+
+    #undef wxUSE_GLCANVAS
+    #define wxUSE_GLCANVAS 0
+
+    #undef wxUSE_MS_HTML_HELP
+    #define wxUSE_MS_HTML_HELP 0
+
+    #undef wxUSE_WCHAR_T
+    #define wxUSE_WCHAR_T 0
+
+#endif // Win16
+
+// ----------------------------------------------------------------------------
+// unknown settings
+// ----------------------------------------------------------------------------
+
+// Use serialization (requires utils/serialize)?
+#define wxUSE_SERIAL 0
+
+// Use plotter?
+#define wxUSE_PLOT 0
+
+// If 1, enables provision of run-time type information.
+// NOW MANDATORY: don't change.
+#define wxUSE_DYNAMIC_CLASSES 1
+
+//??????
+#if defined(__WIN32__)
+    #define wxUSE_DISPLAY 0
+#else
+    #define wxUSE_DISPLAY 0
+#endif
+
+//??????
+#if defined(__WIN32__)
+    #define wxUSE_DDE_FOR_IPC 0
+#else
+    #define wxUSE_DDE_FOR_IPC 0
+#endif
+
+//??????
+#define wxUSE_SPAWNBROWSER 0
 
 #endif // _WX_UNIV_SETUP_H_
diff --git a/include/wx/univ/setup0.h b/include/wx/univ/setup0.h
new file mode 100644
index 0000000000..ed4f25881e
--- /dev/null
+++ b/include/wx/univ/setup0.h
@@ -0,0 +1,1328 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name:        wx/univ/setup.h
+// Purpose:     configuration settings for wxUniversal/MSW
+// Author:      Vadim Zeitlin
+// Modified by:
+// Created:     14.08.00
+// RCS-ID:      $Id$
+// Copyright:   (c) 2000 SciTech Software, Inc. (www.scitechsoft.com)
+// Licence:     wxWindows license
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_UNIV_SETUP_H_
+#define _WX_UNIV_SETUP_H_
+
+// ----------------------------------------------------------------------------
+// global settings
+// ----------------------------------------------------------------------------
+
+// define this to 0 when building wxBase library - this can also be done from
+// makefile/project file overriding the value here
+#ifndef wxUSE_GUI
+    #define wxUSE_GUI 1
+#endif // wxUSE_GUI
+
+// ----------------------------------------------------------------------------
+// compatibility settings
+// ----------------------------------------------------------------------------
+
+// This setting determines the compatibility with 1.68 API:
+// Level 0: no backward compatibility, all new features
+// Level 1: some extra methods are defined for compatibility.
+//
+// Default is 0.
+//
+// Recommended setting: 0 (in fact the compatibility code is now very minimal
+// so there is little advantage to setting it to 1.
+#define WXWIN_COMPATIBILITY 0
+
+// This setting determines the compatibility with 2.0 API: set it to 1 to
+// enable it
+//
+// Default is 0.
+//
+// Recommended setting: 0 (please update your code instead!)
+#define WXWIN_COMPATIBILITY_2 0
+
+// This setting determines the compatibility with 2.0 API: set it to 1 to
+// enable it
+//
+// Default is 1.
+//
+// Recommended setting: 0 (please update your code instead!)
+#define WXWIN_COMPATIBILITY_2_2 0
+
+// in wxMSW version 2.1.11 and earlier, wxIcon always derives from wxBitmap,
+// but this is very dangerous because you can mistakenly pass an icon instead
+// of a bitmap to a function taking "const wxBitmap&" - which will *not* work
+// because an icon is not a valid bitmap
+//
+// Starting from 2.1.12, you have the choice under this backwards compatible
+// behaviour (your code will still compile, but probably won't behave as
+// expected!) and not deriving wxIcon class from wxBitmap, but providing a
+// conversion ctor wxBitmap(const wxIcon&) instead.
+//
+// Recommended setting: 0
+#define wxICON_IS_BITMAP 0
+
+// Define as 1 for font size to be backward compatible to 1.63 and earlier.
+// 1.64 and later define point sizes to be compatible with Windows.
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxFONT_SIZE_COMPATIBILITY 0
+
+// Set to 0 for accurate dialog units, else 1 to be as per 2.1.16 and before.
+// If migrating between versions, your dialogs may seem to shrink.
+//
+// Default is 1
+//
+// Recommended setting: 0 (the new calculations are more correct!)
+#define wxDIALOG_UNIT_COMPATIBILITY 0
+
+// ----------------------------------------------------------------------------
+// debugging settings
+// ----------------------------------------------------------------------------
+
+// Generic comment about debugging settings: they are very useful if you don't
+// use any other memory leak detection tools such as Purify/BoundsChecker, but
+// are probably redundant otherwise. Also, Visual C++ CRT has the same features
+// as wxWindows memory debugging subsystem built in since version 5.0 and you
+// may prefer to use it instead of built in memory debugging code because it is
+// faster and more fool proof.
+//
+// Using VC++ CRT memory debugging is enabled by default in debug mode
+// (__WXDEBUG__) if wxUSE_GLOBAL_MEMORY_OPERATORS is *not* enabled (i.e. is 0)
+// and if __NO_VC_CRTDBG__ is not defined.
+
+// If 1, enables wxDebugContext, for writing error messages to file, etc. If
+// __WXDEBUG__ is not defined, will still use the normal memory operators.
+//
+// Default is 0
+//
+// Recommended setting: 0
+#ifdef __MWERKS__
+    #define wxUSE_DEBUG_CONTEXT 1
+#else
+    #define wxUSE_DEBUG_CONTEXT 0
+#endif
+
+// If 1, enables debugging versions of wxObject::new and wxObject::delete *IF*
+// __WXDEBUG__ is also defined.
+//
+// WARNING: this code may not work with all architectures, especially if
+// alignment is an issue. This switch is currently ignored for mingw / cygwin
+//
+// Default is 0
+//
+// Recommended setting: 1 if you are not using a memory debugging tool, else 0
+#define wxUSE_MEMORY_TRACING 0
+
+// In debug mode, cause new and delete to be redefined globally.
+// If this causes problems (e.g. link errors which is a common problem
+// especially if you use another library which also redefines the global new
+// and delete), set this to 0.
+// This switch is currently ignored for mingw / cygwin
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxUSE_GLOBAL_MEMORY_OPERATORS 0
+
+// In debug mode, causes new to be defined to be WXDEBUG_NEW (see object.h). If
+// this causes problems (e.g. link errors), set this to 0. You may need to set
+// this to 0 if using templates (at least for VC++). This switch is currently
+// ignored for mingw / cygwin / CodeWarrior
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxUSE_DEBUG_NEW_ALWAYS 0
+
+// wxHandleFatalExceptions() may be used to catch the program faults at run
+// time and, instead of terminating the program with a usual GPF message box,
+// call the user-defined wxApp::OnFatalException() function. If you set
+// wxUSE_ON_FATAL_EXCEPTION to 0, wxHandleFatalExceptions() will not work.
+//
+// This setting is for Win32 only and can only be enabled if your compiler
+// supports Win32 structured exception handling (currently only VC++ does)
+//
+// Default is 1
+//
+// Recommended setting: 1 if your compiler supports it.
+#ifdef _MSC_VER
+    #define wxUSE_ON_FATAL_EXCEPTION 1
+#else
+    #define wxUSE_ON_FATAL_EXCEPTION 0
+#endif
+
+// ----------------------------------------------------------------------------
+// Unicode support
+// ----------------------------------------------------------------------------
+
+// Set wxUSE_UNICODE to 1 to compile wxWindows in Unicode mode: wxChar will be
+// defined as wchar_t, wxString will use Unicode internally. If you set this
+// to 1, you must use wxT() macro for all literal strings in the program.
+//
+// Unicode is currently only fully supported under Windows NT/2000/XP (Windows 9x
+// doesn't support it and the programs compiled in Unicode mode will not run
+// under 9x).
+//
+// Default is 0
+//
+// Recommended setting: 0 (unless you only plan to use Windows NT/2000/XP)
+#define wxUSE_UNICODE 0
+
+// Set wxUSE_UNICODE_MSLU to 1 if you want to compile wxWindows in Unicode mode
+// and be able to run compiled apps under Windows 9x as well as NT/2000/XP. This
+// setting enables use of unicows.dll from MSLU (MS Layer for Unicode, see
+// http://www.microsoft.com/globaldev/Articles/mslu_announce.asp). Note that you
+// will have to modify the makefiles to include unicows.lib import library as the first
+// library (if you use MSVC, you can run the makefile with "nmake MSLU=1 UNICODE=1"
+// command).
+//
+// If your compiler doesn't have unicows.lib, you can get a version of it at
+// http://libunicows.sourceforge.net
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxUSE_UNICODE_MSLU 0
+
+// Setting wxUSE_WCHAR_T to 1 gives you some degree of Unicode support without
+// compiling the program in Unicode mode. More precisely, it will be possible
+// to construct wxString from a wide (Unicode) string and convert any wxString
+// to Unicode.
+//
+// Default is 1
+//
+// Recommended setting: 1 for win32 else 0
+#if defined(__WIN32__)
+    #define wxUSE_WCHAR_T 0 //? unresolved external symbol wxCharsetToCodepage
+#else
+    #define wxUSE_WCHAR_T 0
+#endif
+
+// ----------------------------------------------------------------------------
+// global features
+// ----------------------------------------------------------------------------
+
+// Support for message/error logging. This includes wxLogXXX() functions and
+// wxLog and derived classes. Don't set this to 0 unless you really know what
+// you are doing.
+//
+// Default is 1
+//
+// Recommended setting: 1 (always)
+#define wxUSE_LOG 1
+
+// Support for command line parsing using wxCmdLineParser class.
+//
+// Default is 1
+//
+// Recommended setting: 1 (can be set to 0 if you don't use the cmd line)
+#define wxUSE_CMDLINE_PARSER 1
+
+// Recommended setting: 1
+#define wxUSE_LOGWINDOW 1
+
+// Recommended setting: 1
+#define wxUSE_LOGGUI 1
+
+// Recommended setting: 1
+#define wxUSE_LOG_DIALOG 1
+
+// Support for multithreaded applications: if 1, compile in thread classes
+// (thread.h) and make the library a bit more thread safe. Although thread
+// support is quite stable by now, you may still consider recompiling the
+// library without it if you have no use for it - this will result in a
+// somewhat smaller and faster operation.
+//
+// This is ignored under Win16, threads are only supported under Win32.
+//
+// Default is 1
+//
+// Recommended setting: 0 unless you do plan to develop MT applications
+#define wxUSE_THREADS 1
+
+// If enabled (1), compiles wxWindows streams classes
+#define wxUSE_STREAMS 1
+
+// Use standard C++ streams if 1. If 0, use wxWin streams implementation.
+#ifdef __MWERKS__
+    #define wxUSE_STD_IOSTREAM 1
+#else
+    #define wxUSE_STD_IOSTREAM 0
+#endif
+
+// ----------------------------------------------------------------------------
+// non GUI features selection
+// ----------------------------------------------------------------------------
+
+// Set wxUSE_LONGLONG to 1 to compile the wxLongLong class. This is a 64 bit
+// integer which is implemented in terms of native 64 bit integers if any or
+// uses emulation otherwise.
+//
+// This class is required by wxDateTime and so you should enable it if you want
+// to use wxDateTime. For most modern platforms, it will use the native 64 bit
+// integers in which case (almost) all of its functions are inline and it
+// almost does not take any space, so there should be no reason to switch it
+// off.
+//
+// Recommended setting: 1
+#define wxUSE_LONGLONG 1
+
+// Set wxUSE_(F)FILE to 1 to compile wx(F)File classes. wxFile uses low level
+// POSIX functions for file access, wxFFile uses ANSI C stdio.h functions.
+//
+// Default is 1
+//
+// Recommended setting: 1 (wxFile is highly recommended as it is required by
+// i18n code, wxFileConfig and others)
+#define wxUSE_FILE 1
+#define wxUSE_FFILE 1
+
+// Use wxFSVolume class providing access to the configured/active mount points
+//
+// Default is 1
+//
+// Recommended setting: 1 (but may be safely disabled if you don't use it)
+#define wxUSE_FSVOLUME 1
+
+// use wxTextBuffer class: required by wxTextFile
+#define wxUSE_TEXTBUFFER 1
+
+// use wxTextFile class: requires wxFile and wxTextBuffer, required by
+// wxFileConfig
+#define wxUSE_TEXTFILE 1
+
+// i18n support: _() macro, wxLocale class. Requires wxTextFile.
+#define wxUSE_INTL 1
+
+// Set wxUSE_DATETIME to 1 to compile the wxDateTime and related classes which
+// allow to manipulate dates, times and time intervals. wxDateTime replaces the
+// old wxTime and wxDate classes which are still provided for backwards
+// compatibility (and implemented in terms of wxDateTime).
+//
+// Note that this class is relatively new and is still officially in alpha
+// stage because some features are not yet (fully) implemented. It is already
+// quite useful though and should only be disabled if you are aiming at
+// absolutely minimal version of the library.
+//
+// Requires: wxUSE_LONGLONG
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_DATETIME 1
+
+// wxUSE_TIMEDATE enables compilation of the old wxDate and wxTime classes (not
+// the same as wxDateTime!). These classes are obsolete and shouldn't be used
+// in new code
+//
+// Default is 0
+//
+// Recommended setting: 0 unless you have legacy code which uses these classes
+#define wxUSE_TIMEDATE 0
+
+// Set wxUSE_TIMER to 1 to compile wxTimer class
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_TIMER 1
+
+// Use wxStopWatch clas.
+//
+// Default is 1
+//
+// Recommended setting: 1 (needed by wxSocket)
+#define wxUSE_STOPWATCH 1
+
+// Setting wxUSE_CONFIG to 1 enables the use of wxConfig and related classes
+// which allow the application to store its settings in the persistent
+// storage. Setting this to 1 will also enable on-demand creation of the
+// global config object in wxApp.
+//
+// See also wxUSE_CONFIG_NATIVE below.
+//
+// Recommended setting: 1
+#define wxUSE_CONFIG 1
+
+// If wxUSE_CONFIG is 1, you may choose to use either the native config
+// classes under Windows (using .INI files under Win16 and the registry under
+// Win32) or the portable text file format used by the config classes under
+// Unix.
+//
+// Default is 1 to use native classes. Note that you may still use
+// wxFileConfig even if you set this to 1 - just the config object created by
+// default for the applications needs will be a wxRegConfig or wxIniConfig and
+// not wxFileConfig.
+//
+// Recommended setting: 0 (universal should not use native)
+#if defined(__WIN32__)
+    #define wxUSE_CONFIG_NATIVE 0
+#else
+    #define wxUSE_CONFIG_NATIVE 0
+#endif
+
+// If wxUSE_DIALUP_MANAGER is 1, compile in wxDialUpManager class which allows
+// to connect/disconnect from the network and be notified whenever the dial-up
+// network connection is established/terminated. Requires wxUSE_DYNAMIC_LOADER.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#if defined(__WIN32__)
+    #define wxUSE_DIALUP_MANAGER 1
+#else
+    #define wxUSE_DIALUP_MANAGER 0
+#endif
+
+// Compile in classes for run-time DLL loading and function calling.
+// Required by wxUSE_DIALUP_MANAGER.
+//
+// This setting is for Win32 only
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#if defined(__WIN32__)
+    #define wxUSE_DYNLIB_CLASS 1
+#else
+    #define wxUSE_DYNLIB_CLASS 0
+#endif
+
+// experimental, don't use for now
+#if defined(__WIN32__)
+    #define wxUSE_DYNAMIC_LOADER 1
+#else
+    #define wxUSE_DYNAMIC_LOADER 0
+#endif
+
+// Set to 1 to use socket classes
+#define wxUSE_SOCKETS 1
+
+// Set to 1 to enable virtual file systems (required by wxHTML)
+#define wxUSE_FILESYSTEM 1
+
+// Set to 1 to enable virtual ZIP filesystem (requires wxUSE_FILESYSTEM)
+#define wxUSE_FS_ZIP 1
+
+// Set to 1 to compile wxZipInput/OutputStream classes.
+#define wxUSE_ZIPSTREAM 1
+
+// Set to 1 to compile wxZlibInput/OutputStream classes. Also required by
+// wxUSE_LIBPNG.
+#define wxUSE_ZLIB 1
+
+// Set to 1 to enable virtual Internet filesystem (requires wxUSE_FILESYSTEM)
+#define wxUSE_FS_INET 1
+
+// If enabled, the code written by Apple will be used to write, in a portable
+// way, float on the disk. See extended.c for the license which is different
+// from wxWindows one.
+//
+// Default is 1.
+//
+// Recommended setting: 1 unless you don't like the license terms (unlikely)
+#define wxUSE_APPLE_IEEE 1
+
+// Joystick support class
+#if defined(__WIN32__)
+    #define wxUSE_JOYSTICK 1
+#else
+    #define wxUSE_JOYSTICK 1
+#endif
+
+// wxFontMapper class
+#define wxUSE_FONTMAP 1
+
+// wxMimeTypesManager class
+#define wxUSE_MIMETYPE 1
+
+// wxProtocol and related classes: if you want to use either of wxFTP, wxHTTP
+// or wxURL you need to set this to 1.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_PROTOCOL 1
+
+// Define this to use wxURL class.
+#define wxUSE_URL 1
+
+// The settings for the individual URL schemes
+#define wxUSE_PROTOCOL_FILE 1
+#define wxUSE_PROTOCOL_FTP 1
+#define wxUSE_PROTOCOL_HTTP 1
+
+// Support for regular expression matching via wxRegEx class: enable this to
+// use POSIX regular expressions in your code. You need to compile regex
+// library from src/regex to use it under Windows.
+//
+// Default is 0
+//
+// Recommended setting: 1 if your compiler supports it, if it doesn't please
+// contribute us a makefile for src/regex for it
+#define wxUSE_REGEX 1
+
+// wxSystemOptions class
+#define wxUSE_SYSTEM_OPTIONS 1
+
+// wxWave class
+#if defined(__WIN32__)
+    #define wxUSE_WAVE 1
+#else
+    #define wxUSE_WAVE 1
+#endif
+
+// ----------------------------------------------------------------------------
+// Individual GUI controls
+// ----------------------------------------------------------------------------
+
+// You must set wxUSE_CONTROLS to 1 if you are using any controls at all
+// (without it, wxControl class is not compiled)
+//
+// Default is 1
+//
+// Recommended setting: 1 (don't change except for very special programs)
+#define wxUSE_CONTROLS     1
+
+// wxPopupWindow class is a top level transient window. It is currently used
+// to implement wxTipWindow
+//
+// Default is 1
+//
+// Recommended setting: 1 (may be set to 0 if you don't wxUSE_TIPWINDOW)
+#define wxUSE_POPUPWIN     1
+
+// wxTipWindow allows to implement the custom tooltips, it is used by the
+// context help classes. Requires wxUSE_POPUPWIN.
+//
+// Default is 1
+//
+// Recommended setting: 1 (may be set to 0)
+#define wxUSE_TIPWINDOW    1
+
+// Each of the settings below corresponds to one wxWindows control. They are
+// all switched on by default but may be disabled if you are sure that your
+// program (including any standard dialogs it can show!) doesn't need them and
+// if you desperately want to save some space. If you use any of these you must
+// set wxUSE_CONTROLS as well.
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_BUTTON       1    // wxButton
+#define wxUSE_BMPBUTTON    1    // wxBitmapButton
+#define wxUSE_CALENDARCTRL 1    // wxCalendarCtrl
+#define wxUSE_CHECKBOX     1    // wxCheckBox
+#define wxUSE_CHECKLISTBOX 1    // wxCheckListBox (requires wxUSE_OWNER_DRAWN)
+#define wxUSE_CHOICE       1    // wxChoice
+#define wxUSE_COMBOBOX     1    // wxComboBox
+#define wxUSE_GAUGE        1    // wxGauge
+#define wxUSE_LISTBOX      1    // wxListBox
+#define wxUSE_LISTCTRL     1    // wxListCtrl
+#define wxUSE_RADIOBOX     1    // wxRadioBox
+#define wxUSE_RADIOBTN     1    // wxRadioButton
+#define wxUSE_SCROLLBAR    1    // wxScrollBar
+#define wxUSE_SLIDER       1    // wxSlider
+#define wxUSE_SPINBTN      1    // wxSpinButton
+#define wxUSE_SPINCTRL     1    // wxSpinCtrl
+#define wxUSE_STATBOX      1    // wxStaticBox
+#define wxUSE_STATLINE     1    // wxStaticLine
+#define wxUSE_STATTEXT     1    // wxStaticText
+#define wxUSE_STATBMP      1    // wxStaticBitmap
+#define wxUSE_TEXTCTRL     1    // wxTextCtrl
+#define wxUSE_TOGGLEBTN    0    // requires wxButton //? not supported in generic and wrong in msw
+#define wxUSE_TREECTRL     1    // wxTreeCtrl
+
+// Use a status bar class? Depending on the value of wxUSE_NATIVE_STATUSBAR
+// below either wxStatusBar95 or a generic wxStatusBar will be used.
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_STATUSBAR 1
+
+// Two status bar implementations are available under Win32: the generic one
+// or the wrapper around native control. For native look and feel the native
+// version should be used.
+//
+// Default is 0.
+//
+// Recommended setting: 0
+#define wxUSE_NATIVE_STATUSBAR 0
+
+// wxToolBar related settings: if wxUSE_TOOLBAR is 0, don't compile any toolbar
+// classes at all. Otherwise, use the native toolbar class unless
+// wxUSE_TOOLBAR_NATIVE is 0. Additionally, the generic toolbar class which
+// supports some features which might not be supported by the native wxToolBar
+// class may be compiled in if wxUSE_TOOLBAR_SIMPLE is 1.
+//
+// Default is 0 for all settings.
+//
+// Recommended setting: 1 for wxUSE_TOOLBAR and 0 for wxUSE_TOOLBAR_NATIVE and
+// wxUSE_TOOLBAR_SIMPLE.
+#define wxUSE_TOOLBAR 1
+#define wxUSE_TOOLBAR_NATIVE 0
+#define wxUSE_TOOLBAR_SIMPLE 0
+
+// this setting is obsolete, value is ignored
+#define wxUSE_BUTTONBAR 0
+
+// wxNotebook is a control with several "tabs" located on one of its sides. It
+// may be used ot logically organise the data presented to the user instead of
+// putting everything in one huge dialog. It replaces wxTabControl and related
+// classes of wxWin 1.6x.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_NOTEBOOK 1
+
+// wxTabDialog is a generic version of wxNotebook but it is incompatible with
+// the new class. It shouldn't be used in new code.
+//
+// Default is 0.
+//
+// Recommended setting: 0 (use wxNotebook)
+#define wxUSE_TAB_DIALOG 0
+
+// wxGrid class comes in two flavours: the original (pre wxWin 2.2) one and
+// the new, much imporved and enhanced version. The new version is backwards
+// compatible with the old one and should be used whenever possible, i.e. if
+// you set wxUSE_GRID to 1, set wxUSE_NEW_GRID to 1 too.
+//
+// Default is 1 for both options.
+//
+// Recommended setting: 1 for wxUSE_NEW_GRID, 0 if you have an old code using
+// wxGrid and 100% backwards compatibality (with all old wxGrid quirks) is
+// essential.
+//
+// WIN16/BC++ resets wxUSE_NEW_GRID to 0 because it exceeds the data limit.
+#define wxUSE_GRID 1
+#define wxUSE_NEW_GRID 1
+
+// wxProperty[Value/Form/List] classes, used by Dialog Editor
+#define wxUSE_PROPSHEET 1
+
+// ----------------------------------------------------------------------------
+// Miscellaneous GUI stuff
+// ----------------------------------------------------------------------------
+
+// wxAcceleratorTable/Entry classes and support for them in wxMenu(Bar)
+#define wxUSE_ACCEL 1
+
+// Use wxCaret: a class implementing a "cursor" in a text control (called caret
+// under Windows).
+//
+// Default is 1.
+//
+// Recommended setting: 1 (can be safely set to 0, not used by the library)
+#define wxUSE_CARET 1
+
+// Miscellaneous geometry code: needed for Canvas library
+#define wxUSE_GEOMETRY 0
+
+// Use wxImageList. This class is needed by wxNotebook, wxTreeCtrl and
+// wxListCtrl.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (set it to 0 if you don't use any of the controls
+// enumerated above, then this class is mostly useless too)
+#define wxUSE_IMAGLIST 1
+
+// Use wxMenu, wxMenuBar, wxMenuItem.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (can't be disabled under MSW)
+#define wxUSE_MENUS 1
+
+// Use wxSashWindow class.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_SASH 1
+
+// Use wxSplitterWindow class.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_SPLITTER 1
+
+// Use wxToolTip and wxWindow::Set/GetToolTip() methods.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#if defined(__WIN32__)
+    #define wxUSE_TOOLTIPS 0 //? error 'SetWindow' cannot convert parameter 1 ...
+#else
+    #define wxUSE_TOOLTIPS 0
+#endif
+
+// wxValidator class and related methods
+#define wxUSE_VALIDATORS 1
+
+// wxDC cacheing implementation
+#define wxUSE_DC_CACHEING 1
+
+// ----------------------------------------------------------------------------
+// common dialogs
+// ----------------------------------------------------------------------------
+
+// Define 1 to use generic dialogs in Windows, even though they duplicate
+// native common dialog (e.g. wxColourDialog). This is mainly useful for
+// testing.
+//
+// Default is 0
+//
+// Recommended setting: 0
+#define wxUSE_GENERIC_DIALOGS_IN_MSW 0
+
+// On rare occasions (e.g. using DJGPP) may want to omit common dialogs (e.g.
+// file selector, printer dialog). Switching this off also switches off the
+// printing architecture and interactive wxPrinterDC.
+//
+// Default is 1
+//
+// Recommended setting: 1 (unless it really doesn't work)
+#define wxUSE_COMMON_DIALOGS 1
+
+// wxBusyInfo displays window with message when app is busy. Works in same way
+// as wxBusyCursor
+#define wxUSE_BUSYINFO 1
+
+// Use single/multiple choice dialogs.
+//
+// Default is 1
+//
+// Recommended setting: 1 (used in the library itself)
+#define wxUSE_CHOICEDLG 1
+
+// Use colour picker dialog
+//
+// Default is 1
+//
+// Recommended setting: 1
+#define wxUSE_COLOURDLG 1
+
+// wxDirDlg class for getting a directory name from user
+#define wxUSE_DIRDLG 1
+
+// TODO: setting to choose the generic or native one
+
+// Use file open/save dialogs.
+//
+// Default is 1
+//
+// Recommended setting: 1 (used in many places in the library itself)
+#if defined(__WIN32__)
+    #define wxUSE_FILEDLG 1
+#else
+    #define wxUSE_FILEDLG 1
+#endif
+
+// Use find/replace dialogs.
+//
+// Default is 1
+//
+// Recommended setting: 1 (but may be safely set to 0)
+#define wxUSE_FINDREPLDLG 1
+
+// Use font picker dialog
+//
+// Default is 1
+//
+// Recommended setting: 1 (used in the library itself)
+#define wxUSE_FONTDLG 1
+
+// Use wxMessageDialog and wxMessageBox.
+//
+// Default is 1
+//
+// Recommended setting: 1 (used in the library itself)
+#define wxUSE_MSGDLG 1
+
+// progress dialog class for lengthy operations
+#define wxUSE_PROGRESSDLG 1
+
+// support for startup tips (wxShowTip &c)
+#define wxUSE_STARTUP_TIPS 1
+
+// text entry dialog and wxGetTextFromUser function
+#define wxUSE_TEXTDLG 1
+
+// number entry dialog
+#define wxUSE_NUMBERDLG 1
+
+// splash screen class
+#define wxUSE_SPLASH 1
+
+// wizards
+#define wxUSE_WIZARDDLG 0 //? error '_wxArraywxArrayPages' redefinition
+
+// ----------------------------------------------------------------------------
+// Metafiles support
+// ----------------------------------------------------------------------------
+
+// Windows supports the graphics format known as metafile which is, though not
+// portable, is widely used under Windows and so is supported by wxWin (under
+// Windows only, of course). Win16 (Win3.1) used the so-called "Window
+// MetaFiles" or WMFs which were replaced with "Enhanced MetaFiles" or EMFs in
+// Win32 (Win9x, NT, 2000). Both of these are supported in wxWin and, by
+// default, WMFs will be used under Win16 and EMFs under Win32. This may be
+// changed by setting wxUSE_WIN_METAFILES_ALWAYS to 1 and/or setting
+// wxUSE_ENH_METAFILE to 0. You may also set wxUSE_METAFILE to 0 to not compile
+// in any metafile related classes at all.
+//
+// Default is 1 for wxUSE_ENH_METAFILE and 0 for wxUSE_WIN_METAFILES_ALWAYS.
+//
+// Recommended setting: default or 0 for everything for portable programs.
+#define wxUSE_METAFILE 0
+#define wxUSE_ENH_METAFILE 0
+#define wxUSE_WIN_METAFILES_ALWAYS 0
+
+// ----------------------------------------------------------------------------
+// Big GUI components
+// ----------------------------------------------------------------------------
+
+// Set to 0 to disable document/view architecture
+#define wxUSE_DOC_VIEW_ARCHITECTURE 1
+
+// Set to 0 to disable MDI document/view architecture
+#define wxUSE_MDI_ARCHITECTURE 1
+
+// Set to 0 to disable print/preview architecture code
+#define wxUSE_PRINTING_ARCHITECTURE 1
+
+// wxHTML sublibrary allows to display HTML in wxWindow programs and much,
+// much more.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (wxHTML is great!), set to 0 if you want compile a
+// smaller library.
+#define wxUSE_HTML 1
+
+// OpenGL canvas
+#if defined(__WIN32__)
+    #define wxUSE_GLCANVAS 0 //? error unresolved external symbol ...
+#else
+    #define wxUSE_GLCANVAS 0
+#endif
+
+// wxTreeLayout class
+#define wxUSE_TREELAYOUT 1
+
+// ----------------------------------------------------------------------------
+// Data transfer
+// ----------------------------------------------------------------------------
+
+// Use wxClipboard class for clipboard copy/paste.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_CLIPBOARD 0 //? needs wxUSE_OLE
+
+// Use wxDataObject and related classes. Needed for clipboard and OLE drag and
+// drop
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_DATAOBJ 1
+
+// Use wxDropTarget and wxDropSource classes for drag and drop (this is
+// different from "built in" drag and drop in wxTreeCtrl which is always
+// available). Requires wxUSE_DATAOBJ.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#if defined(__WIN32__)
+    #define wxUSE_DRAG_AND_DROP 0 //? needs wxUSE_OLE
+#else
+    #define wxUSE_DRAG_AND_DROP 0
+#endif
+
+// ----------------------------------------------------------------------------
+// miscellaneous settings
+// ----------------------------------------------------------------------------
+
+// wxSingleInstanceChecker class allows to verify at startup if another program
+// instance is running (it is only available under Win32)
+//
+// Default is 1
+//
+// Recommended setting: 1 (the class is tiny, disabling it won't save much
+// space)
+#if defined(__WIN32__)
+    #define wxUSE_SNGLINST_CHECKER 1
+#else
+    #define wxUSE_SNGLINST_CHECKER 0
+#endif
+
+// Drag image
+#define wxUSE_DRAGIMAGE 1
+
+// Interprocess communication
+#define wxUSE_IPC 1
+
+// Help
+#if defined(__WIN32__)
+    #define wxUSE_HELP 1
+#else
+    #define wxUSE_HELP 1
+#endif
+
+// MS help
+#define wxUSE_MS_HTML_HELP 1
+
+// Use wxHTML-based help controller?
+#define wxUSE_WXHTML_HELP 0 //? error 'type cast' cannot convert from ...
+
+// Use resources
+#define wxUSE_RESOURCES 1
+
+// Window layout constraint system
+#define wxUSE_CONSTRAINTS 1
+
+// Splines
+#define wxUSE_SPLINES 1
+
+// Use XPM support in wxBitmap
+//
+// Default is 1, as XPM is now fully supported this makes easier the issue
+// of portable icons and bitmaps
+#if defined(__WIN32__)
+    #define wxUSE_XPM_IN_MSW 1
+#else
+    #define wxUSE_XPM_IN_MSW 0
+#endif
+
+// Use dynamic DIB loading/saving code in utils/dib under MSW.
+#if defined(__WIN32__)
+    #define wxUSE_IMAGE_LOADING_IN_MSW 0 //? needs more testing
+#else
+    #define wxUSE_IMAGE_LOADING_IN_MSW 0
+#endif
+
+// Use dynamic icon/cursor loading/saving code under MSW.
+#if defined(__WIN32__)
+    #define wxUSE_RESOURCE_LOADING_IN_MSW 0 //? needs more testing
+#else
+    #define wxUSE_RESOURCE_LOADING_IN_MSW 0
+#endif
+
+// use wxExpr (a.k.a. PrologIO)
+#define wxUSE_PROLOGIO          0
+
+// Use .wxr resource mechanism (requires PrologIO library)
+#define wxUSE_WX_RESOURCES 0
+
+// Include mouse wheel support
+#define wxUSE_MOUSEWHEEL 1
+
+// ----------------------------------------------------------------------------
+// postscript support settings
+// ----------------------------------------------------------------------------
+
+// Set to 1 for PostScript device context.
+#define wxUSE_POSTSCRIPT 1
+
+// Set to 1 to use font metric files in GetTextExtent
+#define wxUSE_AFM_FOR_POSTSCRIPT 1
+
+// Set to 0 to disable PostScript print/preview architecture code under Windows
+// (just use Windows printing).
+#if defined(__WIN32__)
+    #define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 1
+#else
+    #define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 0
+#endif
+
+// ----------------------------------------------------------------------------
+// database classes
+// ----------------------------------------------------------------------------
+
+// Define 1 to use ODBC classes
+#define wxUSE_ODBC 1
+
+// For backward compatibility reasons, this parameter now only controls the
+// default scrolling method used by cursors.  This default behavior can be
+// overriden by setting the second param of wxDB::wxDbGetConnection() or
+// wxDb() constructor to indicate whether the connection (and any wxDbTable()s
+// that use the connection) should support forward only scrolling of cursors,
+// or both forward and backward support for backward scrolling cursors is
+// dependent on the data source as well as the ODBC driver being used.
+#define wxODBC_FWD_ONLY_CURSORS 0
+
+// Default is 0.  Set to 1 to use the deprecated classes, enum types, function,
+// member variables.  With a setting of 1, full backward compatability with the
+// 2.0.x release is possible. It is STRONGLY recommended that this be set to 0,
+// as future development will be done only on the non-deprecated
+// functions/classes/member variables/etc.
+#define wxODBC_BACKWARD_COMPATABILITY 0
+
+// ----------------------------------------------------------------------------
+// other compiler (mis)features
+// ----------------------------------------------------------------------------
+
+// Set this to 0 if your compiler can't cope with omission of prototype
+// parameters.
+//
+// Default is 1.
+//
+// Recommended setting: 1 (should never need to set this to 0)
+#define REMOVE_UNUSED_ARG 1
+
+// VC++ 4.2 and above allows <iostream> and <iostream.h> but you can't mix
+// them. Set to 1 for <iostream.h>, 0 for <iostream>
+//
+// Default is 1.
+//
+// Recommended setting: whatever your compiler likes more
+#ifdef __MWERKS__
+    #define wxUSE_IOSTREAMH 1
+#else
+    #define wxUSE_IOSTREAMH 0
+#endif
+
+// ----------------------------------------------------------------------------
+// image format support
+// ----------------------------------------------------------------------------
+
+// wxImage supports many different image formats which can be configured at
+// compile-time. BMP is always supported, others are optional and can be safely
+// disabled if you don't plan to use images in such format sometimes saving
+// substantial amount of code in the final library.
+//
+// Some formats require an extra library which is included in wxWin sources
+// which is mentioned if it is the case.
+
+// Set to 1 for wxImage support (recommended).
+#define wxUSE_IMAGE 1
+
+// Set to 1 for PNG format support (requires libpng). Also requires wxUSE_ZLIB.
+#define wxUSE_LIBPNG 1
+
+// Set to 1 for JPEG format support (requires libjpeg)
+#define wxUSE_LIBJPEG 1
+
+// Set to 1 for TIFF format support (requires libtiff)
+#define wxUSE_LIBTIFF 1
+
+// Set to 1 for GIF format support
+#define wxUSE_GIF 1
+
+// Set to 1 for PNM format support
+#define wxUSE_PNM 1
+
+// Set to 1 for PCX format support
+#define wxUSE_PCX 1
+
+// Set to 1 for IFF format support (Amiga format)
+#define wxUSE_IFF 0
+
+// Set to 1 for XPM format support
+#define wxUSE_XPM 1
+
+// Set to 1 for MS Icons and Cursors format support
+#define wxUSE_ICO_CUR 0
+
+// Set to 1 to compile in wxPalette class
+#if defined(__WIN32__)
+    #define wxUSE_PALETTE 1
+#else
+    #define wxUSE_PALETTE 1
+#endif
+
+// ----------------------------------------------------------------------------
+// Windows-only settings
+// ----------------------------------------------------------------------------
+#if defined(__WINDOWS__)
+
+// Set this to 1 if you want to use wxWindows and MFC in the same program. This
+// will override some other settings (see below)
+//
+// Default is 0.
+//
+// Recommended setting: 0 unless you really have to use MFC
+#define wxUSE_MFC 0
+
+// Set this to 1 for generic OLE support: this is required for drag-and-drop,
+// clipboard, OLE Automation. Only set it to 0 if your compiler is very old and
+// can't compile/doesn't have the OLE headers.
+//
+// Default is 1.
+//
+// Recommended setting: 1
+#define wxUSE_OLE 0 //? needs more testing
+
+// Set this to 1 to use Microsoft CTL3D library for "3D-look" under Win16 or NT
+// 3.x. This setting is ignored under Win9x and NT 4.0+.
+//
+// Default is 0 for (most) Win32 (systems), 1 for Win16
+//
+// Recommended setting: same as default
+#if defined(__WIN95__) //? wrong test, should be positive
+    #define wxUSE_CTL3D 0
+#else
+    #define wxUSE_CTL3D 0 //? see above
+#endif
+
+// Define as 1 to use Microsoft's ItsyBitsy small title bar library, for
+// wxMiniFrame. This setting is only used for Win3.1; Win9x and NT use native
+// miniframes support instead.
+//
+// Default is 0 for (most) Win32 (systems), 1 for Win16
+//
+// Recommended setting: same as default
+#if defined(__WIN95__) //? wrong test, should be positive
+    #define wxUSE_ITSY_BITSY 0
+#else
+    #define wxUSE_ITSY_BITSY 0 //? see above
+#endif
+
+// Set this to 1 to use RICHEDIT controls for wxTextCtrl with style wxTE_RICH
+// which allows to put more than ~32Kb of text in it even under Win9x (NT
+// doesn't have such limitation).
+//
+// Default is 1 for compilers which support it
+//
+// Recommended setting: 1, only set it to 0 if your compiler doesn't have
+//                      or can't compile <richedit.h>
+#if defined(__WIN95__) && !defined(__TWIN32__) && !defined(__GNUWIN32_OLD__)
+// TODO:  This should be ifdef'ed for any compilers that don't support
+//        RichEdit 2.0 but do have RichEdit 1.0...
+    #define wxUSE_RICHEDIT 0 //? needs more testing
+    #define wxUSE_RICHEDIT2 0 //? needs more testing
+
+#else
+    #define wxUSE_RICHEDIT 0
+    #define wxUSE_RICHEDIT2 0
+#endif
+
+// Set this to 1 to enable support for the owner-drawn menu and listboxes. This
+// is required by wxUSE_CHECKLISTBOX.
+//
+// Default is 1.
+//
+// Recommended setting: 1, set to 0 for a small library size reduction
+#define wxUSE_OWNER_DRAWN 0 //? error 'MSWOnDraw' is not a member of 'wxControl'
+
+#endif
+
+// ----------------------------------------------------------------------------
+// disable the settings which don't work for some compilers
+// ----------------------------------------------------------------------------
+
+#ifndef wxUSE_NORLANDER_HEADERS
+    #if (defined(__MINGW32__) || defined(__CYGWIN__)) && ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95)))
+        #define wxUSE_NORLANDER_HEADERS 1
+    #else
+        #define wxUSE_NORLANDER_HEADERS 0
+    #endif
+#endif
+
+// wxUSE_DEBUG_NEW_ALWAYS doesn't work with CodeWarrior
+#if defined(__MWERKS__)
+    #undef wxUSE_DEBUG_NEW_ALWAYS
+    #define wxUSE_DEBUG_NEW_ALWAYS 0
+#endif
+
+#if defined(__GNUWIN32__)
+// These don't work as expected for mingw32 and cygwin32
+    #undef  wxUSE_MEMORY_TRACING
+    #define wxUSE_MEMORY_TRACING 0
+
+    #undef  wxUSE_GLOBAL_MEMORY_OPERATORS
+    #define wxUSE_GLOBAL_MEMORY_OPERATORS 0
+
+    #undef  wxUSE_DEBUG_NEW_ALWAYS
+    #define wxUSE_DEBUG_NEW_ALWAYS 0
+
+// Cygwin betas don't have wcslen
+    #if defined(__CYGWIN__) || defined(__CYGWIN32__)
+        #if ! ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95)))
+            #undef wxUSE_WCHAR_T
+            #define wxUSE_WCHAR_T 0
+        #endif
+    #endif
+
+#endif // __GNUWIN32__
+
+// MFC duplicates these operators
+#if wxUSE_MFC
+    #undef  wxUSE_GLOBAL_MEMORY_OPERATORS
+    #define wxUSE_GLOBAL_MEMORY_OPERATORS 0
+
+    #undef  wxUSE_DEBUG_NEW_ALWAYS
+    #define wxUSE_DEBUG_NEW_ALWAYS 0
+#endif // wxUSE_MFC
+
+#if (!defined(WIN32) && !defined(__WIN32__)) || (defined(__GNUWIN32__) && !wxUSE_NORLANDER_HEADERS)
+// Can't use OLE drag and drop in Windows 3.1 because we don't know how
+// to implement UUIDs
+// GnuWin32 doesn't have appropriate headers for e.g. IUnknown.
+    #undef wxUSE_DRAG_AND_DROP
+    #define wxUSE_DRAG_AND_DROP 0
+#endif
+
+// Only WIN32 supports wxStatusBar95
+#if !defined(__WIN32__) && wxUSE_NATIVE_STATUSBAR
+    #undef  wxUSE_NATIVE_STATUSBAR
+    #define wxUSE_NATIVE_STATUSBAR 0
+#endif
+
+#if !wxUSE_OWNER_DRAWN
+    #undef wxUSE_CHECKLISTBOX
+    #define wxUSE_CHECKLISTBOX 0
+#endif
+
+// Salford C++ doesn't like some of the memory operator definitions
+#ifdef __SALFORDC__
+    #undef  wxUSE_MEMORY_TRACING
+    #define wxUSE_MEMORY_TRACING 0
+
+    #undef wxUSE_GLOBAL_MEMORY_OPERATORS
+    #define wxUSE_GLOBAL_MEMORY_OPERATORS 0
+
+    #undef wxUSE_DEBUG_NEW_ALWAYS
+    #define wxUSE_DEBUG_NEW_ALWAYS 0
+
+    #undef wxUSE_THREADS
+    #define wxUSE_THREADS 0
+
+    #undef wxUSE_OWNER_DRAWN
+    #define wxUSE_OWNER_DRAWN 0
+#endif // __SALFORDC__
+
+#ifdef __TWIN32__
+    #undef wxUSE_THREADS
+    #define wxUSE_THREADS 0
+
+    #undef wxUSE_ODBC
+    #define wxUSE_ODBC 0
+#endif // __TWIN32__
+
+// BC++/Win16 can't cope with the amount of data in resource.cpp
+#if defined(__WIN16__) && defined(__BORLANDC__)
+    #undef wxUSE_WX_RESOURCES
+    #define wxUSE_WX_RESOURCES 0
+
+    #undef wxUSE_ODBC
+    #define wxUSE_ODBC 0
+
+    #undef wxUSE_NEW_GRID
+    #define wxUSE_NEW_GRID 0
+#endif
+
+#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
+// BC++ 4.0 can't compile JPEG library
+    #undef wxUSE_LIBJPEG
+    #define wxUSE_LIBJPEG 0
+#endif
+
+// wxUSE_DEBUG_NEW_ALWAYS = 1 not compatible with BC++ in DLL mode
+#if defined(__BORLANDC__) && (defined(WXMAKINGDLL) || defined(WXUSINGDLL))
+    #undef wxUSE_DEBUG_NEW_ALWAYS
+    #define wxUSE_DEBUG_NEW_ALWAYS 0
+#endif
+
+#if defined(__WXMSW__) && defined(__WATCOMC__)
+    /*
+    #undef  wxUSE_GLCANVAS
+    #define wxUSE_GLCANVAS 0
+    */
+
+    #undef wxUSE_WCHAR_T
+    #define wxUSE_WCHAR_T 0
+#endif
+
+#if defined(__WXMSW__) && !defined(__WIN32__)
+    #undef wxUSE_SOCKETS
+    #define wxUSE_SOCKETS 0
+
+    #undef wxUSE_THREADS
+    #define wxUSE_THREADS 0
+
+    #undef wxUSE_TOOLTIPS
+    #define wxUSE_TOOLTIPS 0
+
+    #undef wxUSE_SPINCTRL
+    #define wxUSE_SPINCTRL 0
+
+    #undef wxUSE_SPINBTN
+    #define wxUSE_SPINBTN 0
+
+    #undef wxUSE_LIBPNG
+    #define wxUSE_LIBPNG 0
+
+    #undef wxUSE_LIBJPEG
+    #define wxUSE_LIBJPEG 0
+
+    #undef wxUSE_LIBTIFF
+    #define wxUSE_LIBTIFF 0
+
+    #undef wxUSE_GIF
+    #define wxUSE_GIF 0
+
+    #undef wxUSE_PNM
+    #define wxUSE_PNM 0
+
+    #undef wxUSE_PCX
+    #define wxUSE_PCX 0
+
+    #undef wxUSE_GLCANVAS
+    #define wxUSE_GLCANVAS 0
+
+    #undef wxUSE_MS_HTML_HELP
+    #define wxUSE_MS_HTML_HELP 0
+
+    #undef wxUSE_WCHAR_T
+    #define wxUSE_WCHAR_T 0
+
+#endif // Win16
+
+// ----------------------------------------------------------------------------
+// unknown settings
+// ----------------------------------------------------------------------------
+
+// Use serialization (requires utils/serialize)?
+#define wxUSE_SERIAL 0
+
+// Use plotter?
+#define wxUSE_PLOT 0
+
+// If 1, enables provision of run-time type information.
+// NOW MANDATORY: don't change.
+#define wxUSE_DYNAMIC_CLASSES 1
+
+//??????
+#if defined(__WIN32__)
+    #define wxUSE_DISPLAY 0
+#else
+    #define wxUSE_DISPLAY 0
+#endif
+
+//??????
+#if defined(__WIN32__)
+    #define wxUSE_DDE_FOR_IPC 0
+#else
+    #define wxUSE_DDE_FOR_IPC 0
+#endif
+
+//??????
+#define wxUSE_SPAWNBROWSER 0
+
+#endif // _WX_UNIV_SETUP_H_
diff --git a/include/wx/univ/toplevel.h b/include/wx/univ/toplevel.h
index 9edcf899f6..e9265722ee 100644
--- a/include/wx/univ/toplevel.h
+++ b/include/wx/univ/toplevel.h
@@ -36,7 +36,7 @@ enum
     wxTOPLEVEL_BUTTON_MAXIMIZE = 0x02000000,
     wxTOPLEVEL_BUTTON_ICONIZE =  0x04000000,
     wxTOPLEVEL_BUTTON_RESTORE  = 0x08000000,
-    wxTOPLEVEL_BUTTON_HELP     = 0x10000000,
+    wxTOPLEVEL_BUTTON_HELP     = 0x10000000
 };
 
 // frame hit test return values:
@@ -143,7 +143,7 @@ public:
     virtual int GetMinWidth() const;
     virtual int GetMinHeight() const;
 
-    virtual bool ProvidesBackground() { return TRUE; }
+    virtual bool ProvidesBackground() const { return TRUE; }
     
 protected:
     // handle titlebar button click event
diff --git a/include/wx/univ/window.h b/include/wx/univ/window.h
index 673dddf1e3..2c0d484df6 100644
--- a/include/wx/univ/window.h
+++ b/include/wx/univ/window.h
@@ -179,7 +179,7 @@ public:
     // to be used with function above: transparent windows get
     // their background from parents that return TRUE here,
     // so this is mostly for wxPanel, wxTopLevelWindow etc.
-    virtual bool ProvidesBackground() { return FALSE; }
+    virtual bool ProvidesBackground() const { return FALSE; }
 
     // return TRUE if this control can be highlighted when the mouse is over
     // it (the theme decides itself whether it is really highlighted or not)
diff --git a/include/wx/utils.h b/include/wx/utils.h
index 076d32c6d7..daa48783ae 100644
--- a/include/wx/utils.h
+++ b/include/wx/utils.h
@@ -65,8 +65,10 @@ WXDLLEXPORT_DATA(extern wxChar*) wxBuffer;
 // Make a copy of this string using 'new'
 WXDLLEXPORT wxChar* copystring(const wxChar *s);
 
+#if WXWIN_COMPATIBILITY_2
 // Matches string one within string two regardless of case
 WXDLLEXPORT bool StringMatch(const wxChar *one, const wxChar *two, bool subString = TRUE, bool exact = FALSE);
+#endif
 
 // A shorter way of using strcmp
 #define wxStringEq(s1, s2) (s1 && s2 && (wxStrcmp(s1, s2) == 0))
diff --git a/include/wx/version.h b/include/wx/version.h
index dbb7911023..325b51e592 100644
--- a/include/wx/version.h
+++ b/include/wx/version.h
@@ -15,13 +15,13 @@
 // Bump-up with each new version
 #define wxMAJOR_VERSION    2
 #define wxMINOR_VERSION    3
-#define wxRELEASE_NUMBER   3
-#define wxVERSION_STRING   _T("wxWindows 2.3.3")
+#define wxRELEASE_NUMBER   4
+#define wxVERSION_STRING   _T("wxWindows 2.3.4")
 
 // These are used by src/msw/version.rc and should always be ASCII, not Unicode
 // and must be updated manually as well each time the version above changes
-#define wxVERSION_NUM_DOT_STRING   "2.3.3"
-#define wxVERSION_NUM_STRING       "233"
+#define wxVERSION_NUM_DOT_STRING   "2.3.4"
+#define wxVERSION_NUM_STRING       "234"
 
 // nothing should be updated below this line when updating the version
 
diff --git a/include/wx/window.h b/include/wx/window.h
index 59a9769b1b..1b12bc2884 100644
--- a/include/wx/window.h
+++ b/include/wx/window.h
@@ -271,7 +271,18 @@ public:
             *h = s.y;
     }
 
-        // the generic centre function - centers the window on parent by
+        // There are times (and windows) where 'Best' size and 'Min' size
+        // are vastly out of sync.  This should be remedied somehow, but in
+        // the meantime, this method will return the larger of BestSize
+        // (the window's smallest legible size), and any user specified
+        // MinSize hint.
+    wxSize GetAdjustedBestSize() const
+    {
+        wxSize  s( DoGetBestSize() );
+        return wxSize( wxMax( s.x, GetMinWidth() ), wxMax( s.y, GetMinHeight() ) );
+    }
+
+        // the generic centre function - centers the window on parent by`
         // default or on screen if it doesn't have parent or
         // wxCENTER_ON_SCREEN flag is given
     void Centre( int direction = wxBOTH );
@@ -288,6 +299,9 @@ public:
         // set window size to wrap around its children
     virtual void Fit();
 
+        // set virtual size to satisfy children
+    virtual void FitInside();
+
         // set min/max size of the window
     virtual void SetSizeHints( int minW, int minH,
                                int maxW = -1, int maxH = -1,
@@ -331,6 +345,17 @@ public:
     virtual void DoSetVirtualSize( int x, int y );
     virtual wxSize DoGetVirtualSize() const; // { return m_virtualSize; }
 
+        // Return the largest of ClientSize and BestSize (as determined
+        // by a sizer, interior children, or other means)
+
+    virtual wxSize GetBestVirtualSize() const
+    {
+        wxSize  client( GetClientSize() );
+        wxSize  best( GetBestSize() );
+
+        return wxSize( wxMax( client.x, best.x ), wxMax( client.y, best.y ) );
+    }
+
     // window state
     // ------------
 
@@ -958,8 +983,16 @@ protected:
     // set the best size for the control if the default size was given:
     // replaces the fields of size == -1 with the best values for them and
     // calls SetSize() if needed
+    //
+    // This function is rather unfortunately named..  it's really just a
+    // smarter SetSize / convenience function for expanding wxDefaultSize.
+    // Note that it does not influence the value returned by GetBestSize
+    // at all.
     void SetBestSize(const wxSize& size)
     {
+        // the size only needs to be changed if the current size is incomplete,
+        // i.e. one of the components was specified as default -- so if both
+        // were given, simply don't do anything
         if ( size.x == -1 || size.y == -1 )
         {
             wxSize sizeBest = DoGetBestSize();
diff --git a/include/wx/wizard.h b/include/wx/wizard.h
index ce716c5627..8ff916d7a0 100644
--- a/include/wx/wizard.h
+++ b/include/wx/wizard.h
@@ -201,6 +201,15 @@ public:
                             const wxPoint& pos = wxDefaultPosition,
                             const wxSize& size = wxDefaultSize);
 #endif // WXWIN_COMPATIBILITY_2_2
+
+    // the methods below may be overridden by the derived classes to provide
+    // custom logic for determining the pages order
+
+    virtual bool HasNextPage(wxWizardPage *page)
+        { return page->GetNext() != NULL; }
+
+    virtual bool HasPrevPage(wxWizardPage *page)
+        { return page->GetPrev() != NULL; }
 };
 
 // include the real class declaration
diff --git a/include/wx/wxchar.h b/include/wx/wxchar.h
index 31bbb35f47..71e38836d6 100644
--- a/include/wx/wxchar.h
+++ b/include/wx/wxchar.h
@@ -81,8 +81,9 @@
 #include <stdarg.h>
 
 // non Unix compilers which do have wchar.h (but not tchar.h which is included
-// below and which includes wchar.h anyhow)
-#if defined(__MWERKS__) || defined(__VISAGECPP__)
+// below and which includes wchar.h anyhow).
+// Actually MinGW has tchar.h, but it does not include wchar.h
+#if defined(__MWERKS__) || defined(__VISAGECPP__) || defined(__MINGW32__)
     #ifndef HAVE_WCHAR_H
         #define HAVE_WCHAR_H
     #endif
@@ -90,7 +91,18 @@
 
 #if wxUSE_WCHAR_T
     #ifdef HAVE_WCHAR_H
-        #include <wchar.h>
+        // the current (as of Nov 2002) version of cygwin has a bug in its
+        // wchar.h -- there is no extern "C" around the declarations in it and
+        // this results in linking errors later; also, at least on some
+        // Cygwin versions, wchar.h requires sys/types.h
+        #ifdef __CYGWIN__
+            #include <sys/types.h>
+            extern "C" {
+        #endif // Cygwin
+                #include <wchar.h>
+        #ifdef __CYGWIN__
+            }
+        #endif // Cygwin
     #elif defined(HAVE_WCSTR_H)
         // old compilers have relevant declarations here
         #include <wcstr.h>
@@ -257,6 +269,7 @@
     #define  wxStrcoll   _tcscoll
     #define  wxStrcpy    _tcscpy
     #define  wxStrcspn   _tcscspn
+    #define  wxStrdup    _tcsdup
     #define  wxStrftime  _tcsftime
     #define  wxStricmp   _tcsicmp
     #define  wxStrnicmp  _tcsnicmp
diff --git a/include/wx/wxexpr.h b/include/wx/wxexpr.h
index 8730ce773b..031bced15b 100644
--- a/include/wx/wxexpr.h
+++ b/include/wx/wxexpr.h
@@ -16,7 +16,7 @@
 #pragma interface "wxexpr.h"
 #endif
 
-#include <stdio.h>
+#if wxUSE_PROLOGIO
 
 #include "wx/defs.h"
 #include "wx/string.h"
@@ -26,6 +26,8 @@
 
 #include "wx/expr.h"
 
+#include <stdio.h>
+
 // Compatibility
 #define PrologExpr wxExpr
 #define PrologDatabase wxExprDatabase
@@ -269,5 +271,7 @@ WXDLLEXPORT_DATA(extern wxExprDatabase*) thewxExprDatabase;
 // YACC/LEX can leave memory lying around...
 extern "C" WXDLLEXPORT int wxExprCleanUp();
 
-#endif
+#endif // wxUSE_PROLOGIO
+
+#endif // _WX_WXEXPRH__
 
diff --git a/include/wx/x11/app.h b/include/wx/x11/app.h
index c1e44dad6e..3621558b9f 100644
--- a/include/wx/x11/app.h
+++ b/include/wx/x11/app.h
@@ -101,6 +101,13 @@ public:
     const wxSize& GetInitialSize() const { return m_initialSize; }
     bool GetShowIconic() const { return m_showIconic; }
     
+#if wxUSE_UNICODE
+    // Global context for Pango layout. Either use X11
+    // or use Xft rendering according to GDK_USE_XFT
+    // environment variable
+    PangoContext* GetPangoContext();
+#endif    
+    
     // We need this before creating the app
     static   WXDisplay* GetDisplay() { return ms_display; }
     static   WXDisplay* ms_display;
diff --git a/include/wx/x11/colour.h b/include/wx/x11/colour.h
index 3e1db7ddd6..9002149bda 100644
--- a/include/wx/x11/colour.h
+++ b/include/wx/x11/colour.h
@@ -48,7 +48,10 @@ public:
 
     // Implicit conversion from the colour name
     wxColour( const wxString &colourName ) { InitFromName(colourName); }
-    wxColour( const char *colourName ) { InitFromName(colourName); }
+    wxColour( const char *colourName ) { InitFromName( wxString::FromAscii(colourName) ); }
+#if wxUSE_UNICODE
+    wxColour( const wxChar *colourName ) { InitFromName( wxString(colourName) ); }
+#endif
 
     wxColour( const wxColour& col ) { Ref(col); }
     wxColour& operator = ( const wxColour& col ) { Ref(col); return *this; }
diff --git a/include/wx/x11/dcclient.h b/include/wx/x11/dcclient.h
index ce76814dca..f2a16a37fe 100644
--- a/include/wx/x11/dcclient.h
+++ b/include/wx/x11/dcclient.h
@@ -133,6 +133,11 @@ protected:
     wxRegion      m_currentClippingRegion;
     wxRegion      m_paintClippingRegion;
 
+#if wxUSE_UNICODE
+    PangoContext *m_context;
+    PangoFontDescription *m_fontdesc;
+#endif
+
     void SetUpDC();
     void Destroy();
     void ComputeScaleAndOrigin();
diff --git a/include/wx/x11/font.h b/include/wx/x11/font.h
index faf0d35801..83bf79c412 100644
--- a/include/wx/x11/font.h
+++ b/include/wx/x11/font.h
@@ -48,11 +48,15 @@ public:
         bool underlined = FALSE,
         const wxString& face = wxEmptyString,
         wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
-    
-    // wxMOTIF-specific
+
+    // FIXME: I added the ! to make it compile;
+    // is this right? - JACS
+#if !wxUSE_UNICODE    
     bool Create(const wxString& fontname,
         wxFontEncoding fontenc = wxFONTENCODING_DEFAULT);
-    bool Create(const wxNativeFontInfo& fontinfo);
+#endif
+    // DELETEME: no longer seems to be implemented.
+    // bool Create(const wxNativeFontInfo& fontinfo);
     
     virtual ~wxFont();
     
@@ -69,6 +73,8 @@ public:
     virtual wxFontEncoding GetEncoding() const;
     virtual wxNativeFontInfo *GetNativeFontInfo() const;
     
+    virtual bool IsFixedWidth() const;
+    
     virtual void SetPointSize(int pointSize);
     virtual void SetFamily(int family);
     virtual void SetStyle(int style);
@@ -78,8 +84,13 @@ public:
     virtual void SetEncoding(wxFontEncoding encoding);
     virtual void SetNativeFontInfo( const wxNativeFontInfo& info );
     
-    // Implementation
+    virtual void SetNoAntiAliasing( bool no = TRUE );
+    virtual bool GetNoAntiAliasing();
     
+    // Implementation
+
+#if wxUSE_PANGO
+#else
     // Find an existing, or create a new, XFontStruct
     // based on this wxFont and the given scale. Append the
     // font to list in the private data for future reference.
@@ -98,13 +109,12 @@ public:
     // Helper function for convenient access of the above.
     WXFontStructPtr GetFontStruct(double scale = 1.0,
         WXDisplay* display = NULL) const;
+#endif
     
 protected:
     // common part of all ctors
     void Init();
     
-    // VZ: IMHO, we don't need it at all...
-    bool RealizeResource() { return TRUE; }
     void Unshare();
     
 private:
diff --git a/include/wx/x11/private.h b/include/wx/x11/private.h
index bb6d9be7f6..e2ae2945e7 100644
--- a/include/wx/x11/private.h
+++ b/include/wx/x11/private.h
@@ -21,10 +21,26 @@
 // Include common declarations
 #include "wx/x11/privx.h"
 
+#if wxUSE_UNICODE
+#include "pango/pango.h"
+#endif
+
 class wxMouseEvent;
 class wxKeyEvent;
 class wxWindow;
 
+// ----------------------------------------------------------------------------
+// Some Unicode <-> UTF8 macros stolen from GTK
+// ----------------------------------------------------------------------------
+
+#if wxUSE_UNICODE
+    #define wxGTK_CONV(s) wxConvUTF8.cWX2MB(s)
+    #define wxGTK_CONV_BACK(s) wxConvUTF8.cMB2WX(s)
+#else
+    #define wxGTK_CONV(s) s.c_str()
+    #define wxGTK_CONV_BACK(s) s
+#endif
+
 // ----------------------------------------------------------------------------
 // we maintain a hash table which contains the mapping from Widget to wxWindow
 // corresponding to the window for this widget
@@ -42,7 +58,7 @@ extern bool wxAddClientWindowToTable(Window w, wxWindow *win);
 // TranslateXXXEvent() functions - translate X event to wxWindow one
 // ----------------------------------------------------------------------------
 extern bool wxTranslateMouseEvent(wxMouseEvent& wxevent, wxWindow *win, Window window, XEvent *xevent);
-extern bool wxTranslateKeyEvent(wxKeyEvent& wxevent, wxWindow *win, Window window, XEvent *xevent);
+extern bool wxTranslateKeyEvent(wxKeyEvent& wxevent, wxWindow *win, Window window, XEvent *xevent, bool isAscii = FALSE);
 
 extern Window wxGetWindowParent(Window window);
 
diff --git a/include/wx/x11/privx.h b/include/wx/x11/privx.h
index c8c63f63b8..7a3473593a 100644
--- a/include/wx/x11/privx.h
+++ b/include/wx/x11/privx.h
@@ -14,6 +14,8 @@
 
 #include "wx/defs.h"
 #include "wx/utils.h"
+#include "wx/colour.h"
+
 #include "X11/Xlib.h"
 #include "X11/Xatom.h"
 #include "X11/Xutil.h"
diff --git a/include/wx/xrc/xh_all.h b/include/wx/xrc/xh_all.h
index 5382b6ffb0..2ac1db392c 100644
--- a/include/wx/xrc/xh_all.h
+++ b/include/wx/xrc/xh_all.h
@@ -46,5 +46,6 @@
 #include "wx/xrc/xh_unkwn.h"
 #include "wx/xrc/xh_gdctl.h"
 #include "wx/xrc/xh_frame.h"
+#include "wx/xrc/xh_scwin.h"
 
 #endif // _WX_XMLRES_H_
diff --git a/include/wx/xrc/xh_scwin.h b/include/wx/xrc/xh_scwin.h
new file mode 100644
index 0000000000..1befc41215
--- /dev/null
+++ b/include/wx/xrc/xh_scwin.h
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        xh_scwin.h
+// Purpose:     XML resource handler for wxScrolledWindow
+// Author:      Vaclav Slavik
+// Created:     2002/10/18
+// RCS-ID:      $Id$
+// Copyright:   (c) 2002 Vaclav Slavik
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_XH_SCWIN_H_
+#define _WX_XH_SCWIN_H_
+
+#if defined(__GNUG__) && !defined(__APPLE__)
+#pragma interface "xh_scwin.h"
+#endif
+
+#include "wx/xrc/xmlres.h"
+#include "wx/defs.h"
+
+
+
+class WXXMLDLLEXPORT wxScrolledWindowXmlHandler : public wxXmlResourceHandler
+{
+public:
+    wxScrolledWindowXmlHandler();
+    virtual wxObject *DoCreateResource();
+    virtual bool CanHandle(wxXmlNode *node);
+};
+
+
+#endif // _WX_XH_SCWIN_H_
diff --git a/include/wx/xrc/xmlres.h b/include/wx/xrc/xmlres.h
index ca37a9cfa7..d0d6a831cd 100644
--- a/include/wx/xrc/xmlres.h
+++ b/include/wx/xrc/xmlres.h
@@ -37,6 +37,9 @@ class WXDLLEXPORT wxFrame;
 class WXDLLEXPORT wxToolBar;
 
 class WXXMLDLLEXPORT wxXmlResourceHandler;
+class WXXMLDLLEXPORT wxXmlSubclassFactory;
+class WXXMLDLLEXPORT wxXmlSubclassFactoriesList;
+class wxXmlResourceModule;
 
 
 // These macros indicate current version of XML resources (this information is
@@ -133,6 +136,11 @@ public:
 
     // Removes all handlers
     void ClearHandlers();
+    
+    // Registers subclasses factory for use in XRC. This function is not meant
+    // for public use, please see the comment above wxXmlSubclassFactory
+    // definition.
+    static void AddSubclassFactory(wxXmlSubclassFactory *factory);
 
     // Loads menu from resource. Returns NULL on failure.
     wxMenu *LoadMenu(const wxString& name);
@@ -216,7 +224,9 @@ public:
     static wxXmlResource *Set(wxXmlResource *res);
 
     // Returns flags, which may be a bitlist of wxXRC_USE_LOCALE and wxXRC_NO_SUBCLASSING.
-    int GetFlags() { return m_flags; }
+    int GetFlags() const { return m_flags; }
+    // Set flags after construction.
+    void SetFlags(int flags) { m_flags = flags; }
 
 protected:
     // Scans the resources list for unloaded files and loads them. Also reloads
@@ -244,6 +254,9 @@ private:
 #endif
 
     friend class wxXmlResourceHandler;
+    friend class wxXmlResourceModule;
+
+    static wxXmlSubclassFactoriesList *ms_subclassFactories;
 
     // singleton instance:
     static wxXmlResource *ms_instance;
@@ -438,6 +451,20 @@ protected:
 void wxXmlInitResourceModule();
 
 
+// This class is used to create instances of XRC "object" nodes with "subclass"
+// property. It is _not_ supposed to be used by XRC users, you should instead
+// register your subclasses via wxWindows' RTTI mechanism. This class is useful
+// only for language bindings developer who need a way to implement subclassing
+// in wxWindows ports that don't support wxRTTI (e.g. wxPython).
+class WXXMLDLLEXPORT wxXmlSubclassFactory
+{
+public:
+    // Try to create instance of given class and return it, return NULL on failure:
+    virtual wxObject *Create(const wxString& className) = 0;
+    virtual ~wxXmlSubclassFactory() {}
+};
+
+
 /* -------------------------------------------------------------------------
    Backward compatibility macros. Do *NOT* use, they may disappear in future
    versions of the XRC library!
diff --git a/include/wx_pb.h b/include/wx_pb.h
index a23fb6d357..82bcb1756c 100644
--- a/include/wx_pb.h
+++ b/include/wx_pb.h
@@ -11,3 +11,4 @@
 
 #define HAVE_USLEEP 1
 #define HAVE_FCNTL  1
+#define SIZEOF_INT 4
diff --git a/locale/cs.po b/locale/cs.po
index 6cca297839..ae9774fa19 100644
--- a/locale/cs.po
+++ b/locale/cs.po
@@ -875,7 +875,7 @@ msgstr "Obsah"
 
 #: ../src/common/strconv.cpp:596
 #, c-format
-msgid "Convertion to charset '%s' doesn't work."
+msgid "Conversion to charset '%s' doesn't work."
 msgstr "Pøevod do znakové sady '%s' nefunguje."
 
 #: ../src/generic/prntdlgg.cpp:193
diff --git a/locale/da.po b/locale/da.po
index dfa2abbbb5..75c469f64a 100644
--- a/locale/da.po
+++ b/locale/da.po
@@ -870,7 +870,7 @@ msgstr "Indhold"
 
 #: ../src/common/strconv.cpp:596
 #, c-format
-msgid "Convertion to charset '%s' doesn't work."
+msgid "Conversion to charset '%s' doesn't work."
 msgstr "Konvertering til tegnsæt '%s' virker ikke."
 
 #: ../src/generic/prntdlgg.cpp:193
diff --git a/locale/de.po b/locale/de.po
index f2e898a3d2..815a4042ca 100644
--- a/locale/de.po
+++ b/locale/de.po
@@ -1,9 +1,9 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: wxWindows-2.2\n"
+"Project-Id-Version: wxWindows-2.4\n"
 "POT-Creation-Date: 2002-08-21 16:39+0200\n"
 "PO-Revision-Date: 2000-08-11 11:11+0200\n"
-"Last-Translator: Mark Johnson <wxWindows@mj10777.de>\n"
+"Last-Translator: Robert Roebling <robert@roebling.de>\n"
 "Language-Team: wxWindows Team <wx-devel@wxwindows.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
@@ -56,12 +56,12 @@ msgstr "#define %s mu
 #: ../src/common/prntbase.cpp:376
 #, c-format
 msgid "%d"
-msgstr ""
+msgstr "%d"
 
 #: ../src/common/prntbase.cpp:374
 #, c-format
 msgid "%d...%d"
-msgstr ""
+msgstr "%d...%d"
 
 #: ../src/html/helpfrm.cpp:772 ../src/html/helpfrm.cpp:773
 #: ../src/html/helpfrm.cpp:1376 ../src/html/helpfrm.cpp:1406
@@ -135,9 +135,8 @@ msgid "&Finish"
 msgstr "&Fertigstellen"
 
 #: ../src/generic/wizard.cpp:249
-#, fuzzy
 msgid "&Help"
-msgstr "Hilfe"
+msgstr "&Hilfe"
 
 #: ../src/generic/logg.cpp:492
 msgid "&Log"
@@ -145,7 +144,7 @@ msgstr "&Log"
 
 #: ../src/univ/themes/win32.cpp:4539
 msgid "&Move"
-msgstr ""
+msgstr "&Bewegen"
 
 #: ../src/msw/mdi.cpp:193
 msgid "&Next"
@@ -160,9 +159,8 @@ msgid "&Next Tip"
 msgstr "&Nächster Tip"
 
 #: ../src/msw/mdi.cpp:194
-#, fuzzy
 msgid "&Previous"
-msgstr "Vorherige HTLM-Seite zeigen"
+msgstr "Zurück"
 
 #: ../src/common/cmdproc.cpp:261 ../src/common/cmdproc.cpp:272
 msgid "&Redo"
@@ -177,9 +175,8 @@ msgid "&Replace"
 msgstr "&Ersetzen"
 
 #: ../src/univ/themes/win32.cpp:4538
-#, fuzzy
 msgid "&Restore"
-msgstr "&Wiederholen"
+msgstr "&Wiederherstellen"
 
 #: ../src/generic/logg.cpp:487 ../src/generic/logg.cpp:818
 msgid "&Save..."
@@ -190,9 +187,8 @@ msgid "&Show tips at startup"
 msgstr "&Tipps beim Programmstart zeigen"
 
 #: ../src/univ/themes/win32.cpp:4541
-#, fuzzy
 msgid "&Size"
-msgstr "Größe"
+msgstr "&Größe"
 
 #: ../src/common/cmdproc.cpp:267
 msgid "&Undo"
@@ -337,12 +333,12 @@ msgid ""
 "+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
 "+4</font></tt></body></html>"
 msgstr ""
-"<html><body>Normal face<br>(and <u>Unterstrichen</u>. <i>Kursiv face.</i> "
-"<b>Fett face.</b> <b><i>Fett Kursiv face.</i></b><br><font size=-2>font size "
+"<html><body>Normal<br>(and <u>Unterstrichen</u>. <i>Kursiv.</i> "
+"<b>Fett.</b> <b><i>Fett Kursiv.</i></b><br><font size=-2>font size "
 "-2</font><br><font size=-1>font size -1</font><br><font size=+0>font size "
 "+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
 "+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
-"+4</font><br><p><tt>Fixed size face.<br> <b>Fett</b> <i>Kursiv</i> "
+"+4</font><br><p><tt>Fixed size.<br> <b>Fett</b> <i>Kursiv</i> "
 "<b><i>Fett Kursiv <u>Unterstrichen</u></i></b><br><font size=-2>font size "
 "-2</font><br><font size=-1>font size -1</font><br><font size=+0>font size "
 "+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
@@ -428,9 +424,8 @@ msgid "B6 Envelope, 176 x 125 mm"
 msgstr "B6 Umschlag, 176 x 125 mm"
 
 #: ../src/common/imagbmp.cpp:467 ../src/common/imagbmp.cpp:483
-#, fuzzy
 msgid "BMP: Couldn't allocate memory."
-msgstr "PNM: Speicheranforderung gescheitert."
+msgstr "BMP: Speicheranforderung gescheitert."
 
 #: ../src/common/imagbmp.cpp:86
 msgid "BMP: Couldn't save invalid image."
@@ -510,7 +505,6 @@ msgid "C65 Envelope, 114 x 229 mm"
 msgstr "C65 Umschlag, 114 x 229 mm"
 
 #: ../src/common/filefn.cpp:1358
-#, fuzzy, c-format
 msgid "Can not enumerate files '%s'"
 msgstr "Kann Dateien '%s' nicht auflisten"
 
@@ -558,14 +552,12 @@ msgid "Can't copy values of unsupported type %d."
 msgstr "Kann Inhalte des nicht unterstützten Typs %d nicht kopieren."
 
 #: ../src/msw/toplevel.cpp:295
-#, fuzzy
 msgid "Can't create dialog using memory template"
-msgstr "Kann Dialog nicht aus Template '%s' anlegen"
+msgstr "Kann Dialog nicht im Speicher anlegen"
 
 #: ../src/os2/toplevel.cpp:331
-#, fuzzy, c-format
 msgid "Can't create dialog using template '%ul'"
-msgstr "Kann Dialog nicht aus Template '%s' anlegen"
+msgstr "Kann Dialog nicht aus Template '%ul' anlegen"
 
 #: ../src/msw/listctrl.cpp:319
 msgid "Can't create list control window, check that comctl32.dll is installed."
@@ -653,9 +645,8 @@ msgid "Can't read value of key '%s'"
 msgstr "Kann Wert von Eintrag '%s' nicht lesen"
 
 #: ../src/common/image.cpp:955
-#, fuzzy, c-format
 msgid "Can't save image to file '%s': unknown extension."
-msgstr "Kann Bild aus Datei '%s' nicht laden : Datei ist nicht vorhanden."
+msgstr "Kann Bild nicht aus Datei '%s' laden: Unbekannte Dateiendung."
 
 #: ../src/generic/logg.cpp:551 ../src/generic/logg.cpp:985
 msgid "Can't save log contents to file."
@@ -682,12 +673,11 @@ msgstr "Abbruch"
 
 #: ../contrib/src/xrc/xmlres.cpp:893 ../contrib/src/xrc/xmlres.cpp:934
 msgid "Cannot convert dialog units: dialog unknown."
-msgstr ""
+msgstr "Kann Dialog-Einheiten nicht konvertieren: Dialog unbekannt."
 
 #: ../src/common/strconv.cpp:929
-#, fuzzy, c-format
 msgid "Cannot convert from encoding '%s'!"
-msgstr "Unbekannte Kodierung (%d)"
+msgstr "Kann nicht von Kodierung (%s) konvertieren"
 
 #: ../src/msw/dialup.cpp:497
 #, c-format
@@ -695,14 +685,12 @@ msgid "Cannot find active dialup connection: %s"
 msgstr "Kann keine aktive DFÜ-Verbindung finden: %s"
 
 #: ../contrib/src/xrc/xmlres.cpp:224
-#, fuzzy, c-format
 msgid "Cannot find container for unknown control '%s'."
-msgstr "Kann keine aktive DFÜ-Verbindung finden: %s"
+msgstr "Kann keinen Container für unbekanntes Control '%s' finden."
 
 #: ../contrib/src/xrc/xmlres.cpp:948
-#, fuzzy, c-format
 msgid "Cannot find font node '%s'."
-msgstr "Kann URL '%s' nicht öffnen"
+msgstr "Kann keinen Font-Knoten '%s' finden."
 
 #: ../src/msw/dialup.cpp:811
 msgid "Cannot find the location of address book file"
@@ -815,14 +803,12 @@ msgid "Case sensitive"
 msgstr "Groß-/Kleinschreibung"
 
 #: ../src/common/fontmap.cpp:125
-#, fuzzy
 msgid "Celtic (ISO-8859-14)"
-msgstr "Baltisch (ISO-8859-13)"
+msgstr "Keltisch (ISO-8859-14)"
 
 #: ../src/common/fontmap.cpp:113
-#, fuzzy
 msgid "Central European (ISO-8859-2)"
-msgstr "Zentral Europäisch (ISO-8859-2/Latin 2)"
+msgstr "Zentral Europäisch (ISO-8859-2)"
 
 #: ../src/msw/dialup.cpp:746
 msgid "Choose ISP to dial"
@@ -850,9 +836,8 @@ msgid "Close this window"
 msgstr "Fenster schließen"
 
 #: ../src/generic/dirctrlg.cpp:547
-#, fuzzy
 msgid "Computer"
-msgstr "Der Computer"
+msgstr "Computer"
 
 #: ../src/common/fileconf.cpp:872
 #, c-format
@@ -877,8 +862,8 @@ msgstr "Inhalt"
 
 #: ../src/common/strconv.cpp:596
 #, c-format
-msgid "Convertion to charset '%s' doesn't work."
-msgstr ""
+msgid "Conversion to charset '%s' doesn't work."
+msgstr "Konvertierung zum Zeichensatz '%s' funktioniert nicht."
 
 #: ../src/generic/prntdlgg.cpp:193
 msgid "Copies:"
@@ -942,9 +927,8 @@ msgid "Couldn't create a timer"
 msgstr "Kann keinen Timer anlegen."
 
 #: ../src/mgl/cursor.cpp:135 ../src/mgl/cursor.cpp:166
-#, fuzzy
 msgid "Couldn't create cursor."
-msgstr "Kann keinen Timer anlegen."
+msgstr "Konnte Cursor nicht erzeugen."
 
 #: ../src/common/dynlib.cpp:347 ../src/common/dynload.cpp:295
 #, c-format
@@ -973,9 +957,8 @@ msgstr "Kann keine Informationen 
 
 #: ../src/common/imagpng.cpp:334 ../src/common/imagpng.cpp:345
 #: ../src/common/imagpng.cpp:353
-#, fuzzy
 msgid "Couldn't save PNG image."
-msgstr "JPEG: Konnte Bild nicht sichern."
+msgstr "Konnte PNG-Bild nicht speichern."
 
 #: ../src/mac/thread.cpp:749 ../src/msw/thread.cpp:1091
 msgid "Couldn't terminate thread"
@@ -994,9 +977,8 @@ msgid "Current directory:"
 msgstr "Aktuelles Verzeichnis:"
 
 #: ../src/common/fontmap.cpp:116
-#, fuzzy
 msgid "Cyrillic (ISO-8859-5)"
-msgstr "Baltisch (ISO-8859-13)"
+msgstr "Kyrillisch (ISO-8859-5)"
 
 #: ../src/common/paper.cpp:106
 msgid "D sheet, 22 x 34 in"
@@ -1007,34 +989,28 @@ msgid "DDE poke request failed"
 msgstr "DDE 'poke' gescheitert"
 
 #: ../src/common/imagbmp.cpp:618
-#, fuzzy
 msgid "DIB Header: Cannot deal with 4bit encoded yet."
-msgstr "BMP: Kann noch nicht mit 4bit verschlüsseltem Code umgehen."
+msgstr "DIB Header: Kann noch nicht mit 4bit Kodierung umgehen."
 
 #: ../src/common/imagbmp.cpp:836
-#, fuzzy
 msgid "DIB Header: Encoding doesn't match bitdepth."
-msgstr "BMP: Verschlüsselung entspricht der Bittiefe nicht."
+msgstr "DIB Header: Kodierung entspricht der Bittiefe nicht."
 
 #: ../src/common/imagbmp.cpp:798
-#, fuzzy
 msgid "DIB Header: Image height > 32767 pixels for file."
-msgstr "BMP: Bildhöhe > 32767 pixels."
+msgstr "DIB Header: Bildhöhe > 32767 pixels."
 
 #: ../src/common/imagbmp.cpp:792
-#, fuzzy
 msgid "DIB Header: Image width > 32767 pixels for file."
-msgstr "BMP: Bildbreite > 32767 pixels."
+msgstr "DIB Header: Bildbreite > 32767 pixels."
 
 #: ../src/common/imagbmp.cpp:812
-#, fuzzy
 msgid "DIB Header: Unknown bitdepth in file."
-msgstr "BMP: Unbekannte Bittiefe."
+msgstr "DIB Header: Unbekannte Bittiefe."
 
 #: ../src/common/imagbmp.cpp:822
-#, fuzzy
 msgid "DIB Header: Unknown encoding in file."
-msgstr "BMP: Unbekannte Verschlüsselung."
+msgstr "DIB Header: Unbekannte Kodierung."
 
 #: ../src/common/paper.cpp:128
 msgid "DL Envelope, 110 x 220 mm"
@@ -1050,12 +1026,12 @@ msgstr "Dekorativ"
 
 #: ../src/common/fontmap.cpp:386
 msgid "Default encoding"
-msgstr ""
+msgstr "Standard Kodierung"
 
 #: ../src/unix/snglinst.cpp:269
-#, fuzzy, c-format
+#, c-format
 msgid "Deleted stale lock file '%s'."
-msgstr "Kann INI-Datei '%s' nicht löschen"
+msgstr "Ungenutzte Sperr-Datei '%s' wurde gelöscht."
 
 #: ../src/msw/dialup.cpp:346
 msgid ""
@@ -1075,7 +1051,7 @@ msgstr ""
 
 #: ../src/generic/tipdlg.cpp:178
 msgid "Did you know..."
-msgstr "Wußten Sie schon..."
+msgstr "Wussten Sie schon..."
 
 #: ../src/common/filefn.cpp:1254
 #, c-format
@@ -1083,9 +1059,9 @@ msgid "Directory '%s' couldn't be created"
 msgstr "Verzeichnis '%s' konnte nicht angelegt werden."
 
 #: ../src/mgl/dirmgl.cpp:217
-#, fuzzy, c-format
+#, c-format
 msgid "Directory '%s' doesn't exist!"
-msgstr "Verzeichnis existiert nicht"
+msgstr "Verzeichnis '%s' existiert nicht."
 
 #: ../src/generic/dirdlgg.cpp:188
 msgid "Directory does not exist"
@@ -1097,7 +1073,7 @@ msgid ""
 "insensitive."
 msgstr ""
 "Alle Themen im Index nach Suchbegriff durchsuchen. Groß-/Kleinschreibung "
-"wird nicht beachtet"
+"wird nicht beachtet."
 
 #: ../src/html/helpfrm.cpp:540
 msgid "Display options dialog"
@@ -1128,9 +1104,8 @@ msgid "Done."
 msgstr "Fertig."
 
 #: ../src/generic/fdrepdlg.cpp:157
-#, fuzzy
 msgid "Down"
-msgstr "Ich habe fertig :-)"
+msgstr "Herunter"
 
 #: ../src/common/paper.cpp:107
 msgid "E sheet, 34 x 44 in"
@@ -1170,9 +1145,8 @@ msgid "Error creating directory"
 msgstr "Fehler beim Anlegen des Verzeichnisses"
 
 #: ../src/common/imagbmp.cpp:845
-#, fuzzy
 msgid "Error in reading image DIB ."
-msgstr "TIFF: Fehler beim Lesen des Bildes."
+msgstr "Fehler beim Lesen des DIB-Bildes."
 
 #: ../src/common/log.cpp:460
 msgid "Error: "
@@ -1220,17 +1194,16 @@ msgstr "Fehlerhafte %s DF
 
 #: ../src/unix/snglinst.cpp:243
 msgid "Failed to access lock file."
-msgstr ""
+msgstr "Fehler beim Zugriff auf Sperr-Datei."
 
 #: ../src/common/filename.cpp:172
-#, fuzzy
 msgid "Failed to close file handle"
-msgstr "Konnte Zwischenablage nicht schließen."
+msgstr "Konnte Datei-Handle nicht schließen."
 
 #: ../src/unix/snglinst.cpp:308
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to close lock file '%s'"
-msgstr "Versuch, die Datei '%s' zu entladen, gescheitert"
+msgstr "Konnte Sperr-Datei '%s' nicht schließen"
 
 #: ../src/msw/clipbrd.cpp:127
 msgid "Failed to close the clipboard."
@@ -1256,9 +1229,9 @@ msgstr ""
 "Kopieren des Inhalts des Registrieungsschlüssels '%s' nach '%s' gescheitert"
 
 #: ../src/common/filefn.cpp:1106
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to copy the file '%s' to '%s'"
-msgstr "Versuch, die Datei '%s' zu entladen, gescheitert"
+msgstr "Konnte die Datei '%s' nicht nach '%s' kopieren"
 
 #: ../src/msw/dde.cpp:924
 msgid "Failed to create DDE string"
@@ -1273,14 +1246,12 @@ msgid "Failed to create a status bar."
 msgstr "Erstellung der Statusbar gescheitert."
 
 #: ../src/common/filename.cpp:717
-#, fuzzy
 msgid "Failed to create a temporary file name"
-msgstr "Erstellung des MDI-Hauptframes gescheitert."
+msgstr "Konnte keinen vorrübergehenden Dateinamen erstellen."
 
 #: ../src/msw/utilsexc.cpp:195
-#, fuzzy
 msgid "Failed to create an anonymous pipe"
-msgstr "Erstellung der Statusbar gescheitert."
+msgstr "Konnte keine anonyme Unix-Pipe erstellen"
 
 #: ../src/msw/dde.cpp:401
 #, c-format
@@ -1288,33 +1259,32 @@ msgid "Failed to create connection to server '%s' on topic '%s'"
 msgstr "Aufbau der Verbindung zur Server '%s' 'on topic' gescheitert"
 
 #: ../src/msw/toplevel.cpp:293
-#, fuzzy
 msgid "Failed to create dialog. Incorrect DLGTEMPLATE?"
-msgstr "Konnte Verzeichnis nicht anlegen "
+msgstr "Konnte Dialog nicht erstellen. Ungültiges DLGTEMPLATE?"
 
 #: ../src/generic/dirdlgg.cpp:201
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "Failed to create directory '%s'\n"
 "(Do you have the required permissions?)"
 msgstr ""
-"\n"
+"Konnte Verzeichnis '%s' nicht erstellen\n"
 "(Haben Sie die nötigen Zugriffsrechte?)"
 
 #: ../src/msw/mimetype.cpp:168
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to create registry entry for '%s' files."
-msgstr "Umbenennen des Registrieungsschlüssels von '%s' in '%s' gescheitert"
+msgstr "Konnte keinen Registrieungseintrag für '%s'-Dateien erstellen."
 
 #: ../src/msw/fdrepdlg.cpp:442
 #, c-format
 msgid "Failed to create the standard find/replace dialog (error code %d)"
-msgstr ""
+msgstr "Konnte keinen Standard Finden/Ersetzen-Dialog erstellen (Fehler %d)"
 
 #: ../src/html/winpars.cpp:430
 #, c-format
 msgid "Failed to display HTML document in %s encoding"
-msgstr "Anzeige von HTLM-Dokument in %s 'encoding' ist gescheitert"
+msgstr "Konnte HTML-Dokument nicht in der Kodierung %s anzeigen"
 
 #: ../src/mac/clipbrd.cpp:167 ../src/msw/clipbrd.cpp:139
 msgid "Failed to empty the clipboard."
@@ -1364,100 +1334,94 @@ msgstr ""
 #: ../src/msw/dialup.cpp:678
 #, c-format
 msgid "Failed to get ISP names: %s"
-msgstr "Versuch gescheitert, 'IPS names' '%s' zu bekommen"
+msgstr "Konnte ISP Namen '%s' nicht ermitteln"
 
 #: ../src/mac/clipbrd.cpp:118
-#, fuzzy
 msgid "Failed to get clipboard data."
-msgstr "Konnte Dateien nicht in die Zwischenablage kopieren."
+msgstr "Konnte Daten nicht aus der Zwischenablage kopieren."
 
 #: ../src/msw/clipbrd.cpp:712
 msgid "Failed to get data from the clipboard"
-msgstr "Versuch, Daten aus der Zwischenablage zu bekommen, gescheitert"
+msgstr "Konnte Daten nicht aus der Zwischenablage kopieren"
 
 #: ../src/common/timercmn.cpp:286
 msgid "Failed to get the UTC system time."
-msgstr "Versuch, UTC-Systen-Zeit zu bekommen, gescheitert"
+msgstr "Versuch, UTC-Systen-Zeit zu bekommen, gescheitert."
 
 #: ../src/common/timercmn.cpp:237
 msgid "Failed to get the local system time"
 msgstr "Versuch, örtliche Systemzeit zu bekommen, gescheitert."
 
 #: ../src/common/filefn.cpp:1487
-#, fuzzy
 msgid "Failed to get the working directory"
-msgstr "Konnte Verzeichnis nicht anlegen "
+msgstr "Konnte Arbeits-Verzeichnis nicht ermitteln"
 
 #: ../src/univ/theme.cpp:120
 msgid "Failed to initialize GUI: no built-in themes found."
-msgstr ""
+msgstr "Konnte GUI nicht initialisieren: kein Theme gefunden."
 
 #: ../src/msw/helpchm.cpp:69
 msgid "Failed to initialize MS HTML Help."
-msgstr ""
+msgstr "Konnte MS HTML-Hilfe nicht initialisieren."
 
 #: ../src/msw/glcanvas.cpp:729
-#, fuzzy
 msgid "Failed to initialize OpenGL"
-msgstr "Kann OLE nicht initialisiern"
+msgstr "Konnte OpenGL nicht initialisiern"
 
 #: ../src/unix/threadpsx.cpp:871
 msgid ""
 "Failed to join a thread, potential memory leak detected - please restart the "
 "program"
 msgstr ""
-"Thread-Verbindung gescheitert, mögliche 'memory leak' festgestellt - Bitte "
+"Thread-Verbindung gescheitert. Dies ist ein mögliches Speicherleck - Bitte "
 "Programm neu starten"
 
 #: ../src/msw/utils.cpp:721
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to kill process %d"
-msgstr "Umleitung des Ein/Ausgabe des Unterprozesses gescheitert"
+msgstr "Konnte Prozess %d nicht abbrechen"
 
 #: ../src/common/iconbndl.cpp:66
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to load image %d from file '%s'."
-msgstr "Versuch, die Datei '%s' zu entladen, gescheitert"
+msgstr "Konnte das Bild %d aus der Datei '%s' nicht laden."
 
 #: ../src/msw/volume.cpp:340
-#, fuzzy
 msgid "Failed to load mpr.dll."
-msgstr "Konnte Dateien nicht in die Zwischenablage kopieren."
+msgstr "Konnte mpr.dll nicht laden."
 
 #: ../src/common/dynlib.cpp:274 ../src/common/dynload.cpp:197
 #, c-format
 msgid "Failed to load shared library '%s'"
-msgstr "Laden des DLL '%s' gescheitert"
+msgstr "Laden der DLL '%s' gescheitert"
 
 #: ../src/common/dynlib.cpp:256 ../src/common/dynload.cpp:126
-#, fuzzy, c-format
 msgid "Failed to load shared library '%s' Error '%s'"
-msgstr "Laden des DLL '%s' gescheitert"
+msgstr "Laden der DLL '%s' gescheitert: Fehler '%s'"
 
 #: ../src/unix/snglinst.cpp:192
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to lock the lock file '%s'"
-msgstr "Versuch, die Datei '%s' zu entladen, gescheitert"
+msgstr "Konnte die Sperr-Datei '%s' nicht sperren"
 
 #: ../src/common/regex.cpp:251
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to match '%s' in regular expression: %s"
-msgstr "Fehlerhafte %s DFÜ-Verbindung: %s"
+msgstr "Konnte keine Übereinstimmung in regulärem Ausdruck %s finden"
 
 #: ../src/common/filename.cpp:1644
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to modify file times for '%s'"
-msgstr "Versuch, die Datei '%s' zu entladen, gescheitert"
+msgstr "Konnte Zugriffszeit von Datei '%s' nicht ändern"
 
 #: ../src/common/filename.cpp:160
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to open '%s' for %s"
-msgstr "Konnte Zwischenablage nicht öffnen."
+msgstr "Konnte '%s' nicht für %s öffnen."
 
 #: ../src/common/filename.cpp:739
-#, fuzzy
 msgid "Failed to open temporary file."
-msgstr "Konnte Zwischenablage nicht öffnen."
+msgstr "Konnte vorrübergehende Datei nicht öffnen."
 
 #: ../src/msw/clipbrd.cpp:107
 msgid "Failed to open the clipboard."
@@ -1468,16 +1432,14 @@ msgid "Failed to put data on the clipboard"
 msgstr "Versuch, Daten in der Zwischenablage abzulegen, gescheitert"
 
 #: ../src/unix/snglinst.cpp:252
-#, fuzzy
 msgid "Failed to read PID from lock file."
-msgstr "Erstellung des MDI-Hauptframes gescheitert."
+msgstr "Konnte keine PID von Sperr-Datei lesen."
 
 #: ../src/unix/utilsunx.cpp:629
 msgid "Failed to redirect child process input/output"
 msgstr "Umleitung des Ein/Ausgabe des Unterprozesses gescheitert"
 
 #: ../src/msw/utilsexc.cpp:600
-#, fuzzy
 msgid "Failed to redirect the child process IO"
 msgstr "Umleitung des Ein/Ausgabe des Unterprozesses gescheitert"
 
@@ -1493,14 +1455,13 @@ msgstr ""
 "Versuch gescheitert, an die Kodierung für den Zeichensatz '%s' zu erinnern."
 
 #: ../src/unix/snglinst.cpp:296
-#, fuzzy, c-format
 msgid "Failed to remove lock file '%s'"
-msgstr "Kann Datei '%s' nicht löschen."
+msgstr "Konnte  Sperr-Datei '%s' nicht löschen."
 
 #: ../src/unix/snglinst.cpp:262
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to remove stale lock file '%s'."
-msgstr "Umbenennen des Registrieungswertes '%s' in '%s' gescheitert"
+msgstr "Konnte unbenutzte Sperr-Datei '%s' nicht entfernen."
 
 #: ../src/msw/registry.cpp:443
 #, c-format
@@ -1517,9 +1478,8 @@ msgid "Failed to retrieve data from the clipboard."
 msgstr "Konnte Daten von der Zwischenablage nicht bekommen."
 
 #: ../src/common/filename.cpp:1710
-#, fuzzy, c-format
 msgid "Failed to retrieve file times for '%s'"
-msgstr "Versuch, den Inhalt der RAS-Fehlernachricht zu holen, gescheitert"
+msgstr "Konnte Zugriffszeit von Datei '%s' nicht ermitteln"
 
 #: ../src/msw/dialup.cpp:442
 msgid "Failed to retrieve text of RAS error message"
@@ -1527,26 +1487,24 @@ msgstr "Versuch, den Inhalt der RAS-Fehlernachricht zu holen, gescheitert"
 
 #: ../src/msw/clipbrd.cpp:742
 msgid "Failed to retrieve the supported clipboard formats"
-msgstr ""
-"Versuch, das von der Zwischenablage unterstützte Format zu holen, gescheitert"
+msgstr "Konnte die von der Zwischenablage unterstützten Formate nicht ermitteln"
 
 #: ../src/msw/dde.cpp:651
 msgid "Failed to send DDE advise notification"
 msgstr "Versuch gescheitert, eine DDE-Benachrichtigung zu schicken"
 
 #: ../src/common/ftp.cpp:368
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to set FTP transfer mode to %s."
-msgstr "Versuch gescheitert, die Thread-Priorität %d zu setzten."
+msgstr "Konnte den FTP-Transfermodus nicht auf '%s' setzen."
 
 #: ../src/msw/clipbrd.cpp:379
 msgid "Failed to set clipboard data."
 msgstr "Konnte Dateien nicht in die Zwischenablage kopieren."
 
 #: ../src/common/file.cpp:522
-#, fuzzy
 msgid "Failed to set temporary file permissions"
-msgstr "Versuch, die Datei '%s' zu entladen, gescheitert"
+msgstr "Konnte die Zugriffsrechte der vorrübergehenden Datei nicht setzen"
 
 #: ../src/unix/threadpsx.cpp:1213 ../src/unix/threadpsx.cpp:1224
 #, c-format
@@ -1572,14 +1530,14 @@ msgid "Failed to terminate the dialup connection: %s"
 msgstr "Versuch gescheitert, die DFÜ-Verbindung zu beenden: %s"
 
 #: ../src/common/filename.cpp:1659
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to touch the file '%s'"
-msgstr "Versuch, die Datei '%s' zu entladen, gescheitert"
+msgstr "Konnte die Datei '%s' nicht 'berühren'"
 
 #: ../src/unix/snglinst.cpp:302
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to unlock lock file '%s'"
-msgstr "Versuch, die Datei '%s' zu entladen, gescheitert"
+msgstr "Konnte die Sperrung von Datei '%s' nicht aufheben"
 
 #: ../src/msw/dde.cpp:301
 #, c-format
@@ -1587,9 +1545,9 @@ msgid "Failed to unregister DDE server '%s'"
 msgstr "Versuch gescheitert, den DDE-Server '%s' zu deregistrieren."
 
 #: ../src/unix/snglinst.cpp:173
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to write to lock file '%s'"
-msgstr "Versuch, die Datei '%s' zu entladen, gescheitert"
+msgstr "Konnte Sperr-Datei '%s' nicht schreiben"
 
 #: ../src/generic/logg.cpp:379
 msgid "Fatal error"
@@ -1597,16 +1555,16 @@ msgstr "Nicht-behebbarer Fehler"
 
 #: ../src/common/log.cpp:453
 msgid "Fatal error: "
-msgstr "Nicht-behebbarer Fehler:"
+msgstr "Nicht-behebbarer Fehler: "
 
 #: ../src/mac/app.cpp:1220 ../src/msw/app.cpp:1281
 msgid "Fatal error: exiting"
 msgstr "Nicht-behebbarer Fehler: Abbruch"
 
 #: ../src/mgl/bitmap.cpp:544
-#, fuzzy, c-format
+#, c-format
 msgid "File %s does not exist."
-msgstr ": Datei existiert nicht!"
+msgstr "Datei '%s' existiert nicht."
 
 #: ../src/generic/filedlgg.cpp:1354 ../src/gtk/filedlg.cpp:69
 #, c-format
@@ -1614,11 +1572,13 @@ msgid "File '%s' already exists, do you really want to overwrite it?"
 msgstr "Datei '%s' existiert bereits, möchten Sie sie wirklich überschreiben?"
 
 #: ../src/msw/filedlg.cpp:505
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "File '%s' already exists.\n"
 "Do you want to replace it?"
-msgstr "Datei '%s' existiert bereits, möchten Sie sie wirklich überschreiben?"
+msgstr ""
+"Datei '%s' existiert bereits.\n"
+"Möchten Sie sie wirklich überschreiben?"
 
 #: ../src/common/textcmn.cpp:158
 msgid "File couldn't be loaded."
@@ -1652,7 +1612,7 @@ msgstr "Folio, 8 1/2 x 13 Zoll"
 
 #: ../src/html/helpfrm.cpp:960
 msgid "Font size:"
-msgstr "Font Große:"
+msgstr "Font Größe:"
 
 #: ../src/unix/utilsunx.cpp:572
 msgid "Fork failed"
@@ -1678,9 +1638,8 @@ msgid "From:"
 msgstr "Von:"
 
 #: ../src/common/imaggif.cpp:100
-#, fuzzy
 msgid "GIF: Invalid gif index."
-msgstr "Ungültiger Index des TIFF-Bilds."
+msgstr "GIF: Ungültiger Index."
 
 #: ../src/common/imaggif.cpp:75
 msgid "GIF: data stream seems to be truncated."
@@ -1696,11 +1655,11 @@ msgstr "GIF: nicht genug Speicher."
 
 #: ../src/common/imaggif.cpp:65
 msgid "GIF: unknown error!!!"
-msgstr "GIF: unbekannter Fehler!!!"
+msgstr "GIF: unbekannter Fehler!"
 
 #: ../src/univ/themes/gtk.cpp:623
 msgid "GTK+ theme"
-msgstr ""
+msgstr "GTK+ Thema"
 
 #: ../src/common/paper.cpp:142
 msgid "German Legal Fanfold, 8 1/2 x 13 in"
@@ -1712,15 +1671,15 @@ msgstr "German Std Entlospapier, 8 1/2 x 12 Zoll"
 
 #: ../src/common/image.cpp:762
 msgid "GetUnusedColour:: No Unused Color in image "
-msgstr ""
+msgstr "GetUnusedColour:: Keine unbenutzte Farbe im Bild."
 
 #: ../src/html/helpfrm.cpp:506
 msgid "Go back"
-msgstr "Vorherige HTLM-Seite zeigen"
+msgstr "Vorherige HTML-Seite zeigen"
 
 #: ../src/html/htmlhelp.cpp:541
 msgid "Go back to the previous HTML page"
-msgstr ""
+msgstr "Zurück zur letzten HTML Seite"
 
 #: ../src/html/helpfrm.cpp:509
 msgid "Go forward"
@@ -1728,7 +1687,7 @@ msgstr "N
 
 #: ../src/html/htmlhelp.cpp:543
 msgid "Go forward to the next HTML page"
-msgstr ""
+msgstr "Vorwärts nur nächsten HTML Seite"
 
 #: ../src/html/helpfrm.cpp:514
 msgid "Go one level up in document hierarchy"
@@ -1744,7 +1703,7 @@ msgstr "Gehe zum 'Parent'-Verzeichnis"
 
 #: ../src/common/prntbase.cpp:379
 msgid "Goto Page"
-msgstr ""
+msgstr "Gehe zur Seite"
 
 #: ../src/common/fontmap.cpp:118
 msgid "Greek (ISO-8859-7)"
@@ -1775,7 +1734,7 @@ msgid "Help"
 msgstr "Hilfe"
 
 #: ../src/html/htmlhelp.cpp:87
-#, fuzzy, c-format
+#, c-format
 msgid "Help : %s"
 msgstr "Hilfe: %s"
 
@@ -1797,50 +1756,43 @@ msgid "Help: %s"
 msgstr "Hilfe: %s"
 
 #: ../src/common/imagbmp.cpp:858
-#, fuzzy
 msgid "ICO: Error in reading mask DIB."
-msgstr "TIFF: Fehler beim Lesen des Bildes."
+msgstr "ICO: Fehler beim Lesen der DIB Maske."
 
 #: ../src/common/imagbmp.cpp:960 ../src/common/imagbmp.cpp:1019
 #: ../src/common/imagbmp.cpp:1028 ../src/common/imagbmp.cpp:1039
 #: ../src/common/imagbmp.cpp:1083 ../src/common/imagbmp.cpp:1093
 #: ../src/common/imagbmp.cpp:1102
-#, fuzzy
 msgid "ICO: Error writing the image file!"
-msgstr "TIFF: Schreibfehler beim Sichern."
+msgstr "ICO: Schreibfehler beim Sichern."
 
 #: ../src/common/imagbmp.cpp:928
 msgid "ICO: Image too tall for an icon."
-msgstr ""
+msgstr "ICO: Bild zu gross für ein Icon."
 
 #: ../src/common/imagbmp.cpp:934
 msgid "ICO: Image too wide for an icon."
-msgstr ""
+msgstr "ICO: Bild zu breit fü ein Icon."
 
 #: ../src/common/imagbmp.cpp:1167
-#, fuzzy
 msgid "ICO: Invalid icon index."
-msgstr "Ungültiger Index des TIFF-Bilds."
+msgstr "ICO: Unütiger Icon-Index."
 
 #: ../src/common/imagiff.cpp:767
-#, fuzzy
 msgid "IFF: data stream seems to be truncated."
-msgstr "GIF: Datei scheint unvollständig zu sein."
+msgstr "IFF: Datei scheint unvollständig zu sein."
 
 #: ../src/common/imagiff.cpp:751
-#, fuzzy
 msgid "IFF: error in IFF image format."
-msgstr "GIF: Fehler im GIF-Bildformat."
+msgstr "IFF: Fehler im IFF Bildformat."
 
 #: ../src/common/imagiff.cpp:754
-#, fuzzy
 msgid "IFF: not enough memory."
-msgstr "GIF: nicht genug Speicher."
+msgstr "IFF: nicht genug Speicher."
 
 #: ../src/common/imagiff.cpp:757
-#, fuzzy
 msgid "IFF: unknown error!!!"
-msgstr "GIF: unbekannter Fehler!!!"
+msgstr "IFF: unbekannter Fehler!"
 
 #: ../src/common/resourc2.cpp:989 ../src/common/resourc2.cpp:1000
 #: ../src/common/resource.cpp:2649 ../src/common/resource.cpp:2660
@@ -1862,12 +1814,12 @@ msgstr "Ung
 
 #: ../src/common/image.cpp:785
 msgid "Image and Mask have different sizes"
-msgstr ""
+msgstr "Bild und Bildmaske haben verschiedene Grössen"
 
 #: ../src/common/image.cpp:1064
 #, c-format
 msgid "Image file is not of type %d."
-msgstr ""
+msgstr "Bild hat nicht den Bildtyp %d."
 
 #: ../src/msw/textctrl.cpp:249
 msgid ""
@@ -1882,28 +1834,27 @@ msgid "Impossible to get child process input"
 msgstr "Es war nicht möglich, die Eingabe des Unterprozesses zu verarbeiten"
 
 #: ../src/common/filefn.cpp:1122
-#, fuzzy, c-format
+#, c-format
 msgid "Impossible to get permissions for file '%s'"
-msgstr "Es war nicht möglich, die Eingabe des Unterprozesses zu verarbeiten"
+msgstr "Konnte nicht due Zugriffsrecht der Datei '%s' ermitteln"
 
 #: ../src/common/filefn.cpp:1136
-#, fuzzy, c-format
+#, c-format
 msgid "Impossible to overwrite the file '%s'"
-msgstr "Versuch, die Datei '%s' zu entladen, gescheitert"
+msgstr "Versuch, die Datei '%s' zu überschreiben, gescheitert"
 
 #: ../src/common/filefn.cpp:1187
 #, c-format
 msgid "Impossible to set permissions for the file '%s'"
-msgstr ""
+msgstr "Konnte die Zugriffsrechte für Datei '%s' nicht setzen"
 
 #: ../src/html/helpfrm.cpp:387 ../src/html/htmlhelp.cpp:578
 msgid "Index"
 msgstr "Hilfe-Index"
 
 #: ../src/common/fontmap.cpp:123
-#, fuzzy
 msgid "Indian (ISO-8859-12)"
-msgstr "Nordisch (ISO-8859-10)"
+msgstr "Indisch (ISO-8859-12)"
 
 #: ../src/common/imagtiff.cpp:183
 msgid "Invalid TIFF image index."
@@ -1915,24 +1866,24 @@ msgid "Invalid XRC resource '%s': doesn't have root node 'resource'."
 msgstr ""
 
 #: ../src/common/appcmn.cpp:378
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid display mode specification '%s'."
-msgstr "Ungültige Dateiangabe"
+msgstr "Ungütige Angabe '%s' des Displays."
 
 #: ../src/x11/app.cpp:231
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid geometry specification '%s'"
-msgstr "Ungültige Dateiangabe"
+msgstr "Ungültige Angabe '%s' der Fenstergrösse"
 
 #: ../src/unix/snglinst.cpp:280
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid lock file '%s'."
-msgstr "Kann Datei '%s' nicht schließen"
+msgstr "Ungültige Sperr-Datei '%s'."
 
 #: ../src/common/regex.cpp:173
 #, c-format
 msgid "Invalid regular expression '%s': %s"
-msgstr ""
+msgstr "Ungültiger regulärer Ausdruck '%s': %s"
 
 #: ../src/generic/fontdlgg.cpp:227
 msgid "Italic"
@@ -1989,13 +1940,12 @@ msgid "Load %s file"
 msgstr "%s-Datei laden"
 
 #: ../src/generic/filedlgg.cpp:1589
-#, fuzzy
 msgid "Load file"
-msgstr "%s-Datei laden"
+msgstr "Lade Datei"
 
 #: ../src/html/htmlwin.cpp:282
 msgid "Loading : "
-msgstr "Laden : "
+msgstr "Laden: "
 
 #: ../src/common/imagpnm.cpp:72
 msgid "Loading Grey Ascii PNM image is not yet implemented."
@@ -2028,7 +1978,7 @@ msgstr ""
 
 #: ../src/univ/themes/win32.cpp:4545
 msgid "Ma&ximize"
-msgstr ""
+msgstr "Ma&ximieren"
 
 #: ../src/unix/mimetype.cpp:2477
 #, c-format
@@ -2037,7 +1987,7 @@ msgstr "Mailcap-Datei %s, Zeile %d: unvollst
 
 #: ../src/generic/fdrepdlg.cpp:152
 msgid "Match case"
-msgstr ""
+msgstr "Gross- und Kleinschreibung beachten"
 
 #: ../src/common/fs_mem.cpp:144
 #, c-format
@@ -2046,11 +1996,11 @@ msgstr "VFS-Speicher beinhaltet bereits der Datei '%s'!"
 
 #: ../src/univ/themes/metal.cpp:174
 msgid "Metal theme"
-msgstr ""
+msgstr "Metal-Thema"
 
 #: ../src/univ/themes/win32.cpp:4543
 msgid "Mi&nimize"
-msgstr ""
+msgstr "Mi&nimieren"
 
 #: ../src/unix/mimetype.cpp:2102
 #, c-format
@@ -2094,7 +2044,7 @@ msgstr "Nein"
 
 #: ../src/common/image.cpp:793
 msgid "No Unused Color in image being masked"
-msgstr ""
+msgstr "Keine unbenutze Farbe im Bild, das maskiert werden soll"
 
 #: ../src/common/resourc2.cpp:814 ../src/common/resourc2.cpp:965
 #: ../src/common/resource.cpp:2471 ../src/common/resource.cpp:2625
@@ -2110,25 +2060,26 @@ msgid "No entries found."
 msgstr "Keine Einträge gefunden."
 
 #: ../src/common/fontmap.cpp:865
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "No font for displaying text in encoding '%s' found,\n"
 "but an alternative encoding '%s' is available.\n"
 "Do you want to use this encoding (otherwise you will have to choose another "
 "one)?"
 msgstr ""
-"Die Kodierung '%s' ist nicht bekannt.\n"
-"Möchten Sie einen Font für diese Kodierung wählen\n"
-"(sonst wird der Text mit dieser Kodierung nicht richtig angezeigt)?"
+"Kein Font für die Kodierung '%s' gefunden,\n"
+"es ist aber eine Alternative '%s' verfügbar.\n"
+"Möchten Sie diesen Font für diese Kodierung wählen\n"
+"(sonst müssen Sie einen anderen auswählen)?"
 
 #: ../src/common/fontmap.cpp:870
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "No font for displaying text in encoding '%s' found.\n"
 "Would you like to select a font to be used for this encoding\n"
 "(otherwise the text in this encoding will not be shown correctly)?"
 msgstr ""
-"Die Kodierung '%s' ist nicht bekannt.\n"
+"Kein Font für die Kodierung '%s' gefunden,\n"
 "Möchten Sie einen Font für diese Kodierung wählen\n"
 "(sonst wird der Text mit dieser Kodierung nicht richtig angezeigt)?"
 
@@ -2305,10 +2256,14 @@ msgid ""
 "(at least version 4.70 is required but you have %d.%02d)\n"
 "or this program won't operate correctly."
 msgstr ""
+"Bitte installieren Sie eine neuere Version con comctl32.dll\n"
+"(mindestens Version 4.70 wird benötigt, aber Sie haben nur\n"
+"Version %d.%02d)."
+
 
 #: ../src/common/prntbase.cpp:112
 msgid "Please wait while printing\n"
-msgstr ""
+msgstr "Bitte warten Sie während des Druckens\n"
 
 #: ../src/generic/prntdlgg.cpp:425 ../src/generic/prntdlgg.cpp:619
 msgid "Portrait"
@@ -2320,7 +2275,7 @@ msgstr "PostScript-Datei"
 
 #: ../src/html/htmlhelp.cpp:509
 msgid "Preparing help window..."
-msgstr ""
+msgstr "Bereite Hilfsfenster vor..."
 
 #: ../src/html/helpfrm.cpp:964
 msgid "Preview:"
@@ -2387,9 +2342,8 @@ msgid "Printer..."
 msgstr "Drucker..."
 
 #: ../src/common/prntbase.cpp:109 ../src/common/prntbase.cpp:154
-#, fuzzy
 msgid "Printing "
-msgstr "Drucken"
+msgstr "Drucken von "
 
 #: ../src/common/prntbase.cpp:126
 msgid "Printing Error"
@@ -2470,17 +2424,16 @@ msgid "Remove current page from bookmarks"
 msgstr "Aktuelle HTLM-Seite als Lesezeichen entfernen"
 
 #: ../src/generic/fdrepdlg.cpp:177
-#, fuzzy
 msgid "Replace &all"
-msgstr "Datei '%s' ersetzen?"
+msgstr "Alle &ersetzen"
 
 #: ../src/generic/fdrepdlg.cpp:129
 msgid "Replace with:"
-msgstr ""
+msgstr "Ersetzen durch:"
 
 #: ../contrib/src/xrc/xmlres.cpp:360
 msgid "Resource files must have same version number!"
-msgstr ""
+msgstr "Resource-datei muss Versionsnummer haben!"
 
 #: ../src/generic/prntdlgg.cpp:644
 msgid "Right margin (mm):"
@@ -2501,9 +2454,8 @@ msgid "Save as"
 msgstr "Sichern als"
 
 #: ../src/generic/filedlgg.cpp:1604
-#, fuzzy
 msgid "Save file"
-msgstr "Datei %s sichern"
+msgstr "Datei sichern"
 
 #: ../src/generic/logg.cpp:487
 msgid "Save log contents to file"
@@ -2529,23 +2481,20 @@ msgid ""
 msgstr "Alle Hilfebücher nach eingegebenem Begriff durchsuchen."
 
 #: ../src/generic/fdrepdlg.cpp:158
-#, fuzzy
 msgid "Search direction"
-msgstr "Verzeichnis anlegen"
+msgstr "Suchrichtung"
 
 #: ../src/generic/fdrepdlg.cpp:117
-#, fuzzy
 msgid "Search for:"
-msgstr "Suchen"
+msgstr "Suchen nach:"
 
 #: ../src/html/helpfrm.cpp:789
 msgid "Search in all books"
 msgstr "Alle Bücher durchsuchen"
 
 #: ../src/html/htmlhelp.cpp:593
-#, fuzzy
 msgid "Search!"
-msgstr "Suchen"
+msgstr "Suche!"
 
 #: ../src/html/helpfrm.cpp:650 ../src/html/htmlhelp.cpp:383
 #: ../src/html/htmlhelp.cpp:441
@@ -2599,9 +2548,8 @@ msgid "Show all items in index"
 msgstr "Alle Themen im Index anzeigen"
 
 #: ../src/generic/dirdlgg.cpp:135
-#, fuzzy
 msgid "Show hidden directories"
-msgstr "Versteckte Dateien anzeigen"
+msgstr "Versteckte Verzeichnisse anzeigen"
 
 #: ../src/generic/filedlgg.cpp:1160 ../src/generic/filedlgg.cpp:1182
 msgid "Show hidden files"
@@ -2692,7 +2640,7 @@ msgstr "Thai (ISO-8859-11)"
 
 #: ../src/common/ftp.cpp:569
 msgid "The FTP server doesn't support passive mode."
-msgstr ""
+msgstr "Der FTP-Server unterstützt den passiven Transfermodus nicht."
 
 #: ../src/common/fontmap.cpp:630
 #, c-format
@@ -2732,7 +2680,7 @@ msgstr ""
 #: ../src/common/filename.cpp:896
 #, c-format
 msgid "The path '%s' contains too many \"..\"!"
-msgstr ""
+msgstr "Der Pfad '%s' enthält zu viele \"..\"."
 
 #: ../src/common/cmdline.cpp:845
 #, c-format
@@ -2761,6 +2709,8 @@ msgstr ""
 msgid ""
 "There was a problem during page setup: you may need to set a default printer."
 msgstr ""
+"Es gab ein Problem bei der Seiteneinrichtung: eventuelle müssen Sie einen\n"
+"Standarddrucker einrichten."
 
 #: ../src/msw/thread.cpp:1214
 msgid ""
@@ -2864,11 +2814,11 @@ msgstr "Unerwarteter Parameter '%s'"
 
 #: ../src/common/fontmap.cpp:141
 msgid "Unicode 7 bit (UTF-7)"
-msgstr ""
+msgstr "Unicode 7 bit (UTF-7)"
 
 #: ../src/common/fontmap.cpp:142
 msgid "Unicode 8 bit (UTF-8)"
-msgstr ""
+msgstr "Unicode 8 bit (UTF-8)"
 
 #: ../src/msw/dde.cpp:1020
 #, c-format
@@ -2922,11 +2872,11 @@ msgstr "Nicht unterst
 #: ../src/common/appcmn.cpp:362
 #, c-format
 msgid "Unsupported theme '%s'."
-msgstr ""
+msgstr "Unbekanntes Thema '%s'."
 
 #: ../src/generic/fdrepdlg.cpp:157
 msgid "Up"
-msgstr ""
+msgstr "Hoch"
 
 #: ../src/common/cmdline.cpp:901
 #, c-format
@@ -2968,19 +2918,16 @@ msgstr ""
 "zu entfernen."
 
 #: ../src/common/fontmap.cpp:112
-#, fuzzy
 msgid "Western European (ISO-8859-1)"
-msgstr "Westeuropäisch (ISO-8859-1/Latin 1)"
+msgstr "Westeuropäisch (ISO-8859-1)"
 
 #: ../src/common/fontmap.cpp:126
-#, fuzzy
 msgid "Western European with Euro (ISO-8859-15)"
-msgstr "Westeuropäisch neu (ISO-8859-15/Latin 0)"
+msgstr "Westeuropäisch mit Euro (ISO-8859-15)"
 
 #: ../src/generic/fdrepdlg.cpp:149
-#, fuzzy
 msgid "Whole word"
-msgstr "Nur ganze Worte"
+msgstr "Ganzes Wort"
 
 #: ../src/html/helpfrm.cpp:407
 msgid "Whole words only"
@@ -2988,7 +2935,7 @@ msgstr "Nur ganze Worte"
 
 #: ../src/univ/themes/win32.cpp:1168
 msgid "Win32 theme"
-msgstr ""
+msgstr "Win32 Thema"
 
 #: ../src/msw/utils.cpp:979
 msgid "Win32s on Windows 3.1"
@@ -3012,18 +2959,16 @@ msgid "Windows Baltic (CP 1257)"
 msgstr "Windows Baltisch (CP 1257)"
 
 #: ../src/common/fontmap.cpp:132
-#, fuzzy
 msgid "Windows Central European (CP 1250)"
-msgstr "Windows Hebräisch (CP 1255)"
+msgstr "Windows Zentral Europäisch (CP 1250)"
 
 #: ../src/common/fontmap.cpp:129
 msgid "Windows Chinese Simplified (CP 936)"
-msgstr ""
+msgstr "Windows Vereinfachtes Chinesisch (CP 936)"
 
 #: ../src/common/fontmap.cpp:131
-#, fuzzy
 msgid "Windows Chinese Traditional (CP 950)"
-msgstr "Windows Latin 2 (CP 1250)"
+msgstr "Windows Traditionelles Chinesisch (CP 950)"
 
 #: ../src/common/fontmap.cpp:133
 msgid "Windows Cyrillic (CP 1251)"
@@ -3038,23 +2983,20 @@ msgid "Windows Hebrew (CP 1255)"
 msgstr "Windows Hebräisch (CP 1255)"
 
 #: ../src/common/fontmap.cpp:128
-#, fuzzy
 msgid "Windows Japanese (CP 932)"
-msgstr "Windows Griechisch (CP 1253)"
+msgstr "Windows Japanisch (CP 932)"
 
 #: ../src/common/fontmap.cpp:130
-#, fuzzy
 msgid "Windows Korean (CP 949)"
-msgstr "Windows Griechisch (CP 1253)"
+msgstr "Windows Koreanisch (CP 949)"
 
 #: ../src/common/fontmap.cpp:136
 msgid "Windows Turkish (CP 1254)"
 msgstr "Windows Türkisch (CP 1254)"
 
 #: ../src/common/fontmap.cpp:134
-#, fuzzy
 msgid "Windows Western European (CP 1252)"
-msgstr "Windows Latin 1 (CP 1252)"
+msgstr "Windows West Europäisch (CP 1252)"
 
 #: ../src/common/fontmap.cpp:140
 msgid "Windows/DOS OEM (CP 437)"
@@ -3109,7 +3051,7 @@ msgstr "Sie k
 
 #: ../src/common/fs_zip.cpp:86 ../src/common/fs_zip.cpp:123
 msgid "ZIP handler currently supports only local files!"
-msgstr ""
+msgstr "ZIP Handler unterstützt derzeit nur lokale Dateien."
 
 #: ../src/common/docview.cpp:1951
 msgid "[EMPTY]"
@@ -3231,17 +3173,15 @@ msgstr "Versuch, Eintrag '%s' zu 
 
 #: ../src/common/ftp.cpp:369
 msgid "binary"
-msgstr ""
+msgstr "binär"
 
 #: ../src/common/fontcmn.cpp:518
-#, fuzzy
 msgid "bold"
-msgstr "Fett"
+msgstr "fett"
 
 #: ../src/common/fontcmn.cpp:442
-#, fuzzy
 msgid "bold "
-msgstr "Fett"
+msgstr "fett "
 
 #: ../src/common/ffile.cpp:93
 #, c-format
@@ -3336,9 +3276,9 @@ msgid "can't seek on file descriptor %d"
 msgstr "Kann auf die Dateibeschreibung '%d' nicht suchen"
 
 #: ../src/common/textfile.cpp:196
-#, fuzzy, c-format
+#, c-format
 msgid "can't write buffer '%s' to disk."
-msgstr "Kann Datei '%s' nicht schreiben."
+msgstr "Kann den Puffer '%s' nicht schreiben."
 
 #: ../src/common/file.cpp:319
 #, c-format
@@ -3363,9 +3303,8 @@ msgid "date"
 msgstr "Datum"
 
 #: ../src/common/fontmap.cpp:413
-#, fuzzy
 msgid "default"
-msgstr "alt"
+msgstr "Standard"
 
 #: ../src/common/datetime.cpp:3237
 msgid "eighteenth"
@@ -3441,7 +3380,7 @@ msgstr "vierte"
 
 #: ../src/common/appcmn.cpp:301
 msgid "generate verbose log messages"
-msgstr ""
+msgstr "ausführliche Log-Nachrichten erstellen"
 
 #: ../src/common/timercmn.cpp:282
 msgid "gmtime() failed"
@@ -3460,23 +3399,20 @@ msgid "invalid message box return value"
 msgstr "ungültiger 'message box'-Rückgabewert."
 
 #: ../src/common/fontcmn.cpp:458 ../src/common/fontcmn.cpp:522
-#, fuzzy
 msgid "italic"
-msgstr "Kursiv"
+msgstr "kursiv"
 
 #: ../src/html/helpfrm.cpp:935
 msgid "large"
 msgstr "Groß"
 
 #: ../src/common/fontcmn.cpp:514
-#, fuzzy
 msgid "light"
-msgstr "Dünn"
+msgstr "dünn"
 
 #: ../src/common/fontcmn.cpp:438
-#, fuzzy
 msgid "light "
-msgstr "Dünn"
+msgstr "dünn "
 
 #: ../src/common/intl.cpp:615
 #, c-format
@@ -3526,7 +3462,7 @@ msgstr "num"
 
 #: ../src/common/filename.cpp:162
 msgid "reading"
-msgstr ""
+msgstr "Lesen"
 
 #: ../src/msw/dde.cpp:1005
 msgid "reentrancy problem."
@@ -3550,7 +3486,7 @@ msgstr "Umschalt"
 
 #: ../src/common/appcmn.cpp:291
 msgid "show this help message"
-msgstr ""
+msgstr "Zeige diesen Hilfstext"
 
 #: ../src/common/datetime.cpp:3235
 msgid "sixteenth"
@@ -3562,7 +3498,7 @@ msgstr "sechste"
 
 #: ../src/html/helpfrm.cpp:935
 msgid "small"
-msgstr "Klein"
+msgstr "klein"
 
 #: ../src/common/appcmn.cpp:326
 msgid "specify display mode to use (e.g. 640x480-16)"
@@ -3570,7 +3506,7 @@ msgstr ""
 
 #: ../src/common/appcmn.cpp:312
 msgid "specify the theme to use"
-msgstr ""
+msgstr "geben Sie das zu benutzende Thema an"
 
 #: ../src/common/cmdline.cpp:1032
 msgid "str"
@@ -3609,14 +3545,12 @@ msgid "twentieth"
 msgstr "zwanzigste"
 
 #: ../src/common/fontcmn.cpp:510
-#, fuzzy
 msgid "underlined"
-msgstr "Unterstrichen"
+msgstr "unterstrichen"
 
 #: ../src/common/fontcmn.cpp:425
-#, fuzzy
 msgid "underlined "
-msgstr "Unterstrichen"
+msgstr "unterstrichen "
 
 #: ../src/common/fileconf.cpp:1684
 #, c-format
@@ -3628,9 +3562,8 @@ msgid "unknown"
 msgstr "unbekannt"
 
 #: ../src/common/regex.cpp:144
-#, fuzzy
 msgid "unknown error"
-msgstr "GIF: unbekannter Fehler!!!"
+msgstr "unbekannter Fehler"
 
 #: ../src/msw/dialup.cpp:445
 #, c-format
@@ -3669,9 +3602,8 @@ msgid "very small"
 msgstr "sehr klein"
 
 #: ../src/common/filename.cpp:162
-#, fuzzy
 msgid "writing"
-msgstr "Drucken"
+msgstr "Schreiben"
 
 #: ../src/common/dynlib.cpp:336
 #, c-format
@@ -3705,307 +3637,10 @@ msgid "wxWindows could not open display for '%s': exiting."
 msgstr "wxWindows konnte 'open display' nicht ausführen für '%s': Abbruch."
 
 #: ../src/x11/app.cpp:265
-#, fuzzy
 msgid "wxWindows could not open display. Exiting."
-msgstr "wxWindows konnte 'open display' nicht ausführen für '%s': Abbruch."
+msgstr "wxWindows konnte Display nicht öffnen: Abbruch."
 
 #: ../src/common/datetime.cpp:3065
 msgid "yesterday"
 msgstr "Gestern"
 
-#~ msgid "All files (*.*)|*.*"
-#~ msgstr "Alle Dateien (*.*)|*.*"
-
-#~ msgid "Can not create mutex"
-#~ msgstr "Kann Mutex nicht anlegen"
-
-#~ msgid "Can't create the inter-process read pipe"
-#~ msgstr "Kann 'inter-process- read-pipe' nicht erzeugen"
-
-#~ msgid "Can't create the inter-process write pipe"
-#~ msgstr "Kann 'inter-process-write-pipe' nicht erzeugen"
-
-#~ msgid "Couldn't acquire a mutex lock"
-#~ msgstr "Kann Mutex-Lock nicht bekommen"
-
-#~ msgid "Couldn't release a mutex"
-#~ msgstr "Kann Mutex nicht freigeben."
-
-#~ msgid "Font"
-#~ msgstr "Font"
-
-#~ msgid "PostScript"
-#~ msgstr "PostScript"
-
-#~ msgid "PostScript:"
-#~ msgstr "PostScript:"
-
-#~ msgid "Preview Only"
-#~ msgstr "Nur Voransicht"
-
-#~ msgid "Printer Command: "
-#~ msgstr "Druckbefehl: "
-
-#~ msgid "Printer Options: "
-#~ msgstr "Befehlsoptionen: "
-
-#~ msgid "Printer Settings"
-#~ msgstr "Druckereinstellungen"
-
-#~ msgid "Send to Printer"
-#~ msgstr "Zum Drucker schicken"
-
-#, fuzzy
-#~ msgid "SetPixelFormat failed."
-#~ msgstr "Konnte keine Pipe anlegen"
-
-#~ msgid "X Scaling"
-#~ msgstr "X-Skalierung"
-
-#~ msgid "X Translation"
-#~ msgstr "X-Verschiebung"
-
-#~ msgid "Y Scaling"
-#~ msgstr "Y-Skalierung"
-
-#~ msgid "Y Translation"
-#~ msgstr "Y-Verschiebung"
-
-#, fuzzy
-#~ msgid "unknown line terminator"
-#~ msgstr "Unbekannte Suchposition"
-
-#~ msgid "Fatal Error"
-#~ msgstr "Nicht-behebbarer Fehler"
-
-#, fuzzy
-#~ msgid "Fatal error: %s\n"
-#~ msgstr "Nicht-behebbarer Fehler:"
-
-#~ msgid "Back"
-#~ msgstr "Zurück"
-
-#~ msgid "Can not create event object."
-#~ msgstr "Kann Eventobjekt nicht erzeugen."
-
-#~ msgid "Can't find the serialization object '%s' for the object '%s'."
-#~ msgstr "Kann Serialisierungsobjekt '%s' für Object '%s' nicht finden."
-
-#~ msgid "Can't load wxSerial dynamic library."
-#~ msgstr "Kann wxSerial-DLL nicht laden."
-
-#~ msgid "Connection to wxHelp timed out in %d seconds"
-#~ msgstr "Verbindung mit wxHelp nach %d Sekunden abgebrochen"
-
-#~ msgid "Etcetera"
-#~ msgstr "etc"
-
-#, fuzzy
-#~ msgid "ICO: Error calculating size of DIB ."
-#~ msgstr "TIFF: Fehler beim Lesen des Bildes."
-
-#, fuzzy
-#~ msgid "ICO: Error calculating size of Mask DIB ."
-#~ msgstr "TIFF: Fehler beim Lesen des Bildes."
-
-#, fuzzy
-#~ msgid "ICO: Error calculating size of XOR DIB ."
-#~ msgstr "TIFF: Fehler beim Lesen des Bildes."
-
-#, fuzzy
-#~ msgid "ICO: Error writing ICONDIR header."
-#~ msgstr "TIFF: Schreibfehler beim Sichern."
-
-#, fuzzy
-#~ msgid "ICO: Error writing ICONDIRENTRY header."
-#~ msgstr "TIFF: Schreibfehler beim Sichern."
-
-#, fuzzy
-#~ msgid "ICO: Error writing Mask DIB ."
-#~ msgstr "TIFF: Fehler beim Lesen des Bildes."
-
-#, fuzzy
-#~ msgid "ICO: Error writing XOR DIB ."
-#~ msgstr "TIFF: Fehler beim Lesen des Bildes."
-
-#~ msgid "Incorrect version of HTML help book"
-#~ msgstr "Falsche Version des HTML-Hilfebuchs"
-
-#, fuzzy
-#~ msgid "Loading DIB : Couldn't allocate memory."
-#~ msgstr "BMP: Speicher konnte nicht allokiert werden."
-
-#~ msgid "Mounted Devices"
-#~ msgstr "Dateisysteme"
-
-#~ msgid "My Harddisk"
-#~ msgstr "Mein Laufwerk"
-
-#~ msgid "My Home"
-#~ msgstr "Mein Verzeichnis"
-
-#~ msgid "New..."
-#~ msgstr "Neu..."
-
-#~ msgid "Please wait..."
-#~ msgstr "Bitte warten..."
-
-#~ msgid "Temporary"
-#~ msgstr "Temporär"
-
-#~ msgid "The Computer"
-#~ msgstr "Der Computer"
-
-#~ msgid "The directory "
-#~ msgstr "Das Verzeichnis"
-
-#~ msgid "User"
-#~ msgstr "Benutzer"
-
-#~ msgid "User Local"
-#~ msgstr "Lokaler Benutzer"
-
-#~ msgid "Variables"
-#~ msgstr "Variablen"
-
-#~ msgid "Window"
-#~ msgstr "Fenster"
-
-#, fuzzy
-#~ msgid "centered"
-#~ msgstr "etc"
-
-#, fuzzy
-#~ msgid "Unknown digit value"
-#~ msgstr "Unbekannte Kodierung (%d)"
-
-#~ msgid "Replace file '%s'?"
-#~ msgstr "Datei '%s' ersetzen?"
-
-#~ msgid "wxWindows: error finding temporary file name.\n"
-#~ msgstr "wxWindows: Fehler beim Suchen des temporären Dateinamen.\n"
-
-#~ msgid ""
-#~ "Can't create window of class %s!\n"
-#~ "Possible Windows 3.x compatibility problem?"
-#~ msgstr ""
-#~ "Kann Fensterklasse %s nicht erstellen!\n"
-#~ "Möglicherweise Windows 3.x Kompatibilitätsproblem?"
-
-#, fuzzy
-#~ msgid ""
-#~ "Can't find dialog template '%s'!\n"
-#~ "Check resource include path for finding wx.rc."
-#~ msgstr ""
-#~ "Kann Dummy-Dialog-Template nicht finden!\n"
-#~ "Überprüfe 'resource include'-Pfad, damit 'wx.rc' gefunden werden kann."
-
-#~ msgid "Couldn't launch DDE server '%s'."
-#~ msgstr "Konnte DDE-Server nicht starten '%s'"
-
-#~ msgid "Cyrillic (Latin 5)"
-#~ msgstr "Kyrillisch (Latin 5)"
-
-#~ msgid "No XPM facility available!"
-#~ msgstr "Kein XPM-Dienst verfügbar!"
-
-#~ msgid "ISO-8859-12"
-#~ msgstr "ISO-8859-12"
-
-#~ msgid "ISO-8859-14"
-#~ msgstr "ISO-8859-14"
-
-#~ msgid "Baltic II (ISO-8859-10)"
-#~ msgstr "Baltisch II (ISO-8859-10)"
-
-#~ msgid "Can not create mutex."
-#~ msgstr "Kann Mutex nicht anlegen."
-
-#~ msgid "Can't execute command '%s'"
-#~ msgstr "Kann Befehl '%s' nicht ausführen"
-
-#~ msgid "Couldn't change the state of event object."
-#~ msgstr "Kann Zustand des Eventobjektes nicht ändern."
-
-#~ msgid "ISO-8859-13"
-#~ msgstr "ISO-8859-13"
-
-#~ msgid "Previewing"
-#~ msgstr "Vorschau"
-
-#~ msgid "Print Error"
-#~ msgstr "Fehler beim Drucken"
-
-#~ msgid ""
-#~ "There was a problem printing.\n"
-#~ "Perhaps your current printer is not set correctly?"
-#~ msgstr ""
-#~ "Beim Drucken ist ein Fehler aufgetreten.\n"
-#~ "Vielleicht ist ihr Drucker nicht richtig eingestellt ?"
-
-#~ msgid ""
-#~ "Unrecoverable program error detected: the application will terminate."
-#~ msgstr "Unbehebbarer Programmfehler: Die Applikation wird beendet."
-
-#~ msgid "string '%s' not found in domain '%s' for locale '%s'."
-#~ msgstr "Text '%s' in Bereich '%s' für Umgebung '%s' nicht gefunden."
-
-#~ msgid "string '%s' not found in locale '%s'."
-#~ msgstr "Text '%s' in Umgebung '%s' nicht gefunden."
-
-#~ msgid " B.C."
-#~ msgstr " v. Chr."
-
-#~ msgid "%s is invalid."
-#~ msgstr "%s ist ungültig"
-
-#~ msgid "%s should be numeric."
-#~ msgstr "%s sollte numerisch sein"
-
-#~ msgid "%s should only contain ASCII characters."
-#~ msgstr "%s sollte nur ASCII-Zeichen enthalten"
-
-#~ msgid "%s should only contain alphabetic characters."
-#~ msgstr "%s sollte nur Buchstaben enthalten"
-
-#~ msgid "%s should only contain alphabetic or numeric characters."
-#~ msgstr "%s sollte nur Buchstaben oder Ziffern enthalten"
-
-#~ msgid "Application Error"
-#~ msgstr "Programmfehler"
-
-#~ msgid "Can not create tooltip control"
-#~ msgstr "Kann Tooltip nicht erzeugen."
-
-#~ msgid "Can not get data in format '%s' from clipboard."
-#~ msgstr "Kann keine Daten im Format '%s' von der Zwischenablage bekommen."
-
-#~ msgid "Can not get priority range for scheduling policy %d."
-#~ msgstr "Kann Prioritätsbereich für Schedulingregeln %d nicht bekommen."
-
-#~ msgid "Can not put data in format '%s' on clipboard."
-#~ msgstr "Kann keine Daten im Fromat '%s' in die Zwischenablage kopieren."
-
-#~ msgid "Can not retrieve thread scheduling policy."
-#~ msgstr "Kann Schedulingregeln nicht bekommen."
-
-#~ msgid "Character '%c' is invalid in a config entry name."
-#~ msgstr ""
-#~ "Zeichen '%c' ist in einem Konfigurationseintragsnamen nicht erlaubt."
-
-#~ msgid "Enter the name of the directory to create"
-#~ msgstr "Geben Sie einen Namen für das neue Verzeichnis ein"
-
-#~ msgid "Entry name can't start with '%c'."
-#~ msgstr "Eintragsname kann nicht mit '%c' beginnen."
-
-#~ msgid ""
-#~ "Mime.types file %s, line %d: extra characters after the field value ignored."
-#~ msgstr ""
-#~ "Mime.types-Datei %s, Zeile %d: extrazeichen nach dem Wert ignoriert."
-
-#~ msgid "invalid month"
-#~ msgstr "ungültiger Monat"
-
-#~ msgid "pm"
-#~ msgstr "pm"
diff --git a/locale/es.po b/locale/es.po
index acedb924a0..cd207d3b41 100644
--- a/locale/es.po
+++ b/locale/es.po
@@ -897,7 +897,7 @@ msgstr "Contenidos"
 
 #: ../src/common/strconv.cpp:596
 #, c-format
-msgid "Convertion to charset '%s' doesn't work."
+msgid "Conversion to charset '%s' doesn't work."
 msgstr ""
 
 #: ../src/generic/prntdlgg.cpp:193
diff --git a/locale/fi.po b/locale/fi.po
index adeba1775d..1726e4e38e 100644
--- a/locale/fi.po
+++ b/locale/fi.po
@@ -883,7 +883,7 @@ msgstr "Sis
 
 #: ../src/common/strconv.cpp:596
 #, c-format
-msgid "Convertion to charset '%s' doesn't work."
+msgid "Conversion to charset '%s' doesn't work."
 msgstr ""
 
 #: ../src/generic/prntdlgg.cpp:193
diff --git a/locale/fr.po b/locale/fr.po
index ea37d3d2b8..348425f191 100644
--- a/locale/fr.po
+++ b/locale/fr.po
@@ -1,13 +1,13 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: wxWindows \n"
+"Project-Id-Version: wxWindows\n"
 "POT-Creation-Date: 2002-08-21 16:39+0200\n"
-"PO-Revision-Date: 2000-12-04 19:45W. Europe Standard Time\n"
-"Last-Translator: Stéphane Junique <stephane.junique@acreo.se>\n"
+"PO-Revision-Date: 2002-11-20 21:42+0100\n"
+"Last-Translator: Stephane Junique <pttlapinblanc@chez.com>\n"
 "Language-Team: wxWindows translators <wx-translators@wxwindows.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8-bit\n"
+"Content-Transfer-Encoding: 8bit\n"
 
 #: ../src/common/log.cpp:304
 #, c-format
@@ -46,8 +46,10 @@ msgstr "Enveloppe #14, 5 x 11 1/2 pouces"
 msgid "#9 Envelope, 3 7/8 x 8 7/8 in"
 msgstr "Enveloppe #9, 3 7/8 x 8 7/8 pouces"
 
-#: ../src/common/resourc2.cpp:265 ../src/common/resourc2.cpp:1326
-#: ../src/common/resource.cpp:1784 ../src/common/resource.cpp:1914
+#: ../src/common/resourc2.cpp:265
+#: ../src/common/resourc2.cpp:1326
+#: ../src/common/resource.cpp:1784
+#: ../src/common/resource.cpp:1914
 #: ../src/common/resource.cpp:2994
 #, c-format
 msgid "#define %s must be an integer."
@@ -56,15 +58,17 @@ msgstr "#define %s doit 
 #: ../src/common/prntbase.cpp:376
 #, c-format
 msgid "%d"
-msgstr ""
+msgstr "%d"
 
 #: ../src/common/prntbase.cpp:374
 #, c-format
 msgid "%d...%d"
-msgstr ""
+msgstr "%d...%d"
 
-#: ../src/html/helpfrm.cpp:772 ../src/html/helpfrm.cpp:773
-#: ../src/html/helpfrm.cpp:1376 ../src/html/helpfrm.cpp:1406
+#: ../src/html/helpfrm.cpp:772
+#: ../src/html/helpfrm.cpp:773
+#: ../src/html/helpfrm.cpp:1376
+#: ../src/html/helpfrm.cpp:1406
 #, c-format
 msgid "%i of %i"
 msgstr "%i de %i"
@@ -89,18 +93,22 @@ msgstr "%s Information"
 msgid "%s Warning"
 msgstr "%s Alarme"
 
-#: ../src/common/resourc2.cpp:709 ../src/common/resource.cpp:2366
+#: ../src/common/resourc2.cpp:709
+#: ../src/common/resource.cpp:2366
 #, c-format
 msgid "%s not a bitmap resource specification."
 msgstr "%s n'est pas une spécification d'une ressource bitmap."
 
-#: ../src/common/resourc2.cpp:860 ../src/common/resource.cpp:2520
+#: ../src/common/resourc2.cpp:860
+#: ../src/common/resource.cpp:2520
 #, c-format
 msgid "%s not an icon resource specification."
 msgstr "%s n'est pas une spécification d'une ressource icône."
 
-#: ../src/common/resourc2.cpp:357 ../src/common/resourc2.cpp:1422
-#: ../src/common/resource.cpp:1877 ../src/common/resource.cpp:2006
+#: ../src/common/resourc2.cpp:357
+#: ../src/common/resourc2.cpp:1422
+#: ../src/common/resource.cpp:1877
+#: ../src/common/resource.cpp:2006
 #: ../src/common/resource.cpp:3091
 #, c-format
 msgid "%s: ill-formed resource file syntax."
@@ -108,18 +116,19 @@ msgstr "%s : syntaxe du fichier de ressource incorrecte."
 
 #: ../src/msw/mdi.cpp:192
 msgid "&Arrange Icons"
-msgstr ""
+msgstr "&"
 
-#: ../src/generic/fdrepdlg.cpp:170 ../src/generic/wizard.cpp:260
-#, fuzzy
+#: ../src/generic/fdrepdlg.cpp:170
+#: ../src/generic/wizard.cpp:260
 msgid "&Cancel"
-msgstr "Annuler"
+msgstr "&Annuler"
 
 #: ../src/msw/mdi.cpp:188
 msgid "&Cascade"
-msgstr ""
+msgstr "&Cascade"
 
-#: ../src/generic/logg.cpp:491 ../src/generic/tipdlg.cpp:171
+#: ../src/generic/logg.cpp:491
+#: ../src/generic/tipdlg.cpp:171
 msgid "&Close"
 msgstr "&Fermer"
 
@@ -128,18 +137,16 @@ msgid "&Details"
 msgstr "&Détails"
 
 #: ../src/generic/fdrepdlg.cpp:168
-#, fuzzy
 msgid "&Find"
-msgstr "Trouver"
+msgstr "&Trouver"
 
 #: ../src/generic/wizard.cpp:396
 msgid "&Finish"
 msgstr "&Fin"
 
 #: ../src/generic/wizard.cpp:249
-#, fuzzy
 msgid "&Help"
-msgstr "Aide"
+msgstr "&Aide"
 
 #: ../src/generic/logg.cpp:492
 msgid "&Log"
@@ -147,14 +154,14 @@ msgstr "&Journal"
 
 #: ../src/univ/themes/win32.cpp:4539
 msgid "&Move"
-msgstr ""
+msgstr "&Deplacer"
 
 #: ../src/msw/mdi.cpp:193
-#, fuzzy
 msgid "&Next"
-msgstr "&Suivant >"
+msgstr "&Suivant"
 
-#: ../src/generic/wizard.cpp:257 ../src/generic/wizard.cpp:398
+#: ../src/generic/wizard.cpp:257
+#: ../src/generic/wizard.cpp:398
 msgid "&Next >"
 msgstr "&Suivant >"
 
@@ -163,28 +170,29 @@ msgid "&Next Tip"
 msgstr "&Prochain Conseil"
 
 #: ../src/msw/mdi.cpp:194
-#, fuzzy
 msgid "&Previous"
-msgstr "Page précédente"
+msgstr "&Précédent"
 
-#: ../src/common/cmdproc.cpp:261 ../src/common/cmdproc.cpp:272
+#: ../src/common/cmdproc.cpp:261
+#: ../src/common/cmdproc.cpp:272
 msgid "&Redo"
 msgstr "&Refaire"
 
-#: ../src/common/cmdproc.cpp:255 ../src/common/cmdproc.cpp:282
+#: ../src/common/cmdproc.cpp:255
+#: ../src/common/cmdproc.cpp:282
 msgid "&Redo "
 msgstr "&Refaire "
 
 #: ../src/generic/fdrepdlg.cpp:174
 msgid "&Replace"
-msgstr ""
+msgstr "&Remplacer"
 
 #: ../src/univ/themes/win32.cpp:4538
-#, fuzzy
 msgid "&Restore"
-msgstr "&Refaire"
+msgstr "&Restaurer"
 
-#: ../src/generic/logg.cpp:487 ../src/generic/logg.cpp:818
+#: ../src/generic/logg.cpp:487
+#: ../src/generic/logg.cpp:818
 msgid "&Save..."
 msgstr "&Enregistrer ..."
 
@@ -193,9 +201,8 @@ msgid "&Show tips at startup"
 msgstr "&Afficher les conseils au démarrage"
 
 #: ../src/univ/themes/win32.cpp:4541
-#, fuzzy
 msgid "&Size"
-msgstr "Taille"
+msgstr "&Taille"
 
 #: ../src/common/cmdproc.cpp:267
 msgid "&Undo"
@@ -205,16 +212,20 @@ msgstr "&Annuler"
 msgid "&Undo "
 msgstr "&Annuler "
 
-#: ../src/msw/mdi.cpp:1328 ../src/msw/mdi.cpp:1335 ../src/msw/mdi.cpp:1360
+#: ../src/msw/mdi.cpp:1328
+#: ../src/msw/mdi.cpp:1335
+#: ../src/msw/mdi.cpp:1360
 msgid "&Window"
 msgstr "&Fenêtre"
 
-#: ../src/common/config.cpp:394 ../src/msw/regconf.cpp:264
+#: ../src/common/config.cpp:394
+#: ../src/msw/regconf.cpp:264
 #, c-format
 msgid "'%s' has extra '..', ignored."
 msgstr "'%s' a trop de '..', ils sont ignorés."
 
-#: ../src/common/valtext.cpp:147 ../src/common/valtext.cpp:177
+#: ../src/common/valtext.cpp:147
+#: ../src/common/valtext.cpp:177
 #: ../src/common/valtext.cpp:183
 #, c-format
 msgid "'%s' is invalid"
@@ -231,7 +242,7 @@ msgid "'%s' is not a valid message catalog."
 msgstr "'%s' n'est pas un catalogue de messages valide."
 
 #: ../src/common/textbuf.cpp:245
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' is probably a binary buffer."
 msgstr "'%s' est probablement un fichier binaire."
 
@@ -253,33 +264,36 @@ msgstr "'%s' ne devrait contenir que des caract
 #: ../src/common/valtext.cpp:166
 #, c-format
 msgid "'%s' should only contain alphabetic or numeric characters."
-msgstr ""
-"'%s' ne devrait contenir que des caractères alphabétiques ou numériques."
+msgstr "'%s' ne devrait contenir que des caractères alphabétiques ou numériques."
 
-#: ../src/html/helpfrm.cpp:709 ../src/html/htmlhelp.cpp:638
+#: ../src/html/helpfrm.cpp:709
+#: ../src/html/htmlhelp.cpp:638
 msgid "(Help)"
 msgstr "(Aide)"
 
-#: ../src/html/helpfrm.cpp:310 ../src/html/helpfrm.cpp:840
+#: ../src/html/helpfrm.cpp:310
+#: ../src/html/helpfrm.cpp:840
 #: ../src/html/helpfrm.cpp:1433
 msgid "(bookmarks)"
 msgstr "(signets)"
 
-#: ../src/common/resourc2.cpp:297 ../src/common/resourc2.cpp:1362
-#: ../src/common/resource.cpp:1816 ../src/common/resource.cpp:1946
+#: ../src/common/resourc2.cpp:297
+#: ../src/common/resourc2.cpp:1362
+#: ../src/common/resource.cpp:1816
+#: ../src/common/resource.cpp:1946
 #: ../src/common/resource.cpp:3030
-msgid ""
-", expected static, #include or #define\n"
+msgid ", expected static, #include or #define\n"
 "whilst parsing resource."
-msgstr ""
-", static, #include ou #define\n"
+msgstr ", static, #include ou #define\n"
 "attendu au cours de l'analyse des ressources."
 
-#: ../src/generic/dirctrlg.cpp:698 ../src/generic/filedlgg.cpp:929
+#: ../src/generic/dirctrlg.cpp:698
+#: ../src/generic/filedlgg.cpp:929
 msgid "."
 msgstr "."
 
-#: ../src/generic/dirctrlg.cpp:699 ../src/generic/filedlgg.cpp:930
+#: ../src/generic/dirctrlg.cpp:699
+#: ../src/generic/filedlgg.cpp:930
 msgid ".."
 msgstr ".."
 
@@ -328,32 +342,8 @@ msgid "<LINK> "
 msgstr "<LIEN> "
 
 #: ../src/html/helpfrm.cpp:992
-msgid ""
-"<html><body>Normal face<br>(and <u>underlined</u>. <i>Italic face.</i> "
-"<b>Bold face.</b> <b><i>Bold italic face.</i></b><br><font size=-2>font size "
-"-2</font><br><font size=-1>font size -1</font><br><font size=+0>font size "
-"+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
-"+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
-"+4</font><br><p><tt>Fixed size face.<br> <b>bold</b> <i>italic</i> "
-"<b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size "
-"-2</font><br><font size=-1>font size -1</font><br><font size=+0>font size "
-"+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
-"+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
-"+4</font></tt></body></html>"
-msgstr ""
-"<html><body>Normal<br>(et <u>souligné</u>. <i>Italique.</i> <b>Gras.</b> "
-"<b><i>Gras italique.</i></b><br><font size=-2>taille de police "
-"-2</font><br><font size=-1>taille de police -1</font><br><font "
-"size=+0>taille de police +0</font><br><font size=+1>taille de police "
-"+1</font><br><font size=+2>taille de police +2</font><br><font "
-"size=+3>taille de police +3</font><br><font size=+4>taille de police "
-"+4</font><br><p><tt>Police à taille fixe.<br> <b>gras</b> <i>italique</i> "
-"<b><i>gras italique <u>souligné</u></i></b><br><font size=-2>taille de "
-"police -2</font><br><font size=-1>taille de police -1</font><br><font "
-"size=+0>taille de police +0</font><br><font size=+1>taille de police "
-"+1</font><br><font size=+2>taille de police +2</font><br><font "
-"size=+3>taille de police +3</font><br><font size=+4>taille de police "
-"+4</font></tt></body></html>"
+msgid "<html><body>Normal face<br>(and <u>underlined</u>. <i>Italic face.</i> <b>Bold face.</b> <b><i>Bold italic face.</i></b><br><font size=-2>font size -2</font><br><font size=-1>font size -1</font><br><font size=+0>font size +0</font><br><font size=+1>font size +1</font><br><font size=+2>font size +2</font><br><font size=+3>font size +3</font><br><font size=+4>font size +4</font><br><p><tt>Fixed size face.<br> <b>bold</b> <i>italic</i> <b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size -2</font><br><font size=-1>font size -1</font><br><font size=+0>font size +0</font><br><font size=+1>font size +1</font><br><font size=+2>font size +2</font><br><font size=+3>font size +3</font><br><font size=+4>font size +4</font></tt></body></html>"
+msgstr "<html><body>Normal<br>(et <u>souligné</u>. <i>Italique.</i> <b>Gras.</b> <b><i>Gras italique.</i></b><br><font size=-2>taille de police -2</font><br><font size=-1>taille de police -1</font><br><font size=+0>taille de police +0</font><br><font size=+1>taille de police +1</font><br><font size=+2>taille de police +2</font><br><font size=+3>taille de police +3</font><br><font size=+4>taille de police +4</font><br><p><tt>Police à taille fixe.<br> <b>gras</b> <i>italique</i> <b><i>gras italique <u>souligné</u></i></b><br><font size=-2>taille de police -2</font><br><font size=-1>taille de police -1</font><br><font size=+0>taille de police +0</font><br><font size=+1>taille de police +1</font><br><font size=+2>taille de police +2</font><br><font size=+3>taille de police +3</font><br><font size=+4>taille de police +4</font></tt></body></html>"
 
 #: ../src/common/paper.cpp:113
 msgid "A3 sheet, 297 x 420 mm"
@@ -377,7 +367,7 @@ msgstr "ABCDEFGabcdefg12345"
 
 #: ../src/common/ftp.cpp:369
 msgid "ASCII"
-msgstr ""
+msgstr "ASCII"
 
 #: ../src/html/helpfrm.cpp:323
 msgid "Add current page to bookmarks"
@@ -433,37 +423,34 @@ msgstr "feuille B5, 182 x 257 mm"
 msgid "B6 Envelope, 176 x 125 mm"
 msgstr "Enveloppe B6, 176 x 125 mm"
 
-#: ../src/common/imagbmp.cpp:467 ../src/common/imagbmp.cpp:483
-#, fuzzy
+#: ../src/common/imagbmp.cpp:467
+#: ../src/common/imagbmp.cpp:483
 msgid "BMP: Couldn't allocate memory."
-msgstr "PNM : Impossible d'allouer la mémoire nécessaire."
+msgstr "BMP : Impossible d'allouer la mémoire nécessaire."
 
 #: ../src/common/imagbmp.cpp:86
 msgid "BMP: Couldn't save invalid image."
 msgstr "BMP : Sauvegarde de l'image impossible."
 
 #: ../src/common/imagbmp.cpp:290
-#, fuzzy
 msgid "BMP: Couldn't write RGB color map."
-msgstr "BMP : Erreur d'écriture."
+msgstr "BMP : Impossible d'écrire la palette de couleurs RGB."
 
 #: ../src/common/imagbmp.cpp:422
 msgid "BMP: Couldn't write data."
 msgstr "BMP : Erreur d'écriture."
 
 #: ../src/common/imagbmp.cpp:195
-#, fuzzy
 msgid "BMP: Couldn't write the file (Bitmap) header."
-msgstr "BMP : Erreur d'écriture de l'en-tête du fichier."
+msgstr "BMP : Erreur d'écriture de l'en-tête du fichier (Bitmap)."
 
 #: ../src/common/imagbmp.cpp:216
-#, fuzzy
 msgid "BMP: Couldn't write the file (BitmapInfo) header."
-msgstr "BMP : Erreur d'écriture de l'en-tête du fichier."
+msgstr "BMP : Erreur d'écriture de l'en-tête du fichier (BitmapInfo)."
 
 #: ../src/common/imagbmp.cpp:120
 msgid "BMP: wxImage doesn't have own wxPalette."
-msgstr ""
+msgstr "BMP: wxImage n'a pas sa propre wxPalette."
 
 #: ../src/common/dlgcmn.cpp:170
 msgid "Backward"
@@ -477,7 +464,8 @@ msgstr "Balte (ISO-8859-13)"
 msgid "Baltic (old) (ISO-8859-4)"
 msgstr "Balte (l'ancien) (ISO-8859-4)"
 
-#: ../src/common/resourc2.cpp:840 ../src/common/resource.cpp:2500
+#: ../src/common/resourc2.cpp:840
+#: ../src/common/resource.cpp:2500
 #, c-format
 msgid "Bitmap resource specification %s not found."
 msgstr "La spécification de la ressource bitmap %s est introuvable."
@@ -519,16 +507,18 @@ msgid "C65 Envelope, 114 x 229 mm"
 msgstr "Enveloppe C65, 114 x 229 mm"
 
 #: ../src/common/filefn.cpp:1358
-#, fuzzy, c-format
+#, c-format
 msgid "Can not enumerate files '%s'"
-msgstr "Impossible d'énumérer les fichiers dans le répertoire '%s'"
+msgstr "Impossible d'énumérer les fichiers '%s'"
 
-#: ../src/msw/dir.cpp:296 ../src/unix/dir.cpp:236
+#: ../src/msw/dir.cpp:296
+#: ../src/unix/dir.cpp:236
 #, c-format
 msgid "Can not enumerate files in directory '%s'"
 msgstr "Impossible d'énumérer les fichiers dans le répertoire '%s'"
 
-#: ../src/mac/thread.cpp:472 ../src/msw/thread.cpp:685
+#: ../src/mac/thread.cpp:472
+#: ../src/msw/thread.cpp:685
 #, c-format
 msgid "Can not resume thread %x"
 msgstr "Impossible de reprendre le thread %x"
@@ -537,7 +527,8 @@ msgstr "Impossible de reprendre le thread %x"
 msgid "Can not start thread: error writing TLS."
 msgstr "Impossible de démarrer le thread : erreur à l'écriture de TLS."
 
-#: ../src/mac/thread.cpp:448 ../src/msw/thread.cpp:670
+#: ../src/mac/thread.cpp:448
+#: ../src/msw/thread.cpp:670
 #, c-format
 msgid "Can not suspend thread %x"
 msgstr "Impossible de suspendre le thread %x"
@@ -553,9 +544,7 @@ msgstr "Impossible d'&Annuler"
 #: ../src/common/image.cpp:1289
 #, c-format
 msgid "Can't check image format of file '%s': file does not exist."
-msgstr ""
-"Impossible de vérifier le format du fichier image '%s' : le fichier n'existe "
-"pas."
+msgstr "Impossible de vérifier le format du fichier image '%s' : le fichier n'existe pas."
 
 #: ../src/msw/registry.cpp:421
 #, c-format
@@ -568,34 +557,32 @@ msgid "Can't copy values of unsupported type %d."
 msgstr "Impossible de copier les valeurs du type non supporté %d."
 
 #: ../src/msw/toplevel.cpp:295
-#, fuzzy
 msgid "Can't create dialog using memory template"
-msgstr "impossible de créer le fichier '%s'"
+msgstr "Impossible de créer une boîte de dialogue à partir du modèle en mémoire."
 
 #: ../src/os2/toplevel.cpp:331
-#, fuzzy, c-format
+#, c-format
 msgid "Can't create dialog using template '%ul'"
-msgstr "impossible de créer le fichier '%s'"
+msgstr "Impossible de créer la boîte de dialogue à partir du modèle '% ul'"
 
 #: ../src/msw/listctrl.cpp:319
 msgid "Can't create list control window, check that comctl32.dll is installed."
-msgstr ""
-"Impossible de créer une fenêtre avec un contrôle liste, vérifier que "
-"comctl32.dll est installée."
+msgstr "Impossible de créer une fenêtre avec un contrôle liste, vérifier que comctl32.dll est installée."
 
 #: ../src/msw/registry.cpp:402
 #, c-format
 msgid "Can't create registry key '%s'"
 msgstr "Impossible de créer la clé de registre '%s'"
 
-#: ../src/mac/thread.cpp:427 ../src/msw/thread.cpp:652
+#: ../src/mac/thread.cpp:427
+#: ../src/msw/thread.cpp:652
 msgid "Can't create thread"
 msgstr "Impossible de créer le thread"
 
 #: ../src/msw/window.cpp:2989
-#, fuzzy, c-format
+#, c-format
 msgid "Can't create window of class %s"
-msgstr "impossible de créer le fichier '%s'"
+msgstr "Impossible d'enregistrer la fenêtre de classe %s"
 
 #: ../src/msw/registry.cpp:661
 #, c-format
@@ -637,11 +624,11 @@ msgstr "Impossible de trouver la position courante dans le fichier '%s'"
 msgid "Can't get info about registry key '%s'"
 msgstr "Impossible d'obtenir l'information sur la clé de registre '%s'"
 
-#: ../src/common/image.cpp:913 ../src/common/image.cpp:933
+#: ../src/common/image.cpp:913
+#: ../src/common/image.cpp:933
 #, c-format
 msgid "Can't load image from file '%s': file does not exist."
-msgstr ""
-"Impossible de charger l'image du fichier '%s' : le fichier n'existe pas."
+msgstr "Impossible de charger l'image du fichier '%s' : le fichier n'existe pas."
 
 #: ../src/msw/dib.cpp:434
 #, c-format
@@ -658,18 +645,19 @@ msgstr "Impossible d'ouvrir la cl
 msgid "Can't read value of '%s'"
 msgstr "Impossible de lire la valeur de '%s'"
 
-#: ../src/msw/registry.cpp:777 ../src/msw/registry.cpp:816
+#: ../src/msw/registry.cpp:777
+#: ../src/msw/registry.cpp:816
 #, c-format
 msgid "Can't read value of key '%s'"
 msgstr "Impossible de lire la valeur de la clé '%s'"
 
 #: ../src/common/image.cpp:955
-#, fuzzy, c-format
+#, c-format
 msgid "Can't save image to file '%s': unknown extension."
-msgstr ""
-"Impossible de charger l'image du fichier '%s' : le fichier n'existe pas."
+msgstr "Impossible d'enregistrer l'image dans le fichier '%s' : extension inconnue."
 
-#: ../src/generic/logg.cpp:551 ../src/generic/logg.cpp:985
+#: ../src/generic/logg.cpp:551
+#: ../src/generic/logg.cpp:985
 msgid "Can't save log contents to file."
 msgstr "Impossible d'enregistrer le contenu du journal dans le fichier."
 
@@ -677,29 +665,37 @@ msgstr "Impossible d'enregistrer le contenu du journal dans le fichier."
 msgid "Can't set thread priority"
 msgstr "Impossible de spécifier la priorité pour le thread"
 
-#: ../src/msw/registry.cpp:802 ../src/msw/registry.cpp:928
+#: ../src/msw/registry.cpp:802
+#: ../src/msw/registry.cpp:928
 #, c-format
 msgid "Can't set value of '%s'"
 msgstr "Impossible de spécifier la valeur de '%s'"
 
-#: ../src/common/dlgcmn.cpp:183 ../src/generic/dirdlgg.cpp:153
-#: ../src/generic/filedlgg.cpp:1166 ../src/generic/filedlgg.cpp:1185
-#: ../src/generic/fontdlgg.cpp:254 ../src/generic/prntdlgg.cpp:453
-#: ../src/generic/progdlgg.cpp:211 ../src/generic/proplist.cpp:511
-#: ../src/gtk/filedlg.cpp:173 ../src/gtk/fontdlg.cpp:144
-#: ../src/html/helpfrm.cpp:974 ../src/html/htmlhelp.cpp:434
+#: ../src/common/dlgcmn.cpp:183
+#: ../src/generic/dirdlgg.cpp:153
+#: ../src/generic/filedlgg.cpp:1166
+#: ../src/generic/filedlgg.cpp:1185
+#: ../src/generic/fontdlgg.cpp:254
+#: ../src/generic/prntdlgg.cpp:453
+#: ../src/generic/progdlgg.cpp:211
+#: ../src/generic/proplist.cpp:511
+#: ../src/gtk/filedlg.cpp:173
+#: ../src/gtk/fontdlg.cpp:144
+#: ../src/html/helpfrm.cpp:974
+#: ../src/html/htmlhelp.cpp:434
 #: ../src/motif/msgdlg.cpp:182
 msgid "Cancel"
 msgstr "Annuler"
 
-#: ../contrib/src/xrc/xmlres.cpp:893 ../contrib/src/xrc/xmlres.cpp:934
+#: ../contrib/src/xrc/xmlres.cpp:893
+#: ../contrib/src/xrc/xmlres.cpp:934
 msgid "Cannot convert dialog units: dialog unknown."
-msgstr ""
+msgstr "Impossible de convertir les unités de la boîte de dialogue: boîte de dialogue inconnue."
 
 #: ../src/common/strconv.cpp:929
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot convert from encoding '%s'!"
-msgstr "Codage inconnu (%d)"
+msgstr "Impossible de convertir depuis l'encodage '%s'!"
 
 #: ../src/msw/dialup.cpp:497
 #, c-format
@@ -707,14 +703,14 @@ msgid "Cannot find active dialup connection: %s"
 msgstr "Impossible de trouver la connexion active : %s"
 
 #: ../contrib/src/xrc/xmlres.cpp:224
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot find container for unknown control '%s'."
-msgstr "Impossible de trouver la connexion active : %s"
+msgstr "Impossible de trouver un conteneur pour le contrôle inconnu '%s'"
 
 #: ../contrib/src/xrc/xmlres.cpp:948
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot find font node '%s'."
-msgstr "Impossible d'ouvrir l'URL '%s'"
+msgstr "Le noeud de la police de caractères '%s' est introuvable."
 
 #: ../src/msw/dialup.cpp:811
 msgid "Cannot find the location of address book file"
@@ -723,9 +719,7 @@ msgstr "Impossible de trouver l'emplacement du fichier du livre des adresses"
 #: ../src/unix/threadpsx.cpp:1068
 #, c-format
 msgid "Cannot get priority range for scheduling policy %d."
-msgstr ""
-"Impossible d'obtenir une gamme de priorité pour le choix de la planification "
-"%d."
+msgstr "Impossible d'obtenir une gamme de priorité pour le choix de la planification %d."
 
 #: ../src/unix/utilsunx.cpp:854
 msgid "Cannot get the hostname"
@@ -744,24 +738,22 @@ msgid "Cannot initialize OLE"
 msgstr "Impossible d'initialiser l'OLE"
 
 #: ../src/mgl/app.cpp:414
-#, fuzzy
 msgid "Cannot initialize SciTech MGL!"
-msgstr "Impossible d'initialiser l'OLE"
+msgstr "Impossible d'initialiser Scitech MGL!"
 
 #: ../src/mgl/window.cpp:546
-#, fuzzy
 msgid "Cannot initialize display."
-msgstr "Impossible d'initialiser l'OLE"
+msgstr "Impossible d'initialiser l'écran"
 
 #: ../src/msw/volume.cpp:627
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot load icon from '%s'."
-msgstr "Impossible d'énumérer les fichiers dans le répertoire '%s'"
+msgstr "Impossible de charger l'icone depuis '%s'."
 
 #: ../contrib/src/xrc/xmlres.cpp:337
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot load resources from file '%s'."
-msgstr "Impossible de trouver le fichier de ressources inclus %s."
+msgstr "Impossible de charger les ressources du fichier %s."
 
 #: ../src/html/htmlfilt.cpp:171
 #, c-format
@@ -784,9 +776,9 @@ msgid "Cannot open contents file: %s"
 msgstr "Impossible d'ouvrir le fichier table des matières : %s"
 
 #: ../contrib/src/xrc/xmlres.cpp:311
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot open file '%s'."
-msgstr "Impossible d'ouvrir le fichier '%s'"
+msgstr "Impossible d'ouvrir le fichier '%s'."
 
 #: ../src/generic/dcpsg.cpp:1765
 msgid "Cannot open file for PostScript printing!"
@@ -798,23 +790,24 @@ msgid "Cannot open index file: %s"
 msgstr "Impossible d'ouvrir le fichier d'index : %s"
 
 #: ../contrib/src/xrc/xmlres.cpp:881
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot parse coordinates from '%s'."
-msgstr "Impossible d'ouvrir le fichier table des matières : %s"
+msgstr "Impossible de trouver les coordonnées dans '%s'."
 
 #: ../contrib/src/xrc/xmlres.cpp:922
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot parse dimension from '%s'."
-msgstr "Impossible d'énumérer les fichiers dans le répertoire '%s'"
+msgstr "Impossible de trouver les dimensions dans '%s'."
 
 #: ../src/html/helpfrm.cpp:1265
 msgid "Cannot print empty page."
 msgstr "Impossible d'imprimer une page vide."
 
-#: ../src/msw/volume.cpp:188 ../src/msw/volume.cpp:519
-#, fuzzy, c-format
+#: ../src/msw/volume.cpp:188
+#: ../src/msw/volume.cpp:519
+#, c-format
 msgid "Cannot read typename from '%s'!"
-msgstr "Impossible d'ouvrir le fichier table des matières : %s"
+msgstr "Impossible de lire le nom du fichier à partir de '%s' !"
 
 #: ../src/unix/threadpsx.cpp:1049
 msgid "Cannot retrieve thread scheduling policy."
@@ -833,9 +826,8 @@ msgid "Celtic (ISO-8859-14)"
 msgstr "Balte (ISO-8859-13)"
 
 #: ../src/common/fontmap.cpp:113
-#, fuzzy
 msgid "Central European (ISO-8859-2)"
-msgstr "Europe Centrale (ISO-8859-2/Latin 2)"
+msgstr "Europe Centrale (ISO-8859-2)"
 
 #: ../src/msw/dialup.cpp:746
 msgid "Choose ISP to dial"
@@ -849,14 +841,15 @@ msgstr "Choisissez la police"
 msgid "Clear the log contents"
 msgstr "Effacer le contenu du journal"
 
-#: ../src/common/prntbase.cpp:429 ../src/generic/progdlgg.cpp:360
+#: ../src/common/prntbase.cpp:429
+#: ../src/generic/progdlgg.cpp:360
 #: ../src/generic/proplist.cpp:506
 msgid "Close"
 msgstr "Fermer"
 
 #: ../src/univ/themes/win32.cpp:4547
 msgid "Close\tAlt-F4"
-msgstr ""
+msgstr "Fermer\tAlt-F4"
 
 #: ../src/generic/logg.cpp:491
 msgid "Close this window"
@@ -869,8 +862,7 @@ msgstr "L'ordinateur"
 #: ../src/common/fileconf.cpp:872
 #, c-format
 msgid "Config entry name cannot start with '%c'."
-msgstr ""
-"Le nom pour l'entrée de la configuration ne peut pas commencer par '%c'."
+msgstr "Le nom pour l'entrée de la configuration ne peut pas commencer par '%c'."
 
 #: ../src/generic/filedlgg.cpp:1357 ../src/gtk/filedlg.cpp:72
 msgid "Confirm"
@@ -878,7 +870,7 @@ msgstr "Confirmer"
 
 #: ../src/msw/mimetype.cpp:686
 msgid "Confirm registry update"
-msgstr ""
+msgstr "Confirmer la mise à jour du registre"
 
 #: ../src/html/htmlwin.cpp:262
 msgid "Connecting..."
@@ -890,8 +882,8 @@ msgstr "Table des mati
 
 #: ../src/common/strconv.cpp:596
 #, c-format
-msgid "Convertion to charset '%s' doesn't work."
-msgstr ""
+msgid "Conversion to charset '%s' doesn't work."
+msgstr "La conversion vers le jeu de caractères '%s' ne fonctionne pas."
 
 #: ../src/generic/prntdlgg.cpp:193
 msgid "Copies:"
@@ -914,29 +906,24 @@ msgstr "Impossible de charger la biblioth
 
 #: ../src/common/resource.cpp:802
 #, c-format
-msgid ""
-"Could not resolve control class or id '%s'. Use (non-zero) integer instead\n"
+msgid "Could not resolve control class or id '%s'. Use (non-zero) integer instead\n"
 " or provide #define (see manual for caveats)"
-msgstr ""
-"Impossible de résoudre la classe de contrôle ou l'id '%s'. Utilisez un "
-"entier (non nul) à la place\n"
+msgstr "Impossible de résoudre la classe de contrôle ou l'id '%s'. Utilisez un entier (non nul) à la place\n"
 "ou fournissez un #define (voir le manuel pour les mises en garde)"
 
 #: ../src/common/resource.cpp:1251
 #, c-format
-msgid ""
-"Could not resolve menu id '%s'. Use (non-zero) integer instead\n"
+msgid "Could not resolve menu id '%s'. Use (non-zero) integer instead\n"
 "or provide #define (see manual for caveats)"
-msgstr ""
-"Impossible de résoudre l'id du menu '%s'. Utilisez un entier (non nul) à la "
-"place\n"
+msgstr "Impossible de résoudre l'id du menu '%s'. Utilisez un entier (non nul) à la place\n"
 "ou fournissez un #define (voir le manuel pour les mises en garde)"
 
 #: ../src/common/prntbase.cpp:806
 msgid "Could not start document preview."
 msgstr "Impossible de lancer l'aperçu du document."
 
-#: ../src/generic/printps.cpp:197 ../src/msw/printwin.cpp:252
+#: ../src/generic/printps.cpp:197
+#: ../src/msw/printwin.cpp:252
 msgid "Could not start printing."
 msgstr "Impossible de lancer l'impression."
 
@@ -944,8 +931,10 @@ msgstr "Impossible de lancer l'impression."
 msgid "Could not transfer data to window"
 msgstr "Impossible de transférer les données à la fenêtre"
 
-#: ../src/msw/dragimag.cpp:148 ../src/msw/dragimag.cpp:184
-#: ../src/msw/imaglist.cpp:152 ../src/msw/imaglist.cpp:174
+#: ../src/msw/dragimag.cpp:148
+#: ../src/msw/dragimag.cpp:184
+#: ../src/msw/imaglist.cpp:152
+#: ../src/msw/imaglist.cpp:174
 #: ../src/msw/imaglist.cpp:187
 msgid "Couldn't add an image to the image list."
 msgstr "Impossible d'ajouter une image à la liste."
@@ -954,25 +943,25 @@ msgstr "Impossible d'ajouter une image 
 msgid "Couldn't create a timer"
 msgstr "Impossible de créer un minuteur"
 
-#: ../src/mgl/cursor.cpp:135 ../src/mgl/cursor.cpp:166
-#, fuzzy
+#: ../src/mgl/cursor.cpp:135
+#: ../src/mgl/cursor.cpp:166
 msgid "Couldn't create cursor."
-msgstr "Impossible de créer un minuteur"
+msgstr "Impossible de créer un curseur."
 
-#: ../src/common/dynlib.cpp:347 ../src/common/dynload.cpp:295
+#: ../src/common/dynlib.cpp:347
+#: ../src/common/dynload.cpp:295
 #, c-format
 msgid "Couldn't find symbol '%s' in a dynamic library"
 msgstr "Impossible de trouver le symbole '%s' dans la bibliothèque dynamique"
 
-#: ../src/mac/thread.cpp:502 ../src/msw/thread.cpp:711
+#: ../src/mac/thread.cpp:502
+#: ../src/msw/thread.cpp:711
 msgid "Couldn't get the current thread pointer"
 msgstr "Impossible d'obtenir le pointeur sur le thread courant"
 
 #: ../src/common/imagpng.cpp:298
 msgid "Couldn't load a PNG image - file is corrupted or not enough memory."
-msgstr ""
-"Impossible de charger une image PNG - le fichier est corrompu ou bien il n'y "
-"a pas assez de mémoire."
+msgstr "Impossible de charger une image PNG - le fichier est corrompu ou bien il n'y a pas assez de mémoire."
 
 #: ../src/msw/ole/dataobj.cpp:143
 #, c-format
@@ -982,17 +971,16 @@ msgstr "Impossible d'enregistrer le format de presse-papier '%s'."
 #: ../src/msw/listctrl.cpp:722
 #, c-format
 msgid "Couldn't retrieve information about list control item %d."
-msgstr ""
-"Impossible d'obtenir de l'information sur un élément de la liste de contrôle "
-"%d."
+msgstr "Impossible d'obtenir de l'information sur un élément de la liste de contrôle %d."
 
-#: ../src/common/imagpng.cpp:334 ../src/common/imagpng.cpp:345
+#: ../src/common/imagpng.cpp:334
+#: ../src/common/imagpng.cpp:345
 #: ../src/common/imagpng.cpp:353
-#, fuzzy
 msgid "Couldn't save PNG image."
-msgstr "JPEG : Sauvegarde de l'image impossible."
+msgstr "PNG : Sauvegarde de l'image impossible."
 
-#: ../src/mac/thread.cpp:749 ../src/msw/thread.cpp:1091
+#: ../src/mac/thread.cpp:749
+#: ../src/msw/thread.cpp:1091
 msgid "Couldn't terminate thread"
 msgstr "Impossible d'arrêter le thread"
 
@@ -1000,7 +988,8 @@ msgstr "Impossible d'arr
 msgid "Create directory"
 msgstr "Créer le répertoire"
 
-#: ../src/generic/dirdlgg.cpp:103 ../src/generic/filedlgg.cpp:1119
+#: ../src/generic/dirdlgg.cpp:103
+#: ../src/generic/filedlgg.cpp:1119
 msgid "Create new directory"
 msgstr "Créer un nouveau répertoire"
 
@@ -1009,9 +998,8 @@ msgid "Current directory:"
 msgstr "Répertoire courant :"
 
 #: ../src/common/fontmap.cpp:116
-#, fuzzy
 msgid "Cyrillic (ISO-8859-5)"
-msgstr "Balte (ISO-8859-13)"
+msgstr "Cyrillique (ISO-8859-5)"
 
 #: ../src/common/paper.cpp:106
 msgid "D sheet, 22 x 34 in"
@@ -1022,35 +1010,28 @@ msgid "DDE poke request failed"
 msgstr "La demande de transfert DDE a échoué"
 
 #: ../src/common/imagbmp.cpp:618
-#, fuzzy
 msgid "DIB Header: Cannot deal with 4bit encoded yet."
-msgstr ""
-"BMP : Impossible d'utiliser actuellement les fichiers codés sur 4 bits."
+msgstr "DIB : Impossible d'utiliser actuellement les fichiers codés sur 4 bits."
 
 #: ../src/common/imagbmp.cpp:836
-#, fuzzy
 msgid "DIB Header: Encoding doesn't match bitdepth."
-msgstr "BMP : L'encodage ne correspond pas aux nombres de bits par pixel."
+msgstr "DIB : L'encodage ne correspond pas au nombre de bits par pixel."
 
 #: ../src/common/imagbmp.cpp:798
-#, fuzzy
 msgid "DIB Header: Image height > 32767 pixels for file."
-msgstr "BMP : La hauteur de l'image est > 32767 pixels pour le fichier."
+msgstr "DIB : La hauteur de l'image est > 32767 pixels pour le fichier."
 
 #: ../src/common/imagbmp.cpp:792
-#, fuzzy
 msgid "DIB Header: Image width > 32767 pixels for file."
-msgstr "BMP : La largeur de l'image est > 32767 pixels pour le fichier."
+msgstr "DIB : La largeur de l'image est > 32767 pixels pour le fichier."
 
 #: ../src/common/imagbmp.cpp:812
-#, fuzzy
 msgid "DIB Header: Unknown bitdepth in file."
-msgstr "BMP : Nombre de bits par pixel inconnu dans le fichier."
+msgstr "DIB : Nombre de bits par pixel inconnu dans le fichier."
 
 #: ../src/common/imagbmp.cpp:822
-#, fuzzy
 msgid "DIB Header: Unknown encoding in file."
-msgstr "BMP : Codage inconnu dans le fichier."
+msgstr "Entête DIB : Codage inconnu dans le fichier."
 
 #: ../src/common/paper.cpp:128
 msgid "DL Envelope, 110 x 220 mm"
@@ -1066,28 +1047,20 @@ msgstr "D
 
 #: ../src/common/fontmap.cpp:386
 msgid "Default encoding"
-msgstr ""
+msgstr "Encodage par défaut"
 
 #: ../src/unix/snglinst.cpp:269
-#, fuzzy, c-format
+#, c-format
 msgid "Deleted stale lock file '%s'."
-msgstr "Impossible d'effacer le fichier INI '%s'"
+msgstr "Le fichier verrou périmé '%s' a été effacé."
 
 #: ../src/msw/dialup.cpp:346
-msgid ""
-"Dial up functions are unavailable because the remote access service (RAS) is "
-"not installed on this machine. Please install it."
-msgstr ""
-"Les fonctions de composition de numéros ne sont pas disponibles car le "
-"service d'accès à distance (RAS) n'est pas installé sur cet ordinateur. "
-"Installez-le svp."
+msgid "Dial up functions are unavailable because the remote access service (RAS) is not installed on this machine. Please install it."
+msgstr "Les fonctions de composition de numéros ne sont pas disponibles car le service d'accès à distance (RAS) n'est pas installé sur cet ordinateur. Installez-le svp."
 
 #: ../src/os2/toplevel.cpp:329
-#, fuzzy
 msgid "Did you forget to include wx/os2/wx.rc in your resources?"
-msgstr ""
-"La création de la boîte de dialogue a échoué. Peut-être avez-vous oublié "
-"d'inclure wx/msw/wx.rc dans votre fichier de resources?"
+msgstr "Peut-être avez-vous oublié d'inclure wx/os2/wx.rc dans votre fichier de resources?"
 
 #: ../src/generic/tipdlg.cpp:178
 msgid "Did you know..."
@@ -1099,21 +1072,17 @@ msgid "Directory '%s' couldn't be created"
 msgstr "Le répertoire '%s' ne peut pas être créé"
 
 #: ../src/mgl/dirmgl.cpp:217
-#, fuzzy, c-format
+#, c-format
 msgid "Directory '%s' doesn't exist!"
-msgstr "Le répertoire n'existe pas"
+msgstr "Le répertoire '%s' n'existe pas!"
 
 #: ../src/generic/dirdlgg.cpp:188
 msgid "Directory does not exist"
 msgstr "Le répertoire n'existe pas"
 
 #: ../src/html/helpfrm.cpp:374
-msgid ""
-"Display all index items that contain given substring. Search is case "
-"insensitive."
-msgstr ""
-"Afficher tous les éléments index qui contiennent une sous-chaîne donnée. "
-"Recherche non sensible à la casse."
+msgid "Display all index items that contain given substring. Search is case insensitive."
+msgstr "Afficher tous les éléments index qui contiennent une sous-chaîne donnée. Recherche non sensible à la casse."
 
 #: ../src/html/helpfrm.cpp:540
 msgid "Display options dialog"
@@ -1122,13 +1091,17 @@ msgstr "Dialogue d'options de l'affichage"
 #: ../src/msw/mimetype.cpp:679
 #, c-format
 msgid ""
-"Do you want to overwrite the command used to %s files with extension \"%s\" "
-"?\n"
+"Do you want to overwrite the command used to %s files with extension \"%s\" ?\n"
 "Current value is \n"
 "%s, \n"
 "New value is \n"
 "%s %1"
 msgstr ""
+"Voulez-vous remplacer la commande utilisée pour %s les fichiers files avec l'extension \"%s\" ?\n"
+"La valeur courante est \n"
+"%s, \n"
+"La nouvelle valeur est \n"
+"%s %1"
 
 #: ../src/common/docview.cpp:440
 #, c-format
@@ -1144,9 +1117,8 @@ msgid "Done."
 msgstr "Fait."
 
 #: ../src/generic/fdrepdlg.cpp:157
-#, fuzzy
 msgid "Down"
-msgstr "Fait"
+msgstr "Bas"
 
 #: ../src/common/paper.cpp:107
 msgid "E sheet, 34 x 44 in"
@@ -1162,22 +1134,26 @@ msgstr "Entr
 
 #: ../src/common/config.cpp:345
 #, c-format
-msgid ""
-"Environment variables expansion failed: missing '%c' at position %d in '%s'."
-msgstr ""
-"L'expansion des variables d'environnement a échoué : caractère '%c' manquant "
-"à la position %d dans '%s'."
-
-#: ../src/generic/dirctrlg.cpp:702 ../src/generic/dirctrlg.cpp:720
-#: ../src/generic/dirctrlg.cpp:731 ../src/generic/dirdlgg.cpp:298
-#: ../src/generic/filedlgg.cpp:836 ../src/generic/filedlgg.cpp:933
-#: ../src/generic/filedlgg.cpp:947 ../src/generic/filedlgg.cpp:960
-#: ../src/generic/filedlgg.cpp:1322 ../src/generic/filedlgg.cpp:1372
-#: ../src/gtk/filedlg.cpp:80 ../src/gtk/fontdlg.cpp:71
+msgid "Environment variables expansion failed: missing '%c' at position %d in '%s'."
+msgstr "L'expansion des variables d'environnement a échoué : caractère '%c' manquant à la position %d dans '%s'."
+
+#: ../src/generic/dirctrlg.cpp:702
+#: ../src/generic/dirctrlg.cpp:720
+#: ../src/generic/dirctrlg.cpp:731
+#: ../src/generic/dirdlgg.cpp:298
+#: ../src/generic/filedlgg.cpp:836
+#: ../src/generic/filedlgg.cpp:933
+#: ../src/generic/filedlgg.cpp:947
+#: ../src/generic/filedlgg.cpp:960
+#: ../src/generic/filedlgg.cpp:1322
+#: ../src/generic/filedlgg.cpp:1372
+#: ../src/gtk/filedlg.cpp:80
+#: ../src/gtk/fontdlg.cpp:71
 msgid "Error"
 msgstr "Erreur"
 
-#: ../src/unix/utilsunx.cpp:1182 ../src/unix/utilsunx.cpp:1190
+#: ../src/unix/utilsunx.cpp:1182
+#: ../src/unix/utilsunx.cpp:1190
 msgid "Error "
 msgstr "Erreur "
 
@@ -1186,9 +1162,8 @@ msgid "Error creating directory"
 msgstr "Erreur en créant le répertoire"
 
 #: ../src/common/imagbmp.cpp:845
-#, fuzzy
 msgid "Error in reading image DIB ."
-msgstr "TIFF: Erreur à la lecture de l'image."
+msgstr "DIB: Erreur à la lecture de l'image."
 
 #: ../src/common/log.cpp:460
 msgid "Error: "
@@ -1211,20 +1186,26 @@ msgstr "L'ex
 msgid "Executive, 7 1/4 x 10 1/2 in"
 msgstr "Executive, 7 1/4 x 10 1/2 pouces"
 
-#: ../src/common/resourc2.cpp:326 ../src/common/resourc2.cpp:1391
-#: ../src/common/resource.cpp:1845 ../src/common/resource.cpp:1975
+#: ../src/common/resourc2.cpp:326
+#: ../src/common/resourc2.cpp:1391
+#: ../src/common/resource.cpp:1845
+#: ../src/common/resource.cpp:1975
 #: ../src/common/resource.cpp:3059
 msgid "Expected '*' whilst parsing resource."
 msgstr "'*' attendu pendant l'analyse de la ressource."
 
-#: ../src/common/resourc2.cpp:342 ../src/common/resourc2.cpp:1407
-#: ../src/common/resource.cpp:1862 ../src/common/resource.cpp:1991
+#: ../src/common/resourc2.cpp:342
+#: ../src/common/resourc2.cpp:1407
+#: ../src/common/resource.cpp:1862
+#: ../src/common/resource.cpp:1991
 #: ../src/common/resource.cpp:3076
 msgid "Expected '=' whilst parsing resource."
 msgstr "'=' attendu pendant l'analyse de la ressource."
 
-#: ../src/common/resourc2.cpp:312 ../src/common/resourc2.cpp:1377
-#: ../src/common/resource.cpp:1831 ../src/common/resource.cpp:1961
+#: ../src/common/resourc2.cpp:312
+#: ../src/common/resourc2.cpp:1377
+#: ../src/common/resource.cpp:1831
+#: ../src/common/resource.cpp:1961
 #: ../src/common/resource.cpp:3045
 msgid "Expected 'char' whilst parsing resource."
 msgstr "'char' attendu pendant l'analyse de la ressource."
@@ -1236,17 +1217,16 @@ msgstr "Impossible de %s la connexion : %s"
 
 #: ../src/unix/snglinst.cpp:243
 msgid "Failed to access lock file."
-msgstr ""
+msgstr "L'accès au ficher verrou a échoué."
 
 #: ../src/common/filename.cpp:172
-#, fuzzy
 msgid "Failed to close file handle"
-msgstr "Impossible de fermer le presse-papier."
+msgstr "Impossible de fermer le fichier"
 
 #: ../src/unix/snglinst.cpp:308
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to close lock file '%s'"
-msgstr "la mise a jour du fichier '%s' a échoué"
+msgstr "La fermeture du fichier verrou '%s' a échoué"
 
 #: ../src/msw/clipbrd.cpp:127
 msgid "Failed to close the clipboard."
@@ -1271,9 +1251,9 @@ msgid "Failed to copy the contents of registry key '%s' to '%s'."
 msgstr "Impossible de copier les contenus de la clé de registre '%s' vers '%s'"
 
 #: ../src/common/filefn.cpp:1106
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to copy the file '%s' to '%s'"
-msgstr "la mise a jour du fichier '%s' a échoué"
+msgstr "La copie du fichier '%s' vers '%s' a échoué"
 
 #: ../src/msw/dde.cpp:924
 msgid "Failed to create DDE string"
@@ -1288,14 +1268,12 @@ msgid "Failed to create a status bar."
 msgstr "Impossible de créer une barre de statut."
 
 #: ../src/common/filename.cpp:717
-#, fuzzy
 msgid "Failed to create a temporary file name"
-msgstr "Impossible de créer une fenêtre parent MDI."
+msgstr "Impossible de créer un nom de fichier temporaire."
 
 #: ../src/msw/utilsexc.cpp:195
-#, fuzzy
 msgid "Failed to create an anonymous pipe"
-msgstr "Impossible de créer une barre de statut."
+msgstr "Impossible de créer un tube de communication anonyme."
 
 #: ../src/msw/dde.cpp:401
 #, c-format
@@ -1303,78 +1281,73 @@ msgid "Failed to create connection to server '%s' on topic '%s'"
 msgstr "Impossible de créer une connexion au serveur '%s' sur le sujet '%s'"
 
 #: ../src/msw/toplevel.cpp:293
-#, fuzzy
 msgid "Failed to create dialog. Incorrect DLGTEMPLATE?"
-msgstr "Impossible de créer le répertoire "
+msgstr "Impossible de créer la boîte de dialogue: le 'DLGTEMPLATE' est peut-être incorrecte ?"
 
 #: ../src/generic/dirdlgg.cpp:201
-#, fuzzy, c-format
-msgid ""
-"Failed to create directory '%s'\n"
+#, c-format
+msgid "Failed to create directory '%s'\n"
 "(Do you have the required permissions?)"
-msgstr ""
-"\n"
+msgstr "Erreur à la création du répertoire '%s'\n"
 "(Avez-vous les permissions requises ?)"
 
 #: ../src/msw/mimetype.cpp:168
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to create registry entry for '%s' files."
-msgstr "Impossible de renommer la clé de registre '%s' en '%s'."
+msgstr "Impossible de créer une entrée dans le registre pour les fichiers '%s'."
 
 #: ../src/msw/fdrepdlg.cpp:442
 #, c-format
 msgid "Failed to create the standard find/replace dialog (error code %d)"
-msgstr ""
+msgstr "La création de la boîte de dialogue rechercher/remplacer a échoué (code erreur %d)"
 
 #: ../src/html/winpars.cpp:430
 #, c-format
 msgid "Failed to display HTML document in %s encoding"
 msgstr "Impossible d'afficher le document HTML avec l'encodage %s"
 
-#: ../src/mac/clipbrd.cpp:167 ../src/msw/clipbrd.cpp:139
+#: ../src/mac/clipbrd.cpp:167
+#: ../src/msw/clipbrd.cpp:139
 msgid "Failed to empty the clipboard."
 msgstr "Impossible de vider le presse-papier."
 
 #: ../src/msw/dde.cpp:606
 msgid "Failed to establish an advise loop with DDE server"
-msgstr ""
-"Impossible d'établir une boucle de conseil (advise loop) avec le serveur DDE"
+msgstr "Impossible d'établir une boucle de conseil (advise loop) avec le serveur DDE"
 
 #: ../src/msw/dialup.cpp:618
 #, c-format
 msgid "Failed to establish dialup connection: %s"
 msgstr "Impossible de réaliser une connexion : %s"
 
-#: ../src/unix/utilsunx.cpp:538 ../src/unix/utilsunx.cpp:555
+#: ../src/unix/utilsunx.cpp:538
+#: ../src/unix/utilsunx.cpp:555
 #, c-format
 msgid "Failed to execute '%s'\n"
 msgstr "Impossible d'exécuter '%s'\n"
 
-#: ../src/common/resourc2.cpp:808 ../src/common/resource.cpp:2465
+#: ../src/common/resourc2.cpp:808
+#: ../src/common/resource.cpp:2465
 #, c-format
-msgid ""
-"Failed to find XBM resource %s.\n"
+msgid "Failed to find XBM resource %s.\n"
 "Forgot to use wxResourceLoadBitmapData?"
-msgstr ""
-"Impossible de trouver la ressource XBM %s.\n"
+msgstr "Impossible de trouver la ressource XBM %s.\n"
 "Oublié d'utiliser wxResourceLoadBitmapData ?"
 
-#: ../src/common/resourc2.cpp:959 ../src/common/resource.cpp:2619
+#: ../src/common/resourc2.cpp:959
+#: ../src/common/resource.cpp:2619
 #, c-format
-msgid ""
-"Failed to find XBM resource %s.\n"
+msgid "Failed to find XBM resource %s.\n"
 "Forgot to use wxResourceLoadIconData?"
-msgstr ""
-"Impossible de trouver la ressource XBM %s.\n"
+msgstr "Impossible de trouver la ressource XBM %s.\n"
 "Oublié d'utiliser wxResourceLoadIconData ?"
 
-#: ../src/common/resourc2.cpp:823 ../src/common/resource.cpp:2480
+#: ../src/common/resourc2.cpp:823
+#: ../src/common/resource.cpp:2480
 #, c-format
-msgid ""
-"Failed to find XPM resource %s.\n"
+msgid "Failed to find XPM resource %s.\n"
 "Forgot to use wxResourceLoadBitmapData?"
-msgstr ""
-"Impossible de trouver la ressource XPM %s.\n"
+msgstr "Impossible de trouver la ressource XPM %s.\n"
 "Oublié d'utiliser wxResourceLoadBitmapData ?"
 
 #: ../src/msw/dialup.cpp:678
@@ -1383,9 +1356,8 @@ msgid "Failed to get ISP names: %s"
 msgstr "Impossible d'obtenir les noms ISP : %s"
 
 #: ../src/mac/clipbrd.cpp:118
-#, fuzzy
 msgid "Failed to get clipboard data."
-msgstr "Impossible de passer les données au presse-papier."
+msgstr "Impossible de récupérer les données du presse-papier."
 
 #: ../src/msw/clipbrd.cpp:712
 msgid "Failed to get data from the clipboard"
@@ -1400,80 +1372,74 @@ msgid "Failed to get the local system time"
 msgstr "Impossible d'obtenir le temps système local"
 
 #: ../src/common/filefn.cpp:1487
-#, fuzzy
 msgid "Failed to get the working directory"
-msgstr "Impossible de créer le répertoire "
+msgstr "Impossible de trouver quel est le répertoire courant"
 
 #: ../src/univ/theme.cpp:120
 msgid "Failed to initialize GUI: no built-in themes found."
-msgstr ""
+msgstr "L'initialisation de l'interface graphique a échoué: aucun thème inclu n'a éte trouvé."
 
 #: ../src/msw/helpchm.cpp:69
 msgid "Failed to initialize MS HTML Help."
-msgstr ""
+msgstr "L'initialisation de l'aide MS HTML a échoué."
 
 #: ../src/msw/glcanvas.cpp:729
-#, fuzzy
 msgid "Failed to initialize OpenGL"
-msgstr "Impossible d'initialiser l'OLE"
+msgstr "Impossible d'initialiser OpenGL"
 
 #: ../src/unix/threadpsx.cpp:871
-msgid ""
-"Failed to join a thread, potential memory leak detected - please restart the "
-"program"
-msgstr ""
-"Impossible d'adjoindre un thread, fuite potentielle de mémoire détectée - "
-"redémarrez le programme svp"
+msgid "Failed to join a thread, potential memory leak detected - please restart the program"
+msgstr "Impossible d'adjoindre un thread, fuite potentielle de mémoire détectée - redémarrez le programme svp"
 
 #: ../src/msw/utils.cpp:721
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to kill process %d"
-msgstr "Impossible de rediriger les entrées/sorties du processus fils"
+msgstr "Impossible de tuer le processus %d"
 
 #: ../src/common/iconbndl.cpp:66
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to load image %d from file '%s'."
-msgstr "la mise a jour du fichier '%s' a échoué"
+msgstr "La lecture de l'image %d depuis le fichier '%s' a échoué."
 
 #: ../src/msw/volume.cpp:340
-#, fuzzy
 msgid "Failed to load mpr.dll."
-msgstr "Impossible de passer les données au presse-papier."
+msgstr "Impossible de charger mpr.dll"
 
-#: ../src/common/dynlib.cpp:274 ../src/common/dynload.cpp:197
+#: ../src/common/dynlib.cpp:274
+#: ../src/common/dynload.cpp:197
 #, c-format
 msgid "Failed to load shared library '%s'"
 msgstr "Impossible de charger la bibliothèque partagée '%s'"
 
-#: ../src/common/dynlib.cpp:256 ../src/common/dynload.cpp:126
-#, fuzzy, c-format
+#: ../src/common/dynlib.cpp:256
+#: ../src/common/dynload.cpp:126
+#, c-format
 msgid "Failed to load shared library '%s' Error '%s'"
-msgstr "Impossible de charger la bibliothèque partagée '%s'"
+msgstr "Impossible de charger la bibliothèque partagée '%s': erreur '%s'"
 
 #: ../src/unix/snglinst.cpp:192
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to lock the lock file '%s'"
-msgstr "la mise a jour du fichier '%s' a échoué"
+msgstr "Le verrouillage du fichier verrou '%s' a échoué"
 
 #: ../src/common/regex.cpp:251
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to match '%s' in regular expression: %s"
-msgstr "Impossible de %s la connexion : %s"
+msgstr "Impossible de trouver '%s' dans l'expression régulière: %s"
 
 #: ../src/common/filename.cpp:1644
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to modify file times for '%s'"
-msgstr "la mise a jour du fichier '%s' a échoué"
+msgstr "la mise a jour des heres/dates du fichier '%s' a échoué"
 
 #: ../src/common/filename.cpp:160
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to open '%s' for %s"
-msgstr "Impossible d'ouvrir le presse-papier."
+msgstr "Impossible d'ouvrir '%s' pour %s"
 
 #: ../src/common/filename.cpp:739
-#, fuzzy
 msgid "Failed to open temporary file."
-msgstr "Impossible d'ouvrir le presse-papier."
+msgstr "Impossible d'ouvrir le fichier temporaire."
 
 #: ../src/msw/clipbrd.cpp:107
 msgid "Failed to open the clipboard."
@@ -1484,16 +1450,14 @@ msgid "Failed to put data on the clipboard"
 msgstr "Impossible de placer des données sur le presse-papier"
 
 #: ../src/unix/snglinst.cpp:252
-#, fuzzy
 msgid "Failed to read PID from lock file."
-msgstr "Impossible de créer une fenêtre parent MDI."
+msgstr "Impossible de lire le numéro de process (PID) depuis le fichier verrou."
 
 #: ../src/unix/utilsunx.cpp:629
 msgid "Failed to redirect child process input/output"
 msgstr "Impossible de rediriger les entrées/sorties du processus fils"
 
 #: ../src/msw/utilsexc.cpp:600
-#, fuzzy
 msgid "Failed to redirect the child process IO"
 msgstr "Impossible de rediriger les entrées/sorties du processus fils"
 
@@ -1508,14 +1472,14 @@ msgid "Failed to remember the encoding for the charset '%s'."
 msgstr "Impossible de se rappeler l'encodage pour le jeu de caractères '%s'."
 
 #: ../src/unix/snglinst.cpp:296
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to remove lock file '%s'"
-msgstr "impossible de supprimer le fichier '%s'"
+msgstr "La suppression du fichier verrou '%s' a échoué"
 
 #: ../src/unix/snglinst.cpp:262
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to remove stale lock file '%s'."
-msgstr "Impossible de renommer la valeur de registre '%s' en '%s'."
+msgstr "Impossible de supprimer le ficher verrou périmé '%s'."
 
 #: ../src/msw/registry.cpp:443
 #, c-format
@@ -1532,9 +1496,9 @@ msgid "Failed to retrieve data from the clipboard."
 msgstr "Impossible de retrouver des données du presse-papier."
 
 #: ../src/common/filename.cpp:1710
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to retrieve file times for '%s'"
-msgstr "Impossible de retrouver le texte du message d'erreur RAS"
+msgstr "Impossible de lire les heures/dates pour '%s'"
 
 #: ../src/msw/dialup.cpp:442
 msgid "Failed to retrieve text of RAS error message"
@@ -1549,20 +1513,20 @@ msgid "Failed to send DDE advise notification"
 msgstr "Impossible d'envoyer un avis de notification au DDE"
 
 #: ../src/common/ftp.cpp:368
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to set FTP transfer mode to %s."
-msgstr "Impossible d'assigner au thread la priorité %d."
+msgstr "Impossible d'assigner transfert FTP le mode %s.."
 
 #: ../src/msw/clipbrd.cpp:379
 msgid "Failed to set clipboard data."
 msgstr "Impossible de passer les données au presse-papier."
 
 #: ../src/common/file.cpp:522
-#, fuzzy
 msgid "Failed to set temporary file permissions"
-msgstr "la mise a jour du fichier '%s' a échoué"
+msgstr "Impossible de changer temporairement les permissions du fichier '%s'"
 
-#: ../src/unix/threadpsx.cpp:1213 ../src/unix/threadpsx.cpp:1224
+#: ../src/unix/threadpsx.cpp:1213
+#: ../src/unix/threadpsx.cpp:1224
 #, c-format
 msgid "Failed to set thread priority %d."
 msgstr "Impossible d'assigner au thread la priorité %d."
@@ -1578,8 +1542,7 @@ msgstr "Impossible de terminer le thread."
 
 #: ../src/msw/dde.cpp:625
 msgid "Failed to terminate the advise loop with DDE server"
-msgstr ""
-"Impossible de terminer la boucle de conseil (advise loop) avec le server DDE"
+msgstr "Impossible de terminer la boucle de conseil (advise loop) avec le server DDE"
 
 #: ../src/msw/dialup.cpp:913
 #, c-format
@@ -1587,14 +1550,14 @@ msgid "Failed to terminate the dialup connection: %s"
 msgstr "Impossible de terminer la connexion : %s"
 
 #: ../src/common/filename.cpp:1659
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to touch the file '%s'"
-msgstr "la mise a jour du fichier '%s' a échoué"
+msgstr "L'accès ('touch') au fichier '%s' a échoué"
 
 #: ../src/unix/snglinst.cpp:302
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to unlock lock file '%s'"
-msgstr "la mise a jour du fichier '%s' a échoué"
+msgstr "Le déverrouillage du fichier verrou '%s' a échoué"
 
 #: ../src/msw/dde.cpp:301
 #, c-format
@@ -1602,9 +1565,9 @@ msgid "Failed to unregister DDE server '%s'"
 msgstr "Impossible de supprimer l'enregistrement du serveur DDE '%s'"
 
 #: ../src/unix/snglinst.cpp:173
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to write to lock file '%s'"
-msgstr "la mise a jour du fichier '%s' a échoué"
+msgstr "L'écriture dans le fichier verrou '%s' a échoué"
 
 #: ../src/generic/logg.cpp:379
 msgid "Fatal error"
@@ -1614,37 +1577,41 @@ msgstr "Erreur fatale"
 msgid "Fatal error: "
 msgstr "Erreur fatale : "
 
-#: ../src/mac/app.cpp:1220 ../src/msw/app.cpp:1281
+#: ../src/mac/app.cpp:1220
+#: ../src/msw/app.cpp:1281
 msgid "Fatal error: exiting"
 msgstr "Erreur fatale : fin du programme"
 
 #: ../src/mgl/bitmap.cpp:544
-#, fuzzy, c-format
+#, c-format
 msgid "File %s does not exist."
-msgstr ": le ficheir n'existe pas!"
+msgstr "Le ficheir '%s' n'existe pas."
 
-#: ../src/generic/filedlgg.cpp:1354 ../src/gtk/filedlg.cpp:69
+#: ../src/generic/filedlgg.cpp:1354
+#: ../src/gtk/filedlg.cpp:69
 #, c-format
 msgid "File '%s' already exists, do you really want to overwrite it?"
 msgstr "Le fichier '%s' existe déjà, voulez-vous vraiment l'écraser ?"
 
 #: ../src/msw/filedlg.cpp:505
-#, fuzzy, c-format
-msgid ""
-"File '%s' already exists.\n"
+#, c-format
+msgid "File '%s' already exists.\n"
 "Do you want to replace it?"
-msgstr "Le fichier '%s' existe déjà, voulez-vous vraiment l'écraser ?"
+msgstr "Le fichier '%s' existe déjà.\n"
+"Voulez-vous le remplacer ?"
 
 #: ../src/common/textcmn.cpp:158
 msgid "File couldn't be loaded."
 msgstr "Le fichier n'a pas pu être chargé."
 
-#: ../src/common/docview.cpp:294 ../src/common/docview.cpp:331
+#: ../src/common/docview.cpp:294
+#: ../src/common/docview.cpp:331
 #: ../src/common/docview.cpp:1422
 msgid "File error"
 msgstr "Erreur fichier"
 
-#: ../src/generic/dirctrlg.cpp:720 ../src/generic/filedlgg.cpp:947
+#: ../src/generic/dirctrlg.cpp:720
+#: ../src/generic/filedlgg.cpp:947
 msgid "File name exists already."
 msgstr "Ce nom de fichier existe déjà."
 
@@ -1677,13 +1644,16 @@ msgstr "Le fork a 
 msgid "Forward"
 msgstr "Suivant"
 
-#: ../src/common/resourc2.cpp:295 ../src/common/resourc2.cpp:1360
-#: ../src/common/resource.cpp:1814 ../src/common/resource.cpp:1944
+#: ../src/common/resourc2.cpp:295
+#: ../src/common/resourc2.cpp:1360
+#: ../src/common/resource.cpp:1814
+#: ../src/common/resource.cpp:1944
 #: ../src/common/resource.cpp:3028
 msgid "Found "
 msgstr "Trouvé "
 
-#: ../src/html/helpfrm.cpp:661 ../src/html/htmlhelp.cpp:460
+#: ../src/html/helpfrm.cpp:661
+#: ../src/html/htmlhelp.cpp:460
 #, c-format
 msgid "Found %i matches"
 msgstr "Trouvé %i correspondances"
@@ -1693,9 +1663,8 @@ msgid "From:"
 msgstr "De :"
 
 #: ../src/common/imaggif.cpp:100
-#, fuzzy
 msgid "GIF: Invalid gif index."
-msgstr "Index d'image TIFF non valide."
+msgstr "GIF : Index d'image gif non valide."
 
 #: ../src/common/imaggif.cpp:75
 msgid "GIF: data stream seems to be truncated."
@@ -1715,7 +1684,7 @@ msgstr "GIF : erreur inconnue !!!"
 
 #: ../src/univ/themes/gtk.cpp:623
 msgid "GTK+ theme"
-msgstr ""
+msgstr "thème GTK+"
 
 #: ../src/common/paper.cpp:142
 msgid "German Legal Fanfold, 8 1/2 x 13 in"
@@ -1727,7 +1696,7 @@ msgstr "Standard allemand en accord
 
 #: ../src/common/image.cpp:762
 msgid "GetUnusedColour:: No Unused Color in image "
-msgstr ""
+msgstr "GetUnusedColour:: Aucune couleur libre dans l'image"
 
 #: ../src/html/helpfrm.cpp:506
 msgid "Go back"
@@ -1735,7 +1704,7 @@ msgstr "Pr
 
 #: ../src/html/htmlhelp.cpp:541
 msgid "Go back to the previous HTML page"
-msgstr ""
+msgstr "Retourner à la page HTML précédente"
 
 #: ../src/html/helpfrm.cpp:509
 msgid "Go forward"
@@ -1743,13 +1712,14 @@ msgstr "Suivant"
 
 #: ../src/html/htmlhelp.cpp:543
 msgid "Go forward to the next HTML page"
-msgstr ""
+msgstr "Aller à la page HTLM suivante"
 
 #: ../src/html/helpfrm.cpp:514
 msgid "Go one level up in document hierarchy"
 msgstr "Niveau supérieur dans la hiérarchie du document"
 
-#: ../src/generic/dirdlgg.cpp:108 ../src/generic/filedlgg.cpp:1108
+#: ../src/generic/dirdlgg.cpp:108
+#: ../src/generic/filedlgg.cpp:1108
 msgid "Go to home directory"
 msgstr "Répertoire initial"
 
@@ -1759,7 +1729,7 @@ msgstr "R
 
 #: ../src/common/prntbase.cpp:379
 msgid "Goto Page"
-msgstr ""
+msgstr "Aller à la page"
 
 #: ../src/common/fontmap.cpp:118
 msgid "Greek (ISO-8859-7)"
@@ -1771,26 +1741,22 @@ msgid "HTML anchor %s does not exist."
 msgstr "L'ancrage HTML %s n'existe pas."
 
 #: ../src/html/helpfrm.cpp:1279
-msgid ""
-"HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|Help books "
-"(*.htb)|*.htb|Help books (*.zip)|*.zip|HTML Help Project (*.hhp)|*.hhp|All "
-"files (*.*)|*"
-msgstr ""
-"Fichiers HTML (*.htm)|*.htm|Fichiers HTML (*.html)|*.html|Fichiers d'aide "
-"(*.htb)|*.htb|Fichiers d'aide (*.zip)|*.zip|Projet d'aide HTML "
-"(*.hhp)|*.hhp|Tous les fichier (*.*)|*"
+msgid "HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|HTML Help Project (*.hhp)|*.hhp|All files (*.*)|*"
+msgstr "Fichiers HTML (*.htm)|*.htm|Fichiers HTML (*.html)|*.html|Fichiers d'aide (*.htb)|*.htb|Fichiers d'aide (*.zip)|*.zip|Projet d'aide HTML (*.hhp)|*.hhp|Tous les fichier (*.*)|*"
 
 #: ../src/common/fontmap.cpp:119
 msgid "Hebrew (ISO-8859-8)"
 msgstr "Hébreu (ISO-8859-8)"
 
-#: ../src/common/dlgcmn.cpp:179 ../src/generic/proplist.cpp:516
-#: ../src/html/helpfrm.cpp:240 ../src/msw/mdi.cpp:1324
+#: ../src/common/dlgcmn.cpp:179
+#: ../src/generic/proplist.cpp:516
+#: ../src/html/helpfrm.cpp:240
+#: ../src/msw/mdi.cpp:1324
 msgid "Help"
 msgstr "Aide"
 
 #: ../src/html/htmlhelp.cpp:87
-#, fuzzy, c-format
+#, c-format
 msgid "Help : %s"
 msgstr "Aide : %s"
 
@@ -1798,7 +1764,8 @@ msgstr "Aide : %s"
 msgid "Help Browser Options"
 msgstr "Aide Options Navigateur"
 
-#: ../src/generic/helphtml.cpp:334 ../src/generic/helphtml.cpp:335
+#: ../src/generic/helphtml.cpp:334
+#: ../src/generic/helphtml.cpp:335
 msgid "Help Index"
 msgstr "Aide Index"
 
@@ -1812,53 +1779,51 @@ msgid "Help: %s"
 msgstr "Aide : %s"
 
 #: ../src/common/imagbmp.cpp:858
-#, fuzzy
 msgid "ICO: Error in reading mask DIB."
-msgstr "TIFF: Erreur à la lecture de l'image."
-
-#: ../src/common/imagbmp.cpp:960 ../src/common/imagbmp.cpp:1019
-#: ../src/common/imagbmp.cpp:1028 ../src/common/imagbmp.cpp:1039
-#: ../src/common/imagbmp.cpp:1083 ../src/common/imagbmp.cpp:1093
+msgstr "ICO : Erreur à la lecture du masque DIB."
+
+#: ../src/common/imagbmp.cpp:960
+#: ../src/common/imagbmp.cpp:1019
+#: ../src/common/imagbmp.cpp:1028
+#: ../src/common/imagbmp.cpp:1039
+#: ../src/common/imagbmp.cpp:1083
+#: ../src/common/imagbmp.cpp:1093
 #: ../src/common/imagbmp.cpp:1102
-#, fuzzy
 msgid "ICO: Error writing the image file!"
-msgstr "TIFF: Erreur à l'écriture de l'image."
+msgstr "ICO : Erreur à l'écriture du fichier image!"
 
 #: ../src/common/imagbmp.cpp:928
 msgid "ICO: Image too tall for an icon."
-msgstr ""
+msgstr "ICO: image trop petite pour un icone."
 
 #: ../src/common/imagbmp.cpp:934
 msgid "ICO: Image too wide for an icon."
-msgstr ""
+msgstr "ICO: image trop grande pour un icone"
 
 #: ../src/common/imagbmp.cpp:1167
-#, fuzzy
 msgid "ICO: Invalid icon index."
-msgstr "Index d'image TIFF non valide."
+msgstr "ICO : Index d'icone non valide."
 
 #: ../src/common/imagiff.cpp:767
-#, fuzzy
 msgid "IFF: data stream seems to be truncated."
-msgstr "GIF : le flot de données semble être tronqué."
+msgstr "IFF : le flot de données semble être tronqué."
 
 #: ../src/common/imagiff.cpp:751
-#, fuzzy
 msgid "IFF: error in IFF image format."
-msgstr "GIF : erreur dans le format GIF de l'image."
+msgstr "IFF : erreur dans le format IFF de l'image."
 
 #: ../src/common/imagiff.cpp:754
-#, fuzzy
 msgid "IFF: not enough memory."
-msgstr "GIF : pas assez de mémoire."
+msgstr "IFF : pas assez de mémoire."
 
 #: ../src/common/imagiff.cpp:757
-#, fuzzy
 msgid "IFF: unknown error!!!"
-msgstr "GIF : erreur inconnue !!!"
+msgstr "IFF : erreur inconnue !!!"
 
-#: ../src/common/resourc2.cpp:989 ../src/common/resourc2.cpp:1000
-#: ../src/common/resource.cpp:2649 ../src/common/resource.cpp:2660
+#: ../src/common/resourc2.cpp:989
+#: ../src/common/resourc2.cpp:1000
+#: ../src/common/resource.cpp:2649
+#: ../src/common/resource.cpp:2660
 #, c-format
 msgid "Icon resource specification %s not found."
 msgstr "La spécification pour la ressource icône %s n'a pas été trouvée."
@@ -1867,7 +1832,8 @@ msgstr "La sp
 msgid "Ill-formed resource file syntax."
 msgstr "Syntaxe incorrecte dans le fichier de ressource."
 
-#: ../src/generic/dirctrlg.cpp:702 ../src/generic/filedlgg.cpp:933
+#: ../src/generic/dirctrlg.cpp:702
+#: ../src/generic/filedlgg.cpp:933
 msgid "Illegal directory name."
 msgstr "Nom de répertoire illégal."
 
@@ -1877,41 +1843,38 @@ msgstr "Sp
 
 #: ../src/common/image.cpp:785
 msgid "Image and Mask have different sizes"
-msgstr ""
+msgstr "L'image et le masque ne sont pas de même taille"
 
 #: ../src/common/image.cpp:1064
 #, c-format
 msgid "Image file is not of type %d."
-msgstr ""
+msgstr "Le fichier image n'est pas de type %d."
 
 #: ../src/msw/textctrl.cpp:249
-msgid ""
-"Impossible to create a rich edit control, using simple text control instead. "
-"Please reinstall riched32.dll"
-msgstr ""
-"Impossible de créer un contrôle de type rich edit, utilisez à la place un "
-"contrôle de type texte simple. Réinstallez riched32.dll svp"
+msgid "Impossible to create a rich edit control, using simple text control instead. Please reinstall riched32.dll"
+msgstr "Impossible de créer un contrôle de type rich edit, utilisez à la place un contrôle de type texte simple. Réinstallez riched32.dll svp"
 
 #: ../src/unix/utilsunx.cpp:390
 msgid "Impossible to get child process input"
 msgstr "Impossible d'obtenir l'entrée du processus fils"
 
 #: ../src/common/filefn.cpp:1122
-#, fuzzy, c-format
+#, c-format
 msgid "Impossible to get permissions for file '%s'"
-msgstr "Impossible d'obtenir l'entrée du processus fils"
+msgstr "Impossible d'obtenir les permissions du fichier '%s'"
 
 #: ../src/common/filefn.cpp:1136
-#, fuzzy, c-format
+#, c-format
 msgid "Impossible to overwrite the file '%s'"
-msgstr "la mise a jour du fichier '%s' a échoué"
+msgstr "Impossible d'écrire par-dessus le fichier '%s'"
 
 #: ../src/common/filefn.cpp:1187
 #, c-format
 msgid "Impossible to set permissions for the file '%s'"
-msgstr ""
+msgstr "Impossible de changer les permissions pour le fichier '%s'"
 
-#: ../src/html/helpfrm.cpp:387 ../src/html/htmlhelp.cpp:578
+#: ../src/html/helpfrm.cpp:387
+#: ../src/html/htmlhelp.cpp:578
 msgid "Index"
 msgstr "Index"
 
@@ -1926,27 +1889,27 @@ msgstr "Index d'image TIFF non valide."
 #: ../contrib/src/xrc/xmlres.cpp:343
 #, c-format
 msgid "Invalid XRC resource '%s': doesn't have root node 'resource'."
-msgstr ""
+msgstr "Ressource XRC '%s' invalide: n'a pas le noeud racine 'resource'"
 
 #: ../src/common/appcmn.cpp:378
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid display mode specification '%s'."
-msgstr "Spécification de fichier illégale."
+msgstr "Le mode vidéo spécifié '%s' est non invalide."
 
 #: ../src/x11/app.cpp:231
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid geometry specification '%s'"
-msgstr "Spécification de fichier illégale."
+msgstr "Géometrie '%s' non valide."
 
 #: ../src/unix/snglinst.cpp:280
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid lock file '%s'."
-msgstr "impossible de fermer le fichier '%s'"
+msgstr "Fichier verrou '%s' non valide."
 
 #: ../src/common/regex.cpp:173
 #, c-format
 msgid "Invalid regular expression '%s': %s"
-msgstr ""
+msgstr "Expression régulière '%s' invalide: %s"
 
 #: ../src/generic/fontdlgg.cpp:227
 msgid "Italic"
@@ -1968,7 +1931,8 @@ msgstr "JPEG : Sauvegarde de l'image impossible."
 msgid "KOI8-R"
 msgstr "KOI8-R"
 
-#: ../src/generic/prntdlgg.cpp:426 ../src/generic/prntdlgg.cpp:620
+#: ../src/generic/prntdlgg.cpp:426
+#: ../src/generic/prntdlgg.cpp:620
 msgid "Landscape"
 msgstr "Paysage"
 
@@ -1996,16 +1960,17 @@ msgstr "Lettre, 8 1/2 x 11 pouces"
 msgid "Light"
 msgstr "Léger"
 
-#: ../src/generic/filedlgg.cpp:1587 ../src/gtk/filedlg.cpp:249
-#: ../src/motif/filedlg.cpp:357 ../src/msw/filedlg.cpp:542
+#: ../src/generic/filedlgg.cpp:1587
+#: ../src/gtk/filedlg.cpp:249
+#: ../src/motif/filedlg.cpp:357
+#: ../src/msw/filedlg.cpp:542
 #, c-format
 msgid "Load %s file"
 msgstr "Charger le fichier %s"
 
 #: ../src/generic/filedlgg.cpp:1589
-#, fuzzy
 msgid "Load file"
-msgstr "Charger le fichier %s"
+msgstr "Charger le fichier"
 
 #: ../src/html/htmlwin.cpp:282
 msgid "Loading : "
@@ -2013,15 +1978,11 @@ msgstr "Chargement : "
 
 #: ../src/common/imagpnm.cpp:72
 msgid "Loading Grey Ascii PNM image is not yet implemented."
-msgstr ""
-"Le chargement d'une image PNM mode Ascii en niveau de gris n'est pas encore "
-"implémentée."
+msgstr "Le chargement d'une image PNM mode Ascii en niveau de gris n'est pas encore implémentée."
 
 #: ../src/common/imagpnm.cpp:75
 msgid "Loading Grey Raw PNM image is not yet implemented."
-msgstr ""
-"Le chargement d'une image PNM mode source en niveau de gris n'est pas encore "
-"implémentée."
+msgstr "Le chargement d'une image PNM mode source en niveau de gris n'est pas encore implémentée."
 
 #: ../src/generic/logg.cpp:554
 #, c-format
@@ -2033,18 +1994,12 @@ msgid "MDI child"
 msgstr "fils MDI"
 
 #: ../src/msw/helpchm.cpp:60
-#, fuzzy
-msgid ""
-"MS HTML Help functions are unavailable because the MS HTML Help library is "
-"not installed on this machine. Please install it."
-msgstr ""
-"Les fonctions de composition de numéros ne sont pas disponibles car le "
-"service d'accès à distance (RAS) n'est pas installé sur cet ordinateur. "
-"Installez-le svp."
+msgid "MS HTML Help functions are unavailable because the MS HTML Help library is not installed on this machine. Please install it."
+msgstr "Les fonctions de l'aide MS HTMLne sont pas disponibles car la bibliothèque MS HTML Help n'est pas présente sur cette machine. Veuillez l'installer."
 
 #: ../src/univ/themes/win32.cpp:4545
 msgid "Ma&ximize"
-msgstr ""
+msgstr "Ma%ximiser"
 
 #: ../src/unix/mimetype.cpp:2477
 #, c-format
@@ -2053,7 +2008,7 @@ msgstr "Fichier mailcap %s, ligne %d : entr
 
 #: ../src/generic/fdrepdlg.cpp:152
 msgid "Match case"
-msgstr ""
+msgstr "Respecter la casse"
 
 #: ../src/common/fs_mem.cpp:144
 #, c-format
@@ -2062,11 +2017,11 @@ msgstr "La m
 
 #: ../src/univ/themes/metal.cpp:174
 msgid "Metal theme"
-msgstr ""
+msgstr "Thème métallique"
 
 #: ../src/univ/themes/win32.cpp:4543
 msgid "Mi&nimize"
-msgstr ""
+msgstr "Mi&nimiser"
 
 #: ../src/unix/mimetype.cpp:2102
 #, c-format
@@ -2076,7 +2031,7 @@ msgstr "Fichier types mime %s, ligne %d : cha
 #: ../src/mgl/app.cpp:173
 #, c-format
 msgid "Mode %ix%i-%i not available."
-msgstr ""
+msgstr "Le mode %ix%i-%i n'est pas accessible."
 
 #: ../src/generic/fontdlgg.cpp:222
 msgid "Modern"
@@ -2094,8 +2049,10 @@ msgstr "Plus ..."
 msgid "Name"
 msgstr "Nom"
 
-#: ../src/generic/dirdlgg.cpp:272 ../src/generic/dirdlgg.cpp:282
-#: ../src/generic/filedlgg.cpp:812 ../src/generic/filedlgg.cpp:821
+#: ../src/generic/dirdlgg.cpp:272
+#: ../src/generic/dirdlgg.cpp:282
+#: ../src/generic/filedlgg.cpp:812
+#: ../src/generic/filedlgg.cpp:821
 msgid "NewName"
 msgstr "NouveauNom"
 
@@ -2103,21 +2060,25 @@ msgstr "NouveauNom"
 msgid "Next page"
 msgstr "Page suivante"
 
-#: ../src/common/dlgcmn.cpp:156 ../src/mac/msgdlg.cpp:78
+#: ../src/common/dlgcmn.cpp:156
+#: ../src/mac/msgdlg.cpp:78
 #: ../src/motif/msgdlg.cpp:182
 msgid "No"
 msgstr "Non"
 
 #: ../src/common/image.cpp:793
 msgid "No Unused Color in image being masked"
-msgstr ""
+msgstr "Aucune couleur n'est libre dans l'image en cours de masquage"
 
-#: ../src/common/resourc2.cpp:814 ../src/common/resourc2.cpp:965
-#: ../src/common/resource.cpp:2471 ../src/common/resource.cpp:2625
+#: ../src/common/resourc2.cpp:814
+#: ../src/common/resourc2.cpp:965
+#: ../src/common/resource.cpp:2471
+#: ../src/common/resource.cpp:2625
 msgid "No XBM facility available!"
 msgstr "Pas de fonctionalités XBM disponibles !"
 
-#: ../src/common/resourc2.cpp:983 ../src/common/resource.cpp:2643
+#: ../src/common/resourc2.cpp:983
+#: ../src/common/resource.cpp:2643
 msgid "No XPM icon facility available!"
 msgstr "Pas de fonctionalités icône XPM disponibles !"
 
@@ -2126,49 +2087,52 @@ msgid "No entries found."
 msgstr "Entrées non trouvées."
 
 #: ../src/common/fontmap.cpp:865
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "No font for displaying text in encoding '%s' found,\n"
 "but an alternative encoding '%s' is available.\n"
-"Do you want to use this encoding (otherwise you will have to choose another "
-"one)?"
+"Do you want to use this encoding (otherwise you will have to choose another one)?"
 msgstr ""
-"L'encodage '%s' est inconnu.\n"
-"Souhaitez-vous choisir une police à utiliser pour cet encodage?\n"
-"(sinon le texte n'apparaitra pas correctement en utilisant cet encodage) ?"
+"Aucune police de caractères n'a été trouvée pour afficher du texte utilisant l'encodage '%s',\n"
+"mais un encodage similaire est disponible. Souhaitez-vous l'utiliser ?\n"
+"(dans le cas contraire, vous devrez choisir par vous-même un encodage de substitution)"
 
 #: ../src/common/fontmap.cpp:870
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "No font for displaying text in encoding '%s' found.\n"
 "Would you like to select a font to be used for this encoding\n"
 "(otherwise the text in this encoding will not be shown correctly)?"
 msgstr ""
-"L'encodage '%s' est inconnu.\n"
+"Aucune police de caractères n'a été trouvée pour afficher du texte utilisant l'encodage '%s'.\n"
 "Souhaitez-vous choisir une police à utiliser pour cet encodage?\n"
-"(sinon le texte n'apparaitra pas correctement en utilisant cet encodage) ?"
+"(sinon le texte utilisant cet encodage n'apparaitra pas correctement)"
 
 #: ../contrib/src/xrc/xmlres.cpp:523
 #, c-format
 msgid "No handler found for XML node '%s', class '%s'!"
-msgstr ""
+msgstr "Pas de fonction trouvée pour gérer le noeud XML '%s' de la classe '%s'!"
 
-#: ../src/common/image.cpp:1046 ../src/common/image.cpp:1089
+#: ../src/common/image.cpp:1046
+#: ../src/common/image.cpp:1089
 msgid "No handler found for image type."
 msgstr "Pas de fonctions spécifiques disponibles pour ce type d'image."
 
-#: ../src/common/image.cpp:1054 ../src/common/image.cpp:1097
+#: ../src/common/image.cpp:1054
+#: ../src/common/image.cpp:1097
 #: ../src/common/image.cpp:1131
 #, c-format
 msgid "No image handler for type %d defined."
 msgstr "Pas de fonctions spécifiques disponibles pour l'image de type : %d."
 
-#: ../src/common/image.cpp:1115 ../src/common/image.cpp:1147
+#: ../src/common/image.cpp:1115
+#: ../src/common/image.cpp:1147
 #, c-format
 msgid "No image handler for type %s defined."
 msgstr "Pas de fonctions spécifiques disponibles pour l'image de type : %s."
 
-#: ../src/html/helpfrm.cpp:650 ../src/html/htmlhelp.cpp:436
+#: ../src/html/helpfrm.cpp:650
+#: ../src/html/htmlhelp.cpp:436
 #: ../src/html/htmlhelp.cpp:441
 msgid "No matching page found yet"
 msgstr "Pas encore trouvé la page correspondante"
@@ -2177,7 +2141,8 @@ msgstr "Pas encore trouv
 msgid "Nordic (ISO-8859-10)"
 msgstr "Nordique (ISO-8859-10)"
 
-#: ../src/generic/fontdlgg.cpp:226 ../src/generic/fontdlgg.cpp:229
+#: ../src/generic/fontdlgg.cpp:226
+#: ../src/generic/fontdlgg.cpp:229
 msgid "Normal"
 msgstr "Normal"
 
@@ -2189,21 +2154,29 @@ msgstr "Police normale :"
 msgid "Note, 8 1/2 x 11 in"
 msgstr "Note, 8 1/2 x 11 pouces"
 
-#: ../src/common/dlgcmn.cpp:162 ../src/generic/dirdlgg.cpp:151
-#: ../src/generic/filedlgg.cpp:1165 ../src/generic/filedlgg.cpp:1176
-#: ../src/generic/fontdlgg.cpp:253 ../src/generic/logg.cpp:739
-#: ../src/generic/prntdlgg.cpp:452 ../src/generic/proplist.cpp:499
-#: ../src/gtk/filedlg.cpp:167 ../src/gtk/fontdlg.cpp:136
+#: ../src/common/dlgcmn.cpp:162
+#: ../src/generic/dirdlgg.cpp:151
+#: ../src/generic/filedlgg.cpp:1165
+#: ../src/generic/filedlgg.cpp:1176
+#: ../src/generic/fontdlgg.cpp:253
+#: ../src/generic/logg.cpp:739
+#: ../src/generic/prntdlgg.cpp:452
+#: ../src/generic/proplist.cpp:499
+#: ../src/gtk/filedlg.cpp:167
+#: ../src/gtk/fontdlg.cpp:136
 #: ../src/html/helpfrm.cpp:972
 msgid "OK"
 msgstr "OK"
 
-#: ../src/html/helpfrm.cpp:528 ../src/html/helpfrm.cpp:1274
+#: ../src/html/helpfrm.cpp:528
+#: ../src/html/helpfrm.cpp:1274
 msgid "Open HTML document"
 msgstr "Ouvrir un document HTML"
 
-#: ../src/generic/dirctrlg.cpp:731 ../src/generic/dirdlgg.cpp:298
-#: ../src/generic/filedlgg.cpp:836 ../src/generic/filedlgg.cpp:960
+#: ../src/generic/dirctrlg.cpp:731
+#: ../src/generic/dirdlgg.cpp:298
+#: ../src/generic/filedlgg.cpp:836
+#: ../src/generic/filedlgg.cpp:960
 msgid "Operation not permitted."
 msgstr "Opération interdite."
 
@@ -2226,11 +2199,13 @@ msgstr "Option '%s' : '%s' ne peut pas 
 msgid "Options"
 msgstr "Options"
 
-#: ../src/generic/prntdlgg.cpp:428 ../src/generic/prntdlgg.cpp:621
+#: ../src/generic/prntdlgg.cpp:428
+#: ../src/generic/prntdlgg.cpp:621
 msgid "Orientation"
 msgstr "Orientation"
 
-#: ../src/common/imagpcx.cpp:455 ../src/common/imagpcx.cpp:478
+#: ../src/common/imagpcx.cpp:455
+#: ../src/common/imagpcx.cpp:478
 msgid "PCX: couldn't allocate memory"
 msgstr "PCX : Impossible d'allouer la mémoire nécessaire."
 
@@ -2246,7 +2221,8 @@ msgstr "PCX : image non valide"
 msgid "PCX: this is not a PCX file."
 msgstr "PCX: ce n'est pas un fichier PCX."
 
-#: ../src/common/imagpcx.cpp:457 ../src/common/imagpcx.cpp:479
+#: ../src/common/imagpcx.cpp:457
+#: ../src/common/imagpcx.cpp:479
 msgid "PCX: unknown error !!!"
 msgstr "PCX : erreur inconnue !!!"
 
@@ -2284,12 +2260,14 @@ msgstr "Param
 msgid "Pages"
 msgstr "Pages"
 
-#: ../src/generic/prntdlgg.cpp:538 ../src/generic/prntdlgg.cpp:609
+#: ../src/generic/prntdlgg.cpp:538
+#: ../src/generic/prntdlgg.cpp:609
 #: ../src/generic/prntdlgg.cpp:794
 msgid "Paper Size"
 msgstr "Taille de la page"
 
-#: ../src/generic/prntdlgg.cpp:418 ../src/generic/prntdlgg.cpp:598
+#: ../src/generic/prntdlgg.cpp:418
+#: ../src/generic/prntdlgg.cpp:598
 #: ../src/generic/prntdlgg.cpp:790
 msgid "Paper size"
 msgstr "Taille de la page"
@@ -2306,7 +2284,8 @@ msgstr "La cr
 msgid "Please choose a valid font."
 msgstr "Veuillez choisir une police valide."
 
-#: ../src/generic/filedlgg.cpp:1372 ../src/gtk/filedlg.cpp:80
+#: ../src/generic/filedlgg.cpp:1372
+#: ../src/gtk/filedlg.cpp:80
 msgid "Please choose an existing file."
 msgstr "Veuillez choisir un fichier existant."
 
@@ -2321,12 +2300,16 @@ msgid ""
 "(at least version 4.70 is required but you have %d.%02d)\n"
 "or this program won't operate correctly."
 msgstr ""
+"Veuillez installer une nouvelle version de comctl32.dll\n"
+"Vous avez actuellement la version %d.%02d. Vous avez besoin au minimum\n"
+"de la version 4.70 pour que ce programme fonctionne correctement."
 
 #: ../src/common/prntbase.cpp:112
 msgid "Please wait while printing\n"
-msgstr ""
+msgstr "Veuillez patienter pendant l'impression\n"
 
-#: ../src/generic/prntdlgg.cpp:425 ../src/generic/prntdlgg.cpp:619
+#: ../src/generic/prntdlgg.cpp:425
+#: ../src/generic/prntdlgg.cpp:619
 msgid "Portrait"
 msgstr "Portrait"
 
@@ -2336,7 +2319,7 @@ msgstr "Fichier postscript"
 
 #: ../src/html/htmlhelp.cpp:509
 msgid "Preparing help window..."
-msgstr ""
+msgstr "Page d'aide en cours de préparation..."
 
 #: ../src/html/helpfrm.cpp:964
 msgid "Preview:"
@@ -2346,7 +2329,8 @@ msgstr "Aper
 msgid "Previous page"
 msgstr "Page précédente"
 
-#: ../src/generic/prntdlgg.cpp:110 ../src/generic/prntdlgg.cpp:124
+#: ../src/generic/prntdlgg.cpp:110
+#: ../src/generic/prntdlgg.cpp:124
 msgid "Print"
 msgstr "Impression"
 
@@ -2354,7 +2338,8 @@ msgstr "Impression"
 msgid "Print Preview"
 msgstr "Aperçu avant impression"
 
-#: ../src/common/prntbase.cpp:782 ../src/common/prntbase.cpp:806
+#: ../src/common/prntbase.cpp:782
+#: ../src/common/prntbase.cpp:806
 msgid "Print Preview Failure"
 msgstr "Erreur à l'exécution de l'aperçu avant impression"
 
@@ -2402,10 +2387,10 @@ msgstr "Options de l'imprimante :"
 msgid "Printer..."
 msgstr "Imprimante ..."
 
-#: ../src/common/prntbase.cpp:109 ../src/common/prntbase.cpp:154
-#, fuzzy
+#: ../src/common/prntbase.cpp:109
+#: ../src/common/prntbase.cpp:154
 msgid "Printing "
-msgstr "Impression"
+msgstr "Impression en cours"
 
 #: ../src/common/prntbase.cpp:126
 msgid "Printing Error"
@@ -2432,7 +2417,8 @@ msgstr "Quarto, 215 x 275 mm"
 msgid "Question"
 msgstr "Question"
 
-#: ../src/common/ffile.cpp:125 ../src/common/ffile.cpp:146
+#: ../src/common/ffile.cpp:125
+#: ../src/common/ffile.cpp:146
 #, c-format
 msgid "Read error on file '%s'"
 msgstr "Erreur de lecture dans le fichier '%s'"
@@ -2440,7 +2426,7 @@ msgstr "Erreur de lecture dans le fichier '%s'"
 #: ../contrib/src/xrc/xmlres.cpp:498
 #, c-format
 msgid "Referenced object node with ref=\"%s\" not found!"
-msgstr ""
+msgstr "Le noeud objet référencé par ref=\"%s\" est introuvable !"
 
 #: ../src/msw/registry.cpp:535
 #, c-format
@@ -2459,8 +2445,7 @@ msgid ""
 "deleting it will leave your system in unusable state:\n"
 "operation aborted."
 msgstr ""
-"La clé de registre '%s' est nécessaire pour un fonctionnement correct du "
-"système,\n"
+"La clé de registre '%s' est nécessaire pour un fonctionnement correct du système,\n"
 "l'effacer mettra votre système dans un état instable:\n"
 "opération abandonnée."
 
@@ -2471,7 +2456,7 @@ msgstr "La valeur '%s' existe d
 
 #: ../src/msw/thread.cpp:246
 msgid "ReleaseMutex()"
-msgstr ""
+msgstr "ReleaseMutex()"
 
 #: ../src/generic/helphtml.cpp:334
 msgid "Relevant entries:"
@@ -2486,17 +2471,16 @@ msgid "Remove current page from bookmarks"
 msgstr "Retirer la page courante de la liste de vos signets"
 
 #: ../src/generic/fdrepdlg.cpp:177
-#, fuzzy
 msgid "Replace &all"
-msgstr "Ecraser le fichier '%s' ?"
+msgstr "Rempl&acer tout"
 
 #: ../src/generic/fdrepdlg.cpp:129
 msgid "Replace with:"
-msgstr ""
+msgstr "Remplacer par:"
 
 #: ../contrib/src/xrc/xmlres.cpp:360
 msgid "Resource files must have same version number!"
-msgstr ""
+msgstr "Les fichiers de ressource doivent avoir le même numéro de version!"
 
 #: ../src/generic/prntdlgg.cpp:644
 msgid "Right margin (mm):"
@@ -2506,8 +2490,10 @@ msgstr "Marge de droite (mm) :"
 msgid "Roman"
 msgstr "Roman"
 
-#: ../src/generic/filedlgg.cpp:1602 ../src/gtk/filedlg.cpp:265
-#: ../src/motif/filedlg.cpp:359 ../src/msw/filedlg.cpp:544
+#: ../src/generic/filedlgg.cpp:1602
+#: ../src/gtk/filedlg.cpp:265
+#: ../src/motif/filedlg.cpp:359
+#: ../src/msw/filedlg.cpp:544
 #, c-format
 msgid "Save %s file"
 msgstr "Enregistrer le fichier %s"
@@ -2517,9 +2503,8 @@ msgid "Save as"
 msgstr "Enregistrer sous"
 
 #: ../src/generic/filedlgg.cpp:1604
-#, fuzzy
 msgid "Save file"
-msgstr "Enregistrer le fichier %s"
+msgstr "Enregistrer le fichier"
 
 #: ../src/generic/logg.cpp:487
 msgid "Save log contents to file"
@@ -2527,45 +2512,40 @@ msgstr "Enregistrement du contenu du journal dans un fichier"
 
 #: ../src/mgl/window.cpp:132
 msgid "Screenshot captured: "
-msgstr ""
+msgstr "Copie d'écran effectuée:"
 
 #: ../src/generic/fontdlgg.cpp:223
 msgid "Script"
 msgstr "Script"
 
-#: ../src/html/helpfrm.cpp:408 ../src/html/helpfrm.cpp:423
+#: ../src/html/helpfrm.cpp:408
+#: ../src/html/helpfrm.cpp:423
 #: ../src/html/htmlhelp.cpp:610
 msgid "Search"
 msgstr "Recherche"
 
 #: ../src/html/helpfrm.cpp:410
-msgid ""
-"Search contents of help book(s) for all occurences of the text you typed "
-"above"
-msgstr ""
-"Recherche dans la table des matières du/des livre(s) d'aide de toutes les "
-"occurences du texte que vous avez tapé ci-dessus"
+msgid "Search contents of help book(s) for all occurences of the text you typed above"
+msgstr "Recherche dans la table des matières du/des livre(s) d'aide de toutes les occurences du texte que vous avez tapé ci-dessus"
 
 #: ../src/generic/fdrepdlg.cpp:158
-#, fuzzy
 msgid "Search direction"
-msgstr "Créer le répertoire"
+msgstr "Direction de la recherche"
 
 #: ../src/generic/fdrepdlg.cpp:117
-#, fuzzy
 msgid "Search for:"
-msgstr "Recherche"
+msgstr "Rechercher:"
 
 #: ../src/html/helpfrm.cpp:789
 msgid "Search in all books"
 msgstr "Recherche dans tous les livres"
 
 #: ../src/html/htmlhelp.cpp:593
-#, fuzzy
 msgid "Search!"
-msgstr "Recherche"
+msgstr "Recherche!"
 
-#: ../src/html/helpfrm.cpp:650 ../src/html/htmlhelp.cpp:383
+#: ../src/html/helpfrm.cpp:650
+#: ../src/html/htmlhelp.cpp:383
 #: ../src/html/htmlhelp.cpp:441
 msgid "Searching..."
 msgstr "Recherche ..."
@@ -2587,7 +2567,8 @@ msgstr "Choisissez un mod
 msgid "Select a document view"
 msgstr "Choisissez une vue du document"
 
-#: ../src/common/docview.cpp:1405 ../src/common/docview.cpp:1456
+#: ../src/common/docview.cpp:1405
+#: ../src/common/docview.cpp:1456
 msgid "Select a file"
 msgstr "Choisissez un fichier"
 
@@ -2606,9 +2587,7 @@ msgstr "Param
 
 #: ../src/msw/dialup.cpp:518
 msgid "Several active dialup connections found, choosing one randomly."
-msgstr ""
-"J'ai trouvé plusieurs connexions par ligne téléphonique, j'en choisis une au "
-"hasard :-)"
+msgstr "J'ai trouvé plusieurs connexions par ligne téléphonique, j'en choisis une au hasard :-)"
 
 #: ../src/html/helpfrm.cpp:364
 msgid "Show all"
@@ -2619,15 +2598,16 @@ msgid "Show all items in index"
 msgstr "Montrer tous les éléments dans l'index"
 
 #: ../src/generic/dirdlgg.cpp:135
-#, fuzzy
 msgid "Show hidden directories"
-msgstr "Montrer les fichiers cachés"
+msgstr "Montrer les dossiers cachés"
 
-#: ../src/generic/filedlgg.cpp:1160 ../src/generic/filedlgg.cpp:1182
+#: ../src/generic/filedlgg.cpp:1160
+#: ../src/generic/filedlgg.cpp:1182
 msgid "Show hidden files"
 msgstr "Montrer les fichiers cachés"
 
-#: ../src/html/helpfrm.cpp:501 ../src/html/htmlhelp.cpp:538
+#: ../src/html/helpfrm.cpp:501
+#: ../src/html/htmlhelp.cpp:538
 msgid "Show/hide navigation panel"
 msgstr "Montrer/cacher le panneau de navigation"
 
@@ -2643,7 +2623,8 @@ msgstr "Italique"
 msgid "Sorry, could not open this file for saving."
 msgstr "Désolé, impossible d'ouvrir ce fichier pour enregistrer."
 
-#: ../src/common/docview.cpp:341 ../src/common/docview.cpp:354
+#: ../src/common/docview.cpp:341
+#: ../src/common/docview.cpp:354
 #: ../src/common/docview.cpp:1424
 msgid "Sorry, could not open this file."
 msgstr "Désolé, impossible d'ouvrir ce fichier."
@@ -2667,13 +2648,14 @@ msgstr "Statut :"
 #: ../contrib/src/xrc/xmlres.cpp:558
 #, c-format
 msgid "Subclass '%s' not found for resource '%s', not subclassing!"
-msgstr ""
+msgstr "La sous-classe '%s' pour la ressource '%s' est introuvable - pas de sous-classage !"
 
 #: ../src/generic/fontdlgg.cpp:224
 msgid "Swiss"
 msgstr "Suisse"
 
-#: ../src/common/imagtiff.cpp:204 ../src/common/imagtiff.cpp:215
+#: ../src/common/imagtiff.cpp:204
+#: ../src/common/imagtiff.cpp:215
 #: ../src/common/imagtiff.cpp:326
 msgid "TIFF: Couldn't allocate memory."
 msgstr "TIFF: Impossible d'allouer la mémoire nécessaire."
@@ -2712,7 +2694,7 @@ msgstr "Tha
 
 #: ../src/common/ftp.cpp:569
 msgid "The FTP server doesn't support passive mode."
-msgstr ""
+msgstr "Le serveur FTP ne supporte pas le mode passif."
 
 #: ../src/common/fontmap.cpp:630
 #, c-format
@@ -2731,28 +2713,23 @@ msgid "The clipboard format '%d' doesn't exist."
 msgstr "Le format de presse-papier '%d' n'existe pas."
 
 #: ../src/generic/dirdlgg.cpp:186
-#, fuzzy, c-format
-msgid ""
-"The directory '%s' does not exist\n"
+#, c-format
+msgid "The directory '%s' does not exist\n"
 "Create it now?"
-msgstr ""
-"\n"
-"n'existe pas\n"
+msgstr "Le dossier '%s' n'existe pas\n"
 "Voulez-vous le créer maintenant ?"
 
 #: ../src/common/docview.cpp:1802
-#, fuzzy, c-format
-msgid ""
-"The file '%s' doesn't exist and couldn't be opened.\n"
+#, c-format
+msgid "The file '%s' doesn't exist and couldn't be opened.\n"
 "It has been removed from the most recently used files list."
-msgstr ""
-"Le fichier '%s' n'existe pas et n'a pas pu être ouvert.\n"
-"Il a aussi été retiré de la liste des fichiers MRU."
+msgstr "Le fichier '%s' n'existe pas et n'a pas pu être ouvert.\n"
+"Il a donc été retiré de la liste des fichiers récemments utilisés."
 
 #: ../src/common/filename.cpp:896
 #, c-format
 msgid "The path '%s' contains too many \"..\"!"
-msgstr ""
+msgstr "Le chemin '%s' contient trop de \"..\"!"
 
 #: ../src/common/cmdline.cpp:845
 #, c-format
@@ -2770,38 +2747,24 @@ msgstr "La valeur pour l'option '%s' doit 
 
 #: ../src/msw/dialup.cpp:406
 #, c-format
-msgid ""
-"The version of remote access service (RAS) installed on this machine is "
-"tooold, please upgrade (the following required function is missing: %s)."
-msgstr ""
-"La version du service d'accès distant (RAS en anglais) installé sur cette "
-"machine est trop ancien. Prière de le mettre à jour (la fonction '%s' est "
-"manquante)."
+msgid "The version of remote access service (RAS) installed on this machine is tooold, please upgrade (the following required function is missing: %s)."
+msgstr "La version du service d'accès distant (RAS en anglais) installé sur cette machine est trop ancien. Prière de le mettre à jour (la fonction '%s' est manquante)."
 
 #: ../src/html/htmprint.cpp:545
-msgid ""
-"There was a problem during page setup: you may need to set a default printer."
-msgstr ""
+msgid "There was a problem during page setup: you may need to set a default printer."
+msgstr "Il y a eu un problème lors du paramétrage de la page: l'installation d'une imprimante par défaut peut être nécessaire."
 
 #: ../src/msw/thread.cpp:1214
-msgid ""
-"Thread module initialization failed: can not store value in thread local "
-"storage"
-msgstr ""
-"Echec de l'initialisation du thread : impossible d'enregistrer une valeur en "
-"local"
+msgid "Thread module initialization failed: can not store value in thread local storage"
+msgstr "Echec de l'initialisation du thread : impossible d'enregistrer une valeur en local"
 
 #: ../src/unix/threadpsx.cpp:1568
 msgid "Thread module initialization failed: failed to create thread key"
-msgstr ""
-"Echec de l'initialisation du thread : échec à la création de la clé du thread"
+msgstr "Echec de l'initialisation du thread : échec à la création de la clé du thread"
 
 #: ../src/msw/thread.cpp:1202
-msgid ""
-"Thread module initialization failed: impossible to allocate index in thread "
-"local storage"
-msgstr ""
-"Echec de l'initialisation du thread : impossible d'allouer un index en local"
+msgid "Thread module initialization failed: impossible to allocate index in thread local storage"
+msgstr "Echec de l'initialisation du thread : impossible d'allouer un index en local"
 
 #: ../src/unix/threadpsx.cpp:1076
 msgid "Thread priority setting is ignored."
@@ -2809,11 +2772,11 @@ msgstr "La priorit
 
 #: ../src/msw/mdi.cpp:189
 msgid "Tile &Horizontally"
-msgstr ""
+msgstr "Répartir &Horizontalement"
 
 #: ../src/msw/mdi.cpp:190
 msgid "Tile &Vertically"
-msgstr ""
+msgstr "Répartir &Verticalement"
 
 #: ../src/generic/filedlgg.cpp:701
 msgid "Time"
@@ -2838,9 +2801,7 @@ msgstr "Marge haut de page (mm) :"
 #: ../src/common/fs_mem.cpp:202
 #, c-format
 msgid "Trying to remove file '%s' from memory VFS, but it is not loaded!"
-msgstr ""
-"Tentative de retirer le fichier '%s' de la mémoire VFS, mais celui-ci n'est "
-"pas chargé !"
+msgstr "Tentative de retirer le fichier '%s' du VFS de la mémoire, mais celui-ci n'est pas chargé !"
 
 #: ../src/common/sckaddr.cpp:126
 msgid "Trying to solve a NULL hostname: giving up"
@@ -2863,16 +2824,26 @@ msgstr "Impossible d'ouvrir le document HTML demand
 msgid "Underline"
 msgstr "Souligner"
 
-#: ../src/common/resourc2.cpp:305 ../src/common/resourc2.cpp:319
-#: ../src/common/resourc2.cpp:335 ../src/common/resourc2.cpp:349
-#: ../src/common/resourc2.cpp:1370 ../src/common/resourc2.cpp:1384
-#: ../src/common/resourc2.cpp:1400 ../src/common/resourc2.cpp:1414
-#: ../src/common/resource.cpp:1824 ../src/common/resource.cpp:1838
-#: ../src/common/resource.cpp:1855 ../src/common/resource.cpp:1869
-#: ../src/common/resource.cpp:1954 ../src/common/resource.cpp:1968
-#: ../src/common/resource.cpp:1984 ../src/common/resource.cpp:1998
-#: ../src/common/resource.cpp:3038 ../src/common/resource.cpp:3052
-#: ../src/common/resource.cpp:3069 ../src/common/resource.cpp:3083
+#: ../src/common/resourc2.cpp:305
+#: ../src/common/resourc2.cpp:319
+#: ../src/common/resourc2.cpp:335
+#: ../src/common/resourc2.cpp:349
+#: ../src/common/resourc2.cpp:1370
+#: ../src/common/resourc2.cpp:1384
+#: ../src/common/resourc2.cpp:1400
+#: ../src/common/resourc2.cpp:1414
+#: ../src/common/resource.cpp:1824
+#: ../src/common/resource.cpp:1838
+#: ../src/common/resource.cpp:1855
+#: ../src/common/resource.cpp:1869
+#: ../src/common/resource.cpp:1954
+#: ../src/common/resource.cpp:1968
+#: ../src/common/resource.cpp:1984
+#: ../src/common/resource.cpp:1998
+#: ../src/common/resource.cpp:3038
+#: ../src/common/resource.cpp:3052
+#: ../src/common/resource.cpp:3069
+#: ../src/common/resource.cpp:3083
 msgid "Unexpected end of file whilst parsing resource."
 msgstr "Fin de fichier inattendue lors de l'analyse des ressources."
 
@@ -2883,11 +2854,11 @@ msgstr "Param
 
 #: ../src/common/fontmap.cpp:141
 msgid "Unicode 7 bit (UTF-7)"
-msgstr ""
+msgstr "Unicode 7 bit (UTF-7)"
 
 #: ../src/common/fontmap.cpp:142
 msgid "Unicode 8 bit (UTF-8)"
-msgstr ""
+msgstr "Unicode 8 bit (UTF-8)"
 
 #: ../src/msw/dde.cpp:1020
 #, c-format
@@ -2909,31 +2880,35 @@ msgstr "Champ inconnu dans le fichier %s, ligne %d: '%s'."
 msgid "Unknown long option '%s'"
 msgstr "Option longue '%s' inconnue"
 
-#: ../src/common/cmdline.cpp:573 ../src/common/cmdline.cpp:594
+#: ../src/common/cmdline.cpp:573
+#: ../src/common/cmdline.cpp:594
 #, c-format
 msgid "Unknown option '%s'"
 msgstr "Option '%s' inconnue"
 
 #: ../contrib/src/xrc/xmlres.cpp:628
 msgid "Unknown style flag "
-msgstr ""
+msgstr "Indicateur de style inconnu"
 
 #: ../src/common/mimecmn.cpp:167
 #, c-format
 msgid "Unmatched '{' in an entry for mime type %s."
 msgstr "Symbole '{' non assorti dans une entrée pour le type mime %s."
 
-#: ../src/common/cmdproc.cpp:238 ../src/common/cmdproc.cpp:254
+#: ../src/common/cmdproc.cpp:238
+#: ../src/common/cmdproc.cpp:254
 #: ../src/common/cmdproc.cpp:281
 msgid "Unnamed command"
 msgstr "Commande sans nom"
 
-#: ../src/common/resourc2.cpp:687 ../src/common/resource.cpp:2343
+#: ../src/common/resourc2.cpp:687
+#: ../src/common/resource.cpp:2343
 #, c-format
 msgid "Unrecognized style %s whilst parsing resource."
 msgstr "Style %s non reconnu pendant l'analyse des ressources."
 
-#: ../src/mac/clipbrd.cpp:58 ../src/msw/clipbrd.cpp:273
+#: ../src/mac/clipbrd.cpp:58
+#: ../src/msw/clipbrd.cpp:273
 #: ../src/msw/clipbrd.cpp:447
 msgid "Unsupported clipboard format."
 msgstr "Format de presse-papier non supporté."
@@ -2941,11 +2916,11 @@ msgstr "Format de presse-papier non support
 #: ../src/common/appcmn.cpp:362
 #, c-format
 msgid "Unsupported theme '%s'."
-msgstr ""
+msgstr "Thème '%s' non supporté."
 
 #: ../src/generic/fdrepdlg.cpp:157
 msgid "Up"
-msgstr ""
+msgstr "Haut"
 
 #: ../src/common/cmdline.cpp:901
 #, c-format
@@ -2972,7 +2947,8 @@ msgstr "Vues"
 msgid "Waiting for subprocess termination failed"
 msgstr "Echec lors de l'attente de fin de sous-processus"
 
-#: ../src/common/docview.cpp:437 ../src/common/resource.cpp:124
+#: ../src/common/docview.cpp:437
+#: ../src/common/resource.cpp:124
 msgid "Warning"
 msgstr "Alarme"
 
@@ -2982,24 +2958,19 @@ msgstr "Alarme :"
 
 #: ../src/html/htmlpars.cpp:357
 msgid "Warning: attempt to remove HTML tag handler from empty stack."
-msgstr ""
-"Alarme : tentative de retrait d'un pointeur d'étiquette HTML de la pile "
-"alors que celle-ci est vide !"
+msgstr "Alarme : tentative de retrait d'un pointeur d'étiquette HTML de la pile alors que celle-ci est vide !"
 
 #: ../src/common/fontmap.cpp:112
-#, fuzzy
 msgid "Western European (ISO-8859-1)"
-msgstr "Europe de l'Ouest (ISO-8859-1/Latin 1)"
+msgstr "Europe de l'Ouest (ISO-8859-1)"
 
 #: ../src/common/fontmap.cpp:126
-#, fuzzy
 msgid "Western European with Euro (ISO-8859-15)"
-msgstr "Europe de l'Ouest nouveau (ISO-8859-15/Latin 0)"
+msgstr "Europe de l'Ouest avec l'Euro (ISO-8859-15)"
 
 #: ../src/generic/fdrepdlg.cpp:149
-#, fuzzy
 msgid "Whole word"
-msgstr "Mots complets seulement"
+msgstr "Mots complets"
 
 #: ../src/html/helpfrm.cpp:407
 msgid "Whole words only"
@@ -3007,7 +2978,7 @@ msgstr "Mots complets seulement"
 
 #: ../src/univ/themes/win32.cpp:1168
 msgid "Win32 theme"
-msgstr ""
+msgstr "Thème Win32"
 
 #: ../src/msw/utils.cpp:979
 msgid "Win32s on Windows 3.1"
@@ -3036,12 +3007,11 @@ msgstr "Windows H
 
 #: ../src/common/fontmap.cpp:129
 msgid "Windows Chinese Simplified (CP 936)"
-msgstr ""
+msgstr "Windows Chinois simplifié (CP 936)"
 
 #: ../src/common/fontmap.cpp:131
-#, fuzzy
 msgid "Windows Chinese Traditional (CP 950)"
-msgstr "Windows Latin 1 (CP 1252 )"
+msgstr "Windows Chinois traditionnel (CP 950)"
 
 #: ../src/common/fontmap.cpp:133
 msgid "Windows Cyrillic (CP 1251)"
@@ -3056,14 +3026,12 @@ msgid "Windows Hebrew (CP 1255)"
 msgstr "Windows Hébreu (CP 1255)"
 
 #: ../src/common/fontmap.cpp:128
-#, fuzzy
 msgid "Windows Japanese (CP 932)"
-msgstr "Windows Grec (CP 1253)"
+msgstr "Windows Japonais (CP 932)"
 
 #: ../src/common/fontmap.cpp:130
-#, fuzzy
 msgid "Windows Korean (CP 949)"
-msgstr "Windows Grec (CP 1253)"
+msgstr "Windows Coréen (CP 949)"
 
 #: ../src/common/fontmap.cpp:136
 msgid "Windows Turkish (CP 1254)"
@@ -3085,37 +3053,41 @@ msgstr "Erreur d'
 #: ../contrib/src/xrc/xml.cpp:530
 #, c-format
 msgid "XML parsing error: '%s' at line %d"
-msgstr ""
+msgstr "erreur d'analyse XML: '%s' à la ligne %d"
 
 #: ../src/common/xpmdecod.cpp:759
 msgid "XPM: Malformed pixel data!"
-msgstr ""
+msgstr "XPM: données de pixels incorrectes !"
 
-#: ../src/common/xpmdecod.cpp:709 ../src/common/xpmdecod.cpp:718
+#: ../src/common/xpmdecod.cpp:709
+#: ../src/common/xpmdecod.cpp:718
 #, c-format
 msgid "XPM: malformed colour definition '%s'!"
-msgstr ""
+msgstr "XPM: définition de couleur '%s' incorrecte !"
 
 #: ../contrib/src/xrc/xmlres.cpp:436
-#, fuzzy, c-format
+#, c-format
 msgid "XRC resource '%s' (class '%s') not found!"
-msgstr "La spécification pour la ressource icône %s n'a pas été trouvée."
+msgstr "La ressource XRC '%s' (classe '%s') est introuvable!"
 
-#: ../contrib/src/xrc/xmlres.cpp:787 ../contrib/src/xrc/xmlres.cpp:798
+#: ../contrib/src/xrc/xmlres.cpp:787
+#: ../contrib/src/xrc/xmlres.cpp:798
 #, c-format
 msgid "XRC resource: Cannot create bitmap from '%s'."
-msgstr ""
+msgstr "Ressource XRC : impossible de créer une image bitmap à partir de '%s'."
 
-#: ../contrib/src/xrc/xh_dlg.cpp:52 ../contrib/src/xrc/xh_frame.cpp:57
+#: ../contrib/src/xrc/xh_dlg.cpp:52
+#: ../contrib/src/xrc/xh_frame.cpp:57
 msgid "XRC resource: Cannot create dialog without instance."
-msgstr ""
+msgstr "ressource XRC: impossible de créer une boîte de dialogue sans un exemplaire instancié"
 
 #: ../contrib/src/xrc/xmlres.cpp:747
 #, c-format
 msgid "XRC resource: Incorrect colour specification '%s' for property '%s'."
-msgstr ""
+msgstr "Ressource XRC : la couleur '%s' spécifiée pour la propriété '%s' est incorrecte."
 
-#: ../src/common/dlgcmn.cpp:151 ../src/mac/msgdlg.cpp:77
+#: ../src/common/dlgcmn.cpp:151
+#: ../src/mac/msgdlg.cpp:77
 #: ../src/motif/msgdlg.cpp:182
 msgid "Yes"
 msgstr "Oui"
@@ -3124,9 +3096,10 @@ msgstr "Oui"
 msgid "You cannot add a new directory to this section."
 msgstr "Vous ne pouvez pas ajouter un nouveau répertoire à cette section."
 
-#: ../src/common/fs_zip.cpp:86 ../src/common/fs_zip.cpp:123
+#: ../src/common/fs_zip.cpp:86
+#: ../src/common/fs_zip.cpp:123
 msgid "ZIP handler currently supports only local files!"
-msgstr ""
+msgstr "La fonction de gestion ZIP ne supporte que les fichiers locaux pour l'instant!"
 
 #: ../src/common/docview.cpp:1951
 msgid "[EMPTY]"
@@ -3134,19 +3107,16 @@ msgstr "[VIDE]"
 
 #: ../src/msw/dde.cpp:987
 msgid "a DDEML application has created a prolonged race condition."
-msgstr ""
-"une application DDEML a créé une situation de rivalité prolongée\n"
+msgstr "une application DDEML a créé une situation de rivalité prolongée\n"
 "(je n'ai bientôt plus de mémoire ...)"
 
 #: ../src/msw/dde.cpp:975
 msgid ""
-"a DDEML function was called without first calling the DdeInitialize "
-"function,\n"
+"a DDEML function was called without first calling the DdeInitialize function,\n"
 "or an invalid instance identifier\n"
 "was passed to a DDEML function."
 msgstr ""
-"une fonction DDEML a été appelée sans appel préalable à la fonction "
-"DdeInitialize,\n"
+"une fonction DDEML a été appelée sans appel préalable à la fonction DdeInitialize,\n"
 "ou un identifiant invalide a \n"
 "été fourni à la fonction DDEML."
 
@@ -3187,9 +3157,7 @@ msgid ""
 "a server-side transaction was attempted on a conversation\n"
 "that was terminated by the client, or the server\n"
 "terminated before completing a transaction."
-msgstr ""
-"une transaction a été tentée du côté serveur lors d'une conversation déjà "
-"terminée par le client, \n"
+msgstr "une transaction a été tentée du côté serveur lors d'une conversation déjà terminée par le client, \n"
 "ou le serveur a quitté avant d'avoir terminé une transaction."
 
 #: ../src/msw/dde.cpp:996
@@ -3209,8 +3177,7 @@ msgid ""
 msgstr ""
 "une application initialisée en tant que APPCLASS_MONITOR \n"
 "a tenté d'effectuer une transaction DDE,\n"
-"ou une application initialisée en tant que APPCMD_CLIENTONLY a tenté "
-"d'effectuer des transactions serveur."
+"ou une application initialisée en tant que APPCMD_CLIENTONLY a tenté d'effectuer des transactions serveur."
 
 #: ../src/msw/dde.cpp:1002
 msgid "an internal call to the PostMessage function has failed. "
@@ -3237,15 +3204,13 @@ msgstr "tentative de modifier la touche non configurable '%s' ignor
 
 #: ../src/common/ftp.cpp:369
 msgid "binary"
-msgstr ""
+msgstr "binaire"
 
 #: ../src/common/fontcmn.cpp:518
-#, fuzzy
 msgid "bold"
 msgstr "Gras"
 
 #: ../src/common/fontcmn.cpp:442
-#, fuzzy
 msgid "bold "
 msgstr "Gras"
 
@@ -3277,39 +3242,33 @@ msgstr "impossible d'effacer le fichier de configuration utilisateur '%s'"
 #: ../src/common/file.cpp:454
 #, c-format
 msgid "can't determine if the end of file is reached on descriptor %d"
-msgstr ""
-"impossible de savoir si la fin du fichier a été atteinte dans le descripteur "
-"%d"
+msgstr "impossible de savoir si la fin du fichier a été atteinte dans le descripteur %d"
 
 #: ../src/common/file.cpp:420
 #, c-format
 msgid "can't find length of file on file descriptor %d"
-msgstr ""
-"impossible de trouver la taille du fichier dans le descripteur de fichier %d"
+msgstr "impossible de trouver la taille du fichier dans le descripteur de fichier %d"
 
 #: ../src/msw/utils.cpp:369
 msgid "can't find user's HOME, using current directory."
-msgstr ""
-"impossible de trouver le répertoire par défaut (HOME) de l'utilisateur - "
-"j'utilise le répertoire courant."
+msgstr "impossible de trouver le répertoire par défaut (HOME) de l'utilisateur - j'utilise le répertoire courant."
 
 #: ../src/common/file.cpp:334
 #, c-format
 msgid "can't flush file descriptor %d"
-msgstr ""
-"impossible de forcer l'écriture sur disque du descripteur de fichier %d"
+msgstr "impossible de forcer l'écriture sur disque du descripteur de fichier %d"
 
 #: ../src/common/file.cpp:388
 #, c-format
 msgid "can't get seek position on file descriptor %d"
-msgstr ""
-"impossible de trouver la position courante sur le descripteur de fichier %d"
+msgstr "impossible de trouver la position courante sur le descripteur de fichier %d"
 
 #: ../src/common/fontmap.cpp:766
 msgid "can't load any font, aborting"
 msgstr "impossible de charger une police de caractères - j'abandonne"
 
-#: ../src/common/ffile.cpp:77 ../src/common/file.cpp:257
+#: ../src/common/ffile.cpp:77
+#: ../src/common/file.cpp:257
 #, c-format
 msgid "can't open file '%s'"
 msgstr "impossible d'ouvrir le fichier '%s'"
@@ -3349,7 +3308,7 @@ msgid "can't seek on file descriptor %d"
 msgstr "recherche impossible sur le descripteur de fichier %d"
 
 #: ../src/common/textfile.cpp:196
-#, fuzzy, c-format
+#, c-format
 msgid "can't write buffer '%s' to disk."
 msgstr "impossible d'écrire le fichier '%s' sur le disque."
 
@@ -3376,9 +3335,8 @@ msgid "date"
 msgstr "date"
 
 #: ../src/common/fontmap.cpp:413
-#, fuzzy
 msgid "default"
-msgstr "alt"
+msgstr "par défaut"
 
 #: ../src/common/datetime.cpp:3237
 msgid "eighteenth"
@@ -3427,15 +3385,12 @@ msgstr "fichier %s, ligne %d: symbole '=' est attendu."
 #: ../src/common/fileconf.cpp:667
 #, c-format
 msgid "file '%s', line %d: key '%s' was first found at line %d."
-msgstr ""
-"fichier %s, ligne %d: première occurence du caractère %s à la ligne %d."
+msgstr "fichier %s, ligne %d: première occurence du caractère %s à la ligne %d."
 
 #: ../src/common/fileconf.cpp:657
 #, c-format
 msgid "file '%s', line %d: value for immutable key '%s' ignored."
-msgstr ""
-"fichier '%s', ligne %d: la valeur pour la touche non configurable '%s' est "
-"ignorée."
+msgstr "fichier '%s', ligne %d: la valeur pour la touche non configurable '%s' est ignorée."
 
 #: ../src/common/fileconf.cpp:580
 #, c-format
@@ -3456,7 +3411,7 @@ msgstr "quatri
 
 #: ../src/common/appcmn.cpp:301
 msgid "generate verbose log messages"
-msgstr ""
+msgstr "Créer des messages de compte-rendus verbeux"
 
 #: ../src/common/timercmn.cpp:282
 msgid "gmtime() failed"
@@ -3474,8 +3429,8 @@ msgstr "eof() a renvoy
 msgid "invalid message box return value"
 msgstr "la fenêtre de message a renvoyé une valeur non valide"
 
-#: ../src/common/fontcmn.cpp:458 ../src/common/fontcmn.cpp:522
-#, fuzzy
+#: ../src/common/fontcmn.cpp:458
+#: ../src/common/fontcmn.cpp:522
 msgid "italic"
 msgstr "Italique"
 
@@ -3484,12 +3439,10 @@ msgid "large"
 msgstr "grand"
 
 #: ../src/common/fontcmn.cpp:514
-#, fuzzy
 msgid "light"
 msgstr "Léger"
 
 #: ../src/common/fontcmn.cpp:438
-#, fuzzy
 msgid "light "
 msgstr "Léger"
 
@@ -3527,7 +3480,8 @@ msgstr "neuvi
 msgid "no DDE error."
 msgstr "erreur - pas de DDE."
 
-#: ../src/html/helpdata.cpp:561 ../src/html/htmlhelp.cpp:201
+#: ../src/html/helpdata.cpp:561
+#: ../src/html/htmlhelp.cpp:201
 msgid "noname"
 msgstr "sansnom"
 
@@ -3541,7 +3495,7 @@ msgstr "num"
 
 #: ../src/common/filename.cpp:162
 msgid "reading"
-msgstr ""
+msgstr "lecture"
 
 #: ../src/msw/dde.cpp:1005
 msgid "reentrancy problem."
@@ -3565,7 +3519,7 @@ msgstr "shift"
 
 #: ../src/common/appcmn.cpp:291
 msgid "show this help message"
-msgstr ""
+msgstr "Montrer ce message d'aide"
 
 #: ../src/common/datetime.cpp:3235
 msgid "sixteenth"
@@ -3581,11 +3535,11 @@ msgstr "petit"
 
 #: ../src/common/appcmn.cpp:326
 msgid "specify display mode to use (e.g. 640x480-16)"
-msgstr ""
+msgstr "Veuillez spécifier le mode vidéo à utiliser (par ex. 640x480-16)"
 
 #: ../src/common/appcmn.cpp:312
 msgid "specify the theme to use"
-msgstr ""
+msgstr "Désigner le thème à utiliser"
 
 #: ../src/common/cmdline.cpp:1032
 msgid "str"
@@ -3624,14 +3578,12 @@ msgid "twentieth"
 msgstr "vingtième"
 
 #: ../src/common/fontcmn.cpp:510
-#, fuzzy
 msgid "underlined"
-msgstr "Souligner"
+msgstr "Souligné"
 
 #: ../src/common/fontcmn.cpp:425
-#, fuzzy
 msgid "underlined "
-msgstr "Souligner"
+msgstr "Souligné"
 
 #: ../src/common/fileconf.cpp:1684
 #, c-format
@@ -3643,9 +3595,8 @@ msgid "unknown"
 msgstr "inconnu"
 
 #: ../src/common/regex.cpp:144
-#, fuzzy
 msgid "unknown error"
-msgstr "GIF : erreur inconnue !!!"
+msgstr "erreur inconnue"
 
 #: ../src/msw/dialup.cpp:445
 #, c-format
@@ -3684,19 +3635,18 @@ msgid "very small"
 msgstr "très petit"
 
 #: ../src/common/filename.cpp:162
-#, fuzzy
 msgid "writing"
-msgstr "Impression"
+msgstr "Écriture en cours"
 
 #: ../src/common/dynlib.cpp:336
 #, c-format
 msgid "wxDllLoader failed to GetSymbol '%s'"
-msgstr ""
+msgstr "wxDllLoader a échoué en effectuant un GetSymbol de '%s'"
 
 #: ../src/common/dynload.cpp:278
 #, c-format
 msgid "wxDynamicLibrary failed to GetSymbol '%s'"
-msgstr ""
+msgstr "wxDynamicLibrary a échoué en effectuant un GetSymbol de '%s'"
 
 #: ../src/common/timercmn.cpp:327
 msgid "wxGetTimeOfDay failed."
@@ -3704,9 +3654,10 @@ msgstr "wxGetTimeOfDay a 
 
 #: ../src/html/search.cpp:49
 msgid "wxSearchEngine::LookFor must be called before scanning!"
-msgstr ""
+msgstr "wxSearchEngine::LookFor doit être invoqué avant de lancer un scannage!"
 
-#: ../src/common/socket.cpp:394 ../src/common/socket.cpp:448
+#: ../src/common/socket.cpp:394
+#: ../src/common/socket.cpp:448
 msgid "wxSocket: invalid signature in ReadMsg."
 msgstr "wxSocket: signature non valide dans ReadMsg."
 
@@ -3717,213 +3668,13 @@ msgstr "wxSocket: 
 #: ../src/motif/app.cpp:590
 #, c-format
 msgid "wxWindows could not open display for '%s': exiting."
-msgstr ""
-"wxWindows n'a pas pu ouvrir de zone d'affichage (display) pour %s : abandon."
+msgstr "wxWindows n'a pas pu ouvrir de zone d'affichage (display) pour %s : abandon."
 
 #: ../src/x11/app.cpp:265
-#, fuzzy
 msgid "wxWindows could not open display. Exiting."
-msgstr ""
-"wxWindows n'a pas pu ouvrir de zone d'affichage (display) pour %s : abandon."
+msgstr "wxWindows n'a pas pu ouvrir de zone d'affichage (display) : abandon."
 
 #: ../src/common/datetime.cpp:3065
 msgid "yesterday"
 msgstr "hier"
 
-#, fuzzy
-#~ msgid "All files (*.*)|*.*"
-#~ msgstr "Tous les fichiers (*)|*"
-
-#~ msgid "Can not create mutex"
-#~ msgstr "Impossible de créer le mutex"
-
-#~ msgid "Can't create the inter-process read pipe"
-#~ msgstr "Impossible de créer le tube de lecture entre processus"
-
-#~ msgid "Can't create the inter-process write pipe"
-#~ msgstr "Impossible de créer le tube d'écriture entre processus"
-
-#~ msgid "Couldn't acquire a mutex lock"
-#~ msgstr "Impossible d'obtenir un verrouillage de mutex"
-
-#~ msgid "Couldn't release a mutex"
-#~ msgstr "Impossible de détacher un mutex"
-
-#~ msgid "Font"
-#~ msgstr "Police"
-
-#~ msgid "PostScript"
-#~ msgstr "Postscript"
-
-#~ msgid "PostScript:"
-#~ msgstr "Postscript :"
-
-#~ msgid "Preview Only"
-#~ msgstr "Aperçu Seulement"
-
-#~ msgid "Printer Command: "
-#~ msgstr "Commande Imprimante :"
-
-#~ msgid "Printer Options: "
-#~ msgstr "Options Imprimante :"
-
-#~ msgid "Printer Settings"
-#~ msgstr "Paramètres de l'Imprimante"
-
-#~ msgid "Send to Printer"
-#~ msgstr "Envoyer vers l'imprimante"
-
-#, fuzzy
-#~ msgid "SetPixelFormat failed."
-#~ msgstr "La création du tube a échoué"
-
-#~ msgid "X Scaling"
-#~ msgstr "Echelle X"
-
-#~ msgid "X Translation"
-#~ msgstr "Translation X"
-
-#~ msgid "Y Scaling"
-#~ msgstr "Echelle Y"
-
-#~ msgid "Y Translation"
-#~ msgstr "Translation Y"
-
-#, fuzzy
-#~ msgid "unknown line terminator"
-#~ msgstr "origine de la recherche inconnue"
-
-#, fuzzy
-#~ msgid "Fatal Error"
-#~ msgstr "Erreur fatale"
-
-#, fuzzy
-#~ msgid "Fatal error: %s\n"
-#~ msgstr "Erreur fatale : "
-
-#~ msgid "Back"
-#~ msgstr "Retour"
-
-#~ msgid "Can not create event object."
-#~ msgstr "Impossible de créer l'objet événement."
-
-#~ msgid "Can't find the serialization object '%s' for the object '%s'."
-#~ msgstr ""
-#~ "Impossible de trouver l'objet d'enregistrement '%s' pour l'objet '%s'."
-
-#~ msgid "Can't load wxSerial dynamic library."
-#~ msgstr "Impossible de charger la bibliothèque dynamique wxSerial."
-
-#~ msgid "Connection to wxHelp timed out in %d seconds"
-#~ msgstr "Connexion à wxHelp annulée dans %d secondes"
-
-#~ msgid "Etcetera"
-#~ msgstr "Et cetera"
-
-#, fuzzy
-#~ msgid "ICO: Error calculating size of DIB ."
-#~ msgstr "TIFF: Erreur à la lecture de l'image."
-
-#, fuzzy
-#~ msgid "ICO: Error calculating size of Mask DIB ."
-#~ msgstr "TIFF: Erreur à la lecture de l'image."
-
-#, fuzzy
-#~ msgid "ICO: Error calculating size of XOR DIB ."
-#~ msgstr "TIFF: Erreur à la lecture de l'image."
-
-#, fuzzy
-#~ msgid "ICO: Error writing ICONDIR header."
-#~ msgstr "TIFF: Erreur à l'écriture de l'image."
-
-#, fuzzy
-#~ msgid "ICO: Error writing ICONDIRENTRY header."
-#~ msgstr "TIFF: Erreur à l'écriture de l'image."
-
-#, fuzzy
-#~ msgid "ICO: Error writing Mask DIB ."
-#~ msgstr "TIFF: Erreur à la lecture de l'image."
-
-#, fuzzy
-#~ msgid "ICO: Error writing XOR DIB ."
-#~ msgstr "TIFF: Erreur à la lecture de l'image."
-
-#~ msgid "Incorrect version of HTML help book"
-#~ msgstr "Version incorrecte du livre d'aide HTML"
-
-#, fuzzy
-#~ msgid "Loading DIB : Couldn't allocate memory."
-#~ msgstr "BMP : Impossible d'allouer la mémoire nécessaire."
-
-#~ msgid "Mounted Devices"
-#~ msgstr "Périphériques Montés"
-
-#~ msgid "My Harddisk"
-#~ msgstr "Mon Disque Dur"
-
-#~ msgid "My Home"
-#~ msgstr "Mon Répertoire Initial (Home)"
-
-#~ msgid "New..."
-#~ msgstr "Nouveau ..."
-
-#~ msgid "Please wait..."
-#~ msgstr "Veuillez attendre ..."
-
-#~ msgid "Temporary"
-#~ msgstr "Temporaire"
-
-#~ msgid "The Computer"
-#~ msgstr "L'ordinateur"
-
-#~ msgid "The directory "
-#~ msgstr "Le répertoire"
-
-#~ msgid "User"
-#~ msgstr "Utilisateur"
-
-#~ msgid "User Local"
-#~ msgstr "Répertoire /usr/local"
-
-#~ msgid "Variables"
-#~ msgstr "Variables"
-
-#~ msgid "Window"
-#~ msgstr "Fenêtre"
-
-#, fuzzy
-#~ msgid "centered"
-#~ msgstr "Et cetera"
-
-#, fuzzy
-#~ msgid "Unknown digit value"
-#~ msgstr "Codage inconnu (%d)"
-
-#~ msgid "Replace file '%s'?"
-#~ msgstr "Ecraser le fichier '%s' ?"
-
-#~ msgid "wxWindows: error finding temporary file name.\n"
-#~ msgstr "wxWindows : impossible de trouver le nom du fichier temporaire.\n"
-
-#~ msgid ""
-#~ "Can't create window of class %s!\n"
-#~ "Possible Windows 3.x compatibility problem?"
-#~ msgstr ""
-#~ "Impossible de créer la fenêtre de classe %s !\n"
-#~ "Peut-être un problème de compatibilité avec Windows 3.x ?"
-
-#~ msgid ""
-#~ "Can't find dialog template '%s'!\n"
-#~ "Check resource include path for finding wx.rc."
-#~ msgstr ""
-#~ "Impossible de trouver le modèle pour le dialogue bidon !\n"
-#~ "Vérifier le chemin d'inclusion de la ressource pour trouver wx.rc."
-
-#~ msgid "Couldn't launch DDE server '%s'."
-#~ msgstr "Impossible de lancer le serveur DDE '%s'."
-
-#~ msgid "Cyrillic (Latin 5)"
-#~ msgstr "Cyrillique (Latin 5)"
-
-#~ msgid "No XPM facility available!"
-#~ msgstr "Pas de fonctionalités XPM disponibles !"
diff --git a/locale/hu.po b/locale/hu.po
index 9731e1fa67..c4671c8132 100644
--- a/locale/hu.po
+++ b/locale/hu.po
@@ -2,12 +2,12 @@ msgid ""
 msgstr ""
 "Project-Id-Version: wxWindows\n"
 "POT-Creation-Date: 2002-08-21 16:39+0200\n"
-"PO-Revision-Date: 2001-11-03 23:25Central Europe Standard Time\n"
-"Last-Translator: Vegh Janos <janos_vegh@usa.net>\n"
+"PO-Revision-Date: 2002-11-08 16:49+0100\n"
+"Last-Translator: Vegh Janos <J.Vegh@atomki.hu>\n"
 "Language-Team: wxWindows translators <wx-translators@wxwindows.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-2\n"
-"Content-Transfer-Encoding: 8-bit\n"
+"Content-Transfer-Encoding: 8bit\n"
 
 #: ../src/common/log.cpp:304
 #, c-format
@@ -20,7 +20,7 @@ msgstr " - "
 
 #: ../src/html/htmprint.cpp:502
 msgid " Preview"
-msgstr " Nyomtatási kép"
+msgstr " Nyomtatási elõkép"
 
 #: ../src/generic/filedlgg.cpp:476
 msgid " bytes "
@@ -46,8 +46,10 @@ msgstr "#15 Borit
 msgid "#9 Envelope, 3 7/8 x 8 7/8 in"
 msgstr "#10 Boriték, 3 7/8 x 8 7/8 hüvelyk"
 
-#: ../src/common/resourc2.cpp:265 ../src/common/resourc2.cpp:1326
-#: ../src/common/resource.cpp:1784 ../src/common/resource.cpp:1914
+#: ../src/common/resourc2.cpp:265
+#: ../src/common/resourc2.cpp:1326
+#: ../src/common/resource.cpp:1784
+#: ../src/common/resource.cpp:1914
 #: ../src/common/resource.cpp:2994
 #, c-format
 msgid "#define %s must be an integer."
@@ -56,15 +58,17 @@ msgstr "#define %s-nek eg
 #: ../src/common/prntbase.cpp:376
 #, c-format
 msgid "%d"
-msgstr ""
+msgstr "%d"
 
 #: ../src/common/prntbase.cpp:374
 #, c-format
 msgid "%d...%d"
-msgstr ""
+msgstr "%d...%d"
 
-#: ../src/html/helpfrm.cpp:772 ../src/html/helpfrm.cpp:773
-#: ../src/html/helpfrm.cpp:1376 ../src/html/helpfrm.cpp:1406
+#: ../src/html/helpfrm.cpp:772
+#: ../src/html/helpfrm.cpp:773
+#: ../src/html/helpfrm.cpp:1376
+#: ../src/html/helpfrm.cpp:1406
 #, c-format
 msgid "%i of %i"
 msgstr "%i. (össz %i)"
@@ -89,18 +93,22 @@ msgstr "%s Inform
 msgid "%s Warning"
 msgstr "%s Figyelmeztetés"
 
-#: ../src/common/resourc2.cpp:709 ../src/common/resource.cpp:2366
+#: ../src/common/resourc2.cpp:709
+#: ../src/common/resource.cpp:2366
 #, c-format
 msgid "%s not a bitmap resource specification."
 msgstr "%s nem bitmap erõforrás specifikáció."
 
-#: ../src/common/resourc2.cpp:860 ../src/common/resource.cpp:2520
+#: ../src/common/resourc2.cpp:860
+#: ../src/common/resource.cpp:2520
 #, c-format
 msgid "%s not an icon resource specification."
 msgstr "%s nem ikon erõforrás specifikáció."
 
-#: ../src/common/resourc2.cpp:357 ../src/common/resourc2.cpp:1422
-#: ../src/common/resource.cpp:1877 ../src/common/resource.cpp:2006
+#: ../src/common/resourc2.cpp:357
+#: ../src/common/resourc2.cpp:1422
+#: ../src/common/resource.cpp:1877
+#: ../src/common/resource.cpp:2006
 #: ../src/common/resource.cpp:3091
 #, c-format
 msgid "%s: ill-formed resource file syntax."
@@ -108,18 +116,19 @@ msgstr "%s: nyelvtanilag hib
 
 #: ../src/msw/mdi.cpp:192
 msgid "&Arrange Icons"
-msgstr ""
+msgstr "Ikonok &elrendezése"
 
-#: ../src/generic/fdrepdlg.cpp:170 ../src/generic/wizard.cpp:260
-#, fuzzy
+#: ../src/generic/fdrepdlg.cpp:170
+#: ../src/generic/wizard.cpp:260
 msgid "&Cancel"
-msgstr "Mégsem"
+msgstr "&Mégsem"
 
 #: ../src/msw/mdi.cpp:188
 msgid "&Cascade"
-msgstr ""
+msgstr "&Zuhatag"
 
-#: ../src/generic/logg.cpp:491 ../src/generic/tipdlg.cpp:171
+#: ../src/generic/logg.cpp:491
+#: ../src/generic/tipdlg.cpp:171
 msgid "&Close"
 msgstr "&Bezár"
 
@@ -128,18 +137,16 @@ msgid "&Details"
 msgstr "&Részletek"
 
 #: ../src/generic/fdrepdlg.cpp:168
-#, fuzzy
 msgid "&Find"
-msgstr "Keres"
+msgstr "&Keres"
 
 #: ../src/generic/wizard.cpp:396
 msgid "&Finish"
 msgstr "Be&fejez"
 
 #: ../src/generic/wizard.cpp:249
-#, fuzzy
 msgid "&Help"
-msgstr "Súgó"
+msgstr "&Súgó"
 
 #: ../src/generic/logg.cpp:492
 msgid "&Log"
@@ -147,14 +154,14 @@ msgstr "&Napl
 
 #: ../src/univ/themes/win32.cpp:4539
 msgid "&Move"
-msgstr ""
+msgstr "&Áthelyezés"
 
 #: ../src/msw/mdi.cpp:193
-#, fuzzy
 msgid "&Next"
-msgstr "&Következõ >"
+msgstr "&Következõ "
 
-#: ../src/generic/wizard.cpp:257 ../src/generic/wizard.cpp:398
+#: ../src/generic/wizard.cpp:257
+#: ../src/generic/wizard.cpp:398
 msgid "&Next >"
 msgstr "&Következõ >"
 
@@ -163,39 +170,39 @@ msgid "&Next Tip"
 msgstr "&Következõ ötlet"
 
 #: ../src/msw/mdi.cpp:194
-#, fuzzy
 msgid "&Previous"
-msgstr "Elõzõ oldal"
+msgstr "&Elõzõ oldal"
 
-#: ../src/common/cmdproc.cpp:261 ../src/common/cmdproc.cpp:272
+#: ../src/common/cmdproc.cpp:261
+#: ../src/common/cmdproc.cpp:272
 msgid "&Redo"
 msgstr "&Újra"
 
-#: ../src/common/cmdproc.cpp:255 ../src/common/cmdproc.cpp:282
+#: ../src/common/cmdproc.cpp:255
+#: ../src/common/cmdproc.cpp:282
 msgid "&Redo "
 msgstr "&Újra"
 
 #: ../src/generic/fdrepdlg.cpp:174
 msgid "&Replace"
-msgstr ""
+msgstr "&Helyettesítés"
 
 #: ../src/univ/themes/win32.cpp:4538
-#, fuzzy
 msgid "&Restore"
-msgstr "&Újra"
+msgstr "&Helyreállítás"
 
-#: ../src/generic/logg.cpp:487 ../src/generic/logg.cpp:818
+#: ../src/generic/logg.cpp:487
+#: ../src/generic/logg.cpp:818
 msgid "&Save..."
 msgstr "&Mentés..."
 
 #: ../src/generic/tipdlg.cpp:173
 msgid "&Show tips at startup"
-msgstr "Mutass &ötleteket inditáskor"
+msgstr "&Mutass ötleteket inditáskor"
 
 #: ../src/univ/themes/win32.cpp:4541
-#, fuzzy
 msgid "&Size"
-msgstr "Méret"
+msgstr "&Méret"
 
 #: ../src/common/cmdproc.cpp:267
 msgid "&Undo"
@@ -205,16 +212,20 @@ msgstr "&Visszavon
 msgid "&Undo "
 msgstr "&Visszavonás"
 
-#: ../src/msw/mdi.cpp:1328 ../src/msw/mdi.cpp:1335 ../src/msw/mdi.cpp:1360
+#: ../src/msw/mdi.cpp:1328
+#: ../src/msw/mdi.cpp:1335
+#: ../src/msw/mdi.cpp:1360
 msgid "&Window"
 msgstr "&Ablak"
 
-#: ../src/common/config.cpp:394 ../src/msw/regconf.cpp:264
+#: ../src/common/config.cpp:394
+#: ../src/msw/regconf.cpp:264
 #, c-format
 msgid "'%s' has extra '..', ignored."
 msgstr "'%s' után felesleges '..'-t találtam, elhanyagoltam."
 
-#: ../src/common/valtext.cpp:147 ../src/common/valtext.cpp:177
+#: ../src/common/valtext.cpp:147
+#: ../src/common/valtext.cpp:177
 #: ../src/common/valtext.cpp:183
 #, c-format
 msgid "'%s' is invalid"
@@ -231,7 +242,7 @@ msgid "'%s' is not a valid message catalog."
 msgstr "'%s' érvénytelen üzenet katalógus."
 
 #: ../src/common/textbuf.cpp:245
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' is probably a binary buffer."
 msgstr "'%s' valószínûleg bináris fájl."
 
@@ -255,30 +266,34 @@ msgstr "'%s' csak bet
 msgid "'%s' should only contain alphabetic or numeric characters."
 msgstr "'%s' csak betûket vagy számokat tartalmazhat."
 
-#: ../src/html/helpfrm.cpp:709 ../src/html/htmlhelp.cpp:638
+#: ../src/html/helpfrm.cpp:709
+#: ../src/html/htmlhelp.cpp:638
 msgid "(Help)"
 msgstr "(Súgó)"
 
-#: ../src/html/helpfrm.cpp:310 ../src/html/helpfrm.cpp:840
+#: ../src/html/helpfrm.cpp:310
+#: ../src/html/helpfrm.cpp:840
 #: ../src/html/helpfrm.cpp:1433
 msgid "(bookmarks)"
 msgstr "(könyvjelzõk)"
 
-#: ../src/common/resourc2.cpp:297 ../src/common/resourc2.cpp:1362
-#: ../src/common/resource.cpp:1816 ../src/common/resource.cpp:1946
+#: ../src/common/resourc2.cpp:297
+#: ../src/common/resourc2.cpp:1362
+#: ../src/common/resource.cpp:1816
+#: ../src/common/resource.cpp:1946
 #: ../src/common/resource.cpp:3030
-msgid ""
-", expected static, #include or #define\n"
+msgid ", expected static, #include or #define\n"
 "whilst parsing resource."
-msgstr ""
-", static, #include vagy #define\n"
+msgstr ", static, #include vagy #define\n"
 " kulcszót vártam az erõforrás értelmezésekor."
 
-#: ../src/generic/dirctrlg.cpp:698 ../src/generic/filedlgg.cpp:929
+#: ../src/generic/dirctrlg.cpp:698
+#: ../src/generic/filedlgg.cpp:929
 msgid "."
 msgstr "."
 
-#: ../src/generic/dirctrlg.cpp:699 ../src/generic/filedlgg.cpp:930
+#: ../src/generic/dirctrlg.cpp:699
+#: ../src/generic/filedlgg.cpp:930
 msgid ".."
 msgstr ".."
 
@@ -327,30 +342,8 @@ msgid "<LINK> "
 msgstr "<LINK> "
 
 #: ../src/html/helpfrm.cpp:992
-msgid ""
-"<html><body>Normal face<br>(and <u>underlined</u>. <i>Italic face.</i> "
-"<b>Bold face.</b> <b><i>Bold italic face.</i></b><br><font size=-2>font size "
-"-2</font><br><font size=-1>font size -1</font><br><font size=+0>font size "
-"+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
-"+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
-"+4</font><br><p><tt>Fixed size face.<br> <b>bold</b> <i>italic</i> "
-"<b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size "
-"-2</font><br><font size=-1>font size -1</font><br><font size=+0>font size "
-"+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
-"+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
-"+4</font></tt></body></html>"
-msgstr ""
-"<html><body>Normál<br>(and <u>Aláhúzott</u>. <i>Dõlt.</i> <b>Félkövér.</b> "
-"<b><i>Félkövér dõlt.</i></b><br><font size=-2>betû méret-2</font><br><font "
-"size=-1>betû méret -1</font><br><font size=+0>betû méret +0</font><br><font "
-"size=+1>betû méret +1</font><br><font size=+2>betû méret +2</font><br><font "
-"size=+3>betû méret +3</font><br><font size=+4>betû méret "
-"+4</font><br><p><tt>Rögzített méretû típus.<br> <b>félkövér</b> <i>dõlt</i> "
-"<b><i>félkövér dõlt <u>aláhúzott</u></i></b><br><font size=-2>betû méret "
-"-2</font><br><font size=-1>betû méret -1</font><br><font size=+0>betû méret "
-"+0</font><br><font size=+1>betû méret +1</font><br><font size=+2>betû méret "
-"+2</font><br><font size=+3>betû méret +3</font><br><font size=+4>betû méret "
-"+4</font></tt></body></html>"
+msgid "<html><body>Normal face<br>(and <u>underlined</u>. <i>Italic face.</i> <b>Bold face.</b> <b><i>Bold italic face.</i></b><br><font size=-2>font size -2</font><br><font size=-1>font size -1</font><br><font size=+0>font size +0</font><br><font size=+1>font size +1</font><br><font size=+2>font size +2</font><br><font size=+3>font size +3</font><br><font size=+4>font size +4</font><br><p><tt>Fixed size face.<br> <b>bold</b> <i>italic</i> <b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size -2</font><br><font size=-1>font size -1</font><br><font size=+0>font size +0</font><br><font size=+1>font size +1</font><br><font size=+2>font size +2</font><br><font size=+3>font size +3</font><br><font size=+4>font size +4</font></tt></body></html>"
+msgstr "<html><body>Normál<br>(and <u>Aláhúzott</u>. <i>Dõlt.</i> <b>Félkövér.</b> <b><i>Félkövér dõlt.</i></b><br><font size=-2>betû méret-2</font><br><font size=-1>betû méret -1</font><br><font size=+0>betû méret +0</font><br><font size=+1>betû méret +1</font><br><font size=+2>betû méret +2</font><br><font size=+3>betû méret +3</font><br><font size=+4>betû méret +4</font><br><p><tt>Rögzített méretû típus.<br> <b>félkövér</b> <i>dõlt</i> <b><i>félkövér dõlt <u>aláhúzott</u></i></b><br><font size=-2>betû méret -2</font><br><font size=-1>betû méret -1</font><br><font size=+0>betû méret +0</font><br><font size=+1>betû méret +1</font><br><font size=+2>betû méret +2</font><br><font size=+3>betû méret +3</font><br><font size=+4>betû méret +4</font></tt></body></html>"
 
 #: ../src/common/paper.cpp:113
 msgid "A3 sheet, 297 x 420 mm"
@@ -374,7 +367,7 @@ msgstr "ABCDEFGabcdefg12345"
 
 #: ../src/common/ftp.cpp:369
 msgid "ASCII"
-msgstr ""
+msgstr "ASCII"
 
 #: ../src/html/helpfrm.cpp:323
 msgid "Add current page to bookmarks"
@@ -387,7 +380,7 @@ msgstr "Add hozz
 #: ../src/html/helpctrl.cpp:95
 #, c-format
 msgid "Adding book %s"
-msgstr "Add hozzá a %s könyvet"
+msgstr "Add hozzá a könyv %eket"
 
 #: ../src/generic/prntdlgg.cpp:160
 msgid "All"
@@ -404,8 +397,7 @@ msgstr "M
 #: ../src/generic/logg.cpp:1109
 #, c-format
 msgid "Append log to file '%s' (choosing [No] will overwrite it)?"
-msgstr ""
-"A naplót  a(z) '%s' file végéhez írjam? (Ha [Nem]-et választ, felülírom!)"
+msgstr "A naplót  a(z) '%s' file végéhez írjam? (Ha [Nem]-et választ, felülírom!)"
 
 #: ../src/common/fontmap.cpp:117
 msgid "Arabic (ISO-8859-6)"
@@ -431,7 +423,8 @@ msgstr "B5 lap, 182 x 257 millim
 msgid "B6 Envelope, 176 x 125 mm"
 msgstr "B6 Boriték, 176 x 125 mm"
 
-#: ../src/common/imagbmp.cpp:467 ../src/common/imagbmp.cpp:483
+#: ../src/common/imagbmp.cpp:467
+#: ../src/common/imagbmp.cpp:483
 msgid "BMP: Couldn't allocate memory."
 msgstr "BMP: Nem sikerült memóriát foglalni."
 
@@ -440,27 +433,24 @@ msgid "BMP: Couldn't save invalid image."
 msgstr "BMP: Nem tudtam elmenteni a hibás képet."
 
 #: ../src/common/imagbmp.cpp:290
-#, fuzzy
 msgid "BMP: Couldn't write RGB color map."
-msgstr "BMP: Nem tudtam kiírni az adatokat."
+msgstr "BMP: Nem tudtam kiírni az RGB színtérképet."
 
 #: ../src/common/imagbmp.cpp:422
 msgid "BMP: Couldn't write data."
 msgstr "BMP: Nem tudtam kiírni az adatokat."
 
 #: ../src/common/imagbmp.cpp:195
-#, fuzzy
 msgid "BMP: Couldn't write the file (Bitmap) header."
-msgstr "BMP: Nem tudtam kiírni a fájl fejet."
+msgstr "BMP: Nem tudtam kiírni a fájl bittérkép fejet."
 
 #: ../src/common/imagbmp.cpp:216
-#, fuzzy
 msgid "BMP: Couldn't write the file (BitmapInfo) header."
-msgstr "BMP: Nem tudtam kiírni a fájl fejet."
+msgstr "BMP: Nem tudtam kiírni a fájl bittérkép info fejet."
 
 #: ../src/common/imagbmp.cpp:120
 msgid "BMP: wxImage doesn't have own wxPalette."
-msgstr ""
+msgstr "BMP: a wxImage-nek nincs saját wxPalette-je."
 
 #: ../src/common/dlgcmn.cpp:170
 msgid "Backward"
@@ -474,10 +464,11 @@ msgstr "Balti (ISO-8859-13)"
 msgid "Baltic (old) (ISO-8859-4)"
 msgstr "Balti (régi) (ISO-8859-4)"
 
-#: ../src/common/resourc2.cpp:840 ../src/common/resource.cpp:2500
+#: ../src/common/resourc2.cpp:840
+#: ../src/common/resource.cpp:2500
 #, c-format
 msgid "Bitmap resource specification %s not found."
-msgstr "Nem találom a(z) %s bittérkép leírást."
+msgstr "Nem találom a(z) %s bittérkép meghatározást."
 
 #: ../src/generic/fontdlgg.cpp:231
 msgid "Bold"
@@ -516,16 +507,18 @@ msgid "C65 Envelope, 114 x 229 mm"
 msgstr "C65 Boríték, 114 x 229 mm"
 
 #: ../src/common/filefn.cpp:1358
-#, fuzzy, c-format
+#, c-format
 msgid "Can not enumerate files '%s'"
-msgstr "Nem tudom megszámolni a(z) '%s' könyvtárban a fájlokat"
+msgstr "Nem tudom megszámolni a(z) '%s'  fájlokat"
 
-#: ../src/msw/dir.cpp:296 ../src/unix/dir.cpp:236
+#: ../src/msw/dir.cpp:296
+#: ../src/unix/dir.cpp:236
 #, c-format
 msgid "Can not enumerate files in directory '%s'"
 msgstr "Nem tudom megszámolni a(z) '%s' könyvtárban a fájlokat"
 
-#: ../src/mac/thread.cpp:472 ../src/msw/thread.cpp:685
+#: ../src/mac/thread.cpp:472
+#: ../src/msw/thread.cpp:685
 #, c-format
 msgid "Can not resume thread %x"
 msgstr "Nem tudom folytatni a(z) %x szálat"
@@ -534,7 +527,8 @@ msgstr "Nem tudom folytatni a(z) %x sz
 msgid "Can not start thread: error writing TLS."
 msgstr "Nem tudom elindítani a szálat: hiba a TLS írásakor."
 
-#: ../src/mac/thread.cpp:448 ../src/msw/thread.cpp:670
+#: ../src/mac/thread.cpp:448
+#: ../src/msw/thread.cpp:670
 #, c-format
 msgid "Can not suspend thread %x"
 msgstr "Nem tudom felfüggeszteni a(z) %x szálat"
@@ -550,8 +544,7 @@ msgstr "Nem lehet &Visszavonni"
 #: ../src/common/image.cpp:1289
 #, c-format
 msgid "Can't check image format of file '%s': file does not exist."
-msgstr ""
-"Nem tudom megvizsgálni a(z) '%s' kép fájl formátumát: nincs ilyen fájl."
+msgstr "Nem tudom megvizsgálni a(z) '%s' kép fájl formátumát: nincs ilyen fájl."
 
 #: ../src/msw/registry.cpp:421
 #, c-format
@@ -565,32 +558,31 @@ msgstr "Nem tudom a nem t
 
 #: ../src/msw/toplevel.cpp:295
 msgid "Can't create dialog using memory template"
-msgstr ""
+msgstr "Nem tudom létrehozni a dialógust a memória minta alapján"
 
 #: ../src/os2/toplevel.cpp:331
-#, fuzzy, c-format
+#, c-format
 msgid "Can't create dialog using template '%ul'"
-msgstr "nem tudom létrehozni a(z) '%s' fájl-t"
+msgstr "Nem tudom létrehozni a párbeszéd ablakot a(z) '%s' minta alapján."
 
 #: ../src/msw/listctrl.cpp:319
 msgid "Can't create list control window, check that comctl32.dll is installed."
-msgstr ""
-"Nem tudom létrehozni a lista vezérlõ ablakot, ellenõrizze, hogy a "
-"comctl32.dll installálva van-e."
+msgstr "Nem tudom létrehozni a lista vezérlõ ablakot, ellenõrizze, hogy a comctl32.dll installálva van-e."
 
 #: ../src/msw/registry.cpp:402
 #, c-format
 msgid "Can't create registry key '%s'"
 msgstr "Nem tudom létrehozni a '%s' registry kulcsot"
 
-#: ../src/mac/thread.cpp:427 ../src/msw/thread.cpp:652
+#: ../src/mac/thread.cpp:427
+#: ../src/msw/thread.cpp:652
 msgid "Can't create thread"
 msgstr "Nem tudom létrehozni a szálat"
 
 #: ../src/msw/window.cpp:2989
-#, fuzzy, c-format
+#, c-format
 msgid "Can't create window of class %s"
-msgstr "nem tudom létrehozni a(z) '%s' fájl-t"
+msgstr "Nem tudom létrehozni a(z) %s osztályhoz tartozó fájlt"
 
 #: ../src/msw/registry.cpp:661
 #, c-format
@@ -632,7 +624,8 @@ msgstr "Nem tal
 msgid "Can't get info about registry key '%s'"
 msgstr "Nincs információm a '%s' registry kulcsról"
 
-#: ../src/common/image.cpp:913 ../src/common/image.cpp:933
+#: ../src/common/image.cpp:913
+#: ../src/common/image.cpp:933
 #, c-format
 msgid "Can't load image from file '%s': file does not exist."
 msgstr "Nem tudom betölteni a képet a(z) '%s' fájlból: nincs ilyen fájl."
@@ -652,17 +645,19 @@ msgstr "Nem tudom megnyitni a(z) '%s' registry kulcsot"
 msgid "Can't read value of '%s'"
 msgstr "Nem tudom olvasni a(z) '%s' értékét"
 
-#: ../src/msw/registry.cpp:777 ../src/msw/registry.cpp:816
+#: ../src/msw/registry.cpp:777
+#: ../src/msw/registry.cpp:816
 #, c-format
 msgid "Can't read value of key '%s'"
 msgstr "Nem tudom olvasni a(z) '%s' kulcs értékét"
 
 #: ../src/common/image.cpp:955
-#, fuzzy, c-format
+#, c-format
 msgid "Can't save image to file '%s': unknown extension."
-msgstr "Nem tudom betölteni a képet a(z) '%s' fájlból: nincs ilyen fájl."
+msgstr "Nem tudom elmenteni a képet a(z) '%s' fájlba: nincs ilyen kiterjesztés."
 
-#: ../src/generic/logg.cpp:551 ../src/generic/logg.cpp:985
+#: ../src/generic/logg.cpp:551
+#: ../src/generic/logg.cpp:985
 msgid "Can't save log contents to file."
 msgstr "Nem tudom a napló tartalmát fájlba menteni."
 
@@ -670,29 +665,37 @@ msgstr "Nem tudom a napl
 msgid "Can't set thread priority"
 msgstr "Nem tudom a szál prioritását beállítani"
 
-#: ../src/msw/registry.cpp:802 ../src/msw/registry.cpp:928
+#: ../src/msw/registry.cpp:802
+#: ../src/msw/registry.cpp:928
 #, c-format
 msgid "Can't set value of '%s'"
 msgstr "Nem tudom a(z) '%s' értéket beállítani"
 
-#: ../src/common/dlgcmn.cpp:183 ../src/generic/dirdlgg.cpp:153
-#: ../src/generic/filedlgg.cpp:1166 ../src/generic/filedlgg.cpp:1185
-#: ../src/generic/fontdlgg.cpp:254 ../src/generic/prntdlgg.cpp:453
-#: ../src/generic/progdlgg.cpp:211 ../src/generic/proplist.cpp:511
-#: ../src/gtk/filedlg.cpp:173 ../src/gtk/fontdlg.cpp:144
-#: ../src/html/helpfrm.cpp:974 ../src/html/htmlhelp.cpp:434
+#: ../src/common/dlgcmn.cpp:183
+#: ../src/generic/dirdlgg.cpp:153
+#: ../src/generic/filedlgg.cpp:1166
+#: ../src/generic/filedlgg.cpp:1185
+#: ../src/generic/fontdlgg.cpp:254
+#: ../src/generic/prntdlgg.cpp:453
+#: ../src/generic/progdlgg.cpp:211
+#: ../src/generic/proplist.cpp:511
+#: ../src/gtk/filedlg.cpp:173
+#: ../src/gtk/fontdlg.cpp:144
+#: ../src/html/helpfrm.cpp:974
+#: ../src/html/htmlhelp.cpp:434
 #: ../src/motif/msgdlg.cpp:182
 msgid "Cancel"
 msgstr "Mégsem"
 
-#: ../contrib/src/xrc/xmlres.cpp:893 ../contrib/src/xrc/xmlres.cpp:934
+#: ../contrib/src/xrc/xmlres.cpp:893
+#: ../contrib/src/xrc/xmlres.cpp:934
 msgid "Cannot convert dialog units: dialog unknown."
-msgstr ""
+msgstr "Nem tudom átalakítani a dialógus egységeit; ismeretlen dialógus."
 
 #: ../src/common/strconv.cpp:929
 #, c-format
 msgid "Cannot convert from encoding '%s'!"
-msgstr ""
+msgstr "Nem tudok átalakítani a '%s' kódolásról!"
 
 #: ../src/msw/dialup.cpp:497
 #, c-format
@@ -700,14 +703,14 @@ msgid "Cannot find active dialup connection: %s"
 msgstr "Nem találom a(z) %s aktív telefonos kapcsolatot"
 
 #: ../contrib/src/xrc/xmlres.cpp:224
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot find container for unknown control '%s'."
-msgstr "Nem találom a(z) %s aktív telefonos kapcsolatot"
+msgstr "Nem találok tároló elemet a(z) '%s' ismeretlen irányitóelemhez."
 
 #: ../contrib/src/xrc/xmlres.cpp:948
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot find font node '%s'."
-msgstr "Nem tudom megnyitni a(z) '%s' URL-t"
+msgstr "Nem találom a(z) '%s' betûkészlet csomüpontot"
 
 #: ../src/msw/dialup.cpp:811
 msgid "Cannot find the location of address book file"
@@ -735,24 +738,22 @@ msgid "Cannot initialize OLE"
 msgstr "Nem tudom inicializálni az OLEt"
 
 #: ../src/mgl/app.cpp:414
-#, fuzzy
 msgid "Cannot initialize SciTech MGL!"
-msgstr "Nem tudom inicializálni az OLEt"
+msgstr "Nem tudom elindítani az SciTech MGLt!"
 
 #: ../src/mgl/window.cpp:546
-#, fuzzy
 msgid "Cannot initialize display."
-msgstr "Nem tudom inicializálni az OLEt"
+msgstr "Nem tudom elindítani a megjelenítést."
 
 #: ../src/msw/volume.cpp:627
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot load icon from '%s'."
-msgstr "Nem tudom megnyitni a(z) '%s' URL-t"
+msgstr "Nem tudom betölteni az ikont '%s'-bõl."
 
 #: ../contrib/src/xrc/xmlres.cpp:337
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot load resources from file '%s'."
-msgstr "Nem találom az erõforrás %s beágyazott fájlját."
+msgstr "Nem tudom betölteni az erõforrást a(z) '%s' fájlból."
 
 #: ../src/html/htmlfilt.cpp:171
 #, c-format
@@ -775,9 +776,9 @@ msgid "Cannot open contents file: %s"
 msgstr "Nem tudom megnyitni a(z) %s tartalom fájlt"
 
 #: ../contrib/src/xrc/xmlres.cpp:311
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot open file '%s'."
-msgstr "Nem tudom megnyitni a(z) '%s' fájlt"
+msgstr "Nem tudom megnyitni a(z) '%s' fájlt."
 
 #: ../src/generic/dcpsg.cpp:1765
 msgid "Cannot open file for PostScript printing!"
@@ -789,23 +790,24 @@ msgid "Cannot open index file: %s"
 msgstr "Nem tudom a(z) %s index fájlt megnyitni"
 
 #: ../contrib/src/xrc/xmlres.cpp:881
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot parse coordinates from '%s'."
-msgstr "Nem tudom megnyitni a(z) %s tartalom fájlt"
+msgstr "Nem tudom értelmezni a koordinátákat '%s'-bõl."
 
 #: ../contrib/src/xrc/xmlres.cpp:922
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot parse dimension from '%s'."
-msgstr "Nem tudom megszámolni a(z) '%s' könyvtárban a fájlokat"
+msgstr "Nem tudom értelmezni a dimenziót '%s'-bõl."
 
 #: ../src/html/helpfrm.cpp:1265
 msgid "Cannot print empty page."
 msgstr "Nem tudok üres oldalt nyomtatni."
 
-#: ../src/msw/volume.cpp:188 ../src/msw/volume.cpp:519
-#, fuzzy, c-format
+#: ../src/msw/volume.cpp:188
+#: ../src/msw/volume.cpp:519
+#, c-format
 msgid "Cannot read typename from '%s'!"
-msgstr "Nem tudom olvasni a(z) '%s' értékét"
+msgstr "Nem tudom elolvasni '%s' típusának nevét."
 
 #: ../src/unix/threadpsx.cpp:1049
 msgid "Cannot retrieve thread scheduling policy."
@@ -824,13 +826,12 @@ msgid "Celtic (ISO-8859-14)"
 msgstr "Kelta (ISO-8859-14)"
 
 #: ../src/common/fontmap.cpp:113
-#, fuzzy
 msgid "Central European (ISO-8859-2)"
-msgstr "Közép-európai (ISO-8859-2/Latin 2)"
+msgstr "Közép-európai (ISO-8859-2)"
 
 #: ../src/msw/dialup.cpp:746
 msgid "Choose ISP to dial"
-msgstr "Válassza ki a tárcsázandó ISPt"
+msgstr "Válassza ki a tárcsázandó szolgáltatót (ISPt)!"
 
 #: ../src/gtk/fontdlg.cpp:122
 msgid "Choose font"
@@ -840,14 +841,15 @@ msgstr "V
 msgid "Clear the log contents"
 msgstr "A napló fájl törlése"
 
-#: ../src/common/prntbase.cpp:429 ../src/generic/progdlgg.cpp:360
+#: ../src/common/prntbase.cpp:429
+#: ../src/generic/progdlgg.cpp:360
 #: ../src/generic/proplist.cpp:506
 msgid "Close"
 msgstr "Bezárás"
 
 #: ../src/univ/themes/win32.cpp:4547
 msgid "Close\tAlt-F4"
-msgstr ""
+msgstr "Bezárás\tAlt-F4"
 
 #: ../src/generic/logg.cpp:491
 msgid "Close this window"
@@ -862,32 +864,35 @@ msgstr "Sz
 msgid "Config entry name cannot start with '%c'."
 msgstr "Konfigurációs bejegyzés nem kezdõdhet '%c'-vel."
 
-#: ../src/generic/filedlgg.cpp:1357 ../src/gtk/filedlg.cpp:72
+#: ../src/generic/filedlgg.cpp:1357
+#: ../src/gtk/filedlg.cpp:72
 msgid "Confirm"
 msgstr "Megerõsítés"
 
 #: ../src/msw/mimetype.cpp:686
 msgid "Confirm registry update"
-msgstr ""
+msgstr "Registry frissítés megerõsítése"
 
 #: ../src/html/htmlwin.cpp:262
 msgid "Connecting..."
 msgstr "Kapcsolódás..."
 
-#: ../src/html/helpfrm.cpp:346 ../src/html/htmlhelp.cpp:565
+#: ../src/html/helpfrm.cpp:346
+#: ../src/html/htmlhelp.cpp:565
 msgid "Contents"
 msgstr "Tartalom"
 
 #: ../src/common/strconv.cpp:596
 #, c-format
-msgid "Convertion to charset '%s' doesn't work."
-msgstr ""
+msgid "Conversion to charset '%s' doesn't work."
+msgstr "A  '%s' jelkészletté alakítás nem mûködik."
 
 #: ../src/generic/prntdlgg.cpp:193
 msgid "Copies:"
 msgstr "Másolat(ok):"
 
-#: ../src/common/resourc2.cpp:287 ../src/common/resource.cpp:1806
+#: ../src/common/resourc2.cpp:287
+#: ../src/common/resource.cpp:1806
 #: ../src/common/resource.cpp:1936
 #, c-format
 msgid "Could not find resource include file %s."
@@ -904,29 +909,24 @@ msgstr "Nem tudom bet
 
 #: ../src/common/resource.cpp:802
 #, c-format
-msgid ""
-"Could not resolve control class or id '%s'. Use (non-zero) integer instead\n"
+msgid "Could not resolve control class or id '%s'. Use (non-zero) integer instead\n"
 " or provide #define (see manual for caveats)"
-msgstr ""
-"Nem tudom feloldani a(z) '%s' vezérlõ osztályt vagy azonosítót. Használjon "
-"(nem-nulla) egészet helyette\n"
-"vagy adja meg #define után (az okokról lásd a kézikönyvet)"
+msgstr "Nem tudom feloldani a(z) '%s' vezérlõ osztályt vagy azonosítót. Használjon (nem-nulla) egészet helyette\n"
+"vagy adja meg #define után (a fenntartásokról lásd a kézikönyvet)"
 
 #: ../src/common/resource.cpp:1251
 #, c-format
-msgid ""
-"Could not resolve menu id '%s'. Use (non-zero) integer instead\n"
+msgid "Could not resolve menu id '%s'. Use (non-zero) integer instead\n"
 "or provide #define (see manual for caveats)"
-msgstr ""
-"Nem tudom feloldani a(z) '%s' menü azonosítót. Használjon (nem-nulla) "
-"egészet helyette\n"
-"vagy adja meg #define után (az okokról lásd a kézikönyvet)"
+msgstr "Nem tudom feloldani a(z) '%s' menü azonosítót. Használjon (nem-nulla) egészet helyette\n"
+"vagy adja meg #define után (a fenntartásokról lásd a kézikönyvet)"
 
 #: ../src/common/prntbase.cpp:806
 msgid "Could not start document preview."
 msgstr "Nem tudom a dokument megtekintését kezdeményezni."
 
-#: ../src/generic/printps.cpp:197 ../src/msw/printwin.cpp:252
+#: ../src/generic/printps.cpp:197
+#: ../src/msw/printwin.cpp:252
 msgid "Could not start printing."
 msgstr "Nem tudom elindítani a nyomtatást."
 
@@ -934,8 +934,10 @@ msgstr "Nem tudom elind
 msgid "Could not transfer data to window"
 msgstr "Nem tudtam adatot átvinni az ablakba"
 
-#: ../src/msw/dragimag.cpp:148 ../src/msw/dragimag.cpp:184
-#: ../src/msw/imaglist.cpp:152 ../src/msw/imaglist.cpp:174
+#: ../src/msw/dragimag.cpp:148
+#: ../src/msw/dragimag.cpp:184
+#: ../src/msw/imaglist.cpp:152
+#: ../src/msw/imaglist.cpp:174
 #: ../src/msw/imaglist.cpp:187
 msgid "Couldn't add an image to the image list."
 msgstr "Nem tudok egy képet a képek listájához hozzáadni."
@@ -944,24 +946,25 @@ msgstr "Nem tudok egy k
 msgid "Couldn't create a timer"
 msgstr "Nem tudtam idõzítõt létrehozni"
 
-#: ../src/mgl/cursor.cpp:135 ../src/mgl/cursor.cpp:166
-#, fuzzy
+#: ../src/mgl/cursor.cpp:135
+#: ../src/mgl/cursor.cpp:166
 msgid "Couldn't create cursor."
-msgstr "Nem tudtam idõzítõt létrehozni"
+msgstr "Nem tudtam létrehozni a képernyõ pozició kijelzõt."
 
-#: ../src/common/dynlib.cpp:347 ../src/common/dynload.cpp:295
+#: ../src/common/dynlib.cpp:347
+#: ../src/common/dynload.cpp:295
 #, c-format
 msgid "Couldn't find symbol '%s' in a dynamic library"
 msgstr "Nem találom a(z) '%s' szimbólumot a dinamikus könyvtárban"
 
-#: ../src/mac/thread.cpp:502 ../src/msw/thread.cpp:711
+#: ../src/mac/thread.cpp:502
+#: ../src/msw/thread.cpp:711
 msgid "Couldn't get the current thread pointer"
 msgstr "Nem kaptam meg a mutatót a jelenlegi szálhoz"
 
 #: ../src/common/imagpng.cpp:298
 msgid "Couldn't load a PNG image - file is corrupted or not enough memory."
-msgstr ""
-"Nem tudtam betölteni a PNG képet - hibás a fájl vagy nincs elég memória."
+msgstr "Nem tudtam betölteni a PNG képet - hibás a fájl vagy nincs elég memória."
 
 #: ../src/msw/ole/dataobj.cpp:143
 #, c-format
@@ -973,13 +976,14 @@ msgstr "Nem tudtam regisztr
 msgid "Couldn't retrieve information about list control item %d."
 msgstr "Nem kaptam információt a lista vezérlõ %d elemérõl."
 
-#: ../src/common/imagpng.cpp:334 ../src/common/imagpng.cpp:345
+#: ../src/common/imagpng.cpp:334
+#: ../src/common/imagpng.cpp:345
 #: ../src/common/imagpng.cpp:353
-#, fuzzy
 msgid "Couldn't save PNG image."
-msgstr "JPEG: Nem tudtam elmenteni a képet."
+msgstr "Nem tudtam elmenteni a PNG képet."
 
-#: ../src/mac/thread.cpp:749 ../src/msw/thread.cpp:1091
+#: ../src/mac/thread.cpp:749
+#: ../src/msw/thread.cpp:1091
 msgid "Couldn't terminate thread"
 msgstr "Nem tudtam befejezni a szálat"
 
@@ -987,7 +991,8 @@ msgstr "Nem tudtam befejezni a sz
 msgid "Create directory"
 msgstr "Hozzon létre könyvtárat"
 
-#: ../src/generic/dirdlgg.cpp:103 ../src/generic/filedlgg.cpp:1119
+#: ../src/generic/dirdlgg.cpp:103
+#: ../src/generic/filedlgg.cpp:1119
 msgid "Create new directory"
 msgstr "Hozzon létre egy új könyvtárat"
 
@@ -996,9 +1001,8 @@ msgid "Current directory:"
 msgstr "A jelenlegi könyvtár:"
 
 #: ../src/common/fontmap.cpp:116
-#, fuzzy
 msgid "Cyrillic (ISO-8859-5)"
-msgstr "Kelta (ISO-8859-14)"
+msgstr "Ciril (ISO-8859-5)"
 
 #: ../src/common/paper.cpp:106
 msgid "D sheet, 22 x 34 in"
@@ -1009,34 +1013,28 @@ msgid "DDE poke request failed"
 msgstr "DDE adatbeírás nem sikerült"
 
 #: ../src/common/imagbmp.cpp:618
-#, fuzzy
 msgid "DIB Header: Cannot deal with 4bit encoded yet."
-msgstr "BMP:  4bit kódolással még nem tudok dolgozni."
+msgstr "DIB fej:  4bit kódolással még nem tudok dolgozni."
 
 #: ../src/common/imagbmp.cpp:836
-#, fuzzy
 msgid "DIB Header: Encoding doesn't match bitdepth."
-msgstr "BMP: A kódolás nem felel meg a bitmélységnek."
+msgstr "DIB fej: A kódolás nem felel meg a bitmélységnek."
 
 #: ../src/common/imagbmp.cpp:798
-#, fuzzy
 msgid "DIB Header: Image height > 32767 pixels for file."
-msgstr "BMP: A képmagasság a fájl-ban  > 32767 pixel."
+msgstr "DIB fej: A képmagasság a fájl-ban  > 32767 pixel."
 
 #: ../src/common/imagbmp.cpp:792
-#, fuzzy
 msgid "DIB Header: Image width > 32767 pixels for file."
-msgstr "BMP: A képszélesség a fájl-ban  > 32767 pixel."
+msgstr "DIB fej: A képszélesség a fájl-ban  > 32767 pixel."
 
 #: ../src/common/imagbmp.cpp:812
-#, fuzzy
 msgid "DIB Header: Unknown bitdepth in file."
-msgstr "BMP: Ismeretlen bitmélység a fájl-ban."
+msgstr "DIB fej: Ismeretlen bitmélység a fájl-ban."
 
 #: ../src/common/imagbmp.cpp:822
-#, fuzzy
 msgid "DIB Header: Unknown encoding in file."
-msgstr "BMP: Ismeretlen kódolás a fájl-ban."
+msgstr "DIB fej: Ismeretlen kódolás a fájl-ban."
 
 #: ../src/common/paper.cpp:128
 msgid "DL Envelope, 110 x 220 mm"
@@ -1052,27 +1050,20 @@ msgstr "Dekorat
 
 #: ../src/common/fontmap.cpp:386
 msgid "Default encoding"
-msgstr ""
+msgstr "Az alapértelmezett kódolás"
 
 #: ../src/unix/snglinst.cpp:269
-#, fuzzy, c-format
+#, c-format
 msgid "Deleted stale lock file '%s'."
-msgstr "Nem tudom törölni a '%s' INI fájt"
+msgstr "A régi '%s' lakat fájt töröltem."
 
 #: ../src/msw/dialup.cpp:346
-msgid ""
-"Dial up functions are unavailable because the remote access service (RAS) is "
-"not installed on this machine. Please install it."
-msgstr ""
-"A tárcsázó funkciók nem használhatók, mert a távoli elérés szolgáltatás "
-"(RAS) nincs installálva ezen a gépen. Kérem installálja."
+msgid "Dial up functions are unavailable because the remote access service (RAS) is not installed on this machine. Please install it."
+msgstr "A tárcsázó funkciók nem használhatók, mert a távoli elérés szolgáltatás (RAS) nincs installálva ezen a gépen. Kérem installálja."
 
 #: ../src/os2/toplevel.cpp:329
-#, fuzzy
 msgid "Did you forget to include wx/os2/wx.rc in your resources?"
-msgstr ""
-"Nem sikerült létrehozni a párbeszéd ablakot. Valószínûleg elfelejtette "
-"beépíteni a wx/msw/wx.rc fájlt az erõforrás fájljába."
+msgstr "Elfelejtette beépíteni a wx/os2/wx.rc fájlt az erõforrás fájljába?"
 
 #: ../src/generic/tipdlg.cpp:178
 msgid "Did you know..."
@@ -1084,21 +1075,17 @@ msgid "Directory '%s' couldn't be created"
 msgstr "Nem sikerült létrehozni a(z) '%s' könyvtárat"
 
 #: ../src/mgl/dirmgl.cpp:217
-#, fuzzy, c-format
+#, c-format
 msgid "Directory '%s' doesn't exist!"
-msgstr "A könyvtár nem létezik"
+msgstr "A(z) '%s' könyvtár nem létezik!"
 
 #: ../src/generic/dirdlgg.cpp:188
 msgid "Directory does not exist"
 msgstr "A könyvtár nem létezik"
 
 #: ../src/html/helpfrm.cpp:374
-msgid ""
-"Display all index items that contain given substring. Search is case "
-"insensitive."
-msgstr ""
-"Írja ki az összes index bejegyzést, ami tartalmazza az adott bejegyzést. A "
-"keresés kis/nagy betûre nem érzékeny."
+msgid "Display all index items that contain given substring. Search is case insensitive."
+msgstr "Írja ki az összes index bejegyzést, ami tartalmazza az adott bejegyzést. A keresés kis/nagy betûre nem érzékeny."
 
 #: ../src/html/helpfrm.cpp:540
 msgid "Display options dialog"
@@ -1107,13 +1094,17 @@ msgstr "K
 #: ../src/msw/mimetype.cpp:679
 #, c-format
 msgid ""
-"Do you want to overwrite the command used to %s files with extension \"%s\" "
-"?\n"
+"Do you want to overwrite the command used to %s files with extension \"%s\" ?\n"
 "Current value is \n"
 "%s, \n"
 "New value is \n"
 "%s %1"
 msgstr ""
+"Akarja, hogy átírjam a fájloknál használt % parancsot (csak \"%s\" kiterjesztés esetén)?\n"
+"A jelenlegi érték \n"
+"%s, \n"
+"Az új érték \n"
+"%s %1"
 
 #: ../src/common/docview.cpp:440
 #, c-format
@@ -1129,9 +1120,8 @@ msgid "Done."
 msgstr "Kész."
 
 #: ../src/generic/fdrepdlg.cpp:157
-#, fuzzy
 msgid "Down"
-msgstr "Kész"
+msgstr "Le"
 
 #: ../src/common/paper.cpp:107
 msgid "E sheet, 34 x 44 in"
@@ -1147,22 +1137,26 @@ msgstr "A tal
 
 #: ../src/common/config.cpp:345
 #, c-format
-msgid ""
-"Environment variables expansion failed: missing '%c' at position %d in '%s'."
-msgstr ""
-"A környezeti változók kifejtése nem sikerült: hiányzik '%c' a(z) %d helyen "
-"'%s'-ból."
-
-#: ../src/generic/dirctrlg.cpp:702 ../src/generic/dirctrlg.cpp:720
-#: ../src/generic/dirctrlg.cpp:731 ../src/generic/dirdlgg.cpp:298
-#: ../src/generic/filedlgg.cpp:836 ../src/generic/filedlgg.cpp:933
-#: ../src/generic/filedlgg.cpp:947 ../src/generic/filedlgg.cpp:960
-#: ../src/generic/filedlgg.cpp:1322 ../src/generic/filedlgg.cpp:1372
-#: ../src/gtk/filedlg.cpp:80 ../src/gtk/fontdlg.cpp:71
+msgid "Environment variables expansion failed: missing '%c' at position %d in '%s'."
+msgstr "A környezeti változók kifejtése nem sikerült: hiányzik '%c' a(z) %d helyen '%s'-ból."
+
+#: ../src/generic/dirctrlg.cpp:702
+#: ../src/generic/dirctrlg.cpp:720
+#: ../src/generic/dirctrlg.cpp:731
+#: ../src/generic/dirdlgg.cpp:298
+#: ../src/generic/filedlgg.cpp:836
+#: ../src/generic/filedlgg.cpp:933
+#: ../src/generic/filedlgg.cpp:947
+#: ../src/generic/filedlgg.cpp:960
+#: ../src/generic/filedlgg.cpp:1322
+#: ../src/generic/filedlgg.cpp:1372
+#: ../src/gtk/filedlg.cpp:80
+#: ../src/gtk/fontdlg.cpp:71
 msgid "Error"
 msgstr "Hiba"
 
-#: ../src/unix/utilsunx.cpp:1182 ../src/unix/utilsunx.cpp:1190
+#: ../src/unix/utilsunx.cpp:1182
+#: ../src/unix/utilsunx.cpp:1190
 msgid "Error "
 msgstr "Hiba"
 
@@ -1171,9 +1165,8 @@ msgid "Error creating directory"
 msgstr "Hiba a könyvtár létrehozásakor"
 
 #: ../src/common/imagbmp.cpp:845
-#, fuzzy
 msgid "Error in reading image DIB ."
-msgstr "TIFF: Hiba a kép olvasásakor."
+msgstr "Hiba a DIB kép olvasásakor."
 
 #: ../src/common/log.cpp:460
 msgid "Error: "
@@ -1196,20 +1189,26 @@ msgstr "Nem siker
 msgid "Executive, 7 1/4 x 10 1/2 in"
 msgstr "Executive, 7 1/4 x 10 1/2 hüvelyk"
 
-#: ../src/common/resourc2.cpp:326 ../src/common/resourc2.cpp:1391
-#: ../src/common/resource.cpp:1845 ../src/common/resource.cpp:1975
+#: ../src/common/resourc2.cpp:326
+#: ../src/common/resourc2.cpp:1391
+#: ../src/common/resource.cpp:1845
+#: ../src/common/resource.cpp:1975
 #: ../src/common/resource.cpp:3059
 msgid "Expected '*' whilst parsing resource."
 msgstr "Az erõforrás fájl feldolgozásakor '*'-t vártam."
 
-#: ../src/common/resourc2.cpp:342 ../src/common/resourc2.cpp:1407
-#: ../src/common/resource.cpp:1862 ../src/common/resource.cpp:1991
+#: ../src/common/resourc2.cpp:342
+#: ../src/common/resourc2.cpp:1407
+#: ../src/common/resource.cpp:1862
+#: ../src/common/resource.cpp:1991
 #: ../src/common/resource.cpp:3076
 msgid "Expected '=' whilst parsing resource."
 msgstr "Az erõforrás fájl feldolgozásakor '='-t vártam."
 
-#: ../src/common/resourc2.cpp:312 ../src/common/resourc2.cpp:1377
-#: ../src/common/resource.cpp:1831 ../src/common/resource.cpp:1961
+#: ../src/common/resourc2.cpp:312
+#: ../src/common/resourc2.cpp:1377
+#: ../src/common/resource.cpp:1831
+#: ../src/common/resource.cpp:1961
 #: ../src/common/resource.cpp:3045
 msgid "Expected 'char' whilst parsing resource."
 msgstr "Az erõforrás fájl feldolgozásakor 'char'-t vártam."
@@ -1221,17 +1220,16 @@ msgstr "Nem siker
 
 #: ../src/unix/snglinst.cpp:243
 msgid "Failed to access lock file."
-msgstr ""
+msgstr "Nem sikerült elérni a lakat fájlt."
 
 #: ../src/common/filename.cpp:172
-#, fuzzy
 msgid "Failed to close file handle"
-msgstr "Nem sikerült lezárni a vágólapot."
+msgstr "Nem sikerült lezárni a file kezelõt."
 
 #: ../src/unix/snglinst.cpp:308
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to close lock file '%s'"
-msgstr "nem sikerült kiüríteni a(z) '%s' fájl pufferét"
+msgstr "Nem sikerült lezárni a(z) '%s' lakat fájlt."
 
 #: ../src/msw/clipbrd.cpp:127
 msgid "Failed to close the clipboard."
@@ -1239,13 +1237,11 @@ msgstr "Nem siker
 
 #: ../src/msw/dialup.cpp:780
 msgid "Failed to connect: missing username/password."
-msgstr ""
-"Nem sikerült létrehozni a kapcsolatot: hiányzik a felhasználói név vagy a "
-"jelszó."
+msgstr "Nem sikerült létrehozni a kapcsolatot: hiányzik a felhasználói név vagy a jelszó."
 
 #: ../src/msw/dialup.cpp:726
 msgid "Failed to connect: no ISP to dial."
-msgstr "Nem sikerült létrehozni a kapcsolatot: nincs tárcsázható ISP."
+msgstr "Nem sikerült létrehozni a kapcsolatot: nincs tárcsázható szolgáltató (ISPÖ."
 
 #: ../src/msw/registry.cpp:597
 #, c-format
@@ -1255,14 +1251,12 @@ msgstr "Nem siker
 #: ../src/msw/registry.cpp:606
 #, c-format
 msgid "Failed to copy the contents of registry key '%s' to '%s'."
-msgstr ""
-"Nem sikerült lemásolni a(z) '%s' registry bejegyzést tartalmát a(z) '%s'-be."
+msgstr "Nem sikerült lemásolni a(z) '%s' registry kulcs tartalmát a(z) '%s'-be."
 
 #: ../src/common/filefn.cpp:1106
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to copy the file '%s' to '%s'"
-msgstr ""
-"Nem sikerült lemásolni a(z) '%s' registry bejegyzést tartalmát a(z) '%s'-be."
+msgstr "Nem sikerült lemásolni a(z) '%s' fájlt a(z) '%s'-be."
 
 #: ../src/msw/dde.cpp:924
 msgid "Failed to create DDE string"
@@ -1277,51 +1271,46 @@ msgid "Failed to create a status bar."
 msgstr "Nem sikerült lérehozni az állapotsort."
 
 #: ../src/common/filename.cpp:717
-#, fuzzy
 msgid "Failed to create a temporary file name"
-msgstr "Nem sikerült létrehozni az MDI szülõ keretet."
+msgstr "Nem sikerült létrehozni átmeneti fájlnevet."
 
 #: ../src/msw/utilsexc.cpp:195
-#, fuzzy
 msgid "Failed to create an anonymous pipe"
-msgstr "Nem sikerült lérehozni az állapotsort."
+msgstr "Nem sikerült lérehozni a névtelen csövet."
 
 #: ../src/msw/dde.cpp:401
 #, c-format
 msgid "Failed to create connection to server '%s' on topic '%s'"
-msgstr ""
-"Nem sikerült kapcsolatot létrehozni a '%s' kiszolgálóval a '%s' témában"
+msgstr "Nem sikerült kapcsolatot létrehozni a '%s' kiszolgálóval a '%s' témában"
 
 #: ../src/msw/toplevel.cpp:293
-#, fuzzy
 msgid "Failed to create dialog. Incorrect DLGTEMPLATE?"
-msgstr "Nem sikerült létrehozni a könyvtárat"
+msgstr "Nem sikerült létrehozni a párbeszéd ablakot. Hibás lenne a DLGTEMPLATE?"
 
 #: ../src/generic/dirdlgg.cpp:201
-#, fuzzy, c-format
-msgid ""
-"Failed to create directory '%s'\n"
+#, c-format
+msgid "Failed to create directory '%s'\n"
 "(Do you have the required permissions?)"
-msgstr ""
-"\n"
+msgstr "Nem sikerült létrehozni a '%s' könyvtárat.\n"
 "(Rendelkezik a szükséges jogosultsággal?)"
 
 #: ../src/msw/mimetype.cpp:168
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to create registry entry for '%s' files."
-msgstr "Nem tudtam a(z) '%s' registry kulcsot '%s'-re átnevezni."
+msgstr "Nem tudtam létrehozni registry bejegyzést a(z) '%s' fájlokra."
 
 #: ../src/msw/fdrepdlg.cpp:442
 #, c-format
 msgid "Failed to create the standard find/replace dialog (error code %d)"
-msgstr ""
+msgstr "Nem sikerült létrehozni a keresés-helyettesítés párbeszéd ablakot (hibakód : %d) "
 
 #: ../src/html/winpars.cpp:430
 #, c-format
 msgid "Failed to display HTML document in %s encoding"
 msgstr "Nem sikerült a HTML dokumentumot %s kódolással megjeleníteni"
 
-#: ../src/mac/clipbrd.cpp:167 ../src/msw/clipbrd.cpp:139
+#: ../src/mac/clipbrd.cpp:167
+#: ../src/msw/clipbrd.cpp:139
 msgid "Failed to empty the clipboard."
 msgstr "Nem sikerült kiüríteni a vágólapot."
 
@@ -1334,47 +1323,44 @@ msgstr "Nem siker
 msgid "Failed to establish dialup connection: %s"
 msgstr "Nem sikerült létrehozni a telefonos kapcsolatot: %s"
 
-#: ../src/unix/utilsunx.cpp:538 ../src/unix/utilsunx.cpp:555
+#: ../src/unix/utilsunx.cpp:538
+#: ../src/unix/utilsunx.cpp:555
 #, c-format
 msgid "Failed to execute '%s'\n"
 msgstr "Nem sikerült végrehajtani '%s'-t\n"
 
-#: ../src/common/resourc2.cpp:808 ../src/common/resource.cpp:2465
+#: ../src/common/resourc2.cpp:808
+#: ../src/common/resource.cpp:2465
 #, c-format
-msgid ""
-"Failed to find XBM resource %s.\n"
+msgid "Failed to find XBM resource %s.\n"
 "Forgot to use wxResourceLoadBitmapData?"
-msgstr ""
-"Nem találom a(z) %s XBM erõforrást.\n"
+msgstr "Nem találom a(z) %s XBM erõforrást.\n"
 "Elfelejtette használni a wxResourceLoadBitmapData-t?"
 
-#: ../src/common/resourc2.cpp:959 ../src/common/resource.cpp:2619
+#: ../src/common/resourc2.cpp:959
+#: ../src/common/resource.cpp:2619
 #, c-format
-msgid ""
-"Failed to find XBM resource %s.\n"
+msgid "Failed to find XBM resource %s.\n"
 "Forgot to use wxResourceLoadIconData?"
-msgstr ""
-"Nem találom a(z) %s XBM erõforrást.\n"
+msgstr "Nem találom a(z) %s XBM erõforrást.\n"
 "Elfelejtette használni a wxResourceLoadIconData-t?"
 
-#: ../src/common/resourc2.cpp:823 ../src/common/resource.cpp:2480
+#: ../src/common/resourc2.cpp:823
+#: ../src/common/resource.cpp:2480
 #, c-format
-msgid ""
-"Failed to find XPM resource %s.\n"
+msgid "Failed to find XPM resource %s.\n"
 "Forgot to use wxResourceLoadBitmapData?"
-msgstr ""
-"Nem találom a(z) %s XpM erõforrást.\n"
+msgstr "Nem találom a(z) %s XpM erõforrást.\n"
 "Elfelejtette használni a wxResourceLoadBitmapData-t?"
 
 #: ../src/msw/dialup.cpp:678
 #, c-format
 msgid "Failed to get ISP names: %s"
-msgstr "Nem kaptam meg a(z) %s ISP neveket"
+msgstr "Nem kaptam meg a(z) %s ISP(szolgáltató) neveket"
 
 #: ../src/mac/clipbrd.cpp:118
-#, fuzzy
 msgid "Failed to get clipboard data."
-msgstr "Nem tudtam a vágólap adatot beállítani."
+msgstr "Nem tudtam a vágólapról adatot kapni."
 
 #: ../src/msw/clipbrd.cpp:712
 msgid "Failed to get data from the clipboard"
@@ -1386,83 +1372,77 @@ msgstr "Nem kaptam meg az UTC rendszer id
 
 #: ../src/common/timercmn.cpp:237
 msgid "Failed to get the local system time"
-msgstr "Nem kaptam meg a helyi rendszer idõt"
+msgstr "Nem kaptam meg a helyi rendszer idõt."
 
 #: ../src/common/filefn.cpp:1487
-#, fuzzy
 msgid "Failed to get the working directory"
-msgstr "Nem sikerült létrehozni a könyvtárat"
+msgstr "Nem sikerült létrehozni a munkakönyvtárat."
 
 #: ../src/univ/theme.cpp:120
 msgid "Failed to initialize GUI: no built-in themes found."
-msgstr ""
+msgstr "Nem sikerült elindítani a GUIt: nem találtam beépített bõrt."
 
 #: ../src/msw/helpchm.cpp:69
 msgid "Failed to initialize MS HTML Help."
-msgstr ""
+msgstr "Nem sikerült elindítani az MS HTML súgót."
 
 #: ../src/msw/glcanvas.cpp:729
-#, fuzzy
 msgid "Failed to initialize OpenGL"
-msgstr "Nem tudom inicializálni az OLEt"
+msgstr "Nem tudom elindítani az OpenGLt."
 
 #: ../src/unix/threadpsx.cpp:871
-msgid ""
-"Failed to join a thread, potential memory leak detected - please restart the "
-"program"
-msgstr ""
-"Nem tudtam a szálhoz csatlakozni, valószínûleg memória lyukat találtam - "
-"kérem indítsa újra a programot"
+msgid "Failed to join a thread, potential memory leak detected - please restart the program"
+msgstr "Nem tudtam a szálhoz csatlakozni, valószínûleg memória lyukat találtam - kérem indítsa újra a programot"
 
 #: ../src/msw/utils.cpp:721
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to kill process %d"
-msgstr "Nem tudtam átirányítani a gyermek processz be/kimenetét"
+msgstr "Nem tudtam megölni a '%d' folyamatot."
 
 #: ../src/common/iconbndl.cpp:66
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to load image %d from file '%s'."
-msgstr "Nem tudtam betölteni a(z) '%s' osztott könyvtárat"
+msgstr "Nem tudtam betölteni a(z) %d'képet a  '%s' fájlból."
 
 #: ../src/msw/volume.cpp:340
-#, fuzzy
 msgid "Failed to load mpr.dll."
-msgstr "Nem tudtam a vágólap adatot beállítani."
+msgstr "Nem tudtam betölteni az mpr.dll-t."
 
-#: ../src/common/dynlib.cpp:274 ../src/common/dynload.cpp:197
+#: ../src/common/dynlib.cpp:274
+#: ../src/common/dynload.cpp:197
 #, c-format
 msgid "Failed to load shared library '%s'"
-msgstr "Nem tudtam betölteni a(z) '%s' osztott könyvtárat"
+msgstr "Nem tudtam betölteni a(z) '%s' osztott könyvtárat."
 
-#: ../src/common/dynlib.cpp:256 ../src/common/dynload.cpp:126
-#, fuzzy, c-format
+#: ../src/common/dynlib.cpp:256
+#: ../src/common/dynload.cpp:126
+#, c-format
 msgid "Failed to load shared library '%s' Error '%s'"
-msgstr "Nem tudtam betölteni a(z) '%s' osztott könyvtárat"
+msgstr "Nem tudtam betölteni a(z) '%s' osztott könyvtárat, '%s' hiba miatt."
 
 #: ../src/unix/snglinst.cpp:192
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to lock the lock file '%s'"
-msgstr "nem sikerült kiüríteni a(z) '%s' fájl pufferét"
+msgstr "Nem sikerült lelakatolni a(z) '%s' lakat fájlt."
 
 #: ../src/common/regex.cpp:251
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to match '%s' in regular expression: %s"
-msgstr "Nem sikerült %s a(z) %s telefonos kapcsolatban"
+msgstr "Nem sikerült megtalálni '%s'-t  a(z) '%s' szabályos kifejezésben."
 
 #: ../src/common/filename.cpp:1644
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to modify file times for '%s'"
-msgstr "nem sikerült kiüríteni a(z) '%s' fájl pufferét"
+msgstr "Nem sikerült módosítani a(z) idõket '%s'-re."
 
 #: ../src/common/filename.cpp:160
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to open '%s' for %s"
-msgstr "Nem tudtam megnyitni a vágólapot."
+msgstr "Nem tudtam megnyitni '%s'-t %s-ként."
 
 #: ../src/common/filename.cpp:739
-#, fuzzy
 msgid "Failed to open temporary file."
-msgstr "Nem tudtam megnyitni a vágólapot."
+msgstr "Nem tudtam megnyitni az átmeneti fájlt."
 
 #: ../src/msw/clipbrd.cpp:107
 msgid "Failed to open the clipboard."
@@ -1470,19 +1450,17 @@ msgstr "Nem tudtam megnyitni a v
 
 #: ../src/msw/clipbrd.cpp:616
 msgid "Failed to put data on the clipboard"
-msgstr "Nem tudtam adatokat tenni a vágólapra"
+msgstr "Nem tudtam adatokat tenni a vágólapra."
 
 #: ../src/unix/snglinst.cpp:252
-#, fuzzy
 msgid "Failed to read PID from lock file."
-msgstr "Nem sikerült létrehozni az MDI szülõ keretet."
+msgstr "Nem sikerült elolvasni a PID-t a lakat fájlból."
 
 #: ../src/unix/utilsunx.cpp:629
 msgid "Failed to redirect child process input/output"
-msgstr "Nem tudtam átirányítani a gyermek processz be/kimenetét"
+msgstr "Nem tudtam átirányítani a gyermek processz be/kimenetét."
 
 #: ../src/msw/utilsexc.cpp:600
-#, fuzzy
 msgid "Failed to redirect the child process IO"
 msgstr "Nem tudtam átirányítani a gyermek processz be/kimenetét"
 
@@ -1497,14 +1475,14 @@ msgid "Failed to remember the encoding for the charset '%s'."
 msgstr "Nem emlékszem a '%s' jelkészlet kódolására."
 
 #: ../src/unix/snglinst.cpp:296
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to remove lock file '%s'"
-msgstr "nem tudom eltávolítani a(z) '%s' fájlt"
+msgstr "Nem tudom eltávolítani a(z) '%s' lakat fájlt."
 
 #: ../src/unix/snglinst.cpp:262
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to remove stale lock file '%s'."
-msgstr "Nem tudtam a(z) '%s' registry értéket '%s'-re átnevezni."
+msgstr "Nem tudtam eltávolítani az elavult  '%s' lakat fájlt."
 
 #: ../src/msw/registry.cpp:443
 #, c-format
@@ -1521,37 +1499,37 @@ msgid "Failed to retrieve data from the clipboard."
 msgstr "Nem tudtam adatot elõvenni a vágólapról."
 
 #: ../src/common/filename.cpp:1710
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to retrieve file times for '%s'"
-msgstr "Nem sikerült értelmezni a RAS hibaüzenet szövegét"
+msgstr "Nem sikerült helyrehozni a fájl idõket '%s'-re."
 
 #: ../src/msw/dialup.cpp:442
 msgid "Failed to retrieve text of RAS error message"
-msgstr "Nem sikerült értelmezni a RAS hibaüzenet szövegét"
+msgstr "Nem sikerült értelmezni a RAS hibaüzenet szövegét."
 
 #: ../src/msw/clipbrd.cpp:742
 msgid "Failed to retrieve the supported clipboard formats"
-msgstr "Nem tudtam meghatározni a támogatott vágólap formátumokat"
+msgstr "Nem tudtam meghatározni a támogatott vágólap formátumokat."
 
 #: ../src/msw/dde.cpp:651
 msgid "Failed to send DDE advise notification"
-msgstr "Nem sikerült DDE tanácsot küldeni"
+msgstr "Nem sikerült DDE tanácsot küldeni."
 
 #: ../src/common/ftp.cpp:368
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to set FTP transfer mode to %s."
-msgstr "Nem tudtam a(z) %d szál prioritást beállítani."
+msgstr "Nem tudtam a(z) '%s' FTP átviteli módot beállítani."
 
 #: ../src/msw/clipbrd.cpp:379
 msgid "Failed to set clipboard data."
 msgstr "Nem tudtam a vágólap adatot beállítani."
 
 #: ../src/common/file.cpp:522
-#, fuzzy
 msgid "Failed to set temporary file permissions"
-msgstr "Nem tudtam a(z) %d szál prioritást beállítani."
+msgstr "Nem tudtam az átmeneti fájl engedélyeit beállítani."
 
-#: ../src/unix/threadpsx.cpp:1213 ../src/unix/threadpsx.cpp:1224
+#: ../src/unix/threadpsx.cpp:1213
+#: ../src/unix/threadpsx.cpp:1224
 #, c-format
 msgid "Failed to set thread priority %d."
 msgstr "Nem tudtam a(z) %d szál prioritást beállítani."
@@ -1563,36 +1541,36 @@ msgstr "Nem tudtam a '%s' k
 
 #: ../src/unix/threadpsx.cpp:1397
 msgid "Failed to terminate a thread."
-msgstr "Nem tudtam lezárni a szálat."
+msgstr "Nem tudtam befejezni a szálat."
 
 #: ../src/msw/dde.cpp:625
 msgid "Failed to terminate the advise loop with DDE server"
-msgstr "Nem tudtam lezárni a tanácskozási ciklust a DDE kiszolgálóval"
+msgstr "Nem tudtam befejezni a tanácskozási ciklust a DDE kiszolgálóval."
 
 #: ../src/msw/dialup.cpp:913
 #, c-format
 msgid "Failed to terminate the dialup connection: %s"
-msgstr "Nem tudtam lezárni a(z) %s telefon kapcsolatot"
+msgstr "Nem tudtam befejezni a(z) %s telefon kapcsolatot."
 
 #: ../src/common/filename.cpp:1659
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to touch the file '%s'"
-msgstr "nem sikerült kiüríteni a(z) '%s' fájl pufferét"
+msgstr "Nem sikerült megérinteni a(z) '%s't."
 
 #: ../src/unix/snglinst.cpp:302
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to unlock lock file '%s'"
-msgstr "nem sikerült kiüríteni a(z) '%s' fájl pufferét"
+msgstr "Nem sikerült felnyitni a(z) '%s'  lakat fájlt."
 
 #: ../src/msw/dde.cpp:301
 #, c-format
 msgid "Failed to unregister DDE server '%s'"
-msgstr "Nem tudtam a(z) '%s' DDE kiszolgáló regisztrációját megszüntetni"
+msgstr "Nem tudtam a(z) '%s' DDE kiszolgáló regisztrációját megszüntetni."
 
 #: ../src/unix/snglinst.cpp:173
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to write to lock file '%s'"
-msgstr "nem sikerült kiüríteni a(z) '%s' fájl pufferét"
+msgstr "Nem sikerült írni a(z) '%s' lakat fájlba."
 
 #: ../src/generic/logg.cpp:379
 msgid "Fatal error"
@@ -1602,37 +1580,40 @@ msgstr "V
 msgid "Fatal error: "
 msgstr "Végzetes hiba:"
 
-#: ../src/mac/app.cpp:1220 ../src/msw/app.cpp:1281
+#: ../src/mac/app.cpp:1220
+#: ../src/msw/app.cpp:1281
 msgid "Fatal error: exiting"
 msgstr "Végzetes hiba: kilépés"
 
 #: ../src/mgl/bitmap.cpp:544
-#, fuzzy, c-format
+#, c-format
 msgid "File %s does not exist."
-msgstr ": a file nem létezik!"
+msgstr "A(z) '%s' file nem létezik."
 
-#: ../src/generic/filedlgg.cpp:1354 ../src/gtk/filedlg.cpp:69
+#: ../src/generic/filedlgg.cpp:1354
+#: ../src/gtk/filedlg.cpp:69
 #, c-format
 msgid "File '%s' already exists, do you really want to overwrite it?"
 msgstr "A(z) '%s file már létezik, valóban  felül akarja írni?"
 
 #: ../src/msw/filedlg.cpp:505
-#, fuzzy, c-format
-msgid ""
-"File '%s' already exists.\n"
+#, c-format
+msgid "File '%s' already exists.\n"
 "Do you want to replace it?"
-msgstr "A(z) '%s file már létezik, valóban  felül akarja írni?"
+msgstr "A(z) '%s file már létezik. Akarja felülírni?"
 
 #: ../src/common/textcmn.cpp:158
 msgid "File couldn't be loaded."
 msgstr "A fájlt nem tudtam betölteni."
 
-#: ../src/common/docview.cpp:294 ../src/common/docview.cpp:331
+#: ../src/common/docview.cpp:294
+#: ../src/common/docview.cpp:331
 #: ../src/common/docview.cpp:1422
 msgid "File error"
 msgstr "Fájl hiba"
 
-#: ../src/generic/dirctrlg.cpp:720 ../src/generic/filedlgg.cpp:947
+#: ../src/generic/dirctrlg.cpp:720
+#: ../src/generic/filedlgg.cpp:947
 msgid "File name exists already."
 msgstr "Már van ilyen nevû fájl."
 
@@ -1665,13 +1646,16 @@ msgstr "A folyamat el
 msgid "Forward"
 msgstr "Elõre"
 
-#: ../src/common/resourc2.cpp:295 ../src/common/resourc2.cpp:1360
-#: ../src/common/resource.cpp:1814 ../src/common/resource.cpp:1944
+#: ../src/common/resourc2.cpp:295
+#: ../src/common/resourc2.cpp:1360
+#: ../src/common/resource.cpp:1814
+#: ../src/common/resource.cpp:1944
 #: ../src/common/resource.cpp:3028
 msgid "Found "
 msgstr "Megtaláltam"
 
-#: ../src/html/helpfrm.cpp:661 ../src/html/htmlhelp.cpp:460
+#: ../src/html/helpfrm.cpp:661
+#: ../src/html/htmlhelp.cpp:460
 #, c-format
 msgid "Found %i matches"
 msgstr "%i megfelelõt találtam"
@@ -1681,9 +1665,8 @@ msgid "From:"
 msgstr "Tól:"
 
 #: ../src/common/imaggif.cpp:100
-#, fuzzy
 msgid "GIF: Invalid gif index."
-msgstr "Hibás TIFF kép index."
+msgstr "GIF: Hibás gif index."
 
 #: ../src/common/imaggif.cpp:75
 msgid "GIF: data stream seems to be truncated."
@@ -1703,7 +1686,7 @@ msgstr "GIF: ismeretlen hiba!!!"
 
 #: ../src/univ/themes/gtk.cpp:623
 msgid "GTK+ theme"
-msgstr ""
+msgstr "GTK+ bõr"
 
 #: ../src/common/paper.cpp:142
 msgid "German Legal Fanfold, 8 1/2 x 13 in"
@@ -1715,7 +1698,7 @@ msgstr "N
 
 #: ../src/common/image.cpp:762
 msgid "GetUnusedColour:: No Unused Color in image "
-msgstr ""
+msgstr "GetUnusedColour:: nincs nem használt szín a képen "
 
 #: ../src/html/helpfrm.cpp:506
 msgid "Go back"
@@ -1723,7 +1706,7 @@ msgstr "Menj vissza"
 
 #: ../src/html/htmlhelp.cpp:541
 msgid "Go back to the previous HTML page"
-msgstr ""
+msgstr "Vissza az elõzõ HTML oldalra"
 
 #: ../src/html/helpfrm.cpp:509
 msgid "Go forward"
@@ -1731,13 +1714,14 @@ msgstr "Menj el
 
 #: ../src/html/htmlhelp.cpp:543
 msgid "Go forward to the next HTML page"
-msgstr ""
+msgstr "Menj elõre a következõ HTML oldalra"
 
 #: ../src/html/helpfrm.cpp:514
 msgid "Go one level up in document hierarchy"
 msgstr "Menj a dokumentum hierarchia eggyel magasabb szintjére"
 
-#: ../src/generic/dirdlgg.cpp:108 ../src/generic/filedlgg.cpp:1108
+#: ../src/generic/dirdlgg.cpp:108
+#: ../src/generic/filedlgg.cpp:1108
 msgid "Go to home directory"
 msgstr "Menj a saját (hon) könyvtárba"
 
@@ -1747,7 +1731,7 @@ msgstr "Menj a sz
 
 #: ../src/common/prntbase.cpp:379
 msgid "Goto Page"
-msgstr ""
+msgstr "Meghatározott oldalra"
 
 #: ../src/common/fontmap.cpp:118
 msgid "Greek (ISO-8859-7)"
@@ -1759,26 +1743,22 @@ msgid "HTML anchor %s does not exist."
 msgstr "A(z) %s horgony nem létezik."
 
 #: ../src/html/helpfrm.cpp:1279
-msgid ""
-"HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|Help books "
-"(*.htb)|*.htb|Help books (*.zip)|*.zip|HTML Help Project (*.hhp)|*.hhp|All "
-"files (*.*)|*"
-msgstr ""
-"HTML files (*.htm)|*.htm|HTML fájlok (*.html)|*.html|Súgó könyvek "
-"(*.htb)|*.htb|Súgó könyvek (*.zip)|*.zip|HTML Súgó Project "
-"(*.hhp)|*.hhp|Minden fájl (*.*)|*"
+msgid "HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|HTML Help Project (*.hhp)|*.hhp|All files (*.*)|*"
+msgstr "HTML files (*.htm)|*.htm|HTML fájlok (*.html)|*.html|Súgó könyvek (*.htb)|*.htb|Súgó könyvek (*.zip)|*.zip|HTML Súgó Project (*.hhp)|*.hhp|Minden fájl (*.*)|*"
 
 #: ../src/common/fontmap.cpp:119
 msgid "Hebrew (ISO-8859-8)"
 msgstr "Héber (ISO-8859-8)"
 
-#: ../src/common/dlgcmn.cpp:179 ../src/generic/proplist.cpp:516
-#: ../src/html/helpfrm.cpp:240 ../src/msw/mdi.cpp:1324
+#: ../src/common/dlgcmn.cpp:179
+#: ../src/generic/proplist.cpp:516
+#: ../src/html/helpfrm.cpp:240
+#: ../src/msw/mdi.cpp:1324
 msgid "Help"
 msgstr "Súgó"
 
 #: ../src/html/htmlhelp.cpp:87
-#, fuzzy, c-format
+#, c-format
 msgid "Help : %s"
 msgstr "Súgó: %s"
 
@@ -1786,7 +1766,8 @@ msgstr "S
 msgid "Help Browser Options"
 msgstr "Súgó Böngészõ beállítások"
 
-#: ../src/generic/helphtml.cpp:334 ../src/generic/helphtml.cpp:335
+#: ../src/generic/helphtml.cpp:334
+#: ../src/generic/helphtml.cpp:335
 msgid "Help Index"
 msgstr "Súgó tartalomjegyzék"
 
@@ -1800,53 +1781,51 @@ msgid "Help: %s"
 msgstr "Súgó: %s"
 
 #: ../src/common/imagbmp.cpp:858
-#, fuzzy
 msgid "ICO: Error in reading mask DIB."
-msgstr "TIFF: Hiba a kép olvasásakor."
-
-#: ../src/common/imagbmp.cpp:960 ../src/common/imagbmp.cpp:1019
-#: ../src/common/imagbmp.cpp:1028 ../src/common/imagbmp.cpp:1039
-#: ../src/common/imagbmp.cpp:1083 ../src/common/imagbmp.cpp:1093
+msgstr "ICO: Hiba a DIB maszk olvasásakor."
+
+#: ../src/common/imagbmp.cpp:960
+#: ../src/common/imagbmp.cpp:1019
+#: ../src/common/imagbmp.cpp:1028
+#: ../src/common/imagbmp.cpp:1039
+#: ../src/common/imagbmp.cpp:1083
+#: ../src/common/imagbmp.cpp:1093
 #: ../src/common/imagbmp.cpp:1102
-#, fuzzy
 msgid "ICO: Error writing the image file!"
-msgstr "TIFF: Hiba a kép írásakor."
+msgstr "ICO: Hiba a kép írásakor!"
 
 #: ../src/common/imagbmp.cpp:928
 msgid "ICO: Image too tall for an icon."
-msgstr ""
+msgstr "ICO: A kép túl magas az ikon számára."
 
 #: ../src/common/imagbmp.cpp:934
 msgid "ICO: Image too wide for an icon."
-msgstr ""
+msgstr "ICO: A kép túl széles az ikon számára."
 
 #: ../src/common/imagbmp.cpp:1167
-#, fuzzy
 msgid "ICO: Invalid icon index."
-msgstr "Hibás TIFF kép index."
+msgstr "ICO: Hibás icon index."
 
 #: ../src/common/imagiff.cpp:767
-#, fuzzy
 msgid "IFF: data stream seems to be truncated."
-msgstr "GIF: az adatfolyam csonkítottnak tûnik."
+msgstr "IFF: az adatfolyam csonkítottnak tûnik."
 
 #: ../src/common/imagiff.cpp:751
-#, fuzzy
 msgid "IFF: error in IFF image format."
-msgstr "GIF: hiba a GIF képformátumban."
+msgstr "IFF: hiba a GIFF képformátumban."
 
 #: ../src/common/imagiff.cpp:754
-#, fuzzy
 msgid "IFF: not enough memory."
-msgstr "GIF: nincs elég tároló."
+msgstr "IFF: nincs elég tároló."
 
 #: ../src/common/imagiff.cpp:757
-#, fuzzy
 msgid "IFF: unknown error!!!"
-msgstr "GIF: ismeretlen hiba!!!"
+msgstr "IFF: ismeretlen hiba!!!"
 
-#: ../src/common/resourc2.cpp:989 ../src/common/resourc2.cpp:1000
-#: ../src/common/resource.cpp:2649 ../src/common/resource.cpp:2660
+#: ../src/common/resourc2.cpp:989
+#: ../src/common/resourc2.cpp:1000
+#: ../src/common/resource.cpp:2649
+#: ../src/common/resource.cpp:2660
 #, c-format
 msgid "Icon resource specification %s not found."
 msgstr "Nem találom a(z) %s ikon erõforrás meghatározását."
@@ -1855,7 +1834,8 @@ msgstr "Nem tal
 msgid "Ill-formed resource file syntax."
 msgstr "Nyelvtani hibás erõforrás fájl."
 
-#: ../src/generic/dirctrlg.cpp:702 ../src/generic/filedlgg.cpp:933
+#: ../src/generic/dirctrlg.cpp:702
+#: ../src/generic/filedlgg.cpp:933
 msgid "Illegal directory name."
 msgstr "Hibás könyvtár név."
 
@@ -1865,43 +1845,40 @@ msgstr "Hib
 
 #: ../src/common/image.cpp:785
 msgid "Image and Mask have different sizes"
-msgstr ""
+msgstr "A kép és a maszk mérete különbözõ"
 
 #: ../src/common/image.cpp:1064
 #, c-format
 msgid "Image file is not of type %d."
-msgstr ""
+msgstr "A kép nem %d típusú."
 
 #: ../src/msw/textctrl.cpp:249
-msgid ""
-"Impossible to create a rich edit control, using simple text control instead. "
-"Please reinstall riched32.dll"
-msgstr ""
-"Nem tudok formázott szövegkontrollt készíteni, egyszerû szövegkontrollt "
-"használok helyette. Kérem installálja újra a riched32.dll fájlt"
+msgid "Impossible to create a rich edit control, using simple text control instead. Please reinstall riched32.dll"
+msgstr "Nem tudok formázott szövegkontrollt készíteni, egyszerû szövegkontrollt használok helyette. Kérem installálja újra a riched32.dll fájlt"
 
 #: ../src/unix/utilsunx.cpp:390
 msgid "Impossible to get child process input"
-msgstr "Nem kapom meg a gyermek processz bemenetét"
+msgstr "Nem kapom meg a gyermek processz bemenetét."
 
 #: ../src/common/filefn.cpp:1122
-#, fuzzy, c-format
+#, c-format
 msgid "Impossible to get permissions for file '%s'"
-msgstr "Nem kapom meg a gyermek processz bemenetét"
+msgstr "Nem kapom meg a '%s' fájl engedélyeit."
 
 #: ../src/common/filefn.cpp:1136
-#, fuzzy, c-format
+#, c-format
 msgid "Impossible to overwrite the file '%s'"
-msgstr "nem sikerült kiüríteni a(z) '%s' fájl pufferét"
+msgstr "Nem sikerült felülírni ni a(z) '%s' fájlt."
 
 #: ../src/common/filefn.cpp:1187
 #, c-format
 msgid "Impossible to set permissions for the file '%s'"
-msgstr ""
+msgstr "Nem lehet beállítani a  '%s' fájl engedélyeit."
 
-#: ../src/html/helpfrm.cpp:387 ../src/html/htmlhelp.cpp:578
+#: ../src/html/helpfrm.cpp:387
+#: ../src/html/htmlhelp.cpp:578
 msgid "Index"
-msgstr "Tartalomjegyzék"
+msgstr "Tartalom mutató"
 
 #: ../src/common/fontmap.cpp:123
 msgid "Indian (ISO-8859-12)"
@@ -1914,27 +1891,27 @@ msgstr "Hib
 #: ../contrib/src/xrc/xmlres.cpp:343
 #, c-format
 msgid "Invalid XRC resource '%s': doesn't have root node 'resource'."
-msgstr ""
+msgstr "Érvénytelen '%s' erõforrás: nincs 'resource' csomópont."
 
 #: ../src/common/appcmn.cpp:378
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid display mode specification '%s'."
-msgstr "Hibás fájl meghatározás."
+msgstr "Hibás megjelenítési mód meghatározás: '%s'."
 
 #: ../src/x11/app.cpp:231
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid geometry specification '%s'"
-msgstr "Hibás fájl meghatározás."
+msgstr "Hibás geometriai meghatározás: '%s'."
 
 #: ../src/unix/snglinst.cpp:280
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid lock file '%s'."
-msgstr "nem tudom lezárni a(z) '%s' fájlt."
+msgstr "Hibás a(z) '%s' lakat fájl."
 
 #: ../src/common/regex.cpp:173
 #, c-format
 msgid "Invalid regular expression '%s': %s"
-msgstr ""
+msgstr "Hibás szabályos kifejezés '%s': %s"
 
 #: ../src/generic/fontdlgg.cpp:227
 msgid "Italic"
@@ -1956,9 +1933,10 @@ msgstr "JPEG: Nem tudtam elmenteni a k
 msgid "KOI8-R"
 msgstr "KOI8-R"
 
-#: ../src/generic/prntdlgg.cpp:426 ../src/generic/prntdlgg.cpp:620
+#: ../src/generic/prntdlgg.cpp:426
+#: ../src/generic/prntdlgg.cpp:620
 msgid "Landscape"
-msgstr "Fekvõ"
+msgstr "Tájkép"
 
 #: ../src/common/paper.cpp:110
 msgid "Ledger, 17 x 11 in"
@@ -1984,16 +1962,17 @@ msgstr "Lev
 msgid "Light"
 msgstr "Vékony"
 
-#: ../src/generic/filedlgg.cpp:1587 ../src/gtk/filedlg.cpp:249
-#: ../src/motif/filedlg.cpp:357 ../src/msw/filedlg.cpp:542
+#: ../src/generic/filedlgg.cpp:1587
+#: ../src/gtk/filedlg.cpp:249
+#: ../src/motif/filedlg.cpp:357
+#: ../src/msw/filedlg.cpp:542
 #, c-format
 msgid "Load %s file"
 msgstr "A(z) %s fájl betöltése"
 
 #: ../src/generic/filedlgg.cpp:1589
-#, fuzzy
 msgid "Load file"
-msgstr "A(z) %s fájl betöltése"
+msgstr "Fájl betöltése"
 
 #: ../src/html/htmlwin.cpp:282
 msgid "Loading : "
@@ -2017,26 +1996,21 @@ msgid "MDI child"
 msgstr "MDI gyermek"
 
 #: ../src/msw/helpchm.cpp:60
-#, fuzzy
-msgid ""
-"MS HTML Help functions are unavailable because the MS HTML Help library is "
-"not installed on this machine. Please install it."
-msgstr ""
-"A tárcsázó funkciók nem használhatók, mert a távoli elérés szolgáltatás "
-"(RAS) nincs installálva ezen a gépen. Kérem installálja."
+msgid "MS HTML Help functions are unavailable because the MS HTML Help library is not installed on this machine. Please install it."
+msgstr "A MS HTML funkciók nem használhatók, mert a MS HTML Help könyvtár nincs installálva ezen a gépen. Kérem installálja."
 
 #: ../src/univ/themes/win32.cpp:4545
 msgid "Ma&ximize"
-msgstr ""
+msgstr "Ma&ximalizál"
 
 #: ../src/unix/mimetype.cpp:2477
 #, c-format
 msgid "Mailcap file %s, line %d: incomplete entry ignored."
-msgstr "Mailcap fájl %s, %d. sor: elhanyagoltam a hiányos elemet."
+msgstr "Mailcap fájl %s, %d. sor: elhanyagoltam a hiányos bejegyzést."
 
 #: ../src/generic/fdrepdlg.cpp:152
 msgid "Match case"
-msgstr ""
+msgstr "Kis/nagybetû megkülönböztetés"
 
 #: ../src/common/fs_mem.cpp:144
 #, c-format
@@ -2045,11 +2019,11 @@ msgstr "A VFS mem
 
 #: ../src/univ/themes/metal.cpp:174
 msgid "Metal theme"
-msgstr ""
+msgstr "Fém bõr"
 
 #: ../src/univ/themes/win32.cpp:4543
 msgid "Mi&nimize"
-msgstr ""
+msgstr "Mi&nimalizál"
 
 #: ../src/unix/mimetype.cpp:2102
 #, c-format
@@ -2059,7 +2033,7 @@ msgstr "%s mime-t
 #: ../src/mgl/app.cpp:173
 #, c-format
 msgid "Mode %ix%i-%i not available."
-msgstr ""
+msgstr "A %ix%i-%i mód nem létezik."
 
 #: ../src/generic/fontdlgg.cpp:222
 msgid "Modern"
@@ -2077,8 +2051,10 @@ msgstr "M
 msgid "Name"
 msgstr "Név"
 
-#: ../src/generic/dirdlgg.cpp:272 ../src/generic/dirdlgg.cpp:282
-#: ../src/generic/filedlgg.cpp:812 ../src/generic/filedlgg.cpp:821
+#: ../src/generic/dirdlgg.cpp:272
+#: ../src/generic/dirdlgg.cpp:282
+#: ../src/generic/filedlgg.cpp:812
+#: ../src/generic/filedlgg.cpp:821
 msgid "NewName"
 msgstr "ÚjNév"
 
@@ -2086,21 +2062,25 @@ msgstr "
 msgid "Next page"
 msgstr "Következõ oldal"
 
-#: ../src/common/dlgcmn.cpp:156 ../src/mac/msgdlg.cpp:78
+#: ../src/common/dlgcmn.cpp:156
+#: ../src/mac/msgdlg.cpp:78
 #: ../src/motif/msgdlg.cpp:182
 msgid "No"
 msgstr "Nem"
 
 #: ../src/common/image.cpp:793
 msgid "No Unused Color in image being masked"
-msgstr ""
+msgstr "A képben nincs maszkolva nem használt szín "
 
-#: ../src/common/resourc2.cpp:814 ../src/common/resourc2.cpp:965
-#: ../src/common/resource.cpp:2471 ../src/common/resource.cpp:2625
+#: ../src/common/resourc2.cpp:814
+#: ../src/common/resourc2.cpp:965
+#: ../src/common/resource.cpp:2471
+#: ../src/common/resource.cpp:2625
 msgid "No XBM facility available!"
 msgstr "Nincs XBM felhasználási lehetõség!"
 
-#: ../src/common/resourc2.cpp:983 ../src/common/resource.cpp:2643
+#: ../src/common/resourc2.cpp:983
+#: ../src/common/resource.cpp:2643
 msgid "No XPM icon facility available!"
 msgstr "Nincs XPM ikon felhasználási lehetõség!"
 
@@ -2113,42 +2093,48 @@ msgstr "Nem tal
 msgid ""
 "No font for displaying text in encoding '%s' found,\n"
 "but an alternative encoding '%s' is available.\n"
-"Do you want to use this encoding (otherwise you will have to choose another "
-"one)?"
+"Do you want to use this encoding (otherwise you will have to choose another one)?"
 msgstr ""
+"Nem találtam jelkészletet a(z) '%s' kódoláshoz,\n"
+"de a vagylagos '%s' kódolás elérhetõ.\n"
+"Akarja használni ezt a kódolást  (egyébként másikat kell választania)?"
 
 #: ../src/common/fontmap.cpp:870
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "No font for displaying text in encoding '%s' found.\n"
 "Would you like to select a font to be used for this encoding\n"
 "(otherwise the text in this encoding will not be shown correctly)?"
 msgstr ""
-"A(z) '%s' kódolás ismeretlen.\n"
+"Nem találtam jelkészletet a(z) '%s' kódoláshoz.\n"
 "Szeretne választani egy jelkészletet ehhez a kódoláshoz\n"
-"(Különben az e kódolással készített szöveg nem jelezhetõ ki helyesen)?"
+"(különben az e kódolással készített szöveg nem jelezhetõ ki helyesen)?"
 
 #: ../contrib/src/xrc/xmlres.cpp:523
 #, c-format
 msgid "No handler found for XML node '%s', class '%s'!"
-msgstr ""
+msgstr "A '%s', class '%s' XML csomóponthoz nem találtam meghajtót!"
 
-#: ../src/common/image.cpp:1046 ../src/common/image.cpp:1089
+#: ../src/common/image.cpp:1046
+#: ../src/common/image.cpp:1089
 msgid "No handler found for image type."
 msgstr "Ilyen típusú képhez nem találtam kezelõt."
 
-#: ../src/common/image.cpp:1054 ../src/common/image.cpp:1097
+#: ../src/common/image.cpp:1054
+#: ../src/common/image.cpp:1097
 #: ../src/common/image.cpp:1131
 #, c-format
 msgid "No image handler for type %d defined."
 msgstr "%d  típusú képhez nincs kezelõ meghatározva."
 
-#: ../src/common/image.cpp:1115 ../src/common/image.cpp:1147
+#: ../src/common/image.cpp:1115
+#: ../src/common/image.cpp:1147
 #, c-format
 msgid "No image handler for type %s defined."
 msgstr "%s  típusú képhez nincs kezelõ meghatározva."
 
-#: ../src/html/helpfrm.cpp:650 ../src/html/htmlhelp.cpp:436
+#: ../src/html/helpfrm.cpp:650
+#: ../src/html/htmlhelp.cpp:436
 #: ../src/html/htmlhelp.cpp:441
 msgid "No matching page found yet"
 msgstr "Még nem találtam egy megfelelõ oldalt"
@@ -2157,7 +2143,8 @@ msgstr "M
 msgid "Nordic (ISO-8859-10)"
 msgstr "Északi (ISO-8859-10)"
 
-#: ../src/generic/fontdlgg.cpp:226 ../src/generic/fontdlgg.cpp:229
+#: ../src/generic/fontdlgg.cpp:226
+#: ../src/generic/fontdlgg.cpp:229
 msgid "Normal"
 msgstr "Normál"
 
@@ -2169,21 +2156,29 @@ msgstr "Norm
 msgid "Note, 8 1/2 x 11 in"
 msgstr "Feljegyzés, 8 1/2 x 11 hüvelyk"
 
-#: ../src/common/dlgcmn.cpp:162 ../src/generic/dirdlgg.cpp:151
-#: ../src/generic/filedlgg.cpp:1165 ../src/generic/filedlgg.cpp:1176
-#: ../src/generic/fontdlgg.cpp:253 ../src/generic/logg.cpp:739
-#: ../src/generic/prntdlgg.cpp:452 ../src/generic/proplist.cpp:499
-#: ../src/gtk/filedlg.cpp:167 ../src/gtk/fontdlg.cpp:136
+#: ../src/common/dlgcmn.cpp:162
+#: ../src/generic/dirdlgg.cpp:151
+#: ../src/generic/filedlgg.cpp:1165
+#: ../src/generic/filedlgg.cpp:1176
+#: ../src/generic/fontdlgg.cpp:253
+#: ../src/generic/logg.cpp:739
+#: ../src/generic/prntdlgg.cpp:452
+#: ../src/generic/proplist.cpp:499
+#: ../src/gtk/filedlg.cpp:167
+#: ../src/gtk/fontdlg.cpp:136
 #: ../src/html/helpfrm.cpp:972
 msgid "OK"
 msgstr "Igen"
 
-#: ../src/html/helpfrm.cpp:528 ../src/html/helpfrm.cpp:1274
+#: ../src/html/helpfrm.cpp:528
+#: ../src/html/helpfrm.cpp:1274
 msgid "Open HTML document"
 msgstr "Nyisd meg a HTML dokumentumot"
 
-#: ../src/generic/dirctrlg.cpp:731 ../src/generic/dirdlgg.cpp:298
-#: ../src/generic/filedlgg.cpp:836 ../src/generic/filedlgg.cpp:960
+#: ../src/generic/dirctrlg.cpp:731
+#: ../src/generic/dirdlgg.cpp:298
+#: ../src/generic/filedlgg.cpp:836
+#: ../src/generic/filedlgg.cpp:960
 msgid "Operation not permitted."
 msgstr "Ez a mûvelet nincs megengedve."
 
@@ -2206,11 +2201,13 @@ msgstr "A(z) '%s' be
 msgid "Options"
 msgstr "Lehetõségek"
 
-#: ../src/generic/prntdlgg.cpp:428 ../src/generic/prntdlgg.cpp:621
+#: ../src/generic/prntdlgg.cpp:428
+#: ../src/generic/prntdlgg.cpp:621
 msgid "Orientation"
 msgstr "Irányultság"
 
-#: ../src/common/imagpcx.cpp:455 ../src/common/imagpcx.cpp:478
+#: ../src/common/imagpcx.cpp:455
+#: ../src/common/imagpcx.cpp:478
 msgid "PCX: couldn't allocate memory"
 msgstr "PCX: nem tudtam memóriát foglalni"
 
@@ -2226,7 +2223,8 @@ msgstr "PCX: 
 msgid "PCX: this is not a PCX file."
 msgstr "PCX: ez nem PCX fájl."
 
-#: ../src/common/imagpcx.cpp:457 ../src/common/imagpcx.cpp:479
+#: ../src/common/imagpcx.cpp:457
+#: ../src/common/imagpcx.cpp:479
 msgid "PCX: unknown error !!!"
 msgstr "PCX: ismeretlen hiba !!!"
 
@@ -2264,12 +2262,14 @@ msgstr "Oldal be
 msgid "Pages"
 msgstr "Oldalak"
 
-#: ../src/generic/prntdlgg.cpp:538 ../src/generic/prntdlgg.cpp:609
+#: ../src/generic/prntdlgg.cpp:538
+#: ../src/generic/prntdlgg.cpp:609
 #: ../src/generic/prntdlgg.cpp:794
 msgid "Paper Size"
 msgstr "Papír méret"
 
-#: ../src/generic/prntdlgg.cpp:418 ../src/generic/prntdlgg.cpp:598
+#: ../src/generic/prntdlgg.cpp:418
+#: ../src/generic/prntdlgg.cpp:598
 #: ../src/generic/prntdlgg.cpp:790
 msgid "Paper size"
 msgstr "Papír méret"
@@ -2286,13 +2286,14 @@ msgstr "A cs
 msgid "Please choose a valid font."
 msgstr "Kérem válasszon egy érvényes jelkészletet."
 
-#: ../src/generic/filedlgg.cpp:1372 ../src/gtk/filedlg.cpp:80
+#: ../src/generic/filedlgg.cpp:1372
+#: ../src/gtk/filedlg.cpp:80
 msgid "Please choose an existing file."
 msgstr "Kérem válasszon egy létezõ fájlt."
 
 #: ../src/msw/dialup.cpp:747
 msgid "Please choose which ISP do you want to connect to"
-msgstr "Kérem válassza ki, melyik ISP-hez akar kapcsolódni"
+msgstr "Kérem válassza ki, melyik szolgáltatóhoz(ISP) akar kapcsolódni."
 
 #: ../src/msw/listctrl.cpp:535
 #, c-format
@@ -2301,12 +2302,16 @@ msgid ""
 "(at least version 4.70 is required but you have %d.%02d)\n"
 "or this program won't operate correctly."
 msgstr ""
+"Kérem installálja a comctl32.dll újabb verzióját\n"
+"(legalább a 4.70 kellene, de Önnek a %d.%02d van)\n"
+"vagy ez a program nem mûködik megfelelõen."
 
 #: ../src/common/prntbase.cpp:112
 msgid "Please wait while printing\n"
-msgstr ""
+msgstr "Kérem várjon amíg nyomtatok\n"
 
-#: ../src/generic/prntdlgg.cpp:425 ../src/generic/prntdlgg.cpp:619
+#: ../src/generic/prntdlgg.cpp:425
+#: ../src/generic/prntdlgg.cpp:619
 msgid "Portrait"
 msgstr "Álló"
 
@@ -2316,7 +2321,7 @@ msgstr "PostScript f
 
 #: ../src/html/htmlhelp.cpp:509
 msgid "Preparing help window..."
-msgstr ""
+msgstr "Elõkészítem a súgó ablakot..."
 
 #: ../src/html/helpfrm.cpp:964
 msgid "Preview:"
@@ -2326,7 +2331,8 @@ msgstr "El
 msgid "Previous page"
 msgstr "Elõzõ oldal"
 
-#: ../src/generic/prntdlgg.cpp:110 ../src/generic/prntdlgg.cpp:124
+#: ../src/generic/prntdlgg.cpp:110
+#: ../src/generic/prntdlgg.cpp:124
 msgid "Print"
 msgstr "Nyomtatás"
 
@@ -2334,7 +2340,8 @@ msgstr "Nyomtat
 msgid "Print Preview"
 msgstr "Nyomtatási kép"
 
-#: ../src/common/prntbase.cpp:782 ../src/common/prntbase.cpp:806
+#: ../src/common/prntbase.cpp:782
+#: ../src/common/prntbase.cpp:806
 msgid "Print Preview Failure"
 msgstr "Nyomtatási kép hiba"
 
@@ -2356,7 +2363,7 @@ msgstr "Nyomtat
 
 #: ../src/html/helpfrm.cpp:534
 msgid "Print this page"
-msgstr "Nyomtatsd ezt az oldalt"
+msgstr "Nyomtasd ezt az oldalt"
 
 #: ../src/generic/prntdlgg.cpp:147
 msgid "Print to File"
@@ -2382,8 +2389,8 @@ msgstr "Nyomtat
 msgid "Printer..."
 msgstr "Nyomtató..."
 
-#: ../src/common/prntbase.cpp:109 ../src/common/prntbase.cpp:154
-#, fuzzy
+#: ../src/common/prntbase.cpp:109
+#: ../src/common/prntbase.cpp:154
 msgid "Printing "
 msgstr "Nyomtatás"
 
@@ -2412,7 +2419,8 @@ msgstr "Quarto, 215 x 275 mm"
 msgid "Question"
 msgstr "Kérdés"
 
-#: ../src/common/ffile.cpp:125 ../src/common/ffile.cpp:146
+#: ../src/common/ffile.cpp:125
+#: ../src/common/ffile.cpp:146
 #, c-format
 msgid "Read error on file '%s'"
 msgstr "Olvasási hiba a(z) '%s' fájlban"
@@ -2420,7 +2428,7 @@ msgstr "Olvas
 #: ../contrib/src/xrc/xmlres.cpp:498
 #, c-format
 msgid "Referenced object node with ref=\"%s\" not found!"
-msgstr ""
+msgstr "A ref=\"%s\" számmal hivatkozott objektum csomópontot nem találom!"
 
 #: ../src/msw/registry.cpp:535
 #, c-format
@@ -2450,7 +2458,7 @@ msgstr "M
 
 #: ../src/msw/thread.cpp:246
 msgid "ReleaseMutex()"
-msgstr ""
+msgstr "ReleaseMutex()"
 
 #: ../src/generic/helphtml.cpp:334
 msgid "Relevant entries:"
@@ -2465,17 +2473,16 @@ msgid "Remove current page from bookmarks"
 msgstr "Töröld ezt az oldalt a könyvjelzõk közül"
 
 #: ../src/generic/fdrepdlg.cpp:177
-#, fuzzy
 msgid "Replace &all"
-msgstr "Helyettesítsem a(z) '%s' fájlt?"
+msgstr "Helyettesítsem &mindet"
 
 #: ../src/generic/fdrepdlg.cpp:129
 msgid "Replace with:"
-msgstr ""
+msgstr "Helyette:"
 
 #: ../contrib/src/xrc/xmlres.cpp:360
 msgid "Resource files must have same version number!"
-msgstr ""
+msgstr "Az erõforrás fájloknak azonos verziószámúaknak kell lenniük!"
 
 #: ../src/generic/prntdlgg.cpp:644
 msgid "Right margin (mm):"
@@ -2485,8 +2492,10 @@ msgstr "Jobb marg
 msgid "Roman"
 msgstr "Roman"
 
-#: ../src/generic/filedlgg.cpp:1602 ../src/gtk/filedlg.cpp:265
-#: ../src/motif/filedlg.cpp:359 ../src/msw/filedlg.cpp:544
+#: ../src/generic/filedlgg.cpp:1602
+#: ../src/gtk/filedlg.cpp:265
+#: ../src/motif/filedlg.cpp:359
+#: ../src/msw/filedlg.cpp:544
 #, c-format
 msgid "Save %s file"
 msgstr "A(z) %s fájl elmentése"
@@ -2496,9 +2505,8 @@ msgid "Save as"
 msgstr "Mentés másként"
 
 #: ../src/generic/filedlgg.cpp:1604
-#, fuzzy
 msgid "Save file"
-msgstr "A(z) %s fájl elmentése"
+msgstr "Fájl elmentése"
 
 #: ../src/generic/logg.cpp:487
 msgid "Save log contents to file"
@@ -2506,45 +2514,40 @@ msgstr "Mentsd a napl
 
 #: ../src/mgl/window.cpp:132
 msgid "Screenshot captured: "
-msgstr ""
+msgstr "Az ernyõképet elmentettem: "
 
 #: ../src/generic/fontdlgg.cpp:223
 msgid "Script"
 msgstr "Script"
 
-#: ../src/html/helpfrm.cpp:408 ../src/html/helpfrm.cpp:423
+#: ../src/html/helpfrm.cpp:408
+#: ../src/html/helpfrm.cpp:423
 #: ../src/html/htmlhelp.cpp:610
 msgid "Search"
 msgstr "Keresés"
 
 #: ../src/html/helpfrm.cpp:410
-msgid ""
-"Search contents of help book(s) for all occurences of the text you typed "
-"above"
-msgstr ""
-"Keresd meg a fentebb beírt szöveg valamennyi elõfordulását a súgó "
-"könyv(ek)ben"
+msgid "Search contents of help book(s) for all occurences of the text you typed above"
+msgstr "Keresd meg a fentebb beírt szöveg valamennyi elõfordulását a súgó könyv(ek)ben"
 
 #: ../src/generic/fdrepdlg.cpp:158
-#, fuzzy
 msgid "Search direction"
-msgstr "Hozzon létre könyvtárat"
+msgstr "Keresési irány"
 
 #: ../src/generic/fdrepdlg.cpp:117
-#, fuzzy
 msgid "Search for:"
-msgstr "Keresés"
+msgstr "Keresés:"
 
 #: ../src/html/helpfrm.cpp:789
 msgid "Search in all books"
 msgstr "Keresés az összes könyvben"
 
 #: ../src/html/htmlhelp.cpp:593
-#, fuzzy
 msgid "Search!"
-msgstr "Keresés"
+msgstr "Keress!"
 
-#: ../src/html/helpfrm.cpp:650 ../src/html/htmlhelp.cpp:383
+#: ../src/html/helpfrm.cpp:650
+#: ../src/html/htmlhelp.cpp:383
 #: ../src/html/htmlhelp.cpp:441
 msgid "Searching..."
 msgstr "Keresek..."
@@ -2560,13 +2563,14 @@ msgstr "Keres
 
 #: ../src/common/docview.cpp:1538
 msgid "Select a document template"
-msgstr "Válasszon dokumentum template-et"
+msgstr "Válasszon dokumentum mintát"
 
 #: ../src/common/docview.cpp:1614
 msgid "Select a document view"
 msgstr "Válasszon dokumentum nézetet"
 
-#: ../src/common/docview.cpp:1405 ../src/common/docview.cpp:1456
+#: ../src/common/docview.cpp:1405
+#: ../src/common/docview.cpp:1456
 msgid "Select a file"
 msgstr "Válasszon fájlt"
 
@@ -2585,9 +2589,7 @@ msgstr "Be
 
 #: ../src/msw/dialup.cpp:518
 msgid "Several active dialup connections found, choosing one randomly."
-msgstr ""
-"Több aktív telefonkapcsolatot találtam, az egyiket véletlenszerûen "
-"kiválasztom."
+msgstr "Több aktív telefonkapcsolatot találtam, az egyiket véletlenszerûen kiválasztom."
 
 #: ../src/html/helpfrm.cpp:364
 msgid "Show all"
@@ -2595,18 +2597,19 @@ msgstr "Mutatsd mindet"
 
 #: ../src/html/helpfrm.cpp:375
 msgid "Show all items in index"
-msgstr "Mutatsd meg a tartalomjegyzék valamennyi elemét"
+msgstr "Mutasd meg a tartalom mutató valamennyi elemét"
 
 #: ../src/generic/dirdlgg.cpp:135
-#, fuzzy
 msgid "Show hidden directories"
-msgstr "Mutatsd meg a rejtett fájlokat"
+msgstr "Mutasd meg a rejtett könyvtárokat"
 
-#: ../src/generic/filedlgg.cpp:1160 ../src/generic/filedlgg.cpp:1182
+#: ../src/generic/filedlgg.cpp:1160
+#: ../src/generic/filedlgg.cpp:1182
 msgid "Show hidden files"
-msgstr "Mutatsd meg a rejtett fájlokat"
+msgstr "Mutasd meg a rejtett fájlokat"
 
-#: ../src/html/helpfrm.cpp:501 ../src/html/htmlhelp.cpp:538
+#: ../src/html/helpfrm.cpp:501
+#: ../src/html/htmlhelp.cpp:538
 msgid "Show/hide navigation panel"
 msgstr "Bemutatja/elrejti az irányító elemeket"
 
@@ -2616,13 +2619,14 @@ msgstr "M
 
 #: ../src/generic/fontdlgg.cpp:228
 msgid "Slant"
-msgstr "Dõlt"
+msgstr "Ferde"
 
 #: ../src/common/docview.cpp:304
 msgid "Sorry, could not open this file for saving."
 msgstr "Sajnálom, nem tudtam megnyitni a fájlt mentésre."
 
-#: ../src/common/docview.cpp:341 ../src/common/docview.cpp:354
+#: ../src/common/docview.cpp:341
+#: ../src/common/docview.cpp:354
 #: ../src/common/docview.cpp:1424
 msgid "Sorry, could not open this file."
 msgstr "Sajnálom, nem tudtam megnyitni ezt a fájlt."
@@ -2646,13 +2650,14 @@ msgstr "
 #: ../contrib/src/xrc/xmlres.cpp:558
 #, c-format
 msgid "Subclass '%s' not found for resource '%s', not subclassing!"
-msgstr ""
+msgstr "A(z) '%s' alosztályt nem találtama(z) '%s' erõforráshoz, nem tudom használni!"
 
 #: ../src/generic/fontdlgg.cpp:224
 msgid "Swiss"
 msgstr "Svájci"
 
-#: ../src/common/imagtiff.cpp:204 ../src/common/imagtiff.cpp:215
+#: ../src/common/imagtiff.cpp:204
+#: ../src/common/imagtiff.cpp:215
 #: ../src/common/imagtiff.cpp:326
 msgid "TIFF: Couldn't allocate memory."
 msgstr "TIFF: Nem tudtam memóriát foglalni."
@@ -2691,7 +2696,7 @@ msgstr "Thai (ISO-8859-11)"
 
 #: ../src/common/ftp.cpp:569
 msgid "The FTP server doesn't support passive mode."
-msgstr ""
+msgstr "Az FTP kiszolgáló nem támogatja a passzív módot."
 
 #: ../src/common/fontmap.cpp:630
 #, c-format
@@ -2710,28 +2715,23 @@ msgid "The clipboard format '%d' doesn't exist."
 msgstr "A(z) '%d' vágólap formátum nem létezik."
 
 #: ../src/generic/dirdlgg.cpp:186
-#, fuzzy, c-format
-msgid ""
-"The directory '%s' does not exist\n"
+#, c-format
+msgid "The directory '%s' does not exist\n"
 "Create it now?"
-msgstr ""
-"\n"
-"nem létezik\n"
+msgstr "A '%s' könyvtár nem létezik.\n"
 "Létrehozzam most?"
 
 #: ../src/common/docview.cpp:1802
-#, fuzzy, c-format
-msgid ""
-"The file '%s' doesn't exist and couldn't be opened.\n"
+#, c-format
+msgid "The file '%s' doesn't exist and couldn't be opened.\n"
 "It has been removed from the most recently used files list."
-msgstr ""
-"A(z) '%s' fájl nem létezik és nem nyitható meg.\n"
-"Az MRU fájlok listájáról is el van távolítva."
+msgstr "A(z) '%s' fájl nem létezik és nem nyitható meg.\n"
+"A legutóbb használt fájlok listájáról is el van távolítva."
 
 #: ../src/common/filename.cpp:896
 #, c-format
 msgid "The path '%s' contains too many \"..\"!"
-msgstr ""
+msgstr "A(z) '%s' útvonal túl sok \"..\"-t tartalmaz!"
 
 #: ../src/common/cmdline.cpp:845
 #, c-format
@@ -2749,39 +2749,24 @@ msgstr "A(z) '%s' be
 
 #: ../src/msw/dialup.cpp:406
 #, c-format
-msgid ""
-"The version of remote access service (RAS) installed on this machine is "
-"tooold, please upgrade (the following required function is missing: %s)."
-msgstr ""
-"Az ezen a gépre installált távoli hozzáférési lehetõség  (RAS) túl régi, "
-"kérem frissítsen (A(z) %s szükséges funkció hiányzik)."
+msgid "The version of remote access service (RAS) installed on this machine is tooold, please upgrade (the following required function is missing: %s)."
+msgstr "Az ezen a gépre installált távoli hozzáférési lehetõség  (RAS) túl régi, kérem frissítsen (A(z) %s szükséges funkció hiányzik)."
 
 #: ../src/html/htmprint.cpp:545
-msgid ""
-"There was a problem during page setup: you may need to set a default printer."
-msgstr ""
+msgid "There was a problem during page setup: you may need to set a default printer."
+msgstr "Az oldal beállításakor hiba történt: lehet hogy az alapértelmezett nyomtatót kellene beállítania."
 
 #: ../src/msw/thread.cpp:1214
-msgid ""
-"Thread module initialization failed: can not store value in thread local "
-"storage"
-msgstr ""
-"A szál modul inicializálása nem sikerült: nem tudok értéket tárolni a szál "
-"helyi tárolójába"
+msgid "Thread module initialization failed: can not store value in thread local storage"
+msgstr "A szál modul inicializálása nem sikerült: nem tudok értéket tárolni a szál helyi tárolójába"
 
 #: ../src/unix/threadpsx.cpp:1568
 msgid "Thread module initialization failed: failed to create thread key"
-msgstr ""
-"A szál modul inicializálása nem sikerült: nem sikerült a szálhoz kulcsot "
-"készíteni"
+msgstr "A szál modul inicializálása nem sikerült: nem sikerült a szálhoz kulcsot készíteni"
 
 #: ../src/msw/thread.cpp:1202
-msgid ""
-"Thread module initialization failed: impossible to allocate index in thread "
-"local storage"
-msgstr ""
-"A szál modul inicializálása nem sikerült: nem lehet indexet foglalni a szál "
-"helyi tárolájában"
+msgid "Thread module initialization failed: impossible to allocate index in thread local storage"
+msgstr "A szál modul inicializálása nem sikerült: nem lehet indexet foglalni a szál helyi tárolájában"
 
 #: ../src/unix/threadpsx.cpp:1076
 msgid "Thread priority setting is ignored."
@@ -2789,11 +2774,11 @@ msgstr "A sz
 
 #: ../src/msw/mdi.cpp:189
 msgid "Tile &Horizontally"
-msgstr ""
+msgstr "Csempék &Vízszintesen"
 
 #: ../src/msw/mdi.cpp:190
 msgid "Tile &Vertically"
-msgstr ""
+msgstr "Csempék &Függõlegesen"
 
 #: ../src/generic/filedlgg.cpp:701
 msgid "Time"
@@ -2818,8 +2803,7 @@ msgstr "Fels
 #: ../src/common/fs_mem.cpp:202
 #, c-format
 msgid "Trying to remove file '%s' from memory VFS, but it is not loaded!"
-msgstr ""
-"Megpróbáltam eltávolítani a(z) '%s' fájlt a VFS tárolóból, de nincs betöltve!"
+msgstr "Megpróbáltam eltávolítani a(z) '%s' fájlt a VFS tárolóból, de nincs betöltve!"
 
 #: ../src/common/sckaddr.cpp:126
 msgid "Trying to solve a NULL hostname: giving up"
@@ -2836,22 +2820,32 @@ msgstr "USA standard leporell
 #: ../src/html/htmlwin.cpp:270
 #, c-format
 msgid "Unable to open requested HTML document: %s"
-msgstr "Nem tudom megnyitni a(z) %s HTML dokumentumot"
+msgstr "Nem tudom megnyitni a kért %s HTML dokumentumot."
 
 #: ../src/generic/fontdlgg.cpp:249
 msgid "Underline"
 msgstr "Aláhúzás"
 
-#: ../src/common/resourc2.cpp:305 ../src/common/resourc2.cpp:319
-#: ../src/common/resourc2.cpp:335 ../src/common/resourc2.cpp:349
-#: ../src/common/resourc2.cpp:1370 ../src/common/resourc2.cpp:1384
-#: ../src/common/resourc2.cpp:1400 ../src/common/resourc2.cpp:1414
-#: ../src/common/resource.cpp:1824 ../src/common/resource.cpp:1838
-#: ../src/common/resource.cpp:1855 ../src/common/resource.cpp:1869
-#: ../src/common/resource.cpp:1954 ../src/common/resource.cpp:1968
-#: ../src/common/resource.cpp:1984 ../src/common/resource.cpp:1998
-#: ../src/common/resource.cpp:3038 ../src/common/resource.cpp:3052
-#: ../src/common/resource.cpp:3069 ../src/common/resource.cpp:3083
+#: ../src/common/resourc2.cpp:305
+#: ../src/common/resourc2.cpp:319
+#: ../src/common/resourc2.cpp:335
+#: ../src/common/resourc2.cpp:349
+#: ../src/common/resourc2.cpp:1370
+#: ../src/common/resourc2.cpp:1384
+#: ../src/common/resourc2.cpp:1400
+#: ../src/common/resourc2.cpp:1414
+#: ../src/common/resource.cpp:1824
+#: ../src/common/resource.cpp:1838
+#: ../src/common/resource.cpp:1855
+#: ../src/common/resource.cpp:1869
+#: ../src/common/resource.cpp:1954
+#: ../src/common/resource.cpp:1968
+#: ../src/common/resource.cpp:1984
+#: ../src/common/resource.cpp:1998
+#: ../src/common/resource.cpp:3038
+#: ../src/common/resource.cpp:3052
+#: ../src/common/resource.cpp:3069
+#: ../src/common/resource.cpp:3083
 msgid "Unexpected end of file whilst parsing resource."
 msgstr "Váratlan fájl vége az erõforrás fájl értelmezése során."
 
@@ -2862,11 +2856,11 @@ msgstr "V
 
 #: ../src/common/fontmap.cpp:141
 msgid "Unicode 7 bit (UTF-7)"
-msgstr ""
+msgstr "Unicode 7 bit (UTF-7)"
 
 #: ../src/common/fontmap.cpp:142
 msgid "Unicode 8 bit (UTF-8)"
-msgstr ""
+msgstr "Unicode 8 bit (UTF-8)"
 
 #: ../src/msw/dde.cpp:1020
 #, c-format
@@ -2888,31 +2882,35 @@ msgstr "A(z) %s f
 msgid "Unknown long option '%s'"
 msgstr "Ismeretlen hosszú opció '%s'"
 
-#: ../src/common/cmdline.cpp:573 ../src/common/cmdline.cpp:594
+#: ../src/common/cmdline.cpp:573
+#: ../src/common/cmdline.cpp:594
 #, c-format
 msgid "Unknown option '%s'"
 msgstr "Ismeretlen opció '%s'"
 
 #: ../contrib/src/xrc/xmlres.cpp:628
 msgid "Unknown style flag "
-msgstr ""
+msgstr "Ismererlen stílus jel"
 
 #: ../src/common/mimecmn.cpp:167
 #, c-format
 msgid "Unmatched '{' in an entry for mime type %s."
 msgstr "Páratlan '{' a(z) %s mime típus egyik elemében."
 
-#: ../src/common/cmdproc.cpp:238 ../src/common/cmdproc.cpp:254
+#: ../src/common/cmdproc.cpp:238
+#: ../src/common/cmdproc.cpp:254
 #: ../src/common/cmdproc.cpp:281
 msgid "Unnamed command"
 msgstr "Név nélküli parancs"
 
-#: ../src/common/resourc2.cpp:687 ../src/common/resource.cpp:2343
+#: ../src/common/resourc2.cpp:687
+#: ../src/common/resource.cpp:2343
 #, c-format
 msgid "Unrecognized style %s whilst parsing resource."
 msgstr "Ismeretlen %s stílust találtam az erõforrás értelmezésekor."
 
-#: ../src/mac/clipbrd.cpp:58 ../src/msw/clipbrd.cpp:273
+#: ../src/mac/clipbrd.cpp:58
+#: ../src/msw/clipbrd.cpp:273
 #: ../src/msw/clipbrd.cpp:447
 msgid "Unsupported clipboard format."
 msgstr "Nem támogatott vágólap formátum."
@@ -2920,11 +2918,11 @@ msgstr "Nem t
 #: ../src/common/appcmn.cpp:362
 #, c-format
 msgid "Unsupported theme '%s'."
-msgstr ""
+msgstr "A(z) '%s' bõr nem támogatott."
 
 #: ../src/generic/fdrepdlg.cpp:157
 msgid "Up"
-msgstr ""
+msgstr "Fel"
 
 #: ../src/common/cmdline.cpp:901
 #, c-format
@@ -2951,7 +2949,8 @@ msgstr "N
 msgid "Waiting for subprocess termination failed"
 msgstr "Nem sikerült megvárni az alprocessz befejezõdését"
 
-#: ../src/common/docview.cpp:437 ../src/common/resource.cpp:124
+#: ../src/common/docview.cpp:437
+#: ../src/common/resource.cpp:124
 msgid "Warning"
 msgstr "Figyelmeztetés"
 
@@ -2961,23 +2960,19 @@ msgstr "Figyelmeztet
 
 #: ../src/html/htmlpars.cpp:357
 msgid "Warning: attempt to remove HTML tag handler from empty stack."
-msgstr ""
-"Figyeleztetés: üres veremtárolóból próbál eltávolítani HTML összetevõt."
+msgstr "Figyeleztetés: üres veremtárolóból próbál eltávolítani HTML kifejezés kezelõt."
 
 #: ../src/common/fontmap.cpp:112
-#, fuzzy
 msgid "Western European (ISO-8859-1)"
-msgstr "Nyugat-európai (ISO-8859-1/Latin 1)"
+msgstr "Nyugat-európai (ISO-8859-1)"
 
 #: ../src/common/fontmap.cpp:126
-#, fuzzy
 msgid "Western European with Euro (ISO-8859-15)"
-msgstr "Nyugat-európai Euro-val (ISO-8859-15/Latin 0)"
+msgstr "Nyugat-európai Euro-val (ISO-8859-15)"
 
 #: ../src/generic/fdrepdlg.cpp:149
-#, fuzzy
 msgid "Whole word"
-msgstr "Csak egész szavak"
+msgstr "Egész szó"
 
 #: ../src/html/helpfrm.cpp:407
 msgid "Whole words only"
@@ -2985,7 +2980,7 @@ msgstr "Csak eg
 
 #: ../src/univ/themes/win32.cpp:1168
 msgid "Win32 theme"
-msgstr ""
+msgstr "Win32 bõr"
 
 #: ../src/msw/utils.cpp:979
 msgid "Win32s on Windows 3.1"
@@ -3014,12 +3009,11 @@ msgstr "Windows K
 
 #: ../src/common/fontmap.cpp:129
 msgid "Windows Chinese Simplified (CP 936)"
-msgstr ""
+msgstr "Windows egyszerûsített kínai (CP 936)"
 
 #: ../src/common/fontmap.cpp:131
-#, fuzzy
 msgid "Windows Chinese Traditional (CP 950)"
-msgstr "Windows Nyugat-európai (CP 1252)"
+msgstr "Windows hagyományos kínai (CP 950)"
 
 #: ../src/common/fontmap.cpp:133
 msgid "Windows Cyrillic (CP 1251)"
@@ -3034,14 +3028,12 @@ msgid "Windows Hebrew (CP 1255)"
 msgstr "Windows Héber (CP 1255)"
 
 #: ../src/common/fontmap.cpp:128
-#, fuzzy
 msgid "Windows Japanese (CP 932)"
-msgstr "Windows Görög (CP 1253)"
+msgstr "Windows japán (CP 932)"
 
 #: ../src/common/fontmap.cpp:130
-#, fuzzy
 msgid "Windows Korean (CP 949)"
-msgstr "Windows Görög (CP 1253)"
+msgstr "Windows koreai (CP 949)"
 
 #: ../src/common/fontmap.cpp:136
 msgid "Windows Turkish (CP 1254)"
@@ -3063,37 +3055,41 @@ msgstr "Ir
 #: ../contrib/src/xrc/xml.cpp:530
 #, c-format
 msgid "XML parsing error: '%s' at line %d"
-msgstr ""
+msgstr "XML értelmezési hiba: '%s' a(z) %d sorban"
 
 #: ../src/common/xpmdecod.cpp:759
 msgid "XPM: Malformed pixel data!"
-msgstr ""
+msgstr "XPM: Hiányos pixel adat!"
 
-#: ../src/common/xpmdecod.cpp:709 ../src/common/xpmdecod.cpp:718
+#: ../src/common/xpmdecod.cpp:709
+#: ../src/common/xpmdecod.cpp:718
 #, c-format
 msgid "XPM: malformed colour definition '%s'!"
-msgstr ""
+msgstr "XPM: hiányos szín meghatározás '%s'!"
 
 #: ../contrib/src/xrc/xmlres.cpp:436
-#, fuzzy, c-format
+#, c-format
 msgid "XRC resource '%s' (class '%s') not found!"
-msgstr "Nem találom a(z) %s ikon erõforrás meghatározását."
+msgstr "Nem találom a(z) '%s'  XRC erõforrást ('%s' osztály)."
 
-#: ../contrib/src/xrc/xmlres.cpp:787 ../contrib/src/xrc/xmlres.cpp:798
+#: ../contrib/src/xrc/xmlres.cpp:787
+#: ../contrib/src/xrc/xmlres.cpp:798
 #, c-format
 msgid "XRC resource: Cannot create bitmap from '%s'."
-msgstr ""
+msgstr "XRC erõforrás: Nem tudom létrehozni a(z) '%s'-bõl a bittérképet."
 
-#: ../contrib/src/xrc/xh_dlg.cpp:52 ../contrib/src/xrc/xh_frame.cpp:57
+#: ../contrib/src/xrc/xh_dlg.cpp:52
+#: ../contrib/src/xrc/xh_frame.cpp:57
 msgid "XRC resource: Cannot create dialog without instance."
-msgstr ""
+msgstr "XRC erõforrás: Nem tudom létrehozni a párbeszédablakot létrehozott példány nélkül."
 
 #: ../contrib/src/xrc/xmlres.cpp:747
 #, c-format
 msgid "XRC resource: Incorrect colour specification '%s' for property '%s'."
-msgstr ""
+msgstr "XRC erõforrás: Helytelen szín meghatározás '%s' a '%s' tulajdonságnál."
 
-#: ../src/common/dlgcmn.cpp:151 ../src/mac/msgdlg.cpp:77
+#: ../src/common/dlgcmn.cpp:151
+#: ../src/mac/msgdlg.cpp:77
 #: ../src/motif/msgdlg.cpp:182
 msgid "Yes"
 msgstr "Igen"
@@ -3102,9 +3098,10 @@ msgstr "Igen"
 msgid "You cannot add a new directory to this section."
 msgstr "Nem tud könyvtárat hozzáadni ehhez a szakaszhoz."
 
-#: ../src/common/fs_zip.cpp:86 ../src/common/fs_zip.cpp:123
+#: ../src/common/fs_zip.cpp:86
+#: ../src/common/fs_zip.cpp:123
 msgid "ZIP handler currently supports only local files!"
-msgstr ""
+msgstr "A ZIP kezelõ jelenleg csak helyi fájlokat támogat!"
 
 #: ../src/common/docview.cpp:1951
 msgid "[EMPTY]"
@@ -3116,13 +3113,11 @@ msgstr "a DDEML alkalmaz
 
 #: ../src/msw/dde.cpp:975
 msgid ""
-"a DDEML function was called without first calling the DdeInitialize "
-"function,\n"
+"a DDEML function was called without first calling the DdeInitialize function,\n"
 "or an invalid instance identifier\n"
 "was passed to a DDEML function."
 msgstr ""
-"egy DDEML függvényt hívott anélkül, hogy elõször a  DdeInitialize függvényt "
-"hívta volna,\n"
+"egy DDEML függvényt hívott anélkül, hogy elõször a  DdeInitialize függvényt hívta volna,\n"
 "vagy érvénytelen instance azonosítót \n"
 "adott át a DDEML függvénynek."
 
@@ -3156,8 +3151,7 @@ msgstr "a szinkron adatlerak
 
 #: ../src/msw/dde.cpp:1014
 msgid "a request to end an advise transaction has timed out."
-msgstr ""
-"a  tanácskozási tranzakció befejezésének kérése nem fejezõdött be idõre."
+msgstr "a  tanácskozási tranzakció befejezésének kérése nem fejezõdött be idõre."
 
 #: ../src/msw/dde.cpp:1008
 msgid ""
@@ -3210,23 +3204,19 @@ msgstr ""
 #: ../src/common/fileconf.cpp:1570
 #, c-format
 msgid "attempt to change immutable key '%s' ignored."
-msgstr ""
-"elhanyagoltam a változtathatatlan '%s' kulcs megváltoztatására tett "
-"kísérletét."
+msgstr "elhanyagoltam a változtathatatlan '%s' kulcs megváltoztatására tett kísérletét."
 
 #: ../src/common/ftp.cpp:369
 msgid "binary"
-msgstr ""
+msgstr "bináris"
 
 #: ../src/common/fontcmn.cpp:518
-#, fuzzy
 msgid "bold"
-msgstr "Félkövér"
+msgstr "félkövér"
 
 #: ../src/common/fontcmn.cpp:442
-#, fuzzy
 msgid "bold "
-msgstr "Félkövér"
+msgstr "félkövér"
 
 #: ../src/common/ffile.cpp:93
 #, c-format
@@ -3256,21 +3246,16 @@ msgstr "nem tudom t
 #: ../src/common/file.cpp:454
 #, c-format
 msgid "can't determine if the end of file is reached on descriptor %d"
-msgstr ""
-"nem tudom meghatározni, hogy a fájl végét értük-e el a(z) %d leíróval "
-"megadott fájlban"
+msgstr "nem tudom meghatározni, hogy a fájl végét értük-e el a(z) %d leíróval megadott fájlban"
 
 #: ../src/common/file.cpp:420
 #, c-format
 msgid "can't find length of file on file descriptor %d"
-msgstr ""
-"nem tudom meghatározni a fájl hosszát a(z) %d leíróval megadott fájlban"
+msgstr "nem tudom meghatározni a fájl hosszát a(z) %d leíróval megadott fájlban"
 
 #: ../src/msw/utils.cpp:369
 msgid "can't find user's HOME, using current directory."
-msgstr ""
-"nem tudom meghatározni a felhasználó saját könyvtárát, a jelenlegit "
-"használom tovább."
+msgstr "nem tudom meghatározni a felhasználó saját könyvtárát, a jelenlegit használom tovább."
 
 #: ../src/common/file.cpp:334
 #, c-format
@@ -3286,7 +3271,8 @@ msgstr "nem tal
 msgid "can't load any font, aborting"
 msgstr "egyetlen jelkészletet sem tudok betölteni, kilépek"
 
-#: ../src/common/ffile.cpp:77 ../src/common/file.cpp:257
+#: ../src/common/ffile.cpp:77
+#: ../src/common/file.cpp:257
 #, c-format
 msgid "can't open file '%s'"
 msgstr "nem tudom megnyitni a(z) '%s' fájlt"
@@ -3326,9 +3312,9 @@ msgid "can't seek on file descriptor %d"
 msgstr "nem tudok keresni a(z) %d leíróval megadott fájlban"
 
 #: ../src/common/textfile.cpp:196
-#, fuzzy, c-format
+#, c-format
 msgid "can't write buffer '%s' to disk."
-msgstr "nem tudom a mágneslemezre írni a(z) '%s' fájlt."
+msgstr "nem tudom a mágneslemezre írni a(z) '%s' puffert."
 
 #: ../src/common/file.cpp:319
 #, c-format
@@ -3353,9 +3339,8 @@ msgid "date"
 msgstr "dátum"
 
 #: ../src/common/fontmap.cpp:413
-#, fuzzy
 msgid "default"
-msgstr "alt"
+msgstr "alapértelmezés"
 
 #: ../src/common/datetime.cpp:3237
 msgid "eighteenth"
@@ -3404,14 +3389,12 @@ msgstr "'%s' f
 #: ../src/common/fileconf.cpp:667
 #, c-format
 msgid "file '%s', line %d: key '%s' was first found at line %d."
-msgstr ""
-"'%s' fájl, %d. sor: a(z) '%s' kulcsot elõször a(z) %d sorban találtam meg."
+msgstr "'%s' fájl, %d. sor: a(z) '%s' kulcsot elõször a(z) %d sorban találtam meg."
 
 #: ../src/common/fileconf.cpp:657
 #, c-format
 msgid "file '%s', line %d: value for immutable key '%s' ignored."
-msgstr ""
-"file '%s', line %d: a változtathatatlan '%s' kulcs új értékét elhanyagoltam."
+msgstr "file '%s', line %d: a változtathatatlan '%s' kulcs új értékét elhanyagoltam."
 
 #: ../src/common/fileconf.cpp:580
 #, c-format
@@ -3432,7 +3415,7 @@ msgstr "negyedik"
 
 #: ../src/common/appcmn.cpp:301
 msgid "generate verbose log messages"
-msgstr ""
+msgstr "készíts bõbeszédû naplóbejegyzéseket "
 
 #: ../src/common/timercmn.cpp:282
 msgid "gmtime() failed"
@@ -3450,24 +3433,22 @@ msgstr "
 msgid "invalid message box return value"
 msgstr "érvénytelen üzenet ablak visszatérési érték"
 
-#: ../src/common/fontcmn.cpp:458 ../src/common/fontcmn.cpp:522
-#, fuzzy
+#: ../src/common/fontcmn.cpp:458
+#: ../src/common/fontcmn.cpp:522
 msgid "italic"
-msgstr "Dõlt"
+msgstr "dõlt"
 
 #: ../src/html/helpfrm.cpp:935
 msgid "large"
 msgstr "nagy"
 
 #: ../src/common/fontcmn.cpp:514
-#, fuzzy
 msgid "light"
-msgstr "Vékony"
+msgstr "vékony"
 
 #: ../src/common/fontcmn.cpp:438
-#, fuzzy
 msgid "light "
-msgstr "Vékony"
+msgstr "vékony"
 
 #: ../src/common/intl.cpp:615
 #, c-format
@@ -3503,7 +3484,8 @@ msgstr "kilencedik"
 msgid "no DDE error."
 msgstr "nincs DDE hiba."
 
-#: ../src/html/helpdata.cpp:561 ../src/html/htmlhelp.cpp:201
+#: ../src/html/helpdata.cpp:561
+#: ../src/html/htmlhelp.cpp:201
 msgid "noname"
 msgstr "névtelen"
 
@@ -3517,7 +3499,7 @@ msgstr "num"
 
 #: ../src/common/filename.cpp:162
 msgid "reading"
-msgstr ""
+msgstr "olvasok"
 
 #: ../src/msw/dde.cpp:1005
 msgid "reentrancy problem."
@@ -3541,7 +3523,7 @@ msgstr "eltol"
 
 #: ../src/common/appcmn.cpp:291
 msgid "show this help message"
-msgstr ""
+msgstr "mutassa meg ezt az üzenetet a súgóban"
 
 #: ../src/common/datetime.cpp:3235
 msgid "sixteenth"
@@ -3557,11 +3539,11 @@ msgstr "kicsi"
 
 #: ../src/common/appcmn.cpp:326
 msgid "specify display mode to use (e.g. 640x480-16)"
-msgstr ""
+msgstr "jelölje ki a használandó megjelenítési módot (pl.. 640x480-16)"
 
 #: ../src/common/appcmn.cpp:312
 msgid "specify the theme to use"
-msgstr ""
+msgstr "jelölje ki a használandó bõrt"
 
 #: ../src/common/cmdline.cpp:1032
 msgid "str"
@@ -3600,14 +3582,12 @@ msgid "twentieth"
 msgstr "huszadik"
 
 #: ../src/common/fontcmn.cpp:510
-#, fuzzy
 msgid "underlined"
-msgstr "Aláhúzás"
+msgstr "aláhúzott"
 
 #: ../src/common/fontcmn.cpp:425
-#, fuzzy
 msgid "underlined "
-msgstr "Aláhúzás"
+msgstr "aláhúzott"
 
 #: ../src/common/fileconf.cpp:1684
 #, c-format
@@ -3619,9 +3599,8 @@ msgid "unknown"
 msgstr "ismeretlen"
 
 #: ../src/common/regex.cpp:144
-#, fuzzy
 msgid "unknown error"
-msgstr "GIF: ismeretlen hiba!!!"
+msgstr "ismeretlen hiba"
 
 #: ../src/msw/dialup.cpp:445
 #, c-format
@@ -3660,19 +3639,18 @@ msgid "very small"
 msgstr "nagyon kicsi"
 
 #: ../src/common/filename.cpp:162
-#, fuzzy
 msgid "writing"
-msgstr "Nyomtatás"
+msgstr "kiírás"
 
 #: ../src/common/dynlib.cpp:336
 #, c-format
 msgid "wxDllLoader failed to GetSymbol '%s'"
-msgstr ""
+msgstr "wxDllLoader-ben GetSymbol nem találta '%s'-t"
 
 #: ../src/common/dynload.cpp:278
 #, c-format
 msgid "wxDynamicLibrary failed to GetSymbol '%s'"
-msgstr ""
+msgstr "wxDynamicLibrary-ben GetSymbol nem találta '%s'-t"
 
 #: ../src/common/timercmn.cpp:327
 msgid "wxGetTimeOfDay failed."
@@ -3680,15 +3658,16 @@ msgstr "wxGetTimeOfDay hib
 
 #: ../src/html/search.cpp:49
 msgid "wxSearchEngine::LookFor must be called before scanning!"
-msgstr ""
+msgstr "Az átnézés elõtt meg kell hívni a wxSearchEngine::LookFor-t!"
 
-#: ../src/common/socket.cpp:394 ../src/common/socket.cpp:448
+#: ../src/common/socket.cpp:394
+#: ../src/common/socket.cpp:448
 msgid "wxSocket: invalid signature in ReadMsg."
 msgstr "wxSocket: érvénytelen aláírás  ReadMsg-ben."
 
 #: ../src/common/socket.cpp:975
 msgid "wxSocket: unknown event!."
-msgstr "wxSocket: ismeretlen esemény!."
+msgstr "wxSocket: ismeretlen esemény."
 
 #: ../src/motif/app.cpp:590
 #, c-format
@@ -3696,165 +3675,10 @@ msgid "wxWindows could not open display for '%s': exiting."
 msgstr "a wxWindows nem tudott képernyõt nyitni '%s' számára: kilépés."
 
 #: ../src/x11/app.cpp:265
-#, fuzzy
 msgid "wxWindows could not open display. Exiting."
-msgstr "a wxWindows nem tudott képernyõt nyitni '%s' számára: kilépés."
+msgstr "A wxWindows nem tudott képernyõt nyitni. Kilépés."
 
 #: ../src/common/datetime.cpp:3065
 msgid "yesterday"
 msgstr "tegnap"
 
-#, fuzzy
-#~ msgid "All files (*.*)|*.*"
-#~ msgstr "Minden fájlt (*)|*"
-
-#~ msgid "Can not create mutex"
-#~ msgstr "Nem tudom létrehozni a mutexet"
-
-#~ msgid "Can't create the inter-process read pipe"
-#~ msgstr "Nem tudom létrehozni a processek közötti csövet olvasásra"
-
-#~ msgid "Can't create the inter-process write pipe"
-#~ msgstr "Nem tudom létrehozni a processek közötti csövet írásra"
-
-#~ msgid "Couldn't acquire a mutex lock"
-#~ msgstr "Nem kapok mutex lezárást"
-
-#~ msgid "Couldn't release a mutex"
-#~ msgstr "Nem tudtam elengedni a mutex-et"
-
-#~ msgid "Font"
-#~ msgstr "Jelkészlet"
-
-#~ msgid "PostScript"
-#~ msgstr "PostScript"
-
-#~ msgid "PostScript:"
-#~ msgstr "PostScript:"
-
-#~ msgid "Preview Only"
-#~ msgstr "Csak elõkép"
-
-#~ msgid "Printer Command: "
-#~ msgstr "Nyomtató parancs: "
-
-#~ msgid "Printer Options: "
-#~ msgstr "Nyomtató lehetõségek: "
-
-#~ msgid "Printer Settings"
-#~ msgstr "Nyomtató beállítások"
-
-#~ msgid "Send to Printer"
-#~ msgstr "Küldd a nyomtatóra"
-
-#, fuzzy
-#~ msgid "SetPixelFormat failed."
-#~ msgstr "A csõ létrehozása nem sikerült"
-
-#~ msgid "X Scaling"
-#~ msgstr "X skálázás"
-
-#~ msgid "X Translation"
-#~ msgstr "X eltolás"
-
-#~ msgid "Y Scaling"
-#~ msgstr "Y skálázás"
-
-#~ msgid "Y Translation"
-#~ msgstr "Y eltolás"
-
-#, fuzzy
-#~ msgid "unknown line terminator"
-#~ msgstr "ismeretlen keresési kezdõpont"
-
-#, fuzzy
-#~ msgid "Fatal Error"
-#~ msgstr "Végzetes hiba"
-
-#, fuzzy
-#~ msgid "Fatal error: %s\n"
-#~ msgstr "Végzetes hiba:"
-
-#~ msgid "Back"
-#~ msgstr "Vissza"
-
-#~ msgid "Can not create event object."
-#~ msgstr "Nem tudom létrehozni az esemény objektumot."
-
-#~ msgid ""
-#~ "Can't create window of class %s!\n"
-#~ "Possible Windows 3.x compatibility problem?"
-#~ msgstr ""
-#~ "Nem tudom létrehozni a(z) %s osztályú ablakot!\n"
-#~ " Windows 3.x kompatibilitás probléma lehet?"
-
-#~ msgid ""
-#~ "Can't find dialog template '%s'!\n"
-#~ "Check resource include path for finding wx.rc."
-#~ msgstr ""
-#~ "Nem találom a(z) '%s' párbeszéd template-et!\n"
-#~ "Ellenõrizze a wx.rc erõforrás elérési útvonalát."
-
-#~ msgid "Can't find the serialization object '%s' for the object '%s'."
-#~ msgstr ""
-#~ "Nem találom a soros ki-bemeneti '%s' objektumot a(z) '%s' objektumhoz."
-
-#~ msgid "Can't load wxSerial dynamic library."
-#~ msgstr "Nem tudom betölteni a  wxSerial dinamikus könyvtárat."
-
-#~ msgid "Connection to wxHelp timed out in %d seconds"
-#~ msgstr "A wxHelp-pel nem jött létre kapcsolat %d másodperc alatt"
-
-#~ msgid "Couldn't launch DDE server '%s'."
-#~ msgstr "Nem tudtam elindítani a '%s' DDE kiszolgálót."
-
-#~ msgid "Cyrillic (Latin 5)"
-#~ msgstr "Cirill (Latin 5)"
-
-#~ msgid "Etcetera"
-#~ msgstr "Satöbbi"
-
-#~ msgid "Incorrect version of HTML help book"
-#~ msgstr "A HTML súgó könyv változata nem megfelelõ"
-
-#~ msgid "Mounted Devices"
-#~ msgstr "Hozzáférhetõ eszközök"
-
-#~ msgid "My Harddisk"
-#~ msgstr "Az Én Mágneslemezem"
-
-#~ msgid "My Home"
-#~ msgstr "Az Én Saját Könyvtáram"
-
-#~ msgid "New..."
-#~ msgstr "Új..."
-
-#~ msgid "No XPM facility available!"
-#~ msgstr "Nincs XPM felhasználási lehetõség!"
-
-#~ msgid "Please wait..."
-#~ msgstr "Kérem várjon..."
-
-#~ msgid "Temporary"
-#~ msgstr "Idõleges"
-
-#~ msgid "The Computer"
-#~ msgstr "A Számítógép"
-
-#~ msgid "The directory "
-#~ msgstr "A könyvtár "
-
-#~ msgid "User"
-#~ msgstr "Felhasználó"
-
-#~ msgid "User Local"
-#~ msgstr "Helyi felhasználó"
-
-#~ msgid "Variables"
-#~ msgstr "Változók"
-
-#~ msgid "Window"
-#~ msgstr "Ablak"
-
-#~ msgid "wxWindows: error finding temporary file name.\n"
-#~ msgstr "wxWindows: hiba az idõszakos fájlnév keresésekor.\n"
diff --git a/locale/id.po b/locale/id.po
new file mode 100644
index 0000000000..e2965b774e
--- /dev/null
+++ b/locale/id.po
@@ -0,0 +1,3713 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: wxWindows Internationalization\n"
+"POT-Creation-Date: 2002-08-21 16:39+0200\n"
+"PO-Revision-Date: 2002-10-22 23:28+0700\n"
+"Last-Translator: Bambang Purnomosidi D. P. <i-am-the-boss@bpdp.org>\n"
+"Language-Team: ID <i-am-the-boss@bpdp.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../src/common/log.cpp:304
+#, c-format
+msgid " (error %ld: %s)"
+msgstr " (kesalahan %ld: %s)"
+
+#: ../src/common/docview.cpp:1240
+msgid " - "
+msgstr " - "
+
+#: ../src/html/htmprint.cpp:502
+msgid " Preview"
+msgstr " Preview"
+
+#: ../src/generic/filedlgg.cpp:476
+msgid " bytes "
+msgstr " byte"
+
+#: ../src/common/paper.cpp:124
+msgid "#10 Envelope, 4 1/8 x 9 1/2 in"
+msgstr "Amplop #10, 4 1/8 x 9 1/2 inci"
+
+#: ../src/common/paper.cpp:125
+msgid "#11 Envelope, 4 1/2 x 10 3/8 in"
+msgstr "Amplop #11, 4 1/2 x 10 3/8 inci"
+
+#: ../src/common/paper.cpp:126
+msgid "#12 Envelope, 4 3/4 x 11 in"
+msgstr "Amplop #12, 4 3/4 x 11 inci"
+
+#: ../src/common/paper.cpp:127
+msgid "#14 Envelope, 5 x 11 1/2 in"
+msgstr "Amplop #14, 5 x 11 1/2 inci"
+
+#: ../src/common/paper.cpp:123
+msgid "#9 Envelope, 3 7/8 x 8 7/8 in"
+msgstr "Amplop #9, 3 7/8 x 8 7/8 inci"
+
+#: ../src/common/resourc2.cpp:265
+#: ../src/common/resourc2.cpp:1326
+#: ../src/common/resource.cpp:1784
+#: ../src/common/resource.cpp:1914
+#: ../src/common/resource.cpp:2994
+#, c-format
+msgid "#define %s must be an integer."
+msgstr "#define %s harus berupa integer."
+
+#: ../src/common/prntbase.cpp:376
+#, c-format
+msgid "%d"
+msgstr "%d"
+
+#: ../src/common/prntbase.cpp:374
+#, c-format
+msgid "%d...%d"
+msgstr "%d...%d"
+
+#: ../src/html/helpfrm.cpp:772
+#: ../src/html/helpfrm.cpp:773
+#: ../src/html/helpfrm.cpp:1376
+#: ../src/html/helpfrm.cpp:1406
+#, c-format
+msgid "%i of %i"
+msgstr "%i dari %i"
+
+#: ../src/common/cmdline.cpp:813
+#, c-format
+msgid "%s (or %s)"
+msgstr "%s (atau %s)"
+
+#: ../src/generic/logg.cpp:246
+#, c-format
+msgid "%s Error"
+msgstr "Kesalahan %s "
+
+#: ../src/generic/logg.cpp:254
+#, c-format
+msgid "%s Information"
+msgstr "Informasi %s "
+
+#: ../src/generic/logg.cpp:250
+#, c-format
+msgid "%s Warning"
+msgstr "Peringatan %s"
+
+#: ../src/common/resourc2.cpp:709
+#: ../src/common/resource.cpp:2366
+#, c-format
+msgid "%s not a bitmap resource specification."
+msgstr "%s bukan suatu spesifikasi sesumber bitmap."
+
+#: ../src/common/resourc2.cpp:860
+#: ../src/common/resource.cpp:2520
+#, c-format
+msgid "%s not an icon resource specification."
+msgstr "%s bukan suatu spesifikasi sesumber ikon"
+
+#: ../src/common/resourc2.cpp:357
+#: ../src/common/resourc2.cpp:1422
+#: ../src/common/resource.cpp:1877
+#: ../src/common/resource.cpp:2006
+#: ../src/common/resource.cpp:3091
+#, c-format
+msgid "%s: ill-formed resource file syntax."
+msgstr "%s: bentuk sintaksis file sesumber tidak baik."
+
+#: ../src/msw/mdi.cpp:192
+msgid "&Arrange Icons"
+msgstr "&Susun ikon"
+
+#: ../src/generic/fdrepdlg.cpp:170
+#: ../src/generic/wizard.cpp:260
+msgid "&Cancel"
+msgstr "&Batal"
+
+#: ../src/msw/mdi.cpp:188
+msgid "&Cascade"
+msgstr "&Cascade"
+
+#: ../src/generic/logg.cpp:491
+#: ../src/generic/tipdlg.cpp:171
+msgid "&Close"
+msgstr "&Tutup"
+
+#: ../src/generic/logg.cpp:695
+msgid "&Details"
+msgstr "&Rinci"
+
+#: ../src/generic/fdrepdlg.cpp:168
+msgid "&Find"
+msgstr "&Temukan"
+
+#: ../src/generic/wizard.cpp:396
+msgid "&Finish"
+msgstr "&Selesai"
+
+#: ../src/generic/wizard.cpp:249
+msgid "&Help"
+msgstr "&Pertolongan"
+
+#: ../src/generic/logg.cpp:492
+msgid "&Log"
+msgstr "&Log"
+
+#: ../src/univ/themes/win32.cpp:4539
+msgid "&Move"
+msgstr "&Pindah"
+
+#: ../src/msw/mdi.cpp:193
+msgid "&Next"
+msgstr "&Berikut"
+
+#: ../src/generic/wizard.cpp:257
+#: ../src/generic/wizard.cpp:398
+msgid "&Next >"
+msgstr "&Berikutnya >"
+
+#: ../src/generic/tipdlg.cpp:176
+msgid "&Next Tip"
+msgstr "&Tip Berikutnya"
+
+#: ../src/msw/mdi.cpp:194
+msgid "&Previous"
+msgstr "&Sebelumnya"
+
+#: ../src/common/cmdproc.cpp:261
+#: ../src/common/cmdproc.cpp:272
+msgid "&Redo"
+msgstr "&Kerjakan Lagi"
+
+#: ../src/common/cmdproc.cpp:255
+#: ../src/common/cmdproc.cpp:282
+msgid "&Redo "
+msgstr "&Kerjakan Lagi"
+
+#: ../src/generic/fdrepdlg.cpp:174
+msgid "&Replace"
+msgstr "&Ganti"
+
+#: ../src/univ/themes/win32.cpp:4538
+msgid "&Restore"
+msgstr "&Kembali ke keadaan semula"
+
+#: ../src/generic/logg.cpp:487
+#: ../src/generic/logg.cpp:818
+msgid "&Save..."
+msgstr "&Simpan..."
+
+#: ../src/generic/tipdlg.cpp:173
+msgid "&Show tips at startup"
+msgstr "&Tampilkan tip-tip pada saat program dimulai"
+
+#: ../src/univ/themes/win32.cpp:4541
+msgid "&Size"
+msgstr "&Ukuran"
+
+#: ../src/common/cmdproc.cpp:267
+msgid "&Undo"
+msgstr "&Batal mengerjakan"
+
+#: ../src/common/cmdproc.cpp:241
+msgid "&Undo "
+msgstr "&Batal mengerjakan"
+
+#: ../src/msw/mdi.cpp:1328
+#: ../src/msw/mdi.cpp:1335
+#: ../src/msw/mdi.cpp:1360
+msgid "&Window"
+msgstr "&Jendela"
+
+#: ../src/common/config.cpp:394
+#: ../src/msw/regconf.cpp:264
+#, c-format
+msgid "'%s' has extra '..', ignored."
+msgstr "'%s' mempunyai '..' ekstra, abaikan."
+
+#: ../src/common/valtext.cpp:147
+#: ../src/common/valtext.cpp:177
+#: ../src/common/valtext.cpp:183
+#, c-format
+msgid "'%s' is invalid"
+msgstr "'%s' tidak sah"
+
+#: ../src/common/cmdline.cpp:733
+#, c-format
+msgid "'%s' is not a correct numeric value for option '%s'."
+msgstr "'%s' bukan suatu nilai numeris yang benar untuk pilihan '%s'."
+
+#: ../src/common/intl.cpp:402
+#, c-format
+msgid "'%s' is not a valid message catalog."
+msgstr "'%s' bukan suatu katalog pesan yang sah."
+
+#: ../src/common/textbuf.cpp:245
+#, c-format
+msgid "'%s' is probably a binary buffer."
+msgstr "'%s' mungkin suatu buffer biner."
+
+#: ../src/common/valtext.cpp:172
+#, c-format
+msgid "'%s' should be numeric."
+msgstr "'%s' harus numeris."
+
+#: ../src/common/valtext.cpp:154
+#, c-format
+msgid "'%s' should only contain ASCII characters."
+msgstr "'%s' harus hanya berisi karakter-karakter ASCII."
+
+#: ../src/common/valtext.cpp:160
+#, c-format
+msgid "'%s' should only contain alphabetic characters."
+msgstr "'%s' harus hanya berisi karakter-karakter alfabetis."
+
+#: ../src/common/valtext.cpp:166
+#, c-format
+msgid "'%s' should only contain alphabetic or numeric characters."
+msgstr "'%s' harus hanya berisi karakter-karakter alfabetis atau numeris."
+
+#: ../src/html/helpfrm.cpp:709
+#: ../src/html/htmlhelp.cpp:638
+msgid "(Help)"
+msgstr "(Tolong)"
+
+#: ../src/html/helpfrm.cpp:310
+#: ../src/html/helpfrm.cpp:840
+#: ../src/html/helpfrm.cpp:1433
+msgid "(bookmarks)"
+msgstr "(bookmark)"
+
+#: ../src/common/resourc2.cpp:297
+#: ../src/common/resourc2.cpp:1362
+#: ../src/common/resource.cpp:1816
+#: ../src/common/resource.cpp:1946
+#: ../src/common/resource.cpp:3030
+msgid ""
+", expected static, #include or #define\n"
+"whilst parsing resource."
+msgstr ""
+", diharapkan static, #include atau #define\n"
+" saat sedang mem-parsing sesumber"
+
+#: ../src/generic/dirctrlg.cpp:698
+#: ../src/generic/filedlgg.cpp:929
+msgid "."
+msgstr "."
+
+#: ../src/generic/dirctrlg.cpp:699
+#: ../src/generic/filedlgg.cpp:930
+msgid ".."
+msgstr ".."
+
+#: ../src/common/paper.cpp:120
+msgid "10 x 14 in"
+msgstr "10 x 14 inci"
+
+#: ../src/common/paper.cpp:121
+msgid "11 x 17 in"
+msgstr "11 x 17 inci"
+
+#: ../src/common/paper.cpp:139
+msgid "6 3/4 Envelope, 3 5/8 x 6 1/2 in"
+msgstr "Amplop 6 3/4, 3 5/8 x 6 1/2 in"
+
+#: ../src/html/htmprint.cpp:282
+msgid ": file does not exist!"
+msgstr ": file tidak ada!"
+
+#: ../src/common/fontmap.cpp:626
+msgid ": unknown charset"
+msgstr ": charset tidak diketahui"
+
+#: ../src/common/fontmap.cpp:857
+msgid ": unknown encoding"
+msgstr ": pengkodean tidak diketahui"
+
+#: ../src/generic/wizard.cpp:254
+msgid "< &Back"
+msgstr "< &Kembali"
+
+#: ../src/generic/filedlgg.cpp:504
+msgid "<DIR>"
+msgstr "<DIR>"
+
+#: ../src/generic/filedlgg.cpp:471
+msgid "<DIR> "
+msgstr "<DIR> "
+
+#: ../src/generic/filedlgg.cpp:505
+msgid "<LINK>"
+msgstr "<LINK>"
+
+#: ../src/generic/filedlgg.cpp:472
+msgid "<LINK> "
+msgstr "<LINK> "
+
+#: ../src/html/helpfrm.cpp:992
+msgid "<html><body>Normal face<br>(and <u>underlined</u>. <i>Italic face.</i> <b>Bold face.</b> <b><i>Bold italic face.</i></b><br><font size=-2>font size -2</font><br><font size=-1>font size -1</font><br><font size=+0>font size +0</font><br><font size=+1>font size +1</font><br><font size=+2>font size +2</font><br><font size=+3>font size +3</font><br><font size=+4>font size +4</font><br><p><tt>Fixed size face.<br> <b>bold</b> <i>italic</i> <b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size -2</font><br><font size=-1>font size -1</font><br><font size=+0>font size +0</font><br><font size=+1>font size +1</font><br><font size=+2>font size +2</font><br><font size=+3>font size +3</font><br><font size=+4>font size +4</font></tt></body></html>"
+msgstr "<html><body>Tampilah normal<br>(dan <u>bergaris bawah</u>. <i>Tampilan miring.</i> <b>Tampilan tebal.</b> <b><i>Tampilan miring tebal.</i></b><br><font size=-2>ukuran huruf -2</font><br><font size=-1>ukuran huruf -1</font><br><font size=+0>ukuran huruf</font><br><font size=+1>ukuran huruf +1</font><br><font size=+2>ukuran huruf +2</font><br><font size=+3>ukuran huruf +3</font><br><font size=+4>ukuran huruf +4</font><br><p><tt>Tampilan ukuran tetap.<br> <b>tebal</b> <i>miring</i> <b><i>miring tebal <u>bergaris bawah</u></i></b><br><font size=-2>ukuran huruf -2</font><br><font size=-1>ukuran huruf -1</font><br><font size=+0>ukuran huruf +0</font><br><font size=+1>ukuran huruf +1</font><br><font size=+2>ukuran huruf +2</font><br><font size=+3>ukuran huruf +3</font><br><font size=+4>ukuran huruf +4</font></tt></body></html>"
+
+#: ../src/common/paper.cpp:113
+msgid "A3 sheet, 297 x 420 mm"
+msgstr "Kertas A3, 297 x 420 mm"
+
+#: ../src/common/paper.cpp:104
+msgid "A4 sheet, 210 x 297 mm"
+msgstr "Kertas A4, 210 x 297 mm"
+
+#: ../src/common/paper.cpp:114
+msgid "A4 small sheet, 210 x 297 mm"
+msgstr "Kertas kecil A4, 210 x 297 mm"
+
+#: ../src/common/paper.cpp:115
+msgid "A5 sheet, 148 x 210 mm"
+msgstr "Kertas A5, 148 x 210 mm"
+
+#: ../src/generic/fontdlgg.cpp:83
+msgid "ABCDEFGabcdefg12345"
+msgstr "ABCDEFGabcdefg12345"
+
+#: ../src/common/ftp.cpp:369
+msgid "ASCII"
+msgstr "ASCII"
+
+#: ../src/html/helpfrm.cpp:323
+msgid "Add current page to bookmarks"
+msgstr "Tambahkan halaman ini ke bookmark"
+
+#: ../src/generic/colrdlgg.cpp:287
+msgid "Add to custom colours"
+msgstr "Tambahkan ke warna-warna kustom"
+
+#: ../src/html/helpctrl.cpp:95
+#, c-format
+msgid "Adding book %s"
+msgstr "Menambahkan buku %s"
+
+#: ../src/generic/prntdlgg.cpp:160
+msgid "All"
+msgstr "Semua"
+
+#: ../src/generic/filedlgg.cpp:1052
+msgid "All files (*)|*"
+msgstr "Semua file (*)|*"
+
+#: ../src/unix/dialup.cpp:362
+msgid "Already dialling ISP."
+msgstr "Sudah menghubungi ISP."
+
+#: ../src/generic/logg.cpp:1109
+#, c-format
+msgid "Append log to file '%s' (choosing [No] will overwrite it)?"
+msgstr "Tambahkan log ke file '%s' (memilih [Tidak] akan menimpa file tersebut)?"
+
+#: ../src/common/fontmap.cpp:117
+msgid "Arabic (ISO-8859-6)"
+msgstr "Arabic (ISO-8859-6)"
+
+#: ../src/common/paper.cpp:134
+msgid "B4 Envelope, 250 x 353 mm"
+msgstr "Amplop B4, 250 x 353 mm"
+
+#: ../src/common/paper.cpp:116
+msgid "B4 sheet, 250 x 354 mm"
+msgstr "Kertas B4, 250 x 354 mm"
+
+#: ../src/common/paper.cpp:135
+msgid "B5 Envelope, 176 x 250 mm"
+msgstr "Amplop B5, 176 x 250 mm"
+
+#: ../src/common/paper.cpp:117
+msgid "B5 sheet, 182 x 257 millimeter"
+msgstr "Kertas B5, 182 x 257 millimeter"
+
+#: ../src/common/paper.cpp:136
+msgid "B6 Envelope, 176 x 125 mm"
+msgstr "Amplop B6, 176 x 125 mm"
+
+#: ../src/common/imagbmp.cpp:467
+#: ../src/common/imagbmp.cpp:483
+msgid "BMP: Couldn't allocate memory."
+msgstr "BMP: Tidak bisa mengalokasikan memory."
+
+#: ../src/common/imagbmp.cpp:86
+msgid "BMP: Couldn't save invalid image."
+msgstr "BMP: Tidak bisa menympan citra tidak sah."
+
+#: ../src/common/imagbmp.cpp:290
+msgid "BMP: Couldn't write RGB color map."
+msgstr "BMP: Tidak bisa menulis peta warna RGB."
+
+#: ../src/common/imagbmp.cpp:422
+msgid "BMP: Couldn't write data."
+msgstr "BMP: Tidak bisa menulis data."
+
+#: ../src/common/imagbmp.cpp:195
+msgid "BMP: Couldn't write the file (Bitmap) header."
+msgstr "BMP: Tidak bisa menulis header file (Bitmap)."
+
+#: ../src/common/imagbmp.cpp:216
+msgid "BMP: Couldn't write the file (BitmapInfo) header."
+msgstr "BMP: Tidak bisa menulis header file (BitmapInfo)"
+
+#: ../src/common/imagbmp.cpp:120
+msgid "BMP: wxImage doesn't have own wxPalette."
+msgstr "BMP: wxImage tidak mempunyai wxPallete."
+
+#: ../src/common/dlgcmn.cpp:170
+msgid "Backward"
+msgstr "Ke belakang"
+
+#: ../src/common/fontmap.cpp:124
+msgid "Baltic (ISO-8859-13)"
+msgstr "Baltic (ISO-8859-13)"
+
+#: ../src/common/fontmap.cpp:115
+msgid "Baltic (old) (ISO-8859-4)"
+msgstr "Baltic (tua) (ISO-8859-4)"
+
+#: ../src/common/resourc2.cpp:840
+#: ../src/common/resource.cpp:2500
+#, c-format
+msgid "Bitmap resource specification %s not found."
+msgstr "Spesifikasi sesumber Bitmap %s tidak ditemukan."
+
+#: ../src/generic/fontdlgg.cpp:231
+msgid "Bold"
+msgstr "Tebal"
+
+#: ../src/generic/prntdlgg.cpp:645
+msgid "Bottom margin (mm):"
+msgstr "Batas bawah (mm):"
+
+#: ../src/common/paper.cpp:105
+msgid "C sheet, 17 x 22 in"
+msgstr "Kertas C, 17 x 22 inci"
+
+#: ../src/generic/logg.cpp:489
+msgid "C&lear"
+msgstr "B&ersihkan"
+
+#: ../src/common/paper.cpp:130
+msgid "C3 Envelope, 324 x 458 mm"
+msgstr "Amplop C3, 324 x 458 mm"
+
+#: ../src/common/paper.cpp:131
+msgid "C4 Envelope, 229 x 324 mm"
+msgstr "Amplop C4, 229 x 324 mm"
+
+#: ../src/common/paper.cpp:129
+msgid "C5 Envelope, 162 x 229 mm"
+msgstr "Amplop C5, 162 x 229 mm"
+
+#: ../src/common/paper.cpp:132
+msgid "C6 Envelope, 114 x 162 mm"
+msgstr "Amplop C6, 114 x 162 mm"
+
+#: ../src/common/paper.cpp:133
+msgid "C65 Envelope, 114 x 229 mm"
+msgstr "Amplop C65, 114 x 229 mm"
+
+#: ../src/common/filefn.cpp:1358
+#, c-format
+msgid "Can not enumerate files '%s'"
+msgstr "Tidak bisa mengenumerasi file-file '%s'"
+
+#: ../src/msw/dir.cpp:296
+#: ../src/unix/dir.cpp:236
+#, c-format
+msgid "Can not enumerate files in directory '%s'"
+msgstr "Tidak bisa mengenumerasi file-file di direktori '%s'"
+
+#: ../src/mac/thread.cpp:472
+#: ../src/msw/thread.cpp:685
+#, c-format
+msgid "Can not resume thread %x"
+msgstr "Tidak bisa meneruskan thread %x"
+
+#: ../src/msw/thread.cpp:559
+msgid "Can not start thread: error writing TLS."
+msgstr "Tidak bisa memulai thread: kesalahan menulis TLS."
+
+#: ../src/mac/thread.cpp:448
+#: ../src/msw/thread.cpp:670
+#, c-format
+msgid "Can not suspend thread %x"
+msgstr "Tidak bisa menunda thread %x"
+
+#: ../src/msw/thread.cpp:1016
+msgid "Can not wait for thread termination"
+msgstr "Tidak bisa menunggu penghentian thread"
+
+#: ../src/common/cmdproc.cpp:243
+msgid "Can't &Undo "
+msgstr "Tidak bisa &Membatalkan pekerjaan"
+
+#: ../src/common/image.cpp:1289
+#, c-format
+msgid "Can't check image format of file '%s': file does not exist."
+msgstr "Tidak bisa memeriksa format citra dari file '%s': file tidak ada."
+
+#: ../src/msw/registry.cpp:421
+#, c-format
+msgid "Can't close registry key '%s'"
+msgstr "Tidak bisa menutup kunci registry '%s'"
+
+#: ../src/msw/registry.cpp:493
+#, c-format
+msgid "Can't copy values of unsupported type %d."
+msgstr "Tidak bisa menyalin nilai-nilai dari tipe %d yang tidak didukung."
+
+#: ../src/msw/toplevel.cpp:295
+msgid "Can't create dialog using memory template"
+msgstr "Tidak bisa menciptakan dialog menggunakan template memory"
+
+#: ../src/os2/toplevel.cpp:331
+#, c-format
+msgid "Can't create dialog using template '%ul'"
+msgstr "Tidak bisa menciptakan dialog menggunakan template '%ul'"
+
+#: ../src/msw/listctrl.cpp:319
+msgid "Can't create list control window, check that comctl32.dll is installed."
+msgstr "Tidak bisa menciptakan jendela list control, periksa apakah comctl32.dll terinstall"
+
+#: ../src/msw/registry.cpp:402
+#, c-format
+msgid "Can't create registry key '%s'"
+msgstr "Tidak bisa menciptakan kunci registry '%s'"
+
+#: ../src/mac/thread.cpp:427
+#: ../src/msw/thread.cpp:652
+msgid "Can't create thread"
+msgstr "Tidak bisa menciptakan thread"
+
+#: ../src/msw/window.cpp:2989
+#, c-format
+msgid "Can't create window of class %s"
+msgstr "Tidak bisa menciptakan jendela dari class %s"
+
+#: ../src/msw/registry.cpp:661
+#, c-format
+msgid "Can't delete key '%s'"
+msgstr "Tidak bisa menghapus kunci '%s'"
+
+#: ../src/msw/iniconf.cpp:445
+#, c-format
+msgid "Can't delete the INI file '%s'"
+msgstr "Tidak bisa menghapus file INI '%s'"
+
+#: ../src/msw/registry.cpp:686
+#, c-format
+msgid "Can't delete value '%s' from key '%s'"
+msgstr "Tidak bisa menghapus nilai '%s' dari kunci '%s'"
+
+#: ../src/msw/registry.cpp:697
+#, c-format
+msgid "Can't delete value of key '%s'"
+msgstr "Tidak bisa menghapus nilai dari kunci '%s'"
+
+#: ../src/msw/registry.cpp:1025
+#, c-format
+msgid "Can't enumerate subkeys of key '%s'"
+msgstr "Tidak bisa mengenumerasi subkunci dari kunci '%s'"
+
+#: ../src/msw/registry.cpp:980
+#, c-format
+msgid "Can't enumerate values of key '%s'"
+msgstr "Tidak bisa mengenumerasi nilai-nilai dari kunci '%s'"
+
+#: ../src/common/ffile.cpp:226
+#, c-format
+msgid "Can't find current position in file '%s'"
+msgstr "Tidak bisa menemukan posisi saat ini dalam file '%s'"
+
+#: ../src/msw/registry.cpp:351
+#, c-format
+msgid "Can't get info about registry key '%s'"
+msgstr "Tidak bisa memperoleh info tentang kunci registry '%s'"
+
+#: ../src/common/image.cpp:913
+#: ../src/common/image.cpp:933
+#, c-format
+msgid "Can't load image from file '%s': file does not exist."
+msgstr "Tidak bisa memuat citra dari file '%s': file tidak ada."
+
+#: ../src/msw/dib.cpp:434
+#, c-format
+msgid "Can't open file '%s'"
+msgstr "Tidak bisa membuka file '%s'"
+
+#: ../src/msw/registry.cpp:377
+#, c-format
+msgid "Can't open registry key '%s'"
+msgstr "Tidak bisa membuka kunci registry '%s'"
+
+#: ../src/msw/registry.cpp:904
+#, c-format
+msgid "Can't read value of '%s'"
+msgstr "Tidak bisa membaca nilai dari '%s'"
+
+#: ../src/msw/registry.cpp:777
+#: ../src/msw/registry.cpp:816
+#, c-format
+msgid "Can't read value of key '%s'"
+msgstr "Tidak bisa membaca nilai dari kunci '%s'"
+
+#: ../src/common/image.cpp:955
+#, c-format
+msgid "Can't save image to file '%s': unknown extension."
+msgstr "Tidak bisa menyimpan citra ke file '%s': ekstensi tidak diketahui"
+
+#: ../src/generic/logg.cpp:551
+#: ../src/generic/logg.cpp:985
+msgid "Can't save log contents to file."
+msgstr "Tidak bisa menyimpan isi dari log ke file."
+
+#: ../src/msw/thread.cpp:611
+msgid "Can't set thread priority"
+msgstr "Tidak bisa menetapkan prioritas thread"
+
+#: ../src/msw/registry.cpp:802
+#: ../src/msw/registry.cpp:928
+#, c-format
+msgid "Can't set value of '%s'"
+msgstr "Tidak bisa menetapkan nilai dari '%s'"
+
+#: ../src/common/dlgcmn.cpp:183
+#: ../src/generic/dirdlgg.cpp:153
+#: ../src/generic/filedlgg.cpp:1166
+#: ../src/generic/filedlgg.cpp:1185
+#: ../src/generic/fontdlgg.cpp:254
+#: ../src/generic/prntdlgg.cpp:453
+#: ../src/generic/progdlgg.cpp:211
+#: ../src/generic/proplist.cpp:511
+#: ../src/gtk/filedlg.cpp:173
+#: ../src/gtk/fontdlg.cpp:144
+#: ../src/html/helpfrm.cpp:974
+#: ../src/html/htmlhelp.cpp:434
+#: ../src/motif/msgdlg.cpp:182
+msgid "Cancel"
+msgstr "Batal"
+
+#: ../contrib/src/xrc/xmlres.cpp:893
+#: ../contrib/src/xrc/xmlres.cpp:934
+msgid "Cannot convert dialog units: dialog unknown."
+msgstr "Tidak bisa mengkonversi unit-unit dialog: dialog tidak diketahui"
+
+#: ../src/common/strconv.cpp:929
+#, c-format
+msgid "Cannot convert from encoding '%s'!"
+msgstr "Tidak bisa mengkonversi dari pengkodean '%s'!"
+
+#: ../src/msw/dialup.cpp:497
+#, c-format
+msgid "Cannot find active dialup connection: %s"
+msgstr "Tidak bisa menemukan koneksi dialup yang aktif: %s"
+
+#: ../contrib/src/xrc/xmlres.cpp:224
+#, c-format
+msgid "Cannot find container for unknown control '%s'."
+msgstr "Tidak bisa menemukan penampung untuk kontrol yang tak diketahui '%s'."
+
+#: ../contrib/src/xrc/xmlres.cpp:948
+#, c-format
+msgid "Cannot find font node '%s'."
+msgstr "Tidak bisa menemukan titik huruf '%s'."
+
+#: ../src/msw/dialup.cpp:811
+msgid "Cannot find the location of address book file"
+msgstr "Tidak bisa menemukan lokasi dari file buku alamat"
+
+#: ../src/unix/threadpsx.cpp:1068
+#, c-format
+msgid "Cannot get priority range for scheduling policy %d."
+msgstr "Tidak bisa memperoleh jangkauan prioritas untuk kebijakan penjadualan %d."
+
+#: ../src/unix/utilsunx.cpp:854
+msgid "Cannot get the hostname"
+msgstr "Tidak bisa memperoleh nama host"
+
+#: ../src/unix/utilsunx.cpp:890
+msgid "Cannot get the official hostname"
+msgstr "Tidak bisa memperoleh nama host resmi"
+
+#: ../src/msw/dialup.cpp:905
+msgid "Cannot hang up - no active dialup connection."
+msgstr "Tidak bisa menutup - tidak ada koneksi dialup yang aktif."
+
+#: ../src/msw/app.cpp:249
+msgid "Cannot initialize OLE"
+msgstr "Tidak bisa menginisialisasi OLE"
+
+#: ../src/mgl/app.cpp:414
+msgid "Cannot initialize SciTech MGL!"
+msgstr "Tidak bisa menginisialisasi SciTech MGL!"
+
+#: ../src/mgl/window.cpp:546
+msgid "Cannot initialize display."
+msgstr "Tidak bisa menginisialisasi tampilan."
+
+#: ../src/msw/volume.cpp:627
+#, c-format
+msgid "Cannot load icon from '%s'."
+msgstr "Tidak bisa memuat ikon dari '%s'."
+
+#: ../contrib/src/xrc/xmlres.cpp:337
+#, c-format
+msgid "Cannot load resources from file '%s'."
+msgstr "Tidak bisa memuat sesumber dari file '%s'."
+
+#: ../src/html/htmlfilt.cpp:171
+#, c-format
+msgid "Cannot open HTML document: %s"
+msgstr "Tidak bisa membuka dokumen HTML: %s"
+
+#: ../src/html/helpdata.cpp:581
+#, c-format
+msgid "Cannot open HTML help book: %s"
+msgstr "Tidak bisa membuka help book HTML: %s"
+
+#: ../src/generic/helpext.cpp:101
+#, c-format
+msgid "Cannot open URL '%s'"
+msgstr "Tidak bisa membuka URL '%s'"
+
+#: ../src/html/helpdata.cpp:277
+#, c-format
+msgid "Cannot open contents file: %s"
+msgstr "Tidak bisa membuka isi file: %s"
+
+#: ../contrib/src/xrc/xmlres.cpp:311
+#, c-format
+msgid "Cannot open file '%s'."
+msgstr "Tidak bisa membuka file '%s'."
+
+#: ../src/generic/dcpsg.cpp:1765
+msgid "Cannot open file for PostScript printing!"
+msgstr "Tidak bisa membuka file untuk pencetakan PostScript!"
+
+#: ../src/html/helpdata.cpp:290
+#, c-format
+msgid "Cannot open index file: %s"
+msgstr "Tidak bisa membuka file indeks: %s"
+
+#: ../contrib/src/xrc/xmlres.cpp:881
+#, c-format
+msgid "Cannot parse coordinates from '%s'."
+msgstr "Tidak bisa mem-parse koordinat dari '%s'."
+
+#: ../contrib/src/xrc/xmlres.cpp:922
+#, c-format
+msgid "Cannot parse dimension from '%s'."
+msgstr "Tidak bisa mem-parse dimensi dari '%s'."
+
+#: ../src/html/helpfrm.cpp:1265
+msgid "Cannot print empty page."
+msgstr "Tidak bisa mencetak halaman kosong."
+
+#: ../src/msw/volume.cpp:188
+#: ../src/msw/volume.cpp:519
+#, c-format
+msgid "Cannot read typename from '%s'!"
+msgstr "Tidak bisa membaca typename dari '%s'!"
+
+#: ../src/unix/threadpsx.cpp:1049
+msgid "Cannot retrieve thread scheduling policy."
+msgstr "Tidak bisa mengambil kebijakan penjadualan thread."
+
+#: ../src/unix/threadpsx.cpp:706
+msgid "Cannot start thread: error writing TLS"
+msgstr "Tidak bisa memulai thread: kesalahan menulis TLS"
+
+#: ../src/html/helpfrm.cpp:406
+msgid "Case sensitive"
+msgstr "Membedakan huruf besar dan kecil"
+
+#: ../src/common/fontmap.cpp:125
+msgid "Celtic (ISO-8859-14)"
+msgstr "Celtic (ISO-8859-14)"
+
+#: ../src/common/fontmap.cpp:113
+msgid "Central European (ISO-8859-2)"
+msgstr "Central European (ISO-8859-2)"
+
+#: ../src/msw/dialup.cpp:746
+msgid "Choose ISP to dial"
+msgstr "Pilih ISP yang akan dihubungi"
+
+#: ../src/gtk/fontdlg.cpp:122
+msgid "Choose font"
+msgstr "Pilih huruf"
+
+#: ../src/generic/logg.cpp:489
+msgid "Clear the log contents"
+msgstr "Bersihkan isi log"
+
+#: ../src/common/prntbase.cpp:429
+#: ../src/generic/progdlgg.cpp:360
+#: ../src/generic/proplist.cpp:506
+msgid "Close"
+msgstr "Tutup"
+
+#: ../src/univ/themes/win32.cpp:4547
+msgid "Close\tAlt-F4"
+msgstr "Tutup\tAlt-F4"
+
+#: ../src/generic/logg.cpp:491
+msgid "Close this window"
+msgstr "Tutul jendela ini"
+
+#: ../src/generic/dirctrlg.cpp:547
+msgid "Computer"
+msgstr "Komputer"
+
+#: ../src/common/fileconf.cpp:872
+#, c-format
+msgid "Config entry name cannot start with '%c'."
+msgstr "Nama entri konfigurasi tidak bisa diawali dengan '%c'."
+
+#: ../src/generic/filedlgg.cpp:1357
+#: ../src/gtk/filedlg.cpp:72
+msgid "Confirm"
+msgstr "Konfirmasi"
+
+#: ../src/msw/mimetype.cpp:686
+msgid "Confirm registry update"
+msgstr "Konfirmasi peremajaan registry"
+
+#: ../src/html/htmlwin.cpp:262
+msgid "Connecting..."
+msgstr "Terkoneksi..."
+
+#: ../src/html/helpfrm.cpp:346
+#: ../src/html/htmlhelp.cpp:565
+msgid "Contents"
+msgstr "Isi"
+
+#: ../src/common/strconv.cpp:596
+#, c-format
+msgid "Conversion to charset '%s' doesn't work."
+msgstr "Konversi ke charset '%s' tidak bekerja"
+
+#: ../src/generic/prntdlgg.cpp:193
+msgid "Copies:"
+msgstr "Salinan:"
+
+#: ../src/common/resourc2.cpp:287
+#: ../src/common/resource.cpp:1806
+#: ../src/common/resource.cpp:1936
+#, c-format
+msgid "Could not find resource include file %s."
+msgstr "Tidak bisa menemukan file include sesumber %s."
+
+#: ../src/generic/tabg.cpp:1044
+msgid "Could not find tab for id"
+msgstr "Tidak bisa menemukan tab untuk id"
+
+#: ../src/msw/textctrl.cpp:1859
+#, c-format
+msgid "Could not load Rich Edit DLL '%s'"
+msgstr "Tidak bisa memuat DLL Rich Edit '%s'"
+
+#: ../src/common/resource.cpp:802
+#, c-format
+msgid ""
+"Could not resolve control class or id '%s'. Use (non-zero) integer instead\n"
+" or provide #define (see manual for caveats)"
+msgstr ""
+"Tidak bisa memecahkan class control atau id '%s'. Gunakan integer (tidak nol) sebagai gantinya\n"
+" atau sediakan #define (lihat manual untuk keterangan lebih lanjut)"
+
+#: ../src/common/resource.cpp:1251
+#, c-format
+msgid ""
+"Could not resolve menu id '%s'. Use (non-zero) integer instead\n"
+"or provide #define (see manual for caveats)"
+msgstr ""
+"Tidak bisa memecahkan id menu '%s'. Gunakan integer (tidak nol) sebagai gantinya\n"
+" atau sediakan #define (lihat manual untuk penjelasan lebih lanjut)"
+
+#: ../src/common/prntbase.cpp:806
+msgid "Could not start document preview."
+msgstr "Tidak bisa memulai preview dokumen."
+
+#: ../src/generic/printps.cpp:197
+#: ../src/msw/printwin.cpp:252
+msgid "Could not start printing."
+msgstr "Tidak bisa memulai pencetakan."
+
+#: ../src/common/wincmn.cpp:1148
+msgid "Could not transfer data to window"
+msgstr "Tidak bisa mentransfer data ke jendela"
+
+#: ../src/msw/dragimag.cpp:148
+#: ../src/msw/dragimag.cpp:184
+#: ../src/msw/imaglist.cpp:152
+#: ../src/msw/imaglist.cpp:174
+#: ../src/msw/imaglist.cpp:187
+msgid "Couldn't add an image to the image list."
+msgstr "Tidak bisa menambahkan citra ke daftar citra."
+
+#: ../src/msw/timer.cpp:103
+msgid "Couldn't create a timer"
+msgstr "Tidak bisa menciptakan pewaktu"
+
+#: ../src/mgl/cursor.cpp:135
+#: ../src/mgl/cursor.cpp:166
+msgid "Couldn't create cursor."
+msgstr "Tidak bisa menciptakan kursor"
+
+#: ../src/common/dynlib.cpp:347
+#: ../src/common/dynload.cpp:295
+#, c-format
+msgid "Couldn't find symbol '%s' in a dynamic library"
+msgstr "Tidak bisa menemukan simbol '%s' dalam pustaka dinamis"
+
+#: ../src/mac/thread.cpp:502
+#: ../src/msw/thread.cpp:711
+msgid "Couldn't get the current thread pointer"
+msgstr "Tidak bisa memperoleh penunjuk thread saat ini"
+
+#: ../src/common/imagpng.cpp:298
+msgid "Couldn't load a PNG image - file is corrupted or not enough memory."
+msgstr "Tidak bisa memuat citra PNG - file terkorupsi atau memory tidak cukup."
+
+#: ../src/msw/ole/dataobj.cpp:143
+#, c-format
+msgid "Couldn't register clipboard format '%s'."
+msgstr "Tidak bisa meregister format clipboard '%s'."
+
+#: ../src/msw/listctrl.cpp:722
+#, c-format
+msgid "Couldn't retrieve information about list control item %d."
+msgstr "Tidak bisa mengambil informasi tentang item list control %d."
+
+#: ../src/common/imagpng.cpp:334
+#: ../src/common/imagpng.cpp:345
+#: ../src/common/imagpng.cpp:353
+msgid "Couldn't save PNG image."
+msgstr "Tidak bisa menyimpan citra PNG."
+
+#: ../src/mac/thread.cpp:749
+#: ../src/msw/thread.cpp:1091
+msgid "Couldn't terminate thread"
+msgstr "Tidak bisa menghentikan thread"
+
+#: ../src/generic/dirdlgg.cpp:263
+msgid "Create directory"
+msgstr "Buat direktori"
+
+#: ../src/generic/dirdlgg.cpp:103
+#: ../src/generic/filedlgg.cpp:1119
+msgid "Create new directory"
+msgstr "Buat direktori baru"
+
+#: ../src/generic/filedlgg.cpp:1130
+msgid "Current directory:"
+msgstr "Direktori saat ini:"
+
+#: ../src/common/fontmap.cpp:116
+msgid "Cyrillic (ISO-8859-5)"
+msgstr "Cyrillic (ISO-8859-5)"
+
+#: ../src/common/paper.cpp:106
+msgid "D sheet, 22 x 34 in"
+msgstr "Kertas D, 22 x 34 in"
+
+#: ../src/msw/dde.cpp:587
+msgid "DDE poke request failed"
+msgstr "Permintaan poke DDE gagal"
+
+#: ../src/common/imagbmp.cpp:618
+msgid "DIB Header: Cannot deal with 4bit encoded yet."
+msgstr "Header DIB: Belum bisa berurusan dengan 4bit dikodekan"
+
+#: ../src/common/imagbmp.cpp:836
+msgid "DIB Header: Encoding doesn't match bitdepth."
+msgstr "Header DIB: Pengkodean tidak sesuai dengan bitdepth."
+
+#: ../src/common/imagbmp.cpp:798
+msgid "DIB Header: Image height > 32767 pixels for file."
+msgstr "Header DIB: Tinggi citra > 32767 pixel untuk file."
+
+#: ../src/common/imagbmp.cpp:792
+msgid "DIB Header: Image width > 32767 pixels for file."
+msgstr "DIB Header: Lebar citra > 32767 pixel untuk file."
+
+#: ../src/common/imagbmp.cpp:812
+msgid "DIB Header: Unknown bitdepth in file."
+msgstr "DIB Header: bitdepth dalam file tidak diketahui."
+
+#: ../src/common/imagbmp.cpp:822
+msgid "DIB Header: Unknown encoding in file."
+msgstr "Header DIB: Pengkodean dalam file tidak diketahui."
+
+#: ../src/common/paper.cpp:128
+msgid "DL Envelope, 110 x 220 mm"
+msgstr "Amplop DL, 110 x 220 mm"
+
+#: ../src/generic/filedlgg.cpp:700
+msgid "Date"
+msgstr "Tanggal"
+
+#: ../src/generic/fontdlgg.cpp:221
+msgid "Decorative"
+msgstr "Dekoratif"
+
+#: ../src/common/fontmap.cpp:386
+msgid "Default encoding"
+msgstr "Pengkodean default"
+
+#: ../src/unix/snglinst.cpp:269
+#, c-format
+msgid "Deleted stale lock file '%s'."
+msgstr "Menghapus file lock '%s' yang terhenti."
+
+#: ../src/msw/dialup.cpp:346
+msgid "Dial up functions are unavailable because the remote access service (RAS) is not installed on this machine. Please install it."
+msgstr "Fungsi dial up tidak tersedia karena remote access service (RAS) tidak terinstall pada mesin ini. Silahkan menginstall."
+
+#: ../src/os2/toplevel.cpp:329
+msgid "Did you forget to include wx/os2/wx.rc in your resources?"
+msgstr "Apakah anda lupa menyertakan wx/os2/wx.rc di sesumber anda?"
+
+#: ../src/generic/tipdlg.cpp:178
+msgid "Did you know..."
+msgstr "Tahukah anda..."
+
+#: ../src/common/filefn.cpp:1254
+#, c-format
+msgid "Directory '%s' couldn't be created"
+msgstr "Direktori '%s' tidak bsia diciptakan"
+
+#: ../src/mgl/dirmgl.cpp:217
+#, c-format
+msgid "Directory '%s' doesn't exist!"
+msgstr "Direktori '%s' tidak ada!"
+
+#: ../src/generic/dirdlgg.cpp:188
+msgid "Directory does not exist"
+msgstr "Direktori tidak ada"
+
+#: ../src/html/helpfrm.cpp:374
+msgid "Display all index items that contain given substring. Search is case insensitive."
+msgstr "Menampilkan semua item-item indeks yang berisi substring yang diberikan. Pencarian bersifat membedakan huruf besar dan kecil."
+
+#: ../src/html/helpfrm.cpp:540
+msgid "Display options dialog"
+msgstr "Dialog menampilkan pilihan"
+
+#: ../src/msw/mimetype.cpp:679
+#, c-format
+msgid ""
+"Do you want to overwrite the command used to %s files with extension \"%s\" ?\n"
+"Current value is \n"
+"%s, \n"
+"New value is \n"
+"%s %1"
+msgstr ""
+"Apakah anda ingin menimpa perintah yanf digunakan untuk %s file-file dengan ekstensi \"%s\" ?\n"
+"Nilai saat ini adalah \n"
+"%s, \n"
+"Nilai baru adalah \n"
+"%s % 1"
+
+#: ../src/common/docview.cpp:440
+#, c-format
+msgid "Do you want to save changes to document %s?"
+msgstr "Apakah anda ingin menyimpan perubahan terhadap dokumen %s?"
+
+#: ../src/html/htmlwin.cpp:314
+msgid "Done"
+msgstr "Selesai"
+
+#: ../src/generic/progdlgg.cpp:372
+msgid "Done."
+msgstr "Selesai."
+
+#: ../src/generic/fdrepdlg.cpp:157
+msgid "Down"
+msgstr "Turun"
+
+#: ../src/common/paper.cpp:107
+msgid "E sheet, 34 x 44 in"
+msgstr "Kertas E, 34 x 44 inci"
+
+#: ../src/generic/progdlgg.cpp:183
+msgid "Elapsed time : "
+msgstr "Waktu yang sudah dihabiskan :"
+
+#: ../src/generic/helphtml.cpp:335
+msgid "Entries found"
+msgstr "Entri ditemukan"
+
+#: ../src/common/config.cpp:345
+#, c-format
+msgid "Environment variables expansion failed: missing '%c' at position %d in '%s'."
+msgstr "Ekspansi variabel lingkungan gagal: kehilangan '%s' pada posisi %d dalam '%s'."
+
+#: ../src/generic/dirctrlg.cpp:702
+#: ../src/generic/dirctrlg.cpp:720
+#: ../src/generic/dirctrlg.cpp:731
+#: ../src/generic/dirdlgg.cpp:298
+#: ../src/generic/filedlgg.cpp:836
+#: ../src/generic/filedlgg.cpp:933
+#: ../src/generic/filedlgg.cpp:947
+#: ../src/generic/filedlgg.cpp:960
+#: ../src/generic/filedlgg.cpp:1322
+#: ../src/generic/filedlgg.cpp:1372
+#: ../src/gtk/filedlg.cpp:80
+#: ../src/gtk/fontdlg.cpp:71
+msgid "Error"
+msgstr "Kesalahan"
+
+#: ../src/unix/utilsunx.cpp:1182
+#: ../src/unix/utilsunx.cpp:1190
+msgid "Error "
+msgstr "Kesalahan"
+
+#: ../src/generic/dirdlgg.cpp:203
+msgid "Error creating directory"
+msgstr "Kesalahan dalam menciptakan direktori"
+
+#: ../src/common/imagbmp.cpp:845
+msgid "Error in reading image DIB ."
+msgstr "Kesalahan dalam membaca citra DIB."
+
+#: ../src/common/log.cpp:460
+msgid "Error: "
+msgstr "Kesalahan:"
+
+#: ../src/common/fontmap.cpp:114
+msgid "Esperanto (ISO-8859-3)"
+msgstr "Esperanto (ISO-8859-3)"
+
+#: ../src/generic/progdlgg.cpp:191
+msgid "Estimated time : "
+msgstr "Waktu yang telah dihabiskan :"
+
+#: ../src/msw/utilsexc.cpp:697
+#, c-format
+msgid "Execution of command '%s' failed"
+msgstr "Eksekusi perintah '%s' gagal"
+
+#: ../src/common/paper.cpp:112
+msgid "Executive, 7 1/4 x 10 1/2 in"
+msgstr "Eksekutif, 7 1/4 x 10 1/2 inci"
+
+#: ../src/common/resourc2.cpp:326
+#: ../src/common/resourc2.cpp:1391
+#: ../src/common/resource.cpp:1845
+#: ../src/common/resource.cpp:1975
+#: ../src/common/resource.cpp:3059
+msgid "Expected '*' whilst parsing resource."
+msgstr "Diharapkan '*' saat sedang mem-parsing sesumber"
+
+#: ../src/common/resourc2.cpp:342
+#: ../src/common/resourc2.cpp:1407
+#: ../src/common/resource.cpp:1862
+#: ../src/common/resource.cpp:1991
+#: ../src/common/resource.cpp:3076
+msgid "Expected '=' whilst parsing resource."
+msgstr "Mengharapkan '=' saat sedang mem-parsing sesumber"
+
+#: ../src/common/resourc2.cpp:312
+#: ../src/common/resourc2.cpp:1377
+#: ../src/common/resource.cpp:1831
+#: ../src/common/resource.cpp:1961
+#: ../src/common/resource.cpp:3045
+msgid "Expected 'char' whilst parsing resource."
+msgstr "Mengharapkan 'char' saat sedang mem-parsing sesumber."
+
+#: ../src/msw/dialup.cpp:840
+#, c-format
+msgid "Failed to %s dialup connection: %s"
+msgstr "Gagal untuk %s koneksi dialup:  %s"
+
+#: ../src/unix/snglinst.cpp:243
+msgid "Failed to access lock file."
+msgstr "Gagal mengakses file lock."
+
+#: ../src/common/filename.cpp:172
+msgid "Failed to close file handle"
+msgstr "Gagal menutup file handle"
+
+#: ../src/unix/snglinst.cpp:308
+#, c-format
+msgid "Failed to close lock file '%s'"
+msgstr "Gagal menutup file lock '%s'"
+
+#: ../src/msw/clipbrd.cpp:127
+msgid "Failed to close the clipboard."
+msgstr "Gagal menutup clipboard."
+
+#: ../src/msw/dialup.cpp:780
+msgid "Failed to connect: missing username/password."
+msgstr "Gagal koneksi: hilang nama user/kata kunci"
+
+#: ../src/msw/dialup.cpp:726
+msgid "Failed to connect: no ISP to dial."
+msgstr "Gagal koneksi: tidak ada ISP yang didial"
+
+#: ../src/msw/registry.cpp:597
+#, c-format
+msgid "Failed to copy registry value '%s'"
+msgstr "Gagal menyalin nilai registry '%s'"
+
+#: ../src/msw/registry.cpp:606
+#, c-format
+msgid "Failed to copy the contents of registry key '%s' to '%s'."
+msgstr "Gagal menyalin isi dari kunci registry '%s' ke '%s'."
+
+#: ../src/common/filefn.cpp:1106
+#, c-format
+msgid "Failed to copy the file '%s' to '%s'"
+msgstr "Gagal menyalin file '%s' ke '%s'"
+
+#: ../src/msw/dde.cpp:924
+msgid "Failed to create DDE string"
+msgstr "Gagal menciptakan string DDE"
+
+#: ../src/msw/mdi.cpp:425
+msgid "Failed to create MDI parent frame."
+msgstr "Gagal menciptakan frame parent MDI"
+
+#: ../src/msw/statbr95.cpp:110
+msgid "Failed to create a status bar."
+msgstr "Gagal menciptakan baris status"
+
+#: ../src/common/filename.cpp:717
+msgid "Failed to create a temporary file name"
+msgstr "Gagal menciptakan suatu nama file sementara"
+
+#: ../src/msw/utilsexc.cpp:195
+msgid "Failed to create an anonymous pipe"
+msgstr "Gagal menciptakan pipa anonymous"
+
+#: ../src/msw/dde.cpp:401
+#, c-format
+msgid "Failed to create connection to server '%s' on topic '%s'"
+msgstr "Gagal menciptakan koneksi ke server '%s' untuk topik '%s'"
+
+#: ../src/msw/toplevel.cpp:293
+msgid "Failed to create dialog. Incorrect DLGTEMPLATE?"
+msgstr "Gagal menciptakan dialog. DLGTEMPLATE salah?"
+
+#: ../src/generic/dirdlgg.cpp:201
+#, c-format
+msgid ""
+"Failed to create directory '%s'\n"
+"(Do you have the required permissions?)"
+msgstr ""
+"Gagal menciptakan direktori '%s'\n"
+"(Apakah anda mempunya permisi yang disyaratkan?)"
+
+#: ../src/msw/mimetype.cpp:168
+#, c-format
+msgid "Failed to create registry entry for '%s' files."
+msgstr "Gagal menciptakan entri registry untuk file-file '%s'."
+
+#: ../src/msw/fdrepdlg.cpp:442
+#, c-format
+msgid "Failed to create the standard find/replace dialog (error code %d)"
+msgstr "Gagal menciptakan dialog standar temukan/ganti (kode kesalahan %d)"
+
+#: ../src/html/winpars.cpp:430
+#, c-format
+msgid "Failed to display HTML document in %s encoding"
+msgstr "Gagal menampilkan dokumen HTML dalam pengkodean %s"
+
+#: ../src/mac/clipbrd.cpp:167
+#: ../src/msw/clipbrd.cpp:139
+msgid "Failed to empty the clipboard."
+msgstr "Gagal mengosongkan clipboard."
+
+#: ../src/msw/dde.cpp:606
+msgid "Failed to establish an advise loop with DDE server"
+msgstr "Gagal mengadakan advise loop dengan server DDE"
+
+#: ../src/msw/dialup.cpp:618
+#, c-format
+msgid "Failed to establish dialup connection: %s"
+msgstr "Gagal membentuk koneksi dialup: %s"
+
+#: ../src/unix/utilsunx.cpp:538
+#: ../src/unix/utilsunx.cpp:555
+#, c-format
+msgid ""
+"Failed to execute '%s'\n"
+""
+msgstr ""
+"Gagal mengeksekusi '%s'\n"
+""
+
+#: ../src/common/resourc2.cpp:808
+#: ../src/common/resource.cpp:2465
+#, c-format
+msgid ""
+"Failed to find XBM resource %s.\n"
+"Forgot to use wxResourceLoadBitmapData?"
+msgstr ""
+"Gagal menemukan sesumber XBM %s.\n"
+"Lupa menggunakan wxResourceLoadBitmapData?"
+
+#: ../src/common/resourc2.cpp:959
+#: ../src/common/resource.cpp:2619
+#, c-format
+msgid ""
+"Failed to find XBM resource %s.\n"
+"Forgot to use wxResourceLoadIconData?"
+msgstr ""
+"Gagal menemukan sesumber XBM %s.\n"
+"Lupa menggunakan wxResourceLoadIconData?"
+
+#: ../src/common/resourc2.cpp:823
+#: ../src/common/resource.cpp:2480
+#, c-format
+msgid ""
+"Failed to find XPM resource %s.\n"
+"Forgot to use wxResourceLoadBitmapData?"
+msgstr ""
+"Gagal menemukan sesumber XPM %s.\n"
+" Lupa menggunakan wxResourceLoadBitmapData?"
+
+#: ../src/msw/dialup.cpp:678
+#, c-format
+msgid "Failed to get ISP names: %s"
+msgstr "Gagal memperoleh nama ISO: %s"
+
+#: ../src/mac/clipbrd.cpp:118
+msgid "Failed to get clipboard data."
+msgstr "Gagal memperoleh data clipboard."
+
+#: ../src/msw/clipbrd.cpp:712
+msgid "Failed to get data from the clipboard"
+msgstr "Gagal memperoleh data dari clipboard"
+
+#: ../src/common/timercmn.cpp:286
+msgid "Failed to get the UTC system time."
+msgstr "Gagal memperoleh waktu sistem UTC."
+
+#: ../src/common/timercmn.cpp:237
+msgid "Failed to get the local system time"
+msgstr "Gagal memperoleh waktu lokal sistem"
+
+#: ../src/common/filefn.cpp:1487
+msgid "Failed to get the working directory"
+msgstr "Gagal memperoleh direktori kerja"
+
+#: ../src/univ/theme.cpp:120
+msgid "Failed to initialize GUI: no built-in themes found."
+msgstr "Gagal menginisialisasi GUI: tidak ada tema built-in ditemukan"
+
+#: ../src/msw/helpchm.cpp:69
+msgid "Failed to initialize MS HTML Help."
+msgstr "Gagal menginisialisasi MS HTML Help."
+
+#: ../src/msw/glcanvas.cpp:729
+msgid "Failed to initialize OpenGL"
+msgstr "Gagal menginisialisasi OpenGL"
+
+#: ../src/unix/threadpsx.cpp:871
+msgid "Failed to join a thread, potential memory leak detected - please restart the program"
+msgstr "Gagal bergabung ke thread, memory leak potensial terdeteksi - silahkan jalankan ulang program"
+
+#: ../src/msw/utils.cpp:721
+#, c-format
+msgid "Failed to kill process %d"
+msgstr "Gagal untuk mematikan proses %d"
+
+#: ../src/common/iconbndl.cpp:66
+#, c-format
+msgid "Failed to load image %d from file '%s'."
+msgstr "Gagal untuk memuat citra %d dari file '%s'."
+
+#: ../src/msw/volume.cpp:340
+msgid "Failed to load mpr.dll."
+msgstr "Gagal memuat mpr.dll."
+
+#: ../src/common/dynlib.cpp:274
+#: ../src/common/dynload.cpp:197
+#, c-format
+msgid "Failed to load shared library '%s'"
+msgstr "Gagal memuat shared library '%s'"
+
+#: ../src/common/dynlib.cpp:256
+#: ../src/common/dynload.cpp:126
+#, c-format
+msgid "Failed to load shared library '%s' Error '%s'"
+msgstr "Gagal memuat shared library '%s' Kesalahan '%s'"
+
+#: ../src/unix/snglinst.cpp:192
+#, c-format
+msgid "Failed to lock the lock file '%s'"
+msgstr "Gagal mengunci lock file '%s'"
+
+#: ../src/common/regex.cpp:251
+#, c-format
+msgid "Failed to match '%s' in regular expression: %s"
+msgstr "Gagal mencocokkan '%s' dalam regular expression: %s"
+
+#: ../src/common/filename.cpp:1644
+#, c-format
+msgid "Failed to modify file times for '%s'"
+msgstr "Gagal untuk memodifikasi waktu file untuk '%s'"
+
+#: ../src/common/filename.cpp:160
+#, c-format
+msgid "Failed to open '%s' for %s"
+msgstr "Gagal membuka  '%s' untuk %s"
+
+#: ../src/common/filename.cpp:739
+msgid "Failed to open temporary file."
+msgstr "Gagal membuka file sementara."
+
+#: ../src/msw/clipbrd.cpp:107
+msgid "Failed to open the clipboard."
+msgstr "Gagal membuka clipboard."
+
+#: ../src/msw/clipbrd.cpp:616
+msgid "Failed to put data on the clipboard"
+msgstr "Gagal meletakkan data pada clipboard."
+
+#: ../src/unix/snglinst.cpp:252
+msgid "Failed to read PID from lock file."
+msgstr "Gagal membaca PID dari file lock."
+
+#: ../src/unix/utilsunx.cpp:629
+msgid "Failed to redirect child process input/output"
+msgstr "Gagal mengarahkan kembali proses masukan/keluaran child"
+
+#: ../src/msw/utilsexc.cpp:600
+msgid "Failed to redirect the child process IO"
+msgstr "Gagal mengarahkan kembali proses IO child"
+
+#: ../src/msw/dde.cpp:285
+#, c-format
+msgid "Failed to register DDE server '%s'"
+msgstr "Gagal meregister server DDE '%s'"
+
+#: ../src/common/fontmap.cpp:674
+#, c-format
+msgid "Failed to remember the encoding for the charset '%s'."
+msgstr "Gagal mengingat pengkodean untuk charset '%s'."
+
+#: ../src/unix/snglinst.cpp:296
+#, c-format
+msgid "Failed to remove lock file '%s'"
+msgstr "Gagal menghilangkan file lock '%s'"
+
+#: ../src/unix/snglinst.cpp:262
+#, c-format
+msgid "Failed to remove stale lock file '%s'."
+msgstr "Gagal menghilangkan file '%s' yang terhenti"
+
+#: ../src/msw/registry.cpp:443
+#, c-format
+msgid "Failed to rename registry value '%s' to '%s'."
+msgstr "Gagal mengganti nilai registry '%s' ke '%s'."
+
+#: ../src/msw/registry.cpp:543
+#, c-format
+msgid "Failed to rename the registry key '%s' to '%s'."
+msgstr "Gagal mengganti kunci registry '%s' to '%s'."
+
+#: ../src/msw/clipbrd.cpp:505
+msgid "Failed to retrieve data from the clipboard."
+msgstr "Gagal mengambil data dari clipboard."
+
+#: ../src/common/filename.cpp:1710
+#, c-format
+msgid "Failed to retrieve file times for '%s'"
+msgstr "Gagal mengambil waktu file untuk '%s'"
+
+#: ../src/msw/dialup.cpp:442
+msgid "Failed to retrieve text of RAS error message"
+msgstr "Gagal mengambil teks dari pesan kesalahan RAS"
+
+#: ../src/msw/clipbrd.cpp:742
+msgid "Failed to retrieve the supported clipboard formats"
+msgstr "Gagal mengmbil format-format clipboard yang didukung"
+
+#: ../src/msw/dde.cpp:651
+msgid "Failed to send DDE advise notification"
+msgstr "Gagal mengirimkan pemberitahuan DDE advise"
+
+#: ../src/common/ftp.cpp:368
+#, c-format
+msgid "Failed to set FTP transfer mode to %s."
+msgstr "Gagal menetapkan mode transfer FTP ke %s."
+
+#: ../src/msw/clipbrd.cpp:379
+msgid "Failed to set clipboard data."
+msgstr "Gagal menetapkan data clipboard."
+
+#: ../src/common/file.cpp:522
+msgid "Failed to set temporary file permissions"
+msgstr "Gagal menetapkan permisi file sementara"
+
+#: ../src/unix/threadpsx.cpp:1213
+#: ../src/unix/threadpsx.cpp:1224
+#, c-format
+msgid "Failed to set thread priority %d."
+msgstr "Gagal menetapkan prioritas thread %d."
+
+#: ../src/common/fs_mem.cpp:167
+#, c-format
+msgid "Failed to store image '%s' to memory VFS!"
+msgstr "Gagal menyimpan citra '%s' ke memory VFS!"
+
+#: ../src/unix/threadpsx.cpp:1397
+msgid "Failed to terminate a thread."
+msgstr "Gagal menghentikan thread"
+
+#: ../src/msw/dde.cpp:625
+msgid "Failed to terminate the advise loop with DDE server"
+msgstr "Gagal menghentikan advise loop dengan server DDE"
+
+#: ../src/msw/dialup.cpp:913
+#, c-format
+msgid "Failed to terminate the dialup connection: %s"
+msgstr "Gagal menghentikan koneksi dialup: %s"
+
+#: ../src/common/filename.cpp:1659
+#, c-format
+msgid "Failed to touch the file '%s'"
+msgstr "Gagal membuat file kosong '%s'"
+
+#: ../src/unix/snglinst.cpp:302
+#, c-format
+msgid "Failed to unlock lock file '%s'"
+msgstr "Gagal membuka kunci dari file lock '%s'"
+
+#: ../src/msw/dde.cpp:301
+#, c-format
+msgid "Failed to unregister DDE server '%s'"
+msgstr "Gagal melepas register server DDE '%s'"
+
+#: ../src/unix/snglinst.cpp:173
+#, c-format
+msgid "Failed to write to lock file '%s'"
+msgstr "Gagal menulis file lock '%s'"
+
+#: ../src/generic/logg.cpp:379
+msgid "Fatal error"
+msgstr "Kesalahan fatal"
+
+#: ../src/common/log.cpp:453
+msgid "Fatal error: "
+msgstr "Kesalahan fatal:"
+
+#: ../src/mac/app.cpp:1220
+#: ../src/msw/app.cpp:1281
+msgid "Fatal error: exiting"
+msgstr "Kesalahan fatal: keluar"
+
+#: ../src/mgl/bitmap.cpp:544
+#, c-format
+msgid "File %s does not exist."
+msgstr "File %s tidak ada."
+
+#: ../src/generic/filedlgg.cpp:1354
+#: ../src/gtk/filedlg.cpp:69
+#, c-format
+msgid "File '%s' already exists, do you really want to overwrite it?"
+msgstr "File '%s' sudah ada, apakah anda benar-benar ingin menimpanya?"
+
+#: ../src/msw/filedlg.cpp:505
+#, c-format
+msgid ""
+"File '%s' already exists.\n"
+"Do you want to replace it?"
+msgstr ""
+"File '%s' sudah ada.\n"
+"Apakah anda ingin menggantinya?"
+
+#: ../src/common/textcmn.cpp:158
+msgid "File couldn't be loaded."
+msgstr "File tidak bisa dimuat."
+
+#: ../src/common/docview.cpp:294
+#: ../src/common/docview.cpp:331
+#: ../src/common/docview.cpp:1422
+msgid "File error"
+msgstr "Kesalahan file"
+
+#: ../src/generic/dirctrlg.cpp:720
+#: ../src/generic/filedlgg.cpp:947
+msgid "File name exists already."
+msgstr "Nama file sudah ada."
+
+#: ../src/msw/filedlg.cpp:353
+#, c-format
+msgid "Files (%s)|%s"
+msgstr "File-file (%s)|%s"
+
+#: ../src/html/helpfrm.cpp:362
+msgid "Find"
+msgstr "Temukan"
+
+#: ../src/html/helpfrm.cpp:950
+msgid "Fixed font:"
+msgstr "Huruf tetap:"
+
+#: ../src/common/paper.cpp:118
+msgid "Folio, 8 1/2 x 13 in"
+msgstr "Folio, 8 1/2 x 13 inci"
+
+#: ../src/html/helpfrm.cpp:960
+msgid "Font size:"
+msgstr "Ukuran huruf:"
+
+#: ../src/unix/utilsunx.cpp:572
+msgid "Fork failed"
+msgstr "Fork gagal"
+
+#: ../src/common/dlgcmn.cpp:167
+msgid "Forward"
+msgstr "Ke depan"
+
+#: ../src/common/resourc2.cpp:295
+#: ../src/common/resourc2.cpp:1360
+#: ../src/common/resource.cpp:1814
+#: ../src/common/resource.cpp:1944
+#: ../src/common/resource.cpp:3028
+msgid "Found "
+msgstr "Menemukan"
+
+#: ../src/html/helpfrm.cpp:661
+#: ../src/html/htmlhelp.cpp:460
+#, c-format
+msgid "Found %i matches"
+msgstr "Menemukan %i sesuai"
+
+#: ../src/generic/prntdlgg.cpp:184
+msgid "From:"
+msgstr "Dari:"
+
+#: ../src/common/imaggif.cpp:100
+msgid "GIF: Invalid gif index."
+msgstr "GIF: indeks gif tidak sah."
+
+#: ../src/common/imaggif.cpp:75
+msgid "GIF: data stream seems to be truncated."
+msgstr "GIF: stream data kelihatannya terpotong."
+
+#: ../src/common/imaggif.cpp:59
+msgid "GIF: error in GIF image format."
+msgstr "GIF: kesalahan pada format citra GIF"
+
+#: ../src/common/imaggif.cpp:62
+msgid "GIF: not enough memory."
+msgstr "GIF: tidak cukup memory."
+
+#: ../src/common/imaggif.cpp:65
+msgid "GIF: unknown error!!!"
+msgstr "GIF: error tidak diketahui!!!"
+
+#: ../src/univ/themes/gtk.cpp:623
+msgid "GTK+ theme"
+msgstr "Tema GTK+"
+
+#: ../src/common/paper.cpp:142
+msgid "German Legal Fanfold, 8 1/2 x 13 in"
+msgstr "German Legal Fanfold, 8 1/2 x 13 inci"
+
+#: ../src/common/paper.cpp:141
+msgid "German Std Fanfold, 8 1/2 x 12 in"
+msgstr "German Std Fanfold, 8 1/2 x 12 inci"
+
+#: ../src/common/image.cpp:762
+msgid "GetUnusedColour:: No Unused Color in image "
+msgstr "GetUnusedColour:: Tidak ada Unused Color dalam citra"
+
+#: ../src/html/helpfrm.cpp:506
+msgid "Go back"
+msgstr "Kembali"
+
+#: ../src/html/htmlhelp.cpp:541
+msgid "Go back to the previous HTML page"
+msgstr "Kembali ke halaman HTML sebelumnya"
+
+#: ../src/html/helpfrm.cpp:509
+msgid "Go forward"
+msgstr "Ke depan"
+
+#: ../src/html/htmlhelp.cpp:543
+msgid "Go forward to the next HTML page"
+msgstr "Ke depan ke halaman HTML berikutnya"
+
+#: ../src/html/helpfrm.cpp:514
+msgid "Go one level up in document hierarchy"
+msgstr "Ke satu tingkat diatas dalam hirarki dokumen"
+
+#: ../src/generic/dirdlgg.cpp:108
+#: ../src/generic/filedlgg.cpp:1108
+msgid "Go to home directory"
+msgstr "Ke direktori home"
+
+#: ../src/generic/filedlgg.cpp:1100
+msgid "Go to parent directory"
+msgstr "Ke direktori atasnya"
+
+#: ../src/common/prntbase.cpp:379
+msgid "Goto Page"
+msgstr "Ke Halaman"
+
+#: ../src/common/fontmap.cpp:118
+msgid "Greek (ISO-8859-7)"
+msgstr "Greek (ISO-8859-7)"
+
+#: ../src/html/htmlwin.cpp:354
+#, c-format
+msgid "HTML anchor %s does not exist."
+msgstr "Anchor HTML %s tidak ada."
+
+#: ../src/html/helpfrm.cpp:1279
+msgid "HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|HTML Help Project (*.hhp)|*.hhp|All files (*.*)|*"
+msgstr "File-file HTML (*.htm)|*.htm|File-file HTML (*.html)|*.html|Buku pertolongan (*.htb)|*.htb|Buku pertolongan (*.zip)|*.zip|Proyek Pertolongan HTML (*.hhp)|*.hhp|Semua file (*.*)|*"
+
+#: ../src/common/fontmap.cpp:119
+msgid "Hebrew (ISO-8859-8)"
+msgstr "Hebrew (ISO-8859-8)"
+
+#: ../src/common/dlgcmn.cpp:179
+#: ../src/generic/proplist.cpp:516
+#: ../src/html/helpfrm.cpp:240
+#: ../src/msw/mdi.cpp:1324
+msgid "Help"
+msgstr "Pertolongan"
+
+#: ../src/html/htmlhelp.cpp:87
+#, c-format
+msgid "Help : %s"
+msgstr "Pertolongan : %s"
+
+#: ../src/html/helpfrm.cpp:933
+msgid "Help Browser Options"
+msgstr "Pilihan-pilihan Browser Pertolongan"
+
+#: ../src/generic/helphtml.cpp:334
+#: ../src/generic/helphtml.cpp:335
+msgid "Help Index"
+msgstr "Indeks Pertolongan"
+
+#: ../src/html/helpfrm.cpp:1263
+msgid "Help Printing"
+msgstr "Pertolongan Pencetakan"
+
+#: ../src/html/helpctrl.cpp:49
+#, c-format
+msgid "Help: %s"
+msgstr "Pertolongan: %s"
+
+#: ../src/common/imagbmp.cpp:858
+msgid "ICO: Error in reading mask DIB."
+msgstr "ICO: Kesalahan dalam membaca mask DIB"
+
+#: ../src/common/imagbmp.cpp:960
+#: ../src/common/imagbmp.cpp:1019
+#: ../src/common/imagbmp.cpp:1028
+#: ../src/common/imagbmp.cpp:1039
+#: ../src/common/imagbmp.cpp:1083
+#: ../src/common/imagbmp.cpp:1093
+#: ../src/common/imagbmp.cpp:1102
+msgid "ICO: Error writing the image file!"
+msgstr "ICO: Kesalahan dalam menulis file citra!"
+
+#: ../src/common/imagbmp.cpp:928
+msgid "ICO: Image too tall for an icon."
+msgstr "ICO: Citra terlalu tinggi untuk suatu ikon"
+
+#: ../src/common/imagbmp.cpp:934
+msgid "ICO: Image too wide for an icon."
+msgstr "ICO: Citra terlalu lebar untuk suatu ikon"
+
+#: ../src/common/imagbmp.cpp:1167
+msgid "ICO: Invalid icon index."
+msgstr "ICO: indeks ikon tidak sah."
+
+#: ../src/common/imagiff.cpp:767
+msgid "IFF: data stream seems to be truncated."
+msgstr "IFF: stream data kelihatannya terpotong."
+
+#: ../src/common/imagiff.cpp:751
+msgid "IFF: error in IFF image format."
+msgstr "IFF: kesalahan dalam format citra IFF."
+
+#: ../src/common/imagiff.cpp:754
+msgid "IFF: not enough memory."
+msgstr "IFF: memory tidak cukup."
+
+#: ../src/common/imagiff.cpp:757
+msgid "IFF: unknown error!!!"
+msgstr "IFF: kesalahan yang tidak diketahui!!!"
+
+#: ../src/common/resourc2.cpp:989
+#: ../src/common/resourc2.cpp:1000
+#: ../src/common/resource.cpp:2649
+#: ../src/common/resource.cpp:2660
+#, c-format
+msgid "Icon resource specification %s not found."
+msgstr "Spesifikasi sesumber ikon %s tidak ditemukan."
+
+#: ../src/common/resource.cpp:250
+msgid "Ill-formed resource file syntax."
+msgstr "Bentuk sintaksis file sesumber tidak tepat"
+
+#: ../src/generic/dirctrlg.cpp:702
+#: ../src/generic/filedlgg.cpp:933
+msgid "Illegal directory name."
+msgstr "Nama direktori tidak sah."
+
+#: ../src/generic/filedlgg.cpp:1322
+msgid "Illegal file specification."
+msgstr "Spesifikasi file tidak sah."
+
+#: ../src/common/image.cpp:785
+msgid "Image and Mask have different sizes"
+msgstr "Citra dan Mask mempunyai ukuran yang berlainan."
+
+#: ../src/common/image.cpp:1064
+#, c-format
+msgid "Image file is not of type %d."
+msgstr "File citra bukan bukan merupakan tipe %d."
+
+#: ../src/msw/textctrl.cpp:249
+msgid "Impossible to create a rich edit control, using simple text control instead. Please reinstall riched32.dll"
+msgstr "Tidak mungkin menciptakan suatu kontrol rich edit, menggunakan kontrol text sederhana sebagai gantinya. Silahkan install ulang riched32.dll"
+
+#: ../src/unix/utilsunx.cpp:390
+msgid "Impossible to get child process input"
+msgstr "Tidak mungkin memperoleh masukan dari proses anak"
+
+#: ../src/common/filefn.cpp:1122
+#, c-format
+msgid "Impossible to get permissions for file '%s'"
+msgstr "Tidak mungkin memperoleh permisi file '%s'"
+
+#: ../src/common/filefn.cpp:1136
+#, c-format
+msgid "Impossible to overwrite the file '%s'"
+msgstr "Tidak mungkin menimpa file '%s'"
+
+#: ../src/common/filefn.cpp:1187
+#, c-format
+msgid "Impossible to set permissions for the file '%s'"
+msgstr "Tidak mungkin mengubah permisi file '%s'"
+
+#: ../src/html/helpfrm.cpp:387
+#: ../src/html/htmlhelp.cpp:578
+msgid "Index"
+msgstr "Indeks"
+
+#: ../src/common/fontmap.cpp:123
+msgid "Indian (ISO-8859-12)"
+msgstr "Indian (ISO-8859-12)"
+
+#: ../src/common/imagtiff.cpp:183
+msgid "Invalid TIFF image index."
+msgstr "Indeks citra TIFF tidak sah."
+
+#: ../contrib/src/xrc/xmlres.cpp:343
+#, c-format
+msgid "Invalid XRC resource '%s': doesn't have root node 'resource'."
+msgstr "Sesumber XRC '%s' tidak sah: tidak mempunyai titik akar 'resource'."
+
+#: ../src/common/appcmn.cpp:378
+#, c-format
+msgid "Invalid display mode specification '%s'."
+msgstr "Spesifikasi mode tampilan %s tidak sah."
+
+#: ../src/x11/app.cpp:231
+#, c-format
+msgid "Invalid geometry specification '%s'"
+msgstr "Spesifikasi geomtri '%s' tidak sah"
+
+#: ../src/unix/snglinst.cpp:280
+#, c-format
+msgid "Invalid lock file '%s'."
+msgstr "File lock tidak sah '%s'."
+
+#: ../src/common/regex.cpp:173
+#, c-format
+msgid "Invalid regular expression '%s': %s"
+msgstr "Regular expression tidak sah '%s': %s"
+
+#: ../src/generic/fontdlgg.cpp:227
+msgid "Italic"
+msgstr "Miring"
+
+#: ../src/common/paper.cpp:137
+msgid "Italy Envelope, 110 x 230 mm"
+msgstr "Amplop Italia,  110 x 230 mm"
+
+#: ../src/common/imagjpeg.cpp:222
+msgid "JPEG: Couldn't load - file is probably corrupted."
+msgstr "JPEG: Tidak bisa memuat - file mungkin rusak."
+
+#: ../src/common/imagjpeg.cpp:336
+msgid "JPEG: Couldn't save image."
+msgstr "JPEG: Tidak bisa menyimpan citra."
+
+#: ../src/common/fontmap.cpp:127
+msgid "KOI8-R"
+msgstr "KOI8-R"
+
+#: ../src/generic/prntdlgg.cpp:426
+#: ../src/generic/prntdlgg.cpp:620
+msgid "Landscape"
+msgstr "Memanjang"
+
+#: ../src/common/paper.cpp:110
+msgid "Ledger, 17 x 11 in"
+msgstr "Ledger, 17 x 11 in"
+
+#: ../src/generic/prntdlgg.cpp:632
+msgid "Left margin (mm):"
+msgstr "Batas kiri (mm):"
+
+#: ../src/common/paper.cpp:103
+msgid "Legal, 8 1/2 x 14 in"
+msgstr "Legal, 8 1/2 x 14 inci"
+
+#: ../src/common/paper.cpp:108
+msgid "Letter Small, 8 1/2 x 11 in"
+msgstr "Surat Kecil, 8 1/2 x 11 inci"
+
+#: ../src/common/paper.cpp:102
+msgid "Letter, 8 1/2 x 11 in"
+msgstr "Surat, 8 1/2 x 11 inci"
+
+#: ../src/generic/fontdlgg.cpp:230
+msgid "Light"
+msgstr "Light"
+
+#: ../src/generic/filedlgg.cpp:1587
+#: ../src/gtk/filedlg.cpp:249
+#: ../src/motif/filedlg.cpp:357
+#: ../src/msw/filedlg.cpp:542
+#, c-format
+msgid "Load %s file"
+msgstr "Memuat file %s"
+
+#: ../src/generic/filedlgg.cpp:1589
+msgid "Load file"
+msgstr "Memuat file"
+
+#: ../src/html/htmlwin.cpp:282
+msgid "Loading : "
+msgstr "Memuat:"
+
+#: ../src/common/imagpnm.cpp:72
+msgid "Loading Grey Ascii PNM image is not yet implemented."
+msgstr "Memuat citra PNM Ascii Abu-abu belum diimplementasikan."
+
+#: ../src/common/imagpnm.cpp:75
+msgid "Loading Grey Raw PNM image is not yet implemented."
+msgstr "Memuat citra PNM Mentah Abu-abu belum diimplementasikan."
+
+#: ../src/generic/logg.cpp:554
+#, c-format
+msgid "Log saved to the file '%s'."
+msgstr "Log disimpan ke file '%s'."
+
+#: ../src/gtk/mdi.cpp:433
+msgid "MDI child"
+msgstr "child MDI"
+
+#: ../src/msw/helpchm.cpp:60
+msgid "MS HTML Help functions are unavailable because the MS HTML Help library is not installed on this machine. Please install it."
+msgstr "Fungsi-fungsi MS HTML Help tidak tersedia karena pustaka MS HTML Help tidak terinstall di mesin ini. Silahkan install."
+
+#: ../src/univ/themes/win32.cpp:4545
+msgid "Ma&ximize"
+msgstr "Ma&ksimalkan"
+
+#: ../src/unix/mimetype.cpp:2477
+#, c-format
+msgid "Mailcap file %s, line %d: incomplete entry ignored."
+msgstr "File Mailcap %s, baris %d: isian tidak lengkap diacuhkan."
+
+#: ../src/generic/fdrepdlg.cpp:152
+msgid "Match case"
+msgstr "Sesuaikan besar kecil huruf"
+
+#: ../src/common/fs_mem.cpp:144
+#, c-format
+msgid "Memory VFS already contains file '%s'!"
+msgstr "Memory VFS telah terisi file '%s'!"
+
+#: ../src/univ/themes/metal.cpp:174
+msgid "Metal theme"
+msgstr "Tema Metal"
+
+#: ../src/univ/themes/win32.cpp:4543
+msgid "Mi&nimize"
+msgstr "Mi%nimalkan"
+
+#: ../src/unix/mimetype.cpp:2102
+#, c-format
+msgid "Mime.types file %s, line %d: unterminated quoted string."
+msgstr "File Mime.types %s, baris %d: kutipan string tidak berujung"
+
+#: ../src/mgl/app.cpp:173
+#, c-format
+msgid "Mode %ix%i-%i not available."
+msgstr "Mode %ix%i-%i tidak tersedia."
+
+#: ../src/generic/fontdlgg.cpp:222
+msgid "Modern"
+msgstr "Modern"
+
+#: ../src/common/paper.cpp:138
+msgid "Monarch Envelope, 3 7/8 x 7 1/2 in"
+msgstr "Amplop Monarch, 3 7/8 x 7 1/2 inci"
+
+#: ../src/common/dlgcmn.cpp:176
+msgid "More..."
+msgstr "Lebih..."
+
+#: ../src/generic/filedlgg.cpp:698
+msgid "Name"
+msgstr "Nama"
+
+#: ../src/generic/dirdlgg.cpp:272
+#: ../src/generic/dirdlgg.cpp:282
+#: ../src/generic/filedlgg.cpp:812
+#: ../src/generic/filedlgg.cpp:821
+msgid "NewName"
+msgstr "NamaBaru"
+
+#: ../src/html/helpfrm.cpp:520
+msgid "Next page"
+msgstr "Halaman berikut"
+
+#: ../src/common/dlgcmn.cpp:156
+#: ../src/mac/msgdlg.cpp:78
+#: ../src/motif/msgdlg.cpp:182
+msgid "No"
+msgstr "Tidak"
+
+#: ../src/common/image.cpp:793
+msgid "No Unused Color in image being masked"
+msgstr "Tidak ada Unused Color dalam citra yang sedang di-mask"
+
+#: ../src/common/resourc2.cpp:814
+#: ../src/common/resourc2.cpp:965
+#: ../src/common/resource.cpp:2471
+#: ../src/common/resource.cpp:2625
+msgid "No XBM facility available!"
+msgstr "Tidak ada fasilitas XBM tersedia!"
+
+#: ../src/common/resourc2.cpp:983
+#: ../src/common/resource.cpp:2643
+msgid "No XPM icon facility available!"
+msgstr "Tidak ada fasilitas ikon XPM tersedia!"
+
+#: ../src/generic/helphtml.cpp:329
+msgid "No entries found."
+msgstr "Tidak ada yang ditemukan."
+
+#: ../src/common/fontmap.cpp:865
+#, c-format
+msgid ""
+"No font for displaying text in encoding '%s' found,\n"
+"but an alternative encoding '%s' is available.\n"
+"Do you want to use this encoding (otherwise you will have to choose another one)?"
+msgstr ""
+"Tidak ada huruf untuk menampilkan teks dalam pengkodean '%s' ditemukan,\n"
+" tetapi alternatif pengkodean '%s' tersedia.\n"
+"Apakah anda ingin menggunakan pengkodean ini (jika tidak anda harus memilih lainnya)?"
+
+#: ../src/common/fontmap.cpp:870
+#, c-format
+msgid ""
+"No font for displaying text in encoding '%s' found.\n"
+"Would you like to select a font to be used for this encoding\n"
+"(otherwise the text in this encoding will not be shown correctly)?"
+msgstr ""
+"Tidak ada huruf untuk menampilkan teks dalam pengkodean '%s' ditemukan.\n"
+"Apakah anda mau memilih huruf yang akan digunakan untuk pengkodean\n"
+"(jika tidak teks dalam pengkodean tidak akan diperlihatkan secara benar)?"
+
+#: ../contrib/src/xrc/xmlres.cpp:523
+#, c-format
+msgid "No handler found for XML node '%s', class '%s'!"
+msgstr "Tidak ada handler yang ditemukan untuk titik XML '%s', class '%s'!"
+
+#: ../src/common/image.cpp:1046
+#: ../src/common/image.cpp:1089
+msgid "No handler found for image type."
+msgstr "Tidak ada handler ditemukan untuk tipe citra."
+
+#: ../src/common/image.cpp:1054
+#: ../src/common/image.cpp:1097
+#: ../src/common/image.cpp:1131
+#, c-format
+msgid "No image handler for type %d defined."
+msgstr "Tidak ada handler citra untuk tipe %d didefinisikan."
+
+#: ../src/common/image.cpp:1115
+#: ../src/common/image.cpp:1147
+#, c-format
+msgid "No image handler for type %s defined."
+msgstr "Tidak ada handler citra untuk tipe %s didefinisikan."
+
+#: ../src/html/helpfrm.cpp:650
+#: ../src/html/htmlhelp.cpp:436
+#: ../src/html/htmlhelp.cpp:441
+msgid "No matching page found yet"
+msgstr "Tidak ada halaman yang sesuai ditemukan"
+
+#: ../src/common/fontmap.cpp:121
+msgid "Nordic (ISO-8859-10)"
+msgstr "Nordic (ISO-8859-10)"
+
+#: ../src/generic/fontdlgg.cpp:226
+#: ../src/generic/fontdlgg.cpp:229
+msgid "Normal"
+msgstr "Normal"
+
+#: ../src/html/helpfrm.cpp:942
+msgid "Normal font:"
+msgstr "Huruf normal:"
+
+#: ../src/common/paper.cpp:122
+msgid "Note, 8 1/2 x 11 in"
+msgstr "Catatan, 8 1/2 x 11 in"
+
+#: ../src/common/dlgcmn.cpp:162
+#: ../src/generic/dirdlgg.cpp:151
+#: ../src/generic/filedlgg.cpp:1165
+#: ../src/generic/filedlgg.cpp:1176
+#: ../src/generic/fontdlgg.cpp:253
+#: ../src/generic/logg.cpp:739
+#: ../src/generic/prntdlgg.cpp:452
+#: ../src/generic/proplist.cpp:499
+#: ../src/gtk/filedlg.cpp:167
+#: ../src/gtk/fontdlg.cpp:136
+#: ../src/html/helpfrm.cpp:972
+msgid "OK"
+msgstr "OK"
+
+#: ../src/html/helpfrm.cpp:528
+#: ../src/html/helpfrm.cpp:1274
+msgid "Open HTML document"
+msgstr "Buka dokumen HTML"
+
+#: ../src/generic/dirctrlg.cpp:731
+#: ../src/generic/dirdlgg.cpp:298
+#: ../src/generic/filedlgg.cpp:836
+#: ../src/generic/filedlgg.cpp:960
+msgid "Operation not permitted."
+msgstr "Operasi tidak diijinkan"
+
+#: ../src/common/cmdline.cpp:666
+#, c-format
+msgid "Option '%s' requires a value, '=' expected."
+msgstr "Pilihan '%s' memerlukan suatu nilai, '=' diharapkan."
+
+#: ../src/common/cmdline.cpp:686
+#, c-format
+msgid "Option '%s' requires a value."
+msgstr "Pilihan '%s' memerlukan suatu nilai."
+
+#: ../src/common/cmdline.cpp:747
+#, c-format
+msgid "Option '%s': '%s' cannot be converted to a date."
+msgstr "Pilihan '%s': '%s' tidak bisa dikonversi ke suatu tanggal."
+
+#: ../src/generic/prntdlgg.cpp:432
+msgid "Options"
+msgstr "Pilihan-pilihan"
+
+#: ../src/generic/prntdlgg.cpp:428
+#: ../src/generic/prntdlgg.cpp:621
+msgid "Orientation"
+msgstr "Orientasi"
+
+#: ../src/common/imagpcx.cpp:455
+#: ../src/common/imagpcx.cpp:478
+msgid "PCX: couldn't allocate memory"
+msgstr "PCX: tidak bisa mengalokasikan memory"
+
+#: ../src/common/imagpcx.cpp:454
+msgid "PCX: image format unsupported"
+msgstr "PCX: format citra tidak didukung"
+
+#: ../src/common/imagpcx.cpp:477
+msgid "PCX: invalid image"
+msgstr "PCX: citra tidak sah"
+
+#: ../src/common/imagpcx.cpp:441
+msgid "PCX: this is not a PCX file."
+msgstr "PCX: ini bukan file PCX."
+
+#: ../src/common/imagpcx.cpp:457
+#: ../src/common/imagpcx.cpp:479
+msgid "PCX: unknown error !!!"
+msgstr "PCX: kesalahan tidak diketahui !!!"
+
+#: ../src/common/imagpcx.cpp:456
+msgid "PCX: version number too low"
+msgstr "PCX: nomor versi terlalu rendah"
+
+#: ../src/common/imagpnm.cpp:96
+msgid "PNM: Couldn't allocate memory."
+msgstr "PNM: Tidak bisa mengalokasikan memory."
+
+#: ../src/common/imagpnm.cpp:80
+msgid "PNM: File format is not recognized."
+msgstr "PNM: format file tidak dikenali"
+
+#: ../src/common/imagpnm.cpp:112
+msgid "PNM: File seems truncated."
+msgstr "PNM: Kelihatannya file terpotong."
+
+#: ../src/common/prntbase.cpp:827
+#, c-format
+msgid "Page %d"
+msgstr "Halaman %d"
+
+#: ../src/common/prntbase.cpp:825
+#, c-format
+msgid "Page %d of %d"
+msgstr "Halaman %d dari %d"
+
+#: ../src/generic/prntdlgg.cpp:587
+msgid "Page Setup"
+msgstr "Atur Halaman"
+
+#: ../src/generic/prntdlgg.cpp:161
+msgid "Pages"
+msgstr "Halaman-halaman"
+
+#: ../src/generic/prntdlgg.cpp:538
+#: ../src/generic/prntdlgg.cpp:609
+#: ../src/generic/prntdlgg.cpp:794
+msgid "Paper Size"
+msgstr "Ukuran Kertas"
+
+#: ../src/generic/prntdlgg.cpp:418
+#: ../src/generic/prntdlgg.cpp:598
+#: ../src/generic/prntdlgg.cpp:790
+msgid "Paper size"
+msgstr "Ukuran kertas"
+
+#: ../src/generic/filedlgg.cpp:703
+msgid "Permissions"
+msgstr "Permisi"
+
+#: ../src/unix/utilsunx.cpp:439
+msgid "Pipe creation failed"
+msgstr "Pembuatan pipa gagal"
+
+#: ../src/gtk/fontdlg.cpp:71
+msgid "Please choose a valid font."
+msgstr "Silahkan piliha huruf yang sah."
+
+#: ../src/generic/filedlgg.cpp:1372
+#: ../src/gtk/filedlg.cpp:80
+msgid "Please choose an existing file."
+msgstr "Silahkan memilih file yang ada."
+
+#: ../src/msw/dialup.cpp:747
+msgid "Please choose which ISP do you want to connect to"
+msgstr "Silahkan pilih, anda ingin koneksi ke ISP mana"
+
+#: ../src/msw/listctrl.cpp:535
+#, c-format
+msgid ""
+"Please install a newer version of comctl32.dll\n"
+"(at least version 4.70 is required but you have %d.%02d)\n"
+"or this program won't operate correctly."
+msgstr ""
+"Silahkan install versi yang lebih baru dari comctl32.dll\n"
+"(setidaknya versi 4.70 diperlukan tetapi anda mempunyai %d.%02d)\n"
+"atau program ini tidak akan beroperasi dengan benar."
+
+#: ../src/common/prntbase.cpp:112
+msgid ""
+"Please wait while printing\n"
+""
+msgstr ""
+"Tunggu sebentar, sedang mencetak\n"
+""
+
+#: ../src/generic/prntdlgg.cpp:425
+#: ../src/generic/prntdlgg.cpp:619
+msgid "Portrait"
+msgstr "Membujur"
+
+#: ../src/generic/prntdlgg.cpp:268
+msgid "PostScript file"
+msgstr "File Postcript"
+
+#: ../src/html/htmlhelp.cpp:509
+msgid "Preparing help window..."
+msgstr "Menyiapkan jendela pertolongan..."
+
+#: ../src/html/helpfrm.cpp:964
+msgid "Preview:"
+msgstr "Preview:"
+
+#: ../src/html/helpfrm.cpp:517
+msgid "Previous page"
+msgstr "Halaman sebelumnya"
+
+#: ../src/generic/prntdlgg.cpp:110
+#: ../src/generic/prntdlgg.cpp:124
+msgid "Print"
+msgstr "Cetak"
+
+#: ../src/common/docview.cpp:923
+msgid "Print Preview"
+msgstr "Preview Pencetakan"
+
+#: ../src/common/prntbase.cpp:782
+#: ../src/common/prntbase.cpp:806
+msgid "Print Preview Failure"
+msgstr "Gagal Preview Pencetakan"
+
+#: ../src/generic/prntdlgg.cpp:169
+msgid "Print Range"
+msgstr "Jangkauan Cetakan"
+
+#: ../src/generic/prntdlgg.cpp:406
+msgid "Print Setup"
+msgstr "Atur Cetakan"
+
+#: ../src/generic/prntdlgg.cpp:440
+msgid "Print in colour"
+msgstr "Cetak berwarna"
+
+#: ../src/generic/prntdlgg.cpp:442
+msgid "Print spooling"
+msgstr "Pen-spool-an pencetakan"
+
+#: ../src/html/helpfrm.cpp:534
+msgid "Print this page"
+msgstr "Cetak halaman ini"
+
+#: ../src/generic/prntdlgg.cpp:147
+msgid "Print to File"
+msgstr "Cetak ke File"
+
+#: ../src/common/prntbase.cpp:436
+msgid "Print..."
+msgstr "Cetak..."
+
+#: ../src/generic/prntdlgg.cpp:444
+msgid "Printer command:"
+msgstr "Perintah pencetak:"
+
+#: ../src/generic/prntdlgg.cpp:146
+msgid "Printer options"
+msgstr "Pilihan-pilihan pencetak"
+
+#: ../src/generic/prntdlgg.cpp:448
+msgid "Printer options:"
+msgstr "Pilihan-pilihan Pencetak:"
+
+#: ../src/generic/prntdlgg.cpp:665
+msgid "Printer..."
+msgstr "Pencetak..."
+
+#: ../src/common/prntbase.cpp:109
+#: ../src/common/prntbase.cpp:154
+msgid "Printing "
+msgstr "Mencetak"
+
+#: ../src/common/prntbase.cpp:126
+msgid "Printing Error"
+msgstr "Kesalahan Mencetak"
+
+#: ../src/generic/printps.cpp:220
+#, c-format
+msgid "Printing page %d..."
+msgstr "Mencetak halaman %d..."
+
+#: ../src/generic/printps.cpp:180
+msgid "Printing..."
+msgstr "Mencetak..."
+
+#: ../src/common/log.cpp:454
+msgid "Program aborted."
+msgstr "Program dibatalkan."
+
+#: ../src/common/paper.cpp:119
+msgid "Quarto, 215 x 275 mm"
+msgstr "Kuarto, 215 x 275 mm"
+
+#: ../src/generic/logg.cpp:1111
+msgid "Question"
+msgstr "Pertanyaan"
+
+#: ../src/common/ffile.cpp:125
+#: ../src/common/ffile.cpp:146
+#, c-format
+msgid "Read error on file '%s'"
+msgstr "Kesalahan membaca pada file '%s'"
+
+#: ../contrib/src/xrc/xmlres.cpp:498
+#, c-format
+msgid "Referenced object node with ref=\"%s\" not found!"
+msgstr "Titik obyek tereferensi dengan ref=\"%s\" tidak ditemukan"
+
+#: ../src/msw/registry.cpp:535
+#, c-format
+msgid "Registry key '%s' already exists."
+msgstr "Kunci registry '%s' sudah ada."
+
+#: ../src/msw/registry.cpp:504
+#, c-format
+msgid "Registry key '%s' does not exist, cannot rename it."
+msgstr "Kunci registry '%s' tidak ada, tidak bisa mengubah namanya."
+
+#: ../src/msw/registry.cpp:631
+#, c-format
+msgid ""
+"Registry key '%s' is needed for normal system operation,\n"
+"deleting it will leave your system in unusable state:\n"
+"operation aborted."
+msgstr ""
+"Kunci registry '%s' diperlukan untuk operasi sistem normal,\n"
+" menghapusnya akan menyebabkan sistem anda tidak stabil:\n"
+" operasi dibatalkan."
+
+#: ../src/msw/registry.cpp:435
+#, c-format
+msgid "Registry value '%s' already exists."
+msgstr "Nilai registry '%s' sudah ada."
+
+#: ../src/msw/thread.cpp:246
+msgid "ReleaseMutex()"
+msgstr "ReleaseMutex()"
+
+#: ../src/generic/helphtml.cpp:334
+msgid "Relevant entries:"
+msgstr "Entri relevan"
+
+#: ../src/generic/progdlgg.cpp:199
+msgid "Remaining time : "
+msgstr "Waktu tersisa :"
+
+#: ../src/html/helpfrm.cpp:324
+msgid "Remove current page from bookmarks"
+msgstr "Hilangkan halaman saat ini dari bookmark"
+
+#: ../src/generic/fdrepdlg.cpp:177
+msgid "Replace &all"
+msgstr "Ganti &semua"
+
+#: ../src/generic/fdrepdlg.cpp:129
+msgid "Replace with:"
+msgstr "Ganti dengan:"
+
+#: ../contrib/src/xrc/xmlres.cpp:360
+msgid "Resource files must have same version number!"
+msgstr "File sesumber harus mempunyai nomor versi yang sama!"
+
+#: ../src/generic/prntdlgg.cpp:644
+msgid "Right margin (mm):"
+msgstr "Batas kanan (mm):"
+
+#: ../src/generic/fontdlgg.cpp:220
+msgid "Roman"
+msgstr "Roman"
+
+#: ../src/generic/filedlgg.cpp:1602
+#: ../src/gtk/filedlg.cpp:265
+#: ../src/motif/filedlg.cpp:359
+#: ../src/msw/filedlg.cpp:544
+#, c-format
+msgid "Save %s file"
+msgstr "Simpan file %s"
+
+#: ../src/common/docview.cpp:247
+msgid "Save as"
+msgstr "Simpan sebagai"
+
+#: ../src/generic/filedlgg.cpp:1604
+msgid "Save file"
+msgstr "Simpan file "
+
+#: ../src/generic/logg.cpp:487
+msgid "Save log contents to file"
+msgstr "Simpan isi log ke file"
+
+#: ../src/mgl/window.cpp:132
+msgid "Screenshot captured: "
+msgstr "Screenshot yang ditangkap:"
+
+#: ../src/generic/fontdlgg.cpp:223
+msgid "Script"
+msgstr "Skrip"
+
+#: ../src/html/helpfrm.cpp:408
+#: ../src/html/helpfrm.cpp:423
+#: ../src/html/htmlhelp.cpp:610
+msgid "Search"
+msgstr "Mencari"
+
+#: ../src/html/helpfrm.cpp:410
+msgid "Search contents of help book(s) for all occurences of the text you typed above"
+msgstr "Mencari isi dari buku pertolongan untuk semua pemunculan dari teks yang anda ketikkan diatas"
+
+#: ../src/generic/fdrepdlg.cpp:158
+msgid "Search direction"
+msgstr "Arah pencarian"
+
+#: ../src/generic/fdrepdlg.cpp:117
+msgid "Search for:"
+msgstr "Mencari:"
+
+#: ../src/html/helpfrm.cpp:789
+msgid "Search in all books"
+msgstr "Mencari di semua buku"
+
+#: ../src/html/htmlhelp.cpp:593
+msgid "Search!"
+msgstr "Cari!"
+
+#: ../src/html/helpfrm.cpp:650
+#: ../src/html/htmlhelp.cpp:383
+#: ../src/html/htmlhelp.cpp:441
+msgid "Searching..."
+msgstr "Mencari..."
+
+#: ../src/generic/dirctrlg.cpp:549
+msgid "Sections"
+msgstr "Seksi"
+
+#: ../src/common/ffile.cpp:213
+#, c-format
+msgid "Seek error on file '%s'"
+msgstr "Kesalahan seek pada file '%s'"
+
+#: ../src/common/docview.cpp:1538
+msgid "Select a document template"
+msgstr "Pilih template dokumen"
+
+#: ../src/common/docview.cpp:1614
+msgid "Select a document view"
+msgstr "Pilih pandangan dokumen"
+
+#: ../src/common/docview.cpp:1405
+#: ../src/common/docview.cpp:1456
+msgid "Select a file"
+msgstr "Pilih file"
+
+#: ../src/common/cmdline.cpp:703
+#, c-format
+msgid "Separator expected after the option '%s'."
+msgstr "Pemisah diharapkan setelah pilihan '%s'."
+
+#: ../src/common/dlgcmn.cpp:173
+msgid "Setup"
+msgstr "Atur"
+
+#: ../src/generic/prntdlgg.cpp:152
+msgid "Setup..."
+msgstr "Atur..."
+
+#: ../src/msw/dialup.cpp:518
+msgid "Several active dialup connections found, choosing one randomly."
+msgstr "Banyak koneksi dialup aktif ditemukan, pilih satu secara acak."
+
+#: ../src/html/helpfrm.cpp:364
+msgid "Show all"
+msgstr "Tampilkan semua"
+
+#: ../src/html/helpfrm.cpp:375
+msgid "Show all items in index"
+msgstr "Tampilkan semua item dalam indeks"
+
+#: ../src/generic/dirdlgg.cpp:135
+msgid "Show hidden directories"
+msgstr "Tampilkan direktori-direktori tersembunyi"
+
+#: ../src/generic/filedlgg.cpp:1160
+#: ../src/generic/filedlgg.cpp:1182
+msgid "Show hidden files"
+msgstr "Tampilkan file-file tersembunyi"
+
+#: ../src/html/helpfrm.cpp:501
+#: ../src/html/htmlhelp.cpp:538
+msgid "Show/hide navigation panel"
+msgstr "Tampilkan/Sembunyikan panel navigasi"
+
+#: ../src/generic/filedlgg.cpp:699
+msgid "Size"
+msgstr "Ukuran"
+
+#: ../src/generic/fontdlgg.cpp:228
+msgid "Slant"
+msgstr "Sudut pandang"
+
+#: ../src/common/docview.cpp:304
+msgid "Sorry, could not open this file for saving."
+msgstr "Maaf, tidak bisa membuka file untuk menyimpan."
+
+#: ../src/common/docview.cpp:341
+#: ../src/common/docview.cpp:354
+#: ../src/common/docview.cpp:1424
+msgid "Sorry, could not open this file."
+msgstr "Maaf, tidak bisa membuka file ini."
+
+#: ../src/common/docview.cpp:311
+msgid "Sorry, could not save this file."
+msgstr "Maaf, tidak bisa menyimpan file ini."
+
+#: ../src/common/prntbase.cpp:782
+msgid "Sorry, not enough memory to create a preview."
+msgstr "Maaf, tidak cukup memory untuk menciptakan preview."
+
+#: ../src/common/paper.cpp:111
+msgid "Statement, 5 1/2 x 8 1/2 in"
+msgstr "Pernyataan, 5 1/2 x 8 1/2 inci"
+
+#: ../src/generic/logg.cpp:604
+msgid "Status: "
+msgstr "Status:"
+
+#: ../contrib/src/xrc/xmlres.cpp:558
+#, c-format
+msgid "Subclass '%s' not found for resource '%s', not subclassing!"
+msgstr "Subclass '%s' tidak ditemukan untuk sesumber '%s', bukan pen-subklas-an"
+
+#: ../src/generic/fontdlgg.cpp:224
+msgid "Swiss"
+msgstr "Swiss"
+
+#: ../src/common/imagtiff.cpp:204
+#: ../src/common/imagtiff.cpp:215
+#: ../src/common/imagtiff.cpp:326
+msgid "TIFF: Couldn't allocate memory."
+msgstr "TIFF: Tidak bisa mengalokasikan memory."
+
+#: ../src/common/imagtiff.cpp:175
+msgid "TIFF: Error loading image."
+msgstr "TIFF: Kesalahan memuat citra."
+
+#: ../src/common/imagtiff.cpp:226
+msgid "TIFF: Error reading image."
+msgstr "TIFF: Kesalahan membaca citra."
+
+#: ../src/common/imagtiff.cpp:303
+msgid "TIFF: Error saving image."
+msgstr "TIFF: Kesalahan menyimpan citra."
+
+#: ../src/common/imagtiff.cpp:350
+msgid "TIFF: Error writing image."
+msgstr "TIFF: Kesalahan menulis citra."
+
+#: ../src/common/paper.cpp:109
+msgid "Tabloid, 11 x 17 in"
+msgstr "Tabloid, 11 x 17 inci"
+
+#: ../src/generic/fontdlgg.cpp:225
+msgid "Teletype"
+msgstr "Teletype"
+
+#: ../src/common/docview.cpp:1539
+msgid "Templates"
+msgstr "Template"
+
+#: ../src/common/fontmap.cpp:122
+msgid "Thai (ISO-8859-11)"
+msgstr "Thai (ISO-8859-11)"
+
+#: ../src/common/ftp.cpp:569
+msgid "The FTP server doesn't support passive mode."
+msgstr "Server FTP tidak mendukung mode passive"
+
+#: ../src/common/fontmap.cpp:630
+#, c-format
+msgid ""
+"The charset '%s' is unknown. You may select\n"
+"another charset to replace it with or choose\n"
+"[Cancel] if it cannot be replaced"
+msgstr ""
+"Charset '%s' tidak diketahui. Anda bisa memilih\n"
+" charset lainnya untuk menggantinya atau memilih\n"
+" [Batal] jika tidak bisa diganti"
+
+#: ../src/msw/ole/dataobj.cpp:161
+#, c-format
+msgid "The clipboard format '%d' doesn't exist."
+msgstr "Format clipboard '%d' tidak ada."
+
+#: ../src/generic/dirdlgg.cpp:186
+#, c-format
+msgid ""
+"The directory '%s' does not exist\n"
+"Create it now?"
+msgstr ""
+"Direktori '%s' tidak ada\n"
+" Buat sekarang?"
+
+#: ../src/common/docview.cpp:1802
+#, c-format
+msgid ""
+"The file '%s' doesn't exist and couldn't be opened.\n"
+"It has been removed from the most recently used files list."
+msgstr ""
+"File '%s' tidak ada dan tidak bisa dibuka.\n"
+" File tersebut telah dihilangkan dari daftar file-file yang paling banyak digunakan."
+
+#: ../src/common/filename.cpp:896
+#, c-format
+msgid "The path '%s' contains too many \"..\"!"
+msgstr "Path '%s' berisi terlalu banyak \"..\"!"
+
+#: ../src/common/cmdline.cpp:845
+#, c-format
+msgid "The required parameter '%s' was not specified."
+msgstr "Parameter '%s' yang diperlukan tidak dispesifikasikan."
+
+#: ../src/common/textcmn.cpp:187
+msgid "The text couldn't be saved."
+msgstr "Teks tidak bisa disimpan."
+
+#: ../src/common/cmdline.cpp:824
+#, c-format
+msgid "The value for the option '%s' must be specified."
+msgstr "Nilai untuk pilihan '%s' harus dispesifikasikan."
+
+#: ../src/msw/dialup.cpp:406
+#, c-format
+msgid "The version of remote access service (RAS) installed on this machine is tooold, please upgrade (the following required function is missing: %s)."
+msgstr "Versi dari remote access service (RAS) terinstall di mesin ini terlalu tua, silahkan perbaharui (fungsi yang diperlukan berikut ini hilang %s)."
+
+#: ../src/html/htmprint.cpp:545
+msgid "There was a problem during page setup: you may need to set a default printer."
+msgstr "Ada masalah pada saat mengatur halaman: anda mungkin perlu menetapkan pencetak default."
+
+#: ../src/msw/thread.cpp:1214
+msgid "Thread module initialization failed: can not store value in thread local storage"
+msgstr "Inisialisasi modul thread gagal: tidak bisa menyimpan nilai dalam penyimpanan thread lokal"
+
+#: ../src/unix/threadpsx.cpp:1568
+msgid "Thread module initialization failed: failed to create thread key"
+msgstr "Inisialisasi modul thread gagal: gagal menciptakan kunci thread"
+
+#: ../src/msw/thread.cpp:1202
+msgid "Thread module initialization failed: impossible to allocate index in thread local storage"
+msgstr "Inisialisasi modul thread gagal: tidak mungkin mengalokasikan indeks dalam penyimpanan thread lokal"
+
+#: ../src/unix/threadpsx.cpp:1076
+msgid "Thread priority setting is ignored."
+msgstr "Pentetapan prioritas thread diabaikan."
+
+#: ../src/msw/mdi.cpp:189
+msgid "Tile &Horizontally"
+msgstr "Tile &Horizontal"
+
+#: ../src/msw/mdi.cpp:190
+msgid "Tile &Vertically"
+msgstr "Tile &Vertikal"
+
+#: ../src/generic/filedlgg.cpp:701
+msgid "Time"
+msgstr "Waktu"
+
+#: ../src/generic/tipdlg.cpp:163
+msgid "Tip of the Day"
+msgstr "Tip Hari Ini"
+
+#: ../src/generic/tipdlg.cpp:139
+msgid "Tips not available, sorry!"
+msgstr "Tip tidak tersedia, maaf!"
+
+#: ../src/generic/prntdlgg.cpp:188
+msgid "To:"
+msgstr "Kepada:"
+
+#: ../src/generic/prntdlgg.cpp:633
+msgid "Top margin (mm):"
+msgstr "Batas atas (mm):"
+
+#: ../src/common/fs_mem.cpp:202
+#, c-format
+msgid "Trying to remove file '%s' from memory VFS, but it is not loaded!"
+msgstr "Mencoba menghilangkan file '%s' dari memory VFS, tetapi file tersebut termuat!"
+
+#: ../src/common/sckaddr.cpp:126
+msgid "Trying to solve a NULL hostname: giving up"
+msgstr "Mencoba memecahkan nama host NULL: menyerah"
+
+#: ../src/common/fontmap.cpp:120
+msgid "Turkish (ISO-8859-9)"
+msgstr "Turkish (ISO-8859-9)"
+
+#: ../src/common/paper.cpp:140
+msgid "US Std Fanfold, 14 7/8 x 11 in"
+msgstr "US Std Fanfold, 14 7/8 x 11 inci"
+
+#: ../src/html/htmlwin.cpp:270
+#, c-format
+msgid "Unable to open requested HTML document: %s"
+msgstr "Tidak mampu membuka dokumen HTML yang diminta: %s"
+
+#: ../src/generic/fontdlgg.cpp:249
+msgid "Underline"
+msgstr "Garis bawah"
+
+#: ../src/common/resourc2.cpp:305
+#: ../src/common/resourc2.cpp:319
+#: ../src/common/resourc2.cpp:335
+#: ../src/common/resourc2.cpp:349
+#: ../src/common/resourc2.cpp:1370
+#: ../src/common/resourc2.cpp:1384
+#: ../src/common/resourc2.cpp:1400
+#: ../src/common/resourc2.cpp:1414
+#: ../src/common/resource.cpp:1824
+#: ../src/common/resource.cpp:1838
+#: ../src/common/resource.cpp:1855
+#: ../src/common/resource.cpp:1869
+#: ../src/common/resource.cpp:1954
+#: ../src/common/resource.cpp:1968
+#: ../src/common/resource.cpp:1984
+#: ../src/common/resource.cpp:1998
+#: ../src/common/resource.cpp:3038
+#: ../src/common/resource.cpp:3052
+#: ../src/common/resource.cpp:3069
+#: ../src/common/resource.cpp:3083
+msgid "Unexpected end of file whilst parsing resource."
+msgstr "Akhri file tidak diharapkan pada saat mem-parsing sesumber."
+
+#: ../src/common/cmdline.cpp:788
+#, c-format
+msgid "Unexpected parameter '%s'"
+msgstr "Parameter tidak diharapkan '%s'"
+
+#: ../src/common/fontmap.cpp:141
+msgid "Unicode 7 bit (UTF-7)"
+msgstr "Unicode 7 bit (UTF-7)"
+
+#: ../src/common/fontmap.cpp:142
+msgid "Unicode 8 bit (UTF-8)"
+msgstr "Unicode 8 bit (UTF-8)"
+
+#: ../src/msw/dde.cpp:1020
+#, c-format
+msgid "Unknown DDE error %08x"
+msgstr "Kesalahan DDE %08x tidak diketahui"
+
+#: ../src/common/fontmap.cpp:403
+#, c-format
+msgid "Unknown encoding (%d)"
+msgstr "Pengkodean tidak diketahui (%d)"
+
+#: ../src/unix/mimetype.cpp:2149
+#, c-format
+msgid "Unknown field in file %s, line %d: '%s'."
+msgstr "Field dalam file %s tidak diketahui, baris %d: '%s'."
+
+#: ../src/common/cmdline.cpp:564
+#, c-format
+msgid "Unknown long option '%s'"
+msgstr "Pilihan panjang '%s' tidak diketahui"
+
+#: ../src/common/cmdline.cpp:573
+#: ../src/common/cmdline.cpp:594
+#, c-format
+msgid "Unknown option '%s'"
+msgstr "Pilihan '%s' tidak diketahui"
+
+#: ../contrib/src/xrc/xmlres.cpp:628
+msgid "Unknown style flag "
+msgstr "Flag style tidak diketahui"
+
+#: ../src/common/mimecmn.cpp:167
+#, c-format
+msgid "Unmatched '{' in an entry for mime type %s."
+msgstr "'{' tidak sesuai dalam entri mime type %s."
+
+#: ../src/common/cmdproc.cpp:238
+#: ../src/common/cmdproc.cpp:254
+#: ../src/common/cmdproc.cpp:281
+msgid "Unnamed command"
+msgstr "Perintah tak bernama"
+
+#: ../src/common/resourc2.cpp:687
+#: ../src/common/resource.cpp:2343
+#, c-format
+msgid "Unrecognized style %s whilst parsing resource."
+msgstr "Style %s tidak dikenali pada saat mem-parsing sesumber."
+
+#: ../src/mac/clipbrd.cpp:58
+#: ../src/msw/clipbrd.cpp:273
+#: ../src/msw/clipbrd.cpp:447
+msgid "Unsupported clipboard format."
+msgstr "Format clipboard tidak didukung."
+
+#: ../src/common/appcmn.cpp:362
+#, c-format
+msgid "Unsupported theme '%s'."
+msgstr "Tema '%s' tidak didukung."
+
+#: ../src/generic/fdrepdlg.cpp:157
+msgid "Up"
+msgstr "Atas"
+
+#: ../src/common/cmdline.cpp:901
+#, c-format
+msgid "Usage: %s"
+msgstr "Penggunaan: %s"
+
+#: ../src/common/valtext.cpp:196
+msgid "Validation conflict"
+msgstr "Konflik validasi"
+
+#: ../src/generic/filedlgg.cpp:1090
+msgid "View files as a detailed view"
+msgstr "Tampilan file dalam tampilan rinci"
+
+#: ../src/generic/filedlgg.cpp:1083
+msgid "View files as a list view"
+msgstr "Tampilkan file dalam tampilan daftar"
+
+#: ../src/common/docview.cpp:1615
+msgid "Views"
+msgstr "Pandangan"
+
+#: ../src/unix/utilsunx.cpp:752
+msgid "Waiting for subprocess termination failed"
+msgstr "Menunggu penghentian subproses gagal"
+
+#: ../src/common/docview.cpp:437
+#: ../src/common/resource.cpp:124
+msgid "Warning"
+msgstr "Peringatan"
+
+#: ../src/common/log.cpp:464
+msgid "Warning: "
+msgstr "Peringatan:"
+
+#: ../src/html/htmlpars.cpp:357
+msgid "Warning: attempt to remove HTML tag handler from empty stack."
+msgstr "Peringatan: berusaha menghilangkan handler tag HTML dari stack kosong."
+
+#: ../src/common/fontmap.cpp:112
+msgid "Western European (ISO-8859-1)"
+msgstr "Western European (ISO-8859-1)"
+
+#: ../src/common/fontmap.cpp:126
+msgid "Western European with Euro (ISO-8859-15)"
+msgstr "Western European with Euro (ISO-8859-15)"
+
+#: ../src/generic/fdrepdlg.cpp:149
+msgid "Whole word"
+msgstr "Seluruh kata"
+
+#: ../src/html/helpfrm.cpp:407
+msgid "Whole words only"
+msgstr "Hanya seluruh kata"
+
+#: ../src/univ/themes/win32.cpp:1168
+msgid "Win32 theme"
+msgstr "Tema Win32"
+
+#: ../src/msw/utils.cpp:979
+msgid "Win32s on Windows 3.1"
+msgstr "Win32 pada Windows 3.1"
+
+#: ../src/msw/utils.cpp:1011
+msgid "Windows 3.1"
+msgstr "Windows 3.1"
+
+#: ../src/msw/utils.cpp:983
+#, c-format
+msgid "Windows 9%c"
+msgstr "Windows 9%c"
+
+#: ../src/common/fontmap.cpp:138
+msgid "Windows Arabic (CP 1256)"
+msgstr "Windows Arabic (CP 1256)"
+
+#: ../src/common/fontmap.cpp:139
+msgid "Windows Baltic (CP 1257)"
+msgstr "Windows Baltic (CP 1257)"
+
+#: ../src/common/fontmap.cpp:132
+msgid "Windows Central European (CP 1250)"
+msgstr "Windows Central European (CP 1250)"
+
+#: ../src/common/fontmap.cpp:129
+msgid "Windows Chinese Simplified (CP 936)"
+msgstr "Windows Chinese Simplified (CP 936)"
+
+#: ../src/common/fontmap.cpp:131
+msgid "Windows Chinese Traditional (CP 950)"
+msgstr "Windows Chinese Traditional (CP 950)"
+
+#: ../src/common/fontmap.cpp:133
+msgid "Windows Cyrillic (CP 1251)"
+msgstr "Windows Cyrillic (CP 1251)"
+
+#: ../src/common/fontmap.cpp:135
+msgid "Windows Greek (CP 1253)"
+msgstr "Windows Greek (CP 1253)"
+
+#: ../src/common/fontmap.cpp:137
+msgid "Windows Hebrew (CP 1255)"
+msgstr "Windows Hebrew (CP 1255)"
+
+#: ../src/common/fontmap.cpp:128
+msgid "Windows Japanese (CP 932)"
+msgstr "Windows Japanese (CP 932)"
+
+#: ../src/common/fontmap.cpp:130
+msgid "Windows Korean (CP 949)"
+msgstr "Windows Korean (CP 949)"
+
+#: ../src/common/fontmap.cpp:136
+msgid "Windows Turkish (CP 1254)"
+msgstr "Windows Turkish (CP 1254)"
+
+#: ../src/common/fontmap.cpp:134
+msgid "Windows Western European (CP 1252)"
+msgstr "Windows Western European (CP 1252)"
+
+#: ../src/common/fontmap.cpp:140
+msgid "Windows/DOS OEM (CP 437)"
+msgstr "Windows/DOS OEM (CP 437)"
+
+#: ../src/common/ffile.cpp:160
+#, c-format
+msgid "Write error on file '%s'"
+msgstr "Kesalahan menulis pada file '%s'"
+
+#: ../contrib/src/xrc/xml.cpp:530
+#, c-format
+msgid "XML parsing error: '%s' at line %d"
+msgstr "Kesalahan parsing XML: '%s' pada baris %d"
+
+#: ../src/common/xpmdecod.cpp:759
+msgid "XPM: Malformed pixel data!"
+msgstr "XPM: Data pixel salah bentuk!"
+
+#: ../src/common/xpmdecod.cpp:709
+#: ../src/common/xpmdecod.cpp:718
+#, c-format
+msgid "XPM: malformed colour definition '%s'!"
+msgstr "XPM: Definisi warna '%s' salah bentuk!"
+
+#: ../contrib/src/xrc/xmlres.cpp:436
+#, c-format
+msgid "XRC resource '%s' (class '%s') not found!"
+msgstr "Sesumber XRC '%s' (class '%s') tidak ditemukan!"
+
+#: ../contrib/src/xrc/xmlres.cpp:787
+#: ../contrib/src/xrc/xmlres.cpp:798
+#, c-format
+msgid "XRC resource: Cannot create bitmap from '%s'."
+msgstr "Sesumber XRC: Tidak bisa menciptakan bitmap dari '%s'."
+
+#: ../contrib/src/xrc/xh_dlg.cpp:52
+#: ../contrib/src/xrc/xh_frame.cpp:57
+msgid "XRC resource: Cannot create dialog without instance."
+msgstr "Sesumber XRC: Tidak bisa menciptakan dialog tanpa instan."
+
+#: ../contrib/src/xrc/xmlres.cpp:747
+#, c-format
+msgid "XRC resource: Incorrect colour specification '%s' for property '%s'."
+msgstr "Sesumber XRC: Spesifikasi warna '%s' tidak benar untuk properti '%s'."
+
+#: ../src/common/dlgcmn.cpp:151
+#: ../src/mac/msgdlg.cpp:77
+#: ../src/motif/msgdlg.cpp:182
+msgid "Yes"
+msgstr "Ya"
+
+#: ../src/generic/dirdlgg.cpp:262
+msgid "You cannot add a new directory to this section."
+msgstr "Anda tidak dapat menambah direktori baru ke seksi ini."
+
+#: ../src/common/fs_zip.cpp:86
+#: ../src/common/fs_zip.cpp:123
+msgid "ZIP handler currently supports only local files!"
+msgstr "Handler ZIP saat ini hanya mendukung file-file lokal!"
+
+#: ../src/common/docview.cpp:1951
+msgid "[EMPTY]"
+msgstr "[KOSONG]"
+
+#: ../src/msw/dde.cpp:987
+msgid "a DDEML application has created a prolonged race condition."
+msgstr "Suatu aplikasi DDEML telah menciptakan suatu kondisi race terus menerus."
+
+#: ../src/msw/dde.cpp:975
+msgid ""
+"a DDEML function was called without first calling the DdeInitialize function,\n"
+"or an invalid instance identifier\n"
+"was passed to a DDEML function."
+msgstr ""
+"Suatu fungsi DDEML dipanggil tanpa pertama-tama memanggil fungsi DdeInitialize,\n"
+" atau suatu pengenal instan yang tidak sah\n"
+" dilewatkan ke suatu fungsi DDEML."
+
+#: ../src/msw/dde.cpp:993
+msgid "a client's attempt to establish a conversation has failed."
+msgstr "Suatu usaha dari klien untuk mengadakan percakapan telah gagal."
+
+#: ../src/msw/dde.cpp:990
+msgid "a memory allocation failed."
+msgstr "Alokasi memori gagal."
+
+#: ../src/msw/dde.cpp:984
+msgid "a parameter failed to be validated by the DDEML."
+msgstr "Suatu parameter gagal divalidasi oleh DDEML."
+
+#: ../src/msw/dde.cpp:966
+msgid "a request for a synchronous advise transaction has timed out."
+msgstr "Suatu permintaan untuk transaksi advise synchronous telah habis waktunya."
+
+#: ../src/msw/dde.cpp:972
+msgid "a request for a synchronous data transaction has timed out."
+msgstr "Suatu permintaan untuk transaksi data synchronous telah habis waktunya."
+
+#: ../src/msw/dde.cpp:981
+msgid "a request for a synchronous execute transaction has timed out."
+msgstr "Suatu permintaan untuk transaksi eksekusi synchronous telah habis waktunya."
+
+#: ../src/msw/dde.cpp:999
+msgid "a request for a synchronous poke transaction has timed out."
+msgstr "Suatu permintaan untuk transaksi poke synchronous telah habis waktunya."
+
+#: ../src/msw/dde.cpp:1014
+msgid "a request to end an advise transaction has timed out."
+msgstr "Suatu permintaan untuk mengakhiri transaksi advise telah habis waktunya."
+
+#: ../src/msw/dde.cpp:1008
+msgid ""
+"a server-side transaction was attempted on a conversation\n"
+"that was terminated by the client, or the server\n"
+"terminated before completing a transaction."
+msgstr ""
+"Suatu transaksi sisi-server telah diusahakan pada percakapan\n"
+" yang dihentikan oleh klien, atau server\n"
+" dihentikan sebelum menyelesaikan transaksi."
+
+#: ../src/msw/dde.cpp:996
+msgid "a transaction failed."
+msgstr "Transaksi gagal."
+
+#: ../src/common/menucmn.cpp:99
+msgid "alt"
+msgstr "alt"
+
+#: ../src/msw/dde.cpp:978
+msgid ""
+"an application initialized as APPCLASS_MONITOR has\n"
+"attempted to perform a DDE transaction,\n"
+"or an application initialized as APPCMD_CLIENTONLY has \n"
+"attempted to perform server transactions."
+msgstr ""
+"Suatu aplikasi diinisialisasi sebagai APPCLASS_MONITOR telah\n"
+" berusaha melaksanakan transaksi DDE,\n"
+" atau suatu aplikasi diinisialisasi sebagai APPCMD_CLIENTONLY telah \n"
+"berusaha melaksanakan transaksi-transaksi server."
+
+#: ../src/msw/dde.cpp:1002
+msgid "an internal call to the PostMessage function has failed. "
+msgstr "Suatu panggilan internal ke fungsi PostMessage telah gagal."
+
+#: ../src/msw/dde.cpp:1011
+msgid "an internal error has occurred in the DDEML."
+msgstr "Suatu kesalahan internal telah muncul dalam DDEML."
+
+#: ../src/msw/dde.cpp:1017
+msgid ""
+"an invalid transaction identifier was passed to a DDEML function.\n"
+"Once the application has returned from an XTYP_XACT_COMPLETE callback,\n"
+"the transaction identifier for that callback is no longer valid."
+msgstr ""
+"Suatu pengenal transaksi yang tidak sah dilewatkan ke suatu fungsi DDEML.\n"
+" Saat aplikasi telah kembali dari callback XTYP_XACT_COMPLETE,\n"
+" pengenal transaksi untuk callback tersebut tidak sah lagi."
+
+#: ../src/common/fileconf.cpp:1570
+#, c-format
+msgid "attempt to change immutable key '%s' ignored."
+msgstr "Usaha untuk mengubah kunci immutable '%s' diabaikan."
+
+#: ../src/common/ftp.cpp:369
+msgid "binary"
+msgstr "biner"
+
+#: ../src/common/fontcmn.cpp:518
+msgid "bold"
+msgstr "tebal"
+
+#: ../src/common/fontcmn.cpp:442
+msgid "bold "
+msgstr "tebal"
+
+#: ../src/common/ffile.cpp:93
+#, c-format
+msgid "can't close file '%s'"
+msgstr "Tidak bisa menutup file '%s'"
+
+#: ../src/common/file.cpp:271
+#, c-format
+msgid "can't close file descriptor %d"
+msgstr "Tidak bisa menutup file descriptor %d"
+
+#: ../src/common/file.cpp:549
+#, c-format
+msgid "can't commit changes to file '%s'"
+msgstr "Tidak bisa melaksanakan perubahan ke file '%s'"
+
+#: ../src/common/file.cpp:211
+#, c-format
+msgid "can't create file '%s'"
+msgstr "Tidak bisa menciptakan file '%s'"
+
+#: ../src/common/fileconf.cpp:1039
+#, c-format
+msgid "can't delete user configuration file '%s'"
+msgstr "Tidak bisa menghapus file konfigurasi pemakai %s"
+
+#: ../src/common/file.cpp:454
+#, c-format
+msgid "can't determine if the end of file is reached on descriptor %d"
+msgstr "Tidak bisa menentukan apakah akhir file telah dicapai pada descriptor %d"
+
+#: ../src/common/file.cpp:420
+#, c-format
+msgid "can't find length of file on file descriptor %d"
+msgstr "Tidak bisa menemukan panjang dari file pada file descriptor %d"
+
+#: ../src/msw/utils.cpp:369
+msgid "can't find user's HOME, using current directory."
+msgstr "Tidak bisa menemukan HOME dari pemakai, menggunakan direktori aktif saat ini."
+
+#: ../src/common/file.cpp:334
+#, c-format
+msgid "can't flush file descriptor %d"
+msgstr "Tidak bisa mem-flush file descriptor %d"
+
+#: ../src/common/file.cpp:388
+#, c-format
+msgid "can't get seek position on file descriptor %d"
+msgstr "Tidak bisa memperoleh posisi seek pada file descriptor %d"
+
+#: ../src/common/fontmap.cpp:766
+msgid "can't load any font, aborting"
+msgstr "Tidak bisa memuat huruf apapun, batal"
+
+#: ../src/common/ffile.cpp:77
+#: ../src/common/file.cpp:257
+#, c-format
+msgid "can't open file '%s'"
+msgstr "Tidak bisa membuka file '%s'"
+
+#: ../src/common/fileconf.cpp:388
+#, c-format
+msgid "can't open global configuration file '%s'."
+msgstr "Tidak bisa membuka file konfigurasi global '%s'."
+
+#: ../src/common/fileconf.cpp:400
+#, c-format
+msgid "can't open user configuration file '%s'."
+msgstr "Tidak bisa membuka file konfigurasi pemakai '%s'."
+
+#: ../src/common/fileconf.cpp:910
+msgid "can't open user configuration file."
+msgstr "Tidak bisa membuka file konfigurasi pemakai."
+
+#: ../src/common/file.cpp:297
+#, c-format
+msgid "can't read from file descriptor %d"
+msgstr "Tidak bisa membaca dari file descriptor %d"
+
+#: ../src/common/file.cpp:544
+#, c-format
+msgid "can't remove file '%s'"
+msgstr "Tidak bisa menghilangkan file '%s'"
+
+#: ../src/common/file.cpp:560
+#, c-format
+msgid "can't remove temporary file '%s'"
+msgstr "Tidak bisa menghilangkan file sementara '%s'"
+
+#: ../src/common/file.cpp:374
+#, c-format
+msgid "can't seek on file descriptor %d"
+msgstr "Tidak bisa melakukan seek pada file descriptor %d"
+
+#: ../src/common/textfile.cpp:196
+#, c-format
+msgid "can't write buffer '%s' to disk."
+msgstr "Tidak bisa menulis buffer '%s' ke disk."
+
+#: ../src/common/file.cpp:319
+#, c-format
+msgid "can't write to file descriptor %d"
+msgstr "Tidak bisa menulis ke file descriptor %d"
+
+#: ../src/common/fileconf.cpp:926
+msgid "can't write user configuration file."
+msgstr "Tidak bisa menulis file konfigurasi pemakai."
+
+#: ../src/common/intl.cpp:364
+#, c-format
+msgid "catalog file for domain '%s' not found."
+msgstr "File katalog untuk domain '%s' tidak ditemukan."
+
+#: ../src/common/menucmn.cpp:97
+msgid "ctrl"
+msgstr "ctrl"
+
+#: ../src/common/cmdline.cpp:1034
+msgid "date"
+msgstr "tanggal"
+
+#: ../src/common/fontmap.cpp:413
+msgid "default"
+msgstr "default"
+
+#: ../src/common/datetime.cpp:3237
+msgid "eighteenth"
+msgstr "ke delapan belas"
+
+#: ../src/common/datetime.cpp:3227
+msgid "eighth"
+msgstr "ke delapan"
+
+#: ../src/common/datetime.cpp:3230
+msgid "eleventh"
+msgstr "ke sebelas"
+
+#: ../src/common/fileconf.cpp:1557
+#, c-format
+msgid "entry '%s' appears more than once in group '%s'"
+msgstr "entri '%s' muncul lebih dari satu dalam grup '%s'"
+
+#: ../src/msw/dialup.cpp:841
+msgid "establish"
+msgstr "mengadakan"
+
+#: ../src/common/ffile.cpp:174
+#, c-format
+msgid "failed to flush the file '%s'"
+msgstr "Gagal mem-flush file '%s'"
+
+#: ../src/common/datetime.cpp:3234
+msgid "fifteenth"
+msgstr "Ke lima belas"
+
+#: ../src/common/datetime.cpp:3224
+msgid "fifth"
+msgstr "Ke lima"
+
+#: ../src/common/fileconf.cpp:612
+#, c-format
+msgid "file '%s', line %d: '%s' ignored after group header."
+msgstr "file '%s', baris %d: '%s' diabaikan setelah header grup."
+
+#: ../src/common/fileconf.cpp:641
+#, c-format
+msgid "file '%s', line %d: '=' expected."
+msgstr "file '%s', baris %d: '=' diharapkan."
+
+#: ../src/common/fileconf.cpp:667
+#, c-format
+msgid "file '%s', line %d: key '%s' was first found at line %d."
+msgstr "file '%s', baris %d: kunci '%s' pertama ditemukan pada baris %d."
+
+#: ../src/common/fileconf.cpp:657
+#, c-format
+msgid "file '%s', line %d: value for immutable key '%s' ignored."
+msgstr "file '%s', baris %d: nilai untuk kunci immutable '%s' diabaikan."
+
+#: ../src/common/fileconf.cpp:580
+#, c-format
+msgid "file '%s': unexpected character %c at line %d."
+msgstr "file '%s': karakter %c tidak diharapkan pada baris %d."
+
+#: ../src/common/datetime.cpp:3220
+msgid "first"
+msgstr "pertama"
+
+#: ../src/common/datetime.cpp:3233
+msgid "fourteenth"
+msgstr "ke empat belas"
+
+#: ../src/common/datetime.cpp:3223
+msgid "fourth"
+msgstr "ke empat"
+
+#: ../src/common/appcmn.cpp:301
+msgid "generate verbose log messages"
+msgstr "hasilkan pesan-pesan log verbose"
+
+#: ../src/common/timercmn.cpp:282
+msgid "gmtime() failed"
+msgstr "gmtime() gagal"
+
+#: ../src/msw/dialup.cpp:841
+msgid "initiate"
+msgstr "inisiasi"
+
+#: ../src/common/file.cpp:458
+msgid "invalid eof() return value."
+msgstr "nilai kembali eof() tidak sah."
+
+#: ../src/generic/logg.cpp:1125
+msgid "invalid message box return value"
+msgstr "nilai kembali message box tidak sah"
+
+#: ../src/common/fontcmn.cpp:458
+#: ../src/common/fontcmn.cpp:522
+msgid "italic"
+msgstr "miring"
+
+#: ../src/html/helpfrm.cpp:935
+msgid "large"
+msgstr "besar"
+
+#: ../src/common/fontcmn.cpp:514
+msgid "light"
+msgstr "ringan"
+
+#: ../src/common/fontcmn.cpp:438
+msgid "light "
+msgstr "ringan"
+
+#: ../src/common/intl.cpp:615
+#, c-format
+msgid "locale '%s' can not be set."
+msgstr "locale '%s' tidak bisa ditetapkan."
+
+#: ../src/common/intl.cpp:359
+#, c-format
+msgid "looking for catalog '%s' in path '%s'."
+msgstr "mencari katalog '%s' di path '%s'."
+
+#: ../src/html/helpfrm.cpp:935
+msgid "medium"
+msgstr "sedang"
+
+#: ../src/common/datetime.cpp:3385
+msgid "midnight"
+msgstr "tengah malam"
+
+#: ../src/common/timercmn.cpp:278
+msgid "mktime() failed"
+msgstr "mktime() gagal"
+
+#: ../src/common/datetime.cpp:3238
+msgid "nineteenth"
+msgstr "ke sembilan belas"
+
+#: ../src/common/datetime.cpp:3228
+msgid "ninth"
+msgstr "ke sembilan"
+
+#: ../src/msw/dde.cpp:962
+msgid "no DDE error."
+msgstr "tidak ada kesalahan DDE "
+
+#: ../src/html/helpdata.cpp:561
+#: ../src/html/htmlhelp.cpp:201
+msgid "noname"
+msgstr "tidak bernama"
+
+#: ../src/common/datetime.cpp:3384
+msgid "noon"
+msgstr "siang"
+
+#: ../src/common/cmdline.cpp:1033
+msgid "num"
+msgstr "angka"
+
+#: ../src/common/filename.cpp:162
+msgid "reading"
+msgstr "membaca"
+
+#: ../src/msw/dde.cpp:1005
+msgid "reentrancy problem."
+msgstr "masalah pemasukan kembali"
+
+#: ../src/common/datetime.cpp:3221
+msgid "second"
+msgstr "ke dua"
+
+#: ../src/common/datetime.cpp:3236
+msgid "seventeenth"
+msgstr "ke tujuh belas"
+
+#: ../src/common/datetime.cpp:3226
+msgid "seventh"
+msgstr "ke tujuh"
+
+#: ../src/common/menucmn.cpp:101
+msgid "shift"
+msgstr "geser"
+
+#: ../src/common/appcmn.cpp:291
+msgid "show this help message"
+msgstr "Tampilkan pesan pertolongan ini"
+
+#: ../src/common/datetime.cpp:3235
+msgid "sixteenth"
+msgstr "ke enam belas"
+
+#: ../src/common/datetime.cpp:3225
+msgid "sixth"
+msgstr "ke enam"
+
+#: ../src/html/helpfrm.cpp:935
+msgid "small"
+msgstr "kecil"
+
+#: ../src/common/appcmn.cpp:326
+msgid "specify display mode to use (e.g. 640x480-16)"
+msgstr "spesifikasikan mode tampilan yang digunakan (misalnya 640x480- 16)"
+
+#: ../src/common/appcmn.cpp:312
+msgid "specify the theme to use"
+msgstr "spesifikasikan tema yang digunakan"
+
+#: ../src/common/cmdline.cpp:1032
+msgid "str"
+msgstr "str"
+
+#: ../src/common/datetime.cpp:3229
+msgid "tenth"
+msgstr "kesepuluh"
+
+#: ../src/msw/dde.cpp:969
+msgid "the response to the transaction caused the DDE_FBUSY bit to be set."
+msgstr "tanggapan terhadap transaksi menyebabkan bit DDE_FBUSY ditetapkan."
+
+#: ../src/common/datetime.cpp:3222
+msgid "third"
+msgstr "ketiga"
+
+#: ../src/common/datetime.cpp:3232
+msgid "thirteenth"
+msgstr "ke tiga belas"
+
+#: ../src/common/datetime.cpp:3064
+msgid "today"
+msgstr "hari ini"
+
+#: ../src/common/datetime.cpp:3066
+msgid "tomorrow"
+msgstr "lusa"
+
+#: ../src/common/datetime.cpp:3231
+msgid "twelfth"
+msgstr "ke dua belas"
+
+#: ../src/common/datetime.cpp:3239
+msgid "twentieth"
+msgstr "ke dua puluh"
+
+#: ../src/common/fontcmn.cpp:510
+msgid "underlined"
+msgstr "bergaris bawah"
+
+#: ../src/common/fontcmn.cpp:425
+msgid "underlined "
+msgstr "bergaris bawah"
+
+#: ../src/common/fileconf.cpp:1684
+#, c-format
+msgid "unexpected \" at position %d in '%s'."
+msgstr "\" tidak diharapkan pada posisi %d dalam '%s'."
+
+#: ../src/generic/progdlgg.cpp:283
+msgid "unknown"
+msgstr "tidak diketahui"
+
+#: ../src/common/regex.cpp:144
+msgid "unknown error"
+msgstr "kesalahan tidak diketahui"
+
+#: ../src/msw/dialup.cpp:445
+#, c-format
+msgid "unknown error (error code %08x)."
+msgstr "kesalahan tidak diketahui (kode kesalahan %08x)."
+
+#: ../src/common/file.cpp:357
+msgid "unknown seek origin"
+msgstr "Asal seek tidak diketahui"
+
+#: ../src/common/fontmap.cpp:430
+#, c-format
+msgid "unknown-%d"
+msgstr "%d-tidak diketahui"
+
+#: ../src/common/docview.cpp:406
+msgid "unnamed"
+msgstr "Tidak bernama"
+
+#: ../src/common/docview.cpp:1222
+#, c-format
+msgid "unnamed%d"
+msgstr "Tidak bernama%d"
+
+#: ../src/common/intl.cpp:369
+#, c-format
+msgid "using catalog '%s' from '%s'."
+msgstr "Menggunakan katalog '%s' dari '%s'."
+
+#: ../src/html/helpfrm.cpp:935
+msgid "very large"
+msgstr "sangat besar"
+
+#: ../src/html/helpfrm.cpp:935
+msgid "very small"
+msgstr "sangat kecil"
+
+#: ../src/common/filename.cpp:162
+msgid "writing"
+msgstr "menulis"
+
+#: ../src/common/dynlib.cpp:336
+#, c-format
+msgid "wxDllLoader failed to GetSymbol '%s'"
+msgstr "wxDllLoader gagal pada GetSymbol '%s'"
+
+#: ../src/common/dynload.cpp:278
+#, c-format
+msgid "wxDynamicLibrary failed to GetSymbol '%s'"
+msgstr "wxDynamicLibrary gagal pada GetSymbol '%s'"
+
+#: ../src/common/timercmn.cpp:327
+msgid "wxGetTimeOfDay failed."
+msgstr "wxGetTimeOfDay gagal."
+
+#: ../src/html/search.cpp:49
+msgid "wxSearchEngine::LookFor must be called before scanning!"
+msgstr "wxSearchEngine::LookFor harus dipanggil sebelum pemeriksaan!"
+
+#: ../src/common/socket.cpp:394
+#: ../src/common/socket.cpp:448
+msgid "wxSocket: invalid signature in ReadMsg."
+msgstr "wxSocket: penanda tidak sah pada ReadMsg"
+
+#: ../src/common/socket.cpp:975
+msgid "wxSocket: unknown event!."
+msgstr "wxSocket: event tidak dikenal!."
+
+#: ../src/motif/app.cpp:590
+#, c-format
+msgid "wxWindows could not open display for '%s': exiting."
+msgstr "wxWindows tidak bisa membuka tampilan untuk '%s': keluar."
+
+#: ../src/x11/app.cpp:265
+msgid "wxWindows could not open display. Exiting."
+msgstr "wxWindows tidak bisa membuka tampilan. Keluar."
+
+#: ../src/common/datetime.cpp:3065
+msgid "yesterday"
+msgstr "kemarin"
+
diff --git a/locale/it.po b/locale/it.po
index 6e54b08a80..c1fdfe321e 100644
--- a/locale/it.po
+++ b/locale/it.po
@@ -874,7 +874,7 @@ msgstr "Sommario"
 
 #: ../src/common/strconv.cpp:593
 #, c-format
-msgid "Convertion to charset '%s' doesn't work."
+msgid "Conversion to charset '%s' doesn't work."
 msgstr "La conversione nella codifica '%s' non funziona."
 
 #: ../src/generic/prntdlgg.cpp:193
diff --git a/locale/nl.po b/locale/nl.po
index 2ef19bfc42..82e4909973 100644
--- a/locale/nl.po
+++ b/locale/nl.po
@@ -2,12 +2,12 @@ msgid ""
 msgstr ""
 "Project-Id-Version: wxWindows-2.2.1\n"
 "POT-Creation-Date: 2002-08-21 16:39+0200\n"
-"PO-Revision-Date: 2000-09-05 12:35Romaans (zomertijd)\n"
-"Last-Translator: Patrick Hubers <phubers@solve-i-t.com>\n"
+"PO-Revision-Date: 2002-11-29 15:12+0100\n"
+"Last-Translator: Dimitri <dimitri@shortcut.nl>\n"
 "Language-Team: wxWindows translators <wx-translators@wxwindows.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8-bit\n"
+"Content-Transfer-Encoding: 8bit\n"
 
 #: ../src/common/log.cpp:304
 #, c-format
@@ -46,8 +46,10 @@ msgstr "Envelop nr.14, 5 x 11 1/2 inch"
 msgid "#9 Envelope, 3 7/8 x 8 7/8 in"
 msgstr "Envelop nr.9, 3 7/8 x 8 7/8 inch"
 
-#: ../src/common/resourc2.cpp:265 ../src/common/resourc2.cpp:1326
-#: ../src/common/resource.cpp:1784 ../src/common/resource.cpp:1914
+#: ../src/common/resourc2.cpp:265
+#: ../src/common/resourc2.cpp:1326
+#: ../src/common/resource.cpp:1784
+#: ../src/common/resource.cpp:1914
 #: ../src/common/resource.cpp:2994
 #, c-format
 msgid "#define %s must be an integer."
@@ -56,15 +58,17 @@ msgstr "#define %s moet een geheel getal zijn."
 #: ../src/common/prntbase.cpp:376
 #, c-format
 msgid "%d"
-msgstr ""
+msgstr "%d"
 
 #: ../src/common/prntbase.cpp:374
 #, c-format
 msgid "%d...%d"
-msgstr ""
+msgstr "%d...%d"
 
-#: ../src/html/helpfrm.cpp:772 ../src/html/helpfrm.cpp:773
-#: ../src/html/helpfrm.cpp:1376 ../src/html/helpfrm.cpp:1406
+#: ../src/html/helpfrm.cpp:772
+#: ../src/html/helpfrm.cpp:773
+#: ../src/html/helpfrm.cpp:1376
+#: ../src/html/helpfrm.cpp:1406
 #, c-format
 msgid "%i of %i"
 msgstr "%i van %i"
@@ -89,18 +93,22 @@ msgstr "%s Informatie"
 msgid "%s Warning"
 msgstr "%s Waarschuwing"
 
-#: ../src/common/resourc2.cpp:709 ../src/common/resource.cpp:2366
+#: ../src/common/resourc2.cpp:709
+#: ../src/common/resource.cpp:2366
 #, c-format
 msgid "%s not a bitmap resource specification."
 msgstr "%s is geen bitmap-bronspecificatie."
 
-#: ../src/common/resourc2.cpp:860 ../src/common/resource.cpp:2520
+#: ../src/common/resourc2.cpp:860
+#: ../src/common/resource.cpp:2520
 #, c-format
 msgid "%s not an icon resource specification."
 msgstr "%s is geen pictogram-bronspecificatie."
 
-#: ../src/common/resourc2.cpp:357 ../src/common/resourc2.cpp:1422
-#: ../src/common/resource.cpp:1877 ../src/common/resource.cpp:2006
+#: ../src/common/resourc2.cpp:357
+#: ../src/common/resourc2.cpp:1422
+#: ../src/common/resource.cpp:1877
+#: ../src/common/resource.cpp:2006
 #: ../src/common/resource.cpp:3091
 #, c-format
 msgid "%s: ill-formed resource file syntax."
@@ -108,18 +116,19 @@ msgstr "%s: incorrecte syntax voor bronbestand."
 
 #: ../src/msw/mdi.cpp:192
 msgid "&Arrange Icons"
-msgstr ""
+msgstr "Pictogrammen Schikken"
 
-#: ../src/generic/fdrepdlg.cpp:170 ../src/generic/wizard.cpp:260
-#, fuzzy
+#: ../src/generic/fdrepdlg.cpp:170
+#: ../src/generic/wizard.cpp:260
 msgid "&Cancel"
 msgstr "Annuleer"
 
 #: ../src/msw/mdi.cpp:188
 msgid "&Cascade"
-msgstr ""
+msgstr "Trapsgewijs"
 
-#: ../src/generic/logg.cpp:491 ../src/generic/tipdlg.cpp:171
+#: ../src/generic/logg.cpp:491
+#: ../src/generic/tipdlg.cpp:171
 msgid "&Close"
 msgstr "&Sluiten"
 
@@ -128,7 +137,6 @@ msgid "&Details"
 msgstr "&Details"
 
 #: ../src/generic/fdrepdlg.cpp:168
-#, fuzzy
 msgid "&Find"
 msgstr "Zoeken"
 
@@ -137,7 +145,6 @@ msgid "&Finish"
 msgstr "&Voltooien"
 
 #: ../src/generic/wizard.cpp:249
-#, fuzzy
 msgid "&Help"
 msgstr "Help"
 
@@ -147,14 +154,14 @@ msgstr "&Log"
 
 #: ../src/univ/themes/win32.cpp:4539
 msgid "&Move"
-msgstr ""
+msgstr "Verplaatsen"
 
 #: ../src/msw/mdi.cpp:193
-#, fuzzy
 msgid "&Next"
-msgstr "&Volgende >"
+msgstr "&Volgende"
 
-#: ../src/generic/wizard.cpp:257 ../src/generic/wizard.cpp:398
+#: ../src/generic/wizard.cpp:257
+#: ../src/generic/wizard.cpp:398
 msgid "&Next >"
 msgstr "&Volgende >"
 
@@ -163,28 +170,29 @@ msgid "&Next Tip"
 msgstr "&Volgende tip"
 
 #: ../src/msw/mdi.cpp:194
-#, fuzzy
 msgid "&Previous"
-msgstr "Vorige pagina"
+msgstr "Vorige"
 
-#: ../src/common/cmdproc.cpp:261 ../src/common/cmdproc.cpp:272
+#: ../src/common/cmdproc.cpp:261
+#: ../src/common/cmdproc.cpp:272
 msgid "&Redo"
 msgstr "Opnie&uw"
 
-#: ../src/common/cmdproc.cpp:255 ../src/common/cmdproc.cpp:282
+#: ../src/common/cmdproc.cpp:255
+#: ../src/common/cmdproc.cpp:282
 msgid "&Redo "
 msgstr "Opnie&uw "
 
 #: ../src/generic/fdrepdlg.cpp:174
 msgid "&Replace"
-msgstr ""
+msgstr "Vervangen"
 
 #: ../src/univ/themes/win32.cpp:4538
-#, fuzzy
 msgid "&Restore"
-msgstr "Opnie&uw"
+msgstr "Herstellen"
 
-#: ../src/generic/logg.cpp:487 ../src/generic/logg.cpp:818
+#: ../src/generic/logg.cpp:487
+#: ../src/generic/logg.cpp:818
 msgid "&Save..."
 msgstr "O&pslaan..."
 
@@ -193,7 +201,6 @@ msgid "&Show tips at startup"
 msgstr "&Toon tips bij opstarten"
 
 #: ../src/univ/themes/win32.cpp:4541
-#, fuzzy
 msgid "&Size"
 msgstr "Formaat"
 
@@ -205,16 +212,20 @@ msgstr "&Ongedaan maken"
 msgid "&Undo "
 msgstr "Maak &ongedaan: "
 
-#: ../src/msw/mdi.cpp:1328 ../src/msw/mdi.cpp:1335 ../src/msw/mdi.cpp:1360
+#: ../src/msw/mdi.cpp:1328
+#: ../src/msw/mdi.cpp:1335
+#: ../src/msw/mdi.cpp:1360
 msgid "&Window"
 msgstr "&Venster"
 
-#: ../src/common/config.cpp:394 ../src/msw/regconf.cpp:264
+#: ../src/common/config.cpp:394
+#: ../src/msw/regconf.cpp:264
 #, c-format
 msgid "'%s' has extra '..', ignored."
 msgstr "'%s' heeft extra '..', genegeerd"
 
-#: ../src/common/valtext.cpp:147 ../src/common/valtext.cpp:177
+#: ../src/common/valtext.cpp:147
+#: ../src/common/valtext.cpp:177
 #: ../src/common/valtext.cpp:183
 #, c-format
 msgid "'%s' is invalid"
@@ -231,9 +242,9 @@ msgid "'%s' is not a valid message catalog."
 msgstr "'%s' is geen geldige berichtcatalogus."
 
 #: ../src/common/textbuf.cpp:245
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' is probably a binary buffer."
-msgstr "'%s' is waarschijnlijk een binair bestand."
+msgstr "'%s' is waarschijnlijk een binaire buffer."
 
 #: ../src/common/valtext.cpp:172
 #, c-format
@@ -255,30 +266,34 @@ msgstr "'%s' mag alleen letters bevatten."
 msgid "'%s' should only contain alphabetic or numeric characters."
 msgstr "'%s' mag alleen alfa-numerieke tekens bevatten."
 
-#: ../src/html/helpfrm.cpp:709 ../src/html/htmlhelp.cpp:638
+#: ../src/html/helpfrm.cpp:709
+#: ../src/html/htmlhelp.cpp:638
 msgid "(Help)"
 msgstr "(Help)"
 
-#: ../src/html/helpfrm.cpp:310 ../src/html/helpfrm.cpp:840
+#: ../src/html/helpfrm.cpp:310
+#: ../src/html/helpfrm.cpp:840
 #: ../src/html/helpfrm.cpp:1433
 msgid "(bookmarks)"
 msgstr "(favorieten)"
 
-#: ../src/common/resourc2.cpp:297 ../src/common/resourc2.cpp:1362
-#: ../src/common/resource.cpp:1816 ../src/common/resource.cpp:1946
+#: ../src/common/resourc2.cpp:297
+#: ../src/common/resourc2.cpp:1362
+#: ../src/common/resource.cpp:1816
+#: ../src/common/resource.cpp:1946
 #: ../src/common/resource.cpp:3030
-msgid ""
-", expected static, #include or #define\n"
+msgid ", expected static, #include or #define\n"
 "whilst parsing resource."
-msgstr ""
-", verwachtte static, #include of #define\n"
+msgstr ", verwachtte static, #include of #define\n"
 "tijdens inlezen van bron."
 
-#: ../src/generic/dirctrlg.cpp:698 ../src/generic/filedlgg.cpp:929
+#: ../src/generic/dirctrlg.cpp:698
+#: ../src/generic/filedlgg.cpp:929
 msgid "."
 msgstr "."
 
-#: ../src/generic/dirctrlg.cpp:699 ../src/generic/filedlgg.cpp:930
+#: ../src/generic/dirctrlg.cpp:699
+#: ../src/generic/filedlgg.cpp:930
 msgid ".."
 msgstr ".."
 
@@ -327,33 +342,8 @@ msgid "<LINK> "
 msgstr "<LINK> "
 
 #: ../src/html/helpfrm.cpp:992
-msgid ""
-"<html><body>Normal face<br>(and <u>underlined</u>. <i>Italic face.</i> "
-"<b>Bold face.</b> <b><i>Bold italic face.</i></b><br><font size=-2>font size "
-"-2</font><br><font size=-1>font size -1</font><br><font size=+0>font size "
-"+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
-"+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
-"+4</font><br><p><tt>Fixed size face.<br> <b>bold</b> <i>italic</i> "
-"<b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size "
-"-2</font><br><font size=-1>font size -1</font><br><font size=+0>font size "
-"+0</font><br><font size=+1>font size +1</font><br><font size=+2>font size "
-"+2</font><br><font size=+3>font size +3</font><br><font size=+4>font size "
-"+4</font></tt></body></html>"
-msgstr ""
-"<html><body>Normaal lettertype<br>en <u>onderstreept</u>. <i>Cursief "
-"lettertype.</i> <b>Vet lettertype.</b> <b><i>Vet+cursief "
-"lettertype.</i></b><br><font size=-2>lettergrootte -2</font><br><font "
-"size=-1>lettergrootte -1</font><br><font size=+0>lettergrootte "
-"+0</font><br><font size=+1>lettergrootte +1</font><br><font "
-"size=+2>lettergrootte +2</font><br><font size=+3>lettergrootte "
-"+3</font><br><font size=+4>lettergrootte "
-"+4</font><br><p><tt>Niet-proportioneel lettertype.<br> <b>vet</b> "
-"<i>cursief</i> <b><i>vet+cursief <u>onderstreept</u></i></b><br><font "
-"size=-2>lettergrootte -2</font><br><font size=-1>lettergrootte "
-"-1</font><br><font size=+0>lettergrootte +0</font><br><font "
-"size=+1>lettergrootte +1</font><br><font size=+2>lettergrootte "
-"+2</font><br><font size=+3>lettergrootte +3</font><br><font "
-"size=+4>lettergrootte +4</font></tt></body></html>"
+msgid "<html><body>Normal face<br>(and <u>underlined</u>. <i>Italic face.</i> <b>Bold face.</b> <b><i>Bold italic face.</i></b><br><font size=-2>font size -2</font><br><font size=-1>font size -1</font><br><font size=+0>font size +0</font><br><font size=+1>font size +1</font><br><font size=+2>font size +2</font><br><font size=+3>font size +3</font><br><font size=+4>font size +4</font><br><p><tt>Fixed size face.<br> <b>bold</b> <i>italic</i> <b><i>bold italic <u>underlined</u></i></b><br><font size=-2>font size -2</font><br><font size=-1>font size -1</font><br><font size=+0>font size +0</font><br><font size=+1>font size +1</font><br><font size=+2>font size +2</font><br><font size=+3>font size +3</font><br><font size=+4>font size +4</font></tt></body></html>"
+msgstr "<html><body>Normaal lettertype<br>en <u>onderstreept</u>. <i>Cursief lettertype.</i> <b>Vet lettertype.</b> <b><i>Vet+cursief lettertype.</i></b><br><font size=-2>lettergrootte -2</font><br><font size=-1>lettergrootte -1</font><br><font size=+0>lettergrootte +0</font><br><font size=+1>lettergrootte +1</font><br><font size=+2>lettergrootte +2</font><br><font size=+3>lettergrootte +3</font><br><font size=+4>lettergrootte +4</font><br><p><tt>Niet-proportioneel lettertype.<br> <b>vet</b> <i>cursief</i> <b><i>vet+cursief <u>onderstreept</u></i></b><br><font size=-2>lettergrootte -2</font><br><font size=-1>lettergrootte -1</font><br><font size=+0>lettergrootte +0</font><br><font size=+1>lettergrootte +1</font><br><font size=+2>lettergrootte +2</font><br><font size=+3>lettergrootte +3</font><br><font size=+4>lettergrootte +4</font></tt></body></html>"
 
 #: ../src/common/paper.cpp:113
 msgid "A3 sheet, 297 x 420 mm"
@@ -377,7 +367,7 @@ msgstr "ABCDEFGabcdefg12345"
 
 #: ../src/common/ftp.cpp:369
 msgid "ASCII"
-msgstr ""
+msgstr "ASCII"
 
 #: ../src/html/helpfrm.cpp:323
 msgid "Add current page to bookmarks"
@@ -433,37 +423,34 @@ msgstr "B5, 182, 257 mm"
 msgid "B6 Envelope, 176 x 125 mm"
 msgstr "Envelop B6, 176 x 125 mm"
 
-#: ../src/common/imagbmp.cpp:467 ../src/common/imagbmp.cpp:483
-#, fuzzy
+#: ../src/common/imagbmp.cpp:467
+#: ../src/common/imagbmp.cpp:483
 msgid "BMP: Couldn't allocate memory."
-msgstr "PNM: kon geen geheugen reserveren."
+msgstr "BMP: kon geen geheugen reserveren."
 
 #: ../src/common/imagbmp.cpp:86
 msgid "BMP: Couldn't save invalid image."
 msgstr "BMP: kon ongeldige afbeelding niet opslaan"
 
 #: ../src/common/imagbmp.cpp:290
-#, fuzzy
 msgid "BMP: Couldn't write RGB color map."
-msgstr "BMP: kon gegevens niet wegschrijven"
+msgstr "BMP: Kon RGB kleur map niet schrijven."
 
 #: ../src/common/imagbmp.cpp:422
 msgid "BMP: Couldn't write data."
 msgstr "BMP: kon gegevens niet wegschrijven"
 
 #: ../src/common/imagbmp.cpp:195
-#, fuzzy
 msgid "BMP: Couldn't write the file (Bitmap) header."
-msgstr "BMP: kon de bestandsheader niet schrijven"
+msgstr "BMP: Kon de bestands (Bitmap) header niet schrijven"
 
 #: ../src/common/imagbmp.cpp:216
-#, fuzzy
 msgid "BMP: Couldn't write the file (BitmapInfo) header."
-msgstr "BMP: kon de bestandsheader niet schrijven"
+msgstr "BMP: kon de bestandsheader niet schrijven."
 
 #: ../src/common/imagbmp.cpp:120
 msgid "BMP: wxImage doesn't have own wxPalette."
-msgstr ""
+msgstr "BMP: wxImage heeft geen eigen wxPalette."
 
 #: ../src/common/dlgcmn.cpp:170
 msgid "Backward"
@@ -477,7 +464,8 @@ msgstr "Baltisch (ISO-8859-13)"
 msgid "Baltic (old) (ISO-8859-4)"
 msgstr "Baltisch (oud) (ISO-8859-4)"
 
-#: ../src/common/resourc2.cpp:840 ../src/common/resource.cpp:2500
+#: ../src/common/resourc2.cpp:840
+#: ../src/common/resource.cpp:2500
 #, c-format
 msgid "Bitmap resource specification %s not found."
 msgstr "Bitmap-bronspecificatie %s niet gevonden."
@@ -519,16 +507,18 @@ msgid "C65 Envelope, 114 x 229 mm"
 msgstr "Envelop C65, 114 x 229 mm"
 
 #: ../src/common/filefn.cpp:1358
-#, fuzzy, c-format
+#, c-format
 msgid "Can not enumerate files '%s'"
 msgstr "Kan bestanden in map '%s' niet opsommen"
 
-#: ../src/msw/dir.cpp:296 ../src/unix/dir.cpp:236
+#: ../src/msw/dir.cpp:296
+#: ../src/unix/dir.cpp:236
 #, c-format
 msgid "Can not enumerate files in directory '%s'"
 msgstr "Kan bestanden in map '%s' niet opsommen"
 
-#: ../src/mac/thread.cpp:472 ../src/msw/thread.cpp:685
+#: ../src/mac/thread.cpp:472
+#: ../src/msw/thread.cpp:685
 #, c-format
 msgid "Can not resume thread %x"
 msgstr "Kan thread %x niet voortzetten"
@@ -537,7 +527,8 @@ msgstr "Kan thread %x niet voortzetten"
 msgid "Can not start thread: error writing TLS."
 msgstr "Kan thread niet starten: fout bij schrijven TLS."
 
-#: ../src/mac/thread.cpp:448 ../src/msw/thread.cpp:670
+#: ../src/mac/thread.cpp:448
+#: ../src/msw/thread.cpp:670
 #, c-format
 msgid "Can not suspend thread %x"
 msgstr "Kan thread %x niet opschorten"
@@ -553,8 +544,7 @@ msgstr "Kan niet &ongedaan maken: "
 #: ../src/common/image.cpp:1289
 #, c-format
 msgid "Can't check image format of file '%s': file does not exist."
-msgstr ""
-"Kan afbeeldingstype van bestand '%s' niet bepalen: bestand bestaat niet."
+msgstr "Kan afbeeldingstype van bestand '%s' niet bepalen: bestand bestaat niet."
 
 #: ../src/msw/registry.cpp:421
 #, c-format
@@ -567,33 +557,32 @@ msgid "Can't copy values of unsupported type %d."
 msgstr "Kan geen waarden kopiëren van niet-ondersteund type %d"
 
 #: ../src/msw/toplevel.cpp:295
-#, fuzzy
 msgid "Can't create dialog using memory template"
-msgstr "kan bestand '%s' niet maken"
+msgstr "Kan dialoog niet maken met gebruik van geheugen sjabloon"
 
 #: ../src/os2/toplevel.cpp:331
-#, fuzzy, c-format
+#, c-format
 msgid "Can't create dialog using template '%ul'"
-msgstr "kan bestand '%s' niet maken"
+msgstr "Kan dialoog niet maken met gebruik van sjabloon '%ul'"
 
 #: ../src/msw/listctrl.cpp:319
 msgid "Can't create list control window, check that comctl32.dll is installed."
-msgstr ""
-"Kan geen list-control venster maken, zorg dat comctl32.dll geïnstalleerd is."
+msgstr "Kan geen list-control venster maken, zorg dat comctl32.dll geïnstalleerd is."
 
 #: ../src/msw/registry.cpp:402
 #, c-format
 msgid "Can't create registry key '%s'"
 msgstr "Kan registersleutel '%s' niet maken"
 
-#: ../src/mac/thread.cpp:427 ../src/msw/thread.cpp:652
+#: ../src/mac/thread.cpp:427
+#: ../src/msw/thread.cpp:652
 msgid "Can't create thread"
 msgstr "Kan thread niet maken"
 
 #: ../src/msw/window.cpp:2989
-#, fuzzy, c-format
+#, c-format
 msgid "Can't create window of class %s"
-msgstr "kan bestand '%s' niet maken"
+msgstr "Kan venster van klasse '%s' niet maken"
 
 #: ../src/msw/registry.cpp:661
 #, c-format
@@ -635,7 +624,8 @@ msgstr "Kan huidige positie in bestand '%s' niet vinden"
 msgid "Can't get info about registry key '%s'"
 msgstr "Kan geen informatie krijgen over registersleutel '%s'"
 
-#: ../src/common/image.cpp:913 ../src/common/image.cpp:933
+#: ../src/common/image.cpp:913
+#: ../src/common/image.cpp:933
 #, c-format
 msgid "Can't load image from file '%s': file does not exist."
 msgstr "Kan geen afbeelding laden uit bestand '%s': bestand bestaat niet."
@@ -655,17 +645,19 @@ msgstr "Kan registersleutel '%s' niet openen"
 msgid "Can't read value of '%s'"
 msgstr "Kan waarde van '%s' niet lezen"
 
-#: ../src/msw/registry.cpp:777 ../src/msw/registry.cpp:816
+#: ../src/msw/registry.cpp:777
+#: ../src/msw/registry.cpp:816
 #, c-format
 msgid "Can't read value of key '%s'"
 msgstr "Kan waarde van sleutel '%s' niet lezen"
 
 #: ../src/common/image.cpp:955
-#, fuzzy, c-format
+#, c-format
 msgid "Can't save image to file '%s': unknown extension."
-msgstr "Kan geen afbeelding laden uit bestand '%s': bestand bestaat niet."
+msgstr "Kan afbeelding niet opslaan naar bestand '%s': Onbekende extensie."
 
-#: ../src/generic/logg.cpp:551 ../src/generic/logg.cpp:985
+#: ../src/generic/logg.cpp:551
+#: ../src/generic/logg.cpp:985
 msgid "Can't save log contents to file."
 msgstr "Kan loggegevens niet in bestand opslaan."
 
@@ -673,29 +665,37 @@ msgstr "Kan loggegevens niet in bestand opslaan."
 msgid "Can't set thread priority"
 msgstr "Kan thread-prioriteit niet instellen"
 
-#: ../src/msw/registry.cpp:802 ../src/msw/registry.cpp:928
+#: ../src/msw/registry.cpp:802
+#: ../src/msw/registry.cpp:928
 #, c-format
 msgid "Can't set value of '%s'"
 msgstr "Kan waarde van '%s' niet instellen"
 
-#: ../src/common/dlgcmn.cpp:183 ../src/generic/dirdlgg.cpp:153
-#: ../src/generic/filedlgg.cpp:1166 ../src/generic/filedlgg.cpp:1185
-#: ../src/generic/fontdlgg.cpp:254 ../src/generic/prntdlgg.cpp:453
-#: ../src/generic/progdlgg.cpp:211 ../src/generic/proplist.cpp:511
-#: ../src/gtk/filedlg.cpp:173 ../src/gtk/fontdlg.cpp:144
-#: ../src/html/helpfrm.cpp:974 ../src/html/htmlhelp.cpp:434
+#: ../src/common/dlgcmn.cpp:183
+#: ../src/generic/dirdlgg.cpp:153
+#: ../src/generic/filedlgg.cpp:1166
+#: ../src/generic/filedlgg.cpp:1185
+#: ../src/generic/fontdlgg.cpp:254
+#: ../src/generic/prntdlgg.cpp:453
+#: ../src/generic/progdlgg.cpp:211
+#: ../src/generic/proplist.cpp:511
+#: ../src/gtk/filedlg.cpp:173
+#: ../src/gtk/fontdlg.cpp:144
+#: ../src/html/helpfrm.cpp:974
+#: ../src/html/htmlhelp.cpp:434
 #: ../src/motif/msgdlg.cpp:182
 msgid "Cancel"
 msgstr "Annuleer"
 
-#: ../contrib/src/xrc/xmlres.cpp:893 ../contrib/src/xrc/xmlres.cpp:934
+#: ../contrib/src/xrc/xmlres.cpp:893
+#: ../contrib/src/xrc/xmlres.cpp:934
 msgid "Cannot convert dialog units: dialog unknown."
-msgstr ""
+msgstr "Kan dialoog eenheden niet converteren: dialoog is onbekend."
 
 #: ../src/common/strconv.cpp:929
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot convert from encoding '%s'!"
-msgstr "Onbekende codering (%d)"
+msgstr "Kan niet converteren van encodering '%s'!"
 
 #: ../src/msw/dialup.cpp:497
 #, c-format
@@ -703,14 +703,14 @@ msgid "Cannot find active dialup connection: %s"
 msgstr "Kan geen actieve inbelverbinding vinden: %s"
 
 #: ../contrib/src/xrc/xmlres.cpp:224
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot find container for unknown control '%s'."
-msgstr "Kan geen actieve inbelverbinding vinden: %s"
+msgstr "Kan geen container vinden voor onbekende control '%s'."
 
 #: ../contrib/src/xrc/xmlres.cpp:948
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot find font node '%s'."
-msgstr "Kan URL '%s' niet openen"
+msgstr "Kan lettertype node '%s' niet vinden."
 
 #: ../src/msw/dialup.cpp:811
 msgid "Cannot find the location of address book file"
@@ -738,24 +738,22 @@ msgid "Cannot initialize OLE"
 msgstr "Kan OLE niet initializeren"
 
 #: ../src/mgl/app.cpp:414
-#, fuzzy
 msgid "Cannot initialize SciTech MGL!"
-msgstr "Kan OLE niet initializeren"
+msgstr "Kan SciTech MGL niet initializeren!"
 
 #: ../src/mgl/window.cpp:546
-#, fuzzy
 msgid "Cannot initialize display."
-msgstr "Kan OLE niet initializeren"
+msgstr "Kan beeldscherm niet initializeren."
 
 #: ../src/msw/volume.cpp:627
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot load icon from '%s'."
-msgstr "Kan bestanden in map '%s' niet opsommen"
+msgstr "Kan pictogram niet laden van '%s'."
 
 #: ../contrib/src/xrc/xmlres.cpp:337
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot load resources from file '%s'."
-msgstr "Kon in te voegen bronbestand %s niet vinden."
+msgstr "Kan bronnen niet laden uit bestand '%s'."
 
 #: ../src/html/htmlfilt.cpp:171
 #, c-format
@@ -778,9 +776,9 @@ msgid "Cannot open contents file: %s"
 msgstr "Kon inhoudsopgave-bestand niet openen: %s"
 
 #: ../contrib/src/xrc/xmlres.cpp:311
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot open file '%s'."
-msgstr "Kan bestand '%s' niet openen"
+msgstr "Kan bestand '%s' niet openen."
 
 #: ../src/generic/dcpsg.cpp:1765
 msgid "Cannot open file for PostScript printing!"
@@ -792,23 +790,24 @@ msgid "Cannot open index file: %s"
 msgstr "Kan index-bestand niet openen: %s"
 
 #: ../contrib/src/xrc/xmlres.cpp:881
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot parse coordinates from '%s'."
-msgstr "Kon inhoudsopgave-bestand niet openen: %s"
+msgstr "Kan coordinaten niet ontleden van '%s'."
 
 #: ../contrib/src/xrc/xmlres.cpp:922
-#, fuzzy, c-format
+#, c-format
 msgid "Cannot parse dimension from '%s'."
-msgstr "Kan bestanden in map '%s' niet opsommen"
+msgstr "Kan dimensie niet ontleden van '%s'."
 
 #: ../src/html/helpfrm.cpp:1265
 msgid "Cannot print empty page."
 msgstr "Kan geen lege pagina afdrukken."
 
-#: ../src/msw/volume.cpp:188 ../src/msw/volume.cpp:519
-#, fuzzy, c-format
+#: ../src/msw/volume.cpp:188
+#: ../src/msw/volume.cpp:519
+#, c-format
 msgid "Cannot read typename from '%s'!"
-msgstr "Kon inhoudsopgave-bestand niet openen: %s"
+msgstr "Kan typename van '%s' niet lezen!"
 
 #: ../src/unix/threadpsx.cpp:1049
 msgid "Cannot retrieve thread scheduling policy."
@@ -823,14 +822,12 @@ msgid "Case sensitive"
 msgstr "Hoofdlettergevoelig"
 
 #: ../src/common/fontmap.cpp:125
-#, fuzzy
 msgid "Celtic (ISO-8859-14)"
-msgstr "Baltisch (ISO-8859-13)"
+msgstr "Celtic (ISO-8859-14)"
 
 #: ../src/common/fontmap.cpp:113
-#, fuzzy
 msgid "Central European (ISO-8859-2)"
-msgstr "Centraal-Europees (ISO-8859-2/Latin 2)"
+msgstr "Centraal-Europees (ISO-8859-2)"
 
 #: ../src/msw/dialup.cpp:746
 msgid "Choose ISP to dial"
@@ -844,55 +841,58 @@ msgstr "Kies lettertype"
 msgid "Clear the log contents"
 msgstr "Wis de loggegevens"
 
-#: ../src/common/prntbase.cpp:429 ../src/generic/progdlgg.cpp:360
+#: ../src/common/prntbase.cpp:429
+#: ../src/generic/progdlgg.cpp:360
 #: ../src/generic/proplist.cpp:506
 msgid "Close"
 msgstr "Sluiten"
 
 #: ../src/univ/themes/win32.cpp:4547
 msgid "Close\tAlt-F4"
-msgstr ""
+msgstr "Sluiten\tAlt-F4"
 
 #: ../src/generic/logg.cpp:491
 msgid "Close this window"
 msgstr "Sluit dit venster"
 
 #: ../src/generic/dirctrlg.cpp:547
-#, fuzzy
 msgid "Computer"
-msgstr "Deze computer"
+msgstr "Computer"
 
 #: ../src/common/fileconf.cpp:872
 #, c-format
 msgid "Config entry name cannot start with '%c'."
 msgstr "Naam van configuratie-ingang kan niet beginnen met '%c'."
 
-#: ../src/generic/filedlgg.cpp:1357 ../src/gtk/filedlg.cpp:72
+#: ../src/generic/filedlgg.cpp:1357
+#: ../src/gtk/filedlg.cpp:72
 msgid "Confirm"
 msgstr "Bevestig"
 
 #: ../src/msw/mimetype.cpp:686
 msgid "Confirm registry update"
-msgstr ""
+msgstr "Bevestig register bijwerking"
 
 #: ../src/html/htmlwin.cpp:262
 msgid "Connecting..."
 msgstr "Bezig te verbinden..."
 
-#: ../src/html/helpfrm.cpp:346 ../src/html/htmlhelp.cpp:565
+#: ../src/html/helpfrm.cpp:346
+#: ../src/html/htmlhelp.cpp:565
 msgid "Contents"
 msgstr "Inhoud"
 
 #: ../src/common/strconv.cpp:596
 #, c-format
-msgid "Convertion to charset '%s' doesn't work."
-msgstr ""
+msgid "Conversion to charset '%s' doesn't work."
+msgstr "Conversie naar karakterset '%s' werkt niet."
 
 #: ../src/generic/prntdlgg.cpp:193
 msgid "Copies:"
 msgstr "Kopieën:"
 
-#: ../src/common/resourc2.cpp:287 ../src/common/resource.cpp:1806
+#: ../src/common/resourc2.cpp:287
+#: ../src/common/resource.cpp:1806
 #: ../src/common/resource.cpp:1936
 #, c-format
 msgid "Could not find resource include file %s."
@@ -909,27 +909,24 @@ msgstr "Kon Rich Edit dll '%s' niet laden"
 
 #: ../src/common/resource.cpp:802
 #, c-format
-msgid ""
-"Could not resolve control class or id '%s'. Use (non-zero) integer instead\n"
+msgid "Could not resolve control class or id '%s'. Use (non-zero) integer instead\n"
 " or provide #define (see manual for caveats)"
-msgstr ""
-"Kon control class of id '%s' niet herleiden. Gebruik een integer (niet nul)\n"
+msgstr "Kon control class of id '%s' niet herleiden. Gebruik een integer (niet nul)\n"
 "of zorg voor een #define (zie handleiding voor mogelijke problemen)"
 
 #: ../src/common/resource.cpp:1251
 #, c-format
-msgid ""
-"Could not resolve menu id '%s'. Use (non-zero) integer instead\n"
+msgid "Could not resolve menu id '%s'. Use (non-zero) integer instead\n"
 "or provide #define (see manual for caveats)"
-msgstr ""
-"Kon menu '%s' niet herleiden. Gebruik een integer (niet nul)\n"
+msgstr "Kon menu '%s' niet herleiden. Gebruik een integer (niet nul)\n"
 "of zorg voor een #define (zie handleiding voor mogelijke problemen)"
 
 #: ../src/common/prntbase.cpp:806
 msgid "Could not start document preview."
 msgstr "Kon afdrukvoorbeeld niet starten."
 
-#: ../src/generic/printps.cpp:197 ../src/msw/printwin.cpp:252
+#: ../src/generic/printps.cpp:197
+#: ../src/msw/printwin.cpp:252
 msgid "Could not start printing."
 msgstr "Kon printen niet starten."
 
@@ -937,8 +934,10 @@ msgstr "Kon printen niet starten."
 msgid "Could not transfer data to window"
 msgstr "Kon gegevens niet naar venster overdragen"
 
-#: ../src/msw/dragimag.cpp:148 ../src/msw/dragimag.cpp:184
-#: ../src/msw/imaglist.cpp:152 ../src/msw/imaglist.cpp:174
+#: ../src/msw/dragimag.cpp:148
+#: ../src/msw/dragimag.cpp:184
+#: ../src/msw/imaglist.cpp:152
+#: ../src/msw/imaglist.cpp:174
 #: ../src/msw/imaglist.cpp:187
 msgid "Couldn't add an image to the image list."
 msgstr "Kon geen afbeelding aan de lijst toevoegen"
@@ -947,24 +946,25 @@ msgstr "Kon geen afbeelding aan de lijst toevoegen"
 msgid "Couldn't create a timer"
 msgstr "Kon geen timer creëren"
 
-#: ../src/mgl/cursor.cpp:135 ../src/mgl/cursor.cpp:166
-#, fuzzy
+#: ../src/mgl/cursor.cpp:135
+#: ../src/mgl/cursor.cpp:166
 msgid "Couldn't create cursor."
-msgstr "Kon geen timer creëren"
+msgstr "Kon cursor niet creëren"
 
-#: ../src/common/dynlib.cpp:347 ../src/common/dynload.cpp:295
+#: ../src/common/dynlib.cpp:347
+#: ../src/common/dynload.cpp:295
 #, c-format
 msgid "Couldn't find symbol '%s' in a dynamic library"
 msgstr "Kon symbool %s niet vinden in een dynamische bibliotheek"
 
-#: ../src/mac/thread.cpp:502 ../src/msw/thread.cpp:711
+#: ../src/mac/thread.cpp:502
+#: ../src/msw/thread.cpp:711
 msgid "Couldn't get the current thread pointer"
 msgstr "Kon pointer naar huidige thread niet verkrijgen"
 
 #: ../src/common/imagpng.cpp:298
 msgid "Couldn't load a PNG image - file is corrupted or not enough memory."
-msgstr ""
-"Kon PNG-afbeelding niet laden: bestand is corrupt of onvoldoende geheugen."
+msgstr "Kon PNG-afbeelding niet laden: bestand is corrupt of onvoldoende geheugen."
 
 #: ../src/msw/ole/dataobj.cpp:143
 #, c-format
@@ -976,13 +976,14 @@ msgstr "Kon klembord-formaat '%s' niet registreren."
 msgid "Couldn't retrieve information about list control item %d."
 msgstr "Kon geen informatie verkrijgen over lijst-item %d."
 
-#: ../src/common/imagpng.cpp:334 ../src/common/imagpng.cpp:345
+#: ../src/common/imagpng.cpp:334
+#: ../src/common/imagpng.cpp:345
 #: ../src/common/imagpng.cpp:353
-#, fuzzy
 msgid "Couldn't save PNG image."
-msgstr "JPEG: kon afbeelding niet opslaan."
+msgstr "Kon PNG afbeelding niet opslaan."
 
-#: ../src/mac/thread.cpp:749 ../src/msw/thread.cpp:1091
+#: ../src/mac/thread.cpp:749
+#: ../src/msw/thread.cpp:1091
 msgid "Couldn't terminate thread"
 msgstr "Kon thread niet beëindigen"
 
@@ -990,7 +991,8 @@ msgstr "Kon thread niet be
 msgid "Create directory"
 msgstr "Maak map"
 
-#: ../src/generic/dirdlgg.cpp:103 ../src/generic/filedlgg.cpp:1119
+#: ../src/generic/dirdlgg.cpp:103
+#: ../src/generic/filedlgg.cpp:1119
 msgid "Create new directory"
 msgstr "Maak nieuwe map"
 
@@ -999,9 +1001,8 @@ msgid "Current directory:"
 msgstr "Huidige map:"
 
 #: ../src/common/fontmap.cpp:116
-#, fuzzy
 msgid "Cyrillic (ISO-8859-5)"
-msgstr "Baltisch (ISO-8859-13)"
+msgstr "Cyrillic (ISO-8859-5)"
 
 #: ../src/common/paper.cpp:106
 msgid "D sheet, 22 x 34 in"
@@ -1012,34 +1013,28 @@ msgid "DDE poke request failed"
 msgstr "DDE 'poke request' mislukt"
 
 #: ../src/common/imagbmp.cpp:618
-#, fuzzy
 msgid "DIB Header: Cannot deal with 4bit encoded yet."
-msgstr "BMP: kan geen 4-bits codering verwerken"
+msgstr "DIB Header: kan geen 4-bits codering verwerken"
 
 #: ../src/common/imagbmp.cpp:836
-#, fuzzy
 msgid "DIB Header: Encoding doesn't match bitdepth."
-msgstr "BMP: codering komt niet overeen met bit-diepte"
+msgstr "DIB Header: Codering komt niet overeen met bit-diepte."
 
 #: ../src/common/imagbmp.cpp:798
-#, fuzzy
 msgid "DIB Header: Image height > 32767 pixels for file."
-msgstr "BMP: afbeeldingshoogte > 32767 pixels in bestand."
+msgstr "DIB Header: Afbeeldingshoogte > 32767 pixels in bestand."
 
 #: ../src/common/imagbmp.cpp:792
-#, fuzzy
 msgid "DIB Header: Image width > 32767 pixels for file."
-msgstr "BMP: afbeeldingsbreedte > 32767 pixels in bestand."
+msgstr "DIB Header: Afbeeldingsbreedte > 32767 pixels in bestand."
 
 #: ../src/common/imagbmp.cpp:812
-#, fuzzy
 msgid "DIB Header: Unknown bitdepth in file."
-msgstr "BMP: onbekende bitdiepte in bestand."
+msgstr "DIB Header: Onbekende bitdiepte in bestand."
 
 #: ../src/common/imagbmp.cpp:822
-#, fuzzy
 msgid "DIB Header: Unknown encoding in file."
-msgstr "BMP: onbekende codering in bestand."
+msgstr "DIB Header: Onbekende codering in bestand."
 
 #: ../src/common/paper.cpp:128
 msgid "DL Envelope, 110 x 220 mm"
@@ -1055,27 +1050,20 @@ msgstr "Decoratief"
 
 #: ../src/common/fontmap.cpp:386
 msgid "Default encoding"
-msgstr ""
+msgstr "Standaard encodering"
 
 #: ../src/unix/snglinst.cpp:269
-#, fuzzy, c-format
+#, c-format
 msgid "Deleted stale lock file '%s'."
-msgstr "Kan INI-bestand '%s' niet verwijderen"
+msgstr "Verouderd vergrendeld bestand '%s' verwijderd."
 
 #: ../src/msw/dialup.cpp:346
-msgid ""
-"Dial up functions are unavailable because the remote access service (RAS) is "
-"not installed on this machine. Please install it."
-msgstr ""
-"Inbel-functies zijn niet beschikbaar omdat de inbelverbindingssoftware (RAS) "
-"niet op deze machine is geïnstalleerd. Installeer het a.u.b."
+msgid "Dial up functions are unavailable because the remote access service (RAS) is not installed on this machine. Please install it."
+msgstr "Inbel-functies zijn niet beschikbaar omdat de inbelverbindingssoftware (RAS) niet op deze machine is geïnstalleerd. Installeer het a.u.b."
 
 #: ../src/os2/toplevel.cpp:329
-#, fuzzy
 msgid "Did you forget to include wx/os2/wx.rc in your resources?"
-msgstr ""
-"Maken van dialoogvenster mislukt. U bent mogelijk '#include wx/msw/wx.rc' in "
-"uw resources vergeten."
+msgstr "Bent U vergeten wx/os2/wx.rc aan uw bronnen toe te voegen?"
 
 #: ../src/generic/tipdlg.cpp:178
 msgid "Did you know..."
@@ -1087,21 +1075,17 @@ msgid "Directory '%s' couldn't be created"
 msgstr "Map '%s' kon niet worden gemaakt"
 
 #: ../src/mgl/dirmgl.cpp:217
-#, fuzzy, c-format
+#, c-format
 msgid "Directory '%s' doesn't exist!"
-msgstr "Map bestaat niet"
+msgstr "Map '%s' bestaat niet!"
 
 #: ../src/generic/dirdlgg.cpp:188
 msgid "Directory does not exist"
 msgstr "Map bestaat niet"
 
 #: ../src/html/helpfrm.cpp:374
-msgid ""
-"Display all index items that contain given substring. Search is case "
-"insensitive."
-msgstr ""
-"Toon alle items in de index die de gegeven tekst bevatten. Niet "
-"hoofdlettergevoelig."
+msgid "Display all index items that contain given substring. Search is case insensitive."
+msgstr "Toon alle items in de index die de gegeven tekst bevatten. Niet hoofdlettergevoelig."
 
 #: ../src/html/helpfrm.cpp:540
 msgid "Display options dialog"
@@ -1110,13 +1094,17 @@ msgstr "Toon optie-dialoog"
 #: ../src/msw/mimetype.cpp:679
 #, c-format
 msgid ""
-"Do you want to overwrite the command used to %s files with extension \"%s\" "
-"?\n"
+"Do you want to overwrite the command used to %s files with extension \"%s\" ?\n"
 "Current value is \n"
 "%s, \n"
 "New value is \n"
 "%s %1"
 msgstr ""
+"Wilt U het '%s' commando dat gebruikt wordt voor bestanden met extensie \"%s\" overschrijven?\n"
+"Huidige waarde is \n"
+"%s, \n"
+"Nieuwe waarde is \n"
+"%s %1"
 
 #: ../src/common/docview.cpp:440
 #, c-format
@@ -1132,9 +1120,8 @@ msgid "Done."
 msgstr "Klaar."
 
 #: ../src/generic/fdrepdlg.cpp:157
-#, fuzzy
 msgid "Down"
-msgstr "Klaar"
+msgstr "Omlaag"
 
 #: ../src/common/paper.cpp:107
 msgid "E sheet, 34 x 44 in"
@@ -1150,22 +1137,26 @@ msgstr "Ingangen gevonden"
 
 #: ../src/common/config.cpp:345
 #, c-format
-msgid ""
-"Environment variables expansion failed: missing '%c' at position %d in '%s'."
-msgstr ""
-"Uitbreiding van omgevingsvariabelen mislukt: ontbrekende '%c' op positie %d "
-"in '%s'."
-
-#: ../src/generic/dirctrlg.cpp:702 ../src/generic/dirctrlg.cpp:720
-#: ../src/generic/dirctrlg.cpp:731 ../src/generic/dirdlgg.cpp:298
-#: ../src/generic/filedlgg.cpp:836 ../src/generic/filedlgg.cpp:933
-#: ../src/generic/filedlgg.cpp:947 ../src/generic/filedlgg.cpp:960
-#: ../src/generic/filedlgg.cpp:1322 ../src/generic/filedlgg.cpp:1372
-#: ../src/gtk/filedlg.cpp:80 ../src/gtk/fontdlg.cpp:71
+msgid "Environment variables expansion failed: missing '%c' at position %d in '%s'."
+msgstr "Uitbreiding van omgevingsvariabelen mislukt: ontbrekende '%c' op positie %d in '%s'."
+
+#: ../src/generic/dirctrlg.cpp:702
+#: ../src/generic/dirctrlg.cpp:720
+#: ../src/generic/dirctrlg.cpp:731
+#: ../src/generic/dirdlgg.cpp:298
+#: ../src/generic/filedlgg.cpp:836
+#: ../src/generic/filedlgg.cpp:933
+#: ../src/generic/filedlgg.cpp:947
+#: ../src/generic/filedlgg.cpp:960
+#: ../src/generic/filedlgg.cpp:1322
+#: ../src/generic/filedlgg.cpp:1372
+#: ../src/gtk/filedlg.cpp:80
+#: ../src/gtk/fontdlg.cpp:71
 msgid "Error"
 msgstr "Fout"
 
-#: ../src/unix/utilsunx.cpp:1182 ../src/unix/utilsunx.cpp:1190
+#: ../src/unix/utilsunx.cpp:1182
+#: ../src/unix/utilsunx.cpp:1190
 msgid "Error "
 msgstr "Fout "
 
@@ -1174,9 +1165,8 @@ msgid "Error creating directory"
 msgstr "Fout bij het maken van map"
 
 #: ../src/common/imagbmp.cpp:845
-#, fuzzy
 msgid "Error in reading image DIB ."
-msgstr "TIFF: fout bij lezen van afbeelding."
+msgstr "Fout bij lezen DIB afbeelding ."
 
 #: ../src/common/log.cpp:460
 msgid "Error: "
@@ -1199,20 +1189,26 @@ msgstr "Uitvoering van opdracht '%s' mislukt"
 msgid "Executive, 7 1/4 x 10 1/2 in"
 msgstr "USA Executive, 7 1/4 x 10 1/2 inch"
 
-#: ../src/common/resourc2.cpp:326 ../src/common/resourc2.cpp:1391
-#: ../src/common/resource.cpp:1845 ../src/common/resource.cpp:1975
+#: ../src/common/resourc2.cpp:326
+#: ../src/common/resourc2.cpp:1391
+#: ../src/common/resource.cpp:1845
+#: ../src/common/resource.cpp:1975
 #: ../src/common/resource.cpp:3059
 msgid "Expected '*' whilst parsing resource."
 msgstr "'*' verwacht bij inlezen van bron."
 
-#: ../src/common/resourc2.cpp:342 ../src/common/resourc2.cpp:1407
-#: ../src/common/resource.cpp:1862 ../src/common/resource.cpp:1991
+#: ../src/common/resourc2.cpp:342
+#: ../src/common/resourc2.cpp:1407
+#: ../src/common/resource.cpp:1862
+#: ../src/common/resource.cpp:1991
 #: ../src/common/resource.cpp:3076
 msgid "Expected '=' whilst parsing resource."
 msgstr "'=' verwacht bij inlezen van bron."
 
-#: ../src/common/resourc2.cpp:312 ../src/common/resourc2.cpp:1377
-#: ../src/common/resource.cpp:1831 ../src/common/resource.cpp:1961
+#: ../src/common/resourc2.cpp:312
+#: ../src/common/resourc2.cpp:1377
+#: ../src/common/resource.cpp:1831
+#: ../src/common/resource.cpp:1961
 #: ../src/common/resource.cpp:3045
 msgid "Expected 'char' whilst parsing resource."
 msgstr "'char' verwacht bij inlezen van bron."
@@ -1224,17 +1220,16 @@ msgstr "%s van inbelverbinding mislukt: %s"
 
 #: ../src/unix/snglinst.cpp:243
 msgid "Failed to access lock file."
-msgstr ""
+msgstr "Toegang naar beveiligd bestand mislukt."
 
 #: ../src/common/filename.cpp:172
-#, fuzzy
 msgid "Failed to close file handle"
-msgstr "Sluiten van klembord mislukt."
+msgstr "Sluiten van bestands handle mislukt."
 
 #: ../src/unix/snglinst.cpp:308
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to close lock file '%s'"
-msgstr "legen van bestand '%s' mislukt"
+msgstr "Sluiten van vergrendeld bestand '%s' mislukt"
 
 #: ../src/msw/clipbrd.cpp:127
 msgid "Failed to close the clipboard."
@@ -1259,9 +1254,9 @@ msgid "Failed to copy the contents of registry key '%s' to '%s'."
 msgstr "Kopiëren van registersleutel '%s' naar '%s' mislukt."
 
 #: ../src/common/filefn.cpp:1106
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to copy the file '%s' to '%s'"
-msgstr "legen van bestand '%s' mislukt"
+msgstr "Kopiëren van bestand '%s' naar '%s' mislukt"
 
 #: ../src/msw/dde.cpp:924
 msgid "Failed to create DDE string"
@@ -1276,14 +1271,12 @@ msgid "Failed to create a status bar."
 msgstr "Maken van statusbalk mislukt."
 
 #: ../src/common/filename.cpp:717
-#, fuzzy
 msgid "Failed to create a temporary file name"
-msgstr "Maken van MDI-hoofdvenster mislukt."
+msgstr "Maken van een tijdelijke bestandsnaam mislukt"
 
 #: ../src/msw/utilsexc.cpp:195
-#, fuzzy
 msgid "Failed to create an anonymous pipe"
-msgstr "Maken van statusbalk mislukt."
+msgstr "Maken van een anonieme pipe mislukt"
 
 #: ../src/msw/dde.cpp:401
 #, c-format
@@ -1291,35 +1284,33 @@ msgid "Failed to create connection to server '%s' on topic '%s'"
 msgstr "Maken van verbinding met server '%s' voor onderwerp '%s' mislukt"
 
 #: ../src/msw/toplevel.cpp:293
-#, fuzzy
 msgid "Failed to create dialog. Incorrect DLGTEMPLATE?"
-msgstr "Maken van map mislukt"
+msgstr "Maken van dialoog mislukt. Foutieve DLGTEMPLATE?"
 
 #: ../src/generic/dirdlgg.cpp:201
-#, fuzzy, c-format
-msgid ""
-"Failed to create directory '%s'\n"
+#, c-format
+msgid "Failed to create directory '%s'\n"
 "(Do you have the required permissions?)"
-msgstr ""
-"\n"
-"(Heeft u de benodigde machtinging?)"
+msgstr "Maken van map '%s' mislukt\n"
+"(Heeft u de benodigde machtiging?)"
 
 #: ../src/msw/mimetype.cpp:168
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to create registry entry for '%s' files."
-msgstr "Hernoemen van registersleutel '%s' naar '%s' mislukt"
+msgstr "Maken van registersleutel '%s' mislukt."
 
 #: ../src/msw/fdrepdlg.cpp:442
 #, c-format
 msgid "Failed to create the standard find/replace dialog (error code %d)"
-msgstr ""
+msgstr "Maken van het standaard zoek/vervang dialoog mislukt (error code %d)"
 
 #: ../src/html/winpars.cpp:430
 #, c-format
 msgid "Failed to display HTML document in %s encoding"
 msgstr "Weergeven van HTML-document in %s-codering mislukt"
 
-#: ../src/mac/clipbrd.cpp:167 ../src/msw/clipbrd.cpp:139
+#: ../src/mac/clipbrd.cpp:167
+#: ../src/msw/clipbrd.cpp:139
 msgid "Failed to empty the clipboard."
 msgstr "Legen van klembord mislukt."
 
@@ -1332,36 +1323,34 @@ msgstr "Opzetten van advies-lus met de DDE-server mislukt"
 msgid "Failed to establish dialup connection: %s"
 msgstr "Maken van inbelverbinding mislukt: %s"
 
-#: ../src/unix/utilsunx.cpp:538 ../src/unix/utilsunx.cpp:555
+#: ../src/unix/utilsunx.cpp:538
+#: ../src/unix/utilsunx.cpp:555
 #, c-format
 msgid "Failed to execute '%s'\n"
 msgstr "Uitvoeren van '%s' mislukt\n"
 
-#: ../src/common/resourc2.cpp:808 ../src/common/resource.cpp:2465
+#: ../src/common/resourc2.cpp:808
+#: ../src/common/resource.cpp:2465
 #, c-format
-msgid ""
-"Failed to find XBM resource %s.\n"
+msgid "Failed to find XBM resource %s.\n"
 "Forgot to use wxResourceLoadBitmapData?"
-msgstr ""
-"Vinden van XBM-bron %s mislukt.\n"
+msgstr "Vinden van XBM-bron %s mislukt.\n"
 "Bent u vergeten wxResourceLoadBitmapData te gebruiken?"
 
-#: ../src/common/resourc2.cpp:959 ../src/common/resource.cpp:2619
+#: ../src/common/resourc2.cpp:959
+#: ../src/common/resource.cpp:2619
 #, c-format
-msgid ""
-"Failed to find XBM resource %s.\n"
+msgid "Failed to find XBM resource %s.\n"
 "Forgot to use wxResourceLoadIconData?"
-msgstr ""
-"Vinden van XBM-brom %s mislukt.\n"
+msgstr "Vinden van XBM-brom %s mislukt.\n"
 "Bent u vergeten wxResourceLoadIconData te gebruiken?"
 
-#: ../src/common/resourc2.cpp:823 ../src/common/resource.cpp:2480
+#: ../src/common/resourc2.cpp:823
+#: ../src/common/resource.cpp:2480
 #, c-format
-msgid ""
-"Failed to find XPM resource %s.\n"
+msgid "Failed to find XPM resource %s.\n"
 "Forgot to use wxResourceLoadBitmapData?"
-msgstr ""
-"Vinden van XPM-bron %s mislukt.\n"
+msgstr "Vinden van XPM-bron %s mislukt.\n"
 "Bent u vergeten wxResourceLoadBitmapData te gebruiken?"
 
 #: ../src/msw/dialup.cpp:678
@@ -1370,9 +1359,8 @@ msgid "Failed to get ISP names: %s"
 msgstr "Verkrijgen van namen van internetaanbieders mislukt: %s"
 
 #: ../src/mac/clipbrd.cpp:118
-#, fuzzy
 msgid "Failed to get clipboard data."
-msgstr "Instellen van klembordgegevens mislukt."
+msgstr "Verkrijgen van klembordgegevens mislukt."
 
 #: ../src/msw/clipbrd.cpp:712
 msgid "Failed to get data from the clipboard"
@@ -1387,80 +1375,74 @@ msgid "Failed to get the local system time"
 msgstr "Verkrijgen van lokale systeem-tijd mislukt"
 
 #: ../src/common/filefn.cpp:1487
-#, fuzzy
 msgid "Failed to get the working directory"
-msgstr "Maken van map mislukt"
+msgstr "Verkrijgen van de werk map mislukt"
 
 #: ../src/univ/theme.cpp:120
 msgid "Failed to initialize GUI: no built-in themes found."
-msgstr ""
+msgstr "Initialiseren van GUI mislukt: Geen ingebouwd thema gevonden."
 
 #: ../src/msw/helpchm.cpp:69
 msgid "Failed to initialize MS HTML Help."
-msgstr ""
+msgstr "Initialiseren van MS HTML Help mislukt."
 
 #: ../src/msw/glcanvas.cpp:729
-#, fuzzy
 msgid "Failed to initialize OpenGL"
-msgstr "Kan OLE niet initializeren"
+msgstr "Initialiseren van OpenGL mislukt."
 
 #: ../src/unix/threadpsx.cpp:871
-msgid ""
-"Failed to join a thread, potential memory leak detected - please restart the "
-"program"
-msgstr ""
-"Aansluiten bij een thread mislukt, mogelijk geheugenlek aangetroffen - "
-"herstart het programma a.u.b."
+msgid "Failed to join a thread, potential memory leak detected - please restart the program"
+msgstr "Aansluiten bij een thread mislukt, mogelijk geheugenlek aangetroffen - herstart het programma a.u.b."
 
 #: ../src/msw/utils.cpp:721
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to kill process %d"
-msgstr "Omleiden van I/O van subprocess mislukt"
+msgstr "Abrupt afsluiten van process %d mislukt"
 
 #: ../src/common/iconbndl.cpp:66
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to load image %d from file '%s'."
-msgstr "legen van bestand '%s' mislukt"
+msgstr "Laden van afbeelding %d van bestand '%s' mislukt."
 
 #: ../src/msw/volume.cpp:340
-#, fuzzy
 msgid "Failed to load mpr.dll."
-msgstr "Instellen van klembordgegevens mislukt."
+msgstr "Laden van mpr.dll mislukt."
 
-#: ../src/common/dynlib.cpp:274 ../src/common/dynload.cpp:197
+#: ../src/common/dynlib.cpp:274
+#: ../src/common/dynload.cpp:197
 #, c-format
 msgid "Failed to load shared library '%s'"
 msgstr "Laden van gedeelde bibliotheek '%s' mislukt"
 
-#: ../src/common/dynlib.cpp:256 ../src/common/dynload.cpp:126
-#, fuzzy, c-format
+#: ../src/common/dynlib.cpp:256
+#: ../src/common/dynload.cpp:126
+#, c-format
 msgid "Failed to load shared library '%s' Error '%s'"
-msgstr "Laden van gedeelde bibliotheek '%s' mislukt"
+msgstr "Laden van gedeelde bibliotheek '%s' mislukt Fout '%s'"
 
 #: ../src/unix/snglinst.cpp:192
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to lock the lock file '%s'"
-msgstr "legen van bestand '%s' mislukt"
+msgstr "Vergrendelen van het vergrendelde bestand '%s' mislukt"
 
 #: ../src/common/regex.cpp:251
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to match '%s' in regular expression: %s"
-msgstr "%s van inbelverbinding mislukt: %s"
+msgstr "Vinden van '%s' in reguliere expressie '%s' mislukt"
 
 #: ../src/common/filename.cpp:1644
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to modify file times for '%s'"
-msgstr "legen van bestand '%s' mislukt"
+msgstr "Veranderen van bestandstijden van '%s' mislukt"
 
 #: ../src/common/filename.cpp:160
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to open '%s' for %s"
-msgstr "Openen van klembord mislukt."
+msgstr "Openen van '%s' voor %s mislukt"
 
 #: ../src/common/filename.cpp:739
-#, fuzzy
 msgid "Failed to open temporary file."
-msgstr "Openen van klembord mislukt."
+msgstr "Openen van tijdelijk bestand mislukt."
 
 #: ../src/msw/clipbrd.cpp:107
 msgid "Failed to open the clipboard."
@@ -1471,16 +1453,14 @@ msgid "Failed to put data on the clipboard"
 msgstr "Bewaren van gegevens op klembord mislukt"
 
 #: ../src/unix/snglinst.cpp:252
-#, fuzzy
 msgid "Failed to read PID from lock file."
-msgstr "Maken van MDI-hoofdvenster mislukt."
+msgstr "Lezen van PID van vergrendeld bestand mislukt."
 
 #: ../src/unix/utilsunx.cpp:629
 msgid "Failed to redirect child process input/output"
 msgstr "Omleiden van I/O van subprocess mislukt"
 
 #: ../src/msw/utilsexc.cpp:600
-#, fuzzy
 msgid "Failed to redirect the child process IO"
 msgstr "Omleiden van I/O van subprocess mislukt"
 
@@ -1495,14 +1475,14 @@ msgid "Failed to remember the encoding for the charset '%s'."
 msgstr "Onthouden van codering voor tekenset '%s' mislukt."
 
 #: ../src/unix/snglinst.cpp:296
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to remove lock file '%s'"
-msgstr "kan bestand '%s' niet verwijderen"
+msgstr "Verwijderen van vergrendeld bestand '%s' mislukt"
 
 #: ../src/unix/snglinst.cpp:262
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to remove stale lock file '%s'."
-msgstr "Hernoemen van registerwaarde '%s' naar '%s' mislukt"
+msgstr "Verwijderen van verouderd vergrendeld bestand '%s' mislukt."
 
 #: ../src/msw/registry.cpp:443
 #, c-format
@@ -1519,9 +1499,9 @@ msgid "Failed to retrieve data from the clipboard."
 msgstr "Ophalen van gegevens van klembord mislukt"
 
 #: ../src/common/filename.cpp:1710
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to retrieve file times for '%s'"
-msgstr "Verkrijgen van tekst van inbel-foutmelding mislukt"
+msgstr "Verkrijgen van bestandstijden voor '%s' mislukt"
 
 #: ../src/msw/dialup.cpp:442
 msgid "Failed to retrieve text of RAS error message"
@@ -1536,20 +1516,20 @@ msgid "Failed to send DDE advise notification"
 msgstr "Versturen van DDE-adviesnotificatie mislukt"
 
 #: ../src/common/ftp.cpp:368
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to set FTP transfer mode to %s."
-msgstr "Instellen van prioriteit van thread %d mislukt."
+msgstr "Instellen van FTP transfer mode naar %s mislukt."
 
 #: ../src/msw/clipbrd.cpp:379
 msgid "Failed to set clipboard data."
 msgstr "Instellen van klembordgegevens mislukt."
 
 #: ../src/common/file.cpp:522
-#, fuzzy
 msgid "Failed to set temporary file permissions"
-msgstr "legen van bestand '%s' mislukt"
+msgstr "Instellen van machtigingen van tijdelijk bestand mislukt"
 
-#: ../src/unix/threadpsx.cpp:1213 ../src/unix/threadpsx.cpp:1224
+#: ../src/unix/threadpsx.cpp:1213
+#: ../src/unix/threadpsx.cpp:1224
 #, c-format
 msgid "Failed to set thread priority %d."
 msgstr "Instellen van prioriteit van thread %d mislukt."
@@ -1573,14 +1553,14 @@ msgid "Failed to terminate the dialup connection: %s"
 msgstr "Ophangen van inbelverbinding mislukt: %s"
 
 #: ../src/common/filename.cpp:1659
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to touch the file '%s'"
-msgstr "legen van bestand '%s' mislukt"
+msgstr "Touchen van bestand '%s' mislukt"
 
 #: ../src/unix/snglinst.cpp:302
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to unlock lock file '%s'"
-msgstr "legen van bestand '%s' mislukt"
+msgstr "Ontgrendelen van het vergrendelde bestand '%s' mislukt"
 
 #: ../src/msw/dde.cpp:301
 #, c-format
@@ -1588,9 +1568,9 @@ msgid "Failed to unregister DDE server '%s'"
 msgstr "Deregistreren van DDE-server %s mislukt"
 
 #: ../src/unix/snglinst.cpp:173
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to write to lock file '%s'"
-msgstr "legen van bestand '%s' mislukt"
+msgstr "Schrijven naar vergrendeld bestand '%s' mislukt"
 
 #: ../src/generic/logg.cpp:379
 msgid "Fatal error"
@@ -1600,37 +1580,41 @@ msgstr "Fatale fout"
 msgid "Fatal error: "
 msgstr "Fatale fout: "
 
-#: ../src/mac/app.cpp:1220 ../src/msw/app.cpp:1281
+#: ../src/mac/app.cpp:1220
+#: ../src/msw/app.cpp:1281
 msgid "Fatal error: exiting"
 msgstr "Fatale fout: bezig met afbreken"
 
 #: ../src/mgl/bitmap.cpp:544
-#, fuzzy, c-format
+#, c-format
 msgid "File %s does not exist."
-msgstr ": bestand bestaat niet!"
+msgstr "Bestand %s bestaat niet."
 
-#: ../src/generic/filedlgg.cpp:1354 ../src/gtk/filedlg.cpp:69
+#: ../src/generic/filedlgg.cpp:1354
+#: ../src/gtk/filedlg.cpp:69
 #, c-format
 msgid "File '%s' already exists, do you really want to overwrite it?"
 msgstr "Bestand '%s' bestaat al, overschrijven?"
 
 #: ../src/msw/filedlg.cpp:505
-#, fuzzy, c-format
-msgid ""
-"File '%s' already exists.\n"
+#, c-format
+msgid "File '%s' already exists.\n"
 "Do you want to replace it?"
-msgstr "Bestand '%s' bestaat al, overschrijven?"
+msgstr "Bestand '%s' bestaat al.\n"
+"Wilt U het vervangen?"
 
 #: ../src/common/textcmn.cpp:158
 msgid "File couldn't be loaded."
 msgstr "Bestand kon niet worden geladen."
 
-#: ../src/common/docview.cpp:294 ../src/common/docview.cpp:331
+#: ../src/common/docview.cpp:294
+#: ../src/common/docview.cpp:331
 #: ../src/common/docview.cpp:1422
 msgid "File error"
 msgstr "Bestandsfout"
 
-#: ../src/generic/dirctrlg.cpp:720 ../src/generic/filedlgg.cpp:947
+#: ../src/generic/dirctrlg.cpp:720
+#: ../src/generic/filedlgg.cpp:947
 msgid "File name exists already."
 msgstr "Bestandsnaam bestaat al."
 
@@ -1663,13 +1647,16 @@ msgstr "'Fork' mislukt"
 msgid "Forward"
 msgstr "Vooruit"
 
-#: ../src/common/resourc2.cpp:295 ../src/common/resourc2.cpp:1360
-#: ../src/common/resource.cpp:1814 ../src/common/resource.cpp:1944
+#: ../src/common/resourc2.cpp:295
+#: ../src/common/resourc2.cpp:1360
+#: ../src/common/resource.cpp:1814
+#: ../src/common/resource.cpp:1944
 #: ../src/common/resource.cpp:3028
 msgid "Found "
 msgstr "Gevonden: "
 
-#: ../src/html/helpfrm.cpp:661 ../src/html/htmlhelp.cpp:460
+#: ../src/html/helpfrm.cpp:661
+#: ../src/html/htmlhelp.cpp:460
 #, c-format
 msgid "Found %i matches"
 msgstr "%i Overeenkomsten gevonden"
@@ -1679,9 +1666,8 @@ msgid "From:"
 msgstr "Van:"
 
 #: ../src/common/imaggif.cpp:100
-#, fuzzy
 msgid "GIF: Invalid gif index."
-msgstr "Ongeldige TIFF-afbeeldingsindex."
+msgstr "GIF: Ongeldige gif index."
 
 #: ../src/common/imaggif.cpp:75
 msgid "GIF: data stream seems to be truncated."
@@ -1701,7 +1687,7 @@ msgstr "GIF: onbekende fout!"
 
 #: ../src/univ/themes/gtk.cpp:623
 msgid "GTK+ theme"
-msgstr ""
+msgstr "GTK+ thema"
 
 #: ../src/common/paper.cpp:142
 msgid "German Legal Fanfold, 8 1/2 x 13 in"
@@ -1713,7 +1699,7 @@ msgstr "Duitse Std Fanfold, 8 1/2 x 12 inch"
 
 #: ../src/common/image.cpp:762
 msgid "GetUnusedColour:: No Unused Color in image "
-msgstr ""
+msgstr "GetUnusedColour: Er is geen ongebruikte kleur in de afbeelding"
 
 #: ../src/html/helpfrm.cpp:506
 msgid "Go back"
@@ -1721,7 +1707,7 @@ msgstr "Ga terug"
 
 #: ../src/html/htmlhelp.cpp:541
 msgid "Go back to the previous HTML page"
-msgstr ""
+msgstr "Ga naar de volgende HTML pagina"
 
 #: ../src/html/helpfrm.cpp:509
 msgid "Go forward"
@@ -1729,13 +1715,14 @@ msgstr "Ga vooruit"
 
 #: ../src/html/htmlhelp.cpp:543
 msgid "Go forward to the next HTML page"
-msgstr ""
+msgstr "Ga vooruit naar de volgende HTML pagina"
 
 #: ../src/html/helpfrm.cpp:514
 msgid "Go one level up in document hierarchy"
 msgstr "Ga niveau hoger in document-hiërarchie"
 
-#: ../src/generic/dirdlgg.cpp:108 ../src/generic/filedlgg.cpp:1108
+#: ../src/generic/dirdlgg.cpp:108
+#: ../src/generic/filedlgg.cpp:1108
 msgid "Go to home directory"
 msgstr "Ga naar startmap"
 
@@ -1745,7 +1732,7 @@ msgstr "Ga naar bovenliggende map"
 
 #: ../src/common/prntbase.cpp:379
 msgid "Goto Page"
-msgstr ""
+msgstr "Ga naar pagina"
 
 #: ../src/common/fontmap.cpp:118
 msgid "Greek (ISO-8859-7)"
@@ -1757,34 +1744,31 @@ msgid "HTML anchor %s does not exist."
 msgstr "HTML-anchor %s bestaat niet."
 
 #: ../src/html/helpfrm.cpp:1279
-msgid ""
-"HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|Help books "
-"(*.htb)|*.htb|Help books (*.zip)|*.zip|HTML Help Project (*.hhp)|*.hhp|All "
-"files (*.*)|*"
-msgstr ""
-"HTML-bestanden (*.htm)|*.htm|HTML-bestanden (*.html)|*.html|Helpbestanden "
-"(*.htb)|*.htb|Helpbestanden (*.zip)|*.zip|HTML-Help Project "
-"(*.hhp)|*.hhp|Alle bestanden (*.*)|*"
+msgid "HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|HTML Help Project (*.hhp)|*.hhp|All files (*.*)|*"
+msgstr "HTML-bestanden (*.htm)|*.htm|HTML-bestanden (*.html)|*.html|Helpbestanden (*.htb)|*.htb|Helpbestanden (*.zip)|*.zip|HTML-Help Project (*.hhp)|*.hhp|Alle bestanden (*.*)|*"
 
 #: ../src/common/fontmap.cpp:119
 msgid "Hebrew (ISO-8859-8)"
 msgstr "Hebreeuws (ISO-8859-8)"
 
-#: ../src/common/dlgcmn.cpp:179 ../src/generic/proplist.cpp:516
-#: ../src/html/helpfrm.cpp:240 ../src/msw/mdi.cpp:1324
+#: ../src/common/dlgcmn.cpp:179
+#: ../src/generic/proplist.cpp:516
+#: ../src/html/helpfrm.cpp:240
+#: ../src/msw/mdi.cpp:1324
 msgid "Help"
 msgstr "Help"
 
 #: ../src/html/htmlhelp.cpp:87
-#, fuzzy, c-format
+#, c-format
 msgid "Help : %s"
-msgstr "Help: %s"
+msgstr "Help : %s"
 
 #: ../src/html/helpfrm.cpp:933
 msgid "Help Browser Options"
 msgstr "Help Browser Instellingen"
 
-#: ../src/generic/helphtml.cpp:334 ../src/generic/helphtml.cpp:335
+#: ../src/generic/helphtml.cpp:334
+#: ../src/generic/helphtml.cpp:335
 msgid "Help Index"
 msgstr "Help Index"
 
@@ -1798,53 +1782,51 @@ msgid "Help: %s"
 msgstr "Help: %s"
 
 #: ../src/common/imagbmp.cpp:858
-#, fuzzy
 msgid "ICO: Error in reading mask DIB."
-msgstr "TIFF: fout bij lezen van afbeelding."
-
-#: ../src/common/imagbmp.cpp:960 ../src/common/imagbmp.cpp:1019
-#: ../src/common/imagbmp.cpp:1028 ../src/common/imagbmp.cpp:1039
-#: ../src/common/imagbmp.cpp:1083 ../src/common/imagbmp.cpp:1093
+msgstr "ICO: Fout bij lezen mask DIB."
+
+#: ../src/common/imagbmp.cpp:960
+#: ../src/common/imagbmp.cpp:1019
+#: ../src/common/imagbmp.cpp:1028
+#: ../src/common/imagbmp.cpp:1039
+#: ../src/common/imagbmp.cpp:1083
+#: ../src/common/imagbmp.cpp:1093
 #: ../src/common/imagbmp.cpp:1102
-#, fuzzy
 msgid "ICO: Error writing the image file!"
-msgstr "TIFF: fout bij schrijven van afbeelding."
+msgstr "ICO: Fout bij het wegschrijven van de afbeelding!"
 
 #: ../src/common/imagbmp.cpp:928
 msgid "ICO: Image too tall for an icon."
-msgstr ""
+msgstr "ICO: Afbeelding is te hoog voor een pictogram."
 
 #: ../src/common/imagbmp.cpp:934
 msgid "ICO: Image too wide for an icon."
-msgstr ""
+msgstr "ICO: Afbeelding is te breed voor een pictogram."
 
 #: ../src/common/imagbmp.cpp:1167
-#, fuzzy
 msgid "ICO: Invalid icon index."
-msgstr "Ongeldige TIFF-afbeeldingsindex."
+msgstr "ICO: Ongeldige pictogram index."
 
 #: ../src/common/imagiff.cpp:767
-#, fuzzy
 msgid "IFF: data stream seems to be truncated."
-msgstr "GIF: gegevensstroom lijkt afgekapt."
+msgstr "IFFF: gegevensstroom lijkt afgekapt."
 
 #: ../src/common/imagiff.cpp:751
-#, fuzzy
 msgid "IFF: error in IFF image format."
-msgstr "GIF: fout in GIF-bestandsformaat."
+msgstr "IFF: fout in IFF bestands formaat."
 
 #: ../src/common/imagiff.cpp:754
-#, fuzzy
 msgid "IFF: not enough memory."
-msgstr "GIF: onvoldoende geheugen."
+msgstr "IFF: onvoldoende geheugen."
 
 #: ../src/common/imagiff.cpp:757
-#, fuzzy
 msgid "IFF: unknown error!!!"
-msgstr "GIF: onbekende fout!"
+msgstr "IFF: onbekende fout!!!"
 
-#: ../src/common/resourc2.cpp:989 ../src/common/resourc2.cpp:1000
-#: ../src/common/resource.cpp:2649 ../src/common/resource.cpp:2660
+#: ../src/common/resourc2.cpp:989
+#: ../src/common/resourc2.cpp:1000
+#: ../src/common/resource.cpp:2649
+#: ../src/common/resource.cpp:2660
 #, c-format
 msgid "Icon resource specification %s not found."
 msgstr "Pictogram-bronspecificatie niet gevonden."
@@ -1853,7 +1835,8 @@ msgstr "Pictogram-bronspecificatie niet gevonden."
 msgid "Ill-formed resource file syntax."
 msgstr "Incorrecte syntax voor bronbestand."
 
-#: ../src/generic/dirctrlg.cpp:702 ../src/generic/filedlgg.cpp:933
+#: ../src/generic/dirctrlg.cpp:702
+#: ../src/generic/filedlgg.cpp:933
 msgid "Illegal directory name."
 msgstr "Ongeldige mapnaam."
 
@@ -1863,48 +1846,44 @@ msgstr "Ongeldige bestandsspecificatie."
 
 #: ../src/common/image.cpp:785
 msgid "Image and Mask have different sizes"
-msgstr ""
+msgstr "Afbeelding en masker hebben verschillende groottes"
 
 #: ../src/common/image.cpp:1064
 #, c-format
 msgid "Image file is not of type %d."
-msgstr ""
+msgstr "Bestands afbeelding is niet van het type %d."
 
 #: ../src/msw/textctrl.cpp:249
-msgid ""
-"Impossible to create a rich edit control, using simple text control instead. "
-"Please reinstall riched32.dll"
-msgstr ""
-"Niet mogelijk om Rich Edit control te maken, gewone tekst wordt gebruikt. "
-"Installeer riched32.dll a.u.b. opnieuw"
+msgid "Impossible to create a rich edit control, using simple text control instead. Please reinstall riched32.dll"
+msgstr "Niet mogelijk om Rich Edit control te maken, gewone tekst wordt gebruikt. Installeer riched32.dll a.u.b. opnieuw"
 
 #: ../src/unix/utilsunx.cpp:390
 msgid "Impossible to get child process input"
 msgstr "Onmogelijk om subprocess-invoer te verkrijgen"
 
 #: ../src/common/filefn.cpp:1122
-#, fuzzy, c-format
+#, c-format
 msgid "Impossible to get permissions for file '%s'"
-msgstr "Onmogelijk om subprocess-invoer te verkrijgen"
+msgstr "Onmogelijk om machtigingen voor bestand '%s' te krijgen"
 
 #: ../src/common/filefn.cpp:1136
-#, fuzzy, c-format
+#, c-format
 msgid "Impossible to overwrite the file '%s'"
-msgstr "legen van bestand '%s' mislukt"
+msgstr "Overschrijven van bestand '%s' mislukt"
 
 #: ../src/common/filefn.cpp:1187
 #, c-format
 msgid "Impossible to set permissions for the file '%s'"
-msgstr ""
+msgstr "Onmogelijk om machtigingen voor het bestand '%s' in te stellen"
 
-#: ../src/html/helpfrm.cpp:387 ../src/html/htmlhelp.cpp:578
+#: ../src/html/helpfrm.cpp:387
+#: ../src/html/htmlhelp.cpp:578
 msgid "Index"
 msgstr "Index"
 
 #: ../src/common/fontmap.cpp:123
-#, fuzzy
 msgid "Indian (ISO-8859-12)"
-msgstr "Noors (ISO-8859-10)"
+msgstr "Indisch (ISO-8859-12)"
 
 #: ../src/common/imagtiff.cpp:183
 msgid "Invalid TIFF image index."
@@ -1913,27 +1892,27 @@ msgstr "Ongeldige TIFF-afbeeldingsindex."
 #: ../contrib/src/xrc/xmlres.cpp:343
 #, c-format
 msgid "Invalid XRC resource '%s': doesn't have root node 'resource'."
-msgstr ""
+msgstr "Ongeldige XRC bron '%s': heeft geen top node 'bron'."
 
 #: ../src/common/appcmn.cpp:378
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid display mode specification '%s'."
-msgstr "Ongeldige bestandsspecificatie."
+msgstr "Ongeldige beeldscherm mode specificatie. '%s'."
 
 #: ../src/x11/app.cpp:231
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid geometry specification '%s'"
-msgstr "Ongeldige bestandsspecificatie."
+msgstr "Ongeldige geometrie specificatie '%s'"
 
 #: ../src/unix/snglinst.cpp:280
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid lock file '%s'."
-msgstr "kan bestand '%s' niet sluiten"
+msgstr "Ongeldig vergrendeld bestand '%s'."
 
 #: ../src/common/regex.cpp:173
 #, c-format
 msgid "Invalid regular expression '%s': %s"
-msgstr ""
+msgstr "Ongeldige reguliere expressie '%s': %s"
 
 #: ../src/generic/fontdlgg.cpp:227
 msgid "Italic"
@@ -1955,7 +1934,8 @@ msgstr "JPEG: kon afbeelding niet opslaan."
 msgid "KOI8-R"
 msgstr "KOI8-R"
 
-#: ../src/generic/prntdlgg.cpp:426 ../src/generic/prntdlgg.cpp:620
+#: ../src/generic/prntdlgg.cpp:426
+#: ../src/generic/prntdlgg.cpp:620
 msgid "Landscape"
 msgstr "Liggend"
 
@@ -1983,16 +1963,17 @@ msgstr "USA Letter, 8 1/2 x 11 inch"
 msgid "Light"
 msgstr "Licht"
 
-#: ../src/generic/filedlgg.cpp:1587 ../src/gtk/filedlg.cpp:249
-#: ../src/motif/filedlg.cpp:357 ../src/msw/filedlg.cpp:542
+#: ../src/generic/filedlgg.cpp:1587
+#: ../src/gtk/filedlg.cpp:249
+#: ../src/motif/filedlg.cpp:357
+#: ../src/msw/filedlg.cpp:542
 #, c-format
 msgid "Load %s file"
 msgstr "Laad %s-bestand"
 
 #: ../src/generic/filedlgg.cpp:1589
-#, fuzzy
 msgid "Load file"
-msgstr "Laad %s-bestand"
+msgstr "Laad bestand"
 
 #: ../src/html/htmlwin.cpp:282
 msgid "Loading : "
@@ -2000,13 +1981,11 @@ msgstr "Bezig met laden: "
 
 #: ../src/common/imagpnm.cpp:72
 msgid "Loading Grey Ascii PNM image is not yet implemented."
-msgstr ""
-"Laden van Ascii PNM-afbeelding met grijswaarden nog niet geïmplementeerd."
+msgstr "Laden van Ascii PNM-afbeelding met grijswaarden nog niet geïmplementeerd."
 
 #: ../src/common/imagpnm.cpp:75
 msgid "Loading Grey Raw PNM image is not yet implemented."
-msgstr ""
-"Laden van Raw PNM-afbeelding met grijswaarden nog niet geïmplementeerd."
+msgstr "Laden van Raw PNM-afbeelding met grijswaarden nog niet geïmplementeerd."
 
 #: ../src/generic/logg.cpp:554
 #, c-format
@@ -2018,17 +1997,12 @@ msgid "MDI child"
 msgstr "MDI subvenster"
 
 #: ../src/msw/helpchm.cpp:60
-#, fuzzy
-msgid ""
-"MS HTML Help functions are unavailable because the MS HTML Help library is "
-"not installed on this machine. Please install it."
-msgstr ""
-"Inbel-functies zijn niet beschikbaar omdat de inbelverbindingssoftware (RAS) "
-"niet op deze machine is geïnstalleerd. Installeer het a.u.b."
+msgid "MS HTML Help functions are unavailable because the MS HTML Help library is not installed on this machine. Please install it."
+msgstr "MS HTML Help functies zijn niet beschikbaar omdat de MS HTML Help bibliotheek niet op deze machine is geïnstalleerd. Installeer het a.u.b."
 
 #: ../src/univ/themes/win32.cpp:4545
 msgid "Ma&ximize"
-msgstr ""
+msgstr "Maximaliseren"
 
 #: ../src/unix/mimetype.cpp:2477
 #, c-format
@@ -2037,7 +2011,7 @@ msgstr "Mailcap-bestand %s, regel %d: incomplete ingang genegeerd."
 
 #: ../src/generic/fdrepdlg.cpp:152
 msgid "Match case"
-msgstr ""
+msgstr "Hoofdlettergevoelig"
 
 #: ../src/common/fs_mem.cpp:144
 #, c-format
@@ -2046,22 +2020,21 @@ msgstr "Geheugen VFS bevat al bestand '%s'!"
 
 #: ../src/univ/themes/metal.cpp:174
 msgid "Metal theme"
-msgstr ""
+msgstr "Metaal thema"
 
 #: ../src/univ/themes/win32.cpp:4543
 msgid "Mi&nimize"
-msgstr ""
+msgstr "Minimaliseren"
 
 #: ../src/unix/mimetype.cpp:2102
 #, c-format
 msgid "Mime.types file %s, line %d: unterminated quoted string."
-msgstr ""
-"Mime.types-bestand %s, regel %d: niet-afgesloten aangehaalde tekstregel."
+msgstr "Mime.types-bestand %s, regel %d: niet-afgesloten aangehaalde tekstregel."
 
 #: ../src/mgl/app.cpp:173
 #, c-format
 msgid "Mode %ix%i-%i not available."
-msgstr ""
+msgstr "Mode %ix%i-%i niet beschikbaar."
 
 #: ../src/generic/fontdlgg.cpp:222
 msgid "Modern"
@@ -2079,8 +2052,10 @@ msgstr "Meer..."
 msgid "Name"
 msgstr "Naam"
 
-#: ../src/generic/dirdlgg.cpp:272 ../src/generic/dirdlgg.cpp:282
-#: ../src/generic/filedlgg.cpp:812 ../src/generic/filedlgg.cpp:821
+#: ../src/generic/dirdlgg.cpp:272
+#: ../src/generic/dirdlgg.cpp:282
+#: ../src/generic/filedlgg.cpp:812
+#: ../src/generic/filedlgg.cpp:821
 msgid "NewName"
 msgstr "Nieuwe map"
 
@@ -2088,21 +2063,25 @@ msgstr "Nieuwe map"
 msgid "Next page"
 msgstr "Volgende pagina"
 
-#: ../src/common/dlgcmn.cpp:156 ../src/mac/msgdlg.cpp:78
+#: ../src/common/dlgcmn.cpp:156
+#: ../src/mac/msgdlg.cpp:78
 #: ../src/motif/msgdlg.cpp:182
 msgid "No"
 msgstr "Nee"
 
 #: ../src/common/image.cpp:793
 msgid "No Unused Color in image being masked"
-msgstr ""
+msgstr "Er wordt geen Ongebruikte Kleur in de afbeelding gemaskeerd"
 
-#: ../src/common/resourc2.cpp:814 ../src/common/resourc2.cpp:965
-#: ../src/common/resource.cpp:2471 ../src/common/resource.cpp:2625
+#: ../src/common/resourc2.cpp:814
+#: ../src/common/resourc2.cpp:965
+#: ../src/common/resource.cpp:2471
+#: ../src/common/resource.cpp:2625
 msgid "No XBM facility available!"
 msgstr "Geen XBM-faciliteit beschikbaar!"
 
-#: ../src/common/resourc2.cpp:983 ../src/common/resource.cpp:2643
+#: ../src/common/resourc2.cpp:983
+#: ../src/common/resource.cpp:2643
 msgid "No XPM icon facility available!"
 msgstr "Geen XPM-pictogramfaciliteit beschikbaar!"
 
@@ -2111,49 +2090,52 @@ msgid "No entries found."
 msgstr "Geen ingangen gevonden."
 
 #: ../src/common/fontmap.cpp:865
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "No font for displaying text in encoding '%s' found,\n"
 "but an alternative encoding '%s' is available.\n"
-"Do you want to use this encoding (otherwise you will have to choose another "
-"one)?"
+"Do you want to use this encoding (otherwise you will have to choose another one)?"
 msgstr ""
-"De codering '%s' is onbekend.\n"
-"Wilt u een lettertype selecteren voor deze codering\n"
-"(anders zal de tekst in deze codering niet correct weergegeven worden)?"
+"Er is geen lettertype gevonden voor het tonen van tekst in de encodering '%s',\n"
+"maar een alternatieve encodering '%s' is beschikbaar.\n"
+"Wilt U deze encodering gebruiken (Anders moet U een andere kiezen)?"
 
 #: ../src/common/fontmap.cpp:870
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "No font for displaying text in encoding '%s' found.\n"
 "Would you like to select a font to be used for this encoding\n"
 "(otherwise the text in this encoding will not be shown correctly)?"
 msgstr ""
-"De codering '%s' is onbekend.\n"
-"Wilt u een lettertype selecteren voor deze codering\n"
+"Geen lettertype voor het tonen van tekst in encodering '%s' gevonden.\n"
+"Wilt U een lettertype selecteren voor deze encodering\n"
 "(anders zal de tekst in deze codering niet correct weergegeven worden)?"
 
 #: ../contrib/src/xrc/xmlres.cpp:523
 #, c-format
 msgid "No handler found for XML node '%s', class '%s'!"
-msgstr ""
+msgstr "Geen handler gevonden voor XML node '%s', class '%s'!"
 
-#: ../src/common/image.cpp:1046 ../src/common/image.cpp:1089
+#: ../src/common/image.cpp:1046
+#: ../src/common/image.cpp:1089
 msgid "No handler found for image type."
 msgstr "Geen handler gevonden voor afbeeldingstype."
 
-#: ../src/common/image.cpp:1054 ../src/common/image.cpp:1097
+#: ../src/common/image.cpp:1054
+#: ../src/common/image.cpp:1097
 #: ../src/common/image.cpp:1131
 #, c-format
 msgid "No image handler for type %d defined."
 msgstr "Geen afbeeldingshandler voor het type %d gedefinieerd."
 
-#: ../src/common/image.cpp:1115 ../src/common/image.cpp:1147
+#: ../src/common/image.cpp:1115
+#: ../src/common/image.cpp:1147
 #, c-format
 msgid "No image handler for type %s defined."
 msgstr "Geen afbeeldingshandler voor het type %s gedefinieerd."
 
-#: ../src/html/helpfrm.cpp:650 ../src/html/htmlhelp.cpp:436
+#: ../src/html/helpfrm.cpp:650
+#: ../src/html/htmlhelp.cpp:436
 #: ../src/html/htmlhelp.cpp:441
 msgid "No matching page found yet"
 msgstr "Nog geen overeenkomende pagina gevonden"
@@ -2162,7 +2144,8 @@ msgstr "Nog geen overeenkomende pagina gevonden"
 msgid "Nordic (ISO-8859-10)"
 msgstr "Noors (ISO-8859-10)"
 
-#: ../src/generic/fontdlgg.cpp:226 ../src/generic/fontdlgg.cpp:229
+#: ../src/generic/fontdlgg.cpp:226
+#: ../src/generic/fontdlgg.cpp:229
 msgid "Normal"
 msgstr "Normaal"
 
@@ -2174,21 +2157,29 @@ msgstr "Normaal lettertype: "
 msgid "Note, 8 1/2 x 11 in"
 msgstr "Notitie, 8 1/2 x 11 inch"
 
-#: ../src/common/dlgcmn.cpp:162 ../src/generic/dirdlgg.cpp:151
-#: ../src/generic/filedlgg.cpp:1165 ../src/generic/filedlgg.cpp:1176
-#: ../src/generic/fontdlgg.cpp:253 ../src/generic/logg.cpp:739
-#: ../src/generic/prntdlgg.cpp:452 ../src/generic/proplist.cpp:499
-#: ../src/gtk/filedlg.cpp:167 ../src/gtk/fontdlg.cpp:136
+#: ../src/common/dlgcmn.cpp:162
+#: ../src/generic/dirdlgg.cpp:151
+#: ../src/generic/filedlgg.cpp:1165
+#: ../src/generic/filedlgg.cpp:1176
+#: ../src/generic/fontdlgg.cpp:253
+#: ../src/generic/logg.cpp:739
+#: ../src/generic/prntdlgg.cpp:452
+#: ../src/generic/proplist.cpp:499
+#: ../src/gtk/filedlg.cpp:167
+#: ../src/gtk/fontdlg.cpp:136
 #: ../src/html/helpfrm.cpp:972
 msgid "OK"
 msgstr "OK"
 
-#: ../src/html/helpfrm.cpp:528 ../src/html/helpfrm.cpp:1274
+#: ../src/html/helpfrm.cpp:528
+#: ../src/html/helpfrm.cpp:1274
 msgid "Open HTML document"
 msgstr "HTML-document openen"
 
-#: ../src/generic/dirctrlg.cpp:731 ../src/generic/dirdlgg.cpp:298
-#: ../src/generic/filedlgg.cpp:836 ../src/generic/filedlgg.cpp:960
+#: ../src/generic/dirctrlg.cpp:731
+#: ../src/generic/dirdlgg.cpp:298
+#: ../src/generic/filedlgg.cpp:836
+#: ../src/generic/filedlgg.cpp:960
 msgid "Operation not permitted."
 msgstr "Bewerking niet toegestaan."
 
@@ -2211,11 +2202,13 @@ msgstr "Optie '%s': '%s' kan niet naar een datum worden geconverteerd."
 msgid "Options"
 msgstr "Instellingen"
 
-#: ../src/generic/prntdlgg.cpp:428 ../src/generic/prntdlgg.cpp:621
+#: ../src/generic/prntdlgg.cpp:428
+#: ../src/generic/prntdlgg.cpp:621
 msgid "Orientation"
 msgstr "Oriëntatie"
 
-#: ../src/common/imagpcx.cpp:455 ../src/common/imagpcx.cpp:478
+#: ../src/common/imagpcx.cpp:455
+#: ../src/common/imagpcx.cpp:478
 msgid "PCX: couldn't allocate memory"
 msgstr "PCX: kon geen geheugen reserveren"
 
@@ -2231,7 +2224,8 @@ msgstr "PCX: ongeldige afbeelding"
 msgid "PCX: this is not a PCX file."
 msgstr "PCX: dit is geen PCX-bestand."
 
-#: ../src/common/imagpcx.cpp:457 ../src/common/imagpcx.cpp:479
+#: ../src/common/imagpcx.cpp:457
+#: ../src/common/imagpcx.cpp:479
 msgid "PCX: unknown error !!!"
 msgstr "PCX: onbekende fout!"
 
@@ -2269,12 +2263,14 @@ msgstr "Pagina-instellingen"
 msgid "Pages"
 msgstr "Pagina's"
 
-#: ../src/generic/prntdlgg.cpp:538 ../src/generic/prntdlgg.cpp:609
+#: ../src/generic/prntdlgg.cpp:538
+#: ../src/generic/prntdlgg.cpp:609
 #: ../src/generic/prntdlgg.cpp:794
 msgid "Paper Size"
 msgstr "Papierformaat"
 
-#: ../src/generic/prntdlgg.cpp:418 ../src/generic/prntdlgg.cpp:598
+#: ../src/generic/prntdlgg.cpp:418
+#: ../src/generic/prntdlgg.cpp:598
 #: ../src/generic/prntdlgg.cpp:790
 msgid "Paper size"
 msgstr "Papierformaat"
@@ -2291,7 +2287,8 @@ msgstr "Maken van pipe mislukt"
 msgid "Please choose a valid font."
 msgstr "Kies a.u.b. een geldig lettertype."
 
-#: ../src/generic/filedlgg.cpp:1372 ../src/gtk/filedlg.cpp:80
+#: ../src/generic/filedlgg.cpp:1372
+#: ../src/gtk/filedlg.cpp:80
 msgid "Please choose an existing file."
 msgstr "Kies a.u.b. een bestaand bestand."
 
@@ -2306,12 +2303,16 @@ msgid ""
 "(at least version 4.70 is required but you have %d.%02d)\n"
 "or this program won't operate correctly."
 msgstr ""
+"Installeer alstublieft een nieuwere versie van comctl32.dll\n"
+"(Tenminste versie 4.70 is vereist maar U heeft %d.%02d)\n"
+"anders kan dit programma niet correct functioneren."
 
 #: ../src/common/prntbase.cpp:112
 msgid "Please wait while printing\n"
-msgstr ""
+msgstr "Een ogenblik geduld alstublieft. Bezig met printen\n"
 
-#: ../src/generic/prntdlgg.cpp:425 ../src/generic/prntdlgg.cpp:619
+#: ../src/generic/prntdlgg.cpp:425
+#: ../src/generic/prntdlgg.cpp:619
 msgid "Portrait"
 msgstr "Staand"
 
@@ -2321,7 +2322,7 @@ msgstr "PostScript-bestand"
 
 #: ../src/html/htmlhelp.cpp:509
 msgid "Preparing help window..."
-msgstr ""
+msgstr "Help venster aan het voorbereiden..."
 
 #: ../src/html/helpfrm.cpp:964
 msgid "Preview:"
@@ -2331,7 +2332,8 @@ msgstr "Afdrukvoorbeeld:"
 msgid "Previous page"
 msgstr "Vorige pagina"
 
-#: ../src/generic/prntdlgg.cpp:110 ../src/generic/prntdlgg.cpp:124
+#: ../src/generic/prntdlgg.cpp:110
+#: ../src/generic/prntdlgg.cpp:124
 msgid "Print"
 msgstr "Afdrukken"
 
@@ -2339,7 +2341,8 @@ msgstr "Afdrukken"
 msgid "Print Preview"
 msgstr "Afdrukvoorbeeld"
 
-#: ../src/common/prntbase.cpp:782 ../src/common/prntbase.cpp:806
+#: ../src/common/prntbase.cpp:782
+#: ../src/common/prntbase.cpp:806
 msgid "Print Preview Failure"
 msgstr "Afdrukvoorbeeld mislukt"
 
@@ -2387,8 +2390,8 @@ msgstr "Printer-opties:"
 msgid "Printer..."
 msgstr "Printer..."
 
-#: ../src/common/prntbase.cpp:109 ../src/common/prntbase.cpp:154
-#, fuzzy
+#: ../src/common/prntbase.cpp:109
+#: ../src/common/prntbase.cpp:154
 msgid "Printing "
 msgstr "Bezig met afdrukken"
 
@@ -2417,7 +2420,8 @@ msgstr "Kwarto, 215 x 275 mm"
 msgid "Question"
 msgstr "Vraag"
 
-#: ../src/common/ffile.cpp:125 ../src/common/ffile.cpp:146
+#: ../src/common/ffile.cpp:125
+#: ../src/common/ffile.cpp:146
 #, c-format
 msgid "Read error on file '%s'"
 msgstr "Leesfout bij bestand '%s'"
@@ -2425,7 +2429,7 @@ msgstr "Leesfout bij bestand '%s'"
 #: ../contrib/src/xrc/xmlres.cpp:498
 #, c-format
 msgid "Referenced object node with ref=\"%s\" not found!"
-msgstr ""
+msgstr "Gerefereerd object node met ref=\"%s\" niet gevonden!"
 
 #: ../src/msw/registry.cpp:535
 #, c-format
@@ -2455,7 +2459,7 @@ msgstr "Registerwaarde '%s' bestaat al."
 
 #: ../src/msw/thread.cpp:246
 msgid "ReleaseMutex()"
-msgstr ""
+msgstr "ReleaseMutex()"
 
 #: ../src/generic/helphtml.cpp:334
 msgid "Relevant entries:"
@@ -2470,17 +2474,16 @@ msgid "Remove current page from bookmarks"
 msgstr "Verwijder huidige pagina uit favorieten"
 
 #: ../src/generic/fdrepdlg.cpp:177
-#, fuzzy
 msgid "Replace &all"
-msgstr "Bestand '%s' vervangen?"
+msgstr "Allemaal vervangen"
 
 #: ../src/generic/fdrepdlg.cpp:129
 msgid "Replace with:"
-msgstr ""
+msgstr "Vervangen met:"
 
 #: ../contrib/src/xrc/xmlres.cpp:360
 msgid "Resource files must have same version number!"
-msgstr ""
+msgstr "Bron bestanden moeten zelfde versie nummer hebben!"
 
 #: ../src/generic/prntdlgg.cpp:644
 msgid "Right margin (mm):"
@@ -2490,8 +2493,10 @@ msgstr "Rechtermarge (mm):"
 msgid "Roman"
 msgstr "Romein"
 
-#: ../src/generic/filedlgg.cpp:1602 ../src/gtk/filedlg.cpp:265
-#: ../src/motif/filedlg.cpp:359 ../src/msw/filedlg.cpp:544
+#: ../src/generic/filedlgg.cpp:1602
+#: ../src/gtk/filedlg.cpp:265
+#: ../src/motif/filedlg.cpp:359
+#: ../src/msw/filedlg.cpp:544
 #, c-format
 msgid "Save %s file"
 msgstr "Sla %s-bestand op"
@@ -2501,9 +2506,8 @@ msgid "Save as"
 msgstr "Opslaan als"
 
 #: ../src/generic/filedlgg.cpp:1604
-#, fuzzy
 msgid "Save file"
-msgstr "Sla %s-bestand op"
+msgstr "Bestand opslaan"
 
 #: ../src/generic/logg.cpp:487
 msgid "Save log contents to file"
@@ -2511,45 +2515,40 @@ msgstr "Sla log-gegevens op in bestand"
 
 #: ../src/mgl/window.cpp:132
 msgid "Screenshot captured: "
-msgstr ""
+msgstr "Screenshot opgeslagen:"
 
 #: ../src/generic/fontdlgg.cpp:223
 msgid "Script"
 msgstr "Schrift-letter"
 
-#: ../src/html/helpfrm.cpp:408 ../src/html/helpfrm.cpp:423
+#: ../src/html/helpfrm.cpp:408
+#: ../src/html/helpfrm.cpp:423
 #: ../src/html/htmlhelp.cpp:610
 msgid "Search"
 msgstr "Zoeken"
 
 #: ../src/html/helpfrm.cpp:410
-msgid ""
-"Search contents of help book(s) for all occurences of the text you typed "
-"above"
-msgstr ""
-"Zoek in inhoudsopgave van helpbestand(en) naar alle plaatsen waar de tekst "
-"die u boven heeft getypt voorkomt."
+msgid "Search contents of help book(s) for all occurences of the text you typed above"
+msgstr "Zoek in inhoudsopgave van helpbestand(en) naar alle plaatsen waar de tekst die u boven heeft getypt voorkomt."
 
 #: ../src/generic/fdrepdlg.cpp:158
-#, fuzzy
 msgid "Search direction"
-msgstr "Maak map"
+msgstr "Zoek richting"
 
 #: ../src/generic/fdrepdlg.cpp:117
-#, fuzzy
 msgid "Search for:"
-msgstr "Zoeken"
+msgstr "Zoeken naar:"
 
 #: ../src/html/helpfrm.cpp:789
 msgid "Search in all books"
 msgstr "Zoek in alle boeken"
 
 #: ../src/html/htmlhelp.cpp:593
-#, fuzzy
 msgid "Search!"
-msgstr "Zoeken"
+msgstr "Zoeken!"
 
-#: ../src/html/helpfrm.cpp:650 ../src/html/htmlhelp.cpp:383
+#: ../src/html/helpfrm.cpp:650
+#: ../src/html/htmlhelp.cpp:383
 #: ../src/html/htmlhelp.cpp:441
 msgid "Searching..."
 msgstr "Bezig met zoeken..."
@@ -2571,7 +2570,8 @@ msgstr "Selecteer een documentsjabloon"
 msgid "Select a document view"
 msgstr "Selecteer een documentweergave"
 
-#: ../src/common/docview.cpp:1405 ../src/common/docview.cpp:1456
+#: ../src/common/docview.cpp:1405
+#: ../src/common/docview.cpp:1456
 msgid "Select a file"
 msgstr "Selecteer een bestand"
 
@@ -2590,8 +2590,7 @@ msgstr "Instellingen..."
 
 #: ../src/msw/dialup.cpp:518
 msgid "Several active dialup connections found, choosing one randomly."
-msgstr ""
-"Meerdere actieve inbelverbindingen gevonden, willekeurige keuze gemaakt."
+msgstr "Meerdere actieve inbelverbindingen gevonden, willekeurige keuze gemaakt."
 
 #: ../src/html/helpfrm.cpp:364
 msgid "Show all"
@@ -2602,15 +2601,16 @@ msgid "Show all items in index"
 msgstr "Toon alle items in de index"
 
 #: ../src/generic/dirdlgg.cpp:135
-#, fuzzy
 msgid "Show hidden directories"
-msgstr "Toon verborgen bestanden"
+msgstr "Toon verborgen mappen"
 
-#: ../src/generic/filedlgg.cpp:1160 ../src/generic/filedlgg.cpp:1182
+#: ../src/generic/filedlgg.cpp:1160
+#: ../src/generic/filedlgg.cpp:1182
 msgid "Show hidden files"
 msgstr "Toon verborgen bestanden"
 
-#: ../src/html/helpfrm.cpp:501 ../src/html/htmlhelp.cpp:538
+#: ../src/html/helpfrm.cpp:501
+#: ../src/html/htmlhelp.cpp:538
 msgid "Show/hide navigation panel"
 msgstr "Toon/verberg navigatie-paneel"
 
@@ -2626,7 +2626,8 @@ msgstr "Schuin"
 msgid "Sorry, could not open this file for saving."
 msgstr "Sorry, kon dit bestand niet opslaan."
 
-#: ../src/common/docview.cpp:341 ../src/common/docview.cpp:354
+#: ../src/common/docview.cpp:341
+#: ../src/common/docview.cpp:354
 #: ../src/common/docview.cpp:1424
 msgid "Sorry, could not open this file."
 msgstr "Sorry, kon dit bestand niet openen."
@@ -2650,13 +2651,14 @@ msgstr "Status: "
 #: ../contrib/src/xrc/xmlres.cpp:558
 #, c-format
 msgid "Subclass '%s' not found for resource '%s', not subclassing!"
-msgstr ""
+msgstr "Subclass '%s' niet gevonden voor bron '%s', zal niet subclasseren!"
 
 #: ../src/generic/fontdlgg.cpp:224
 msgid "Swiss"
 msgstr "Schreefloos"
 
-#: ../src/common/imagtiff.cpp:204 ../src/common/imagtiff.cpp:215
+#: ../src/common/imagtiff.cpp:204
+#: ../src/common/imagtiff.cpp:215
 #: ../src/common/imagtiff.cpp:326
 msgid "TIFF: Couldn't allocate memory."
 msgstr "TIFF: kon geen geheugen reserveren."
@@ -2695,7 +2697,7 @@ msgstr "Thais (ISO-8859-11)"
 
 #: ../src/common/ftp.cpp:569
 msgid "The FTP server doesn't support passive mode."
-msgstr ""
+msgstr "De FTP server ondersteunt niet passieve mode."
 
 #: ../src/common/fontmap.cpp:630
 #, c-format
@@ -2714,28 +2716,23 @@ msgid "The clipboard format '%d' doesn't exist."
 msgstr "Het klembord-formaat '%d' bestaat niet."
 
 #: ../src/generic/dirdlgg.cpp:186
-#, fuzzy, c-format
-msgid ""
-"The directory '%s' does not exist\n"
+#, c-format
+msgid "The directory '%s' does not exist\n"
 "Create it now?"
-msgstr ""
-"\n"
-"bestaat niet\n"
+msgstr "De map '%s' bestaat niet\n"
 "Nu maken?"
 
 #: ../src/common/docview.cpp:1802
-#, fuzzy, c-format
-msgid ""
-"The file '%s' doesn't exist and couldn't be opened.\n"
+#, c-format
+msgid "The file '%s' doesn't exist and couldn't be opened.\n"
 "It has been removed from the most recently used files list."
-msgstr ""
-"Het bestand '%s' bestaat niet en kon niet geopend worden.\n"
-"Het is ook verwijderd van de lijst 'recente bestanden'."
+msgstr "Het bestand '%s' bestaat niet en kon niet geopend worden.\n"
+"Het is verwijderd van de lijst 'recente bestanden'."
 
 #: ../src/common/filename.cpp:896
 #, c-format
 msgid "The path '%s' contains too many \"..\"!"
-msgstr ""
+msgstr "Het pad '%s' bevat teveel \"..\"!"
 
 #: ../src/common/cmdline.cpp:845
 #, c-format
@@ -2753,37 +2750,24 @@ msgstr "De waarde voor de optie '%s' moet worden opgegeven/"
 
 #: ../src/msw/dialup.cpp:406
 #, c-format
-msgid ""
-"The version of remote access service (RAS) installed on this machine is "
-"tooold, please upgrade (the following required function is missing: %s)."
-msgstr ""
-"De versie van de inbelverbindingssoftware (RAS) op deze machine is te oud "
-"(de volgende benodigde functie ontbreekt: %s)."
+msgid "The version of remote access service (RAS) installed on this machine is tooold, please upgrade (the following required function is missing: %s)."
+msgstr "De versie van de inbelverbindingssoftware (RAS) op deze machine is te oud (de volgende benodigde functie ontbreekt: %s)."
 
 #: ../src/html/htmprint.cpp:545
-msgid ""
-"There was a problem during page setup: you may need to set a default printer."
-msgstr ""
+msgid "There was a problem during page setup: you may need to set a default printer."
+msgstr "Er was een probleem tijdens pagina-instellingen: U moet mogelijk een standaard printer instellen."
 
 #: ../src/msw/thread.cpp:1214
-msgid ""
-"Thread module initialization failed: can not store value in thread local "
-"storage"
-msgstr ""
-"Threadmodule-initialisatie mislukt: kan geen waarde opslaan in lokale "
-"thread-geheugenruimte."
+msgid "Thread module initialization failed: can not store value in thread local storage"
+msgstr "Threadmodule-initialisatie mislukt: kan geen waarde opslaan in lokale thread-geheugenruimte."
 
 #: ../src/unix/threadpsx.cpp:1568
 msgid "Thread module initialization failed: failed to create thread key"
 msgstr "Threadmodule-initialisatie mislukt: maken van thread-sleutel mislukt"
 
 #: ../src/msw/thread.cpp:1202
-msgid ""
-"Thread module initialization failed: impossible to allocate index in thread "
-"local storage"
-msgstr ""
-"Threadmodule-initialisatie mislukt: niet mogelijk een index te reserven in "
-"lokale thread-geheugenruimte."
+msgid "Thread module initialization failed: impossible to allocate index in thread local storage"
+msgstr "Threadmodule-initialisatie mislukt: niet mogelijk een index te reserven in lokale thread-geheugenruimte."
 
 #: ../src/unix/threadpsx.cpp:1076
 msgid "Thread priority setting is ignored."
@@ -2791,11 +2775,11 @@ msgstr "Thread-prioriteitsinstelling is genegeerd."
 
 #: ../src/msw/mdi.cpp:189
 msgid "Tile &Horizontally"
-msgstr ""
+msgstr "Onder elkaar"
 
 #: ../src/msw/mdi.cpp:190
 msgid "Tile &Vertically"
-msgstr ""
+msgstr "Naast elkaar"
 
 #: ../src/generic/filedlgg.cpp:701
 msgid "Time"
@@ -2820,9 +2804,7 @@ msgstr "Bovenmarge (mm):"
 #: ../src/common/fs_mem.cpp:202
 #, c-format
 msgid "Trying to remove file '%s' from memory VFS, but it is not loaded!"
-msgstr ""
-"Bezig met poging om bestand '%s' uit geheugen VFS te verwijderen, maar het "
-"is niet geladen!"
+msgstr "Bezig met poging om bestand '%s' uit geheugen VFS te verwijderen, maar het is niet geladen!"
 
 #: ../src/common/sckaddr.cpp:126
 msgid "Trying to solve a NULL hostname: giving up"
@@ -2845,16 +2827,26 @@ msgstr "Kan gevraagd HTML-document niet openen: %s"
 msgid "Underline"
 msgstr "Onderstreept"
 
-#: ../src/common/resourc2.cpp:305 ../src/common/resourc2.cpp:319
-#: ../src/common/resourc2.cpp:335 ../src/common/resourc2.cpp:349
-#: ../src/common/resourc2.cpp:1370 ../src/common/resourc2.cpp:1384
-#: ../src/common/resourc2.cpp:1400 ../src/common/resourc2.cpp:1414
-#: ../src/common/resource.cpp:1824 ../src/common/resource.cpp:1838
-#: ../src/common/resource.cpp:1855 ../src/common/resource.cpp:1869
-#: ../src/common/resource.cpp:1954 ../src/common/resource.cpp:1968
-#: ../src/common/resource.cpp:1984 ../src/common/resource.cpp:1998
-#: ../src/common/resource.cpp:3038 ../src/common/resource.cpp:3052
-#: ../src/common/resource.cpp:3069 ../src/common/resource.cpp:3083
+#: ../src/common/resourc2.cpp:305
+#: ../src/common/resourc2.cpp:319
+#: ../src/common/resourc2.cpp:335
+#: ../src/common/resourc2.cpp:349
+#: ../src/common/resourc2.cpp:1370
+#: ../src/common/resourc2.cpp:1384
+#: ../src/common/resourc2.cpp:1400
+#: ../src/common/resourc2.cpp:1414
+#: ../src/common/resource.cpp:1824
+#: ../src/common/resource.cpp:1838
+#: ../src/common/resource.cpp:1855
+#: ../src/common/resource.cpp:1869
+#: ../src/common/resource.cpp:1954
+#: ../src/common/resource.cpp:1968
+#: ../src/common/resource.cpp:1984
+#: ../src/common/resource.cpp:1998
+#: ../src/common/resource.cpp:3038
+#: ../src/common/resource.cpp:3052
+#: ../src/common/resource.cpp:3069
+#: ../src/common/resource.cpp:3083
 msgid "Unexpected end of file whilst parsing resource."
 msgstr "Onverwacht einde van bestand tijdens inlezen van bron."
 
@@ -2865,11 +2857,11 @@ msgstr "Onverwachte parameter '%s'"
 
 #: ../src/common/fontmap.cpp:141
 msgid "Unicode 7 bit (UTF-7)"
-msgstr ""
+msgstr "Unicode 7 bit (UTF-7)"
 
 #: ../src/common/fontmap.cpp:142
 msgid "Unicode 8 bit (UTF-8)"
-msgstr ""
+msgstr "Unicode 8 bit (UTF-8)"
 
 #: ../src/msw/dde.cpp:1020
 #, c-format
@@ -2891,31 +2883,35 @@ msgstr "Onbekend veld in bestand %s, regel %d: '%s''. "
 msgid "Unknown long option '%s'"
 msgstr "Onbekende lange optie '%s'"
 
-#: ../src/common/cmdline.cpp:573 ../src/common/cmdline.cpp:594
+#: ../src/common/cmdline.cpp:573
+#: ../src/common/cmdline.cpp:594
 #, c-format
 msgid "Unknown option '%s'"
 msgstr "Onbekende optie '%s'"
 
 #: ../contrib/src/xrc/xmlres.cpp:628
 msgid "Unknown style flag "
-msgstr ""
+msgstr "Onbekende stijl instelling"
 
 #: ../src/common/mimecmn.cpp:167
 #, c-format
 msgid "Unmatched '{' in an entry for mime type %s."
 msgstr "Niet-afgesloten '{' in ingang voor mime-type %s."
 
-#: ../src/common/cmdproc.cpp:238 ../src/common/cmdproc.cpp:254
+#: ../src/common/cmdproc.cpp:238
+#: ../src/common/cmdproc.cpp:254
 #: ../src/common/cmdproc.cpp:281
 msgid "Unnamed command"
 msgstr "Naamloze opdracht"
 
-#: ../src/common/resourc2.cpp:687 ../src/common/resource.cpp:2343
+#: ../src/common/resourc2.cpp:687
+#: ../src/common/resource.cpp:2343
 #, c-format
 msgid "Unrecognized style %s whilst parsing resource."
 msgstr "Niet-herkende stijl %s tijdens inlezen van bron."
 
-#: ../src/mac/clipbrd.cpp:58 ../src/msw/clipbrd.cpp:273
+#: ../src/mac/clipbrd.cpp:58
+#: ../src/msw/clipbrd.cpp:273
 #: ../src/msw/clipbrd.cpp:447
 msgid "Unsupported clipboard format."
 msgstr "Niet-ondersteund klembord-formaat."
@@ -2923,11 +2919,11 @@ msgstr "Niet-ondersteund klembord-formaat."
 #: ../src/common/appcmn.cpp:362
 #, c-format
 msgid "Unsupported theme '%s'."
-msgstr ""
+msgstr "Niet ondersteund thema '%s'."
 
 #: ../src/generic/fdrepdlg.cpp:157
 msgid "Up"
-msgstr ""
+msgstr "Omhoog"
 
 #: ../src/common/cmdline.cpp:901
 #, c-format
@@ -2954,7 +2950,8 @@ msgstr "Weergaven"
 msgid "Waiting for subprocess termination failed"
 msgstr "Wachten op beëindiging van subproces mislukt"
 
-#: ../src/common/docview.cpp:437 ../src/common/resource.cpp:124
+#: ../src/common/docview.cpp:437
+#: ../src/common/resource.cpp:124
 msgid "Warning"
 msgstr "Waarschuwing"
 
@@ -2964,21 +2961,17 @@ msgstr "Waarschuwing: "
 
 #: ../src/html/htmlpars.cpp:357
 msgid "Warning: attempt to remove HTML tag handler from empty stack."
-msgstr ""
-"Waarschuwing: poging om HTML tag handler van lege stack te verwijderen."
+msgstr "Waarschuwing: poging om HTML tag handler van lege stack te verwijderen."
 
 #: ../src/common/fontmap.cpp:112
-#, fuzzy
 msgid "Western European (ISO-8859-1)"
-msgstr "West-Europees (ISO-8859-1/Latin 1)"
+msgstr "West-Europees (ISO-8859-1)"
 
 #: ../src/common/fontmap.cpp:126
-#, fuzzy
 msgid "Western European with Euro (ISO-8859-15)"
-msgstr "West-Europees nieuw (ISO-8859-15/Latin 0)"
+msgstr "West-Europees met Euro teken (ISO-8859-15)"
 
 #: ../src/generic/fdrepdlg.cpp:149
-#, fuzzy
 msgid "Whole word"
 msgstr "Alleen hele woorden"
 
@@ -2988,7 +2981,7 @@ msgstr "Alleen hele woorden"
 
 #: ../src/univ/themes/win32.cpp:1168
 msgid "Win32 theme"
-msgstr ""
+msgstr "Win32 thema"
 
 #: ../src/msw/utils.cpp:979
 msgid "Win32s on Windows 3.1"
@@ -3012,18 +3005,16 @@ msgid "Windows Baltic (CP 1257)"
 msgstr "Windows Baltisch (CP 1257)"
 
 #: ../src/common/fontmap.cpp:132
-#, fuzzy
 msgid "Windows Central European (CP 1250)"
-msgstr "Windows Hebreeuws (CP 1255)"
+msgstr "Windows Centraal Europees (CP 1250)"
 
 #: ../src/common/fontmap.cpp:129
 msgid "Windows Chinese Simplified (CP 936)"
-msgstr ""
+msgstr "Windows Chinees Gesimplificeerd (CP 936)"
 
 #: ../src/common/fontmap.cpp:131
-#, fuzzy
 msgid "Windows Chinese Traditional (CP 950)"
-msgstr "Windows Latin 2 (CP 1250)"
+msgstr "Windows Traditioneel Chinees (CP 950)"
 
 #: ../src/common/fontmap.cpp:133
 msgid "Windows Cyrillic (CP 1251)"
@@ -3038,23 +3029,20 @@ msgid "Windows Hebrew (CP 1255)"
 msgstr "Windows Hebreeuws (CP 1255)"
 
 #: ../src/common/fontmap.cpp:128
-#, fuzzy
 msgid "Windows Japanese (CP 932)"
-msgstr "Windows Grieks (CP 1253)"
+msgstr "Windows Japans (CP 932)"
 
 #: ../src/common/fontmap.cpp:130
-#, fuzzy
 msgid "Windows Korean (CP 949)"
-msgstr "Windows Grieks (CP 1253)"
+msgstr "Windows Koreaans (CP 949)"
 
 #: ../src/common/fontmap.cpp:136
 msgid "Windows Turkish (CP 1254)"
 msgstr "Windows Turks (CP 1254)"
 
 #: ../src/common/fontmap.cpp:134
-#, fuzzy
 msgid "Windows Western European (CP 1252)"
-msgstr "Windows Latin 1 (CP 1252)"
+msgstr "Windows West Europees (CP 1252)"
 
 #: ../src/common/fontmap.cpp:140
 msgid "Windows/DOS OEM (CP 437)"
@@ -3068,37 +3056,41 @@ msgstr "Schrijffout bij bestand '%s'"
 #: ../contrib/src/xrc/xml.cpp:530
 #, c-format
 msgid "XML parsing error: '%s' at line %d"
-msgstr ""
+msgstr "XML ontleed fout: '%s' in lijn %d"
 
 #: ../src/common/xpmdecod.cpp:759
 msgid "XPM: Malformed pixel data!"
-msgstr ""
+msgstr "XPM: Misvormde pixel gegevens!"
 
-#: ../src/common/xpmdecod.cpp:709 ../src/common/xpmdecod.cpp:718
+#: ../src/common/xpmdecod.cpp:709
+#: ../src/common/xpmdecod.cpp:718
 #, c-format
 msgid "XPM: malformed colour definition '%s'!"
-msgstr ""
+msgstr "XPM: Misvormde kleur definitie '%s'!"
 
 #: ../contrib/src/xrc/xmlres.cpp:436
-#, fuzzy, c-format
+#, c-format
 msgid "XRC resource '%s' (class '%s') not found!"
-msgstr "Pictogram-bronspecificatie niet gevonden."
+msgstr "XRC bron '%s' (class '%s') niet gevonden!"
 
-#: ../contrib/src/xrc/xmlres.cpp:787 ../contrib/src/xrc/xmlres.cpp:798
+#: ../contrib/src/xrc/xmlres.cpp:787
+#: ../contrib/src/xrc/xmlres.cpp:798
 #, c-format
 msgid "XRC resource: Cannot create bitmap from '%s'."
-msgstr ""
+msgstr "XRC bron: Kan geen bitmap maken van '%s'."
 
-#: ../contrib/src/xrc/xh_dlg.cpp:52 ../contrib/src/xrc/xh_frame.cpp:57
+#: ../contrib/src/xrc/xh_dlg.cpp:52
+#: ../contrib/src/xrc/xh_frame.cpp:57
 msgid "XRC resource: Cannot create dialog without instance."
-msgstr ""
+msgstr "XRC bron: Kan geen dialoog maken zonder instantie."
 
 #: ../contrib/src/xrc/xmlres.cpp:747
 #, c-format
 msgid "XRC resource: Incorrect colour specification '%s' for property '%s'."
-msgstr ""
+msgstr "XRC bron: Ongeldige kleur specificatie '%s' voor eigenschap '%s'."
 
-#: ../src/common/dlgcmn.cpp:151 ../src/mac/msgdlg.cpp:77
+#: ../src/common/dlgcmn.cpp:151
+#: ../src/mac/msgdlg.cpp:77
 #: ../src/motif/msgdlg.cpp:182
 msgid "Yes"
 msgstr "Ja"
@@ -3107,9 +3099,10 @@ msgstr "Ja"
 msgid "You cannot add a new directory to this section."
 msgstr "U kunt geen nieuwe map aan deze sectie toevoegen."
 
-#: ../src/common/fs_zip.cpp:86 ../src/common/fs_zip.cpp:123
+#: ../src/common/fs_zip.cpp:86
+#: ../src/common/fs_zip.cpp:123
 msgid "ZIP handler currently supports only local files!"
-msgstr ""
+msgstr "ZIP handler ondersteunt momenteel alleen lokale bestanden!"
 
 #: ../src/common/docview.cpp:1951
 msgid "[EMPTY]"
@@ -3117,19 +3110,14 @@ msgstr "[LEEG]"
 
 #: ../src/msw/dde.cpp:987
 msgid "a DDEML application has created a prolonged race condition."
-msgstr ""
-"een DDEML-applicatie heeft door een 'race'-conditie geheugengebrek "
-"veroorzaakt."
+msgstr "een DDEML-applicatie heeft door een 'race'-conditie geheugengebrek veroorzaakt."
 
 #: ../src/msw/dde.cpp:975
 msgid ""
-"a DDEML function was called without first calling the DdeInitialize "
-"function,\n"
+"a DDEML function was called without first calling the DdeInitialize function,\n"
 "or an invalid instance identifier\n"
 "was passed to a DDEML function."
-msgstr ""
-"een DDEML-functie was aangeroepen zonder eerst de DdeInitialize-functie aan "
-"te roepen\n"
+msgstr "een DDEML-functie was aangeroepen zonder eerst de DdeInitialize-functie aan te roepen\n"
 "of een ongeldige applicatie-pid was doorgegeven aan een DDEML-functie."
 
 #: ../src/msw/dde.cpp:993
@@ -3146,30 +3134,23 @@ msgstr "een parameter kon niet door de DDEML gevalideerd worden."
 
 #: ../src/msw/dde.cpp:966
 msgid "a request for a synchronous advise transaction has timed out."
-msgstr ""
-"aanvraag voor synchrone advies-transactie heeft een time-out veroorzaakt."
+msgstr "aanvraag voor synchrone advies-transactie heeft een time-out veroorzaakt."
 
 #: ../src/msw/dde.cpp:972
 msgid "a request for a synchronous data transaction has timed out."
-msgstr ""
-"aanvraag voor synchrone gegevens-transactie heeft een time-out veroorzaakt."
+msgstr "aanvraag voor synchrone gegevens-transactie heeft een time-out veroorzaakt."
 
 #: ../src/msw/dde.cpp:981
 msgid "a request for a synchronous execute transaction has timed out."
-msgstr ""
-"aanvraag voor synchrone uitvoerings-transactie heeft een time-out "
-"veroorzaakt."
+msgstr "aanvraag voor synchrone uitvoerings-transactie heeft een time-out veroorzaakt."
 
 #: ../src/msw/dde.cpp:999
 msgid "a request for a synchronous poke transaction has timed out."
-msgstr ""
-"aanvraag voor synchrone 'poke'-transactie heeft een time-out veroorzaakt."
+msgstr "aanvraag voor synchrone 'poke'-transactie heeft een time-out veroorzaakt."
 
 #: ../src/msw/dde.cpp:1014
 msgid "a request to end an advise transaction has timed out."
-msgstr ""
-"aanvraag voor beëindigen  van advies-transactie heeft een time-out "
-"veroorzaakt."
+msgstr "aanvraag voor beëindigen  van advies-transactie heeft een time-out veroorzaakt."
 
 #: ../src/msw/dde.cpp:1008
 msgid ""
@@ -3197,8 +3178,7 @@ msgid ""
 "attempted to perform server transactions."
 msgstr ""
 "een applicatie die als APPCLASS_MONITOR is gestart heeft geprobeerd\n"
-"een DDE-transactie uit te voeren of een applicatie die als APPCMD_CLIENTONLY "
-"is\n"
+"een DDE-transactie uit te voeren of een applicatie die als APPCMD_CLIENTONLY is\n"
 "gestart heeft geprobeerd een server-transactie uit te voeren."
 
 #: ../src/msw/dde.cpp:1002
@@ -3226,17 +3206,15 @@ msgstr "poging tot wijzigen van onveranderbare sleutel '%s' genegeerd."
 
 #: ../src/common/ftp.cpp:369
 msgid "binary"
-msgstr ""
+msgstr "binair"
 
 #: ../src/common/fontcmn.cpp:518
-#, fuzzy
 msgid "bold"
-msgstr "Vet"
+msgstr "vet"
 
 #: ../src/common/fontcmn.cpp:442
-#, fuzzy
 msgid "bold "
-msgstr "Vet"
+msgstr "vet"
 
 #: ../src/common/ffile.cpp:93
 #, c-format
@@ -3266,8 +3244,7 @@ msgstr "kan bestand met gebruikersinstellingen '%s' niet wissen"
 #: ../src/common/file.cpp:454
 #, c-format
 msgid "can't determine if the end of file is reached on descriptor %d"
-msgstr ""
-"kan niet bepalen of bestandseinde is bereikt bij bestandsbeschrijving %d"
+msgstr "kan niet bepalen of bestandseinde is bereikt bij bestandsbeschrijving %d"
 
 #: ../src/common/file.cpp:420
 #, c-format
@@ -3292,7 +3269,8 @@ msgstr "kan zoekpositie niet verkrijgen bij bestandsbeschrijving %d"
 msgid "can't load any font, aborting"
 msgstr "kan geen lettertype laden, wordt afgebroken"
 
-#: ../src/common/ffile.cpp:77 ../src/common/file.cpp:257
+#: ../src/common/ffile.cpp:77
+#: ../src/common/file.cpp:257
 #, c-format
 msgid "can't open file '%s'"
 msgstr "kan bestand '%s'niet openen"
@@ -3332,9 +3310,9 @@ msgid "can't seek on file descriptor %d"
 msgstr "kan niet zoeken bij bestandsbeschrijving %d"
 
 #: ../src/common/textfile.cpp:196
-#, fuzzy, c-format
+#, c-format
 msgid "can't write buffer '%s' to disk."
-msgstr "kan bestand '%s' niet naar schijf schrijven."
+msgstr "kan buffer '%s' niet naar schijf schrijven."
 
 #: ../src/common/file.cpp:319
 #, c-format
@@ -3359,9 +3337,8 @@ msgid "date"
 msgstr "datum"
 
 #: ../src/common/fontmap.cpp:413
-#, fuzzy
 msgid "default"
-msgstr "alt"
+msgstr "standaard"
 
 #: ../src/common/datetime.cpp:3237
 msgid "eighteenth"
@@ -3410,14 +3387,12 @@ msgstr "bestand '%s', regel %d: '=' verwacht."
 #: ../src/common/fileconf.cpp:667
 #, c-format
 msgid "file '%s', line %d: key '%s' was first found at line %d."
-msgstr ""
-"bestand '%s', regel %d: sleutel '%s' voor het eerst gevonden op regel %d."
+msgstr "bestand '%s', regel %d: sleutel '%s' voor het eerst gevonden op regel %d."
 
 #: ../src/common/fileconf.cpp:657
 #, c-format
 msgid "file '%s', line %d: value for immutable key '%s' ignored."
-msgstr ""
-"bestand '%s', regel %d: waarde voor onveranderbare sleutel '%s' genegeerd."
+msgstr "bestand '%s', regel %d: waarde voor onveranderbare sleutel '%s' genegeerd."
 
 #: ../src/common/fileconf.cpp:580
 #, c-format
@@ -3438,7 +3413,7 @@ msgstr "vierde"
 
 #: ../src/common/appcmn.cpp:301
 msgid "generate verbose log messages"
-msgstr ""
+msgstr "genereer uitgebreide log meldingen"
 
 #: ../src/common/timercmn.cpp:282
 msgid "gmtime() failed"
@@ -3456,24 +3431,22 @@ msgstr "ongeldige eof() return-waarde."
 msgid "invalid message box return value"
 msgstr "ongeldige return-waarde van berichtvenster"
 
-#: ../src/common/fontcmn.cpp:458 ../src/common/fontcmn.cpp:522
-#, fuzzy
+#: ../src/common/fontcmn.cpp:458
+#: ../src/common/fontcmn.cpp:522
 msgid "italic"
-msgstr "Cursief"
+msgstr "cursief"
 
 #: ../src/html/helpfrm.cpp:935
 msgid "large"
 msgstr "groot"
 
 #: ../src/common/fontcmn.cpp:514
-#, fuzzy
 msgid "light"
-msgstr "Licht"
+msgstr "licht"
 
 #: ../src/common/fontcmn.cpp:438
-#, fuzzy
 msgid "light "
-msgstr "Licht"
+msgstr "licht"
 
 #: ../src/common/intl.cpp:615
 #, c-format
@@ -3507,9 +3480,10 @@ msgstr "negende"
 
 #: ../src/msw/dde.cpp:962
 msgid "no DDE error."
-msgstr "geen DDE-fout"
+msgstr "geen DDE-fout."
 
-#: ../src/html/helpdata.cpp:561 ../src/html/htmlhelp.cpp:201
+#: ../src/html/helpdata.cpp:561
+#: ../src/html/htmlhelp.cpp:201
 msgid "noname"
 msgstr "naamloos"
 
@@ -3523,7 +3497,7 @@ msgstr "num"
 
 #: ../src/common/filename.cpp:162
 msgid "reading"
-msgstr ""
+msgstr "aan het lezeen"
 
 #: ../src/msw/dde.cpp:1005
 msgid "reentrancy problem."
@@ -3547,7 +3521,7 @@ msgstr "shift"
 
 #: ../src/common/appcmn.cpp:291
 msgid "show this help message"
-msgstr ""
+msgstr "Toon deze help boodschap"
 
 #: ../src/common/datetime.cpp:3235
 msgid "sixteenth"
@@ -3563,11 +3537,11 @@ msgstr "klein"
 
 #: ../src/common/appcmn.cpp:326
 msgid "specify display mode to use (e.g. 640x480-16)"
-msgstr ""
+msgstr "Kies de te gebruiken beeldscherm mode (B.V. 640x480-16)"
 
 #: ../src/common/appcmn.cpp:312
 msgid "specify the theme to use"
-msgstr ""
+msgstr "Kies het te gebruiken thema"
 
 #: ../src/common/cmdline.cpp:1032
 msgid "str"
@@ -3606,14 +3580,12 @@ msgid "twentieth"
 msgstr "twintigste"
 
 #: ../src/common/fontcmn.cpp:510
-#, fuzzy
 msgid "underlined"
-msgstr "Onderstreept"
+msgstr "onderstreept"
 
 #: ../src/common/fontcmn.cpp:425
-#, fuzzy
 msgid "underlined "
-msgstr "Onderstreept"
+msgstr "onderstreept"
 
 #: ../src/common/fileconf.cpp:1684
 #, c-format
@@ -3625,9 +3597,8 @@ msgid "unknown"
 msgstr "onbekend"
 
 #: ../src/common/regex.cpp:144
-#, fuzzy
 msgid "unknown error"
-msgstr "GIF: onbekende fout!"
+msgstr "onbekende fout"
 
 #: ../src/msw/dialup.cpp:445
 #, c-format
@@ -3666,19 +3637,18 @@ msgid "very small"
 msgstr "zeer klein"
 
 #: ../src/common/filename.cpp:162
-#, fuzzy
 msgid "writing"
-msgstr "Bezig met afdrukken"
+msgstr "bezig met schrijven"
 
 #: ../src/common/dynlib.cpp:336
 #, c-format
 msgid "wxDllLoader failed to GetSymbol '%s'"
-msgstr ""
+msgstr "wxDLLLoader kon niet GetSymbol '%s' verkrijgen"
 
 #: ../src/common/dynload.cpp:278
 #, c-format
 msgid "wxDynamicLibrary failed to GetSymbol '%s'"
-msgstr ""
+msgstr "wxDynamicLoader kon niet GetSymbol '%s' verkrijgen"
 
 #: ../src/common/timercmn.cpp:327
 msgid "wxGetTimeOfDay failed."
@@ -3686,9 +3656,10 @@ msgstr "wxGetTimeOfDay mislukt."
 
 #: ../src/html/search.cpp:49
 msgid "wxSearchEngine::LookFor must be called before scanning!"
-msgstr ""
+msgstr "wxSearchEngine::LookFor moet aangeroepen worden voor het scannen!"
 
-#: ../src/common/socket.cpp:394 ../src/common/socket.cpp:448
+#: ../src/common/socket.cpp:394
+#: ../src/common/socket.cpp:448
 msgid "wxSocket: invalid signature in ReadMsg."
 msgstr "wxSocket: ongeldige handtekening in ReadMsg."
 
@@ -3702,214 +3673,10 @@ msgid "wxWindows could not open display for '%s': exiting."
 msgstr "wxWindows kon beeldscherm niet openen voor '%s': afbreken."
 
 #: ../src/x11/app.cpp:265
-#, fuzzy
 msgid "wxWindows could not open display. Exiting."
-msgstr "wxWindows kon beeldscherm niet openen voor '%s': afbreken."
+msgstr "wxWindows kon beeldscherm niet openen. Afbreken."
 
 #: ../src/common/datetime.cpp:3065
 msgid "yesterday"
 msgstr "gisteren"
 
-#, fuzzy
-#~ msgid "All files (*.*)|*.*"
-#~ msgstr "Alle bestanden (*)|*"
-
-#~ msgid "Can not create mutex"
-#~ msgstr "Kan geen mutex maken"
-
-#~ msgid "Can't create the inter-process read pipe"
-#~ msgstr "Kan geen 'inter-process read pipe' maken"
-
-#~ msgid "Can't create the inter-process write pipe"
-#~ msgstr "Kan geen 'inter-process write pipe' maken"
-
-#~ msgid "Couldn't acquire a mutex lock"
-#~ msgstr "Kon geen mutex-lock verkrijgen"
-
-#~ msgid "Couldn't release a mutex"
-#~ msgstr "Kon mutex niet vrijgeven"
-
-#~ msgid "Font"
-#~ msgstr "Lettertype"
-
-#~ msgid "PostScript"
-#~ msgstr "PostScript"
-
-#~ msgid "PostScript:"
-#~ msgstr "PostScript:"
-
-#~ msgid "Preview Only"
-#~ msgstr "Alleen afdrukvoorbeeld"
-
-#~ msgid "Printer Command: "
-#~ msgstr "Printercommando: "
-
-#~ msgid "Printer Options: "
-#~ msgstr "Printer-opties: "
-
-#~ msgid "Printer Settings"
-#~ msgstr "Printer-instellingen"
-
-#~ msgid "Send to Printer"
-#~ msgstr "Stuur naar printer"
-
-#, fuzzy
-#~ msgid "SetPixelFormat failed."
-#~ msgstr "Maken van pipe mislukt"
-
-#~ msgid "X Scaling"
-#~ msgstr "X-vergroting"
-
-#~ msgid "X Translation"
-#~ msgstr "X-verplaatsing"
-
-#~ msgid "Y Scaling"
-#~ msgstr "Y-vergroting"
-
-#~ msgid "Y Translation"
-#~ msgstr "Y-verplaatsing"
-
-#, fuzzy
-#~ msgid "unknown line terminator"
-#~ msgstr "onbekend zoek-startpunt"
-
-#, fuzzy
-#~ msgid "Fatal Error"
-#~ msgstr "Fatale fout"
-
-#, fuzzy
-#~ msgid "Fatal error: %s\n"
-#~ msgstr "Fatale fout: "
-
-#~ msgid "Back"
-#~ msgstr "Terug"
-
-#~ msgid "Can not create event object."
-#~ msgstr "Kan geen event-object maken."
-
-#~ msgid "Can't find the serialization object '%s' for the object '%s'."
-#~ msgstr "Kan serialisatie-object '%s' voor object '%s' niet vinden."
-
-#~ msgid "Can't load wxSerial dynamic library."
-#~ msgstr "Kan dynamische bibliotheek wxSerial niet laden."
-
-#~ msgid "Connection to wxHelp timed out in %d seconds"
-#~ msgstr "Verbinding met wxHelp heeft na %d seconden een time-out veroorzaakt"
-
-#~ msgid "Etcetera"
-#~ msgstr "Etcetera"
-
-#, fuzzy
-#~ msgid "ICO: Error calculating size of DIB ."
-#~ msgstr "TIFF: fout bij lezen van afbeelding."
-
-#, fuzzy
-#~ msgid "ICO: Error calculating size of Mask DIB ."
-#~ msgstr "TIFF: fout bij lezen van afbeelding."
-
-#, fuzzy
-#~ msgid "ICO: Error calculating size of XOR DIB ."
-#~ msgstr "TIFF: fout bij lezen van afbeelding."
-
-#, fuzzy
-#~ msgid "ICO: Error writing ICONDIR header."
-#~ msgstr "TIFF: fout bij schrijven van afbeelding."
-
-#, fuzzy
-#~ msgid "ICO: Error writing ICONDIRENTRY header."
-#~ msgstr "TIFF: fout bij schrijven van afbeelding."
-
-#, fuzzy
-#~ msgid "ICO: Error writing Mask DIB ."
-#~ msgstr "TIFF: fout bij lezen van afbeelding."
-
-#, fuzzy
-#~ msgid "ICO: Error writing XOR DIB ."
-#~ msgstr "TIFF: fout bij lezen van afbeelding."
-
-#~ msgid "Incorrect version of HTML help book"
-#~ msgstr "Verkeerde versie van HTML-help"
-
-#, fuzzy
-#~ msgid "Loading DIB : Couldn't allocate memory."
-#~ msgstr "BMP: kon geen geheugen reserveren"
-
-#~ msgid "Mounted Devices"
-#~ msgstr "Gekoppelde apparaten"
-
-#~ msgid "My Harddisk"
-#~ msgstr "Mijn harde schijf"
-
-#~ msgid "My Home"
-#~ msgstr "Mijn basismap"
-
-#~ msgid "New..."
-#~ msgstr "Nieuw..."
-
-#~ msgid "Please wait..."
-#~ msgstr "Even geduld a.u.b...."
-
-#~ msgid "Temporary"
-#~ msgstr "Tijdelijk"
-
-#~ msgid "The Computer"
-#~ msgstr "Deze computer"
-
-#~ msgid "The directory "
-#~ msgstr "De map"
-
-#~ msgid "User"
-#~ msgstr "Gebruiker"
-
-#~ msgid "User Local"
-#~ msgstr "Lokale gebruiker"
-
-#~ msgid "Variables"
-#~ msgstr "Variabelen"
-
-#~ msgid "Window"
-#~ msgstr "Venster"
-
-#, fuzzy
-#~ msgid "centered"
-#~ msgstr "Etcetera"
-
-#, fuzzy
-#~ msgid "Unknown digit value"
-#~ msgstr "Onbekende codering (%d)"
-
-#~ msgid "Replace file '%s'?"
-#~ msgstr "Bestand '%s' vervangen?"
-
-#~ msgid "wxWindows: error finding temporary file name.\n"
-#~ msgstr "wxWindows: fout bij zoeken van tijdelijke bestandsnaam.\n"
-
-#~ msgid ""
-#~ "Can't create window of class %s!\n"
-#~ "Possible Windows 3.x compatibility problem?"
-#~ msgstr ""
-#~ "Kan geen venster van type %s maken!\n"
-#~ "Mogelijk Windows 3.x compatibiliteitsprobleem?"
-
-#, fuzzy
-#~ msgid ""
-#~ "Can't find dialog template '%s'!\n"
-#~ "Check resource include path for finding wx.rc."
-#~ msgstr ""
-#~ "Kan lege dialoogsjabloon niet vinden!\n"
-#~ "Kijn resource include-pad na voor wx.rc."
-
-#~ msgid "Couldn't launch DDE server '%s'."
-#~ msgstr "Kon DDE-server '%s' niet starten."
-
-#~ msgid "Cyrillic (Latin 5)"
-#~ msgstr "Cyrillisch (Latin 5)"
-
-#~ msgid "No XPM facility available!"
-#~ msgstr "Geen XPM-faciliteit beschikbaar!"
-
-#~ msgid "ISO-8859-12"
-#~ msgstr "ISO-8859-12"
-
-#~ msgid "ISO-8859-14"
-#~ msgstr "ISO-8859-14"
diff --git a/locale/ru.po b/locale/ru.po
index d2585d04be..ad7bf08ef6 100644
--- a/locale/ru.po
+++ b/locale/ru.po
@@ -872,7 +872,7 @@ msgstr "
 
 #: ../src/common/strconv.cpp:596
 #, c-format
-msgid "Convertion to charset '%s' doesn't work."
+msgid "Conversion to charset '%s' doesn't work."
 msgstr ""
 
 #: ../src/generic/prntdlgg.cpp:193
diff --git a/locale/sl.po b/locale/sl.po
index 67f706b912..b63fe5ecaf 100644
--- a/locale/sl.po
+++ b/locale/sl.po
@@ -1156,7 +1156,7 @@ msgstr "Vsebina"
 
 #: ../src/common/strconv.cpp:596
 #, c-format
-msgid "Convertion to charset '%s' doesn't work."
+msgid "Conversion to charset '%s' doesn't work."
 msgstr ""
 
 # generic/prntdlgg.cpp:196
diff --git a/locale/sv.po b/locale/sv.po
index 44662fd099..3880b1d393 100644
--- a/locale/sv.po
+++ b/locale/sv.po
@@ -884,7 +884,7 @@ msgstr "Inneh
 
 #: ../src/common/strconv.cpp:596
 #, c-format
-msgid "Convertion to charset '%s' doesn't work."
+msgid "Conversion to charset '%s' doesn't work."
 msgstr "Konvertering till teckenuppsättning \"%s\" fungerar inte."
 
 #: ../src/generic/prntdlgg.cpp:193
diff --git a/locale/tr.po b/locale/tr.po
index e93873688e..ca87aa573e 100644
--- a/locale/tr.po
+++ b/locale/tr.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: wxWindows 2.3.3\n"
 "POT-Creation-Date: 2001-12-17 16:47+0100\n"
-"PO-Revision-Date: 2002-09-09 18:07--800\n"
+"PO-Revision-Date: 2002-09-16 17:41--800\n"
 "Last-Translator: Hakki Dogusan <dogusanh@tr.net>\n"
 "Language-Team: Hakki Dogusan <dogusanh@tr.net>\n"
 "MIME-Version: 1.0\n"
@@ -893,7 +893,7 @@ msgstr "
 
 #: ../src/common/strconv.cpp:608
 #, c-format
-msgid "Convertion to charset '%s' doesn't work."
+msgid "Conversion to charset '%s' doesn't work."
 msgstr "'%s' karakter kümesine dönüþüm çalýþmýyor."
 
 #: ../src/generic/prntdlgg.cpp:194
@@ -1295,7 +1295,7 @@ msgstr "Ge
 #: ../src/msw/dde.cpp:401
 #, c-format
 msgid "Failed to create connection to server '%s' on topic '%s'"
-msgstr "'%s' merkezine '%s' konusunda baðlantý kurulamadý"
+msgstr "'%s' sunucusuna '%s' konusunda baðlantý kurulamadý"
 
 #: ../src/generic/dirctrlg.cpp:1302
 #: ../src/generic/dirdlgg.cpp:543
@@ -1324,7 +1324,7 @@ msgstr "Pano temizlenemedi."
 
 #: ../src/msw/dde.cpp:606
 msgid "Failed to establish an advise loop with DDE server"
-msgstr "DDE merkeziyle danýþma döngüsü saðlanamadý"
+msgstr "DDE sunucusuyla danýþma döngüsü saðlanamadý"
 
 #: ../src/msw/dialup.cpp:646
 #, c-format
@@ -1456,7 +1456,7 @@ msgstr "Alt i
 #: ../src/msw/dde.cpp:285
 #, c-format
 msgid "Failed to register DDE server '%s'"
-msgstr "'%s' DDE merkezine kaydolunamadý"
+msgstr "'%s' DDE sunucusuna kaydolunamadý"
 
 #: ../src/common/fontmap.cpp:654
 #, c-format
@@ -1533,7 +1533,7 @@ msgstr "
 
 #: ../src/msw/dde.cpp:625
 msgid "Failed to terminate the advise loop with DDE server"
-msgstr "DDE merkeziyle danýþma döngüsü sonlandýrýlamadý"
+msgstr "DDE sunucusuyla danýþma döngüsü sonlandýrýlamadý"
 
 #: ../src/msw/dialup.cpp:948
 #, c-format
@@ -1553,7 +1553,7 @@ msgstr "'%s' kilit dosyas
 #: ../src/msw/dde.cpp:301
 #, c-format
 msgid "Failed to unregister DDE server '%s'"
-msgstr "'%s' DDE merkeziyle kayýt iptali yapýlamadý"
+msgstr "'%s' DDE sunucusuyla kayýt iptali yapýlamadý"
 
 #: ../src/unix/snglinst.cpp:174
 #, c-format
@@ -2669,7 +2669,7 @@ msgstr "Bilgisayar"
 
 #: ../src/common/ftp.cpp:569
 msgid "The FTP server doesn't support passive mode."
-msgstr "FTP merkezi pasif durumu desteklemiyor."
+msgstr "FTP sunucusu pasif durumu desteklemiyor."
 
 #: ../src/common/fontmap.cpp:610
 #, c-format
@@ -3166,7 +3166,7 @@ msgid ""
 "terminated before completing a transaction."
 msgstr ""
 "istemci tarafýndan sonlandýrýlmýþ bir görüþme üstünde\n"
-"merkez-tarafý iþ denendi, veya merkez\n"
+"sunucu-tarafý iþ denendi, veya sunucu\n"
 "iþ bitmeden sonlandýrýldý."
 
 #: ../src/msw/dde.cpp:996
@@ -3187,7 +3187,7 @@ msgstr ""
 "APPCLASS_MONITOR olarak baþlatýlmýþ bir uygulama\n"
 "DDE iþi gerçekleþtirmeyi denedi,\n"
 "veya APPCMD_CLIENTONLY olarak baþlatýlmýþ bir uygulama\n"
-"merkez iþi gerçekleþtirmeyi denedi."
+"sunucu iþi gerçekleþtirmeyi denedi."
 
 #: ../src/msw/dde.cpp:1002
 msgid "an internal call to the PostMessage function has failed. "
diff --git a/locale/wxstd.po b/locale/wxstd.po
index f714ae8909..d9be341542 100644
--- a/locale/wxstd.po
+++ b/locale/wxstd.po
@@ -855,7 +855,7 @@ msgstr ""
 
 #: ../src/common/strconv.cpp:596
 #, c-format
-msgid "Convertion to charset '%s' doesn't work."
+msgid "Conversion to charset '%s' doesn't work."
 msgstr ""
 
 #: ../src/generic/prntdlgg.cpp:193
diff --git a/locale/zh.po b/locale/zh.po
index 4f43f92c28..c18b75e08f 100644
--- a/locale/zh.po
+++ b/locale/zh.po
@@ -880,7 +880,7 @@ msgstr "Ä¿Â¼"
 
 #: ../src/common/strconv.cpp:596
 #, c-format
-msgid "Convertion to charset '%s' doesn't work."
+msgid "Conversion to charset '%s' doesn't work."
 msgstr ""
 
 #: ../src/generic/prntdlgg.cpp:193
diff --git a/misc/languages/langtabl.txt b/misc/languages/langtabl.txt
index d7c084ddf0..a8dd6d6429 100644
--- a/misc/languages/langtabl.txt
+++ b/misc/languages/langtabl.txt
@@ -45,7 +45,7 @@ wxLANGUAGE_CHINESE_TRADITIONAL         zh_CN  LANG_CHINESE     SUBLANG_CHINESE_T
 wxLANGUAGE_CHINESE_HONGKONG            zh_HK  LANG_CHINESE     SUBLANG_CHINESE_HONGKONG            "Chinese (Hongkong)"
 wxLANGUAGE_CHINESE_MACAU               zh_MO  LANG_CHINESE     SUBLANG_CHINESE_MACAU               "Chinese (Macau)"
 wxLANGUAGE_CHINESE_SINGAPORE           zh_SG  LANG_CHINESE     SUBLANG_CHINESE_SINGAPORE           "Chinese (Singapore)"
-wxLANGUAGE_CHINESE_TAIWAN              zh_TW  -                -                                   "Chinese (Taiwan)"
+wxLANGUAGE_CHINESE_TAIWAN              zh_TW  LANG_CHINESE     SUBLANG_CHINESE_TRADITIONAL         "Chinese (Taiwan)"
 wxLANGUAGE_CORSICAN                    co     -                -                                   "Corsican"
 wxLANGUAGE_CROATIAN                    hr_HR  LANG_CROATIAN    SUBLANG_DEFAULT                     "Croatian"
 wxLANGUAGE_CZECH                       cs_CZ  LANG_CZECH       SUBLANG_DEFAULT                     "Czech"
diff --git a/samples/artprov/artprov.dsp b/samples/artprov/artprov.dsp
index 2ed0bea518..64b945a49a 100644
--- a/samples/artprov/artprov.dsp
+++ b/samples/artprov/artprov.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "artprov - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "artprov - Win32 Release"
 
diff --git a/samples/calendar/calendar.dsp b/samples/calendar/calendar.dsp
index 124f11083d..08919ead79 100644
--- a/samples/calendar/calendar.dsp
+++ b/samples/calendar/calendar.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "calendar - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "calendar - Win32 Release"
 
diff --git a/samples/caret/caret.dsp b/samples/caret/caret.dsp
index ed0de2494f..746ccf4de6 100644
--- a/samples/caret/caret.dsp
+++ b/samples/caret/caret.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "caret - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "caret - Win32 Release"
 
diff --git a/samples/checklst/checklst.cpp b/samples/checklst/checklst.cpp
index cba00d91ae..4dfd9e679c 100644
--- a/samples/checklst/checklst.cpp
+++ b/samples/checklst/checklst.cpp
@@ -324,8 +324,8 @@ void CheckListBoxFrame::OnButtonMove(bool up)
 
 void CheckListBoxFrame::AdjustColour(size_t index)
 {
-    // not implemented in other ports yet
-#ifdef __WXMSW__
+    // not implemented in ports other than (native) MSW yet
+#if defined(__WXMSW__) && !defined(__WXUNIVERSAL__)
     // even items have grey backround, odd ones - white
     unsigned char c = index % 2 ? 255 : 200;
     m_pListBox->GetItem(index)->SetBackgroundColour(wxColor(c, c, c));
diff --git a/samples/checklst/checklst.dsp b/samples/checklst/checklst.dsp
index 79cb655c10..e054b1ad74 100644
--- a/samples/checklst/checklst.dsp
+++ b/samples/checklst/checklst.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "checklst - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "checklst - Win32 Release"
 
diff --git a/samples/config/config.dsp b/samples/config/config.dsp
index 90b4a160af..647ef70674 100644
--- a/samples/config/config.dsp
+++ b/samples/config/config.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "config - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "config - Win32 Release"
 
diff --git a/samples/configure.in b/samples/configure.in
index 46bb5016ef..e412e8d77b 100644
--- a/samples/configure.in
+++ b/samples/configure.in
@@ -63,12 +63,17 @@ AC_OUTPUT([
             mobile/Makefile
             mobile/wxedit/Makefile
             mobile/styles/Makefile
+            multimon/Makefile
+            nativedlg/Makefile
             newgrid/Makefile
             notebook/Makefile
+            oleauto/Makefile
+            ownerdrw/Makefile
             png/Makefile
             printing/Makefile
             proplist/Makefile
             propsize/Makefile
+            regtest/Makefile
             resource/Makefile
             rotate/Makefile
             sashtest/Makefile
diff --git a/samples/console/console.cpp b/samples/console/console.cpp
index 3b8ce77f15..24c3bf569a 100644
--- a/samples/console/console.cpp
+++ b/samples/console/console.cpp
@@ -48,7 +48,7 @@
  */
 
 // what to test (in alphabetic order)? uncomment the line below to do all tests
-#define TEST_ALL
+//#define TEST_ALL
 #ifdef TEST_ALL
     #define TEST_ARRAYS
     #define TEST_CHARSET
@@ -93,7 +93,7 @@
     #undef TEST_ALL
     static const bool TEST_ALL = TRUE;
 #else
-    #define TEST_PRINTF
+    #define TEST_DATETIME
 
     static const bool TEST_ALL = FALSE;
 #endif
@@ -1766,7 +1766,7 @@ static void TestMimeFilename()
                                      wxFileType::MessageParameters(fname, _T(""))) )
                 cmd = _T("<no command available>");
             else
-                cmd = wxString('"') + cmd + '"';
+                cmd = wxString(_T('"')) + cmd + _T('"');
 
             wxPrintf(_T("To open %s (%s) do %s.\n"),
                      fname.c_str(), desc.c_str(), cmd.c_str());
@@ -2169,9 +2169,9 @@ static void TestLongLongComparison()
 #endif // wxUSE_LONGLONG_WX
 }
 
-static void TestLongLongPrint()
+static void TestLongLongToString()
 {
-    wxPuts(_T("*** Testing wxLongLong printing ***\n"));
+    wxPuts(_T("*** Testing wxLongLong::ToString() ***\n"));
 
     for ( size_t n = 0; n < WXSIZEOF(testLongs); n++ )
     {
@@ -2192,8 +2192,7 @@ static void TestLongLongPrintf()
 
 #ifdef wxLongLongFmtSpec
     wxLongLong ll = wxLL(0x1234567890abcdef);
-    wxString s = wxString::Format(_T("%") wxLongLongFmtSpec _T("x"),
-                                  ll.GetValue());
+    wxString s = wxString::Format(_T("%") wxLongLongFmtSpec _T("x"), ll);
     wxPrintf(_T("0x1234567890abcdef -> %s (%s)\n"),
              s.c_str(), s == _T("1234567890abcdef") ? _T("ok") : _T("ERROR"));
 #else // !wxLongLongFmtSpec
@@ -2728,7 +2727,7 @@ I am ready for my first lesson today.");
   {
       wxChar buf[200];
 
-      wxSprintf (buf, _T("%07Lo"), (wxLongLong_t)040000000000);
+      wxSprintf(buf, _T("%07") wxLongLongFmtSpec _T("o"), wxLL(040000000000));
       wxPrintf (_T("sprintf (buf, \"%%07Lo\", 040000000000ll) = %s"), buf);
 
       if (wxStrcmp (buf, _T("40000000000")) != 0)
@@ -3873,7 +3872,7 @@ static void TestUnicodeToFromAscii()
 #include "wx/encconv.h"
 #include "wx/buffer.h"
 
-static const unsigned char textInUtf8_[] =
+static const unsigned char utf8koi8r[] =
 {
     208, 157, 208, 181, 209, 129, 208, 186, 208, 176, 208, 183, 208, 176,
     208, 189, 208, 189, 208, 190, 32, 208, 191, 208, 190, 209, 128, 208,
@@ -3884,7 +3883,36 @@ static const unsigned char textInUtf8_[] =
     178, 208, 190, 209, 129, 209, 130, 209, 140, 209, 142, 0
 };
 
-#define textInUtf8 ((const char *)textInUtf8_)
+static const unsigned char utf8iso8859_1[] =
+{
+    0x53, 0x79, 0x73, 0x74, 0xc3, 0xa8, 0x6d, 0x65, 0x73, 0x20, 0x49, 0x6e,
+    0x74, 0xc3, 0xa9, 0x67, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x20, 0x65,
+    0x6e, 0x20, 0x4d, 0xc3, 0xa9, 0x63, 0x61, 0x6e, 0x69, 0x71, 0x75, 0x65,
+    0x20, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x71, 0x75, 0x65, 0x20, 0x65,
+    0x74, 0x20, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x71, 0x75, 0x65, 0
+};
+
+static const unsigned char utf8Invalid[] =
+{
+    0x3c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3e, 0x32, 0x30, 0x30,
+    0x32, 0xe5, 0xb9, 0xb4, 0x30, 0x39, 0xe6, 0x9c, 0x88, 0x32, 0x35, 0xe6,
+    0x97, 0xa5, 0x20, 0x30, 0x37, 0xe6, 0x99, 0x82, 0x33, 0x39, 0xe5, 0x88,
+    0x86, 0x35, 0x37, 0xe7, 0xa7, 0x92, 0x3c, 0x2f, 0x64, 0x69, 0x73, 0x70,
+    0x6c, 0x61, 0x79, 0
+};
+
+static const struct Utf8Data
+{
+    const unsigned char *text;
+    size_t len;
+    const wxChar *charset;
+    wxFontEncoding encoding;
+} utf8data[] =
+{
+    { utf8Invalid, WXSIZEOF(utf8Invalid), _T("iso8859-1"), wxFONTENCODING_ISO8859_1 },
+    { utf8koi8r, WXSIZEOF(utf8koi8r), _T("koi8-r"), wxFONTENCODING_KOI8 },
+    { utf8iso8859_1, WXSIZEOF(utf8iso8859_1), _T("iso8859-1"), wxFONTENCODING_ISO8859_1 },
+};
 
 static void TestUtf8()
 {
@@ -3892,30 +3920,33 @@ static void TestUtf8()
 
     char buf[1024];
     wchar_t wbuf[1024];
-    if ( wxConvUTF8.MB2WC(wbuf, textInUtf8, WXSIZEOF(textInUtf8)) <= 0 )
-    {
-        wxPuts(_T("ERROR: UTF-8 decoding failed."));
-    }
-    else
+
+    for ( size_t n = 0; n < WXSIZEOF(utf8data); n++ )
     {
-        wxCSConv conv(_T("koi8-r"));
-        if ( conv.WC2MB(buf, wbuf, 0 /* not needed wcslen(wbuf) */) <= 0 )
+        const Utf8Data& u8d = utf8data[n];
+        if ( wxConvUTF8.MB2WC(wbuf, (const char *)u8d.text,
+                              WXSIZEOF(wbuf)) == (size_t)-1 )
         {
-            wxPuts(_T("ERROR: conversion to KOI8-R failed."));
+            wxPuts(_T("ERROR: UTF-8 decoding failed."));
         }
         else
         {
-            wxPrintf(_T("The resulting string (in KOI8-R): %s\n"), buf);
+            wxCSConv conv(u8d.charset);
+            if ( conv.WC2MB(buf, wbuf, WXSIZEOF(buf)) == (size_t)-1 )
+            {
+                wxPrintf(_T("ERROR: conversion to %s failed.\n"), u8d.charset);
+            }
+            else
+            {
+                wxPrintf(_T("String in %s: %s\n"), u8d.charset, buf);
+            }
         }
-    }
 
-    if ( wxConvUTF8.WC2MB(buf, L"à la", WXSIZEOF(buf)) <= 0 )
-    {
-        wxPuts(_T("ERROR: conversion to UTF-8 failed."));
-    }
-    else
-    {
-        wxPrintf(_T("The string in UTF-8: %s\n"), buf);
+        wxString s(wxConvUTF8.cMB2WC((const char *)u8d.text), *wxConvCurrent);
+        if ( s.empty() )
+            s = _T("<< conversion failed >>");
+        wxPrintf(_T("String in current cset: %s\n"), s.c_str());
+
     }
 
     wxPuts(_T(""));
@@ -3928,7 +3959,8 @@ static void TestEncodingConverter()
     // using wxEncodingConverter should give the same result as above
     char buf[1024];
     wchar_t wbuf[1024];
-    if ( wxConvUTF8.MB2WC(wbuf, textInUtf8, WXSIZEOF(textInUtf8)) <= 0 )
+    if ( wxConvUTF8.MB2WC(wbuf, (const char *)utf8koi8r,
+                          WXSIZEOF(utf8koi8r)) == (size_t)-1 )
     {
         wxPuts(_T("ERROR: UTF-8 decoding failed."));
     }
@@ -3937,7 +3969,7 @@ static void TestEncodingConverter()
         wxEncodingConverter ec;
         ec.Init(wxFONTENCODING_UNICODE, wxFONTENCODING_KOI8);
         ec.Convert(wbuf, buf);
-        wxPrintf(_T("The same string obtained using wxEC: %s\n"), buf);
+        wxPrintf(_T("The same KOI8-R string using wxEC: %s\n"), buf);
     }
 
     wxPuts(_T(""));
@@ -4604,12 +4636,8 @@ for n in range(20):
             wxPrintf(_T(" (ERROR: should be %d)"), wn.dnum);
         }
 
-        wxPrintf(_T(", week in month is %d"), wmon);
-        if ( wmon == wn.wmon )
-        {
-            wxPrintf(_T(" (ok)"));
-        }
-        else
+        wxPrintf(_T(", week in month = %d"), wmon);
+        if ( wmon != wn.wmon )
         {
             wxPrintf(_T(" (ERROR: should be %d)"), wn.wmon);
         }
@@ -4624,14 +4652,22 @@ for n in range(20):
             wxPrintf(_T(" (ERROR: should be %d)"), wn.wmon2);
         }
 
-        wxPrintf(_T(", week in year is %d"), week);
-        if ( week == wn.week )
+        wxPrintf(_T(", week in year = %d"), week);
+        if ( week != wn.week )
         {
-            wxPuts(_T(" (ok)"));
+            wxPrintf(_T(" (ERROR: should be %d)"), wn.week);
         }
-        else
+
+        wxPutchar(_T('\n'));
+
+        wxDateTime dt2(1, wxDateTime::Jan, d.year);
+        dt2.SetToTheWeek(wn.week, dt.GetWeekDay());
+        if ( dt2 != dt )
         {
-            wxPrintf(_T(" (ERROR: should be %d)\n"), wn.week);
+            Date d2;
+            d2.Init(dt2.GetTm());
+            wxPrintf(_T("ERROR: SetToTheWeek() returned %s\n"),
+                     d2.FormatDate().c_str());
         }
     }
 }
@@ -6406,7 +6442,8 @@ int main(int argc, char **argv)
         TestLongLongConversion();
         TestBitOperations();
         TestLongLongComparison();
-        TestLongLongPrint();
+        TestLongLongToString();
+        TestLongLongPrintf();
     }
 #endif // TEST_LONGLONG
 
@@ -6531,7 +6568,8 @@ int main(int argc, char **argv)
 
         TestTimeZoneBug();
     }
-        TestTimeFormat();
+
+    TestTimeWNumber();
 
     if ( TEST_INTERACTIVE )
         TestDateTimeInteractive();
diff --git a/samples/console/console.dsp b/samples/console/console.dsp
index c665160353..a6cfa8d063 100644
--- a/samples/console/console.dsp
+++ b/samples/console/console.dsp
@@ -53,7 +53,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /subsystem:console /machine:I386 ..\..\lib\wxbase232u.lib
+# ADD LINK32 kernel32.lib user32.lib advapi32.lib shell32.lib wsock32.lib /nologo /subsystem:console /machine:I386 ..\..\lib\wxbase233u.lib
 
 !IF "$(CFG)" == "console - Win32 Debug Unicode DLL"
 
@@ -76,7 +76,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ..\..\lib\wxbase232ud.lib
+# ADD LINK32 kernel32.lib user32.lib advapi32.lib shell32.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ..\..\lib\wxbase233ud.lib
 
 !IF "$(CFG)" == "console - Win32 Release Unicode"
 
@@ -99,7 +99,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /subsystem:console /machine:I386 ..\..\lib\zlib.lib ..\..\lib\regex.lib ..\..\lib\wxbaseu.lib
+# ADD LINK32 kernel32.lib user32.lib advapi32.lib shell32.lib wsock32.lib /nologo /subsystem:console /machine:I386 ..\..\lib\zlib.lib ..\..\lib\regex.lib ..\..\lib\wxbaseu.lib
 
 !IF "$(CFG)" == "console - Win32 Debug Unicode"
 
@@ -122,7 +122,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ..\..\lib\zlibd.lib ..\..\lib\regexd.lib ..\..\lib\wxbaseud.lib
+# ADD LINK32 kernel32.lib user32.lib advapi32.lib shell32.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ..\..\lib\zlibd.lib ..\..\lib\regexd.lib ..\..\lib\wxbaseud.lib
 
 !IF "$(CFG)" == "console - Win32 Release DLL"
 
@@ -145,7 +145,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /subsystem:console /machine:I386 ..\..\lib\wxbase232.lib
+# ADD LINK32 kernel32.lib user32.lib advapi32.lib shell32.lib wsock32.lib /nologo /subsystem:console /machine:I386 ..\..\lib\wxbase233.lib
 
 !IF "$(CFG)" == "console - Win32 Debug DLL"
 
@@ -168,7 +168,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ..\..\lib\wxbase232d.lib
+# ADD LINK32 kernel32.lib user32.lib advapi32.lib shell32.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ..\..\lib\wxbase233d.lib
 
 !IF "$(CFG)" == "console - Win32 Release"
 
@@ -191,7 +191,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /subsystem:console /machine:I386 ..\..\lib\zlib.lib ..\..\lib\regex.lib ..\..\lib\wxbase.lib
+# ADD LINK32 kernel32.lib user32.lib advapi32.lib shell32.lib wsock32.lib /nologo /subsystem:console /machine:I386 ..\..\lib\zlib.lib ..\..\lib\regex.lib ..\..\lib\wxbase.lib
 
 !IF "$(CFG)" == "console - Win32 Debug"
 
@@ -214,7 +214,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ..\..\lib\zlibd.lib ..\..\lib\regexd.lib ..\..\lib\wxbased.lib
+# ADD LINK32 kernel32.lib user32.lib advapi32.lib shell32.lib wsock32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept ..\..\lib\zlibd.lib ..\..\lib\regexd.lib ..\..\lib\wxbased.lib
 
 !ENDIF 
 
diff --git a/samples/console/makefile.b32 b/samples/console/makefile.b32
new file mode 100644
index 0000000000..76aa03aa5a
--- /dev/null
+++ b/samples/console/makefile.b32
@@ -0,0 +1,16 @@
+#
+# File:		makefile.b32
+# Author:	Julian Smart
+# Created:	1999
+# Updated:	
+# Copyright:
+#
+# Makefile : Builds sample for 32-bit BC++
+
+WXDIR = $(WXWIN)
+
+TARGET=console
+OBJECTS = $(TARGET).obj
+
+!include $(WXDIR)\src\makeprog.b32
+
diff --git a/samples/controls/controls.cpp b/samples/controls/controls.cpp
index e29c0b5236..ad8bc2532d 100644
--- a/samples/controls/controls.cpp
+++ b/samples/controls/controls.cpp
@@ -122,12 +122,15 @@ public:
     void OnTestButton(wxCommandEvent& event);
     void OnBmpButton(wxCommandEvent& event);
 
+    void OnSizerCheck (wxCommandEvent &event);
+
     wxListBox     *m_listbox,
                   *m_listboxSorted;
 #if wxUSE_CHOICE
     wxChoice      *m_choice,
                   *m_choiceSorted;
-#endif
+#endif // wxUSE_CHOICE
+
     wxComboBox    *m_combo;
     wxRadioBox    *m_radio;
     wxGauge       *m_gauge,
@@ -153,6 +156,14 @@ public:
 
     wxStaticText  *m_label;
 
+    wxBoxSizer    *m_buttonSizer;
+    wxButton      *m_sizerBtn1;
+    wxButton      *m_sizerBtn2;
+    wxButton      *m_sizerBtn3;
+    wxButton      *m_sizerBtn4;
+    wxBoxSizer    *m_hsizer;
+    wxButton      *m_bigBtn;
+
 private:
     wxLog *m_logTargetOld;
 
@@ -298,7 +309,10 @@ private:
 //----------------------------------------------------------------------
 
 static void SetListboxClientData(const wxChar *name, wxListBox *control);
+
+#if wxUSE_CHOICE
 static void SetChoiceClientData(const wxChar *name, wxChoice *control);
+#endif // wxUSE_CHOICE
 
 IMPLEMENT_APP(MyApp)
 
@@ -403,6 +417,13 @@ const int  ID_BITMAP_BTN        = 192;
 
 const int  ID_CHANGE_COLOUR     = 200;
 
+const int  ID_SIZER_CHECK1      = 201;
+const int  ID_SIZER_CHECK2      = 202;
+const int  ID_SIZER_CHECK3      = 203;
+const int  ID_SIZER_CHECK4      = 204;
+const int  ID_SIZER_CHECK14     = 205;
+const int  ID_SIZER_CHECKBIG    = 206;
+
 BEGIN_EVENT_TABLE(MyPanel, wxPanel)
 EVT_SIZE      (                         MyPanel::OnSize)
 EVT_NOTEBOOK_PAGE_CHANGING(ID_NOTEBOOK, MyPanel::OnPageChanging)
@@ -465,6 +486,14 @@ EVT_CHECKBOX  (ID_CHANGE_COLOUR,        MyPanel::OnChangeColour)
 EVT_BUTTON    (ID_BUTTON_TEST1,         MyPanel::OnTestButton)
 EVT_BUTTON    (ID_BUTTON_TEST2,         MyPanel::OnTestButton)
 EVT_BUTTON    (ID_BITMAP_BTN,           MyPanel::OnBmpButton)
+
+EVT_CHECKBOX  (ID_SIZER_CHECK1,         MyPanel::OnSizerCheck)
+EVT_CHECKBOX  (ID_SIZER_CHECK2,         MyPanel::OnSizerCheck)
+EVT_CHECKBOX  (ID_SIZER_CHECK3,         MyPanel::OnSizerCheck)
+EVT_CHECKBOX  (ID_SIZER_CHECK4,         MyPanel::OnSizerCheck)
+EVT_CHECKBOX  (ID_SIZER_CHECK14,        MyPanel::OnSizerCheck)
+EVT_CHECKBOX  (ID_SIZER_CHECKBIG,       MyPanel::OnSizerCheck)
+
 END_EVENT_TABLE()
 
 BEGIN_EVENT_TABLE(MyButton, wxButton)
@@ -849,11 +878,53 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
     panel = new wxPanel(m_notebook);
     panel->SetAutoLayout( TRUE );
 
-    wxBoxSizer *sizer = new wxBoxSizer( wxHORIZONTAL );
+    wxBoxSizer *sizer = new wxBoxSizer( wxVERTICAL );
+
+    wxStaticBoxSizer *csizer =
+      new wxStaticBoxSizer (new wxStaticBox (panel, -1, "Show Buttons"),
+			    wxHORIZONTAL );
+    
+    wxCheckBox *check1, *check2, *check3, *check4, *check14, *checkBig;
+    check1 = new wxCheckBox (panel, ID_SIZER_CHECK1, "1");
+    check1->SetValue (TRUE);
+    csizer->Add (check1);
+    check2 = new wxCheckBox (panel, ID_SIZER_CHECK2, "2");
+    check2->SetValue (TRUE);
+    csizer->Add (check2);
+    check3 = new wxCheckBox (panel, ID_SIZER_CHECK3, "3");
+    check3->SetValue (TRUE);
+    csizer->Add (check3);
+    check4 = new wxCheckBox (panel, ID_SIZER_CHECK4, "4");
+    check4->SetValue (TRUE);
+    csizer->Add (check4);
+    check14 = new wxCheckBox (panel, ID_SIZER_CHECK14, "1-4");
+    check14->SetValue (TRUE);
+    csizer->Add (check14);
+    checkBig = new wxCheckBox (panel, ID_SIZER_CHECKBIG, "Big");
+    checkBig->SetValue (TRUE);
+    csizer->Add (checkBig);
+    
+    sizer->Add (csizer);
+
+    m_hsizer = new wxBoxSizer( wxHORIZONTAL );
 
-    sizer->Add( new wxButton(panel, -1, "Test Button &1" ), 3, wxALL, 10 );
-    sizer->Add( 20,20, 1 );
-    sizer->Add( new wxButton(panel, -1, "Multiline\nbutton" ), 3, wxGROW|wxALL, 10 );
+    m_buttonSizer = new wxBoxSizer (wxVERTICAL);
+    
+    m_sizerBtn1 = new wxButton(panel, -1, "Test Button &1" );
+    m_buttonSizer->Add( m_sizerBtn1, 0, wxALL, 10 );
+    m_sizerBtn2 = new wxButton(panel, -1, "Test Button &2" );
+    m_buttonSizer->Add( m_sizerBtn2, 0, wxALL, 10 );
+    m_sizerBtn3 = new wxButton(panel, -1, "Test Button &3" );
+    m_buttonSizer->Add( m_sizerBtn3, 0, wxALL, 10 );
+    m_sizerBtn4 = new wxButton(panel, -1, "Test Button &4" );
+    m_buttonSizer->Add( m_sizerBtn4, 0, wxALL, 10 );
+
+    m_hsizer->Add (m_buttonSizer);
+    m_hsizer->Add( 20,20, 1 );
+    m_bigBtn = new wxButton(panel, -1, "Multiline\nbutton" );
+    m_hsizer->Add( m_bigBtn , 3, wxGROW|wxALL, 10 );
+
+    sizer->Add (m_hsizer, 1, wxGROW);
 
     panel->SetSizer( sizer );
 
@@ -1404,6 +1475,37 @@ void MyPanel::OnShowProgress( wxCommandEvent& WXUNUSED(event) )
 
 #endif // wxUSE_SPINBTN
 
+void MyPanel::OnSizerCheck( wxCommandEvent &event)
+{
+  switch (event.GetId ()) {
+  case ID_SIZER_CHECK1:
+    m_buttonSizer->Show (m_sizerBtn1, event.IsChecked ());
+    m_buttonSizer->Layout ();
+    break;
+  case ID_SIZER_CHECK2:
+    m_buttonSizer->Show (m_sizerBtn2, event.IsChecked ());
+    m_buttonSizer->Layout ();
+    break;
+  case ID_SIZER_CHECK3:
+    m_buttonSizer->Show (m_sizerBtn3, event.IsChecked ());
+    m_buttonSizer->Layout ();
+    break;
+  case ID_SIZER_CHECK4:
+    m_buttonSizer->Show (m_sizerBtn4, event.IsChecked ());
+    m_buttonSizer->Layout ();
+    break;
+  case ID_SIZER_CHECK14:
+    m_hsizer->Show (m_buttonSizer, event.IsChecked ());
+    m_hsizer->Layout ();
+    break;
+  case ID_SIZER_CHECKBIG:
+    m_hsizer->Show (m_bigBtn, event.IsChecked ());
+    m_hsizer->Layout ();
+    break;
+  }
+
+}
+
 MyPanel::~MyPanel()
 {
     //wxLog::RemoveTraceMask(_T("focus"));
@@ -1617,6 +1719,8 @@ static void SetListboxClientData(const wxChar *name, wxListBox *control)
     }
 }
 
+#if wxUSE_CHOICE
+
 static void SetChoiceClientData(const wxChar *name, wxChoice *control)
 {
     size_t count = control->GetCount();
@@ -1629,3 +1733,5 @@ static void SetChoiceClientData(const wxChar *name, wxChoice *control)
         control->SetClientObject(n, new wxStringClientData(s));
     }
 }
+
+#endif // wxUSE_CHOICE
diff --git a/samples/controls/controls.dsp b/samples/controls/controls.dsp
index 95e8e3be92..58db7cf23f 100644
--- a/samples/controls/controls.dsp
+++ b/samples/controls/controls.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "controls - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "controls - Win32 Release"
 
diff --git a/samples/db/db.dsp b/samples/db/db.dsp
index c61c33aca3..a908a17237 100644
--- a/samples/db/db.dsp
+++ b/samples/db/db.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "db - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "db - Win32 Release"
 
diff --git a/samples/dialogs/dialogs.cpp b/samples/dialogs/dialogs.cpp
index 059006ed3c..6ef90dcc7a 100644
--- a/samples/dialogs/dialogs.cpp
+++ b/samples/dialogs/dialogs.cpp
@@ -534,16 +534,16 @@ void MyFrame::FileSave(wxCommandEvent& WXUNUSED(event) )
     wxFileDialog dialog(this,
                         _T("Testing save file dialog"),
                         _T(""),
-                        _T("myletter.txt"),
+                        _T("myletter.doc"),
                         _T("Text files (*.txt)|*.txt|Document files (*.doc)|*.doc"),
                         wxSAVE|wxOVERWRITE_PROMPT);
 
+    dialog.SetFilterIndex(1);
+
     if (dialog.ShowModal() == wxID_OK)
     {
-        wxChar buf[400];
-        wxSprintf(buf, _T("%s, filter %d"), (const wxChar*)dialog.GetPath(), dialog.GetFilterIndex());
-        wxMessageDialog dialog2(this, wxString(buf), _T("Selected path"));
-        dialog2.ShowModal();
+        wxLogMessage(_T("%s, filter %d"),
+                     dialog.GetPath().c_str(), dialog.GetFilterIndex());
     }
 }
 
@@ -557,8 +557,7 @@ void MyFrame::DirChoose(wxCommandEvent& WXUNUSED(event) )
 
     if (dialog.ShowModal() == wxID_OK)
     {
-        wxMessageDialog dialog2(this, dialog.GetPath(), _T("Selected path"));
-        dialog2.ShowModal();
+        wxLogMessage(_T("Selected path: %s"), dialog.GetPath().c_str());
     }
 }
 
diff --git a/samples/dialogs/dialogs.dsp b/samples/dialogs/dialogs.dsp
index 17ea64d1c1..5623d849a0 100644
--- a/samples/dialogs/dialogs.dsp
+++ b/samples/dialogs/dialogs.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "dialogs - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "dialogs - Win32 Release"
 
diff --git a/samples/dialup/dialup.dsp b/samples/dialup/dialup.dsp
index 1a7a78a8bc..9011c20b49 100644
--- a/samples/dialup/dialup.dsp
+++ b/samples/dialup/dialup.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "dialup - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "dialup - Win32 Release"
 
diff --git a/samples/dnd/dnd.dsp b/samples/dnd/dnd.dsp
index 024a9ec192..cead67d101 100644
--- a/samples/dnd/dnd.dsp
+++ b/samples/dnd/dnd.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "dnd - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "dnd - Win32 Release"
 
diff --git a/samples/docview/docview.dsp b/samples/docview/docview.dsp
index 1e1e1abc59..da0d2fa32d 100644
--- a/samples/docview/docview.dsp
+++ b/samples/docview/docview.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "docview - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "docview - Win32 Release"
 
diff --git a/samples/docvwmdi/docvwmdi.dsp b/samples/docvwmdi/docvwmdi.dsp
index a843367163..188d9ca8bd 100644
--- a/samples/docvwmdi/docvwmdi.dsp
+++ b/samples/docvwmdi/docvwmdi.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "docvwmdi - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "docvwmdi - Win32 Release"
 
diff --git a/samples/dragimag/dragimag.dsp b/samples/dragimag/dragimag.dsp
index d80989db89..f517c935cb 100644
--- a/samples/dragimag/dragimag.dsp
+++ b/samples/dragimag/dragimag.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "dragimag - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "dragimag - Win32 Release"
 
diff --git a/samples/drawing/drawing.dsp b/samples/drawing/drawing.dsp
index 7e1a570347..e176b48708 100644
--- a/samples/drawing/drawing.dsp
+++ b/samples/drawing/drawing.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "drawing - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "drawing - Win32 Release"
 
diff --git a/samples/dynamic/dynamic.dsp b/samples/dynamic/dynamic.dsp
index 11e4e00501..71aeeeb4d1 100644
--- a/samples/dynamic/dynamic.dsp
+++ b/samples/dynamic/dynamic.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "dynamic - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "dynamic - Win32 Release"
 
diff --git a/samples/erase/erase.cpp b/samples/erase/erase.cpp
index 1eeba32d3a..307035e068 100644
--- a/samples/erase/erase.cpp
+++ b/samples/erase/erase.cpp
@@ -73,9 +73,11 @@ public:
     MyCanvas( MyFrame *parent );
 
     void OnPaint( wxPaintEvent &event );
+    void OnChar( wxKeyEvent &event );
     void OnEraseBackground( wxEraseEvent &event );
 
     wxBitmap    m_bitmap;
+    wxString    m_text;
 
 private:
     DECLARE_EVENT_TABLE()
@@ -160,6 +162,7 @@ void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 
 BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow)
     EVT_PAINT(  MyCanvas::OnPaint)
+    EVT_CHAR(  MyCanvas::OnChar)
     EVT_ERASE_BACKGROUND(  MyCanvas::OnEraseBackground)
 END_EVENT_TABLE()
 
@@ -176,6 +179,30 @@ MyCanvas::MyCanvas( MyFrame *parent )
     new wxStaticBitmap( this, -1, m_bitmap, wxPoint(80,20) );
 }
 
+void MyCanvas::OnChar( wxKeyEvent &event )
+{
+#if wxUSE_UNICODE
+    if (event.m_uniChar)
+    {
+        m_text += event.m_uniChar;
+        Refresh();
+        return;
+    }
+#endif
+
+    // some test cases
+    switch (event.m_keyCode)
+    {
+        case WXK_UP: m_text += wxT( "<UP>" ); break;
+        case WXK_LEFT: m_text += wxT( "<LEFT>" ); break;
+        case WXK_RIGHT: m_text += wxT( "<RIGHT>" ); break;
+        case WXK_DOWN: m_text += wxT( "<DOWN>" ); break;
+        case WXK_RETURN: m_text += wxT( "<ENTER>" ); break;
+        default: m_text += event.m_keyCode; break;
+    }
+    
+}
+
 void MyCanvas::OnPaint( wxPaintEvent &event )
 {
     wxPaintDC dc(this);
@@ -188,6 +215,14 @@ void MyCanvas::OnPaint( wxPaintEvent &event )
 
     dc.SetTextForeground(*wxBLUE);
     dc.DrawText(_T("This text is drawn from OnPaint"), 65, 65);
+    
+    wxString tmp;
+    tmp.Printf( _T("Hit any key to display more text: %s"), m_text.c_str() );
+    int w,h;
+    dc.GetTextExtent( tmp, &w, &h );
+    dc.SetBrush( *wxWHITE_BRUSH );
+    dc.DrawRectangle( 65, 85, w, h );
+    dc.DrawText( tmp, 65, 85 );
 
 #if 0
     wxRegionIterator upd( GetUpdateRegion() );
diff --git a/samples/erase/erase.dsp b/samples/erase/erase.dsp
index 1990f2ac6d..9639339a30 100644
--- a/samples/erase/erase.dsp
+++ b/samples/erase/erase.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "erase - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "erase - Win32 Release"
 
diff --git a/samples/event/event.dsp b/samples/event/event.dsp
index 8616035750..8dd0b76947 100644
--- a/samples/event/event.dsp
+++ b/samples/event/event.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "event - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "event - Win32 Release"
 
diff --git a/samples/exec/exec.cpp b/samples/exec/exec.cpp
index 30bed13776..fec7e51750 100644
--- a/samples/exec/exec.cpp
+++ b/samples/exec/exec.cpp
@@ -387,6 +387,10 @@ bool MyApp::OnInit()
 // main frame
 // ----------------------------------------------------------------------------
 
+#ifdef __VISUALC__
+#pragma warning(disable: 4355) // this used in base member initializer list
+#endif
+
 // frame constructor
 MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
        : wxFrame((wxFrame *)NULL, -1, title, pos, size),
diff --git a/samples/exec/exec.dsp b/samples/exec/exec.dsp
index 640a992ca7..4397700c56 100644
--- a/samples/exec/exec.dsp
+++ b/samples/exec/exec.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "exec - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "exec - Win32 Release"
 
diff --git a/samples/font/font.cpp b/samples/font/font.cpp
index 7ef9add570..5fc9a0693d 100644
--- a/samples/font/font.cpp
+++ b/samples/font/font.cpp
@@ -205,7 +205,7 @@ IMPLEMENT_APP(MyApp)
 bool MyApp::OnInit()
 {
     // Create the main application window
-    MyFrame *frame = new MyFrame("Font wxWindows demo",
+    MyFrame *frame = new MyFrame(wxT("Font wxWindows demo"),
                                  wxPoint(50, 50), wxSize(600, 400));
 
     // Show it and tell the application that it's our main window
@@ -231,52 +231,52 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
     // create a menu bar
     wxMenu *menuFile = new wxMenu;
 
-    menuFile->Append(Font_ViewMsg, "&View...\tCtrl-V",
-                     "View an email message file");
+    menuFile->Append(Font_ViewMsg, wxT("&View...\tCtrl-V"),
+                     wxT("View an email message file"));
     menuFile->AppendSeparator();
-    menuFile->Append(Font_About, "&About...\tCtrl-A", "Show about dialog");
+    menuFile->Append(Font_About, wxT("&About...\tCtrl-A"), wxT("Show about dialog"));
     menuFile->AppendSeparator();
-    menuFile->Append(Font_Quit, "E&xit\tAlt-X", "Quit this program");
+    menuFile->Append(Font_Quit, wxT("E&xit\tAlt-X"), wxT("Quit this program"));
 
     wxMenu *menuFont = new wxMenu;
-    menuFont->Append(Font_IncSize, "&Increase font size by 2 points\tCtrl-I");
-    menuFont->Append(Font_DecSize, "&Decrease font size by 2 points\tCtrl-D");
+    menuFont->Append(Font_IncSize, wxT("&Increase font size by 2 points\tCtrl-I"));
+    menuFont->Append(Font_DecSize, wxT("&Decrease font size by 2 points\tCtrl-D"));
     menuFont->AppendSeparator();
-    menuFont->Append(Font_Bold, "&Bold\tCtrl-B", "Toggle bold state", TRUE);
-    menuFont->Append(Font_Italic, "&Oblique\tCtrl-O", "Toggle italic state", TRUE);
-    menuFont->Append(Font_Underlined, "&Underlined\tCtrl-U",
-                     "Toggle underlined state", TRUE);
+    menuFont->Append(Font_Bold, wxT("&Bold\tCtrl-B"), wxT("Toggle bold state"), TRUE);
+    menuFont->Append(Font_Italic, wxT("&Oblique\tCtrl-O"), wxT("Toggle italic state"), TRUE);
+    menuFont->Append(Font_Underlined, wxT("&Underlined\tCtrl-U"),
+                     wxT("Toggle underlined state"), TRUE);
 
     menuFont->AppendSeparator();
     menuFont->Append(Font_CheckNativeToFromString,
-                     "Check Native Font Info To/From String");
+                     wxT("Check Native Font Info To/From String"));
 
     wxMenu *menuSelect = new wxMenu;
-    menuSelect->Append(Font_Choose, "&Select font...\tCtrl-S",
-                     "Select a standard font");
+    menuSelect->Append(Font_Choose, wxT("&Select font...\tCtrl-S"),
+                     wxT("Select a standard font"));
 
     wxMenu *menuStdFonts = new wxMenu;
-    menuStdFonts->Append(Font_wxNORMAL_FONT, "wxNORMAL_FONT", "Normal font used by wxWindows");
-    menuStdFonts->Append(Font_wxSMALL_FONT,  "wxSMALL_FONT",  "Small font used by wxWindows");
-    menuStdFonts->Append(Font_wxITALIC_FONT, "wxITALIC_FONT", "Italic font used by wxWindows");
-    menuStdFonts->Append(Font_wxSWISS_FONT,  "wxSWISS_FONT",  "Swiss font used by wxWindows");
-    menuSelect->Append(-2, "Standar&d fonts", menuStdFonts);
+    menuStdFonts->Append(Font_wxNORMAL_FONT, wxT("wxNORMAL_FONT"), wxT("Normal font used by wxWindows"));
+    menuStdFonts->Append(Font_wxSMALL_FONT,  wxT("wxSMALL_FONT"),  wxT("Small font used by wxWindows"));
+    menuStdFonts->Append(Font_wxITALIC_FONT, wxT("wxITALIC_FONT"), wxT("Italic font used by wxWindows"));
+    menuStdFonts->Append(Font_wxSWISS_FONT,  wxT("wxSWISS_FONT"),  wxT("Swiss font used by wxWindows"));
+    menuSelect->Append(-2, wxT("Standar&d fonts"), menuStdFonts);
 
     menuSelect->AppendSeparator();
-    menuSelect->Append(Font_EnumFamilies, "Enumerate font &families\tCtrl-F");
+    menuSelect->Append(Font_EnumFamilies, wxT("Enumerate font &families\tCtrl-F"));
     menuSelect->Append(Font_EnumFixedFamilies,
-                     "Enumerate fi&xed font families\tCtrl-X");
+                     wxT("Enumerate fi&xed font families\tCtrl-X"));
     menuSelect->Append(Font_EnumEncodings,
-                     "Enumerate &encodings\tCtrl-E");
+                     wxT("Enumerate &encodings\tCtrl-E"));
     menuSelect->Append(Font_EnumFamiliesForEncoding,
-                     "Find font for en&coding...\tCtrl-C",
-                     "Find font families for given encoding");
+                     wxT("Find font for en&coding...\tCtrl-C"),
+                     wxT("Find font families for given encoding"));
 
     // now append the freshly created menu to the menu bar...
     wxMenuBar *menuBar = new wxMenuBar;
-    menuBar->Append(menuFile, "&File");
-    menuBar->Append(menuFont, "F&ont");
-    menuBar->Append(menuSelect, "&Select");
+    menuBar->Append(menuFile, wxT("&File"));
+    menuBar->Append(menuFont, wxT("F&ont"));
+    menuBar->Append(menuSelect, wxT("&Select"));
 
     // ... and attach this menu bar to the frame
     SetMenuBar(menuBar);
@@ -284,8 +284,7 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
     wxSplitterWindow *splitter = new wxSplitterWindow(this);
 
     m_textctrl = new wxTextCtrl(splitter, -1,
-                                "Paste text here to see how it looks\n"
-                                "like in the given font",
+                                wxT("Paste text here to see how it looks\nlike in the given font"),
                                 wxDefaultPosition, wxDefaultSize,
                                 wxTE_MULTILINE);
 
@@ -295,7 +294,7 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
 
     // create a status bar just for fun (by default with 1 pane only)
     CreateStatusBar();
-    SetStatusText("Welcome to wxWindows font demo!");
+    SetStatusText(wxT("Welcome to wxWindows font demo!"));
 }
 
 // --------------------------------------------------------
@@ -388,7 +387,7 @@ bool MyFrame::DoEnumerateFamilies(bool fixedWidthOnly,
             for ( n = 0; n < nFacenames; n++ )
                 facenames[n] = fontEnumerator.GetFacenames().Item(n);
 
-            n = wxGetSingleChoiceIndex("Choose a facename", "Font demo",
+            n = wxGetSingleChoiceIndex(wxT("Choose a facename"), wxT("Font demo"),
                                        nFacenames, facenames, this);
 
             if ( n != -1 )
@@ -432,18 +431,18 @@ void MyFrame::OnEnumerateFamiliesForEncoding(wxCommandEvent& WXUNUSED(event))
 
     static const wxString encodingNames[] =
     {
-        "Western European (ISO-8859-1)",
-        "Central European (ISO-8859-2)",
-        "Cyrillic (ISO-8859-5)",
-        "Greek (ISO-8859-7)",
-        "Western European with Euro (ISO-8859-15)",
-        "KOI8-R",
-        "Windows Central European (CP 1250)",
-        "Windows Cyrillic (CP 1251)",
-        "Windows Western European (CP 1252)",
+        wxT("Western European (ISO-8859-1)"),
+        wxT("Central European (ISO-8859-2)"),
+        wxT("Cyrillic (ISO-8859-5)"),
+        wxT("Greek (ISO-8859-7)"),
+        wxT("Western European with Euro (ISO-8859-15)"),
+        wxT("KOI8-R"),
+        wxT("Windows Central European (CP 1250)"),
+        wxT("Windows Cyrillic (CP 1251)"),
+        wxT("Windows Western European (CP 1252)"),
     };
 
-    int n = wxGetSingleChoiceIndex("Choose an encoding", "Font demo",
+    int n = wxGetSingleChoiceIndex(wxT("Choose an encoding"), wxT("Font demo"),
                                    WXSIZEOF(encodingNames),
                                    encodingNames,
                                    this);
@@ -574,7 +573,7 @@ void MyFrame::OnViewMsg(wxCommandEvent& WXUNUSED(event))
 {
     // first, choose the file
     static wxString s_dir, s_file;
-    wxFileDialog dialog(this, "Open an email message file",
+    wxFileDialog dialog(this, wxT("Open an email message file"),
                         s_dir, s_file);
     if ( dialog.ShowModal() != wxID_OK )
         return;
@@ -592,8 +591,8 @@ void MyFrame::OnViewMsg(wxCommandEvent& WXUNUSED(event))
 
     wxString charset;
 
-    static const char *prefix = "Content-Type: text/plain; charset=";
-    const size_t len = strlen(prefix);
+    static const wxChar *prefix = wxT("Content-Type: text/plain; charset=");
+    const size_t len = wxStrlen(prefix);
 
     size_t n, count = file.GetLineCount();
     for ( n = 0; n < count; n++ )
@@ -611,10 +610,10 @@ void MyFrame::OnViewMsg(wxCommandEvent& WXUNUSED(event))
         {
             // found!
             const wxChar *pc = line.c_str() + len;
-            if ( *pc == '"' )
+            if ( *pc == wxT('"') )
                 pc++;
 
-            while ( *pc && *pc != '"' )
+            while ( *pc && *pc != wxT('"') )
             {
                 charset += *pc++;
             }
@@ -687,9 +686,9 @@ void MyFrame::OnViewMsg(wxCommandEvent& WXUNUSED(event))
 
 void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 {
-    wxMessageBox("wxWindows font demo\n"
-                 "(c) 1999 Vadim Zeitlin",
-                 "About Font",
+    wxMessageBox(wxT("wxWindows font demo\n")
+                 wxT("(c) 1999 Vadim Zeitlin"),
+                 wxT("About Font"),
                  wxOK | wxICON_INFORMATION, this);
 }
 
diff --git a/samples/font/font.dsp b/samples/font/font.dsp
index 9b86ce10f7..31989639a7 100644
--- a/samples/font/font.dsp
+++ b/samples/font/font.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "font - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "font - Win32 Release"
 
diff --git a/samples/grid/grid.dsp b/samples/grid/grid.dsp
index f0ddff1d2e..6b333047b4 100644
--- a/samples/grid/grid.dsp
+++ b/samples/grid/grid.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "grid - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "grid - Win32 Release"
 
diff --git a/samples/help/help.dsp b/samples/help/help.dsp
index c042b68854..686a829fc8 100644
--- a/samples/help/help.dsp
+++ b/samples/help/help.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "help - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "help - Win32 Release"
 
diff --git a/samples/html/about/about.cpp b/samples/html/about/about.cpp
index 67b2bc0153..eac43f4e19 100644
--- a/samples/html/about/about.cpp
+++ b/samples/html/about/about.cpp
@@ -108,7 +108,7 @@
    {
     wxImage::AddHandler(new wxPNGHandler);
     // Create the main application window
-      MyFrame *frame = new MyFrame("wxHtmlWindow testing application",
+      MyFrame *frame = new MyFrame(_("wxHtmlWindow testing application"),
          wxPoint(50, 50), wxSize(150, 50));
 
     // Show it and tell the application that it's our main window
@@ -135,12 +135,12 @@
     // create a menu bar
       wxMenu *menuFile = new wxMenu;
 
-      menuFile->Append(Minimal_About, "&About");
-      menuFile->Append(Minimal_Quit, "E&xit");
+      menuFile->Append(Minimal_About, _("&About"));
+      menuFile->Append(Minimal_Quit, _("E&xit"));
 
     // now append the freshly created menu to the menu bar...
       wxMenuBar *menuBar = new wxMenuBar;
-      menuBar->Append(menuFile, "&File");
+      menuBar->Append(menuFile, _("&File"));
 
     // ... and attach this menu bar to the frame
       SetMenuBar(menuBar);
@@ -159,13 +159,13 @@
    {
         wxBoxSizer *topsizer;
         wxHtmlWindow *html;
-        wxDialog dlg(this, -1, wxString("About"));
+        wxDialog dlg(this, -1, wxString(_("About")));
 
         topsizer = new wxBoxSizer(wxVERTICAL);
 
         html = new wxHtmlWindow(&dlg, -1, wxDefaultPosition, wxSize(380, 160), wxHW_SCROLLBAR_NEVER);
         html -> SetBorders(0);
-        html -> LoadPage("data/about.htm");
+        html -> LoadPage(wxT("data/about.htm"));
         html -> SetSize(html -> GetInternalRepresentation() -> GetWidth(), 
                         html -> GetInternalRepresentation() -> GetHeight());
 
@@ -173,7 +173,7 @@
 
         topsizer -> Add(new wxStaticLine(&dlg, -1), 0, wxEXPAND | wxLEFT | wxRIGHT, 10);
                         
-        wxButton *bu1 = new wxButton(&dlg, wxID_OK, "Okay");
+        wxButton *bu1 = new wxButton(&dlg, wxID_OK, _("OK"));
         bu1 -> SetDefault();
 
         topsizer -> Add(bu1, 0, wxALL | wxALIGN_RIGHT, 15);
diff --git a/samples/html/about/about.dsp b/samples/html/about/about.dsp
index bcb82b9b23..f63dd24bbf 100644
--- a/samples/html/about/about.dsp
+++ b/samples/html/about/about.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "htmlabout - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "htmlabout - Win32 Release"
 
diff --git a/samples/html/help/help.cpp b/samples/html/help/help.cpp
index ac000fe7dc..783cda08fd 100644
--- a/samples/html/help/help.cpp
+++ b/samples/html/help/help.cpp
@@ -111,11 +111,11 @@
 #if wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB 
       wxFileSystem::AddHandler(new wxZipFSHandler);
 #endif
-      SetVendorName("wxWindows");
-      SetAppName("wxHTMLHelp"); 
+      SetVendorName(wxT("wxWindows"));
+      SetAppName(wxT("wxHTMLHelp")); 
 
     // Create the main application window
-      MyFrame *frame = new MyFrame("HTML Help Sample",
+      MyFrame *frame = new MyFrame(_("HTML Help Sample"),
          wxPoint(50, 50), wxSize(150, 50));
 
     // Show it and tell the application that it's our main window
@@ -143,12 +143,12 @@
     // create a menu bar
       wxMenu *menuFile = new wxMenu;
 
-      menuFile->Append(Minimal_Help, "&Help");
-      menuFile->Append(Minimal_Quit, "E&xit");
+      menuFile->Append(Minimal_Help, _("&Help"));
+      menuFile->Append(Minimal_Quit, _("E&xit"));
 
     // now append the freshly created menu to the menu bar...
       wxMenuBar *menuBar = new wxMenuBar;
-      menuBar->Append(menuFile, "&File");
+      menuBar->Append(menuFile, _("&File"));
 
     // ... and attach this menu bar to the frame
       SetMenuBar(menuBar);
@@ -156,20 +156,20 @@
       help.UseConfig(wxConfig::Get());
       bool ret;
 #if defined(__WXMAC__) && !defined(__DARWIN__)
-      ret = help.AddBook(":helpfiles:testing.hhp");
+      ret = help.AddBook(wxT(":helpfiles:testing.hhp"));
 #else
-      help.SetTempDir(".");
-      ret = help.AddBook("helpfiles/testing.hhp");
+      help.SetTempDir(wxT("."));
+      ret = help.AddBook(wxT("helpfiles/testing.hhp"));
 #endif
       if (! ret)
-        wxMessageBox("Failed adding book helpfiles/testing.hhp");
+        wxMessageBox(wxT("Failed adding book helpfiles/testing.hhp"));
 #if defined(__WXMAC__) && !defined(__DARWIN__)
-      ret = help.AddBook(":helpfiles:another.hhp");
+      ret = help.AddBook(wxT(":helpfiles:another.hhp"));
 #else
-      ret = help.AddBook("helpfiles/another.hhp");
+      ret = help.AddBook(wxT("helpfiles/another.hhp"));
 #endif
       if (! ret)
-        wxMessageBox("Failed adding book helpfiles/another.hhp");
+        wxMessageBox(_("Failed adding book helpfiles/another.hhp"));
    }
 
 
@@ -183,7 +183,7 @@
 
    void MyFrame::OnHelp(wxCommandEvent& WXUNUSED(event))
    {
-       help.Display("Test HELPFILE");
+       help.Display(wxT("Test HELPFILE"));
    }
 
    void MyFrame::OnClose(wxCloseEvent& event)
diff --git a/samples/html/help/help.dsp b/samples/html/help/help.dsp
index 35235f621e..e242d63834 100644
--- a/samples/html/help/help.dsp
+++ b/samples/html/help/help.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "htmlhelp - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "htmlhelp - Win32 Release"
 
diff --git a/samples/html/helpview/helpview.cpp b/samples/html/helpview/helpview.cpp
index 1b07b46823..3881c00ba9 100644
--- a/samples/html/helpview/helpview.cpp
+++ b/samples/html/helpview/helpview.cpp
@@ -66,8 +66,8 @@ bool MyApp::OnInit()
     wxInitAllImageHandlers();
     wxFileSystem::AddHandler(new wxZipFSHandler);
 
-    SetVendorName("wxWindows");
-    SetAppName("wxHTMLHelp"); 
+    SetVendorName(wxT("wxWindows"));
+    SetAppName(wxT("wxHTMLHelp")); 
     wxConfig::Get(); // create an instance
 
     help = new wxHtmlHelpController;
diff --git a/samples/html/helpview/helpview.dsp b/samples/html/helpview/helpview.dsp
index 055b077c5e..eb340941f1 100644
--- a/samples/html/helpview/helpview.dsp
+++ b/samples/html/helpview/helpview.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "htmlhelpview - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "htmlhelpview - Win32 Release"
 
diff --git a/samples/html/printing/printing.cpp b/samples/html/printing/printing.cpp
index c2c9f1bac9..a76b0714b0 100644
--- a/samples/html/printing/printing.cpp
+++ b/samples/html/printing/printing.cpp
@@ -129,7 +129,7 @@ bool MyApp::OnInit()
     wxImage::AddHandler(new wxGIFHandler);
 #endif
 
-    MyFrame *frame = new MyFrame("Printing test",
+    MyFrame *frame = new MyFrame(_("Printing test"),
                                  wxPoint(150, 50), wxSize(640, 480));
 
     // Show it and tell the application that it's our main window
@@ -155,20 +155,20 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
 {
     // create a menu bar
     wxMenu *menuFile = new wxMenu;
-    menuFile->Append(Minimal_Open, "Open...\tCtrl-O");
+    menuFile->Append(Minimal_Open, _("Open...\tCtrl-O"));
     menuFile->AppendSeparator();
-    menuFile->Append(Minimal_PageSetup, "Page Setup");
-    menuFile->Append(Minimal_PrintSetup, "Printer Setup");
-    menuFile->Append(Minimal_Print, "Print...");
-    menuFile->Append(Minimal_Preview, "Preview...");
+    menuFile->Append(Minimal_PageSetup, _("Page Setup"));
+    menuFile->Append(Minimal_PrintSetup, _("Printer Setup"));
+    menuFile->Append(Minimal_Print, _("Print..."));
+    menuFile->Append(Minimal_Preview, _("Preview..."));
     menuFile->AppendSeparator();
-    menuFile->Append(wxID_ABOUT, "&About");
+    menuFile->Append(wxID_ABOUT, _("&About"));
     menuFile->AppendSeparator();
-    menuFile->Append(Minimal_Quit, "&Exit");
+    menuFile->Append(Minimal_Quit, _("&Exit"));
 
     // now append the freshly created menu to the menu bar...
     wxMenuBar *menuBar = new wxMenuBar;
-    menuBar->Append(menuFile, "&File");
+    menuBar->Append(menuFile, _("&File"));
 
     // ... and attach this menu bar to the frame
     SetMenuBar(menuBar);
@@ -176,13 +176,13 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
     CreateStatusBar(1);
 
     m_Html = new wxHtmlWindow(this);
-    m_Html -> SetRelatedFrame(this, "HTML : %s");
+    m_Html -> SetRelatedFrame(this, _("HTML : %s"));
     m_Html -> SetRelatedStatusBar(0);
-    m_Name = "test.htm";
+    m_Name = wxT("test.htm");
     m_Html -> LoadPage(m_Name);
     
-    m_Prn = new wxHtmlEasyPrinting("Easy Printing Demo", this);
-    m_Prn -> SetHeader(m_Name + "(@PAGENUM@/@PAGESCNT@)<hr>", wxPAGE_ALL);
+    m_Prn = new wxHtmlEasyPrinting(_("Easy Printing Demo"), this);
+    m_Prn -> SetHeader(m_Name + wxT("(@PAGENUM@/@PAGESCNT@)<hr>"), wxPAGE_ALL);
 }
 
 // frame destructor
@@ -204,7 +204,7 @@ void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
 
 void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 {
-    wxMessageBox("HTML printing sample\n\n(c) Vaclav Slavik, 1999");
+    wxMessageBox(_("HTML printing sample\n\n(c) Vaclav Slavik, 1999"));
 }
 
 
@@ -234,13 +234,13 @@ void MyFrame::OnPreview(wxCommandEvent& WXUNUSED(event))
 
 void MyFrame::OnOpen(wxCommandEvent& WXUNUSED(event))
 {
-    wxFileDialog dialog(this, "Open HTML page", "", "", "*.htm", 0);
+    wxFileDialog dialog(this, _("Open HTML page"), wxT(""), wxT(""), wxT("*.htm"), 0);
 
     if (dialog.ShowModal() == wxID_OK)
     {
         m_Name = dialog.GetPath();
         m_Html -> LoadPage(m_Name);
-        m_Prn -> SetHeader(m_Name + "(@PAGENUM@/@PAGESCNT@)<hr>", wxPAGE_ALL);
+        m_Prn -> SetHeader(m_Name + wxT("(@PAGENUM@/@PAGESCNT@)<hr>"), wxPAGE_ALL);
     } 
 }
 
diff --git a/samples/html/printing/printing.dsp b/samples/html/printing/printing.dsp
index f12717218f..144dbea151 100644
--- a/samples/html/printing/printing.dsp
+++ b/samples/html/printing/printing.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "htmlprinting - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "htmlprinting - Win32 Release"
 
diff --git a/samples/html/test/test.cpp b/samples/html/test/test.cpp
index 9d1f1d98d9..26f225e4b7 100644
--- a/samples/html/test/test.cpp
+++ b/samples/html/test/test.cpp
@@ -140,12 +140,12 @@ class BoldProcessor : public wxHtmlProcessor
      wxFileSystem::AddHandler(new wxInternetFSHandler);
 #endif
 
-      SetVendorName("wxWindows");
-      SetAppName("wxHtmlTest"); 
+      SetVendorName(wxT("wxWindows"));
+      SetAppName(wxT("wxHtmlTest")); 
       // the following call to wxConfig::Get will use it to create an object...
 
     // Create the main application window
-      MyFrame *frame = new MyFrame("wxHtmlWindow testing application",
+      MyFrame *frame = new MyFrame(_("wxHtmlWindow testing application"),
          wxPoint(50, 50), wxSize(640, 480));
    
     // Show it and tell the application that it's our main window
@@ -167,25 +167,26 @@ class BoldProcessor : public wxHtmlProcessor
 
 // frame constructor
    MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
-   : wxFrame((wxFrame *)NULL, -1, title, pos, size, wxDEFAULT_FRAME_STYLE, "html_test_app")
+   : wxFrame((wxFrame *)NULL, -1, title, pos, size, wxDEFAULT_FRAME_STYLE, 
+             wxT("html_test_app"))
    {
     // create a menu bar
       wxMenu *menuFile = new wxMenu;
       wxMenu *menuNav = new wxMenu;
 
-      menuFile->Append(Minimal_PageOpen, "&Open HTML page...");
+      menuFile->Append(Minimal_PageOpen, _("&Open HTML page..."));
       menuFile->AppendSeparator();
-      menuFile->Append(Minimal_Processor, "&Remove bold attribute", "", TRUE);
+      menuFile->Append(Minimal_Processor, _("&Remove bold attribute"), wxT(""), TRUE);
       
       menuFile->AppendSeparator();
-      menuFile->Append(Minimal_Quit, "&Close frame");
-      menuNav->Append(Minimal_Back, "Go &BACK");
-      menuNav->Append(Minimal_Forward, "Go &FORWARD");
+      menuFile->Append(Minimal_Quit, _("&Close frame"));
+      menuNav->Append(Minimal_Back, _("Go &BACK"));
+      menuNav->Append(Minimal_Forward, _("Go &FORWARD"));
 
     // now append the freshly created menu to the menu bar...
       wxMenuBar *menuBar = new wxMenuBar;
-      menuBar->Append(menuFile, "&File");
-      menuBar->Append(menuNav, "&Navigate");
+      menuBar->Append(menuFile, _("&File"));
+      menuBar->Append(menuNav, _("&Navigate"));
 
     // ... and attach this menu bar to the frame
       SetMenuBar(menuBar);
@@ -195,10 +196,10 @@ class BoldProcessor : public wxHtmlProcessor
       m_Processor = new BoldProcessor;
       m_Processor->Enable(FALSE);
       m_Html = new wxHtmlWindow(this);
-      m_Html->SetRelatedFrame(this, "HTML : %s");
+      m_Html->SetRelatedFrame(this, _("HTML : %s"));
       m_Html->SetRelatedStatusBar(0);
       m_Html->ReadCustomization(wxConfig::Get());
-      m_Html->LoadPage("test.htm");
+      m_Html->LoadPage(wxT("test.htm"));
       m_Html->AddProcessor(m_Processor);
    }
 
@@ -215,19 +216,19 @@ void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
 
 void MyFrame::OnPageOpen(wxCommandEvent& WXUNUSED(event))
 {
-  wxString p = wxFileSelector(wxT("Open HTML document"), wxT(""), wxT(""), wxT(""), wxT("HTML files|*.htm"));
+  wxString p = wxFileSelector(_("Open HTML document"), wxT(""), wxT(""), wxT(""), wxT("HTML files|*.htm"));
   if (p != wxEmptyString)
     m_Html -> LoadPage(p);
 }
 
 void MyFrame::OnBack(wxCommandEvent& WXUNUSED(event))
 {
-if (!m_Html -> HistoryBack()) wxMessageBox("You reached prehistory era!");
+if (!m_Html -> HistoryBack()) wxMessageBox(_("You reached prehistory era!"));
 }
 
 void MyFrame::OnForward(wxCommandEvent& WXUNUSED(event))
 {
-if (!m_Html -> HistoryForward()) wxMessageBox("No more items in history!");
+if (!m_Html -> HistoryForward()) wxMessageBox(_("No more items in history!"));
 }
 
 void MyFrame::OnProcessor(wxCommandEvent& WXUNUSED(event))
diff --git a/samples/html/test/test.dsp b/samples/html/test/test.dsp
index 58c5ea3bea..05abd7f3ce 100644
--- a/samples/html/test/test.dsp
+++ b/samples/html/test/test.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "htmltest - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "htmltest - Win32 Release"
 
diff --git a/samples/html/virtual/virtual.cpp b/samples/html/virtual/virtual.cpp
index f21e4d5b0f..bd681ed8a5 100644
--- a/samples/html/virtual/virtual.cpp
+++ b/samples/html/virtual/virtual.cpp
@@ -45,7 +45,7 @@ public:
 
 bool MyVFS::CanOpen(const wxString& location)
 {
-    return (GetProtocol(location) == "myVFS");
+    return (GetProtocol(location) == wxT("myVFS"));
 }
 
 
@@ -55,6 +55,7 @@ wxFSFile* MyVFS::OpenFile(wxFileSystem& fs, const wxString& location)
     wxFSFile *f;
     wxInputStream *str;
     static char buf[1024];
+    const wxWX2MBbuf loc = location.ToAscii();
 
     sprintf(buf, "<html><body><h2><i>You're in Node <u>%s</u></i></h2><p>"
                  "Where do you want to go?<br><blockquote>"
@@ -62,7 +63,8 @@ wxFSFile* MyVFS::OpenFile(wxFileSystem& fs, const wxString& location)
                  "<a href=\"%s-2\">sub-2</a><br>"
                  "<a href=\"%s-3\">sub-3</a><br>"
                  "</blockquote></body></html>",
-                 location.GetData(), location.GetData(), location.GetData(), location.GetData());
+                 (const char*)loc, (const char*)loc, (const char*)loc, 
+                 (const char*)loc);
 
     // NB: There's a terrible hack involved: we fill 'buf' with new data every
     //     time this method is called and return new wxMemoryInputStream pointing to it.
@@ -70,7 +72,7 @@ wxFSFile* MyVFS::OpenFile(wxFileSystem& fs, const wxString& location)
     //     this won't happen because wxHTML keeps only one "page" file opened at the
     //     time.
     str = new wxMemoryInputStream(buf, strlen(buf));
-    f = new wxFSFile(str, location, "text/html", wxEmptyString, wxDateTime::Today());
+    f = new wxFSFile(str, location, wxT("text/html"), wxEmptyString, wxDateTime::Today());
     
     return f;
 }
@@ -159,7 +161,7 @@ wxFSFile* MyVFS::OpenFile(wxFileSystem& fs, const wxString& location)
    bool MyApp::OnInit()
    {
     // Create the main application window
-      MyFrame *frame = new MyFrame("wxHtmlWindow testing application",
+      MyFrame *frame = new MyFrame(_("wxHtmlWindow testing application"),
          wxPoint(50, 50), wxSize(640, 480));
 
     // Show it and tell the application that it's our main window
@@ -188,14 +190,14 @@ wxHtmlWindow *html;
       wxMenu *menuFile = new wxMenu;
       wxMenu *menuNav = new wxMenu;
 
-      menuFile->Append(Minimal_Quit, "E&xit");
-      menuNav->Append(Minimal_Back, "Go &BACK");
-      menuNav->Append(Minimal_Forward, "Go &FORWARD");
+      menuFile->Append(Minimal_Quit, _("E&xit"));
+      menuNav->Append(Minimal_Back, _("Go &BACK"));
+      menuNav->Append(Minimal_Forward, _("Go &FORWARD"));
 
     // now append the freshly created menu to the menu bar...
       wxMenuBar *menuBar = new wxMenuBar;
-      menuBar->Append(menuFile, "&File");
-      menuBar->Append(menuNav, "&Navigate");
+      menuBar->Append(menuFile, _("&File"));
+      menuBar->Append(menuNav, _("&Navigate"));
 
     // ... and attach this menu bar to the frame
       SetMenuBar(menuBar);
@@ -203,9 +205,9 @@ wxHtmlWindow *html;
       CreateStatusBar(2);
 
       html = new wxHtmlWindow(this);
-      html -> SetRelatedFrame(this, "VFS Demo: '%s'");
+      html -> SetRelatedFrame(this, _("VFS Demo: '%s'"));
       html -> SetRelatedStatusBar(1);
-      html -> LoadPage("start.htm");
+      html -> LoadPage(wxT("start.htm"));
    }
 
 
@@ -219,11 +221,11 @@ wxHtmlWindow *html;
 
    void MyFrame::OnBack(wxCommandEvent& WXUNUSED(event))
    {
-   if (!html -> HistoryBack()) wxMessageBox("You reached prehistory era!");
+   if (!html -> HistoryBack()) wxMessageBox(_("You reached prehistory era!"));
    }
 
 
    void MyFrame::OnForward(wxCommandEvent& WXUNUSED(event))
    {
-   if (!html -> HistoryForward()) wxMessageBox("No more items in history!");
+   if (!html -> HistoryForward()) wxMessageBox(_("No more items in history!"));
    }
diff --git a/samples/html/virtual/virtual.dsp b/samples/html/virtual/virtual.dsp
index 12d3189514..ba5ea226b0 100644
--- a/samples/html/virtual/virtual.dsp
+++ b/samples/html/virtual/virtual.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "htmlvirtual - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "htmlvirtual - Win32 Release"
 
diff --git a/samples/html/widget/widget.cpp b/samples/html/widget/widget.cpp
index d0849a04ce..b567e193f4 100644
--- a/samples/html/widget/widget.cpp
+++ b/samples/html/widget/widget.cpp
@@ -153,7 +153,7 @@ IMPLEMENT_APP(MyApp)
 bool MyApp::OnInit()
 {
     // Create the main application window
-    MyFrame *frame = new MyFrame( "wxHtmlWindow testing application",
+    MyFrame *frame = new MyFrame( _("wxHtmlWindow testing application"),
         wxPoint(50, 50), wxSize(640, 480) );
 
     // Show it and tell the application that it's our main window
@@ -181,14 +181,14 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
     wxMenu *menuFile = new wxMenu;
     wxMenu *menuNav = new wxMenu;
 
-    menuFile->Append(Minimal_Quit, "E&xit");
-    menuNav->Append(Minimal_Back, "Go &BACK");
-    menuNav->Append(Minimal_Forward, "Go &FORWARD");
+    menuFile->Append(Minimal_Quit, _("E&xit"));
+    menuNav->Append(Minimal_Back, _("Go &BACK"));
+    menuNav->Append(Minimal_Forward, _("Go &FORWARD"));
 
     // now append the freshly created menu to the menu bar...
     wxMenuBar *menuBar = new wxMenuBar;
-    menuBar->Append(menuFile, "&File");
-    menuBar->Append(menuNav, "&Navigate");
+    menuBar->Append(menuFile, _("&File"));
+    menuBar->Append(menuNav, _("&Navigate"));
 
     // ... and attach this menu bar to the frame
     SetMenuBar(menuBar);
@@ -196,9 +196,9 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
     CreateStatusBar(2);
 
     html = new wxHtmlWindow(this);
-    html -> SetRelatedFrame(this, "VFS Demo: '%s'");
+    html -> SetRelatedFrame(this, _("VFS Demo: '%s'"));
     html -> SetRelatedStatusBar(1);
-    html -> LoadPage("start.htm");
+    html -> LoadPage(wxT("start.htm"));
 }
 
 
@@ -212,11 +212,11 @@ void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
 
 void MyFrame::OnBack(wxCommandEvent& WXUNUSED(event))
 {
-    if (!html -> HistoryBack()) wxMessageBox("You reached prehistory era!");
+    if (!html -> HistoryBack()) wxMessageBox(_("You reached prehistory era!"));
 }
 
 
 void MyFrame::OnForward(wxCommandEvent& WXUNUSED(event))
 {
-    if (!html -> HistoryForward()) wxMessageBox("No more items in history!");
+    if (!html -> HistoryForward()) wxMessageBox(_("No more items in history!"));
 }
diff --git a/samples/html/widget/widget.dsp b/samples/html/widget/widget.dsp
index 354881b545..1362335885 100644
--- a/samples/html/widget/widget.dsp
+++ b/samples/html/widget/widget.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "htmlwidget - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "htmlwidget - Win32 Release"
 
diff --git a/samples/html/zip/zip.cpp b/samples/html/zip/zip.cpp
index 3eb2d0daa4..655715c590 100644
--- a/samples/html/zip/zip.cpp
+++ b/samples/html/zip/zip.cpp
@@ -112,7 +112,7 @@ bool MyApp::OnInit()
     wxFileSystem::AddHandler(new wxZipFSHandler);
 
     // Create the main application window
-    MyFrame *frame = new MyFrame( "wxHtmlWindow testing application",
+    MyFrame *frame = new MyFrame(_("wxHtmlWindow testing application"),
         wxPoint(50, 50), wxSize(640, 480) );
 
     // Show it and tell the application that it's our main window
@@ -141,14 +141,14 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
     wxMenu *menuFile = new wxMenu;
     wxMenu *menuNav = new wxMenu;
 
-    menuFile->Append(Minimal_Quit, "E&xit");
-    menuNav->Append(Minimal_Back, "Go &BACK");
-    menuNav->Append(Minimal_Forward, "Go &FORWARD");
+    menuFile->Append(Minimal_Quit, _("E&xit"));
+    menuNav->Append(Minimal_Back, _("Go &BACK"));
+    menuNav->Append(Minimal_Forward, _("Go &FORWARD"));
 
     // now append the freshly created menu to the menu bar...
     wxMenuBar *menuBar = new wxMenuBar;
-    menuBar->Append(menuFile, "&File");
-    menuBar->Append(menuNav, "&Navigate");
+    menuBar->Append(menuFile, _("&File"));
+    menuBar->Append(menuNav, _("&Navigate"));
 
     // ... and attach this menu bar to the frame
     SetMenuBar(menuBar);
@@ -157,9 +157,9 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
 
     {
     html = new wxHtmlWindow(this);
-    html -> SetRelatedFrame(this, "HTML : %s");
+    html -> SetRelatedFrame(this, _("HTML : %s"));
     html -> SetRelatedStatusBar(0);
-    html -> LoadPage("start.htm");
+    html -> LoadPage(wxT("start.htm"));
     }
 }
 
@@ -174,10 +174,10 @@ void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
 
 void MyFrame::OnBack(wxCommandEvent& WXUNUSED(event))
 {
-    if (!html -> HistoryBack()) wxMessageBox("You reached prehistory era!");
+    if (!html -> HistoryBack()) wxMessageBox(_("You reached prehistory era!"));
 }
 
 void MyFrame::OnForward(wxCommandEvent& WXUNUSED(event))
 {
-    if (!html -> HistoryForward()) wxMessageBox("No more items in history!");
+    if (!html -> HistoryForward()) wxMessageBox(_("No more items in history!"));
 }
diff --git a/samples/html/zip/zip.dsp b/samples/html/zip/zip.dsp
index c3fd85f552..cc022c671a 100644
--- a/samples/html/zip/zip.dsp
+++ b/samples/html/zip/zip.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "htmlzip - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "htmlzip - Win32 Release"
 
diff --git a/samples/image/horse3.ani b/samples/image/horse3.ani
new file mode 100644
index 0000000000000000000000000000000000000000..24ef4b1e23dd62589814fad4102b7e14d52bfbfd
GIT binary patch
literal 17268
zcmeHN&1w`u5FQg@(MxjDi;y55e2XZG5D*3R1%fE%U<AoMc^5Cffj99vJoyHC^dM=w
zCR0hxH#J>VoyqP-cc9bt^Zj(s>`umsFLs|iIegSK4<9{$ws)}q?q1V0G_H3ePrc)2
z&aUP0aqsZWW}Yd(A;#0)m#^+*y|*9t-tWKuaPXBt&06McZ#T_mbG!MRE4Om(ejd5h
zJjf$=^Ur*==+kiZ^Xi|0PhY+#9*fuwd&@bx4&p{RgqNNeNA#Fm!(pyAd-WvO!;$z>
z?9n0&YLs}0P2GWY%1b)3hg{i{G2$ra1ACHZ#mJ=`IU1%^Lw+eA(;?1S&#IUFuxDvS
z`>1c_QGE+<`C;GEi}X?3lSlL|tj7;AmS&`n+MYb3Z(%)th_N)iebn{lUVRJa^+TMc
z>*=FrB=_iBn1~-@Ep1O9H6yu4zl4c+Y1opsr>AK~Y90>_6Y=n3HJ`DXSF;v3=1cWj
z%^IGzjvAd>4*J*XOu?J?xu0UqmIgmVxAVzPN+%oX=+7+e{9aF6zt+>nk37E3((HJa
z)|y%V>}_;oE6;N5<ebKl7%9hjtf!P^QkG4L#zr1L^T@~QErxZ4{`J26hA(2T(x2n#
zI%@9>?5E9<H88)1!(46l>PfDLBk`r!qeU3hDDe<`dLK$>Z_;GHq$7KhL$U117;%*I
zfj!ByV&qbe91T;dA-|N5=@4hEXVpu7*t4{vebl$|sJ?}_{IGB7Mf#}i$s_s}*5ij5
zOEc0(ZBHK2x3C^R#8{f%KI(e&G5zMjaiTHS$GX=Kai~N2yu4{GEC2JqM9Fh6uYGg(
z@!97<#w{K%XfVg~&(|LP$(M)Z1nma!o>upnm)^23<AKl=g}`@i3cHeq+$+W<-qbzx
zrhICTk{<e(u$SGN_uemiKcvsk(Cxf>i!qN=zVhgu0r?H@HRhB^e~zQpwRZ;g)8@z;
zm|w$Tt~Pu1B-g`{_)_fAA`EJjc!=dYAl4}_>Bt^(WlzS4qnr=yNuCuWm+}E8@UID#
zKM*`GX#T9x&VeT@);d?WBj$|F{8T&E$GYv<M<5^btK{F`nJ>frVjkJQ&#{j}Kbf;P
z&9Xig_mzFwm=@L9zl4!JpJN{-`4~t1`>Os7Jvonf6UXn^N3x%s=jBZ+k-i)+qklfZ
z?H?9-jdJdv(O4#RDCWJ>%sqO0!2YYZ7^iQ2VrSWj4*aflDptez+G}&QXa#ZE{42IF
z8HLWpWMWGq#Lv*}yn2hVBv<8sT86yCEMni%pX2B{YVQo}r_GTyFu#VwTy6I1Nv?+@
z@uk?KMHtj5@es>*K&(?<(vdyn%3d!PPj$>0^Y8JDgtg>6pma|+^2t)-F&^*>1>|y0
z6pHz&7GuU~bHQ%V()hBb`OBKbQams)3dqM?^WqxK1H9pfZRBIlURbA`d%O<R_T-wb
ztg(lzVaynhA7W5T=4ZOfd6qbiQQMO<SDV>i>uEKQA7V5eu0{M&*PF8!&Jl0odi@ZG
zzO7bwztehJ4K*XVs<(vx`2?@tVs!r>LteAUwbrmbt?s(hXJ6K}Skt<2E%3R!u$LjA
u?U`!^b<*~kXMWhCKipG3sevKZ`gPvqZ@@3Ny=ebS*j?Vz`LTev7=HoZxT`Jz

literal 0
HcmV?d00001

diff --git a/samples/image/image.cpp b/samples/image/image.cpp
index 92e4e44c98..d2e2924524 100644
--- a/samples/image/image.cpp
+++ b/samples/image/image.cpp
@@ -60,12 +60,14 @@ public:
     wxBitmap  *my_horse_ico16;
     wxBitmap  *my_horse_ico;
     wxBitmap  *my_horse_cur;
+    wxBitmap  *my_horse_ani;
 
     wxBitmap  *my_smile_xbm;
     wxBitmap  *my_square;
     wxBitmap  *my_anti;
 
     int xH, yH ;
+    int m_ani_images ;
 
 protected:
     wxBitmap m_bmpSmileXpm;
@@ -264,11 +266,14 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id,
     my_horse_ico16 = (wxBitmap*) NULL;
     my_horse_ico = (wxBitmap*) NULL;
     my_horse_cur = (wxBitmap*) NULL;
+    my_horse_ani = (wxBitmap*) NULL;
 
     my_smile_xbm = (wxBitmap*) NULL;
     my_square = (wxBitmap*) NULL;
     my_anti = (wxBitmap*) NULL;
 
+    m_ani_images = 0 ;
+
     SetBackgroundColour(* wxWHITE);
 
     wxBitmap bitmap( 100, 100 );
@@ -285,9 +290,9 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id,
     // try to find the directory with our images
     wxString dir;
     if ( wxFile::Exists(wxT("./horse.png")) )
-        dir = "./";
+        dir = wxT("./");
     else if ( wxFile::Exists(wxT("../horse.png")) )
-        dir = "../";
+        dir = wxT("../");
     else
         wxLogWarning(wxT("Can't find image files in either '.' or '..'!"));
 
@@ -322,7 +327,7 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id,
 #if wxUSE_GIF
     image.Destroy();
 
-    if ( !image.LoadFile( dir + wxString("horse.gif")))
+    if ( !image.LoadFile( dir + _T("horse.gif" )) )
         wxLogError(wxT("Can't load GIF image"));
     else
         my_horse_gif = new wxBitmap( image );
@@ -417,6 +422,27 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id,
         xH = 30 + image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_X) ;
         yH = 2420 + image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_Y) ;
     }
+
+    m_ani_images = wxImage::GetImageCount ( dir + _T("horse.ani"), wxBITMAP_TYPE_ANI );
+    if (m_ani_images==0)
+        wxLogError(wxT("No ANI-format images found"));
+    else
+        my_horse_ani = new wxBitmap [m_ani_images];
+    int i ;
+    for (i=0; i < m_ani_images; i++)
+    {
+        image.Destroy();
+        if (!image.LoadFile( dir + _T("horse.ani"), wxBITMAP_TYPE_ANI, i ))
+        {
+            wxString tmp = wxT("Can't load image number ");
+            tmp << i ;
+            wxLogError(tmp);
+        }
+        else    
+            my_horse_ani [i] = wxBitmap( image );
+    }
+    
+    
 #endif
 
     image.Destroy();
@@ -454,6 +480,7 @@ MyCanvas::~MyCanvas()
     delete my_horse_ico16;
     delete my_horse_ico;
     delete my_horse_cur;
+    delete [] my_horse_ani;
     delete my_smile_xbm;
     delete my_square;
     delete my_anti;
@@ -611,6 +638,13 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
         dc.DrawLine (xH-10,yH,xH+10,yH);
         dc.DrawLine (xH,yH-10,xH,yH+10);
     }
+    dc.DrawText( _T("ANI handler"), 230, 2390 );
+    int i ;
+    for (i=0; i < m_ani_images; i ++)
+        if (my_horse_ani[i].Ok())
+        {
+            dc.DrawBitmap( my_horse_ani[i], 230 + i * 2 * my_horse_ani[i].GetWidth() , 2420, TRUE );
+        }
 }
 
 void MyCanvas::CreateAntiAliasedBitmap()
@@ -768,6 +802,7 @@ bool MyApp::OnInit()
 #if wxUSE_ICO_CUR
   wxImage::AddHandler( new wxICOHandler );
   wxImage::AddHandler( new wxCURHandler );
+  wxImage::AddHandler( new wxANIHandler );
 #endif
 
   wxFrame *frame = new MyFrame();
diff --git a/samples/image/image.dsp b/samples/image/image.dsp
index b13f17b54b..7d52e747aa 100644
--- a/samples/image/image.dsp
+++ b/samples/image/image.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "image - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "image - Win32 Release"
 
diff --git a/samples/internat/de/internat.mo b/samples/internat/de/internat.mo
index c5adfd9059dd7b623ef45f4655aaa8ac617ada90..a8204ad49d03117991d03991453dafe83629a0f8 100644
GIT binary patch
delta 701
zcmYMwL2J}N6bJCx+UlBCt@R*i4?~4TEE6}PYc|%>uo>52vRQVw1wA#p9b;roN-|3K
zl!IRS0lcW-Q4l;8JbCgPcof8=R}X?9c<?`KXdk@&&CI^cyqPc6{rTei((FruSVS%(
z-yqMcaRon!J$MpM;2eAoRqZ}pfUnB+ckndkA7BH1D%XF(CCvZ8n{Z)<kc-fP#|bIO
zHU{dz2ws6jIe!l?;iJ#6iuE7IrXP@>@Eqp9;aRB7{%>p<ss>hI8yZl96L<l>fKB)o
zuE4Lbiu1|ea$yeFQw5h{4GtmBpWYr!H$yLE9;seH9j0Ccw>XSb7@@CeVB5nugOPeI
z6(^ADLZoI7(}Qt^SBh?yJ{BX%+#R+hvOG=`i+1hSJ-f~67Vq`lprdtz0c&L<l=zo9
zp%fN1n$0Gwo9voNjfQo-v06u<koCl~SnX2Q-RE|X`2llmdN;6qclANg;hGobk`1yj
z$%}C))6AlGHa(AaY@gFL?%S@nVLMKb_xtOpO`@k^B-lWNPb})$o%W_`Zq4&H#<8Ae
z(YoflK0j*T(Cb<&O{7S0$YdAYO0g%e?vBGaxkX2h!Ymi^cATfoH1!)zW*k+kmL7_X
c@nn?l#7SgPa~MmFe5(ybrtA8_$C=lafAbA|ivR!s

delta 404
zcmX}ouTMfz6u|NG1eD(>1~xPiZXmn@!x<@B+-Up(Y;VBE&@tU;FH=nF=CqJajzBX}
z36L4V85n_C9fj|CUOn4+pL_1TyXW3FNX(-CG8=vrB14{%4`hx^IwCP_VFY`4h<!}r
zz|KEmn)($h_-5xnF-yI|Gu+|{mi9#Uv4-^VrOu$pME7?>o>3dVqi!7IF@E3?&h7da
zYU4Ft;t$5L8WPFl6`o@g3pm6mPHa65)_sw028M-Vm=B?wH1zdcIyhASPKwkmdbz*Q
yKSAFhIOad}VhLO6BMwMYZCu~ox~?ncqTTVt)NZ`)=-w$ik%eh^z0oH0;_LteBquNc

diff --git a/samples/internat/de/internat.po b/samples/internat/de/internat.po
index 8f4bb2036c..c33de1ebf0 100644
--- a/samples/internat/de/internat.po
+++ b/samples/internat/de/internat.po
@@ -20,7 +20,7 @@ msgstr "Internationales wxWindows Programm"
 
 #: ../internat.cpp:128
 msgid "&About..."
-msgstr "Ü&ber"
+msgstr "Ü&ber..."
 
 #: ../internat.cpp:130
 msgid "E&xit"
diff --git a/samples/internat/internat.cpp b/samples/internat/internat.cpp
index d009e1cbf8..42ac1167e8 100644
--- a/samples/internat/internat.cpp
+++ b/samples/internat/internat.cpp
@@ -120,7 +120,7 @@ bool MyApp::OnInit()
 #ifdef __LINUX__
     {
     wxLogNull noLog;
-    m_locale.AddCatalog("fileutils");  // 3) and another just for testing
+    m_locale.AddCatalog(_T("fileutils"));  // 3) and another just for testing
     }
 #endif
 
@@ -171,10 +171,12 @@ void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event) )
 void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 {
     wxString localeInfo;
+    wxString locale = m_locale.GetLocale();
+    wxString sysname = m_locale.GetSysName();
+    wxString canname = m_locale.GetCanonicalName();
+
     localeInfo.Printf( _("Language: %s\nSystem locale name: %s\nCanonical locale name: %s\n"),
-        m_locale.GetLocale(),
-        m_locale.GetSysName().c_str(),
-        m_locale.GetCanonicalName().c_str() );
+        locale.c_str(), sysname.c_str(), canname.c_str() );
 
     wxMessageDialog(this, wxString(_("I18n sample\n(c) 1998, 1999 Vadim Zeitlin and Julian Smart"))
         + wxT("\n\n") + localeInfo,
@@ -193,7 +195,7 @@ void MyFrame::OnPlay(wxCommandEvent& WXUNUSED(event))
     if ( num == 0 )
         str = _("You've probably entered an invalid number.");
     else if ( num == 9 )  // this message is not translated (not in catalog)
-        str = "You've found a bug in this program!";
+        str = _T("You've found a bug in this program!");
     else if ( num != 17 ) // a more implicit way to write _()
         str = wxGetTranslation(wxT("Bad luck! try again..."));
     else
diff --git a/samples/internat/internat.dsp b/samples/internat/internat.dsp
index 5bae3cd4e7..9ef0705258 100644
--- a/samples/internat/internat.dsp
+++ b/samples/internat/internat.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "internat - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "internat - Win32 Release"
 
diff --git a/samples/ipc/client.dsp b/samples/ipc/client.dsp
index 81561b912f..1cd5936efe 100644
--- a/samples/ipc/client.dsp
+++ b/samples/ipc/client.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "ipcclient - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "ipcclient - Win32 Release"
 
diff --git a/samples/ipc/server.dsp b/samples/ipc/server.dsp
index ef4c46dbe3..aebc681acf 100644
--- a/samples/ipc/server.dsp
+++ b/samples/ipc/server.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "ipcserver - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "ipcserver - Win32 Release"
 
diff --git a/samples/joytest/joytest.dsp b/samples/joytest/joytest.dsp
index 7c78279668..d4a280e280 100644
--- a/samples/joytest/joytest.dsp
+++ b/samples/joytest/joytest.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "joytest - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "joytest - Win32 Release"
 
diff --git a/samples/keyboard/keyboard.cpp b/samples/keyboard/keyboard.cpp
index 479d539f4c..aca5749e2b 100644
--- a/samples/keyboard/keyboard.cpp
+++ b/samples/keyboard/keyboard.cpp
@@ -465,7 +465,8 @@ void TextWindow::LogEvent(const wxChar *name, wxKeyEvent& event)
                 if ( keycode == 0 )
                     key.Printf(_T("NUL"));
                 else if ( keycode < 27 )
-                    key.Printf(_T("Ctrl-%c"), _T('A') + keycode - 1);
+                    key.Printf(_T("Ctrl-%c"),
+                                (unsigned char)(_T('A') + keycode - 1));
                 else
                     key.Printf(_T("'%c'"), (unsigned char)keycode);
             }
@@ -488,8 +489,8 @@ void TextWindow::LogEvent(const wxChar *name, wxKeyEvent& event)
     if ( m_showRaw )
     {
         msg += wxString::Format(_T(" (raw key code/flags: %lu and 0x%lx)"),
-                                event.GetRawKeyCode(),
-                                event.GetRawKeyFlags());
+                                (unsigned long)event.GetRawKeyCode(),
+                                (unsigned long)event.GetRawKeyFlags());
     }
 
     wxLogMessage(msg);
diff --git a/samples/keyboard/keyboard.dsp b/samples/keyboard/keyboard.dsp
index 4e8926962c..ce1a859a26 100644
--- a/samples/keyboard/keyboard.dsp
+++ b/samples/keyboard/keyboard.dsp
@@ -55,7 +55,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw233.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw234.lib /nologo /subsystem:windows /machine:I386
 
 !ELSEIF  "$(CFG)" == "keyboard - Win32 Debug DLL"
 
@@ -81,7 +81,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw233d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw234d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 
 !ELSEIF  "$(CFG)" == "keyboard - Win32 Release"
 
diff --git a/samples/keyboard/keyboard.rc b/samples/keyboard/keyboard.rc
index 2b5e356d5f..b86c4e2265 100644
--- a/samples/keyboard/keyboard.rc
+++ b/samples/keyboard/keyboard.rc
@@ -1 +1 @@
-/* Placeholder so makefile doesn't complain */
+#include "wx/msw/wx.rc"
diff --git a/samples/layout/layout.cpp b/samples/layout/layout.cpp
index c3bfb5e58d..5effcb4f1f 100644
--- a/samples/layout/layout.cpp
+++ b/samples/layout/layout.cpp
@@ -45,7 +45,7 @@ MyApp::MyApp()
 bool MyApp::OnInit()
 {
   // Create the main frame window
-  frame = new MyFrame((MyFrame *) NULL, (char *) "wxWindows Layout Demo", 0, 0, 550, 500);
+  frame = new MyFrame(NULL, "wxWindows Layout Demo", -1, -1, 400, 300);
 
   frame->SetAutoLayout(TRUE);
 
@@ -55,7 +55,6 @@ bool MyApp::OnInit()
   // Make a menubar
   wxMenu *file_menu = new wxMenu;
 
-  file_menu->Append(LAYOUT_LOAD_FILE, "&Load file",      "Load a text file");
   file_menu->Append(LAYOUT_TEST_SIZER, "&Test sizers",      "Test sizer");
   file_menu->Append(LAYOUT_TEST_NB, "&Test notebook sizers",      "Test notebook sizer");
 
@@ -74,21 +73,19 @@ bool MyApp::OnInit()
   frame->SetMenuBar(menu_bar);
 
   // Make a panel
-  frame->panel = new wxPanel(frame, 0, 0, 1000, 500, wxTAB_TRAVERSAL);
-  frame->panel->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
-//  frame->panel->SetAutoLayout(TRUE);
+  wxPanel *panel = new wxPanel(frame);
 
   // Create some panel items
-  wxButton *btn1 = new wxButton(frame->panel, -1, "A button (1)") ;
+  wxButton *btn1 = new wxButton(panel, -1, "A button (1)") ;
 
   wxLayoutConstraints *b1 = new wxLayoutConstraints;
-  b1->centreX.SameAs    (frame->panel, wxCentreX);
-  b1->top.SameAs        (frame->panel, wxTop, 5);
-  b1->width.PercentOf   (frame->panel, wxWidth, 80);
-  b1->height.PercentOf  (frame->panel, wxHeight, 10);
+  b1->centreX.SameAs    (panel, wxCentreX);
+  b1->top.SameAs        (panel, wxTop, 5);
+  b1->width.PercentOf   (panel, wxWidth, 80);
+  b1->height.AsIs       ();
   btn1->SetConstraints(b1);
 
-  wxListBox *list = new wxListBox(frame->panel, -1,
+  wxListBox *list = new wxListBox(panel, -1,
                                   wxPoint(-1, -1), wxSize(200, 100));
   list->Append("Apple");
   list->Append("Pear");
@@ -98,28 +95,24 @@ bool MyApp::OnInit()
 
   wxLayoutConstraints *b2 = new wxLayoutConstraints;
   b2->top.Below         (btn1, 5);
-  b2->left.SameAs       (frame->panel, wxLeft, 5);
-  b2->width.PercentOf   (frame->panel, wxWidth, 40);
-  b2->bottom.SameAs     (frame->panel, wxBottom, 5);
+  b2->left.SameAs       (panel, wxLeft, 5);
+  b2->width.PercentOf   (panel, wxWidth, 40);
+  b2->bottom.SameAs     (panel, wxBottom, 5);
   list->SetConstraints(b2);
 
-  wxTextCtrl *mtext = new wxTextCtrl(frame->panel, -1, "Some text",
-                        wxPoint(-1, -1), wxSize(150, 100));
+  wxTextCtrl *mtext = new wxTextCtrl(panel, -1, "Some text");
 
   wxLayoutConstraints *b3 = new wxLayoutConstraints;
   b3->top.Below         (btn1, 5);
   b3->left.RightOf      (list, 5);
-  b3->right.SameAs      (frame->panel, wxRight, 5);
-  b3->bottom.SameAs     (frame->panel, wxBottom, 5);
+  b3->right.SameAs      (panel, wxRight, 5);
+  b3->bottom.SameAs     (panel, wxBottom, 5);
   mtext->SetConstraints(b3);
 
-  frame->canvas = new MyWindow(frame, 0, 0, 400, 400, wxRETAINED);
-
-  // Give it scrollbars: the virtual canvas is 20 * 50 = 1000 pixels in each direction
-//  canvas->SetScrollbars(20, 20, 50, 50, 4, 4);
+  MyWindow *canvas = new MyWindow(frame, 0, 0, 400, 400, wxRETAINED);
 
   // Make a text window
-  frame->text_window = new MyTextWindow(frame, 0, 250, 400, 250);
+  MyTextWindow *text_window = new MyTextWindow(frame, 0, 250, 400, 150);
 
   // Set constraints for panel subwindow
   wxLayoutConstraints *c1 = new wxLayoutConstraints;
@@ -129,32 +122,33 @@ bool MyApp::OnInit()
   c1->right.PercentOf   (frame, wxWidth, 50);
   c1->height.PercentOf  (frame, wxHeight, 50);
 
-  frame->panel->SetConstraints(c1);
+  panel->SetConstraints(c1);
 
   // Set constraints for canvas subwindow
   wxLayoutConstraints *c2 = new wxLayoutConstraints;
 
-  c2->left.SameAs       (frame->panel, wxRight);
+  c2->left.SameAs       (panel, wxRight);
   c2->top.SameAs        (frame, wxTop);
   c2->right.SameAs      (frame, wxRight);
   c2->height.PercentOf  (frame, wxHeight, 50);
 
-  frame->canvas->SetConstraints(c2);
+  canvas->SetConstraints(c2);
 
   // Set constraints for text subwindow
   wxLayoutConstraints *c3 = new wxLayoutConstraints;
   c3->left.SameAs       (frame, wxLeft);
-  c3->top.Below         (frame->panel);
+  c3->top.Below         (panel);
   c3->right.SameAs      (frame, wxRight);
   c3->bottom.SameAs     (frame, wxBottom);
 
-  frame->text_window->SetConstraints(c3);
+  text_window->SetConstraints(c3);
 
   frame->Show(TRUE);
 
   frame->SetStatusText("wxWindows layout demo");
 
   SetTopWindow(frame);
+
   return TRUE;
 }
 
@@ -163,43 +157,26 @@ bool MyApp::OnInit()
 //-----------------------------------------------------------------
 
 // Define my frame constructor
-MyFrame::MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h):
-  wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h))
+MyFrame::MyFrame(wxFrame *frame, const char *title, int x, int y, int w, int h)
+       : wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h))
 {
-  panel = (wxPanel *) NULL;
-  text_window = (MyTextWindow *) NULL;
-  canvas = (MyWindow *) NULL;
 }
 
 BEGIN_EVENT_TABLE(MyFrame, wxFrame)
-  EVT_MENU(LAYOUT_LOAD_FILE, MyFrame::LoadFile)
-  EVT_MENU(LAYOUT_QUIT, MyFrame::Quit)
+  EVT_MENU(LAYOUT_QUIT, MyFrame::OnQuit)
   EVT_MENU(LAYOUT_TEST_SIZER, MyFrame::TestSizers)
   EVT_MENU(LAYOUT_TEST_NB, MyFrame::TestNotebookSizers)
   EVT_MENU(LAYOUT_ABOUT, MyFrame::About)
-  EVT_SIZE(MyFrame::OnSize)
 END_EVENT_TABLE()
 
-void MyFrame::LoadFile(wxCommandEvent& WXUNUSED(event) )
-{
-      wxString s = wxFileSelector( _T("Load text file"), (const wxChar *) NULL,
-                                   (const wxChar *) NULL, (const wxChar *) NULL, _T("*.txt") );
-      if (s != "")
-      {
-#ifdef __WXMSW__
-        frame->text_window->LoadFile(s);
-#endif
-      }
-}
-
-void MyFrame::Quit(wxCommandEvent& WXUNUSED(event) )
+void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event) )
 {
-    this->Close(TRUE);
+    Close(TRUE);
 }
 
 void MyFrame::TestSizers(wxCommandEvent& WXUNUSED(event) )
 {
-    MySizerFrame *newFrame = new MySizerFrame((MyFrame *) NULL, "Sizer Test Frame", 50, 50 );
+    MySizerFrame *newFrame = new MySizerFrame(NULL, "Sizer Test Frame", 50, 50);
     newFrame->Show(TRUE);
 }
 
@@ -256,14 +233,28 @@ void MyFrame::About(wxCommandEvent& WXUNUSED(event) )
             "About Layout Demo", wxOK|wxCENTRE);
 }
 
-// Size the subwindows when the frame is resized
-void MyFrame::OnSize(wxSizeEvent& WXUNUSED(event) )
+//-----------------------------------------------------------------
+//  MyWindow
+//-----------------------------------------------------------------
+
+BEGIN_EVENT_TABLE(MyWindow, wxWindow)
+    EVT_PAINT(MyWindow::OnPaint)
+END_EVENT_TABLE()
+
+// Define a constructor for my canvas
+MyWindow::MyWindow(wxFrame *frame, int x, int y, int w, int h, long style)
+        : wxWindow(frame, -1, wxPoint(x, y), wxSize(w, h), style)
 {
-    Layout();
 }
 
-void MyFrame::Draw(wxDC& dc, bool WXUNUSED(draw_bitmaps) )
+MyWindow::~MyWindow()
 {
+}
+
+// Define the repainting behaviour
+void MyWindow::OnPaint(wxPaintEvent& WXUNUSED(event) )
+{
+  wxPaintDC dc(this);
   dc.SetPen(* wxGREEN_PEN);
   dc.DrawLine(0, 0, 200, 200);
   dc.DrawLine(200, 0, 0, 200);
@@ -284,37 +275,12 @@ void MyFrame::Draw(wxDC& dc, bool WXUNUSED(draw_bitmaps) )
   dc.DrawArc(50, 300, 100, 250, 100, 300 );
 }
 
-//-----------------------------------------------------------------
-//  MyWindow
-//-----------------------------------------------------------------
-
-BEGIN_EVENT_TABLE(MyWindow, wxWindow)
-    EVT_PAINT(MyWindow::OnPaint)
-END_EVENT_TABLE()
-
-// Define a constructor for my canvas
-MyWindow::MyWindow(wxFrame *frame, int x, int y, int w, int h, long style):
- wxWindow(frame, -1, wxPoint(x, y), wxSize(w, h), style)
-{
-}
-
-MyWindow::~MyWindow()
-{
-}
-
-// Define the repainting behaviour
-void MyWindow::OnPaint(wxPaintEvent& WXUNUSED(event) )
-{
-  wxPaintDC dc(this);
-  frame->Draw(dc,TRUE);
-}
-
 //-----------------------------------------------------------------
 //  MySizerFrame
 //-----------------------------------------------------------------
 
-MySizerFrame::MySizerFrame(wxFrame *frame, char *title, int x, int y ):
-  wxFrame(frame, -1, title, wxPoint(x, y) )
+MySizerFrame::MySizerFrame(wxFrame *frame, char *title, int x, int y )
+            : wxFrame(frame, -1, title, wxPoint(x, y) )
 {
   // we want to get a dialog that is stretchable because it
   // has a text ctrl in the middle. at the bottom, we have
@@ -394,12 +360,8 @@ MySizerFrame::MySizerFrame(wxFrame *frame, char *title, int x, int y ):
      0,          // make vertically unstretchable
      wxCENTER ); // no border and centre horizontally
 
-  SetAutoLayout( TRUE );
-
-  // set frame to minimum size
-  topsizer->Fit( this );
-
-  // don't allow frame to get smaller than what the sizers tell ye
+  // don't allow frame to get smaller than what the sizers tell it and also set
+  // the initial size as calculated by the sizers
   topsizer->SetSizeHints( this );
 
   SetSizer( topsizer );
diff --git a/samples/layout/layout.dsp b/samples/layout/layout.dsp
index ea1fab9559..f041f9d668 100644
--- a/samples/layout/layout.dsp
+++ b/samples/layout/layout.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "layout - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "layout - Win32 Release"
 
diff --git a/samples/layout/layout.h b/samples/layout/layout.h
index eba0332e16..e70addbe1a 100644
--- a/samples/layout/layout.h
+++ b/samples/layout/layout.h
@@ -24,15 +24,10 @@ class MyWindow;
 class MyFrame: public wxFrame
 {
 public:
-    wxPanel *panel;
-    MyTextWindow *text_window;
-    MyWindow *canvas;
-    MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h);
-    void OnSize(wxSizeEvent& event);
-    void Draw(wxDC& dc, bool draw_bitmaps = TRUE);
+    MyFrame(wxFrame *frame, const char *title, int x, int y, int w, int h);
+
+    void OnQuit(wxCommandEvent& event);
 
-    void LoadFile(wxCommandEvent& event);
-    void Quit(wxCommandEvent& event);
     void TestSizers(wxCommandEvent& event);
     void TestNotebookSizers(wxCommandEvent& event);
     void About(wxCommandEvent& event);
@@ -61,7 +56,7 @@ public:
     ~MyWindow();
     void OnPaint(wxPaintEvent& event);
 
-private:    
+private:
     DECLARE_EVENT_TABLE()
 };
 
@@ -75,6 +70,5 @@ public:
 #define LAYOUT_QUIT       100
 #define LAYOUT_TEST       101
 #define LAYOUT_ABOUT      102
-#define LAYOUT_LOAD_FILE  103
 #define LAYOUT_TEST_SIZER 104
 #define LAYOUT_TEST_NB    105
diff --git a/samples/listctrl/listctrl.dsp b/samples/listctrl/listctrl.dsp
index 3705b62a9e..f471bbe9b3 100644
--- a/samples/listctrl/listctrl.dsp
+++ b/samples/listctrl/listctrl.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "listctrl - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "listctrl - Win32 Release"
 
diff --git a/samples/listctrl/listtest.cpp b/samples/listctrl/listtest.cpp
index 9d81a24486..3777ac5c16 100644
--- a/samples/listctrl/listtest.cpp
+++ b/samples/listctrl/listtest.cpp
@@ -117,7 +117,9 @@ static const int NUM_ICONS = 9;
 int wxCALLBACK MyCompareFunction(long item1, long item2, long sortData)
 {
     // inverse the order
-    return item1 < item2;
+    if (item1 < item2) return -1;
+    if (item1 > item2) return 1;
+    return 0;
 }
 
 // `Main program' equivalent, creating windows and returning main app frame
@@ -223,7 +225,8 @@ MyFrame::MyFrame(const wxChar *title, int x, int y, int w, int h)
     menubar->Append(menuCol, _T("&Colour"));
     SetMenuBar(menubar);
 
-    m_logWindow = new wxTextCtrl(this, -1, wxEmptyString,
+    m_panel = new wxPanel(this, -1);
+    m_logWindow = new wxTextCtrl(m_panel, -1, wxEmptyString,
                                  wxDefaultPosition, wxDefaultSize,
                                  wxTE_MULTILINE | wxSUNKEN_BORDER);
 
@@ -328,7 +331,7 @@ void MyFrame::RecreateList(long flags, bool withText)
     {
         delete m_listCtrl;
 
-        m_listCtrl = new MyListCtrl(this, LIST_CTRL,
+        m_listCtrl = new MyListCtrl(m_panel, LIST_CTRL,
                                     wxDefaultPosition, wxDefaultSize,
                                     flags |
                                     wxSUNKEN_BORDER | wxLC_EDIT_LABELS);
@@ -658,19 +661,30 @@ void MyListCtrl::OnColRightClick(wxListEvent& event)
     wxLogMessage( wxT("OnColumnRightClick at %d."), event.GetColumn() );
 }
 
+void MyListCtrl::LogColEvent(const wxListEvent& event, const wxChar *name)
+{
+    const int col = event.GetColumn();
+
+    wxLogMessage(wxT("%s: column %d (width = %d or %d)."),
+                 name,
+                 col,
+                 event.GetItem().GetWidth(),
+                 GetColumnWidth(col));
+}
+
 void MyListCtrl::OnColBeginDrag(wxListEvent& event)
 {
-    wxLogMessage( wxT("OnColBeginDrag: column %d."), event.GetColumn() );
+    LogColEvent( event, wxT("OnColBeginDrag") );
 }
 
 void MyListCtrl::OnColDragging(wxListEvent& event)
 {
-    wxLogMessage( wxT("OnColDragging: column %d."), event.GetColumn() );
+    LogColEvent( event, wxT("OnColDragging") );
 }
 
 void MyListCtrl::OnColEndDrag(wxListEvent& event)
 {
-    wxLogMessage( wxT("OnColEndDrag: column %d."), event.GetColumn() );
+    LogColEvent( event, wxT("OnColEndDrag") );
 }
 
 void MyListCtrl::OnBeginDrag(wxListEvent& event)
diff --git a/samples/listctrl/listtest.h b/samples/listctrl/listtest.h
index a887cdb29e..a86724980d 100644
--- a/samples/listctrl/listtest.h
+++ b/samples/listctrl/listtest.h
@@ -58,6 +58,7 @@ private:
     void SetColumnImage(int col, int image);
 
     void LogEvent(const wxListEvent& event, const wxChar *eventName);
+    void LogColEvent(const wxListEvent& event, const wxChar *eventName);
 
     virtual wxString OnGetItemText(long item, long column) const;
     virtual int OnGetItemImage(long item) const;
@@ -72,13 +73,10 @@ private:
 class MyFrame: public wxFrame
 {
 public:
-    MyListCtrl *m_listCtrl;
-    wxTextCtrl *m_logWindow;
-
     MyFrame(const wxChar *title, int x, int y, int w, int h);
     ~MyFrame();
 
-public:
+protected:
     void OnSize(wxSizeEvent& event);
 
     void OnQuit(wxCommandEvent& event);
@@ -113,6 +111,10 @@ public:
     wxImageList *m_imageListNormal;
     wxImageList *m_imageListSmall;
 
+    wxPanel *m_panel;
+    MyListCtrl *m_listCtrl;
+    wxTextCtrl *m_logWindow;
+
 private:
     // recreate the list control with the new flags
     void RecreateList(long flags, bool withText = TRUE);
diff --git a/samples/mdi/mdi.cpp b/samples/mdi/mdi.cpp
index e5833ef4e8..911d25cbdb 100644
--- a/samples/mdi/mdi.cpp
+++ b/samples/mdi/mdi.cpp
@@ -286,7 +286,7 @@ void MyFrame::OnSize(wxSizeEvent& event)
     // FIXME: On wxX11, we need the MDI frame to process this
     // event, but on other platforms this should not
     // be done.
-#ifdef __WXX11__   
+#ifdef __WXUNIVERSAL__   
     event.Skip();
 #endif
 }
@@ -443,6 +443,7 @@ void MyChild::OnChangeSize(wxCommandEvent& WXUNUSED(event))
 
 void MyChild::OnChangeTitle(wxCommandEvent& WXUNUSED(event))
 {
+//#if wxUSE_TEXTDLG
     static wxString s_title = _T("Canvas Frame");
 
     wxString title = wxGetTextFromUser(_T("Enter the new title for MDI child"),
@@ -454,6 +455,7 @@ void MyChild::OnChangeTitle(wxCommandEvent& WXUNUSED(event))
 
     s_title = title;
     SetTitle(s_title);
+//#endif
 }
 
 void MyChild::OnActivate(wxActivateEvent& event)
diff --git a/samples/mdi/mdi.dsp b/samples/mdi/mdi.dsp
index f3aa527a24..5bf18acc94 100644
--- a/samples/mdi/mdi.dsp
+++ b/samples/mdi/mdi.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "mdi - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "mdi - Win32 Release"
 
diff --git a/samples/memcheck/memcheck.dsp b/samples/memcheck/memcheck.dsp
index 194fb12bbd..eb41f542cd 100644
--- a/samples/memcheck/memcheck.dsp
+++ b/samples/memcheck/memcheck.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "memcheck - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "memcheck - Win32 Release"
 
diff --git a/samples/menu/menu.dsp b/samples/menu/menu.dsp
index 57f5dd6314..e3c85e709e 100644
--- a/samples/menu/menu.dsp
+++ b/samples/menu/menu.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "menu - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "menu - Win32 Release"
 
diff --git a/samples/mfc/mfc.dsp b/samples/mfc/mfc.dsp
index 99057a63db..96b2e920d6 100644
--- a/samples/mfc/mfc.dsp
+++ b/samples/mfc/mfc.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "mfc - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "mfc - Win32 Release"
 
diff --git a/samples/minifram/minifram.dsp b/samples/minifram/minifram.dsp
index ed142ff622..afa6a9adac 100644
--- a/samples/minifram/minifram.dsp
+++ b/samples/minifram/minifram.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "minifram - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "minifram - Win32 Release"
 
diff --git a/samples/minimal/minimal.dsp b/samples/minimal/minimal.dsp
index 5d16d3a8ad..68653c3032 100644
--- a/samples/minimal/minimal.dsp
+++ b/samples/minimal/minimal.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "minimal - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "minimal - Win32 Release"
 
diff --git a/samples/multimon/Makefile.in b/samples/multimon/Makefile.in
new file mode 100644
index 0000000000..f3c2192412
--- /dev/null
+++ b/samples/multimon/Makefile.in
@@ -0,0 +1,23 @@
+#
+# File:		makefile.unx
+# Author:	Julian Smart
+# Created:	1998
+# Updated:	
+# Copyright:	(c) 1998 Julian Smart
+#
+# "%W% %G%"
+#
+# Makefile for multimon example (UNIX).
+
+top_srcdir = @top_srcdir@/..
+top_builddir = ../..
+program_dir = samples/multimon
+
+PROGRAM=multimon_test
+
+OBJECTS =$(PROGRAM).o
+DEPFILES=$(PROGRAM).d
+
+include ../../src/makeprog.env
+
+@IF_GNU_MAKE@-include $(DEPFILES)
diff --git a/samples/nativdlg/Makefile.in b/samples/nativdlg/Makefile.in
new file mode 100644
index 0000000000..5270185df6
--- /dev/null
+++ b/samples/nativdlg/Makefile.in
@@ -0,0 +1,23 @@
+#
+# File:		makefile.unx
+# Author:	Julian Smart
+# Created:	1998
+# Updated:	
+# Copyright:	(c) 1998 Julian Smart
+#
+# "%W% %G%"
+#
+# Makefile for nativedlg example (UNIX).
+
+top_srcdir = @top_srcdir@/..
+top_builddir = ../..
+program_dir = samples/nativedlg
+
+PROGRAM=nativedlg
+
+OBJECTS =$(PROGRAM).o
+DEPFILES=$(PROGRAM).d
+
+include ../../src/makeprog.env
+
+@IF_GNU_MAKE@-include $(DEPFILES)
diff --git a/samples/nativdlg/nativdlg.dsp b/samples/nativdlg/nativdlg.dsp
index c5505ca1aa..e594b30ede 100644
--- a/samples/nativdlg/nativdlg.dsp
+++ b/samples/nativdlg/nativdlg.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "nativdlg - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "nativdlg - Win32 Release"
 
diff --git a/samples/newgrid/griddemo.cpp b/samples/newgrid/griddemo.cpp
index 5557e3743c..e1820b8a53 100644
--- a/samples/newgrid/griddemo.cpp
+++ b/samples/newgrid/griddemo.cpp
@@ -246,7 +246,13 @@ GridFrame::GridFrame()
 
     // this will create a grid and, by default, an associated grid
     // table for strings
-    grid->CreateGrid( 100, 100 );
+    grid->CreateGrid( 0, 0 );
+    grid->AppendRows(100);
+    grid->AppendCols(100);
+
+    int ir = grid->GetNumberRows();
+    grid->DeleteRows(0, ir);
+    grid->AppendRows(ir);
 
     grid->SetRowSize( 0, 60 );
     grid->SetCellValue( 0, 0, "Ctrl+Home\nwill go to\nthis cell" );
diff --git a/samples/newgrid/newgrid.dsp b/samples/newgrid/newgrid.dsp
index cf3ff36050..70662ff198 100644
--- a/samples/newgrid/newgrid.dsp
+++ b/samples/newgrid/newgrid.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "newgrid - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "newgrid - Win32 Release"
 
diff --git a/samples/notebook/notebook.cpp b/samples/notebook/notebook.cpp
index 8625be4de8..940c084d5f 100644
--- a/samples/notebook/notebook.cpp
+++ b/samples/notebook/notebook.cpp
@@ -439,11 +439,13 @@ void MyFrame::OnButtonAddPage( wxCommandEvent& WXUNUSED(event) )
     static size_t s_pageAdded = 0;
 
     wxPanel *panel = new wxPanel( m_notebook, -1 );
-    (void) new wxButton( panel, -1, wxT("Button"),
+    (void) new wxButton( panel, -1, wxT("Frist button"),
         wxPoint(10, 10), wxSize(-1, -1) );
+    (void) new wxButton( panel, -1, wxT("Second button"),
+        wxPoint(50, 100), wxSize(-1, -1) );
 
     m_notebook->AddPage(panel, wxString::Format(ADDED_PAGE_NAME wxT("%u"),
-        ++s_pageAdded), FALSE, m_notebook->GetIconIndex() );
+        ++s_pageAdded), TRUE, m_notebook->GetIconIndex() );
 }
 
 void MyFrame::OnButtonInsertPage( wxCommandEvent& WXUNUSED(event) )
diff --git a/samples/notebook/notebook.dsp b/samples/notebook/notebook.dsp
index 3522063182..fc53bafee5 100644
--- a/samples/notebook/notebook.dsp
+++ b/samples/notebook/notebook.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "notebook - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "notebook - Win32 Release"
 
diff --git a/samples/oleauto/Makefile.in b/samples/oleauto/Makefile.in
new file mode 100644
index 0000000000..fd2aaba9a2
--- /dev/null
+++ b/samples/oleauto/Makefile.in
@@ -0,0 +1,23 @@
+#
+# File:		makefile.unx
+# Author:	Julian Smart
+# Created:	1998
+# Updated:	
+# Copyright:	(c) 1998 Julian Smart
+#
+# "%W% %G%"
+#
+# Makefile for oleauto example (UNIX).
+
+top_srcdir = @top_srcdir@/..
+top_builddir = ../..
+program_dir = samples/oleauto
+
+PROGRAM=oleauto
+
+OBJECTS =$(PROGRAM).o
+DEPFILES=$(PROGRAM).d
+
+include ../../src/makeprog.env
+
+@IF_GNU_MAKE@-include $(DEPFILES)
diff --git a/samples/oleauto/oleauto.dsp b/samples/oleauto/oleauto.dsp
index 269e7e80b9..8e47c7e074 100644
--- a/samples/oleauto/oleauto.dsp
+++ b/samples/oleauto/oleauto.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "oleauto - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "oleauto - Win32 Release"
 
diff --git a/samples/opengl/cube/cube.dsp b/samples/opengl/cube/cube.dsp
index 9e1ffbb5d9..e9ef1ae99d 100644
--- a/samples/opengl/cube/cube.dsp
+++ b/samples/opengl/cube/cube.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "glcube - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "glcube - Win32 Release"
 
diff --git a/samples/opengl/isosurf/isosurf.dsp b/samples/opengl/isosurf/isosurf.dsp
index fad1e23e3d..e48e1cdab8 100644
--- a/samples/opengl/isosurf/isosurf.dsp
+++ b/samples/opengl/isosurf/isosurf.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "glisosurf - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "glisosurf - Win32 Release"
 
diff --git a/samples/opengl/penguin/makefile.unx b/samples/opengl/penguin/makefile.unx
index 778d905184..bc26127d08 100644
--- a/samples/opengl/penguin/makefile.unx
+++ b/samples/opengl/penguin/makefile.unx
@@ -11,22 +11,22 @@ OPENGL_LIBS=-lGL -lGLU
 #if you have old Mesa, try this:
 #OPENGL_LIBS=-lMesaGL -lMesaGLU
 
-CPP = g++
+CC = $(shell wx-config --cc)
 CXX = $(shell wx-config --cxx)
 
 Penguin: penguin.o trackball.o lw.o
-	$(CPP) -o Penguin \
+	$(CXX) -o Penguin \
 	penguin.o trackball.o lw.o \
 	`wx-config --libs` -lwx_gtk_gl $(OPENGL_LIBS)
 
 penguin.o: penguin.cpp
-	$(CPP) `wx-config --cxxflags` -I../../gtk -c penguin.cpp
+	$(CXX) `wx-config --cxxflags` -I../../gtk -c penguin.cpp
 
 lw.o: lw.cpp
-	$(CPP) `wx-config --cxxflags` -I../../gtk -c lw.cpp
+	$(CXX) `wx-config --cxxflags` -I../../gtk -c lw.cpp
 
 trackball.o: trackball.c
-	$(CXX) `wx-config --cxxflags` -I../../gtk -c trackball.c
+	$(CC) `wx-config --cflags` -I../../gtk -c trackball.c
 
 clean: 
 	rm -f *.o Penguin
diff --git a/samples/opengl/penguin/penguin.dsp b/samples/opengl/penguin/penguin.dsp
index 0f39e4f367..5bfeda5b70 100644
--- a/samples/opengl/penguin/penguin.dsp
+++ b/samples/opengl/penguin/penguin.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ../../..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "glpenguin - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ../../..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "glpenguin - Win32 Release"
 
diff --git a/samples/ownerdrw/Makefile.in b/samples/ownerdrw/Makefile.in
new file mode 100644
index 0000000000..dcd63259b4
--- /dev/null
+++ b/samples/ownerdrw/Makefile.in
@@ -0,0 +1,23 @@
+#
+# File:		makefile.unx
+# Author:	Julian Smart
+# Created:	1998
+# Updated:	
+# Copyright:	(c) 1998 Julian Smart
+#
+# "%W% %G%"
+#
+# Makefile for owner draw example (UNIX).
+
+top_srcdir = @top_srcdir@/..
+top_builddir = ../..
+program_dir = samples/ownerdrw
+
+PROGRAM=ownerdrw
+
+OBJECTS =$(PROGRAM).o
+DEPFILES=$(PROGRAM).d
+
+include ../../src/makeprog.env
+
+@IF_GNU_MAKE@-include $(DEPFILES)
diff --git a/samples/ownerdrw/ownerdrw.dsp b/samples/ownerdrw/ownerdrw.dsp
index b7f3fed3a0..8c204b30c8 100644
--- a/samples/ownerdrw/ownerdrw.dsp
+++ b/samples/ownerdrw/ownerdrw.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "ownerdrw - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "ownerdrw - Win32 Release"
 
diff --git a/samples/png/png.dsp b/samples/png/png.dsp
index 52de544a6b..478bb60ac0 100644
--- a/samples/png/png.dsp
+++ b/samples/png/png.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "png - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "png - Win32 Release"
 
diff --git a/samples/printing/printing.cpp b/samples/printing/printing.cpp
index 274b222b20..c9c2e6b1e8 100644
--- a/samples/printing/printing.cpp
+++ b/samples/printing/printing.cpp
@@ -366,7 +366,7 @@ bool MyPrintout::OnPrintPage(int page)
         
         wxChar buf[200];
         wxSprintf(buf, wxT("PAGE %d"), page);
-        dc->DrawText(buf, 10, 10);
+        // dc->DrawText(buf, 10, 10);
         
         return TRUE;
     }
@@ -432,6 +432,7 @@ void MyPrintout::DrawPageOne(wxDC *dc)
     // Set the scale and origin
     dc->SetUserScale(actualScale, actualScale);
     dc->SetDeviceOrigin( (long)posX, (long)posY );
+    //dc->SetUserScale(1.0, 1.0);
     
     frame->Draw(*dc);
 }
diff --git a/samples/printing/printing.dsp b/samples/printing/printing.dsp
index 6215f45a24..bf35097fa6 100644
--- a/samples/printing/printing.dsp
+++ b/samples/printing/printing.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "printing - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "printing - Win32 Release"
 
diff --git a/samples/proplist/proplist.dsp b/samples/proplist/proplist.dsp
index 53b4bde49b..d2d4c4ea52 100644
--- a/samples/proplist/proplist.dsp
+++ b/samples/proplist/proplist.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "proplist - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "proplist - Win32 Release"
 
diff --git a/samples/propsize/propsize.dsp b/samples/propsize/propsize.dsp
index c8bcc99c87..b2ec33dee9 100644
--- a/samples/propsize/propsize.dsp
+++ b/samples/propsize/propsize.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "propsize - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "propsize - Win32 Release"
 
diff --git a/samples/regtest/Makefile.in b/samples/regtest/Makefile.in
new file mode 100644
index 0000000000..4ad13b651f
--- /dev/null
+++ b/samples/regtest/Makefile.in
@@ -0,0 +1,23 @@
+#
+# File:		makefile.unx
+# Author:	Julian Smart
+# Created:	1998
+# Updated:	
+# Copyright:	(c) 1998 Julian Smart
+#
+# "%W% %G%"
+#
+# Makefile for regtest example (UNIX).
+
+top_srcdir = @top_srcdir@/..
+top_builddir = ../..
+program_dir = samples/regtest
+
+PROGRAM=regtest
+
+OBJECTS =$(PROGRAM).o
+DEPFILES=$(PROGRAM).d
+
+include ../../src/makeprog.env
+
+@IF_GNU_MAKE@-include $(DEPFILES)
diff --git a/samples/regtest/regtest.cpp b/samples/regtest/regtest.cpp
index d08d4a8459..4510d71fc0 100644
--- a/samples/regtest/regtest.cpp
+++ b/samples/regtest/regtest.cpp
@@ -639,7 +639,7 @@ void RegTreeCtrl::OnSelChanged(wxTreeEvent& event)
 void RegTreeCtrl::OnItemExpanding(wxTreeEvent& event)
 {
   TreeNode *pNode = GetNode(event);
-  bool bExpanding = event.GetCode() == wxTREE_EXPAND_EXPAND;
+  bool bExpanding = event.GetKeyCode() == wxTREE_EXPAND_EXPAND;
 
   // expansion might take some time
   wxSetCursor(*wxHOURGLASS_CURSOR);
@@ -782,7 +782,7 @@ void RegTreeCtrl::OnEndDrag(wxTreeEvent& event)
         wxRegKey keyDst(dst->Key(), src->m_strName);
         ok = keyDst.Create(FALSE);
         if ( !ok ) {
-            wxLogError(wxT("Key '%s' already exists"));
+            wxLogError(wxT("Key '%s' already exists"), keyDst.GetName().c_str());
         }
         else {
             ok = key.Copy(keyDst);
diff --git a/samples/regtest/regtest.dsp b/samples/regtest/regtest.dsp
index 4196beec12..8ba41cfb85 100644
--- a/samples/regtest/regtest.dsp
+++ b/samples/regtest/regtest.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "regtest - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "regtest - Win32 Release"
 
diff --git a/samples/resource/resource.cpp b/samples/resource/resource.cpp
index e29236c867..f076602f16 100644
--- a/samples/resource/resource.cpp
+++ b/samples/resource/resource.cpp
@@ -24,6 +24,10 @@
 #include "wx/wx.h"
 #endif
 
+#if !wxUSE_RESOURCES
+    #error "You should set wxUSE_RESOURCES to 1 to compile this sample"
+#endif
+
 #if wxUSE_UNICODE
     #error "This sample can't be compiled in Unicode mode."
 #endif // wxUSE_UNICODE
diff --git a/samples/resource/resource.dsp b/samples/resource/resource.dsp
index 5010adc6ec..f98ad240e1 100644
--- a/samples/resource/resource.dsp
+++ b/samples/resource/resource.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "resource - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "resource - Win32 Release"
 
diff --git a/samples/rotate/rotate.dsp b/samples/rotate/rotate.dsp
index 64c9c8cef8..b0473e281a 100644
--- a/samples/rotate/rotate.dsp
+++ b/samples/rotate/rotate.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "rotate - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "rotate - Win32 Release"
 
diff --git a/samples/sashtest/sashtest.dsp b/samples/sashtest/sashtest.dsp
index 06f6f2ea78..f79f10a371 100644
--- a/samples/sashtest/sashtest.dsp
+++ b/samples/sashtest/sashtest.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "sashtest - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "sashtest - Win32 Release"
 
diff --git a/samples/scroll/scroll.cpp b/samples/scroll/scroll.cpp
index 6f27a04ede..790c8eaa4a 100644
--- a/samples/scroll/scroll.cpp
+++ b/samples/scroll/scroll.cpp
@@ -4,6 +4,7 @@
  * Author: Robert Roebling
  *
  * Copyright: (C) 1998, Robert Roebling
+ *                2002, Ron Lee
  *
  */
 
@@ -51,6 +52,30 @@ public:
     DECLARE_EVENT_TABLE()
 };
 
+
+// ----------------------------------------------------------------------------
+// Autoscrolling example.
+// ----------------------------------------------------------------------------
+
+// this class uses the 'virtual' size attribute along with an internal
+// sizer to automatically set up scrollbars as needed
+
+class MyAutoScrollWindow : public wxScrolledWindow
+{
+private:
+
+    wxButton    *m_button;
+
+public:
+
+    MyAutoScrollWindow( wxWindow *parent );
+
+    void OnResizeClick( wxCommandEvent &WXUNUSED( event ) );
+
+    DECLARE_EVENT_TABLE()
+};
+
+
 // ----------------------------------------------------------------------------
 // MyScrolledWindow classes: examples of wxScrolledWindow usage
 // ----------------------------------------------------------------------------
@@ -59,17 +84,15 @@ public:
 class MyScrolledWindowBase : public wxScrolledWindow
 {
 public:
-    MyScrolledWindowBase(wxWindow *parent) : wxScrolledWindow(parent)
+    MyScrolledWindowBase(wxWindow *parent)
+        : wxScrolledWindow(parent)
+        , m_nLines( 100 )
     {
-        m_nLines = 100;
-
-        InitScrollbars();
+        wxClientDC dc(this);
+        dc.GetTextExtent(_T("Line 17"), NULL, &m_hLine);
     }
 
 protected:
-    // set the scrollbar params
-    void InitScrollbars();
-
     // the height of one line on screen
     wxCoord m_hLine;
 
@@ -78,24 +101,40 @@ protected:
 };
 
 // this class does "stupid" redrawing - it redraws everything each time
+// and sets the scrollbar extent directly.
+
 class MyScrolledWindowDumb : public MyScrolledWindowBase
 {
 public:
-    MyScrolledWindowDumb(wxWindow *parent) : MyScrolledWindowBase(parent) { }
+    MyScrolledWindowDumb(wxWindow *parent) : MyScrolledWindowBase(parent)
+    {
+        // no horz scrolling
+        SetScrollbars(0, m_hLine, 0, m_nLines + 1, 0, 0, TRUE /* no refresh */);
+    }
 
     virtual void OnDraw(wxDC& dc);
 };
 
 // this class does "smart" redrawing - only redraws the lines which must be
-// redrawn
+// redrawn and sets the scroll rate and virtual size to affect the
+// scrollbars.
+//
+// Note that this class should produce identical results to the one above.
+
 class MyScrolledWindowSmart : public MyScrolledWindowBase
 {
 public:
-    MyScrolledWindowSmart(wxWindow *parent) : MyScrolledWindowBase(parent) { }
+    MyScrolledWindowSmart(wxWindow *parent) : MyScrolledWindowBase(parent)
+    {
+        // no horz scrolling
+        SetScrollRate( 0, m_hLine );
+        SetVirtualSize( -1, ( m_nLines + 1 ) * m_hLine );
+    }
 
     virtual void OnDraw(wxDC& dc);
 };
 
+
 // ----------------------------------------------------------------------------
 // MyFrame
 // ----------------------------------------------------------------------------
@@ -131,13 +170,13 @@ IMPLEMENT_APP(MyApp)
 
 // ids
 
-#define   ID_ADDBUTTON    1
-#define   ID_DELBUTTON    2
-#define   ID_MOVEBUTTON   3
-#define   ID_SCROLLWIN    4
-#define   ID_QUERYPOS     5
+const long   ID_ADDBUTTON   = wxNewId();
+const long   ID_DELBUTTON   = wxNewId();
+const long   ID_MOVEBUTTON  = wxNewId();
+const long   ID_SCROLLWIN   = wxNewId();
+const long   ID_QUERYPOS    = wxNewId();
 
-#define   ID_NEWBUTTON    10
+const long   ID_NEWBUTTON   = wxNewId();
 
 // MyCanvas
 
@@ -145,7 +184,7 @@ IMPLEMENT_DYNAMIC_CLASS(MyCanvas, wxScrolledWindow)
 
 BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow)
   EVT_PAINT(                  MyCanvas::OnPaint)
-  EVT_MOUSE_EVENTS(                  MyCanvas::OnMouseDown)
+  EVT_MOUSE_EVENTS(           MyCanvas::OnMouseDown)
   EVT_BUTTON( ID_QUERYPOS,    MyCanvas::OnQueryPosition)
   EVT_BUTTON( ID_ADDBUTTON,   MyCanvas::OnAddButton)
   EVT_BUTTON( ID_DELBUTTON,   MyCanvas::OnDeleteButton)
@@ -155,12 +194,15 @@ END_EVENT_TABLE()
 
 MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id,
                     const wxPoint &pos, const wxSize &size )
-        : wxScrolledWindow( parent, id, pos, size, wxSUNKEN_BORDER | wxTAB_TRAVERSAL, "test canvas" )
+    : wxScrolledWindow( parent, id, pos, size, wxSUNKEN_BORDER | wxTAB_TRAVERSAL, _T("test canvas") )
 {
-    (void) new wxButton( this, ID_ADDBUTTON, "add button", wxPoint(10,10) );
-    (void) new wxButton( this, ID_DELBUTTON, "del button", wxPoint(10,40) );
-    (void) new wxButton( this, ID_MOVEBUTTON, "move button", wxPoint(150,10) );
-    (void) new wxButton( this, ID_SCROLLWIN, "scroll win", wxPoint(250,10) );
+    SetScrollRate( 10, 10 );
+    SetVirtualSize( 500, 1000 );
+
+    (void) new wxButton( this, ID_ADDBUTTON,  _T("add button"), wxPoint(10,10) );
+    (void) new wxButton( this, ID_DELBUTTON,  _T("del button"), wxPoint(10,40) );
+    (void) new wxButton( this, ID_MOVEBUTTON, _T("move button"), wxPoint(150,10) );
+    (void) new wxButton( this, ID_SCROLLWIN,  _T("scroll win"), wxPoint(250,10) );
 
 #if 0
 
@@ -253,9 +295,9 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) )
     wxPaintDC dc( this );
     PrepareDC( dc );
 
-    dc.DrawText( "Press mouse button to test calculations!", 160, 50 );
+    dc.DrawText( _T("Press mouse button to test calculations!"), 160, 50 );
 
-    dc.DrawText( "Some text", 140, 140 );
+    dc.DrawText( _T("Some text"), 140, 140 );
 
     dc.DrawRectangle( 100, 160, 200, 200 );
 }
@@ -271,7 +313,7 @@ void MyCanvas::OnQueryPosition( wxCommandEvent &WXUNUSED(event) )
 void MyCanvas::OnAddButton( wxCommandEvent &WXUNUSED(event) )
 {
     wxLogMessage( wxT("Inserting button at position 10,70...") );
-    wxButton *button = new wxButton( this, ID_NEWBUTTON, "new button", wxPoint(10,70), wxSize(80,25) );
+    wxButton *button = new wxButton( this, ID_NEWBUTTON, wxT("new button"), wxPoint(10,70), wxSize(80,25) );
     wxPoint pt( button->GetPosition() );
     wxLogMessage( wxT("-> Position after inserting %d %d"), pt.x, pt.y );
 }
@@ -305,12 +347,87 @@ void MyCanvas::OnScrollWin( wxCommandEvent &WXUNUSED(event) )
     Scroll( -1, y+2 );
 }
 
+// MyAutoScrollWindow
+
+const long   ID_RESIZEBUTTON = wxNewId();
+const wxSize SMALL_BUTTON( 100, 50 );
+const wxSize LARGE_BUTTON( 300, 100 );
+
+BEGIN_EVENT_TABLE( MyAutoScrollWindow, wxScrolledWindow)
+  EVT_BUTTON( ID_RESIZEBUTTON,    MyAutoScrollWindow::OnResizeClick)
+END_EVENT_TABLE()
+
+MyAutoScrollWindow::MyAutoScrollWindow( wxWindow *parent )
+    : wxScrolledWindow( parent )
+{
+    SetBackgroundColour( wxT("GREEN") );
+
+    // Set the rate we'd like for scrolling.
+
+    SetScrollRate( 5, 5 );
+
+    // Populate a sizer with a 'resizing' button and some
+    // other static decoration
+
+    wxFlexGridSizer  *innersizer = new wxFlexGridSizer( 2, 2 );
+
+    m_button = new wxButton( this,
+                             ID_RESIZEBUTTON,
+                             _T("Press me"),
+                             wxDefaultPosition,
+                             SMALL_BUTTON );
+
+    // We need to do this here, because wxADJUST_MINSIZE below
+    // will cause the initial size to be ignored for Best/Min size.
+    // It would be nice to fix the sizers to handle this a little
+    // more cleanly.
+
+    m_button->SetSizeHints( SMALL_BUTTON.GetWidth(), SMALL_BUTTON.GetHeight() );
+
+    innersizer->Add( m_button,
+                     0,
+                     wxALIGN_CENTER | wxALL | wxADJUST_MINSIZE,
+                     20 );
+
+    innersizer->Add( new wxStaticText( this, -1, _T("This is just") ),
+                    0,
+                    wxALIGN_CENTER );
+
+    innersizer->Add( new wxStaticText( this, -1, _T("some decoration") ),
+                    0,
+                    wxALIGN_CENTER );
+
+    innersizer->Add( new wxStaticText( this, -1, _T("for you to scroll...") ),
+                    0,
+                    wxALIGN_CENTER );
+
+    // Then use the sizer to set the scrolled region size.
+
+    SetSizer( innersizer );
+}
+
+void MyAutoScrollWindow::OnResizeClick( wxCommandEvent &WXUNUSED( event ) )
+{
+    // Arbitrarily resize the button to change the minimum size of
+    // the (scrolled) sizer.
+
+    if( m_button->GetSize() == SMALL_BUTTON )
+        m_button->SetSizeHints( LARGE_BUTTON.GetWidth(), LARGE_BUTTON.GetHeight() );
+    else
+        m_button->SetSizeHints( SMALL_BUTTON.GetWidth(), SMALL_BUTTON.GetHeight() );
+
+    // Force update layout and scrollbars, since nothing we do here
+    // necessarily generates a size event which would do it for us.
+
+    FitInside();
+}
+
 // MyFrame
 
-const int ID_QUIT  = 108;
-const int ID_ABOUT = 109;
-const int ID_DELETE_ALL = 110;
-const int ID_INSERT_NEW = 111;
+const long ID_QUIT       = wxNewId();
+const long ID_ABOUT      = wxNewId();
+const long ID_DELETE_ALL = wxNewId();
+const long ID_INSERT_NEW = wxNewId();
 
 IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame )
 
@@ -322,17 +439,17 @@ BEGIN_EVENT_TABLE(MyFrame,wxFrame)
 END_EVENT_TABLE()
 
 MyFrame::MyFrame()
-       : wxFrame( (wxFrame *)NULL, -1, "wxScrolledWindow sample",
+       : wxFrame( (wxFrame *)NULL, -1, _T("wxScrolledWindow sample"),
                   wxPoint(20,20), wxSize(470,500) )
 {
     wxMenu *file_menu = new wxMenu();
-    file_menu->Append( ID_DELETE_ALL, "Delete all");
-    file_menu->Append( ID_INSERT_NEW, "Insert new");
-    file_menu->Append( ID_ABOUT, "&About..");
-    file_menu->Append( ID_QUIT, "E&xit\tAlt-X");
+    file_menu->Append( ID_DELETE_ALL, _T("Delete all"));
+    file_menu->Append( ID_INSERT_NEW, _T("Insert new"));
+    file_menu->Append( ID_ABOUT,      _T("&About.."));
+    file_menu->Append( ID_QUIT,       _T("E&xit\tAlt-X"));
 
     wxMenuBar *menu_bar = new wxMenuBar();
-    menu_bar->Append(file_menu, "&File");
+    menu_bar->Append(file_menu, _T("&File"));
 
     SetMenuBar( menu_bar );
 
@@ -340,19 +457,24 @@ MyFrame::MyFrame()
     int widths[] = { -1, 100 };
     SetStatusWidths( 2, widths );
 
+    wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
+
+    // Setting an explicit size here is superfluous, it will be overridden
+    // by the sizer in any case.
     m_canvas = new MyCanvas( this, -1, wxPoint(0,0), wxSize(100,100) );
-    m_canvas->SetScrollbars( 10, 10, 50, 100 );
 
-    wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
+    // This is done with ScrollRate/VirtualSize in MyCanvas ctor now,
+    // both should produce identical results.
+    //m_canvas->SetScrollbars( 10, 10, 50, 100 );
 
     topsizer->Add( m_canvas, 1, wxEXPAND );
+    topsizer->Add( new MyAutoScrollWindow( this ), 1, wxEXPAND );
 
     wxSizer *sizerBtm = new wxBoxSizer(wxHORIZONTAL);
     sizerBtm->Add( new MyScrolledWindowDumb(this), 1, wxEXPAND );
     sizerBtm->Add( new MyScrolledWindowSmart(this), 1, wxEXPAND );
     topsizer->Add( sizerBtm, 1, wxEXPAND );
 
-    SetAutoLayout( TRUE );
     SetSizer( topsizer );
 }
 
@@ -363,7 +485,7 @@ void MyFrame::OnDeleteAll( wxCommandEvent &WXUNUSED(event) )
 
 void MyFrame::OnInsertNew( wxCommandEvent &WXUNUSED(event) )
 {
-    (void)new wxButton( m_canvas, -1, "Hello", wxPoint(100,100) );
+    (void)new wxButton( m_canvas, -1, _T("Hello"), wxPoint(100,100) );
 }
 
 void MyFrame::OnQuit( wxCommandEvent &WXUNUSED(event) )
@@ -373,9 +495,12 @@ void MyFrame::OnQuit( wxCommandEvent &WXUNUSED(event) )
 
 void MyFrame::OnAbout( wxCommandEvent &WXUNUSED(event) )
 {
-  (void)wxMessageBox( "wxScroll demo\n"
-                      "Robert Roebling (c) 1998",
-                      "About wxScroll Demo", wxICON_INFORMATION | wxOK );
+  (void)wxMessageBox( _T("wxScroll demo\n"
+                         "Robert Roebling (c) 1998\n"
+                         "Autoscrolling examples\n"
+                         "Ron Lee (c) 2002"),
+                      _T("About wxScroll Demo"),
+                      wxICON_INFORMATION | wxOK );
 }
 
 //-----------------------------------------------------------------------------
@@ -394,15 +519,6 @@ bool MyApp::OnInit()
 // MyScrolledWindowXXX
 // ----------------------------------------------------------------------------
 
-void MyScrolledWindowBase::InitScrollbars()
-{
-    wxClientDC dc(this);
-    dc.GetTextExtent(_T("Line 17"), NULL, &m_hLine);
-
-    // no horz scrolling
-    SetScrollbars(0, m_hLine, 0, m_nLines + 1, 0, 0, TRUE /* no refresh */);
-}
-
 void MyScrolledWindowDumb::OnDraw(wxDC& dc)
 {
     // this is useful to see which lines are redrawn
diff --git a/samples/scroll/scroll.dsp b/samples/scroll/scroll.dsp
index 966357cb90..b90a9b3e9e 100644
--- a/samples/scroll/scroll.dsp
+++ b/samples/scroll/scroll.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "scroll - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "scroll - Win32 Release"
 
diff --git a/samples/scrollsub/scrollsub.dsp b/samples/scrollsub/scrollsub.dsp
index a635c0fa63..bb4b3a7a76 100644
--- a/samples/scrollsub/scrollsub.dsp
+++ b/samples/scrollsub/scrollsub.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "scrollsub - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "scrollsub - Win32 Release"
 
diff --git a/samples/sockets/client.cpp b/samples/sockets/client.cpp
index 94e010410e..3ba76e9bf2 100644
--- a/samples/sockets/client.cpp
+++ b/samples/sockets/client.cpp
@@ -571,7 +571,7 @@ void MyFrame::OnTestURL(wxCommandEvent& WXUNUSED(event))
   wxYield();
 
   // Get the data
-  wxFileOutputStream sout(wxString("test.url"));
+  wxFileOutputStream sout( wxT("test.url") );
   if (!sout.Ok())
   {
     m_text->AppendText(_("Error: couldn't open file for output\n"));
diff --git a/samples/sockets/client.dsp b/samples/sockets/client.dsp
index b99f0b4a75..d036b6965b 100644
--- a/samples/sockets/client.dsp
+++ b/samples/sockets/client.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "socketclient - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "socketclient - Win32 Release"
 
diff --git a/samples/sockets/server.dsp b/samples/sockets/server.dsp
index d351a219ec..fb29544656 100644
--- a/samples/sockets/server.dsp
+++ b/samples/sockets/server.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "socketserver - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "socketserver - Win32 Release"
 
diff --git a/samples/splitter/splitter.dsp b/samples/splitter/splitter.dsp
index ac28cbb35c..a5753db6d5 100644
--- a/samples/splitter/splitter.dsp
+++ b/samples/splitter/splitter.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "splitter - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "splitter - Win32 Release"
 
diff --git a/samples/statbar/statbar.dsp b/samples/statbar/statbar.dsp
index 5fb4fbad83..0cedeb6d1a 100644
--- a/samples/statbar/statbar.dsp
+++ b/samples/statbar/statbar.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "statbar - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "statbar - Win32 Release"
 
diff --git a/samples/stc/Makefile.in b/samples/stc/Makefile.in
index cffdcc78d7..0de249989a 100644
--- a/samples/stc/Makefile.in
+++ b/samples/stc/Makefile.in
@@ -13,7 +13,7 @@ PROGRAM=stctest
 
 OBJECTS=$(PROGRAM).o
 
-APPEXTRALIBS=$(top_builddir)/lib/libstc.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_stc-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 DATAFILES=stctest.cpp
diff --git a/samples/stc/StcTestVC.dsp b/samples/stc/StcTestVC.dsp
index f7e9b6e7e4..f51fb28c6f 100644
--- a/samples/stc/StcTestVC.dsp
+++ b/samples/stc/StcTestVC.dsp
@@ -108,7 +108,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib stcd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/stctest.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib stcd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/stctest.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ELSEIF  "$(CFG)" == "StcTestVC - Win32 Release DLL"
 
@@ -135,7 +135,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233.lib stc.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/stctest.exe" /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib stc.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/stctest.exe" /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ENDIF 
 
diff --git a/samples/svg/Makefile.in b/samples/svg/Makefile.in
index 8c63b68960..5f1ba42210 100644
--- a/samples/svg/Makefile.in
+++ b/samples/svg/Makefile.in
@@ -9,7 +9,7 @@ PROGRAM=svgtest
 
 OBJECTS=svgtest.o
 
-APPEXTRALIBS=$(top_builddir)/lib/libwx_dcsvg.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_dcsvg-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/samples/taskbar/taskbar.dsp b/samples/taskbar/taskbar.dsp
index 109141eefd..2f289f912e 100644
--- a/samples/taskbar/taskbar.dsp
+++ b/samples/taskbar/taskbar.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "taskbar - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "taskbar - Win32 Release"
 
diff --git a/samples/text/text.cpp b/samples/text/text.cpp
index c48115e70d..ef899cfae0 100644
--- a/samples/text/text.cpp
+++ b/samples/text/text.cpp
@@ -704,13 +704,22 @@ void MyTextCtrl::OnKeyDown(wxKeyEvent& event)
                 long line, column, pos = GetInsertionPoint();
                 PositionToXY(pos, &column, &line);
 
-                wxLogMessage( _T("Current position: %ld\nCurrent line, column: (%ld, %ld)\nNumber of lines: %ld\nCurrent line length: %ld\nTotal text length: %u (%ld)"),
+                wxLogMessage(_T("Current position: %ld\nCurrent line, column: (%ld, %ld)\nNumber of lines: %ld\nCurrent line length: %ld\nTotal text length: %u (%ld)"),
                         pos,
                         line, column,
                         (long) GetNumberOfLines(),
                         (long) GetLineLength(line),
                         GetValue().length(),
                         GetLastPosition());
+
+                long from, to;
+                GetSelection(&from, &to);
+
+                wxString sel = GetStringSelection();
+
+                wxLogMessage(_T("Selection: from %ld to %ld."), from, to);
+                wxLogMessage(_T("Selection = '%s' (len = %u)"),
+                             sel.c_str(), sel.length());
             }
             break;
 
@@ -745,28 +754,30 @@ void MyTextCtrl::OnKeyDown(wxKeyEvent& event)
             break;
 
         case WXK_F6:
-            SetValue("F6 was just pressed.");
+            wxLogMessage(_T("IsModified() before SetValue(): %d"),
+                         IsModified());
+            SetValue(_T("SetValue() has been called"));
+            wxLogMessage(_T("IsModified() after SetValue(): %d"),
+                         IsModified());
             break;
 
         case WXK_F7:
+            wxLogMessage(_T("Position 10 should be now visible."));
             ShowPosition(10);
             break;
 
         case WXK_F8:
+            wxLogMessage(_T("Control has been cleared"));
             Clear();
             break;
 
-        case WXK_F10:
-            {
-                long from, to;
-                GetSelection(&from, &to);
-
-                wxString sel = GetStringSelection();
+        case WXK_F9:
+            WriteText("WriteText() has been called");
+            break;
 
-                wxLogMessage(_T("Selection: from %ld to %ld."), from, to);
-                wxLogMessage(_T("Selection = '%s' (len = %u)"),
-                             sel.c_str(), sel.length());
-            }
+        case WXK_F10:
+            AppendText("AppendText() has been called");
+            break;
     }
 
     if ( ms_logKey )
@@ -863,7 +874,7 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
     m_multitext->SetBackgroundColour(*wxLIGHT_GREY);
 
 #if wxUSE_TOOLTIPS
-    m_multitext->SetToolTip("Press F1 here for statitics, F4 for capture and uncapture mouse.");
+    m_multitext->SetToolTip("Press Fn function keys here");
 #endif
 
     m_tab = new MyTextCtrl( this, 100, "Multiline, allow <TAB> processing.",
@@ -1172,7 +1183,7 @@ void MyFrame::OnFileSave(wxCommandEvent& event)
         wxLogStatus(this,
                     _T("Successfully saved file (text len = %lu, file size = %ld)"),
                     (unsigned long)m_panel->m_textrich->GetValue().length(),
-                    file.Length());
+                    (long) file.Length());
 #endif
     }
     else
diff --git a/samples/text/text.dsp b/samples/text/text.dsp
index 53583d6985..c598fb4365 100644
--- a/samples/text/text.dsp
+++ b/samples/text/text.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "text - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "text - Win32 Release"
 
diff --git a/samples/thread/thread.dsp b/samples/thread/thread.dsp
index 6da91b11b8..23a3a2d8eb 100644
--- a/samples/thread/thread.dsp
+++ b/samples/thread/thread.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "thread - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "thread - Win32 Release"
 
diff --git a/samples/toolbar/toolbar.cpp b/samples/toolbar/toolbar.cpp
index 9eea80a9d9..0a849c5b3f 100644
--- a/samples/toolbar/toolbar.cpp
+++ b/samples/toolbar/toolbar.cpp
@@ -140,6 +140,9 @@ private:
                         m_horzToolbar;
     size_t              m_rows;             // 1 or 2 only
 
+    // the number of print buttons we have (they're added/removed dynamically)
+    size_t              m_nPrint;
+
     wxTextCtrl         *m_textWindow;
 
     wxToolBar          *m_tbar;
@@ -301,11 +304,11 @@ void MyFrame::RecreateToolbar()
     if ( m_horzToolbar )
     {
         wxComboBox *combo = new wxComboBox(toolBar, ID_COMBO, "", wxDefaultPosition, wxSize(200,-1) );
-        combo->Append("This");
-        combo->Append("is a");
-        combo->Append("combobox");
-        combo->Append("in a");
-        combo->Append("toolbar");
+        combo->Append(_T("This"));
+        combo->Append(_T("is a"));
+        combo->Append(_T("combobox"));
+        combo->Append(_T("in a"));
+        combo->Append(_T("toolbar"));
         toolBar->AddControl(combo);
     }
 #endif // toolbars which don't support controls
@@ -339,11 +342,12 @@ MyFrame::MyFrame(wxFrame* parent,
        : wxFrame(parent, id, title, pos, size, style)
 {
     m_tbar = NULL;
-    m_textWindow = new wxTextCtrl(this, -1, "", wxPoint(0, 0), wxSize(-1, -1), wxTE_MULTILINE);
+    m_textWindow = new wxTextCtrl(this, -1, _T(""), wxPoint(0, 0), wxSize(-1, -1), wxTE_MULTILINE);
 
     m_smallToolbar = TRUE;
     m_horzToolbar = TRUE;
     m_rows = 1;
+    m_nPrint = 1;
 
     // Give it a status line
     CreateStatusBar();
@@ -354,49 +358,49 @@ MyFrame::MyFrame(wxFrame* parent,
     // Make a menubar
     wxMenu *tbarMenu = new wxMenu;
     tbarMenu->AppendCheckItem(IDM_TOOLBAR_TOGGLE_TOOLBAR,
-                              "Toggle &toolbar\tCtrl-Z",
-                              "Show or hide the toolbar");
+                              _T("Toggle &toolbar\tCtrl-Z"),
+                              _T("Show or hide the toolbar"));
 
     tbarMenu->AppendCheckItem(IDM_TOOLBAR_TOGGLE_ANOTHER_TOOLBAR,
-                              "Toggle &another toolbar\tCtrl-A",
-                              "Show/hide another test toolbar");
+                              _T("Toggle &another toolbar\tCtrl-A"),
+                              _T("Show/hide another test toolbar"));
 
     tbarMenu->AppendCheckItem(IDM_TOOLBAR_TOGGLETOOLBARSIZE,
-                              "&Toggle toolbar size\tCtrl-S",
-                              "Toggle between big/small toolbar");
+                              _T("&Toggle toolbar size\tCtrl-S"),
+                              _T("Toggle between big/small toolbar"));
 
     tbarMenu->AppendCheckItem(IDM_TOOLBAR_TOGGLETOOLBARORIENT,
-                              "Toggle toolbar &orientation\tCtrl-O",
-                              "Toggle toolbar orientation");
+                              _T("Toggle toolbar &orientation\tCtrl-O"),
+                              _T("Toggle toolbar orientation"));
 
     tbarMenu->AppendCheckItem(IDM_TOOLBAR_TOGGLETOOLBARROWS,
-                              "Toggle number of &rows\tCtrl-R",
-                              "Toggle number of toolbar rows between 1 and 2");
+                              _T("Toggle number of &rows\tCtrl-R"),
+                              _T("Toggle number of toolbar rows between 1 and 2"));
 
     tbarMenu->AppendSeparator();
 
-    tbarMenu->Append(IDM_TOOLBAR_ENABLEPRINT, "&Enable print button\tCtrl-E", "");
-    tbarMenu->Append(IDM_TOOLBAR_DELETEPRINT, "&Delete print button\tCtrl-D", "");
-    tbarMenu->Append(IDM_TOOLBAR_INSERTPRINT, "&Insert print button\tCtrl-I", "");
-    tbarMenu->Append(IDM_TOOLBAR_TOGGLEHELP, "Toggle &help button\tCtrl-T", "");
+    tbarMenu->Append(IDM_TOOLBAR_ENABLEPRINT, _T("&Enable print button\tCtrl-E"), _T(""));
+    tbarMenu->Append(IDM_TOOLBAR_DELETEPRINT, _T("&Delete print button\tCtrl-D"), _T(""));
+    tbarMenu->Append(IDM_TOOLBAR_INSERTPRINT, _T("&Insert print button\tCtrl-I"), _T(""));
+    tbarMenu->Append(IDM_TOOLBAR_TOGGLEHELP, _T("Toggle &help button\tCtrl-T"), _T(""));
     tbarMenu->AppendSeparator();
-    tbarMenu->Append(IDM_TOOLBAR_CHANGE_TOOLTIP, "Change tool tip", "");
+    tbarMenu->Append(IDM_TOOLBAR_CHANGE_TOOLTIP, _T("Change tool tip"), _T(""));
     tbarMenu->AppendSeparator();
-    tbarMenu->AppendRadioItem(IDM_TOOLBAR_SHOW_TEXT, "Show &text\tAlt-T");
-    tbarMenu->AppendRadioItem(IDM_TOOLBAR_SHOW_ICONS, "Show &icons\tAlt-I");
-    tbarMenu->AppendRadioItem(IDM_TOOLBAR_SHOW_BOTH, "Show &both\tAlt-B");
+    tbarMenu->AppendRadioItem(IDM_TOOLBAR_SHOW_TEXT, _T("Show &text\tAlt-T"));
+    tbarMenu->AppendRadioItem(IDM_TOOLBAR_SHOW_ICONS, _T("Show &icons\tAlt-I"));
+    tbarMenu->AppendRadioItem(IDM_TOOLBAR_SHOW_BOTH, _T("Show &both\tAlt-B"));
 
     wxMenu *fileMenu = new wxMenu;
-    fileMenu->Append(wxID_EXIT, "E&xit\tAlt-X", "Quit toolbar sample" );
+    fileMenu->Append(wxID_EXIT, _T("E&xit\tAlt-X"), _T("Quit toolbar sample") );
 
     wxMenu *helpMenu = new wxMenu;
-    helpMenu->Append(wxID_HELP, "&About", "About toolbar sample");
+    helpMenu->Append(wxID_HELP, _T("&About"), _T("About toolbar sample"));
 
     wxMenuBar* menuBar = new wxMenuBar( wxMB_DOCKABLE );
 
-    menuBar->Append(fileMenu, "&File");
-    menuBar->Append(tbarMenu, "&Toolbar");
-    menuBar->Append(helpMenu, "&Help");
+    menuBar->Append(fileMenu, _T("&File"));
+    menuBar->Append(tbarMenu, _T("&Toolbar"));
+    menuBar->Append(helpMenu, _T("&Help"));
 
     // Associate the menu bar with the frame
     SetMenuBar(menuBar);
@@ -530,7 +534,7 @@ void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
 
 void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 {
-    (void)wxMessageBox("wxWindows toolbar sample", "About wxToolBar");
+    (void)wxMessageBox(_T("wxWindows toolbar sample"), _T("About wxToolBar"));
 }
 
 void MyFrame::OnToolLeftClick(wxCommandEvent& event)
@@ -570,18 +574,22 @@ void MyFrame::OnCombo(wxCommandEvent& event)
 
 void MyFrame::DoEnablePrint()
 {
+    if ( !m_nPrint )
+        return;
+
     wxToolBarBase *tb = GetToolBar();
-    if (tb->GetToolEnabled(wxID_PRINT))
-        tb->EnableTool( wxID_PRINT, FALSE );
-    else
-        tb->EnableTool( wxID_PRINT, TRUE );
+    tb->EnableTool(wxID_PRINT, !tb->GetToolEnabled(wxID_PRINT));
 }
 
 void MyFrame::DoDeletePrint()
 {
-    wxToolBarBase *tb = GetToolBar();
+    if ( !m_nPrint )
+        return;
 
+    wxToolBarBase *tb = GetToolBar();
     tb->DeleteTool( wxID_PRINT );
+
+    m_nPrint--;
 }
 
 void MyFrame::DoToggleHelp()
@@ -624,14 +632,17 @@ void MyFrame::OnToolbarStyle(wxCommandEvent& event)
 
 void MyFrame::OnInsertPrint(wxCommandEvent& WXUNUSED(event))
 {
-    wxBitmap bmp = wxBITMAP(print);
+    m_nPrint++;
 
-    GetToolBar()->InsertTool(0, wxID_PRINT, bmp, wxNullBitmap,
-                             FALSE, (wxObject *) NULL,
-                             "Delete this tool",
-                             "This button was inserted into the toolbar");
-
-    GetToolBar()->Realize();
+    wxToolBarBase *tb = GetToolBar();
+    tb->InsertTool(0, wxID_PRINT, _T("New print"),
+                   wxBITMAP(print), wxNullBitmap,
+                   wxITEM_NORMAL,
+                   _T("Delete this tool"),
+                   _T("This button was inserted into the toolbar"));
+
+    // must call Realize() after adding a new button
+    tb->Realize();
 }
 
 void MyFrame::OnToolEnter(wxCommandEvent& event)
@@ -643,6 +654,6 @@ void MyFrame::OnToolEnter(wxCommandEvent& event)
         SetStatusText(str);
     }
     else
-        SetStatusText("");
+        SetStatusText(_T(""));
 }
 
diff --git a/samples/toolbar/toolbar.dsp b/samples/toolbar/toolbar.dsp
index cbd5496aa0..1366a76937 100644
--- a/samples/toolbar/toolbar.dsp
+++ b/samples/toolbar/toolbar.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "toolbar - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "toolbar - Win32 Release"
 
diff --git a/samples/toolbar/toolbarM5.xml b/samples/toolbar/toolbarM5.xml
index b8bcb3dfc8..ffc8e09601 100644
--- a/samples/toolbar/toolbarM5.xml
+++ b/samples/toolbar/toolbarM5.xml
@@ -480,3176 +480,4 @@
                 <SETTING><NAME>MWMerge_MacOS_copyResources</NAME><VALUE>1</VALUE></SETTING>
                 <SETTING><NAME>MWMerge_MacOS_skipResources</NAME>
                     <SETTING><VALUE></VALUE></SETTING>
-                    <SETTING><VALUE>{Ð</VALUE></SETTING>
-                    <SETTING><VALUE>%#H</VALUE></SETTING>
-                    <SETTING><VALUE>%8*</VALUE></SETTING>
-                </SETTING>
-
-                <!-- Settings for "PPC CodeGen" panel -->
-                <SETTING><NAME>MWCodeGen_PPC_structalignment</NAME><VALUE>PPC</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_tracebacktables</NAME><VALUE>None</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_processor</NAME><VALUE>Generic</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_readonlystrings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_tocdata</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_profiler</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_fpcontract</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_schedule</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_peephole</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_processorspecific</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_altivec</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_vectortocdata</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_vrsave</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "PPC Disassembler" panel -->
-                <SETTING><NAME>MWDisassembler_PPC_showcode</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_extended</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_mix</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_nohex</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_showdata</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_showexceptions</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_showsym</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_shownames</NAME><VALUE>1</VALUE></SETTING>
-
-                <!-- Settings for "PPC Global Optimizer" panel -->
-                <SETTING><NAME>GlobalOptimizer_PPC_optimizationlevel</NAME><VALUE>Level0</VALUE></SETTING>
-                <SETTING><NAME>GlobalOptimizer_PPC_optfor</NAME><VALUE>Speed</VALUE></SETTING>
-
-                <!-- Settings for "PPC Linker" panel -->
-                <SETTING><NAME>MWLinker_PPC_linksym</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_symfullpath</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_linkmap</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_nolinkwarnings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_dontdeadstripinitcode</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_permitmultdefs</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_linkmode</NAME><VALUE>Fast</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_initname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_mainname</NAME><VALUE>__start</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_termname</NAME><VALUE></VALUE></SETTING>
-                <PANELDATA><NAME>PPC Mach-O CodeGen</NAME><VALUE>
-                    0001000001010000010000000001010101000000
-                </VALUE></PANELDATA>
-                <PANELDATA><NAME>PPC Mach-O Linker</NAME><VALUE>
-                    0001000000000100000100000000000000000000000000000000000000007374
-                    6172740000000000000000000000000000000000000000000000000000000000
-                    000000000000000000000000000000000000000000000000000000000000
-                </VALUE></PANELDATA>
-                <PANELDATA><NAME>PPC Mach-O Target</NAME><VALUE>
-                    0001000005612E6F757400000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    000000003F3F3F3F4D41504C0000004000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    00000000
-                </VALUE></PANELDATA>
-
-                <!-- Settings for "PPC PEF" panel -->
-                <SETTING><NAME>MWPEF_exports</NAME><VALUE>None</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_libfolder</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_sortcode</NAME><VALUE>None</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_expandbss</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_sharedata</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_olddefversion</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_oldimpversion</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_currentversion</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_fragmentname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWPEF_collapsereloads</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "PPC Project" panel -->
-                <SETTING><NAME>MWProject_PPC_type</NAME><VALUE>Application</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_outfile</NAME><VALUE>toolbar Classic Release</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_filecreator</NAME><VALUE>1061109567</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_filetype</NAME><VALUE>1095782476</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_size</NAME><VALUE>3840</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_minsize</NAME><VALUE>3840</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_stacksize</NAME><VALUE>64</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_flags</NAME><VALUE>22720</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_symfilename</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcheader</NAME><VALUE>Native</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrctype</NAME><VALUE>1061109567</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcid</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcflags</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcstore</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcmerge</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "PPCAsm Panel" panel -->
-                <SETTING><NAME>MWAssembler_PPC_auxheader</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_symmode</NAME><VALUE>Mac</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_dialect</NAME><VALUE>PPC</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_prefixfile</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_typecheck</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_warnings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_casesensitive</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "Rez Compiler" panel -->
-                <SETTING><NAME>MWRez_Language_maxwidth</NAME><VALUE>80</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_script</NAME><VALUE>Roman</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_alignment</NAME><VALUE>Align1</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_filtermode</NAME><VALUE>FilterSkip</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_suppresswarnings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_escapecontrolchars</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_prefixname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_filteredtypes</NAME><VALUE>'CODE' 'DATA' 'PICT'</VALUE></SETTING>
-            </SETTINGLIST>
-            <FILELIST>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>wx_PPC.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL C++.PPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL C.PPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>console.stubs.c</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Text</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL RuntimePPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>wx_PPC.rsrc</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Resource</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>tiff.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>jpeg.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>png.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>zlib.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>toolbar.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Text</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>AppearanceLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>ATSUnicodeLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>CarbonAccessors.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>ControlsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>CursorDevicesGlue.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>DialogsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>DragLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>InterfaceLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>InternetConfigLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>WindowsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MathLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MenusLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>NavigationLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptAppleTalkLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptATalkPPC.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptInetPPC.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptInternetLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTransportLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTransportAppPPC.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>PLStringFuncsPPC.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>TextEncodingConverter</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>Textension</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>ThreadsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>UnicodeConverter</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-            </FILELIST>
-            <LINKORDER>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>wx_PPC.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL C++.PPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL C.PPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>console.stubs.c</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL RuntimePPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>wx_PPC.rsrc</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>tiff.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>jpeg.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>png.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>zlib.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>toolbar.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>AppearanceLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>ATSUnicodeLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>CarbonAccessors.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>ControlsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>CursorDevicesGlue.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>DialogsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>DragLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>InterfaceLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>InternetConfigLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>WindowsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MathLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MenusLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>NavigationLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptAppleTalkLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptATalkPPC.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptInetPPC.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptInternetLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTransportLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTransportAppPPC.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>PLStringFuncsPPC.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>TextEncodingConverter</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>Textension</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>ThreadsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>UnicodeConverter</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-            </LINKORDER>
-        </TARGET>
-        <TARGET>
-            <NAME>Classic Debug</NAME>
-            <SETTINGLIST>
-
-                <!-- Settings for "Source Trees" panel -->
-                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Custom Keywords" panel -->
-                <SETTING><NAME>CustomColor1</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor2</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor3</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor4</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-
-                <!-- Settings for "Access Paths" panel -->
-                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>UserSearchPaths</NAME>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>:::include:</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>:::lib:</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-                <SETTING><NAME>SystemSearchPaths</NAME>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>MSL</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>:MacOS Support:</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-
-                <!-- Settings for "Target Settings" panel -->
-                <SETTING><NAME>Linker</NAME><VALUE>MacOS PPC Linker</VALUE></SETTING>
-                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>PostLinker</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>Targetname</NAME><VALUE>Classic Debug</VALUE></SETTING>
-                <SETTING><NAME>OutputDirectory</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
-
-                <!-- Settings for "File Mappings" panel -->
-                <SETTING><NAME>FileMappings</NAME>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>APPL</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>Appl</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>MMLB</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Lib Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>MPLF</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Lib Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>MWCD</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>RSRC</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.c++</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cp</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.exp</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.pch</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.pch++</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.r</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Rez</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>XCOF</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>XCOFF Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>docu</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>rsrc</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>shlb</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>PEF Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>stub</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>PEF Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.doc</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>XCOFF Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.ppob</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.rsrc</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-
-                <!-- Settings for "Build Extras" panel -->
-                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>ActivateBrowser</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>DebuggerCommandLine</NAME><VALUE></VALUE></SETTING>
-                <PANELDATA><NAME>Debugger Runtime</NAME><VALUE>
-                    0002000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    000000000000000000000000000000000E2D755010000000000001000E2D7E60
-                    0002000000000000000000000E2D2DD000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    00000000000000000000000000000000
-                </VALUE></PANELDATA>
-
-                <!-- Settings for "Debugger Target" panel -->
-                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>AutoTargetDLLs</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
-                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>AltExePath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
-                <SETTING><NAME>TempBPType</NAME><VALUE>false</VALUE></SETTING>
-
-                <!-- Settings for "C/C++ Compiler" panel -->
-                <SETTING><NAME>MWFrontEnd_C_cplusplus</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_checkprotos</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_arm</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_trigraphs</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_onlystdkeywords</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_enumsalwaysint</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_mpwpointerstyle</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_prefixname</NAME><VALUE>/wx/wx_cw_d.h</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_ansistrict</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_mpwcnewline</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_wchar_type</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_enableexceptions</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_dontreusestrings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_poolstrings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_dontinline</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_useRTTI</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_multibyteaware</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_unsignedchars</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_autoinline</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_booltruefalse</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_direct_to_som</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_som_env_check</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_alwaysinline</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_inlinelevel</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_ecplusplus</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_objective_c</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_defer_codegen</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "C/C++ Warnings" panel -->
-                <SETTING><NAME>MWWarning_C_warn_illpragma</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_emptydecl</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_possunwant</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_unusedvar</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_unusedarg</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_extracomma</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_pedantic</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warningerrors</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_hidevirtual</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_implicitconv</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_notinlined</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_structclass</NAME><VALUE>1</VALUE></SETTING>
-
-                <!-- Settings for "MacOS Merge Panel" panel -->
-                <SETTING><NAME>MWMerge_MacOS_projectType</NAME><VALUE>Application</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_outputName</NAME><VALUE>Merge Out</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_outputCreator</NAME><VALUE>1061109567</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_outputType</NAME><VALUE>1095782476</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_suppressWarning</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_copyFragments</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_copyResources</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_skipResources</NAME>
-                    <SETTING><VALUE></VALUE></SETTING>
-                    <SETTING><VALUE>{Ð</VALUE></SETTING>
-                    <SETTING><VALUE>%#H</VALUE></SETTING>
-                    <SETTING><VALUE>%8*</VALUE></SETTING>
-                </SETTING>
-
-                <!-- Settings for "PPC CodeGen" panel -->
-                <SETTING><NAME>MWCodeGen_PPC_structalignment</NAME><VALUE>PPC</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_tracebacktables</NAME><VALUE>Inline</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_processor</NAME><VALUE>Generic</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_readonlystrings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_tocdata</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_profiler</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_fpcontract</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_schedule</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_peephole</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_processorspecific</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_altivec</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_vectortocdata</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_vrsave</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "PPC Disassembler" panel -->
-                <SETTING><NAME>MWDisassembler_PPC_showcode</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_extended</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_mix</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_nohex</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_showdata</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_showexceptions</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_showsym</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_shownames</NAME><VALUE>1</VALUE></SETTING>
-
-                <!-- Settings for "PPC Global Optimizer" panel -->
-                <SETTING><NAME>GlobalOptimizer_PPC_optimizationlevel</NAME><VALUE>Level0</VALUE></SETTING>
-                <SETTING><NAME>GlobalOptimizer_PPC_optfor</NAME><VALUE>Speed</VALUE></SETTING>
-
-                <!-- Settings for "PPC Linker" panel -->
-                <SETTING><NAME>MWLinker_PPC_linksym</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_symfullpath</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_linkmap</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_nolinkwarnings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_dontdeadstripinitcode</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_permitmultdefs</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_linkmode</NAME><VALUE>Fast</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_initname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_mainname</NAME><VALUE>__start</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_termname</NAME><VALUE></VALUE></SETTING>
-                <PANELDATA><NAME>PPC Mach-O CodeGen</NAME><VALUE>
-                    0001000001010000010000000001010101000000
-                </VALUE></PANELDATA>
-                <PANELDATA><NAME>PPC Mach-O Linker</NAME><VALUE>
-                    0001000000000100000100000000000000000000000000000000000000007374
-                    6172740000000000000000000000000000000000000000000000000000000000
-                    000000000000000000000000000000000000000000000000000000000000
-                </VALUE></PANELDATA>
-                <PANELDATA><NAME>PPC Mach-O Target</NAME><VALUE>
-                    0001000005612E6F757400000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    000000003F3F3F3F4D41504C0000004000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    00000000
-                </VALUE></PANELDATA>
-
-                <!-- Settings for "PPC PEF" panel -->
-                <SETTING><NAME>MWPEF_exports</NAME><VALUE>None</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_libfolder</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_sortcode</NAME><VALUE>None</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_expandbss</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_sharedata</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_olddefversion</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_oldimpversion</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_currentversion</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_fragmentname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWPEF_collapsereloads</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "PPC Project" panel -->
-                <SETTING><NAME>MWProject_PPC_type</NAME><VALUE>Application</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_outfile</NAME><VALUE>toolbar Classic Debug</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_filecreator</NAME><VALUE>1061109567</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_filetype</NAME><VALUE>1095782476</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_size</NAME><VALUE>3840</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_minsize</NAME><VALUE>3840</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_stacksize</NAME><VALUE>64</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_flags</NAME><VALUE>22720</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_symfilename</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcheader</NAME><VALUE>Native</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrctype</NAME><VALUE>1061109567</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcid</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcflags</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcstore</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcmerge</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "PPCAsm Panel" panel -->
-                <SETTING><NAME>MWAssembler_PPC_auxheader</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_symmode</NAME><VALUE>Mac</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_dialect</NAME><VALUE>PPC</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_prefixfile</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_typecheck</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_warnings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_casesensitive</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "Rez Compiler" panel -->
-                <SETTING><NAME>MWRez_Language_maxwidth</NAME><VALUE>80</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_script</NAME><VALUE>Roman</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_alignment</NAME><VALUE>Align1</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_filtermode</NAME><VALUE>FilterSkip</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_suppresswarnings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_escapecontrolchars</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_prefixname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_filteredtypes</NAME><VALUE>'CODE' 'DATA' 'PICT'</VALUE></SETTING>
-            </SETTINGLIST>
-            <FILELIST>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL C++.PPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL C.PPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>console.stubs.c</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Text</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL RuntimePPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>wx_PPC_d.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>wx_PPC.rsrc</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Resource</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>zlib.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>png.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>tiffd.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>jpeg.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>toolbar.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Text</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>AppearanceLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>ATSUnicodeLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>CarbonAccessors.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>ControlsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>CursorDevicesGlue.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>DialogsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>DragLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>InterfaceLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>InternetConfigLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>WindowsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MathLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MenusLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>NavigationLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptAppleTalkLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptATalkPPC.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptInetPPC.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptInternetLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTransportLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTransportAppPPC.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>PLStringFuncsPPC.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>TextEncodingConverter</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>Textension</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>ThreadsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>UnicodeConverter</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-            </FILELIST>
-            <LINKORDER>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL C++.PPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL C.PPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>console.stubs.c</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL RuntimePPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>wx_PPC_d.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>wx_PPC.rsrc</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>zlib.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>png.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>tiffd.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>jpeg.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>toolbar.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>AppearanceLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>ATSUnicodeLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>CarbonAccessors.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>ControlsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>CursorDevicesGlue.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>DialogsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>DragLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>InterfaceLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>InternetConfigLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>WindowsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MathLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MenusLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>NavigationLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptAppleTalkLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptATalkPPC.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptInetPPC.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptInternetLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTransportLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTransportAppPPC.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>PLStringFuncsPPC.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>TextEncodingConverter</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>Textension</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>ThreadsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>UnicodeConverter</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-            </LINKORDER>
-        </TARGET>
-        <TARGET>
-            <NAME>Carbon Debug</NAME>
-            <SETTINGLIST>
-
-                <!-- Settings for "Source Trees" panel -->
-                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Custom Keywords" panel -->
-                <SETTING><NAME>CustomColor1</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor2</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor3</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor4</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-
-                <!-- Settings for "Access Paths" panel -->
-                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>UserSearchPaths</NAME>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>:::include:</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>:::lib:</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-                <SETTING><NAME>SystemSearchPaths</NAME>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>MSL</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>:MacOS Support:</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-
-                <!-- Settings for "Target Settings" panel -->
-                <SETTING><NAME>Linker</NAME><VALUE>MacOS PPC Linker</VALUE></SETTING>
-                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>PostLinker</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>Targetname</NAME><VALUE>Carbon Debug</VALUE></SETTING>
-                <SETTING><NAME>OutputDirectory</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
-
-                <!-- Settings for "File Mappings" panel -->
-                <SETTING><NAME>FileMappings</NAME>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>APPL</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>Appl</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>MMLB</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Lib Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>MPLF</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Lib Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>MWCD</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>RSRC</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.c++</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cp</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.exp</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.pch</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.pch++</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.r</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Rez</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>XCOF</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>XCOFF Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>docu</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>rsrc</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>shlb</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>PEF Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>stub</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>PEF Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.doc</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>XCOFF Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.ppob</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.rsrc</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-
-                <!-- Settings for "Build Extras" panel -->
-                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>ActivateBrowser</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>DebuggerCommandLine</NAME><VALUE></VALUE></SETTING>
-                <PANELDATA><NAME>Debugger Runtime</NAME><VALUE>
-                    0002000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    00000000000000000000000000000000
-                </VALUE></PANELDATA>
-
-                <!-- Settings for "Debugger Target" panel -->
-                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>AutoTargetDLLs</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
-                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>AltExePath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
-                <SETTING><NAME>TempBPType</NAME><VALUE>false</VALUE></SETTING>
-
-                <!-- Settings for "C/C++ Compiler" panel -->
-                <SETTING><NAME>MWFrontEnd_C_cplusplus</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_checkprotos</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_arm</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_trigraphs</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_onlystdkeywords</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_enumsalwaysint</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_mpwpointerstyle</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_prefixname</NAME><VALUE>/wx/wx_cwc_d.h</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_ansistrict</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_mpwcnewline</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_wchar_type</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_enableexceptions</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_dontreusestrings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_poolstrings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_dontinline</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_useRTTI</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_multibyteaware</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_unsignedchars</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_autoinline</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_booltruefalse</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_direct_to_som</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_som_env_check</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_alwaysinline</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_inlinelevel</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_ecplusplus</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_objective_c</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_defer_codegen</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "C/C++ Warnings" panel -->
-                <SETTING><NAME>MWWarning_C_warn_illpragma</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_emptydecl</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_possunwant</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_unusedvar</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_unusedarg</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_extracomma</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_pedantic</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warningerrors</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_hidevirtual</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_implicitconv</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_notinlined</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_structclass</NAME><VALUE>1</VALUE></SETTING>
-
-                <!-- Settings for "MacOS Merge Panel" panel -->
-                <SETTING><NAME>MWMerge_MacOS_projectType</NAME><VALUE>Application</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_outputName</NAME><VALUE>Merge Out</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_outputCreator</NAME><VALUE>1061109567</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_outputType</NAME><VALUE>1095782476</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_suppressWarning</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_copyFragments</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_copyResources</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_skipResources</NAME>
-                    <SETTING><VALUE></VALUE></SETTING>
-                    <SETTING><VALUE>{Ð</VALUE></SETTING>
-                    <SETTING><VALUE>%#H</VALUE></SETTING>
-                    <SETTING><VALUE>%8*</VALUE></SETTING>
-                </SETTING>
-
-                <!-- Settings for "PPC CodeGen" panel -->
-                <SETTING><NAME>MWCodeGen_PPC_structalignment</NAME><VALUE>PPC</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_tracebacktables</NAME><VALUE>Inline</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_processor</NAME><VALUE>Generic</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_readonlystrings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_tocdata</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_profiler</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_fpcontract</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_schedule</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_peephole</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_processorspecific</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_altivec</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_vectortocdata</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_vrsave</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "PPC Disassembler" panel -->
-                <SETTING><NAME>MWDisassembler_PPC_showcode</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_extended</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_mix</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_nohex</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_showdata</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_showexceptions</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_showsym</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_shownames</NAME><VALUE>1</VALUE></SETTING>
-
-                <!-- Settings for "PPC Global Optimizer" panel -->
-                <SETTING><NAME>GlobalOptimizer_PPC_optimizationlevel</NAME><VALUE>Level0</VALUE></SETTING>
-                <SETTING><NAME>GlobalOptimizer_PPC_optfor</NAME><VALUE>Speed</VALUE></SETTING>
-
-                <!-- Settings for "PPC Linker" panel -->
-                <SETTING><NAME>MWLinker_PPC_linksym</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_symfullpath</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_linkmap</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_nolinkwarnings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_dontdeadstripinitcode</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_permitmultdefs</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_linkmode</NAME><VALUE>Fast</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_initname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_mainname</NAME><VALUE>__start</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_termname</NAME><VALUE></VALUE></SETTING>
-                <PANELDATA><NAME>PPC Mach-O CodeGen</NAME><VALUE>
-                    0001000001010000010000000001010101000000
-                </VALUE></PANELDATA>
-                <PANELDATA><NAME>PPC Mach-O Linker</NAME><VALUE>
-                    0001000000000100000100000000000000000000000000000000000000007374
-                    6172740000000000000000000000000000000000000000000000000000000000
-                    000000000000000000000000000000000000000000000000000000000000
-                </VALUE></PANELDATA>
-                <PANELDATA><NAME>PPC Mach-O Target</NAME><VALUE>
-                    0001000005612E6F757400000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    000000003F3F3F3F4D41504C0000004000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    00000000
-                </VALUE></PANELDATA>
-
-                <!-- Settings for "PPC PEF" panel -->
-                <SETTING><NAME>MWPEF_exports</NAME><VALUE>None</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_libfolder</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_sortcode</NAME><VALUE>None</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_expandbss</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_sharedata</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_olddefversion</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_oldimpversion</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_currentversion</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_fragmentname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWPEF_collapsereloads</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "PPC Project" panel -->
-                <SETTING><NAME>MWProject_PPC_type</NAME><VALUE>Application</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_outfile</NAME><VALUE>toolbar Carbon Debug</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_filecreator</NAME><VALUE>1061109567</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_filetype</NAME><VALUE>1095782476</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_size</NAME><VALUE>3840</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_minsize</NAME><VALUE>3840</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_stacksize</NAME><VALUE>64</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_flags</NAME><VALUE>22720</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_symfilename</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcheader</NAME><VALUE>Native</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrctype</NAME><VALUE>1061109567</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcid</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcflags</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcstore</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcmerge</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "PPCAsm Panel" panel -->
-                <SETTING><NAME>MWAssembler_PPC_auxheader</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_symmode</NAME><VALUE>Mac</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_dialect</NAME><VALUE>PPC</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_prefixfile</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_typecheck</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_warnings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_casesensitive</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "Rez Compiler" panel -->
-                <SETTING><NAME>MWRez_Language_maxwidth</NAME><VALUE>80</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_script</NAME><VALUE>Roman</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_alignment</NAME><VALUE>Align1</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_filtermode</NAME><VALUE>FilterSkip</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_suppresswarnings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_escapecontrolchars</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_prefixname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_filteredtypes</NAME><VALUE>'CODE' 'DATA' 'PICT'</VALUE></SETTING>
-            </SETTINGLIST>
-            <FILELIST>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL C++.PPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>console.stubs.c</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Text</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL RuntimePPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>wx_CARBON_d.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL C.CARBON.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>wx_CARBON.rsrc</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Resource</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>tiffd.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>jpeg.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>png.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>zlib.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>toolbar.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Text</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>CarbonLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-            </FILELIST>
-            <LINKORDER>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL C++.PPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>console.stubs.c</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL RuntimePPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>wx_CARBON_d.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL C.CARBON.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>wx_CARBON.rsrc</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>tiffd.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>jpeg.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>png.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>zlib.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>toolbar.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>CarbonLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-            </LINKORDER>
-        </TARGET>
-        <TARGET>
-            <NAME>Carbon Release</NAME>
-            <SETTINGLIST>
-
-                <!-- Settings for "Source Trees" panel -->
-                <SETTING><NAME>UserSourceTrees</NAME><VALUE></VALUE></SETTING>
-
-                <!-- Settings for "Custom Keywords" panel -->
-                <SETTING><NAME>CustomColor1</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor2</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor3</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>CustomColor4</NAME>
-                    <SETTING><NAME>Red</NAME><VALUE>0</VALUE></SETTING>
-                    <SETTING><NAME>Green</NAME><VALUE>32767</VALUE></SETTING>
-                    <SETTING><NAME>Blue</NAME><VALUE>0</VALUE></SETTING>
-                </SETTING>
-
-                <!-- Settings for "Access Paths" panel -->
-                <SETTING><NAME>AlwaysSearchUserPaths</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>InterpretDOSAndUnixPaths</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>UserSearchPaths</NAME>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>:::include:</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>:::lib:</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-                <SETTING><NAME>SystemSearchPaths</NAME>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>MSL</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>Windows</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>SearchPath</NAME>
-                            <SETTING><NAME>Path</NAME><VALUE>:MacOS Support:</VALUE></SETTING>
-                            <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
-                            <SETTING><NAME>PathRoot</NAME><VALUE>CodeWarrior</VALUE></SETTING>
-                        </SETTING>
-                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-
-                <!-- Settings for "Target Settings" panel -->
-                <SETTING><NAME>Linker</NAME><VALUE>MacOS PPC Linker</VALUE></SETTING>
-                <SETTING><NAME>PreLinker</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>PostLinker</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>Targetname</NAME><VALUE>Carbon Release</VALUE></SETTING>
-                <SETTING><NAME>OutputDirectory</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE>:</VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>SaveEntriesUsingRelativePaths</NAME><VALUE>false</VALUE></SETTING>
-
-                <!-- Settings for "File Mappings" panel -->
-                <SETTING><NAME>FileMappings</NAME>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>APPL</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>Appl</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>MMLB</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Lib Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>MPLF</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Lib Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>MWCD</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>RSRC</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.c</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.c++</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cc</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cp</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.cpp</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.exp</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.h</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.pch</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.pch++</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>MW C/C++ PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>TEXT</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.r</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>Rez</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>XCOF</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>XCOFF Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>docu</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>rsrc</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>shlb</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>PEF Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileType</NAME><VALUE>stub</VALUE></SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>PEF Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.doc</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>true</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.o</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE>XCOFF Import PPC</VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.ppob</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                    <SETTING>
-                        <SETTING><NAME>FileExtension</NAME><VALUE>.rsrc</VALUE></SETTING>
-                        <SETTING><NAME>Compiler</NAME><VALUE></VALUE></SETTING>
-                        <SETTING><NAME>Precompile</NAME><VALUE>false</VALUE></SETTING>
-                        <SETTING><NAME>Launchable</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>ResourceFile</NAME><VALUE>true</VALUE></SETTING>
-                        <SETTING><NAME>IgnoredByMake</NAME><VALUE>false</VALUE></SETTING>
-                    </SETTING>
-                </SETTING>
-
-                <!-- Settings for "Build Extras" panel -->
-                <SETTING><NAME>CacheModDates</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>ActivateBrowser</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>DumpBrowserInfo</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>CacheSubprojects</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>UseThirdPartyDebugger</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>DebuggerCommandLine</NAME><VALUE></VALUE></SETTING>
-                <PANELDATA><NAME>Debugger Runtime</NAME><VALUE>
-                    0002000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    00000000000000000000000000000000
-                </VALUE></PANELDATA>
-
-                <!-- Settings for "Debugger Target" panel -->
-                <SETTING><NAME>LogSystemMessages</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>AutoTargetDLLs</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>StopAtWatchpoints</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>PauseWhileRunning</NAME><VALUE>false</VALUE></SETTING>
-                <SETTING><NAME>PauseInterval</NAME><VALUE>5</VALUE></SETTING>
-                <SETTING><NAME>PauseUIFlags</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>AltExePath</NAME>
-                    <SETTING><NAME>Path</NAME><VALUE></VALUE></SETTING>
-                    <SETTING><NAME>PathFormat</NAME><VALUE>Generic</VALUE></SETTING>
-                    <SETTING><NAME>PathRoot</NAME><VALUE>Absolute</VALUE></SETTING>
-                </SETTING>
-                <SETTING><NAME>StopAtTempBPOnLaunch</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>CacheSymbolics</NAME><VALUE>true</VALUE></SETTING>
-                <SETTING><NAME>TempBPFunctionName</NAME><VALUE>main</VALUE></SETTING>
-                <SETTING><NAME>TempBPType</NAME><VALUE>false</VALUE></SETTING>
-
-                <!-- Settings for "C/C++ Compiler" panel -->
-                <SETTING><NAME>MWFrontEnd_C_cplusplus</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_checkprotos</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_arm</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_trigraphs</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_onlystdkeywords</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_enumsalwaysint</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_mpwpointerstyle</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_prefixname</NAME><VALUE>/wx/wx_cwc.h</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_ansistrict</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_mpwcnewline</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_wchar_type</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_enableexceptions</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_dontreusestrings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_poolstrings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_dontinline</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_useRTTI</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_multibyteaware</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_unsignedchars</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_autoinline</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_booltruefalse</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_direct_to_som</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_som_env_check</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_alwaysinline</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_inlinelevel</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_ecplusplus</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_objective_c</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWFrontEnd_C_defer_codegen</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "C/C++ Warnings" panel -->
-                <SETTING><NAME>MWWarning_C_warn_illpragma</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_emptydecl</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_possunwant</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_unusedvar</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_unusedarg</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_extracomma</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_pedantic</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warningerrors</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_hidevirtual</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_implicitconv</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_notinlined</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWWarning_C_warn_structclass</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "MacOS Merge Panel" panel -->
-                <SETTING><NAME>MWMerge_MacOS_projectType</NAME><VALUE>Application</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_outputName</NAME><VALUE>Merge Out</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_outputCreator</NAME><VALUE>1061109567</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_outputType</NAME><VALUE>1095782476</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_suppressWarning</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_copyFragments</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_copyResources</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWMerge_MacOS_skipResources</NAME>
-                    <SETTING><VALUE></VALUE></SETTING>
-                    <SETTING><VALUE>{Ð</VALUE></SETTING>
-                    <SETTING><VALUE>%#H</VALUE></SETTING>
-                    <SETTING><VALUE>%8*</VALUE></SETTING>
-                </SETTING>
-
-                <!-- Settings for "PPC CodeGen" panel -->
-                <SETTING><NAME>MWCodeGen_PPC_structalignment</NAME><VALUE>PPC</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_tracebacktables</NAME><VALUE>None</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_processor</NAME><VALUE>Generic</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_readonlystrings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_tocdata</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_profiler</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_fpcontract</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_schedule</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_peephole</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_processorspecific</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_altivec</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_vectortocdata</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWCodeGen_PPC_vrsave</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "PPC Disassembler" panel -->
-                <SETTING><NAME>MWDisassembler_PPC_showcode</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_extended</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_mix</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_nohex</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_showdata</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_showexceptions</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_showsym</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWDisassembler_PPC_shownames</NAME><VALUE>1</VALUE></SETTING>
-
-                <!-- Settings for "PPC Global Optimizer" panel -->
-                <SETTING><NAME>GlobalOptimizer_PPC_optimizationlevel</NAME><VALUE>Level0</VALUE></SETTING>
-                <SETTING><NAME>GlobalOptimizer_PPC_optfor</NAME><VALUE>Speed</VALUE></SETTING>
-
-                <!-- Settings for "PPC Linker" panel -->
-                <SETTING><NAME>MWLinker_PPC_linksym</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_symfullpath</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_linkmap</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_nolinkwarnings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_dontdeadstripinitcode</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_permitmultdefs</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_linkmode</NAME><VALUE>Fast</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_initname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_mainname</NAME><VALUE>__start</VALUE></SETTING>
-                <SETTING><NAME>MWLinker_PPC_termname</NAME><VALUE></VALUE></SETTING>
-                <PANELDATA><NAME>PPC Mach-O CodeGen</NAME><VALUE>
-                    0001000001010000010000000001010101000000
-                </VALUE></PANELDATA>
-                <PANELDATA><NAME>PPC Mach-O Linker</NAME><VALUE>
-                    0001000000000100000100000000000000000000000000000000000000007374
-                    6172740000000000000000000000000000000000000000000000000000000000
-                    000000000000000000000000000000000000000000000000000000000000
-                </VALUE></PANELDATA>
-                <PANELDATA><NAME>PPC Mach-O Target</NAME><VALUE>
-                    0001000005612E6F757400000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    000000003F3F3F3F4D41504C0000004000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    0000000000000000000000000000000000000000000000000000000000000000
-                    00000000
-                </VALUE></PANELDATA>
-
-                <!-- Settings for "PPC PEF" panel -->
-                <SETTING><NAME>MWPEF_exports</NAME><VALUE>None</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_libfolder</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_sortcode</NAME><VALUE>None</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_expandbss</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_sharedata</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_olddefversion</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_oldimpversion</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_currentversion</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWPEF_fragmentname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWPEF_collapsereloads</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "PPC Project" panel -->
-                <SETTING><NAME>MWProject_PPC_type</NAME><VALUE>Application</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_outfile</NAME><VALUE>toolbar Carbon Release</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_filecreator</NAME><VALUE>1061109567</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_filetype</NAME><VALUE>1095782476</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_size</NAME><VALUE>3840</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_minsize</NAME><VALUE>3840</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_stacksize</NAME><VALUE>64</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_flags</NAME><VALUE>22720</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_symfilename</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcheader</NAME><VALUE>Native</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrctype</NAME><VALUE>1061109567</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcid</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcflags</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcstore</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWProject_PPC_rsrcmerge</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "PPCAsm Panel" panel -->
-                <SETTING><NAME>MWAssembler_PPC_auxheader</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_symmode</NAME><VALUE>Mac</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_dialect</NAME><VALUE>PPC</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_prefixfile</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_typecheck</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_warnings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWAssembler_PPC_casesensitive</NAME><VALUE>0</VALUE></SETTING>
-
-                <!-- Settings for "Rez Compiler" panel -->
-                <SETTING><NAME>MWRez_Language_maxwidth</NAME><VALUE>80</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_script</NAME><VALUE>Roman</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_alignment</NAME><VALUE>Align1</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_filtermode</NAME><VALUE>FilterSkip</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_suppresswarnings</NAME><VALUE>0</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_escapecontrolchars</NAME><VALUE>1</VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_prefixname</NAME><VALUE></VALUE></SETTING>
-                <SETTING><NAME>MWRez_Language_filteredtypes</NAME><VALUE>'CODE' 'DATA' 'PICT'</VALUE></SETTING>
-            </SETTINGLIST>
-            <FILELIST>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL C++.PPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>console.stubs.c</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Text</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL RuntimePPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL C.CARBON.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>wx_CARBON.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>wx_CARBON.rsrc</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Resource</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>tiff.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>jpeg.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>toolbar.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Text</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>zlib.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>png.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>CarbonLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Library</FILEKIND>
-                    <FILEFLAGS></FILEFLAGS>
-                </FILE>
-            </FILELIST>
-            <LINKORDER>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL C++.PPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>console.stubs.c</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL RuntimePPC.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MSL C.CARBON.Lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>wx_CARBON.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>wx_CARBON.rsrc</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>tiff.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>jpeg.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>toolbar.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>zlib.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>png.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>CarbonLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-            </LINKORDER>
-        </TARGET>
-    </TARGETLIST>
-
-    <TARGETORDER>
-        <ORDEREDTARGET><NAME>Classic Release</NAME></ORDEREDTARGET>
-        <ORDEREDTARGET><NAME>Classic Debug</NAME></ORDEREDTARGET>
-        <ORDEREDTARGET><NAME>Carbon Debug</NAME></ORDEREDTARGET>
-        <ORDEREDTARGET><NAME>Carbon Release</NAME></ORDEREDTARGET>
-    </TARGETORDER>
-
-    <GROUPLIST>
-        <FILEREF>
-            <TARGETNAME>Classic Release</TARGETNAME>
-            <PATHTYPE>Name</PATHTYPE>
-            <PATH>toolbar.cpp</PATH>
-            <PATHFORMAT>MacOS</PATHFORMAT>
-        </FILEREF>
-        <GROUP><NAME>wx</NAME>
-            <FILEREF>
-                <TARGETNAME>Carbon Release</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>wx_CARBON.lib</PATH>
-                <PATHFORMAT>MacOS</PATHFORMAT>
-            </FILEREF>
-            <FILEREF>
-                <TARGETNAME>Carbon Debug</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>wx_CARBON_d.lib</PATH>
-                <PATHFORMAT>MacOS</PATHFORMAT>
-            </FILEREF>
-            <FILEREF>
-                <TARGETNAME>Carbon Debug</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>wx_CARBON.rsrc</PATH>
-                <PATHFORMAT>MacOS</PATHFORMAT>
-            </FILEREF>
-            <FILEREF>
-                <TARGETNAME>Classic Release</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>wx_PPC.lib</PATH>
-                <PATHFORMAT>MacOS</PATHFORMAT>
-            </FILEREF>
-            <FILEREF>
-                <TARGETNAME>Classic Debug</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>wx_PPC_d.lib</PATH>
-                <PATHFORMAT>MacOS</PATHFORMAT>
-            </FILEREF>
-            <FILEREF>
-                <TARGETNAME>Classic Release</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>wx_PPC.rsrc</PATH>
-                <PATHFORMAT>MacOS</PATHFORMAT>
-            </FILEREF>
-            <FILEREF>
-                <TARGETNAME>Classic Release</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>tiff.lib</PATH>
-                <PATHFORMAT>MacOS</PATHFORMAT>
-            </FILEREF>
-            <FILEREF>
-                <TARGETNAME>Classic Release</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>zlib.lib</PATH>
-                <PATHFORMAT>MacOS</PATHFORMAT>
-            </FILEREF>
-            <FILEREF>
-                <TARGETNAME>Classic Release</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>png.lib</PATH>
-                <PATHFORMAT>MacOS</PATHFORMAT>
-            </FILEREF>
-            <FILEREF>
-                <TARGETNAME>Classic Debug</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>tiffd.lib</PATH>
-                <PATHFORMAT>MacOS</PATHFORMAT>
-            </FILEREF>
-            <FILEREF>
-                <TARGETNAME>Classic Release</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>jpeg.lib</PATH>
-                <PATHFORMAT>MacOS</PATHFORMAT>
-            </FILEREF>
-        </GROUP>
-        <GROUP><NAME>MSL ANSI Libraries</NAME>
-            <FILEREF>
-                <TARGETNAME>Classic Release</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>console.stubs.c</PATH>
-                <PATHFORMAT>MacOS</PATHFORMAT>
-            </FILEREF>
-            <FILEREF>
-                <TARGETNAME>Classic Release</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>MSL RuntimePPC.Lib</PATH>
-                <PATHFORMAT>MacOS</PATHFORMAT>
-            </FILEREF>
-            <FILEREF>
-                <TARGETNAME>Classic Release</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>MSL C++.PPC.Lib</PATH>
-                <PATHFORMAT>MacOS</PATHFORMAT>
-            </FILEREF>
-            <FILEREF>
-                <TARGETNAME>Classic Release</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>MSL C.PPC.Lib</PATH>
-                <PATHFORMAT>MacOS</PATHFORMAT>
-            </FILEREF>
-            <FILEREF>
-                <TARGETNAME>Carbon Debug</TARGETNAME>
-                <PATHTYPE>Name</PATHTYPE>
-                <PATH>MSL C.CARBON.Lib</PATH>
-                <PATHFORMAT>MacOS</PATHFORMAT>
-            </FILEREF>
-        </GROUP>
-        <GROUP><NAME>Win32 SDK</NAME>
-        </GROUP>
-        <GROUP><NAME>MacOS</NAME>
-            <GROUP><NAME>Carbon</NAME>
-                <FILEREF>
-                    <TARGETNAME>Carbon Debug</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>CarbonLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-            </GROUP>
-            <GROUP><NAME>Classic</NAME>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>AppearanceLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>ATSUnicodeLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>CarbonAccessors.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>ControlsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>CursorDevicesGlue.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>DialogsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>DragLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>InterfaceLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>InternetConfigLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>WindowsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MathLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>MenusLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>NavigationLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptAppleTalkLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptATalkPPC.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptInetPPC.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTptInternetLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTransportLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>OpenTransportAppPPC.o</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>PLStringFuncsPPC.lib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>TextEncodingConverter</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>Textension</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>ThreadsLib</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Release</TARGETNAME>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>UnicodeConverter</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
-            </GROUP>
-        </GROUP>
-    </GROUPLIST>
-
-</PROJECT>
+                    <SETTING><VALUE>{
\ No newline at end of file
diff --git a/samples/treectrl/treetest.dsp b/samples/treectrl/treetest.dsp
index 7d2fdbca7c..550e680836 100644
--- a/samples/treectrl/treetest.dsp
+++ b/samples/treectrl/treetest.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "treetest - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "treetest - Win32 Release"
 
diff --git a/samples/treelay/treelay.dsp b/samples/treelay/treelay.dsp
index 8051ab49ad..116714a057 100644
--- a/samples/treelay/treelay.dsp
+++ b/samples/treelay/treelay.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "treelay - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "treelay - Win32 Release"
 
diff --git a/samples/typetest/typetest.cpp b/samples/typetest/typetest.cpp
index cc972aea5a..ce0f69cdcb 100644
--- a/samples/typetest/typetest.cpp
+++ b/samples/typetest/typetest.cpp
@@ -172,7 +172,7 @@ void MyApp::DoStreamDemo(wxCommandEvent& WXUNUSED(event))
     textCtrl.WriteText( tmp );
     text_output << str << "\n";
     std_file_output << str.c_str() << "\n";
-    
+
     textCtrl.WriteText( "\nReading from ifstream:\n" );
 
     wxSTD ifstream std_file_input( "test_std.dat" );
@@ -298,7 +298,7 @@ void MyApp::DoStreamDemo2(wxCommandEvent& WXUNUSED(event))
     for (ch = 0; ch < 10; ch++)
         buf_output.Write( &ch, 1 );
     buf_output.Sync();
-    
+
     wxFileInputStream file_input( wxString("test_wx.dat") );
     for (ch2 = 0; ch2 < 10; ch2++)
     {
@@ -306,7 +306,7 @@ void MyApp::DoStreamDemo2(wxCommandEvent& WXUNUSED(event))
         textCtrl.WriteText( (wxChar)(ch + '0') );
     }
     textCtrl.WriteText( "\n\n\n" );
-    
+
     textCtrl.WriteText( "Writing number 0 to 9 to buffered wxFileOutputStream, then\n" );
     textCtrl.WriteText( "seeking back to #3 and writing 0:\n\n" );
 
@@ -318,7 +318,7 @@ void MyApp::DoStreamDemo2(wxCommandEvent& WXUNUSED(event))
     ch = 0;
     buf_output2.Write( &ch, 1 );
     buf_output2.Sync();
-    
+
     wxFileInputStream file_input2( wxString("test_wx2.dat") );
     for (ch2 = 0; ch2 < 10; ch2++)
     {
@@ -326,14 +326,14 @@ void MyApp::DoStreamDemo2(wxCommandEvent& WXUNUSED(event))
         textCtrl.WriteText( (wxChar)(ch + '0') );
     }
     textCtrl.WriteText( "\n\n\n" );
-    
+
     // now append 2000 bytes to file (bigger than buffer)
     buf_output2.SeekO( 0, wxFromEnd );
     ch = 1;
     for (int i = 0; i < 2000; i++)
        buf_output2.Write( &ch, 1 );
     buf_output2.Sync();
-    
+
     textCtrl.WriteText( "Reading number 0 to 9 from buffered wxFileInputStream, then\n" );
     textCtrl.WriteText( "seeking back to #3 and reading the 0:\n\n" );
 
@@ -351,7 +351,7 @@ void MyApp::DoStreamDemo2(wxCommandEvent& WXUNUSED(event))
     buf_input3.Read( &ch, 1 );
     textCtrl.WriteText( (wxChar)(ch + '0') );
     textCtrl.WriteText( "\n\n\n" );
-    
+
 }
 
 void MyApp::DoStreamDemo3(wxCommandEvent& WXUNUSED(event))
@@ -370,7 +370,7 @@ void MyApp::DoStreamDemo3(wxCommandEvent& WXUNUSED(event))
         file_output.Write( &ch, 1 );
 
     // Testing wxFileInputStream
-    
+
     textCtrl.WriteText( "Reading 0 to 10 to wxFileInputStream:\n\n" );
 
     wxFileInputStream file_input( wxString("test_wx.dat") );
@@ -379,10 +379,10 @@ void MyApp::DoStreamDemo3(wxCommandEvent& WXUNUSED(event))
         file_input.Read( &ch, 1 );
         textCtrl.WriteText( "Value read: " );
         textCtrl.WriteText( (wxChar)(ch + '0') );
-        textCtrl.WriteText( ";  stream.LastError() returns: " );
-        switch (file_input.LastError())
+        textCtrl.WriteText( ";  stream.GetLastError() returns: " );
+        switch (file_input.GetLastError())
         {
-            case wxSTREAM_NOERROR:      textCtrl.WriteText( "wxSTREAM_NOERROR\n" ); break;
+            case wxSTREAM_NO_ERROR:      textCtrl.WriteText( "wxSTREAM_NO_ERROR\n" ); break;
             case wxSTREAM_EOF:          textCtrl.WriteText( "wxSTREAM_EOF\n" ); break;
             case wxSTREAM_READ_ERROR:   textCtrl.WriteText( "wxSTREAM_READ_ERROR\n" ); break;
             case wxSTREAM_WRITE_ERROR:  textCtrl.WriteText( "wxSTREAM_WRITE_ERROR\n" ); break;
@@ -390,26 +390,26 @@ void MyApp::DoStreamDemo3(wxCommandEvent& WXUNUSED(event))
         }
     }
     textCtrl.WriteText( "\n" );
-    
-    textCtrl.WriteText( "Seeking to 0;  stream.LastError() returns: " );
+
+    textCtrl.WriteText( "Seeking to 0;  stream.GetLastError() returns: " );
     file_input.SeekI( 0 );
-    switch (file_input.LastError())
+    switch (file_input.GetLastError())
     {
-        case wxSTREAM_NOERROR:      textCtrl.WriteText( "wxSTREAM_NOERROR\n" ); break;
+        case wxSTREAM_NO_ERROR:      textCtrl.WriteText( "wxSTREAM_NO_ERROR\n" ); break;
         case wxSTREAM_EOF:          textCtrl.WriteText( "wxSTREAM_EOF\n" ); break;
         case wxSTREAM_READ_ERROR:   textCtrl.WriteText( "wxSTREAM_READ_ERROR\n" ); break;
         case wxSTREAM_WRITE_ERROR:  textCtrl.WriteText( "wxSTREAM_WRITE_ERROR\n" ); break;
         default: textCtrl.WriteText( "Huh?\n" ); break;
     }
     textCtrl.WriteText( "\n" );
-    
+
     file_input.Read( &ch, 1 );
     textCtrl.WriteText( "Value read: " );
     textCtrl.WriteText( (wxChar)(ch + '0') );
-    textCtrl.WriteText( ";  stream.LastError() returns: " );
-    switch (file_input.LastError())
+    textCtrl.WriteText( ";  stream.GetLastError() returns: " );
+    switch (file_input.GetLastError())
     {
-        case wxSTREAM_NOERROR:      textCtrl.WriteText( "wxSTREAM_NOERROR\n" ); break;
+        case wxSTREAM_NO_ERROR:      textCtrl.WriteText( "wxSTREAM_NO_ERROR\n" ); break;
         case wxSTREAM_EOF:          textCtrl.WriteText( "wxSTREAM_EOF\n" ); break;
         case wxSTREAM_READ_ERROR:   textCtrl.WriteText( "wxSTREAM_READ_ERROR\n" ); break;
         case wxSTREAM_WRITE_ERROR:  textCtrl.WriteText( "wxSTREAM_WRITE_ERROR\n" ); break;
@@ -417,9 +417,9 @@ void MyApp::DoStreamDemo3(wxCommandEvent& WXUNUSED(event))
     }
     textCtrl.WriteText( "\n\n" );
 
-    
+
     // Testing wxFFileInputStream
-    
+
     textCtrl.WriteText( "Reading 0 to 10 to wxFFileInputStream:\n\n" );
 
     wxFFileInputStream ffile_input( wxString("test_wx.dat") );
@@ -428,10 +428,10 @@ void MyApp::DoStreamDemo3(wxCommandEvent& WXUNUSED(event))
         ffile_input.Read( &ch, 1 );
         textCtrl.WriteText( "Value read: " );
         textCtrl.WriteText( (wxChar)(ch + '0') );
-        textCtrl.WriteText( ";  stream.LastError() returns: " );
-        switch (ffile_input.LastError())
+        textCtrl.WriteText( ";  stream.GetLastError() returns: " );
+        switch (ffile_input.GetLastError())
         {
-            case wxSTREAM_NOERROR:      textCtrl.WriteText( "wxSTREAM_NOERROR\n" ); break;
+            case wxSTREAM_NO_ERROR:      textCtrl.WriteText( "wxSTREAM_NO_ERROR\n" ); break;
             case wxSTREAM_EOF:          textCtrl.WriteText( "wxSTREAM_EOF\n" ); break;
             case wxSTREAM_READ_ERROR:   textCtrl.WriteText( "wxSTREAM_READ_ERROR\n" ); break;
             case wxSTREAM_WRITE_ERROR:  textCtrl.WriteText( "wxSTREAM_WRITE_ERROR\n" ); break;
@@ -439,26 +439,26 @@ void MyApp::DoStreamDemo3(wxCommandEvent& WXUNUSED(event))
         }
     }
     textCtrl.WriteText( "\n" );
-    
-    textCtrl.WriteText( "Seeking to 0;  stream.LastError() returns: " );
+
+    textCtrl.WriteText( "Seeking to 0;  stream.GetLastError() returns: " );
     ffile_input.SeekI( 0 );
-    switch (ffile_input.LastError())
+    switch (ffile_input.GetLastError())
     {
-        case wxSTREAM_NOERROR:      textCtrl.WriteText( "wxSTREAM_NOERROR\n" ); break;
+        case wxSTREAM_NO_ERROR:      textCtrl.WriteText( "wxSTREAM_NO_ERROR\n" ); break;
         case wxSTREAM_EOF:          textCtrl.WriteText( "wxSTREAM_EOF\n" ); break;
         case wxSTREAM_READ_ERROR:   textCtrl.WriteText( "wxSTREAM_READ_ERROR\n" ); break;
         case wxSTREAM_WRITE_ERROR:  textCtrl.WriteText( "wxSTREAM_WRITE_ERROR\n" ); break;
         default: textCtrl.WriteText( "Huh?\n" ); break;
     }
     textCtrl.WriteText( "\n" );
-    
+
     ffile_input.Read( &ch, 1 );
     textCtrl.WriteText( "Value read: " );
     textCtrl.WriteText( (wxChar)(ch + '0') );
-    textCtrl.WriteText( ";  stream.LastError() returns: " );
-    switch (ffile_input.LastError())
+    textCtrl.WriteText( ";  stream.GetLastError() returns: " );
+    switch (ffile_input.GetLastError())
     {
-        case wxSTREAM_NOERROR:      textCtrl.WriteText( "wxSTREAM_NOERROR\n" ); break;
+        case wxSTREAM_NO_ERROR:      textCtrl.WriteText( "wxSTREAM_NO_ERROR\n" ); break;
         case wxSTREAM_EOF:          textCtrl.WriteText( "wxSTREAM_EOF\n" ); break;
         case wxSTREAM_READ_ERROR:   textCtrl.WriteText( "wxSTREAM_READ_ERROR\n" ); break;
         case wxSTREAM_WRITE_ERROR:  textCtrl.WriteText( "wxSTREAM_WRITE_ERROR\n" ); break;
@@ -467,7 +467,7 @@ void MyApp::DoStreamDemo3(wxCommandEvent& WXUNUSED(event))
     textCtrl.WriteText( "\n\n" );
 
     // Testing wxFFileInputStream
-    
+
     textCtrl.WriteText( "Reading 0 to 10 to buffered wxFFileInputStream:\n\n" );
 
     wxFFileInputStream ffile_input2( wxString("test_wx.dat") );
@@ -477,10 +477,10 @@ void MyApp::DoStreamDemo3(wxCommandEvent& WXUNUSED(event))
         buf_input.Read( &ch, 1 );
         textCtrl.WriteText( "Value read: " );
         textCtrl.WriteText( (wxChar)(ch + '0') );
-        textCtrl.WriteText( ";  stream.LastError() returns: " );
-        switch (buf_input.LastError())
+        textCtrl.WriteText( ";  stream.GetLastError() returns: " );
+        switch (buf_input.GetLastError())
         {
-            case wxSTREAM_NOERROR:      textCtrl.WriteText( "wxSTREAM_NOERROR\n" ); break;
+            case wxSTREAM_NO_ERROR:      textCtrl.WriteText( "wxSTREAM_NO_ERROR\n" ); break;
             case wxSTREAM_EOF:          textCtrl.WriteText( "wxSTREAM_EOF\n" ); break;
             case wxSTREAM_READ_ERROR:   textCtrl.WriteText( "wxSTREAM_READ_ERROR\n" ); break;
             case wxSTREAM_WRITE_ERROR:  textCtrl.WriteText( "wxSTREAM_WRITE_ERROR\n" ); break;
@@ -488,26 +488,26 @@ void MyApp::DoStreamDemo3(wxCommandEvent& WXUNUSED(event))
         }
     }
     textCtrl.WriteText( "\n" );
-    
-    textCtrl.WriteText( "Seeking to 0;  stream.LastError() returns: " );
+
+    textCtrl.WriteText( "Seeking to 0;  stream.GetLastError() returns: " );
     buf_input.SeekI( 0 );
-    switch (buf_input.LastError())
+    switch (buf_input.GetLastError())
     {
-        case wxSTREAM_NOERROR:      textCtrl.WriteText( "wxSTREAM_NOERROR\n" ); break;
+        case wxSTREAM_NO_ERROR:      textCtrl.WriteText( "wxSTREAM_NO_ERROR\n" ); break;
         case wxSTREAM_EOF:          textCtrl.WriteText( "wxSTREAM_EOF\n" ); break;
         case wxSTREAM_READ_ERROR:   textCtrl.WriteText( "wxSTREAM_READ_ERROR\n" ); break;
         case wxSTREAM_WRITE_ERROR:  textCtrl.WriteText( "wxSTREAM_WRITE_ERROR\n" ); break;
         default: textCtrl.WriteText( "Huh?\n" ); break;
     }
     textCtrl.WriteText( "\n" );
-    
+
     buf_input.Read( &ch, 1 );
     textCtrl.WriteText( "Value read: " );
     textCtrl.WriteText( (wxChar)(ch + '0') );
-    textCtrl.WriteText( ";  stream.LastError() returns: " );
-    switch (buf_input.LastError())
+    textCtrl.WriteText( ";  stream.GetLastError() returns: " );
+    switch (buf_input.GetLastError())
     {
-        case wxSTREAM_NOERROR:      textCtrl.WriteText( "wxSTREAM_NOERROR\n" ); break;
+        case wxSTREAM_NO_ERROR:      textCtrl.WriteText( "wxSTREAM_NO_ERROR\n" ); break;
         case wxSTREAM_EOF:          textCtrl.WriteText( "wxSTREAM_EOF\n" ); break;
         case wxSTREAM_READ_ERROR:   textCtrl.WriteText( "wxSTREAM_READ_ERROR\n" ); break;
         case wxSTREAM_WRITE_ERROR:  textCtrl.WriteText( "wxSTREAM_WRITE_ERROR\n" ); break;
@@ -520,7 +520,7 @@ void MyApp::DoStreamDemo4(wxCommandEvent& WXUNUSED(event))
     wxTextCtrl& textCtrl = * GetTextCtrl();
 
     wxString msg;
-    
+
     textCtrl.Clear();
     textCtrl << "\nTesting wxStreamBuffer:\n\n";
 
@@ -538,11 +538,11 @@ void MyApp::DoStreamDemo4(wxCommandEvent& WXUNUSED(event))
 
     wxFileInputStream file_input( wxString("test_wx.dat") );
     wxBufferedInputStream buf_input( file_input );
-    
-    textCtrl.WriteText( "wxBufferedInputStream.LastError() returns: " );
-    switch (buf_input.LastError())
+
+    textCtrl.WriteText( "wxBufferedInputStream.GetLastError() returns: " );
+    switch (buf_input.GetLastError())
     {
-        case wxSTREAM_NOERROR:      textCtrl.WriteText( "wxSTREAM_NOERROR\n" ); break;
+        case wxSTREAM_NO_ERROR:      textCtrl.WriteText( "wxSTREAM_NO_ERROR\n" ); break;
         case wxSTREAM_EOF:          textCtrl.WriteText( "wxSTREAM_EOF\n" ); break;
         case wxSTREAM_READ_ERROR:   textCtrl.WriteText( "wxSTREAM_READ_ERROR\n" ); break;
         case wxSTREAM_WRITE_ERROR:  textCtrl.WriteText( "wxSTREAM_WRITE_ERROR\n" ); break;
@@ -553,16 +553,16 @@ void MyApp::DoStreamDemo4(wxCommandEvent& WXUNUSED(event))
     msg.Printf( wxT("wxBufferedInputStream.TellI() returns: %d\n"), (int)buf_input.TellI() );
     textCtrl.WriteText( msg );
     textCtrl.WriteText( "\n\n" );
-    
+
 
     textCtrl.WriteText( "Seeking to position 300:\n\n" );
 
     buf_input.SeekI( 300 );
-    
-    textCtrl.WriteText( "wxBufferedInputStream.LastError() returns: " );
-    switch (buf_input.LastError())
+
+    textCtrl.WriteText( "wxBufferedInputStream.GetLastError() returns: " );
+    switch (buf_input.GetLastError())
     {
-        case wxSTREAM_NOERROR:      textCtrl.WriteText( "wxSTREAM_NOERROR\n" ); break;
+        case wxSTREAM_NO_ERROR:      textCtrl.WriteText( "wxSTREAM_NO_ERROR\n" ); break;
         case wxSTREAM_EOF:          textCtrl.WriteText( "wxSTREAM_EOF\n" ); break;
         case wxSTREAM_READ_ERROR:   textCtrl.WriteText( "wxSTREAM_READ_ERROR\n" ); break;
         case wxSTREAM_WRITE_ERROR:  textCtrl.WriteText( "wxSTREAM_WRITE_ERROR\n" ); break;
@@ -573,18 +573,18 @@ void MyApp::DoStreamDemo4(wxCommandEvent& WXUNUSED(event))
     msg.Printf( wxT("wxBufferedInputStream.TellI() returns: %d\n"), (int)buf_input.TellI() );
     textCtrl.WriteText( msg );
     textCtrl.WriteText( "\n\n" );
-    
+
 
     char buf[2000];
 
     textCtrl.WriteText( "Reading 500 bytes:\n\n" );
 
     buf_input.Read( buf, 500 );
-    
-    textCtrl.WriteText( "wxBufferedInputStream.LastError() returns: " );
-    switch (buf_input.LastError())
+
+    textCtrl.WriteText( "wxBufferedInputStream.GetLastError() returns: " );
+    switch (buf_input.GetLastError())
     {
-        case wxSTREAM_NOERROR:      textCtrl.WriteText( "wxSTREAM_NOERROR\n" ); break;
+        case wxSTREAM_NO_ERROR:      textCtrl.WriteText( "wxSTREAM_NO_ERROR\n" ); break;
         case wxSTREAM_EOF:          textCtrl.WriteText( "wxSTREAM_EOF\n" ); break;
         case wxSTREAM_READ_ERROR:   textCtrl.WriteText( "wxSTREAM_READ_ERROR\n" ); break;
         case wxSTREAM_WRITE_ERROR:  textCtrl.WriteText( "wxSTREAM_WRITE_ERROR\n" ); break;
@@ -595,15 +595,15 @@ void MyApp::DoStreamDemo4(wxCommandEvent& WXUNUSED(event))
     msg.Printf( wxT("wxBufferedInputStream.TellI() returns: %d\n"), (int)buf_input.TellI() );
     textCtrl.WriteText( msg );
     textCtrl.WriteText( "\n\n" );
-    
+
     textCtrl.WriteText( "Reading another 500 bytes:\n\n" );
 
     buf_input.Read( buf, 500 );
-    
-    textCtrl.WriteText( "wxBufferedInputStream.LastError() returns: " );
-    switch (buf_input.LastError())
+
+    textCtrl.WriteText( "wxBufferedInputStream.GetLastError() returns: " );
+    switch (buf_input.GetLastError())
     {
-        case wxSTREAM_NOERROR:      textCtrl.WriteText( "wxSTREAM_NOERROR\n" ); break;
+        case wxSTREAM_NO_ERROR:      textCtrl.WriteText( "wxSTREAM_NO_ERROR\n" ); break;
         case wxSTREAM_EOF:          textCtrl.WriteText( "wxSTREAM_EOF\n" ); break;
         case wxSTREAM_READ_ERROR:   textCtrl.WriteText( "wxSTREAM_READ_ERROR\n" ); break;
         case wxSTREAM_WRITE_ERROR:  textCtrl.WriteText( "wxSTREAM_WRITE_ERROR\n" ); break;
@@ -618,11 +618,11 @@ void MyApp::DoStreamDemo4(wxCommandEvent& WXUNUSED(event))
     textCtrl.WriteText( "Reading another 500 bytes:\n\n" );
 
     buf_input.Read( buf, 500 );
-    
-    textCtrl.WriteText( "wxBufferedInputStream.LastError() returns: " );
-    switch (buf_input.LastError())
+
+    textCtrl.WriteText( "wxBufferedInputStream.GetLastError() returns: " );
+    switch (buf_input.GetLastError())
     {
-        case wxSTREAM_NOERROR:      textCtrl.WriteText( "wxSTREAM_NOERROR\n" ); break;
+        case wxSTREAM_NO_ERROR:      textCtrl.WriteText( "wxSTREAM_NO_ERROR\n" ); break;
         case wxSTREAM_EOF:          textCtrl.WriteText( "wxSTREAM_EOF\n" ); break;
         case wxSTREAM_READ_ERROR:   textCtrl.WriteText( "wxSTREAM_READ_ERROR\n" ); break;
         case wxSTREAM_WRITE_ERROR:  textCtrl.WriteText( "wxSTREAM_WRITE_ERROR\n" ); break;
@@ -637,11 +637,11 @@ void MyApp::DoStreamDemo4(wxCommandEvent& WXUNUSED(event))
     textCtrl.WriteText( "Reading another 500 bytes:\n\n" );
 
     buf_input.Read( buf, 500 );
-    
-    textCtrl.WriteText( "wxBufferedInputStream.LastError() returns: " );
-    switch (buf_input.LastError())
+
+    textCtrl.WriteText( "wxBufferedInputStream.GetLastError() returns: " );
+    switch (buf_input.GetLastError())
     {
-        case wxSTREAM_NOERROR:      textCtrl.WriteText( "wxSTREAM_NOERROR\n" ); break;
+        case wxSTREAM_NO_ERROR:      textCtrl.WriteText( "wxSTREAM_NO_ERROR\n" ); break;
         case wxSTREAM_EOF:          textCtrl.WriteText( "wxSTREAM_EOF\n" ); break;
         case wxSTREAM_READ_ERROR:   textCtrl.WriteText( "wxSTREAM_READ_ERROR\n" ); break;
         case wxSTREAM_WRITE_ERROR:  textCtrl.WriteText( "wxSTREAM_WRITE_ERROR\n" ); break;
@@ -669,61 +669,61 @@ void MyApp::DoStreamDemo5(wxCommandEvent& WXUNUSED(event))
     wxFileOutputStream file_output( wxString("test_wx.dat") );
     for (ch = 0; ch < 10; ch++)
         file_output.Write( &ch, 1 );
-        
+
     file_output.Sync();
-    
+
     wxFileInputStream file_input( wxString("test_wx.dat") );
-    
+
     ch = file_input.Peek();
     str.Printf( wxT("First char peeked: %d\n"), (int) ch );
     textCtrl.WriteText( str );
-    
+
     ch = file_input.GetC();
     str.Printf( wxT("First char read: %d\n"), (int) ch );
     textCtrl.WriteText( str );
-    
+
     ch = file_input.Peek();
     str.Printf( wxT("Second char peeked: %d\n"), (int) ch );
     textCtrl.WriteText( str );
-    
+
     ch = file_input.GetC();
     str.Printf( wxT("Second char read: %d\n"), (int) ch );
     textCtrl.WriteText( str );
-    
+
     ch = file_input.Peek();
     str.Printf( wxT("Third char peeked: %d\n"), (int) ch );
     textCtrl.WriteText( str );
-    
+
     ch = file_input.GetC();
     str.Printf( wxT("Third char read: %d\n"), (int) ch );
     textCtrl.WriteText( str );
-    
-    
+
+
     textCtrl << "\n\n\nTesting wxMemoryInputStream's Peek():\n\n";
-    
+
     char buf[] = { 0,1,2,3,4,5,6,7,8,9,10 };
     wxMemoryInputStream input( buf, 10 );
-    
+
     ch = input.Peek();
     str.Printf( wxT("First char peeked: %d\n"), (int) ch );
     textCtrl.WriteText( str );
-    
+
     ch = input.GetC();
     str.Printf( wxT("First char read: %d\n"), (int) ch );
     textCtrl.WriteText( str );
-    
+
     ch = input.Peek();
     str.Printf( wxT("Second char peeked: %d\n"), (int) ch );
     textCtrl.WriteText( str );
-    
+
     ch = input.GetC();
     str.Printf( wxT("Second char read: %d\n"), (int) ch );
     textCtrl.WriteText( str );
-    
+
     ch = input.Peek();
     str.Printf( wxT("Third char peeked: %d\n"), (int) ch );
     textCtrl.WriteText( str );
-    
+
     ch = input.GetC();
     str.Printf( wxT("Third char read: %d\n"), (int) ch );
     textCtrl.WriteText( str );
@@ -735,7 +735,7 @@ void MyApp::DoStreamDemo6(wxCommandEvent& WXUNUSED(event))
 
     textCtrl.Clear();
     textCtrl.WriteText( "\nTesting Ungetch():\n\n" );
-    
+
     char ch = 0;
     size_t pos = 0;
     wxString str;
@@ -745,62 +745,62 @@ void MyApp::DoStreamDemo6(wxCommandEvent& WXUNUSED(event))
     wxFileOutputStream file_output( wxString("test_wx.dat") );
     for (ch = 0; ch < 10; ch++)
         file_output.Write( &ch, 1 );
-        
+
     file_output.Sync();
-    
+
     textCtrl.WriteText( "Reading char from wxFileInputStream:\n\n" );
 
     wxFileInputStream file_input( wxString("test_wx.dat") );
-    
+
     ch = file_input.GetC();
     pos = file_input.TellI();
     str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos );
     textCtrl.WriteText( str );
-    
+
     textCtrl.WriteText( "Reading another char from wxFileInputStream:\n\n" );
 
     ch = file_input.GetC();
     pos = file_input.TellI();
     str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos );
     textCtrl.WriteText( str );
-    
+
     textCtrl.WriteText( "Reading yet another char from wxFileInputStream:\n\n" );
 
     ch = file_input.GetC();
     pos = file_input.TellI();
     str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos );
     textCtrl.WriteText( str );
-    
+
     textCtrl.WriteText( "Now calling Ungetch( 5 ) from wxFileInputStream...\n\n" );
 
     file_input.Ungetch( 5 );
     pos = file_input.TellI();
     str.Printf( wxT("Now at position %d\n\n"), (int) pos );
     textCtrl.WriteText( str );
-    
+
     textCtrl.WriteText( "Reading char from wxFileInputStream:\n\n" );
 
     ch = file_input.GetC();
     pos = file_input.TellI();
     str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos );
     textCtrl.WriteText( str );
-    
+
     textCtrl.WriteText( "Reading another char from wxFileInputStream:\n\n" );
 
     ch = file_input.GetC();
     pos = file_input.TellI();
     str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos );
     textCtrl.WriteText( str );
-    
+
     textCtrl.WriteText( "Now calling Ungetch( 5 ) from wxFileInputStream again...\n\n" );
 
     file_input.Ungetch( 5 );
     pos = file_input.TellI();
     str.Printf( wxT("Now at position %d\n\n"), (int) pos );
     textCtrl.WriteText( str );
-    
+
     textCtrl.WriteText( "Seeking to pos 3 in wxFileInputStream. This invalidates the writeback buffer.\n\n" );
-    
+
     file_input.SeekI( 3 );
 
     ch = file_input.GetC();
@@ -815,7 +815,7 @@ void MyApp::DoStreamDemo7(wxCommandEvent& WXUNUSED(event))
 
     textCtrl.Clear();
     textCtrl.WriteText( "\nTesting Ungetch() in buffered input stream:\n\n" );
-    
+
     char ch = 0;
     size_t pos = 0;
     wxString str;
@@ -825,63 +825,63 @@ void MyApp::DoStreamDemo7(wxCommandEvent& WXUNUSED(event))
     wxFileOutputStream file_output( wxString("test_wx.dat") );
     for (ch = 0; ch < 10; ch++)
         file_output.Write( &ch, 1 );
-        
+
     file_output.Sync();
-    
+
     textCtrl.WriteText( "Reading char from wxBufferedInputStream via wxFileInputStream:\n\n" );
 
     wxFileInputStream file_input( wxString("test_wx.dat") );
     wxBufferedInputStream buf_input( file_input );
-    
+
     ch = buf_input.GetC();
     pos = buf_input.TellI();
     str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos );
     textCtrl.WriteText( str );
-    
+
     textCtrl.WriteText( "Reading another char from wxBufferedInputStream:\n\n" );
 
     ch = buf_input.GetC();
     pos = buf_input.TellI();
     str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos );
     textCtrl.WriteText( str );
-    
+
     textCtrl.WriteText( "Reading yet another char from wxBufferedInputStream:\n\n" );
 
     ch = buf_input.GetC();
     pos = buf_input.TellI();
     str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos );
     textCtrl.WriteText( str );
-    
+
     textCtrl.WriteText( "Now calling Ungetch( 5 ) from wxBufferedInputStream...\n\n" );
 
     buf_input.Ungetch( 5 );
     pos = buf_input.TellI();
     str.Printf( wxT("Now at position %d\n\n"), (int) pos );
     textCtrl.WriteText( str );
-    
+
     textCtrl.WriteText( "Reading char from wxBufferedInputStream:\n\n" );
 
     ch = buf_input.GetC();
     pos = buf_input.TellI();
     str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos );
     textCtrl.WriteText( str );
-    
+
     textCtrl.WriteText( "Reading another char from wxBufferedInputStream:\n\n" );
 
     ch = buf_input.GetC();
     pos = buf_input.TellI();
     str.Printf( wxT("Read char: %d. Now at position %d\n\n"), (int) ch, (int) pos );
     textCtrl.WriteText( str );
-    
+
     textCtrl.WriteText( "Now calling Ungetch( 5 ) from wxBufferedInputStream again...\n\n" );
 
     buf_input.Ungetch( 5 );
     pos = buf_input.TellI();
     str.Printf( wxT("Now at position %d\n\n"), (int) pos );
     textCtrl.WriteText( str );
-    
+
     textCtrl.WriteText( "Seeking to pos 3 in wxBufferedInputStream. This invalidates the writeback buffer.\n\n" );
-    
+
     buf_input.SeekI( 3 );
 
     ch = buf_input.GetC();
diff --git a/samples/typetest/typetest.dsp b/samples/typetest/typetest.dsp
index 6af9d7602e..af56d537e5 100644
--- a/samples/typetest/typetest.dsp
+++ b/samples/typetest/typetest.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "typetest - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "typetest - Win32 Release"
 
diff --git a/samples/validate/validate.dsp b/samples/validate/validate.dsp
index 13e758ed0a..02f94eaa41 100644
--- a/samples/validate/validate.dsp
+++ b/samples/validate/validate.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "validate - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "validate - Win32 Release"
 
diff --git a/samples/widgets/makefile.unx b/samples/widgets/makefile.unx
new file mode 100644
index 0000000000..229d278717
--- /dev/null
+++ b/samples/widgets/makefile.unx
@@ -0,0 +1,43 @@
+#
+# File:		Makefile for the widgets sample
+# Author:	Vadim Zeitlin
+# Copyright:	(c) 2002 wxWindows team
+#
+# This makefile requires a Unix version of wxWindows
+# to be installed on your system. This is most often
+# done typing "make install" when using the complete
+# sources of wxWindows or by installing the two
+# RPM packages wxGTK.XXX.rpm and wxGTK-devel.XXX.rpm
+# under Linux.
+#
+
+CXX = $(shell wx-config --cxx)
+
+PROGRAM = widgets
+
+OBJECTS = $(PROGRAM).o \
+		button.o \
+		combobox.o \
+		gauge.o \
+		listbox.o \
+		notebook.o \
+		radiobox.o \
+		slider.o \
+		spinbtn.o \
+		static.o \
+		textctrl.o
+
+# implementation
+
+.SUFFIXES:	.o .cpp
+
+.cpp.o :
+	$(CXX) -c `wx-config --cxxflags` -o $@ $<
+
+all:    $(PROGRAM)
+
+$(PROGRAM):	$(OBJECTS)
+	$(CXX) -o $(PROGRAM) $(OBJECTS) `wx-config --libs`
+
+clean: 
+	rm -f *.o $(PROGRAM)
diff --git a/samples/widgets/notebook.cpp b/samples/widgets/notebook.cpp
index 4491785d2f..6eb8b1ae65 100644
--- a/samples/widgets/notebook.cpp
+++ b/samples/widgets/notebook.cpp
@@ -380,18 +380,17 @@ void NotebookWidgetsPage::CreateNotebook()
 
     if ( notebook )
     {
-        int sel = notebook->GetSelection();
+        const int sel = notebook->GetSelection();
 
-        int count = notebook->GetPageCount();
+        const int count = notebook->GetPageCount();
+
+        // recreate the pages
         for ( int n = 0; n < count; n++ )
         {
-            wxNotebookPage *page = notebook->GetPage(0);
-            page->Reparent(m_notebook);
-
-            m_notebook->AddPage(page, notebook->GetPageText(0), FALSE,
-                                notebook->GetPageImage(0));
-
-            notebook->RemovePage(0);
+            m_notebook->AddPage(CreateNewPage(),
+                                notebook->GetPageText(n),
+                                FALSE,
+                                notebook->GetPageImage(n));
         }
 
         m_sizerNotebook->Remove(notebook);
@@ -543,4 +542,4 @@ void NotebookWidgetsPage::OnPageChanged(wxNotebookEvent& event)
     event.Skip();
 }
 
-#endif
\ No newline at end of file
+#endif
diff --git a/samples/widgets/slider.cpp b/samples/widgets/slider.cpp
index ec1d8f5a76..9793994642 100644
--- a/samples/widgets/slider.cpp
+++ b/samples/widgets/slider.cpp
@@ -459,10 +459,8 @@ void SliderWidgetsPage::OnUpdateUIOtherSide(wxUpdateUIEvent& event)
 
 void SliderWidgetsPage::OnSlider(wxScrollEvent& event)
 {
-    long value = event.GetInt();
-
-    wxASSERT_MSG( value == m_slider->GetValue(),
-        wxT("slider value should be the same") );
+    wxASSERT_MSG( event.GetInt() == m_slider->GetValue(),
+                  wxT("slider value should be the same") );
 
     wxEventType eventType = event.GetEventType();
 
diff --git a/samples/widgets/widgets.dsp b/samples/widgets/widgets.dsp
index b7a51f6a7e..0e43425ddd 100644
--- a/samples/widgets/widgets.dsp
+++ b/samples/widgets/widgets.dsp
@@ -55,7 +55,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw233.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw234.lib /nologo /subsystem:windows /machine:I386
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 Debug DLL"
 
@@ -81,7 +81,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw233d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ..\..\lib\wxmsw234d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 
 !ELSEIF  "$(CFG)" == "widgets - Win32 Release"
 
diff --git a/samples/widgets/widgets.h b/samples/widgets/widgets.h
index bfd7ca6b4f..7f36a57134 100644
--- a/samples/widgets/widgets.h
+++ b/samples/widgets/widgets.h
@@ -17,7 +17,7 @@ class WXDLLEXPORT wxNotebook;
 class WXDLLEXPORT wxSizer;
 class WXDLLEXPORT wxTextCtrl;
 
-class WXDLLEXPORT WidgetsPageInfo;
+class WidgetsPageInfo;
 
 #include "wx/panel.h"
 
@@ -68,7 +68,7 @@ public:
 // dynamic WidgetsPage creation helpers
 // ----------------------------------------------------------------------------
 
-class WXDLLEXPORT WidgetsPageInfo
+class WidgetsPageInfo
 {
 public:
     typedef WidgetsPage *(*Constructor)(wxNotebook *notebook,
diff --git a/samples/wizard/wizard.dsp b/samples/wizard/wizard.dsp
index f25939a17d..655ea8643e 100644
--- a/samples/wizard/wizard.dsp
+++ b/samples/wizard/wizard.dsp
@@ -54,7 +54,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw233.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386 ..\..\lib\wxmsw234.lib
 
 !ELSEIF "$(CFG)" == "wizard - Win32 Debug DLL"
 
@@ -80,7 +80,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw233d.lib
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept ..\..\lib\wxmsw234d.lib
 
 !ELSEIF "$(CFG)" == "wizard - Win32 Release"
 
diff --git a/samples/xrc/Makefile.in b/samples/xrc/Makefile.in
index 74b1001946..512deacc5e 100644
--- a/samples/xrc/Makefile.in
+++ b/samples/xrc/Makefile.in
@@ -16,7 +16,7 @@ OBJECTS=$(PROGRAM).o \
         derivdlg.o \
 	custclas.o
 
-APPEXTRALIBS=$(top_builddir)/lib/libwxxrc.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_xrc-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 DATADIRS = rc
@@ -31,6 +31,7 @@ DATAFILES = rc/artprov.xrc \
 	rc/toolbar.xrc \
 	rc/uncenter.xrc \
 	rc/variable.xrc \
+	rc/appicon.xpm \
 	rc/artprov.xpm \
 	rc/basicdlg.xpm \
 	rc/controls.xpm \
diff --git a/samples/xrc/XrcDemoVC.dsp b/samples/xrc/XrcDemoVC.dsp
index 5bef50036a..61c5c6314a 100644
--- a/samples/xrc/XrcDemoVC.dsp
+++ b/samples/xrc/XrcDemoVC.dsp
@@ -109,7 +109,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib wxxrcd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/xmldemo.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib wxxrcd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/xmldemo.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ELSEIF  "$(CFG)" == "XrcDemoVC - Win32 Release DLL"
 
@@ -136,7 +136,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233.lib wxxrc.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/xmldemo.exe" /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib wxxrc.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/xmldemo.exe" /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ENDIF 
 
diff --git a/samples/xrc/custclas.cpp b/samples/xrc/custclas.cpp
index 020a14e4b5..ba30c5f7f7 100644
--- a/samples/xrc/custclas.cpp
+++ b/samples/xrc/custclas.cpp
@@ -156,7 +156,7 @@ void MyResizableListCtrl::SetColumnWidths()
     
     // This is just a debug message in case you want to watch the 
     // events scroll by as you resize.
-    wxLogDebug( "Successfully set column widths" );
+    wxLogDebug( wxT("Successfully set column widths") );
 }
 
 
diff --git a/samples/xrc/derivdlg.cpp b/samples/xrc/derivdlg.cpp
index a9a719c49d..437615d60b 100644
--- a/samples/xrc/derivdlg.cpp
+++ b/samples/xrc/derivdlg.cpp
@@ -61,7 +61,7 @@ END_EVENT_TABLE()
 // Constructor (Notice how small and easy it is)
 PreferencesDialog::PreferencesDialog(wxWindow* parent)
 {    
-    wxXmlResource::Get()->LoadDialog(this, parent, "derived_dialog");                                                            
+    wxXmlResource::Get()->LoadDialog(this, parent, wxT("derived_dialog"));
 }
 
 // Destructor. (Empty, as I don't need anything special done when destructing).
diff --git a/samples/xrc/myframe.cpp b/samples/xrc/myframe.cpp
index 2d03b22e44..594d8769e1 100644
--- a/samples/xrc/myframe.cpp
+++ b/samples/xrc/myframe.cpp
@@ -109,18 +109,18 @@ MyFrame::MyFrame(wxWindow* parent)
     // since this frame will always be the top window, and thus parentless. 
     // However, the current approach has source code that can be recycled 
     // for other frames that aren't the top level window.]
-    wxXmlResource::Get()->LoadFrame(this, parent, "main_frame");
+    wxXmlResource::Get()->LoadFrame(this, parent, wxT("main_frame"));
 
     // Set the icon for the frame.
     SetIcon(wxICON(appicon));
 
     // Load the menubar from XRC and set this frame's menubar to it.
-    SetMenuBar(wxXmlResource::Get()->LoadMenuBar("main_menu"));
+    SetMenuBar(wxXmlResource::Get()->LoadMenuBar(wxT("main_menu")));
     // Load the toolbar from XRC and set this frame's toolbar to it.
     // NOTE: For toolbars you currently should do it exactly like this.
     // With toolbars, you currently can't create one, and set it later. It
     // needs to be all in one step.
-    SetToolBar(wxXmlResource::Get()->LoadToolBar(this, "main_toolbar"));
+    SetToolBar(wxXmlResource::Get()->LoadToolBar(this, wxT("main_toolbar")));
     
     // Give the frame a optional statusbar. The '1' just means one field. 
     // A gripsizer will automatically get put on into the corner, if that 
@@ -146,7 +146,7 @@ void MyFrame::OnNonDerivedDialogToolOrMenuCommand(wxCommandEvent& WXUNUSED(event
     wxDialog dlg;
     // "non_derived_dialog" is the name of the wxDialog XRC node that should
     // be loaded.
-    wxXmlResource::Get()->LoadDialog(&dlg, this, "non_derived_dialog");
+    wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("non_derived_dialog"));
     dlg.ShowModal();
 
 }
@@ -166,7 +166,7 @@ void MyFrame::OnDerivedDialogToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnControlsToolOrMenuCommand(wxCommandEvent& WXUNUSED(event)) 
 {
     wxDialog dlg;
-    wxXmlResource::Get()->LoadDialog(&dlg, this, "controls_dialog");
+    wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("controls_dialog"));
 
 #if wxUSE_LISTCTRL
     // There is no data in the listctrl. This will add some columns
@@ -211,7 +211,7 @@ void MyFrame::OnControlsToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnUncenteredToolOrMenuCommand(wxCommandEvent& WXUNUSED(event)) 
 {
     wxDialog dlg;
-    wxXmlResource::Get()->LoadDialog(&dlg, this, "uncentered_dialog");
+    wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("uncentered_dialog"));
     dlg.ShowModal();
 }
 
@@ -219,7 +219,7 @@ void MyFrame::OnUncenteredToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnCustomClassToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 {
     wxDialog dlg;
-    wxXmlResource::Get()->LoadDialog(&dlg, this, "custom_class_dialog");
+    wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("custom_class_dialog"));
     
     // Make an instance of our new custom class. 
     MyResizableListCtrl* a_myResizableListCtrl = new MyResizableListCtrl(&dlg, 
@@ -231,7 +231,7 @@ void MyFrame::OnCustomClassToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
     
     // "custom_control_placeholder" is the name of the "unknown" tag in the 
     // custctrl.xrc XRC file.
-    wxXmlResource::Get()->AttachUnknownControl("custom_control_placeholder",
+    wxXmlResource::Get()->AttachUnknownControl(wxT("custom_control_placeholder"),
                                                 a_myResizableListCtrl);
     dlg.ShowModal();
 }
@@ -240,7 +240,7 @@ void MyFrame::OnCustomClassToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnPlatformPropertyToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 {
     wxDialog dlg;
-    wxXmlResource::Get()->LoadDialog(&dlg, this, "platform_property_dialog");
+    wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("platform_property_dialog"));
     dlg.ShowModal();
 }
 
@@ -248,7 +248,7 @@ void MyFrame::OnPlatformPropertyToolOrMenuCommand(wxCommandEvent& WXUNUSED(event
 void MyFrame::OnArtProviderToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 {
     wxDialog dlg;
-    wxXmlResource::Get()->LoadDialog(&dlg, this, "art_provider_dialog");
+    wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("art_provider_dialog"));
     dlg.ShowModal();
 }
 
@@ -256,7 +256,7 @@ void MyFrame::OnArtProviderToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 void MyFrame::OnVariableExpansionToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
 {
     wxDialog dlg;
-    wxXmlResource::Get()->LoadDialog(&dlg, this, "variable_expansion_dialog");
+    wxXmlResource::Get()->LoadDialog(&dlg, this, wxT("variable_expansion_dialog"));
     dlg.ShowModal();
 }
 
@@ -267,5 +267,5 @@ void MyFrame::OnAboutToolOrMenuCommand(wxCommandEvent& WXUNUSED(event))
     msg.Printf( _T("This is the about dialog of XML resources demo.\n")
                 _T("Welcome to %s"), wxVERSION_STRING);
 
-    wxMessageBox(msg, "About XML resources demo", wxOK | wxICON_INFORMATION, this);
+    wxMessageBox(msg, _("About XML resources demo"), wxOK | wxICON_INFORMATION, this);
 }
diff --git a/samples/xrc/xrcdemo.cpp b/samples/xrc/xrcdemo.cpp
index f7d755352c..c904f52e28 100644
--- a/samples/xrc/xrcdemo.cpp
+++ b/samples/xrc/xrcdemo.cpp
@@ -88,27 +88,27 @@ bool MyApp::OnInit()
     // into one giant XRC file if you wanted, but then they become more 
     // diffcult to manage, and harder to reuse in later projects.   
     // The menubar
-    wxXmlResource::Get()->Load("rc/menu.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/menu.xrc"));
     // The toolbar
-    wxXmlResource::Get()->Load("rc/toolbar.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/toolbar.xrc"));
     // Non-derived dialog example
-    wxXmlResource::Get()->Load("rc/basicdlg.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/basicdlg.xrc"));
     // Derived dialog example
-    wxXmlResource::Get()->Load("rc/derivdlg.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/derivdlg.xrc"));
     // Controls property example
-    wxXmlResource::Get()->Load("rc/controls.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/controls.xrc"));
     // Frame example
-    wxXmlResource::Get()->Load("rc/frame.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/frame.xrc"));
     // Uncentered example
-    wxXmlResource::Get()->Load("rc/uncenter.xrc");    
+    wxXmlResource::Get()->Load(wxT("rc/uncenter.xrc"));    
     // Custom class example
-    wxXmlResource::Get()->Load("rc/custclas.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/custclas.xrc"));
     // wxArtProvider example
-    wxXmlResource::Get()->Load("rc/artprov.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/artprov.xrc"));
     // Platform property example
-    wxXmlResource::Get()->Load("rc/platform.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/platform.xrc"));
     // Variable expansion example
-    wxXmlResource::Get()->Load("rc/variable.xrc");
+    wxXmlResource::Get()->Load(wxT("rc/variable.xrc"));
 
     // Make an instance of your derived frame. Passing NULL (the default value 
     // of MyFrame's constructor is NULL) as the frame doesn't have a frame
diff --git a/setup.h.in b/setup.h.in
index 071a63dbc0..a553d06a27 100644
--- a/setup.h.in
+++ b/setup.h.in
@@ -83,6 +83,7 @@
 #undef __FREEBSD__
 #undef __DARWIN__
 #undef __NETBSD__
+#undef __OPENBSD__
 #undef __VMS__
 #undef __ULTRIX__
 #undef __DATA_GENERAL__
@@ -890,6 +891,9 @@
 /* struct tm doesn't always have the tm_gmtoff field, define this if it does */
 #undef WX_GMTOFF_IN_TM
 
+/* Define if you have poll(2) function */
+#undef HAVE_POLL
+
 /* Define if you have pw_gecos field in struct passwd */
 #undef HAVE_PW_GECOS
 
diff --git a/setup.h_vms b/setup.h_vms
index f5d1c8724f..d09add5c37 100644
--- a/setup.h_vms
+++ b/setup.h_vms
@@ -94,6 +94,7 @@
 #undef __NETBSD__
 #undef __BSD__
 #undef __FREEBSD__
+#undef __OPENBSD__
 #define __VMS__
 #undef __ULTRIX__
 #undef __DATA_GENERAL__
@@ -914,6 +915,9 @@
 /* struct tm doesn't always have the tm_gmtoff field, define this if it does */
 #define WX_GMTOFF_IN_TM
 
+/* Define if you have poll(2) function */
+#define HAVE_POLL 1
+
 /* Define if you have pw_gecos field in struct passwd */
 #undef HAVE_PW_GECOS
 
diff --git a/src/common/appcmn.cpp b/src/common/appcmn.cpp
index cfd1d3df14..32c2fe5e00 100644
--- a/src/common/appcmn.cpp
+++ b/src/common/appcmn.cpp
@@ -446,8 +446,23 @@ bool wxAppBase::CheckBuildOptions(const wxBuildOptions& opts)
 
     if ( !(wxCMP(isDebug) && wxCMP(verMaj) && wxCMP(verMin)) )
     {
-        wxLogFatalError(_T("Mismatch between the program and library build ")
-                        _T("versions detected."));
+        wxString msg;
+        wxString libDebug, progDebug;
+
+        if (isDebug)
+            libDebug = wxT("debug");
+        else
+            libDebug = wxT("no debug");
+
+        if (opts.m_isDebug)
+            progDebug = wxT("debug");
+        else
+            progDebug = wxT("no debug");
+        
+        msg.Printf(_T("Mismatch between the program and library build versions detected.\nThe library used %d.%d (%s), and your program used %d.%d (%s)."),
+                   verMaj, verMin, libDebug.c_str(), opts.m_verMaj, opts.m_verMin, progDebug.c_str());
+        
+        wxLogFatalError(msg);
 
         // normally wxLogFatalError doesn't return
         return FALSE;
diff --git a/src/common/artprov.cpp b/src/common/artprov.cpp
index 64b87d781e..194219d32d 100644
--- a/src/common/artprov.cpp
+++ b/src/common/artprov.cpp
@@ -207,8 +207,15 @@ wxArtProviderCache *wxArtProvider::sm_cache = NULL;
 class wxArtProviderModule: public wxModule
 {
 public:
-    bool OnInit() { return TRUE; }
-    void OnExit() { wxArtProvider::CleanUpProviders(); }
+    bool OnInit()
+    {
+        wxArtProvider::InitStdProvider();
+        return TRUE;
+    }
+    void OnExit()
+    {
+        wxArtProvider::CleanUpProviders();
+    }
 
     DECLARE_DYNAMIC_CLASS(wxArtProviderModule)
 };
diff --git a/src/common/artstd.cpp b/src/common/artstd.cpp
index 9a8e4f53eb..31b4355928 100644
--- a/src/common/artstd.cpp
+++ b/src/common/artstd.cpp
@@ -27,7 +27,6 @@
 #endif
 
 #include "wx/artprov.h"
-#include "wx/module.h"
 
 // For the purposes of forcing this module to link
 char g_ArtProviderModule = 0;
@@ -93,23 +92,20 @@ protected:
     }
 
 // ----------------------------------------------------------------------------
-// wxDefaultArtProviderModule
+// wxArtProvider::InitStdProvider
 // ----------------------------------------------------------------------------
 
-class wxDefaultArtProviderModule: public wxModule
+/*static*/ void wxArtProvider::InitStdProvider()
 {
-public:
-    bool OnInit() 
-    {
-        wxArtProvider::PushProvider(new wxDefaultArtProvider);
-        return TRUE; 
-    }
-    void OnExit() {}
-
-    DECLARE_DYNAMIC_CLASS(wxDefaultArtProviderModule)
-};
-
-IMPLEMENT_DYNAMIC_CLASS(wxDefaultArtProviderModule, wxModule)
+    // NB: A few notes about this function:
+    //     (1) it is in artstd.cpp and not in artprov.cpp on purpose. I wanted
+    //         to avoid declaring wxDefaultArtProvider in any public header as
+    //         it is only an implementation detail
+    //     (2) other default art providers (e.g. GTK one) should NOT be added
+    //         here. Instead, add them in port-specific initialialization code
+
+    wxArtProvider::PushProvider(new wxDefaultArtProvider);
+}
 
 
 // ----------------------------------------------------------------------------
diff --git a/src/common/cmdline.cpp b/src/common/cmdline.cpp
index 9697a6d3ac..6a21925fe7 100644
--- a/src/common/cmdline.cpp
+++ b/src/common/cmdline.cpp
@@ -86,6 +86,7 @@ struct wxCmdLineOption
                 GetLongOptionName(lng).Len() == lng.Len(),
                 wxT("Long option contains invalid characters")
             );
+            
 
         kind = k;
 
@@ -561,7 +562,7 @@ int wxCmdLineParser::Parse(bool showUsage)
                     optInd = m_data->FindOptionByLongName(name);
                     if ( optInd == wxNOT_FOUND )
                     {
-                        errorMsg << wxString::Format(_("Unknown long option '%s'"), name.c_str()) << "\n";
+                        errorMsg << wxString::Format(_("Unknown long option '%s'"), name.c_str()) << wxT("\n");
                     }
                 }
                 else
@@ -570,7 +571,7 @@ int wxCmdLineParser::Parse(bool showUsage)
 
                     // Print the argument including leading "--"
                     name.Prepend( wxT("--") );
-                    errorMsg << wxString::Format(_("Unknown option '%s'"), name.c_str()) << "\n";
+                    errorMsg << wxString::Format(_("Unknown option '%s'"), name.c_str()) << wxT("\n");
                 }
 
             }
@@ -591,7 +592,7 @@ int wxCmdLineParser::Parse(bool showUsage)
                     {
                         // we couldn't find a valid option name in the
                         // beginning of this string
-                        errorMsg << wxString::Format(_("Unknown option '%s'"), name.c_str()) << "\n";
+                        errorMsg << wxString::Format(_("Unknown option '%s'"), name.c_str()) << wxT("\n");
 
                         break;
                     }
@@ -663,7 +664,7 @@ int wxCmdLineParser::Parse(bool showUsage)
 
                     if ( *p++ != _T('=') )
                     {
-                        errorMsg << wxString::Format(_("Option '%s' requires a value, '=' expected."), name.c_str()) << "\n";
+                        errorMsg << wxString::Format(_("Option '%s' requires a value, '=' expected."), name.c_str()) << wxT("\n");
 
                         ok = FALSE;
                     }
@@ -684,7 +685,7 @@ int wxCmdLineParser::Parse(bool showUsage)
                             {
                                 // ... but there is none
                                 errorMsg << wxString::Format(_("Option '%s' requires a value."),
-                                                             name.c_str()) << "\n";
+                                                             name.c_str()) << wxT("\n");
 
                                 ok = FALSE;
                             }
@@ -701,7 +702,7 @@ int wxCmdLineParser::Parse(bool showUsage)
                             if ( opt.flags & wxCMD_LINE_NEEDS_SEPARATOR )
                             {
                                 errorMsg << wxString::Format(_("Separator expected after the option '%s'."),
-                                                             name.c_str()) << "\n";
+                                                             name.c_str()) << wxT("\n");
 
                                 ok = FALSE;
                             }
@@ -731,7 +732,7 @@ int wxCmdLineParser::Parse(bool showUsage)
                                 else
                                 {
                                     errorMsg << wxString::Format(_("'%s' is not a correct numeric value for option '%s'."),
-                                                                 value.c_str(), name.c_str()) << "\n";
+                                                                 value.c_str(), name.c_str()) << wxT("\n");
 
                                     ok = FALSE;
                                 }
@@ -745,7 +746,7 @@ int wxCmdLineParser::Parse(bool showUsage)
                                 if ( !res || *res )
                                 {
                                     errorMsg << wxString::Format(_("Option '%s': '%s' cannot be converted to a date."),
-                                                                 name.c_str(), value.c_str()) << "\n";
+                                                                 name.c_str(), value.c_str()) << wxT("\n");
 
                                     ok = FALSE;
                                 }
@@ -785,7 +786,7 @@ int wxCmdLineParser::Parse(bool showUsage)
             }
             else
             {
-                errorMsg << wxString::Format(_("Unexpected parameter '%s'"), arg.c_str()) << "\n";
+                errorMsg << wxString::Format(_("Unexpected parameter '%s'"), arg.c_str()) << wxT("\n");
 
                 ok = FALSE;
             }
@@ -822,7 +823,7 @@ int wxCmdLineParser::Parse(bool showUsage)
                 }
 
                 errorMsg << wxString::Format(_("The value for the option '%s' must be specified."),
-                                             optName.c_str()) << "\n";
+                                             optName.c_str()) << wxT("\n");
 
                 ok = FALSE;
             }
@@ -843,7 +844,7 @@ int wxCmdLineParser::Parse(bool showUsage)
             if ( !(param.flags & wxCMD_LINE_PARAM_OPTIONAL) )
             {
                 errorMsg << wxString::Format(_("The required parameter '%s' was not specified."),
-                                             param.description.c_str()) << "\n";
+                                             param.description.c_str()) << wxT("\n");
 
                 ok = FALSE;
             }
diff --git a/src/common/cmndata.cpp b/src/common/cmndata.cpp
index 3eabda7f50..562b1e0814 100644
--- a/src/common/cmndata.cpp
+++ b/src/common/cmndata.cpp
@@ -247,7 +247,7 @@ wxPrintData::wxPrintData()
     m_printCollate = FALSE;
 
     // New, 24/3/99
-    m_printerName = "";
+    m_printerName = wxT("");
     m_colour = TRUE;
     m_duplexMode = wxDUPLEX_SIMPLEX;
     m_printQuality = wxPRINT_QUALITY_HIGH;
@@ -632,17 +632,7 @@ void wxPrintData::ConvertFromNative()
 
         if (devMode->dmDeviceName[0] != 0)
         {
-            // TODO: make this Unicode compatible
-            char buf[32];
-            int i = 0;
-            while (devMode->dmDeviceName[i] != 0)
-            {
-                buf[i] = devMode->dmDeviceName[i];
-                i ++;
-            }
-            buf[i] = 0;
-
-            m_printerName = buf;
+            m_printerName = devMode->dmDeviceName;
         }
 
         //// Colour
diff --git a/src/common/config.cpp b/src/common/config.cpp
index 286e2123aa..014c2ab297 100644
--- a/src/common/config.cpp
+++ b/src/common/config.cpp
@@ -68,7 +68,8 @@ wxConfigBase::wxConfigBase(const wxString& appName,
                            long style)
             : m_appName(appName), m_vendorName(vendorName), m_style(style)
 {
-    m_bExpandEnvVars = TRUE; m_bRecordDefaults = FALSE;
+    m_bExpandEnvVars = TRUE;
+    m_bRecordDefaults = FALSE;
 }
 
 wxConfigBase::~wxConfigBase()
@@ -110,7 +111,12 @@ wxConfigBase *wxConfigBase::Create()
     {                                                                       \
         wxCHECK_MSG( val, FALSE, _T("wxConfig::Read(): NULL parameter") );  \
                                                                             \
-        return DoRead##name(key, val);                                      \
+        if ( !DoRead##name(key, val) )                                      \
+            return FALSE;                                                   \
+                                                                            \
+        *val = extra(*val);                                                 \
+                                                                            \
+        return TRUE;                                                        \
     }                                                                       \
                                                                             \
     bool wxConfigBase::Read(const wxString& key,                            \
@@ -119,17 +125,20 @@ wxConfigBase *wxConfigBase::Create()
     {                                                                       \
         wxCHECK_MSG( val, FALSE, _T("wxConfig::Read(): NULL parameter") );  \
                                                                             \
-        if ( DoRead##name(key, val) )                                       \
-            return TRUE;                                                    \
-                                                                            \
-        if ( IsRecordingDefaults() )                                        \
+        bool read = DoRead##name(key, val);                                 \
+        if ( !read )                                                        \
         {                                                                   \
-            ((wxConfigBase *)this)->DoWrite##name(key, defVal);             \
+            if ( IsRecordingDefaults() )                                    \
+            {                                                               \
+                ((wxConfigBase *)this)->DoWrite##name(key, defVal);         \
+            }                                                               \
+                                                                            \
+            *val = defVal;                                                  \
         }                                                                   \
                                                                             \
-        *val = extra(defVal);                                               \
+        *val = extra(*val);                                                 \
                                                                             \
-        return FALSE;                                                       \
+        return read;                                                        \
     }
 
 
@@ -278,10 +287,11 @@ wxString wxExpandEnvVars(const wxString& str)
   {
     Bracket_None,
     Bracket_Normal  = ')',
-    Bracket_Curly   = '}'
+    Bracket_Curly   = '}',
 #ifdef  __WXMSW__
-    ,Bracket_Windows = '%'     // yeah, Windows people are a bit strange ;-)
+    Bracket_Windows = '%',    // yeah, Windows people are a bit strange ;-)
 #endif
+    Bracket_Max
   };
 
   size_t m;
@@ -342,8 +352,16 @@ wxString wxExpandEnvVars(const wxString& str)
           // check the closing bracket
           if ( bracket != Bracket_None ) {
             if ( m == str.Len() || str[m] != (char)bracket ) {
-              wxLogWarning(_("Environment variables expansion failed: missing '%c' at position %d in '%s'."),
-                           (char)bracket, m + 1, str.c_str());
+              // under MSW it's common to have '%' characters in the registry
+              // and it's annoying to have warnings about them each time, so
+              // ignroe them silently if they are not used for env vars
+              //
+              // under Unix, OTOH, this warning could be useful for the user to
+              // understand why isn't the variable expanded as intended
+              #ifndef __WXMSW__
+                wxLogWarning(_("Environment variables expansion failed: missing '%c' at position %d in '%s'."),
+                             (char)bracket, m + 1, str.c_str());
+              #endif // __WXMSW__
             }
             else {
               // skip closing bracket unless the variables wasn't expanded
@@ -375,8 +393,6 @@ wxString wxExpandEnvVars(const wxString& str)
 }
 
 // this function is used to properly interpret '..' in path
-/// separates group and entry names (probably shouldn't be changed)
-
 void wxSplitPath(wxArrayString& aParts, const wxChar *sz)
 {
   aParts.Empty();
diff --git a/src/common/containr.cpp b/src/common/containr.cpp
index daf414ce55..5b5df9ea92 100644
--- a/src/common/containr.cpp
+++ b/src/common/containr.cpp
@@ -247,10 +247,12 @@ void wxControlContainer::HandleOnNavigationKey( wxNavigationKeyEvent& event )
             event.SetEventObject(m_winParent);
             if ( !child->GetEventHandler()->ProcessEvent(event) )
             {
+                // set it first in case SetFocusFromKbd() results in focus
+                // change too
+                m_winLastFocused = child;
+
                 // everything is simple: just give focus to it
                 child->SetFocusFromKbd();
-
-                m_winLastFocused = child;
             }
             //else: the child manages its focus itself
 
@@ -288,39 +290,18 @@ bool wxControlContainer::DoSetFocus()
     wxLogTrace(_T("focus"), _T("SetFocus on wxPanel 0x%08lx."),
                (unsigned long)m_winParent->GetHandle());
 
-    // If the panel gets the focus *by way of getting it set directly*
-    // we move the focus to the first window that can get it.
-
-    // VZ: no, we set the focus to the last window too. I don't understand why
-    //     should we make this distinction: if an app wants to set focus to
-    //     some precise control, it may always do it directly, but if we don't
-    //     use m_winLastFocused here, the focus won't be set correctly after a
-    //     notebook page change nor after frame activation under MSW (it calls
-    //     SetFocus too)
-    //
-    // RR: yes, when I the tab key to navigate in a panel with some controls and
-    //     a notebook and the focus jumps to the notebook (typically coming from
-    //     a button at the top) the notebook should focus the first child in the
-    //     current notebook page, not the last one which would otherwise get the
-    //     focus if you used the tab key to navigate from the current notebook
-    //     page to button at the bottom. See every page in the controls sample.
-    //
-    // VZ: ok, but this still doesn't (at least I don't see how it can) take
-    //     care of first/last child problem: i.e. if Shift-TAB is pressed in a
-    //     situation like above, the focus should be given to the last child,
-    //     not the first one (and not to the last focused one neither) - I
-    //     think my addition to OnNavigationKey() above takes care of it.
-    //     Keeping #ifdef __WXGTK__ for now, but please try removing it and see
-    //     what happens.
-    //
-    // RR: Removed for now. Let's see what happens..
-
-    // if our child already has focus, don't take it away from it
+    // when the panel gets the focus we move the focus to either the last
+    // window that had the focus or the first one that can get it unless the
+    // focus had been already set to some other child
+
     wxWindow *win = wxWindow::FindFocus();
     while ( win )
     {
         if ( win == m_winParent )
+        {
+            // our child already has focus, don't take it away from it
             return TRUE;
+        }
 
         if ( win->IsTopLevel() )
         {
@@ -341,10 +322,7 @@ void wxControlContainer::HandleOnFocus(wxFocusEvent& event)
                (unsigned long)m_winParent->GetHandle(),
                m_winParent->GetName().c_str() );
 
-    // If we panel got the focus *by way of getting clicked on*
-    // we move the focus to either the last window that had the
-    // focus or the first one that can get it.
-    (void)SetFocusToChild();
+    DoSetFocus();
 
     event.Skip();
 }
diff --git a/src/common/datetime.cpp b/src/common/datetime.cpp
index 1f3ba66047..3ef1e1e6f1 100644
--- a/src/common/datetime.cpp
+++ b/src/common/datetime.cpp
@@ -1247,6 +1247,82 @@ wxDateTime& wxDateTime::ResetTime()
     return *this;
 }
 
+// ----------------------------------------------------------------------------
+// DOS Date and Time Format functions
+// ----------------------------------------------------------------------------
+// the dos date and time value is an unsigned 32 bit value in the format:
+// YYYYYYYMMMMDDDDDhhhhhmmmmmmsssss
+//
+// Y = year offset from 1980 (0-127)
+// M = month (1-12)
+// D = day of month (1-31)
+// h = hour (0-23)
+// m = minute (0-59)
+// s = bisecond (0-29) each bisecond indicates two seconds
+// ----------------------------------------------------------------------------
+
+wxDateTime& wxDateTime::SetFromDOS(unsigned long ddt)
+{
+    struct tm tm;
+
+    long year = ddt & 0xFE000000;
+    year >>= 25;
+    year += 80;
+    tm.tm_year = year;
+
+    long month = ddt & 0x1E00000;
+    month >>= 21;
+    month -= 1;
+    tm.tm_mon = month;
+
+    long day = ddt & 0x1F0000;
+    day >>= 16;
+    tm.tm_mday = day;
+
+    long hour = ddt & 0xF800;
+    hour >>= 11;
+    tm.tm_hour = hour;
+
+    long minute = ddt & 0x7E0;
+    minute >>= 5;
+    tm.tm_min = minute;
+
+    long second = ddt & 0x1F;
+    tm.tm_sec = second * 2;
+
+    return Set(mktime(&tm));
+}
+
+unsigned long wxDateTime::GetAsDOS() const
+{
+    unsigned long ddt;
+    time_t ticks = GetTicks();
+    struct tm *tm = localtime(&ticks);
+
+    long year = tm->tm_year;
+    year -= 80;
+    year <<= 25;
+
+    long month = tm->tm_mon;
+    month += 1;
+    month <<= 21;
+
+    long day = tm->tm_mday;
+    day <<= 16;
+
+    long hour = tm->tm_hour;
+    hour <<= 11;
+
+    long minute = tm->tm_min;
+    minute <<= 5;
+
+    long second = tm->tm_sec;
+    second /= 2;
+
+    ddt = year | month | day | hour | minute | second;
+    return ddt;
+}
+
 // ----------------------------------------------------------------------------
 // time_t <-> broken down time conversions
 // ----------------------------------------------------------------------------
@@ -1494,13 +1570,18 @@ wxDateTime& wxDateTime::Add(const wxDateSpan& diff)
 // Weekday and monthday stuff
 // ----------------------------------------------------------------------------
 
-bool wxDateTime::SetToTheWeek(wxDateTime_t numWeek, WeekDay weekday)
+bool wxDateTime::SetToTheWeek(wxDateTime_t numWeek,
+                              WeekDay weekday,
+                              WeekFlags flags)
 {
+    wxASSERT_MSG( numWeek > 0,
+                  _T("invalid week number: weeks are counted from 1") );
+
     int year = GetYear();
 
     // Jan 4 always lies in the 1st week of the year
     Set(4, Jan, year);
-    SetToWeekDayInSameWeek(weekday) += wxDateSpan::Weeks(numWeek);
+    SetToWeekDayInSameWeek(weekday, flags) += wxDateSpan::Weeks(numWeek - 1);
 
     if ( GetYear() != year )
     {
@@ -1523,17 +1604,34 @@ wxDateTime& wxDateTime::SetToLastMonthDay(Month month,
     return Set(GetNumOfDaysInMonth(year, month), month, year);
 }
 
-wxDateTime& wxDateTime::SetToWeekDayInSameWeek(WeekDay weekday)
+wxDateTime& wxDateTime::SetToWeekDayInSameWeek(WeekDay weekday, WeekFlags flags)
 {
     wxDATETIME_CHECK( weekday != Inv_WeekDay, _T("invalid weekday") );
 
-    WeekDay wdayThis = GetWeekDay();
+    int wdayThis = GetWeekDay();
     if ( weekday == wdayThis )
     {
         // nothing to do
         return *this;
     }
-    else if ( weekday < wdayThis )
+
+    if ( flags == Default_First )
+    {
+        flags = GetCountry() == USA ? Sunday_First : Monday_First;
+    }
+
+    // the logic below based on comparing weekday and wdayThis works if Sun (0)
+    // is the first day in the week, but breaks down for Monday_First case so
+    // we adjust the week days in this case
+    if( flags == Monday_First )
+    {
+        if ( wdayThis == Sun )
+            wdayThis += 7;
+    }
+    //else: Sunday_First, nothing to do
+
+    // go forward or back in time to the day we want
+    if ( weekday < wdayThis )
     {
         return Subtract(wxDateSpan::Days(wdayThis - weekday));
     }
diff --git a/src/common/datstrm.cpp b/src/common/datstrm.cpp
index 4b37033048..88cdcd4049 100644
--- a/src/common/datstrm.cpp
+++ b/src/common/datstrm.cpp
@@ -113,14 +113,14 @@ wxString wxDataInputStream::ReadString()
     char *tmp = new char[len + 1];
     m_input->Read(tmp, len);
     tmp[len] = 0;
-    wxString s(tmp, m_conv);
+    wxString ret( (const wxChar*) m_conv.cMB2WX(tmp) );
     delete[] tmp;
 #else
-    wxString s;
-    m_input->Read(s.GetWriteBuf(len), len);
-    s.UngetWriteBuf();
+    wxString ret;
+    m_input->Read( ret.GetWriteBuf(len), len);
+    ret.UngetWriteBuf();
 #endif
-    return s;
+    return ret;
   }
   else
     return wxEmptyString;
diff --git a/src/common/db.cpp b/src/common/db.cpp
index 085e6cad5c..1d014c2ced 100644
--- a/src/common/db.cpp
+++ b/src/common/db.cpp
@@ -3750,7 +3750,7 @@ int WXDLLEXPORT wxDbConnectionsInUse(void)
 
 /********** wxDbLogExtendedErrorMsg() **********/
 // DEBUG ONLY function
-const wxChar WXDLLEXPORT *wxDbLogExtendedErrorMsg(const wxChar *userText,
+const wxChar* WXDLLEXPORT wxDbLogExtendedErrorMsg(const wxChar *userText,
                                                   wxDb *pDb,
                                                   const wxChar *ErrFile,
                                                   int ErrLine)
diff --git a/src/common/dbtable.cpp b/src/common/dbtable.cpp
index 03d947568a..879a4dd38d 100644
--- a/src/common/dbtable.cpp
+++ b/src/common/dbtable.cpp
@@ -2586,8 +2586,8 @@ wxVariant wxDbTable::GetCol(const int colNo) const
 
 void csstrncpyt(char *s, const char *t, int n)
 {
-    while ((*s++ = *t++) && --n)
-    {};
+    while ( (*s++ = *t++) != '\0' && --n )
+        ;
 
     *s = '\0';
 }
diff --git a/src/common/dlgcmn.cpp b/src/common/dlgcmn.cpp
index d874e1a2fe..e1b894b63c 100644
--- a/src/common/dlgcmn.cpp
+++ b/src/common/dlgcmn.cpp
@@ -40,7 +40,6 @@
     #include "wx/containr.h"
 #endif
 
-
 //--------------------------------------------------------------------------
 // wxDialogBase
 //--------------------------------------------------------------------------
@@ -72,6 +71,20 @@ void wxDialogBase::Init()
 
 wxSizer *wxDialogBase::CreateTextSizer( const wxString& message )
 {
+    bool is_pda = (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA);
+    
+    wxString text = message;
+    
+    // I admit that this is complete bogus, but it makes
+    // message boxes work for pda screens temporarily..
+    int max_width = -1;
+    if (is_pda)
+    {
+        max_width = wxSystemSettings::GetMetric( wxSYS_SCREEN_X ) - 25;
+        text += wxT('\n');
+    }
+    
+    
     wxBoxSizer *box = new wxBoxSizer( wxVERTICAL );
 
     // get line height for empty lines
@@ -79,18 +92,19 @@ wxSizer *wxDialogBase::CreateTextSizer( const wxString& message )
     wxFont font( GetFont() );
     if (!font.Ok())
         font = *wxSWISS_FONT;
-    GetTextExtent(_T("H"), (int*)NULL, &y, (int*)NULL, (int*)NULL, &font);
+    GetTextExtent( wxT("H"), (int*)NULL, &y, (int*)NULL, (int*)NULL, &font);
 
+    size_t last_space = 0;
     wxString line;
-    for ( size_t pos = 0; pos < message.length(); pos++ )
+    for ( size_t pos = 0; pos < text.length(); pos++ )
     {
-        switch ( message[pos] )
+        switch ( text[pos] )
         {
-            case _T('\n'):
+            case wxT('\n'):
                 if (!line.IsEmpty())
                 {
-                    wxStaticText *s1 = new wxStaticText( this, -1, line );
-                    box->Add( s1 );
+                    wxStaticText *s = new wxStaticText( this, -1, line );
+                    box->Add( s );
                     line = wxT("");
                 }
                 else
@@ -99,17 +113,44 @@ wxSizer *wxDialogBase::CreateTextSizer( const wxString& message )
                 }
                 break;
 
-            case _T('&'):
+            case wxT('&'):
                 // this is used as accel mnemonic prefix in the wxWindows
                 // controls but in the static messages created by
                 // CreateTextSizer() (used by wxMessageBox, for example), we
                 // don't want this special meaning, so we need to quote it
-                line += _T('&');
+                line += wxT('&');
 
                 // fall through to add it normally too
 
             default:
+                if (text[pos] == wxT(' '))
+                    last_space = pos;
+                    
                 line += message[pos];
+                
+                if (is_pda)
+                {
+                    int width = 0;
+                    GetTextExtent( line, &width, (int*)NULL, (int*)NULL, (int*)NULL, &font );
+   
+                    if (width > max_width)
+                    {
+                        // exception if there was no previous space
+                        if (last_space == 0)
+                            last_space = pos;
+                            
+                        int diff = pos-last_space;
+                        int len = line.Len();
+                        line.Remove( len-diff, diff );
+                        
+                        wxStaticText *s = new wxStaticText( this, -1, line );
+                        box->Add( s );
+                        
+                        pos = last_space;
+                        last_space = 0;
+                        line = wxT("");
+                    }
+                }
         }
     }
 
@@ -129,7 +170,29 @@ wxSizer *wxDialogBase::CreateTextSizer( const wxString& message )
 
 wxSizer *wxDialogBase::CreateButtonSizer( long flags )
 {
-    wxBoxSizer *box = new wxBoxSizer( wxHORIZONTAL );
+    bool is_pda = (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA);
+    
+    wxBoxSizer *box = NULL;
+    
+    // If we have a PDA screen, put yes/no button over 
+    // all other buttons, otherwise on the left side.
+    if (is_pda)
+        box = new wxBoxSizer( wxVERTICAL );
+    else
+        box = new wxBoxSizer( wxHORIZONTAL );
+        
+    wxBoxSizer *inner_yes_no = NULL;
+    
+    // Only create sizer containing yes/no
+    // if it is actually required
+    if ( (flags & wxYES_NO) != 0 )
+    {
+        inner_yes_no = new wxBoxSizer( wxHORIZONTAL );
+        box->Add( inner_yes_no, 0, wxBOTTOM, 10 );
+    }
+    
+    wxBoxSizer *inner_rest = new wxBoxSizer( wxHORIZONTAL );
+    box->Add( inner_rest, 0, 0, 0 );
 
 #if defined(__WXMSW__) || defined(__WXMAC__)
     static const int margin = 6;
@@ -149,39 +212,39 @@ wxSizer *wxDialogBase::CreateButtonSizer( long flags )
     if (flags & wxYES)
     {
         yes = new wxButton( this, wxID_YES, _("Yes"),wxDefaultPosition,wxDefaultSize,wxCLIP_SIBLINGS );
-        box->Add( yes, 0, wxLEFT|wxRIGHT, margin );
+        inner_yes_no->Add( yes, 0, wxLEFT|wxRIGHT, margin );
     }
     if (flags & wxNO)
     {
         no = new wxButton( this, wxID_NO, _("No"),wxDefaultPosition,wxDefaultSize,wxCLIP_SIBLINGS );
-        box->Add( no, 0, wxLEFT|wxRIGHT, margin );
+        inner_yes_no->Add( no, 0, wxLEFT|wxRIGHT, margin );
     }
 
     if (flags & wxOK)
     {
         ok = new wxButton( this, wxID_OK, _("OK"),wxDefaultPosition,wxDefaultSize,wxCLIP_SIBLINGS );
-        box->Add( ok, 0, wxLEFT|wxRIGHT, margin );
+        inner_rest->Add( ok, 0, wxLEFT|wxRIGHT, margin );
     }
 
     if (flags & wxFORWARD)
-        box->Add( new wxButton( this, wxID_FORWARD, _("Forward"),wxDefaultPosition,wxDefaultSize,wxCLIP_SIBLINGS  ), 0, wxLEFT|wxRIGHT, margin );
+        inner_rest->Add( new wxButton( this, wxID_FORWARD, _("Forward"),wxDefaultPosition,wxDefaultSize,wxCLIP_SIBLINGS  ), 0, wxLEFT|wxRIGHT, margin );
 
     if (flags & wxBACKWARD)
-        box->Add( new wxButton( this, wxID_BACKWARD, _("Backward"),wxDefaultPosition,wxDefaultSize,wxCLIP_SIBLINGS  ), 0, wxLEFT|wxRIGHT, margin );
+        inner_rest->Add( new wxButton( this, wxID_BACKWARD, _("Backward"),wxDefaultPosition,wxDefaultSize,wxCLIP_SIBLINGS  ), 0, wxLEFT|wxRIGHT, margin );
 
     if (flags & wxSETUP)
-        box->Add( new wxButton( this, wxID_SETUP, _("Setup"),wxDefaultPosition,wxDefaultSize,wxCLIP_SIBLINGS  ), 0, wxLEFT|wxRIGHT, margin );
+        inner_rest->Add( new wxButton( this, wxID_SETUP, _("Setup"),wxDefaultPosition,wxDefaultSize,wxCLIP_SIBLINGS  ), 0, wxLEFT|wxRIGHT, margin );
 
     if (flags & wxMORE)
-        box->Add( new wxButton( this, wxID_MORE, _("More..."),wxDefaultPosition,wxDefaultSize,wxCLIP_SIBLINGS  ), 0, wxLEFT|wxRIGHT, margin );
+        inner_rest->Add( new wxButton( this, wxID_MORE, _("More..."),wxDefaultPosition,wxDefaultSize,wxCLIP_SIBLINGS  ), 0, wxLEFT|wxRIGHT, margin );
 
     if (flags & wxHELP)
-        box->Add( new wxButton( this, wxID_HELP, _("Help"),wxDefaultPosition,wxDefaultSize,wxCLIP_SIBLINGS  ), 0, wxLEFT|wxRIGHT, margin );
+        inner_rest->Add( new wxButton( this, wxID_HELP, _("Help"),wxDefaultPosition,wxDefaultSize,wxCLIP_SIBLINGS  ), 0, wxLEFT|wxRIGHT, margin );
 
     if (flags & wxCANCEL)
     {
         cancel = new wxButton( this, wxID_CANCEL, _("Cancel"),wxDefaultPosition,wxDefaultSize,wxCLIP_SIBLINGS );
-        box->Add( cancel, 0, wxLEFT|wxRIGHT, margin );
+        inner_rest->Add( cancel, 0, wxLEFT|wxRIGHT, margin );
     }
 
     // choose the default button
diff --git a/src/common/docview.cpp b/src/common/docview.cpp
index d115d72349..c001cac43a 100644
--- a/src/common/docview.cpp
+++ b/src/common/docview.cpp
@@ -262,7 +262,7 @@ bool wxDocument::SaveAs()
 
     if (ext.IsEmpty() || ext == wxT(""))
     {
-        fileName += ".";
+        fileName += wxT(".");
         fileName += docTemplate->GetDefaultExtension();
     }
 
@@ -295,11 +295,11 @@ bool wxDocument::OnSaveDocument(const wxString& file)
         msgTitle = wxString(_("File error"));
 
 #if wxUSE_STD_IOSTREAM
-    wxSTD ofstream store(wxString(file.fn_str()).mb_str());
+    wxSTD ofstream store(wxString(file.fn_str()).mb_str());   // ?????
     if (store.fail() || store.bad())
 #else
-    wxFileOutputStream store(wxString(file.fn_str()));
-    if (store.LastError() != wxSTREAM_NOERROR)
+    wxFileOutputStream store( file );
+    if (store.GetLastError() != wxSTREAM_NO_ERROR)
 #endif
     {
         (void)wxMessageBox(_("Sorry, could not open this file for saving."), msgTitle, wxOK | wxICON_EXCLAMATION,
@@ -332,11 +332,11 @@ bool wxDocument::OnOpenDocument(const wxString& file)
         msgTitle = wxString(_("File error"));
 
 #if wxUSE_STD_IOSTREAM
-    wxSTD ifstream store(wxString(file.fn_str()).mb_str());
+    wxSTD ifstream store(wxString(file.fn_str()).mb_str());  // ????
     if (store.fail() || store.bad())
 #else
-    wxFileInputStream store(wxString(file.fn_str()));
-    if (store.LastError() != wxSTREAM_NOERROR)
+    wxFileInputStream store( file );
+    if (store.GetLastError() != wxSTREAM_NO_ERROR)
 #endif
     {
         (void)wxMessageBox(_("Sorry, could not open this file."), msgTitle, wxOK|wxICON_EXCLAMATION,
@@ -347,8 +347,8 @@ bool wxDocument::OnOpenDocument(const wxString& file)
     LoadObject(store);
     if ( !store && !store.eof() )
 #else
-    int res = LoadObject(store).LastError();
-    if ((res != wxSTREAM_NOERROR) &&
+    int res = LoadObject(store).GetLastError();
+    if ((res != wxSTREAM_NO_ERROR) &&
         (res != wxSTREAM_EOF))
 #endif
     {
@@ -506,7 +506,8 @@ void wxDocument::UpdateAllViews(wxView *sender, wxObject *hint)
     while (node)
     {
         wxView *view = (wxView *)node->Data();
-        view->OnUpdate(sender, hint);
+		if (view != sender)
+            view->OnUpdate(sender, hint);
         node = node->Next();
     }
 }
@@ -838,12 +839,12 @@ void wxDocManager::OnFileCloseAll(wxCommandEvent& WXUNUSED(event))
 
 void wxDocManager::OnFileNew(wxCommandEvent& WXUNUSED(event))
 {
-    CreateDocument(wxString(""), wxDOC_NEW);
+    CreateDocument( wxT(""), wxDOC_NEW );
 }
 
 void wxDocManager::OnFileOpen(wxCommandEvent& WXUNUSED(event))
 {
-    if ( !CreateDocument(wxString(""), 0) )
+    if ( !CreateDocument( wxT(""), 0) )
     {
         OnOpenFileFailure();
     }
@@ -2214,7 +2215,7 @@ bool wxTransferStreamToFile(wxInputStream& stream, const wxString& filename)
         return FALSE;
     }
 
-    int len = stream.StreamSize();
+    int len = stream.GetSize();
     // TODO: is this the correct test for EOF?
     while (stream.TellI() < (len - 1))
     {
diff --git a/src/common/dosyacc.c b/src/common/dosyacc.c
index a773cce6ef..9fce511cda 100644
--- a/src/common/dosyacc.c
+++ b/src/common/dosyacc.c
@@ -1,3 +1,11 @@
+#ifdef WIN32
+/* all Win32 compilers can handle C++ comments, and C++ comments
+   is the only C++ in setup.h */
+#include "wx/setup.h"
+#endif
+
+#if !defined(wxUSE_PROLOGIO) || wxUSE_PROLOGIO
+
 #ifndef lint
 static char yysccsid[] = "@(#)yaccpar     1.7 (Berkeley) 09/09/90";
 #endif
@@ -526,3 +534,5 @@ yyabort:
 yyaccept:
     return (0);
 }
+
+#endif /* wxUSE_PROLOGIO */
diff --git a/src/common/dynarray.cpp b/src/common/dynarray.cpp
index 1b3a0353b9..4d0ee51d28 100644
--- a/src/common/dynarray.cpp
+++ b/src/common/dynarray.cpp
@@ -110,7 +110,7 @@ name& name::operator=(const name& src)                                      \
 void name::Grow(size_t nIncrement)                                          \
 {                                                                           \
   /* only do it if no more place */                                         \
-  if( m_nCount == m_nSize ) {                                               \
+  if( (m_nCount == m_nSize) || ((m_nSize - m_nCount) < nIncrement) ) {      \
     if( m_nSize == 0 ) {                                                    \
       /* was empty, determine initial size */                               \
       size_t size = WX_ARRAY_DEFAULT_INITIAL_SIZE;                          \
@@ -253,6 +253,8 @@ int name::Index(T lItem, CMPFUNC fnCompare) const                           \
 /* add item at the end */                                                   \
 void name::Add(T lItem, size_t nInsert)                                     \
 {                                                                           \
+  if (nInsert == 0)                                                         \
+      return;                                                               \
   Grow(nInsert);                                                            \
   for (size_t i = 0; i < nInsert; i++)                                      \
       m_pItems[m_nCount++] = lItem;                                         \
@@ -271,6 +273,8 @@ void name::Insert(T lItem, size_t nIndex, size_t nInsert)                   \
   wxCHECK_RET( m_nCount <= m_nCount + nInsert,                              \
                wxT("array size overflow in wxArray::Insert") );             \
                                                                             \
+  if (nInsert == 0)                                                         \
+      return;                                                               \
   Grow(nInsert);                                                            \
                                                                             \
   memmove(&m_pItems[nIndex + nInsert], &m_pItems[nIndex],                   \
diff --git a/src/common/dynload.cpp b/src/common/dynload.cpp
index aa917ba051..4c86a5e19a 100644
--- a/src/common/dynload.cpp
+++ b/src/common/dynload.cpp
@@ -33,6 +33,7 @@
 #ifndef WX_PRECOMP
     #include "wx/log.h"
     #include "wx/intl.h"
+    #include "wx/hash.h"
 #endif
 
 #include "wx/filename.h"        // for SplitPath()
@@ -263,7 +264,10 @@ void *wxDynamicLibrary::GetSymbol(const wxString &name, bool *success) const
     symbol = dlsym( m_handle, name.fn_str() );
 
 #elif defined(HAVE_SHL_LOAD)
-    if( shl_findsym( &m_handle, name.fn_str(), TYPE_UNDEFINED, &symbol ) != 0 )
+    // use local variable since shl_findsym modifies the handle argument
+    // to indicate where the symbol was found (GD)
+    wxDllType the_handle = m_handle;
+    if( shl_findsym( &the_handle, name.fn_str(), TYPE_UNDEFINED, &symbol ) != 0 )
         symbol = 0;
 
 #elif defined(__WINDOWS__)
@@ -416,9 +420,7 @@ void wxPluginLibrary::UpdateClassInfo()
 
             // Hash all the class names into a local table too so
             // we can quickly find the entry they correspond to.
-
-            if( ms_classes->Get(info->m_className) == 0 )
-                ms_classes->Put(info->m_className, (wxObject *) this);
+            (*ms_classes)[info->m_className] = this;
         }
     }
 
@@ -438,7 +440,7 @@ void wxPluginLibrary::RestoreClassInfo()
     for(info = m_after; info != m_before; info = info->m_next)
     {
         wxClassInfo::sm_classTable->Delete(info->m_className);
-        ms_classes->Delete(info->m_className);
+        ms_classes->erase(ms_classes->find(info->m_className));
     }
 
     if( wxClassInfo::sm_first == m_after )
@@ -549,7 +551,7 @@ wxPluginManager::LoadLibrary(const wxString &libname, int flags)
     }
     else
     {
-        entry = (wxPluginLibrary*) ms_manifest->Get(realname);
+        entry = FindByName(realname);
     }
 
     if ( entry )
@@ -565,7 +567,7 @@ wxPluginManager::LoadLibrary(const wxString &libname, int flags)
 
         if ( entry->IsLoaded() )
         {
-            ms_manifest->Put(realname, (wxObject*) entry);
+            (*ms_manifest)[realname] = entry;
 
             wxLogTrace(_T("dll"),
                        _T("LoadLibrary(%s): loaded ok."), realname.c_str());
@@ -594,13 +596,13 @@ bool wxPluginManager::UnloadLibrary(const wxString& libname)
 {
     wxString realname = libname;
 
-    wxPluginLibrary *entry = (wxPluginLibrary*) ms_manifest->Get(realname);
+    wxPluginLibrary *entry = FindByName(realname);
 
     if ( !entry )
     {
         realname += wxDynamicLibrary::GetDllExt();
 
-        entry = (wxPluginLibrary*) ms_manifest->Get(realname);
+        entry = FindByName(realname);
     }
 
     if ( !entry )
@@ -619,7 +621,7 @@ bool wxPluginManager::UnloadLibrary(const wxString& libname)
         return FALSE;
     }
 
-    ms_manifest->Delete(realname);
+    ms_manifest->erase(ms_manifest->find(realname));
 
     return TRUE;
 }
@@ -627,12 +629,15 @@ bool wxPluginManager::UnloadLibrary(const wxString& libname)
 #if WXWIN_COMPATIBILITY_2_2
 wxPluginLibrary *wxPluginManager::GetObjectFromHandle(wxDllType handle)
 {
-    wxNode  *node;
-    ms_manifest->BeginFind();
+    for ( wxDLManifest::iterator i = ms_manifest->begin();
+          i != ms_manifest->end();
+          ++i )
+    {
+        wxPluginLibrary * const lib = i->second;
 
-    for(node = ms_manifest->Next(); node; node = ms_manifest->Next())
-        if( ((wxPluginLibrary*)node->GetData())->GetLibHandle() == handle )
-            return (wxPluginLibrary*)node->GetData();
+        if ( lib->GetLibHandle() == handle )
+            return lib;
+    }
 
     return NULL;
 }
@@ -645,25 +650,28 @@ wxPluginLibrary *wxPluginManager::GetObjectFromHandle(wxDllType handle)
 bool wxPluginManager::Load(const wxString &libname, int flags)
 {
     m_entry = wxPluginManager::LoadLibrary(libname, flags);
+
     return IsLoaded();
 }
 
 void wxPluginManager::Unload()
 {
-    wxNode  *node;
-    ms_manifest->BeginFind();
-
-    // It's either this or store the name of the lib just to do this.
+    wxCHECK_RET( m_entry, _T("unloading an invalid wxPluginManager?") );
 
-    for(node = ms_manifest->Next(); node; node = ms_manifest->Next())
-        if( (wxPluginLibrary*)node->GetData() == m_entry )
-            break;
-
-    if( m_entry && m_entry->UnrefLib() )
+    for ( wxDLManifest::iterator i = ms_manifest->begin();
+          i != ms_manifest->end();
+          ++i )
     {
-        delete node;
-        m_entry = 0;
+        if ( i->second == m_entry )
+        {
+            ms_manifest->erase(i);
+            return;
+        }
     }
+
+    m_entry->UnrefLib();
+
+    m_entry = NULL;
 }
 
 // ---------------------------------------------------------------------------
diff --git a/src/common/event.cpp b/src/common/event.cpp
index d4cc3c54d4..6e578317e2 100644
--- a/src/common/event.cpp
+++ b/src/common/event.cpp
@@ -545,9 +545,32 @@ wxKeyEvent::wxKeyEvent(wxEventType type)
     m_altDown = FALSE;
     m_keyCode = 0;
     m_scanCode = 0;
+#if wxUSE_UNICODE
+    m_uniChar = 0;
+#endif
 }
 
-
+wxKeyEvent::wxKeyEvent(const wxKeyEvent& evt) 
+    : wxEvent(evt)
+{
+    m_x = evt.m_x;
+    m_y = evt.m_y;
+
+    m_keyCode = evt.m_keyCode;
+
+    m_controlDown = evt.m_controlDown;
+    m_shiftDown = evt.m_shiftDown;
+    m_altDown = evt.m_altDown;
+    m_metaDown = evt.m_metaDown;
+    m_scanCode = evt.m_scanCode;
+    m_rawCode = evt.m_rawCode;
+    m_rawFlags = evt.m_rawFlags;
+        
+#if wxUSE_UNICODE
+    m_uniChar = evt.m_uniChar;
+#endif
+}
+    
 wxWindowCreateEvent::wxWindowCreateEvent(wxWindow *win)
 {
     SetEventType(wxEVT_CREATE);
diff --git a/src/common/execcmn.cpp b/src/common/execcmn.cpp
index f89e061b2c..9e9012f244 100644
--- a/src/common/execcmn.cpp
+++ b/src/common/execcmn.cpp
@@ -81,7 +81,7 @@ inline void wxStreamTempInputBuffer::Init(wxPipeInputStream *stream)
 
 void wxStreamTempInputBuffer::Update()
 {
-    if ( m_stream && m_stream->IsAvailable() )
+    if ( m_stream && m_stream->CanRead() )
     {
         // realloc in blocks of 4Kb: this is the default (and minimal) buffer
         // size of the Unix pipes so it should be the optimal step
@@ -111,24 +111,5 @@ wxStreamTempInputBuffer::~wxStreamTempInputBuffer()
     }
 }
 
-// ----------------------------------------------------------------------------
-// platform-dependent parts of wxProcess implementation included
-// ----------------------------------------------------------------------------
-
-bool wxProcess::IsInputOpened() const
-{
-    return m_inputStream && ((wxPipeInputStream *)m_inputStream)->IsOpened();
-}
-
-bool wxProcess::IsInputAvailable() const
-{
-    return m_inputStream && ((wxPipeInputStream *)m_inputStream)->IsAvailable();
-}
-
-bool wxProcess::IsErrorAvailable() const
-{
-    return m_errorStream && ((wxPipeInputStream *)m_errorStream)->IsAvailable();
-}
-
 #endif // _WX_WXEXEC_CPP_
 
diff --git a/src/common/fileconf.cpp b/src/common/fileconf.cpp
index 5ef534169b..c93a8f5d01 100644
--- a/src/common/fileconf.cpp
+++ b/src/common/fileconf.cpp
@@ -261,16 +261,16 @@ wxString wxFileConfig::GetGlobalDir()
 {
   wxString strDir;
 
-  #ifdef __VMS__ // Note if __VMS is defined __UNIX is also defined
+#ifdef __VMS__ // Note if __VMS is defined __UNIX is also defined
     strDir = wxT("sys$manager:");
-  #elif defined(__WXMAC__)
+#elif defined(__WXMAC__)
     strDir = wxMacFindFolder(  (short) kOnSystemDisk, kPreferencesFolderType, kDontCreateFolder ) ;
-  #elif defined( __UNIX__ )
+#elif defined( __UNIX__ )
     strDir = wxT("/etc/");
-  #elif defined(__WXPM__)
-    ULONG                           aulSysInfo[QSV_MAX] = {0};
-    UINT                            drive;
-    APIRET                          rc;
+#elif defined(__WXPM__)
+    ULONG aulSysInfo[QSV_MAX] = {0};
+    UINT drive;
+    APIRET rc;
 
     rc = DosQuerySysInfo( 1L, QSV_MAX, (PVOID)aulSysInfo, sizeof(ULONG)*QSV_MAX);
     if (rc == 0)
@@ -278,88 +278,90 @@ wxString wxFileConfig::GetGlobalDir()
         drive = aulSysInfo[QSV_BOOT_DRIVE - 1];
         strDir.Printf(wxT("%c:\\OS2\\"), 'A'+drive-1);
     }
-  #elif defined(__WXSTUBS__)
+#elif defined(__WXSTUBS__)
     wxASSERT_MSG( FALSE, wxT("TODO") ) ;
-  #elif defined(__DOS__)
+#elif defined(__DOS__)
     // There's no such thing as global cfg dir in MS-DOS, let's return
     // current directory (FIXME_MGL?)
     return wxT(".\\");
-  #else // Windows
+#else // Windows
     wxChar szWinDir[MAX_PATH];
     ::GetWindowsDirectory(szWinDir, MAX_PATH);
 
     strDir = szWinDir;
     strDir << wxT('\\');
-  #endif // Unix/Windows
+#endif // Unix/Windows
 
-  return strDir;
+    return strDir;
 }
 
 wxString wxFileConfig::GetLocalDir()
 {
-  wxString strDir;
+    wxString strDir;
 
 #if defined(__WXMAC__) || defined(__DOS__)
-  // no local dir concept on Mac OS 9 or MS-DOS
-  return GetGlobalDir() ;
+    // no local dir concept on Mac OS 9 or MS-DOS
+    return GetGlobalDir() ;
+#else
+    wxGetHomeDir(&strDir);
+
+#ifdef  __UNIX__
+#ifdef __VMS
+    if (strDir.Last() != wxT(']'))
+#endif
+    if (strDir.Last() != wxT('/')) strDir << wxT('/');
 #else
-  wxGetHomeDir(&strDir);
-
-#  ifdef  __UNIX__
-#  ifdef __VMS
-  if (strDir.Last() != wxT(']'))
-#  endif
-      if (strDir.Last() != wxT('/')) strDir << wxT('/');
-#  else
-  if (strDir.Last() != wxT('\\')) strDir << wxT('\\');
-#  endif
+    if (strDir.Last() != wxT('\\')) strDir << wxT('\\');
+#endif
 #endif
 
-  return strDir;
+    return strDir;
 }
 
 wxString wxFileConfig::GetGlobalFileName(const wxChar *szFile)
 {
-  wxString str = GetGlobalDir();
-  str << szFile;
-
-  if ( wxStrchr(szFile, wxT('.')) == NULL )
-  #if defined( __WXMAC__ )
-     str << " Preferences";
-  #elif defined( __UNIX__ )
-    str << wxT(".conf");
-  #else   // Windows
-    str << wxT(".ini");
-  #endif  // UNIX/Win
+    wxString str = GetGlobalDir();
+    str << szFile;
 
-  return str;
+    if ( wxStrchr(szFile, wxT('.')) == NULL )
+#if defined( __WXMAC__ )
+        str << " Preferences";
+#elif defined( __UNIX__ )
+        str << wxT(".conf");
+#else   // Windows
+        str << wxT(".ini");
+#endif  // UNIX/Win
+
+    return str;
 }
 
 wxString wxFileConfig::GetLocalFileName(const wxChar *szFile)
 {
-#ifdef __VMS__ // On VMS I saw the problem that the home directory was appended
-   // twice for the configuration file. Does that also happen for other
-   // platforms?
-   wxString str = wxT( '.' );
+#ifdef __VMS__ 
+    // On VMS I saw the problem that the home directory was appended
+    // twice for the configuration file. Does that also happen for
+    // other platforms?
+    wxString str = wxT( '.' );
 #else
-   wxString str = GetLocalDir();
+    wxString str = GetLocalDir();
 #endif
 
-  #if defined( __UNIX__ ) && !defined( __VMS ) && !defined( __WXMAC__ )
+#if defined( __UNIX__ ) && !defined( __VMS ) && !defined( __WXMAC__ )
     str << wxT('.');
-  #endif
+#endif
 
-  str << szFile;
+    str << szFile;
 
-  #if defined(__WINDOWS__) || defined(__DOS__)
+#if defined(__WINDOWS__) || defined(__DOS__)
     if ( wxStrchr(szFile, wxT('.')) == NULL )
-      str << wxT(".ini");
-  #endif
+        str << wxT(".ini");
+#endif
 
-  #ifdef __WXMAC__
-     str << " Preferences";
-  #endif
-  return str;
+#ifdef __WXMAC__
+    str << " Preferences";
+#endif
+
+    return str;
 }
 
 // ----------------------------------------------------------------------------
@@ -368,38 +370,52 @@ wxString wxFileConfig::GetLocalFileName(const wxChar *szFile)
 
 void wxFileConfig::Init()
 {
-  m_pCurrentGroup =
-  m_pRootGroup    = new wxFileConfigGroup(NULL, "", this);
+    m_pCurrentGroup =
+    m_pRootGroup    = new wxFileConfigGroup(NULL, wxT(""), this);
 
-  m_linesHead =
-  m_linesTail = NULL;
+    m_linesHead =
+    m_linesTail = NULL;
 
-  // it's not an error if (one of the) file(s) doesn't exist
+    // It's not an error if (one of the) file(s) doesn't exist.
 
-  // parse the global file
-  if ( !m_strGlobalFile.IsEmpty() && wxFile::Exists(m_strGlobalFile) ) {
-    wxTextFile fileGlobal(m_strGlobalFile);
+    // parse the global file
+    if ( !m_strGlobalFile.IsEmpty() && wxFile::Exists(m_strGlobalFile) )
+    {
+        wxTextFile fileGlobal(m_strGlobalFile);
 
-    if ( fileGlobal.Open() ) {
-      Parse(fileGlobal, FALSE /* global */);
-      SetRootPath();
+#if defined(__WXGTK20__) && wxUSE_UNICODE
+        if ( fileGlobal.Open( wxConvUTF8 ) ) 
+#else
+        if ( fileGlobal.Open() ) 
+#endif
+        {
+            Parse(fileGlobal, FALSE /* global */);
+            SetRootPath();
+        }
+        else
+        {
+            wxLogWarning(_("can't open global configuration file '%s'."), m_strGlobalFile.c_str());
+        }
     }
-    else
-      wxLogWarning(_("can't open global configuration file '%s'."),
-                   m_strGlobalFile.c_str());
-  }
 
-  // parse the local file
-  if ( !m_strLocalFile.IsEmpty() && wxFile::Exists(m_strLocalFile) ) {
-    wxTextFile fileLocal(m_strLocalFile);
-    if ( fileLocal.Open() ) {
-      Parse(fileLocal, TRUE /* local */);
-      SetRootPath();
+    // parse the local file
+    if ( !m_strLocalFile.IsEmpty() && wxFile::Exists(m_strLocalFile) )
+    {
+        wxTextFile fileLocal(m_strLocalFile);
+#if defined(__WXGTK20__) && wxUSE_UNICODE
+        if ( fileLocal.Open( wxConvUTF8 ) ) 
+#else
+        if ( fileLocal.Open() ) 
+#endif
+        {
+            Parse(fileLocal, TRUE /* local */);
+            SetRootPath();
+        }
+        else
+        {
+            wxLogWarning(_("can't open user configuration file '%s'."),  m_strLocalFile.c_str() );
+        }
     }
-    else
-      wxLogWarning(_("can't open user configuration file '%s'."),
-                   m_strLocalFile.c_str());
-  }
 }
 
 // constructor supports creation of wxFileConfig objects of any type
@@ -411,47 +427,43 @@ wxFileConfig::wxFileConfig(const wxString& appName, const wxString& vendorName,
                            style),
               m_strLocalFile(strLocal), m_strGlobalFile(strGlobal)
 {
-  // Make up names for files if empty
-  if ( m_strLocalFile.IsEmpty() && (style & wxCONFIG_USE_LOCAL_FILE) )
-  {
-    m_strLocalFile = GetLocalFileName(GetAppName());
-  }
+    // Make up names for files if empty
+    if ( m_strLocalFile.IsEmpty() && (style & wxCONFIG_USE_LOCAL_FILE) )
+        m_strLocalFile = GetLocalFileName(GetAppName());
 
-  if ( m_strGlobalFile.IsEmpty() && (style & wxCONFIG_USE_GLOBAL_FILE) )
-  {
-    m_strGlobalFile = GetGlobalFileName(GetAppName());
-  }
+    if ( m_strGlobalFile.IsEmpty() && (style & wxCONFIG_USE_GLOBAL_FILE) )
+        m_strGlobalFile = GetGlobalFileName(GetAppName());
 
-  // Check if styles are not supplied, but filenames are, in which case
-  // add the correct styles.
-  if ( !m_strLocalFile.IsEmpty() )
-    SetStyle(GetStyle() | wxCONFIG_USE_LOCAL_FILE);
-
-  if ( !m_strGlobalFile.IsEmpty() )
-    SetStyle(GetStyle() | wxCONFIG_USE_GLOBAL_FILE);
+    // Check if styles are not supplied, but filenames are, in which case
+    // add the correct styles.
+    if ( !m_strLocalFile.IsEmpty() )
+        SetStyle(GetStyle() | wxCONFIG_USE_LOCAL_FILE);
 
-  // if the path is not absolute, prepend the standard directory to it
-  // UNLESS wxCONFIG_USE_RELATIVE_PATH style is set
-  if ( !(style & wxCONFIG_USE_RELATIVE_PATH) )
-  {
-      if ( !m_strLocalFile.IsEmpty() && !wxIsAbsolutePath(m_strLocalFile) )
-      {
-          wxString strLocal = m_strLocalFile;
-          m_strLocalFile = GetLocalDir();
-          m_strLocalFile << strLocal;
-      }
+    if ( !m_strGlobalFile.IsEmpty() )
+        SetStyle(GetStyle() | wxCONFIG_USE_GLOBAL_FILE);
 
-      if ( !m_strGlobalFile.IsEmpty() && !wxIsAbsolutePath(m_strGlobalFile) )
-      {
-          wxString strGlobal = m_strGlobalFile;
-          m_strGlobalFile = GetGlobalDir();
-          m_strGlobalFile << strGlobal;
-      }
-  }
+    // if the path is not absolute, prepend the standard directory to it
+    // UNLESS wxCONFIG_USE_RELATIVE_PATH style is set
+    if ( !(style & wxCONFIG_USE_RELATIVE_PATH) )
+    {
+        if ( !m_strLocalFile.IsEmpty() && !wxIsAbsolutePath(m_strLocalFile) )
+        {
+            wxString strLocal = m_strLocalFile;
+            m_strLocalFile = GetLocalDir();
+            m_strLocalFile << strLocal;
+        }
 
-  SetUmask(-1);
+        if ( !m_strGlobalFile.IsEmpty() && !wxIsAbsolutePath(m_strGlobalFile) )
+        {
+            wxString strGlobal = m_strGlobalFile;
+            m_strGlobalFile = GetGlobalDir();
+            m_strGlobalFile << strGlobal;
+        }
+    }
 
-  Init();
+    SetUmask(-1);
+    
+    Init();
 }
 
 #if wxUSE_STREAMS
@@ -462,7 +474,7 @@ wxFileConfig::wxFileConfig(wxInputStream &inStream)
     SetStyle(GetStyle() | wxCONFIG_USE_LOCAL_FILE);
 
     m_pCurrentGroup =
-    m_pRootGroup    = new wxFileConfigGroup(NULL, "", this);
+    m_pRootGroup    = new wxFileConfigGroup(NULL, wxT(""), this);
 
     m_linesHead =
     m_linesTail = NULL;
@@ -546,7 +558,9 @@ void wxFileConfig::Parse(wxTextBuffer& buffer, bool bLocal)
   wxString strLine;
 
   size_t nLineCount = buffer.GetLineCount();
-  for ( size_t n = 0; n < nLineCount; n++ ) {
+  
+  for ( size_t n = 0; n < nLineCount; n++ )
+  {
     strLine = buffer[n];
 
     // add the line to linked list
@@ -851,37 +865,62 @@ bool wxFileConfig::DoReadLong(const wxString& key, long *pl) const
 
 bool wxFileConfig::DoWriteString(const wxString& key, const wxString& szValue)
 {
-  wxConfigPathChanger path(this, key);
+    wxConfigPathChanger     path(this, key);
+    wxString                strName = path.Name();
+  
+    wxLogTrace( _T("wxFileConfig"),
+                _T("  Writing String '%s' = '%s' to Group '%s'"),
+                strName.c_str(),
+                szValue.c_str(),
+                GetPath().c_str() );
 
-  wxString strName = path.Name();
-  if ( strName.IsEmpty() ) {
-    // setting the value of a group is an error
-    wxASSERT_MSG( wxIsEmpty(szValue), wxT("can't set value of a group!") );
+    if ( strName.IsEmpty() )
+    {
+            // setting the value of a group is an error
 
-    // ... except if it's empty in which case it's a way to force it's creation
-    m_pCurrentGroup->SetDirty();
+        wxASSERT_MSG( wxIsEmpty(szValue), wxT("can't set value of a group!") );
 
-    // this will add a line for this group if it didn't have it before
-    (void)m_pCurrentGroup->GetGroupLine();
-  }
-  else {
-    // writing an entry
+            // ... except if it's empty in which case it's a way to force it's creation
 
-    // check that the name is reasonable
-    if ( strName[0u] == wxCONFIG_IMMUTABLE_PREFIX ) {
-      wxLogError(_("Config entry name cannot start with '%c'."),
-                 wxCONFIG_IMMUTABLE_PREFIX);
-      return FALSE;
+        wxLogTrace( _T("wxFileConfig"),
+                    _T("  Creating group %s"),
+                    m_pCurrentGroup->Name().c_str() );
+
+        m_pCurrentGroup->SetDirty();
+
+            // this will add a line for this group if it didn't have it before
+
+        (void)m_pCurrentGroup->GetGroupLine();
     }
+    else
+    {
+            // writing an entry
+            // check that the name is reasonable
+
+        if ( strName[0u] == wxCONFIG_IMMUTABLE_PREFIX )
+        {
+            wxLogError( _("Config entry name cannot start with '%c'."),
+                        wxCONFIG_IMMUTABLE_PREFIX);
+            return FALSE;
+        }
 
-    wxFileConfigEntry *pEntry = m_pCurrentGroup->FindEntry(strName);
-    if ( pEntry == NULL )
-      pEntry = m_pCurrentGroup->AddEntry(strName);
+        wxFileConfigEntry   *pEntry = m_pCurrentGroup->FindEntry(strName);
 
-    pEntry->SetValue(szValue);
-  }
+        if ( pEntry == 0 )
+        {
+            wxLogTrace( _T("wxFileConfig"),
+                        _T("  Adding Entry %s"),
+                        strName.c_str() );
+            pEntry = m_pCurrentGroup->AddEntry(strName);
+        }
 
-  return TRUE;
+        wxLogTrace( _T("wxFileConfig"),
+                    _T("  Setting value %s"),
+                    szValue.c_str() );
+        pEntry->SetValue(szValue);
+    }
+
+    return TRUE;
 }
 
 bool wxFileConfig::DoWriteLong(const wxString& key, long lValue)
@@ -1048,74 +1087,135 @@ bool wxFileConfig::DeleteAll()
 // linked list functions
 // ----------------------------------------------------------------------------
 
-// append a new line to the end of the list
+    // append a new line to the end of the list
+
 wxFileConfigLineList *wxFileConfig::LineListAppend(const wxString& str)
 {
-  wxFileConfigLineList *pLine = new wxFileConfigLineList(str);
+    wxLogTrace( _T("wxFileConfig"),
+                _T("    ** Adding Line '%s'"),
+                str.c_str() );
+    wxLogTrace( _T("wxFileConfig"),
+                _T("        head: %s"),
+                ((m_linesHead) ? m_linesHead->Text().c_str() : wxEmptyString) );
+    wxLogTrace( _T("wxFileConfig"),
+                _T("        tail: %s"),
+                ((m_linesTail) ? m_linesTail->Text().c_str() : wxEmptyString) );
 
-  if ( m_linesTail == NULL ) {
-    // list is empty
-    m_linesHead = pLine;
-  }
-  else {
-    // adjust pointers
-    m_linesTail->SetNext(pLine);
-    pLine->SetPrev(m_linesTail);
-  }
+    wxFileConfigLineList *pLine = new wxFileConfigLineList(str);
 
-  m_linesTail = pLine;
-  return m_linesTail;
+    if ( m_linesTail == NULL )
+    {
+        // list is empty
+        m_linesHead = pLine;
+    }
+    else
+    {
+        // adjust pointers
+        m_linesTail->SetNext(pLine);
+        pLine->SetPrev(m_linesTail);
+    }
+
+    m_linesTail = pLine;
+
+    wxLogTrace( _T("wxFileConfig"),
+                _T("        head: %s"),
+                ((m_linesHead) ? m_linesHead->Text().c_str() : wxEmptyString) );
+    wxLogTrace( _T("wxFileConfig"),
+                _T("        tail: %s"),
+                ((m_linesTail) ? m_linesTail->Text().c_str() : wxEmptyString) );
+
+    return m_linesTail;
 }
 
-// insert a new line after the given one or in the very beginning if !pLine
+    // insert a new line after the given one or in the very beginning if !pLine
+
 wxFileConfigLineList *wxFileConfig::LineListInsert(const wxString& str,
-                                                     wxFileConfigLineList *pLine)
-{
-  if ( pLine == m_linesTail )
-    return LineListAppend(str);
+                                                   wxFileConfigLineList *pLine)
+{
+    wxLogTrace( _T("wxFileConfig"),
+                _T("    ** Inserting Line '%s' after '%s'"),
+                str.c_str(),
+                ((pLine) ? pLine->Text().c_str() : wxEmptyString) );
+    wxLogTrace( _T("wxFileConfig"),
+                _T("        head: %s"),
+                ((m_linesHead) ? m_linesHead->Text().c_str() : wxEmptyString) );
+    wxLogTrace( _T("wxFileConfig"),
+                _T("        tail: %s"),
+                ((m_linesTail) ? m_linesTail->Text().c_str() : wxEmptyString) );
+
+    if ( pLine == m_linesTail )
+        return LineListAppend(str);
+
+    wxFileConfigLineList *pNewLine = new wxFileConfigLineList(str);
+    if ( pLine == NULL )
+    {
+        // prepend to the list
+        pNewLine->SetNext(m_linesHead);
+        m_linesHead->SetPrev(pNewLine);
+        m_linesHead = pNewLine;
+    }
+    else
+    {
+        // insert before pLine
+        wxFileConfigLineList *pNext = pLine->Next();
+        pNewLine->SetNext(pNext);
+        pNewLine->SetPrev(pLine);
+        pNext->SetPrev(pNewLine);
+        pLine->SetNext(pNewLine);
+    }
 
-  wxFileConfigLineList *pNewLine = new wxFileConfigLineList(str);
-  if ( pLine == NULL ) {
-    // prepend to the list
-    pNewLine->SetNext(m_linesHead);
-    m_linesHead->SetPrev(pNewLine);
-    m_linesHead = pNewLine;
-  }
-  else {
-    // insert before pLine
-    wxFileConfigLineList *pNext = pLine->Next();
-    pNewLine->SetNext(pNext);
-    pNewLine->SetPrev(pLine);
-    pNext->SetPrev(pNewLine);
-    pLine->SetNext(pNewLine);
-  }
+    wxLogTrace( _T("wxFileConfig"),
+                _T("        head: %s"),
+                ((m_linesHead) ? m_linesHead->Text().c_str() : wxEmptyString) );
+    wxLogTrace( _T("wxFileConfig"),
+                _T("        tail: %s"),
+                ((m_linesTail) ? m_linesTail->Text().c_str() : wxEmptyString) );
 
-  return pNewLine;
+    return pNewLine;
 }
 
 void wxFileConfig::LineListRemove(wxFileConfigLineList *pLine)
 {
-  wxFileConfigLineList *pPrev = pLine->Prev(),
-           *pNext = pLine->Next();
+    wxLogTrace( _T("wxFileConfig"),
+                _T("    ** Removing Line '%s'"),
+                pLine->Text().c_str() );
+    wxLogTrace( _T("wxFileConfig"),
+                _T("        head: %s"),
+                ((m_linesHead) ? m_linesHead->Text().c_str() : wxEmptyString) );
+    wxLogTrace( _T("wxFileConfig"),
+                _T("        tail: %s"),
+                ((m_linesTail) ? m_linesTail->Text().c_str() : wxEmptyString) );
 
-  // first entry?
-  if ( pPrev == NULL )
-    m_linesHead = pNext;
-  else
-    pPrev->SetNext(pNext);
+    wxFileConfigLineList    *pPrev = pLine->Prev(),
+                            *pNext = pLine->Next();
 
-  // last entry?
-  if ( pNext == NULL )
-    m_linesTail = pPrev;
-  else
-    pNext->SetPrev(pPrev);
+        // first entry?
+
+    if ( pPrev == NULL )
+        m_linesHead = pNext;
+    else
+        pPrev->SetNext(pNext);
+
+        // last entry?
 
-  delete pLine;
+    if ( pNext == NULL )
+        m_linesTail = pPrev;
+    else
+        pNext->SetPrev(pPrev);
+
+    wxLogTrace( _T("wxFileConfig"),
+                _T("        head: %s"),
+                ((m_linesHead) ? m_linesHead->Text().c_str() : wxEmptyString) );
+    wxLogTrace( _T("wxFileConfig"),
+                _T("        tail: %s"),
+                ((m_linesTail) ? m_linesTail->Text().c_str() : wxEmptyString) );
+
+    delete pLine;
 }
 
 bool wxFileConfig::LineListIsEmpty()
 {
-  return m_linesHead == NULL;
+    return m_linesHead == NULL;
 }
 
 // ============================================================================
@@ -1163,9 +1263,8 @@ wxFileConfigGroup::~wxFileConfigGroup()
 
 void wxFileConfigGroup::SetLine(wxFileConfigLineList *pLine)
 {
-  wxASSERT( m_pLine == NULL ); // shouldn't be called twice
-
-  m_pLine = pLine;
+    wxASSERT( m_pLine == 0 ); // shouldn't be called twice
+    m_pLine = pLine;
 }
 
 /*
@@ -1204,27 +1303,42 @@ void wxFileConfigGroup::SetLine(wxFileConfigLineList *pLine)
 // have it or in the very beginning if we're the root group.
 wxFileConfigLineList *wxFileConfigGroup::GetGroupLine()
 {
-  if ( m_pLine == NULL ) {
-    wxFileConfigGroup *pParent = Parent();
-
-    // this group wasn't present in local config file, add it now
-    if ( pParent != NULL ) {
-      wxString strFullName;
-      strFullName << wxT("[")
-                  // +1: no '/'
-                  << FilterOutEntryName(GetFullName().c_str() + 1)
-                  << wxT("]");
-      m_pLine = m_pConfig->LineListInsert(strFullName,
-                                          pParent->GetLastGroupLine());
-      pParent->SetLastGroup(this);  // we're surely after all the others
-    }
-    else {
-      // we return NULL, so that LineListInsert() will insert us in the
-      // very beginning
+    wxLogTrace( _T("wxFileConfig"),
+                _T("  GetGroupLine() for Group '%s'"),
+                Name().c_str() );
+
+    if ( m_pLine == 0 )
+    {
+        wxLogTrace( _T("wxFileConfig"),
+                    _T("    Getting Line item pointer") );
+
+        wxFileConfigGroup   *pParent = Parent();
+
+            // this group wasn't present in local config file, add it now
+
+        if ( pParent != 0 )
+        {
+            wxLogTrace( _T("wxFileConfig"),
+                        _T("    checking parent '%s'"),
+                        pParent->Name().c_str() );
+
+            wxString    strFullName;
+
+            strFullName << wxT("[")         // +1: no '/'
+                        << FilterOutEntryName(GetFullName().c_str() + 1)
+                        << wxT("]");
+            m_pLine = m_pConfig->LineListInsert(strFullName,
+                                                pParent->GetLastGroupLine());
+            pParent->SetLastGroup(this);  // we're surely after all the others
+        }
+        else
+        {
+            // we return NULL, so that LineListInsert() will insert us in the
+            // very beginning
+        }
     }
-  }
 
-  return m_pLine;
+    return m_pLine;
 }
 
 // Return the last line belonging to the subgroups of this group (after which
@@ -1232,17 +1346,20 @@ wxFileConfigLineList *wxFileConfigGroup::GetGroupLine()
 // last line is the group line (m_pLine) itself.
 wxFileConfigLineList *wxFileConfigGroup::GetLastGroupLine()
 {
-  // if we have any subgroups, our last line is the last line of the last
-  // subgroup
-  if ( m_pLastGroup != NULL ) {
-    wxFileConfigLineList *pLine = m_pLastGroup->GetLastGroupLine();
+        // if we have any subgroups, our last line is
+        // the last line of the last subgroup
 
-    wxASSERT( pLine != NULL );  // last group must have !NULL associated line
-    return pLine;
-  }
+    if ( m_pLastGroup != 0 )
+    {
+        wxFileConfigLineList *pLine = m_pLastGroup->GetLastGroupLine();
+
+        wxASSERT( pLine != 0 );  // last group must have !NULL associated line
+        return pLine;
+    }
 
-  // no subgroups, so the last line is the line of thelast entry (if any)
-  return GetLastEntryLine();
+        // no subgroups, so the last line is the line of thelast entry (if any)
+
+    return GetLastEntryLine();
 }
 
 // return the last line belonging to the entries of this group (after which
@@ -1250,15 +1367,21 @@ wxFileConfigLineList *wxFileConfigGroup::GetLastGroupLine()
 // one immediately after the group line itself.
 wxFileConfigLineList *wxFileConfigGroup::GetLastEntryLine()
 {
-  if ( m_pLastEntry != NULL ) {
-    wxFileConfigLineList *pLine = m_pLastEntry->GetLine();
+    wxLogTrace( _T("wxFileConfig"),
+                _T("  GetLastEntryLine() for Group '%s'"),
+                Name().c_str() );
 
-    wxASSERT( pLine != NULL );  // last entry must have !NULL associated line
-    return pLine;
-  }
+    if ( m_pLastEntry != 0 )
+    {
+        wxFileConfigLineList    *pLine = m_pLastEntry->GetLine();
+
+        wxASSERT( pLine != 0 );  // last entry must have !NULL associated line
+        return pLine;
+    }
 
-  // no entries: insert after the group header
-  return GetGroupLine();
+        // no entries: insert after the group header
+
+    return GetGroupLine();
 }
 
 // ----------------------------------------------------------------------------
@@ -1355,27 +1478,25 @@ wxFileConfigGroup::FindSubgroup(const wxChar *szName) const
 // ----------------------------------------------------------------------------
 
 // create a new entry and add it to the current group
-wxFileConfigEntry *
-wxFileConfigGroup::AddEntry(const wxString& strName, int nLine)
+wxFileConfigEntry *wxFileConfigGroup::AddEntry(const wxString& strName, int nLine)
 {
-  wxASSERT( FindEntry(strName) == NULL );
+    wxASSERT( FindEntry(strName) == 0 );
 
-  wxFileConfigEntry *pEntry = new wxFileConfigEntry(this, strName, nLine);
-  m_aEntries.Add(pEntry);
+    wxFileConfigEntry   *pEntry = new wxFileConfigEntry(this, strName, nLine);
 
-  return pEntry;
+    m_aEntries.Add(pEntry);
+    return pEntry;
 }
 
 // create a new group and add it to the current group
-wxFileConfigGroup *
-wxFileConfigGroup::AddSubgroup(const wxString& strName)
+wxFileConfigGroup *wxFileConfigGroup::AddSubgroup(const wxString& strName)
 {
-  wxASSERT( FindSubgroup(strName) == NULL );
+    wxASSERT( FindSubgroup(strName) == 0 );
 
-  wxFileConfigGroup *pGroup = new wxFileConfigGroup(this, strName, m_pConfig);
-  m_aSubgroups.Add(pGroup);
+    wxFileConfigGroup   *pGroup = new wxFileConfigGroup(this, strName, m_pConfig);
 
-  return pGroup;
+    m_aSubgroups.Add(pGroup);
+    return pGroup;
 }
 
 // ----------------------------------------------------------------------------
@@ -1394,71 +1515,146 @@ bool wxFileConfigGroup::DeleteSubgroupByName(const wxChar *szName)
   return DeleteSubgroup(FindSubgroup(szName));
 }
 
-// doesn't delete the subgroup itself, but does remove references to it from
-// all other data structures (and normally the returned pointer should be
-// deleted a.s.a.p. because there is nothing much to be done with it anyhow)
+// Delete the subgroup and remove all references to it from
+// other data structures.
 bool wxFileConfigGroup::DeleteSubgroup(wxFileConfigGroup *pGroup)
 {
-  wxCHECK( pGroup != NULL, FALSE ); // deleting non existing group?
+    wxLogTrace( _T("wxFileConfig"),
+                _T("Deleting group '%s' from '%s'"),
+                pGroup->Name().c_str(),
+                Name().c_str() );
 
-  // delete all entries
-  size_t nCount = pGroup->m_aEntries.Count();
-  for ( size_t nEntry = 0; nEntry < nCount; nEntry++ ) {
-    wxFileConfigLineList *pLine = pGroup->m_aEntries[nEntry]->GetLine();
-    if ( pLine != NULL )
-      m_pConfig->LineListRemove(pLine);
-  }
+    wxLogTrace( _T("wxFileConfig"),
+                _T("  (m_pLine) = prev: %p, this %p, next %p"),
+                ((m_pLine) ? m_pLine->Prev() : 0),
+                m_pLine,
+                ((m_pLine) ? m_pLine->Next() : 0) );
+    wxLogTrace( _T("wxFileConfig"),
+                _T("  text: '%s'"),
+                ((m_pLine) ? m_pLine->Text().c_str() : wxEmptyString) );
 
-  // and subgroups of this sungroup
-  nCount = pGroup->m_aSubgroups.Count();
-  for ( size_t nGroup = 0; nGroup < nCount; nGroup++ ) {
-    pGroup->DeleteSubgroup(pGroup->m_aSubgroups[0]);
-  }
+    wxCHECK_MSG( pGroup != 0, FALSE, _T("deleting non existing group?") );
 
-  wxFileConfigLineList *pLine = pGroup->m_pLine;
-  if ( pLine != NULL ) {
-    // notice that we may do this test inside the previous "if" because the
-    // last entry's line is surely !NULL
-    if ( pGroup == m_pLastGroup ) {
-      // our last entry is being deleted - find the last one which stays
-      wxASSERT( m_pLine != NULL );  // we have a subgroup with !NULL pLine...
+        // delete all entries
 
-      // go back until we find a subgroup or reach the group's line
-      wxFileConfigGroup *pNewLast = NULL;
-      size_t n, nSubgroups = m_aSubgroups.Count();
-      wxFileConfigLineList *pl;
-      for ( pl = pLine->Prev(); pl != m_pLine; pl = pl->Prev() ) {
-        // is it our subgroup?
-        for ( n = 0; (pNewLast == NULL) && (n < nSubgroups); n++ ) {
-          // do _not_ call GetGroupLine! we don't want to add it to the local
-          // file if it's not already there
-          if ( m_aSubgroups[n]->m_pLine == m_pLine )
-            pNewLast = m_aSubgroups[n];
+    size_t  nCount = pGroup->m_aEntries.Count();
+
+    wxLogTrace(_T("wxFileConfig"),
+               _T("Removing %lu Entries"),
+               (unsigned long)nCount );
+
+    for ( size_t nEntry = 0; nEntry < nCount; nEntry++ )
+    {
+        wxFileConfigLineList    *pLine = pGroup->m_aEntries[nEntry]->GetLine();
+
+        if ( pLine != 0 )
+        {
+            wxLogTrace( _T("wxFileConfig"),
+                        _T("    '%s'"),
+                        pLine->Text().c_str() );
+            m_pConfig->LineListRemove(pLine);
         }
+    }
 
-        if ( pNewLast != NULL ) // found?
-          break;
-      }
+        // and subgroups of this subgroup
 
-      if ( pl == m_pLine ) {
-        wxASSERT( !pNewLast );  // how comes it has the same line as we?
+    nCount = pGroup->m_aSubgroups.Count();
 
-        // we've reached the group line without finding any subgroups
-        m_pLastGroup = NULL;
-      }
-      else
-        m_pLastGroup = pNewLast;
+    wxLogTrace( _T("wxFileConfig"),
+                _T("Removing %lu SubGroups"),
+                (unsigned long)nCount );
+
+    for ( size_t nGroup = 0; nGroup < nCount; nGroup++ )
+    {
+        pGroup->DeleteSubgroup(pGroup->m_aSubgroups[0]);
     }
 
-    m_pConfig->LineListRemove(pLine);
-  }
+        // finally the group itself
 
-  SetDirty();
+    wxFileConfigLineList    *pLine = pGroup->m_pLine;
 
-  m_aSubgroups.Remove(pGroup);
-  delete pGroup;
+    if ( pLine != 0 )
+    {
+        wxLogTrace( _T("wxFileConfig"),
+                    _T("  Removing line entry for Group '%s' : '%s'"),
+                    pGroup->Name().c_str(),
+                    pLine->Text().c_str() );
+        wxLogTrace( _T("wxFileConfig"),
+                    _T("  Removing from Group '%s' : '%s'"),
+                    Name().c_str(),
+                    ((m_pLine) ? m_pLine->Text().c_str() : wxEmptyString) );
+
+            // notice that we may do this test inside the previous "if"
+            // because the last entry's line is surely !NULL
+
+        if ( pGroup == m_pLastGroup )
+        {
+            wxLogTrace( _T("wxFileConfig"),
+                        _T("  ------- Removing last group -------") );
+
+                // our last entry is being deleted, so find the last one which stays.
+                // go back until we find a subgroup or reach the group's line, unless
+                // we are the root group, which we'll notice shortly.
+
+            wxFileConfigGroup       *pNewLast = 0;
+            size_t                   nSubgroups = m_aSubgroups.Count();
+            wxFileConfigLineList    *pl;
+
+            for ( pl = pLine->Prev(); pl != m_pLine; pl = pl->Prev() )
+            {
+                    // is it our subgroup?
+
+                for ( size_t n = 0; (pNewLast == 0) && (n < nSubgroups); n++ )
+                {
+                    // do _not_ call GetGroupLine! we don't want to add it to the local
+                    // file if it's not already there
+
+                    if ( m_aSubgroups[n]->m_pLine == m_pLine )
+                        pNewLast = m_aSubgroups[n];
+                }
+
+                if ( pNewLast != 0 ) // found?
+                    break;
+            }
+
+            if ( pl == m_pLine || m_pParent == 0 )
+            {
+                wxLogTrace( _T("wxFileConfig"),
+                            _T("  ------- No previous group found -------") );
+                
+                wxASSERT_MSG( !pNewLast || m_pLine == 0,
+                              _T("how comes it has the same line as we?") );
+
+                    // we've reached the group line without finding any subgroups,
+                    // or realised we removed the last group from the root.
+
+                m_pLastGroup = 0;
+            }
+            else
+            {
+                wxLogTrace( _T("wxFileConfig"),
+                            _T("  ------- Last Group set to '%s' -------"),
+                            pNewLast->Name().c_str() );
+
+                m_pLastGroup = pNewLast;
+            }
+        }
 
-  return TRUE;
+        m_pConfig->LineListRemove(pLine);
+    }
+    else
+    {
+        wxLogTrace( _T("wxFileConfig"),
+                    _T("  No line entry for Group '%s'?"),
+                    pGroup->Name().c_str() );
+    }
+
+    SetDirty();
+
+    m_aSubgroups.Remove(pGroup);
+    delete pGroup;
+
+    return TRUE;
 }
 
 bool wxFileConfigGroup::DeleteEntry(const wxChar *szName)
@@ -1566,47 +1762,54 @@ void wxFileConfigEntry::SetLine(wxFileConfigLineList *pLine)
 // entry from being marked as 'dirty'
 void wxFileConfigEntry::SetValue(const wxString& strValue, bool bUser)
 {
-  if ( bUser && IsImmutable() ) {
-    wxLogWarning(_("attempt to change immutable key '%s' ignored."),
-                 Name().c_str());
-    return;
-  }
+    if ( bUser && IsImmutable() )
+    {
+        wxLogWarning( _("attempt to change immutable key '%s' ignored."),
+                      Name().c_str());
+        return;
+    }
 
-  // do nothing if it's the same value: but don't test for it if m_bHasValue
-  // hadn't been set yet or we'd never write empty values to the file
-  if ( m_bHasValue && strValue == m_strValue )
-    return;
+        // do nothing if it's the same value: but don't test for it
+        // if m_bHasValue hadn't been set yet or we'd never write
+        // empty values to the file
 
-  m_bHasValue = TRUE;
-  m_strValue = strValue;
+    if ( m_bHasValue && strValue == m_strValue )
+        return;
 
-  if ( bUser ) {
-    wxString strValFiltered;
-    if ( Group()->Config()->GetStyle() & wxCONFIG_USE_NO_ESCAPE_CHARACTERS ) {
-        strValFiltered = strValue;
-    }
-    else {
-        strValFiltered = FilterOutValue(strValue);
-    }
+    m_bHasValue = TRUE;
+    m_strValue = strValue;
 
-    wxString strLine;
-    strLine << FilterOutEntryName(m_strName) << wxT('=') << strValFiltered;
+    if ( bUser )
+    {
+        wxString    strValFiltered;
 
-    if ( m_pLine != NULL ) {
-      // entry was read from the local config file, just modify the line
-      m_pLine->SetText(strLine);
-    }
-    else {
-      // add a new line to the file
-      wxASSERT( m_nLine == wxNOT_FOUND );   // consistency check
+        if ( Group()->Config()->GetStyle() & wxCONFIG_USE_NO_ESCAPE_CHARACTERS )
+        {
+            strValFiltered = strValue;
+        }
+        else {
+            strValFiltered = FilterOutValue(strValue);
+        }
 
-      m_pLine = Group()->Config()->LineListInsert(strLine,
-                                                  Group()->GetLastEntryLine());
-      Group()->SetLastEntry(this);
-    }
+        wxString    strLine;
+        strLine << FilterOutEntryName(m_strName) << wxT('=') << strValFiltered;
 
-    SetDirty();
-  }
+        if ( m_pLine != 0 )
+        {
+            // entry was read from the local config file, just modify the line
+            m_pLine->SetText(strLine);
+        }
+        else {
+            // add a new line to the file
+            wxASSERT( m_nLine == wxNOT_FOUND );   // consistency check
+
+            m_pLine = Group()->Config()->LineListInsert(strLine,
+                                                        Group()->GetLastEntryLine());
+            Group()->SetLastEntry(this);
+        }
+
+        SetDirty();
+    }
 }
 
 void wxFileConfigEntry::SetDirty()
@@ -1797,3 +2000,5 @@ static wxString GetAppName(const wxString& appName)
 
 #endif // wxUSE_CONFIG
 
+
+// vi:sts=4:sw=4:et
diff --git a/src/common/filefn.cpp b/src/common/filefn.cpp
index 935fa8608c..1056a66fad 100644
--- a/src/common/filefn.cpp
+++ b/src/common/filefn.cpp
@@ -105,7 +105,6 @@
     #include <unix.h>
 #endif
 
-#include "wx/setup.h"
 #include "wx/log.h"
 
 // No, Cygwin doesn't appear to have fnmatch.h after all.
@@ -124,7 +123,7 @@
         #ifdef __CYGWIN__
             #include <sys/cygwin.h>
         #endif
-        #include <wchar.h>
+
         #ifndef __TWIN32__
             #include <sys/unistd.h>
         #endif
@@ -283,7 +282,7 @@ wxString wxPathList::FindValidPath (const wxString& file)
   wxStrcpy(buf, wxFileFunctionsBuffer);
 
   wxChar *filename = (wxChar*) NULL; /* shut up buggy egcs warning */
-  filename = IsAbsolutePath (buf) ? wxFileNameFromPath (buf) : (wxChar *)buf;
+  filename = wxIsAbsolutePath (buf) ? wxFileNameFromPath (buf) : (wxChar *)buf;
 
   for (wxNode * node = First (); node; node = node->Next ())
     {
@@ -294,7 +293,7 @@ wxString wxPathList::FindValidPath (const wxString& file)
         wxStrcat (wxFileFunctionsBuffer, wxT("/"));
       wxStrcat (wxFileFunctionsBuffer, filename);
 #ifdef __WINDOWS__
-      Unix2DosFilename (wxFileFunctionsBuffer);
+      wxUnix2DosFilename (wxFileFunctionsBuffer);
 #endif
       if (wxFileExists (wxFileFunctionsBuffer))
       {
@@ -411,7 +410,7 @@ wxChar *wxRealPath (wxChar *path)
 {
 #ifdef __WXMSW__
   static const wxChar SEP = wxT('\\');
-  Unix2DosFilename(path);
+  wxUnix2DosFilename(path);
 #else
   static const wxChar SEP = wxT('/');
 #endif
@@ -464,7 +463,7 @@ wxChar *wxCopyAbsolutePath(const wxString& filename)
   if (filename == wxT(""))
     return (wxChar *) NULL;
 
-  if (! IsAbsolutePath(wxExpandPath(wxFileFunctionsBuffer, filename))) {
+  if (! wxIsAbsolutePath(wxExpandPath(wxFileFunctionsBuffer, filename))) {
     wxChar  buf[_MAXPATHLEN];
     buf[0] = wxT('\0');
     wxGetWorkingDirectory(buf, WXSIZEOF(buf));
@@ -667,7 +666,7 @@ wxContractPath (const wxString& filename, const wxString& envname, const wxStrin
 
   wxStrcpy (dest, WXSTRINGCAST filename);
 #ifdef __WXMSW__
-  Unix2DosFilename(dest);
+  wxUnix2DosFilename(dest);
 #endif
 
   // Handle environment
@@ -1070,7 +1069,7 @@ bool
 wxConcatFiles (const wxString& file1, const wxString& file2, const wxString& file3)
 {
   wxString outfile;
-  if ( !wxGetTempFileName("cat", outfile) )
+  if ( !wxGetTempFileName( wxT("cat"), outfile) )
       return FALSE;
 
   FILE *fp1 = (FILE *) NULL;
@@ -1626,7 +1625,7 @@ bool wxFindFileInPath(wxString *pStr, const wxChar *pszPath, const wxChar *pszFi
             strFile += wxFILE_SEP_PATH;
         strFile += pszFile;
 
-        if ( FileExists(strFile) ) {
+        if ( wxFileExists(strFile) ) {
             *pStr = strFile;
             break;
         }
@@ -1667,10 +1666,12 @@ time_t WXDLLEXPORT wxFileModificationTime(const wxString& filename)
 
 bool wxIsWild( const wxString& pattern )
 {
-  wxString tmp = pattern;
-  wxChar *pat = WXSTRINGCAST(tmp);
-    while (*pat) {
-        switch (*pat++) {
+    wxString tmp = pattern;
+    wxChar *pat = WXSTRINGCAST(tmp);
+    while (*pat) 
+    {
+        switch (*pat++) 
+        {
         case wxT('?'): case wxT('*'): case wxT('['): case wxT('{'):
             return TRUE;
         case wxT('\\'):
@@ -1679,160 +1680,135 @@ bool wxIsWild( const wxString& pattern )
         }
     }
     return FALSE;
-};
-
-bool wxMatchWild( const wxString& pat, const wxString& text, bool dot_special )
-
-#ifdef HAVE_FNMATCH
-{
-// this probably won't work well for multibyte chars in Unicode mode?
-   if(dot_special)
-      return fnmatch(pat.fn_str(), text.fn_str(), FNM_PERIOD) == 0;
-   else
-      return fnmatch(pat.fn_str(), text.fn_str(), 0) == 0;
 }
-#else // !HAVE_FNMATCH
 
-// #pragma error Broken implementation of wxMatchWild() -- needs fixing!
+/*
+* Written By Douglas A. Lewis <dalewis@cs.Buffalo.EDU>
+*
+* The match procedure is public domain code (from ircII's reg.c)
+*/
 
-   /*
-    * WARNING: this code is broken!
-    */
+bool wxMatchWild( const wxString& pat, const wxString& text, bool dot_special )
 {
-  wxString tmp1 = pat;
-  wxChar *pattern = WXSTRINGCAST(tmp1);
-  wxString tmp2 = text;
-  wxChar *str = WXSTRINGCAST(tmp2);
-    wxChar c;
-    wxChar *cp;
-    bool done = FALSE, ret_code, ok;
-    // Below is for vi fans
-    const wxChar OB = wxT('{'), CB = wxT('}');
-
-    // dot_special means '.' only matches '.'
-    if (dot_special && *str == wxT('.') && *pattern != *str)
-        return FALSE;
+        if (text.empty())
+        {
+                /* Match if both are empty. */
+                return pat.empty();
+        }
+        
+        const wxChar *m = pat.c_str(),
+        *n = text.c_str(),
+        *ma = NULL,
+        *na = NULL,
+        *mp = NULL,
+        *np = NULL;
+        int just = 0,
+        pcount = 0,
+        acount = 0,
+        count = 0;
+
+        if (dot_special && (*n == wxT('.')))
+        {
+                /* Never match so that hidden Unix files 
+                 * are never found. */
+                return FALSE;
+        }
 
-    while ((*pattern != wxT('\0')) && (!done)
-    && (((*str==wxT('\0'))&&((*pattern==OB)||(*pattern==wxT('*'))))||(*str!=wxT('\0')))) {
-        switch (*pattern) {
-        case wxT('\\'):
-            pattern++;
-            if (*pattern != wxT('\0'))
-                pattern++;
-            break;
-        case wxT('*'):
-            pattern++;
-            ret_code = FALSE;
-            while ((*str!=wxT('\0'))
-            && ((ret_code=wxMatchWild(pattern, str++, FALSE)) == 0))
-                /*loop*/;
-            if (ret_code) {
-                while (*str != wxT('\0'))
-                    str++;
-                while (*pattern != wxT('\0'))
-                    pattern++;
-            }
-            break;
-        case wxT('['):
-            pattern++;
-          repeat:
-            if ((*pattern == wxT('\0')) || (*pattern == wxT(']'))) {
-                done = TRUE;
-                break;
-            }
-            if (*pattern == wxT('\\')) {
-                pattern++;
-                if (*pattern == wxT('\0')) {
-                    done = TRUE;
-                    break;
-                }
-            }
-            if (*(pattern + 1) == wxT('-')) {
-                c = *pattern;
-                pattern += 2;
-                if (*pattern == wxT(']')) {
-                    done = TRUE;
-                    break;
-                }
-                if (*pattern == wxT('\\')) {
-                    pattern++;
-                    if (*pattern == wxT('\0')) {
-                        done = TRUE;
-                        break;
-                    }
-                }
-                if ((*str < c) || (*str > *pattern)) {
-                    pattern++;
-                    goto repeat;
+        for (;;)
+        {
+                if (*m == wxT('*'))
+                {
+                        ma = ++m;
+                        na = n;
+                        just = 1;
+                        mp = NULL;
+                        acount = count;
                 }
-            } else if (*pattern != *str) {
-                pattern++;
-                goto repeat;
-            }
-            pattern++;
-            while ((*pattern != wxT(']')) && (*pattern != wxT('\0'))) {
-                if ((*pattern == wxT('\\')) && (*(pattern + 1) != wxT('\0')))
-                    pattern++;
-                pattern++;
-            }
-            if (*pattern != wxT('\0')) {
-                pattern++, str++;
-            }
-            break;
-        case wxT('?'):
-            pattern++;
-            str++;
-            break;
-        case OB:
-            pattern++;
-            while ((*pattern != CB) && (*pattern != wxT('\0'))) {
-                cp = str;
-                ok = TRUE;
-                while (ok && (*cp != wxT('\0')) && (*pattern != wxT('\0'))
-                &&  (*pattern != wxT(',')) && (*pattern != CB)) {
-                    if (*pattern == wxT('\\'))
-                        pattern++;
-                    ok = (*pattern++ == *cp++);
+                else if (*m == wxT('?'))
+                {
+                        m++;
+                        if (!*n++)
+                        return FALSE;
                 }
-                if (*pattern == wxT('\0')) {
-                    ok = FALSE;
-                    done = TRUE;
-                    break;
-                } else if (ok) {
-                    str = cp;
-                    while ((*pattern != CB) && (*pattern != wxT('\0'))) {
-                        if (*++pattern == wxT('\\')) {
-                            if (*++pattern == CB)
-                                pattern++;
+                else
+                {
+                        if (*m == wxT('\\'))
+                        {
+                                m++;
+                                /* Quoting "nothing" is a bad thing */
+                                if (!*m)
+                                return FALSE;
                         }
-                    }
-                } else {
-                    while (*pattern!=CB && *pattern!=wxT(',') && *pattern!=wxT('\0')) {
-                        if (*++pattern == wxT('\\')) {
-                            if (*++pattern == CB || *pattern == wxT(','))
-                                pattern++;
+                        if (!*m)
+                        {
+                                /*
+                                * If we are out of both strings or we just
+                                * saw a wildcard, then we can say we have a
+                                * match
+                                */
+                                if (!*n)
+                                return TRUE;
+                                if (just)
+                                return TRUE;
+                                just = 0;
+                                goto not_matched;
+                        }
+                        /*
+                        * We could check for *n == NULL at this point, but
+                        * since it's more common to have a character there,
+                        * check to see if they match first (m and n) and
+                        * then if they don't match, THEN we can check for
+                        * the NULL of n
+                        */
+                        just = 0;
+                        if (*m == *n)
+                        {
+                                m++;
+                                if (*n == wxT(' '))
+                                mp = NULL;
+                                count++;
+                                n++;
+                        }
+                        else
+                        {
+
+                                not_matched:
+
+                                /*
+                                * If there are no more characters in the
+                                * string, but we still need to find another
+                                * character (*m != NULL), then it will be
+                                * impossible to match it
+                                */
+                                if (!*n)
+                                return FALSE;
+                                if (mp)
+                                {
+                                        m = mp;
+                                        if (*np == wxT(' '))
+                                        {
+                                                mp = NULL;
+                                                goto check_percent;
+                                        }
+                                        n = ++np;
+                                        count = pcount;
+                                }
+                                else
+                                check_percent:
+
+                                if (ma)
+                                {
+                                        m = ma;
+                                        n = ++na;
+                                        count = acount;
+                                }
+                                else
+                                return FALSE;
                         }
-                    }
                 }
-                if (*pattern != wxT('\0'))
-                    pattern++;
-            }
-            break;
-        default:
-            if (*str == *pattern) {
-                str++, pattern++;
-            } else {
-                done = TRUE;
-            }
         }
-    }
-    while (*pattern == wxT('*'))
-        pattern++;
-    return ((*str == wxT('\0')) && (*pattern == wxT('\0')));
-};
+}
 
-#endif // HAVE_FNMATCH/!HAVE_FNMATCH
 
 #ifdef __VISUALC__
     #pragma warning(default:4706)   // assignment within conditional expression
diff --git a/src/common/filename.cpp b/src/common/filename.cpp
index 70474e9b9e..f56ec3d5ef 100644
--- a/src/common/filename.cpp
+++ b/src/common/filename.cpp
@@ -646,7 +646,7 @@ wxFileName::CreateTempFileName(const wxString& prefix, wxFile *fileTemp)
     path += _T("XXXXXX");
 
     // we need to copy the path to the buffer in which mkstemp() can modify it
-    wxCharBuffer buf = wxConvFile.cWX2MB( path );
+    wxCharBuffer buf( wxConvFile.cWX2MB( path ) );
 
     // cast is safe because the string length doesn't change
     int fdTemp = mkstemp( (char*)(const char*) buf );
@@ -1022,7 +1022,7 @@ bool wxFileName::MakeRelativeTo(const wxString& pathBase, wxPathFormat format)
 // filename kind tests
 // ----------------------------------------------------------------------------
 
-bool wxFileName::SameAs(const wxFileName &filepath, wxPathFormat format)
+bool wxFileName::SameAs(const wxFileName& filepath, wxPathFormat format) const
 {
     wxFileName fn1 = *this,
                fn2 = filepath;
@@ -1616,7 +1616,36 @@ bool wxFileName::SetTimes(const wxDateTime *dtAccess,
                           const wxDateTime *dtMod,
                           const wxDateTime *dtCreate)
 {
-#if defined(__UNIX_LIKE__) || (defined(__DOS__) && defined(__WATCOMC__))
+#if defined(__WIN32__)
+    if ( IsDir() )
+    {
+        // VZ: please let me know how to do this if you can
+        wxFAIL_MSG( _T("SetTimes() not implemented for the directories") );
+    }
+    else // file
+    {
+        wxFileHandle fh(GetFullPath(), wxFileHandle::Write);
+        if ( fh.IsOk() )
+        {
+            FILETIME ftAccess, ftCreate, ftWrite;
+
+            if ( dtCreate )
+                ConvertWxToFileTime(&ftCreate, *dtCreate);
+            if ( dtAccess )
+                ConvertWxToFileTime(&ftAccess, *dtAccess);
+            if ( dtMod )
+                ConvertWxToFileTime(&ftWrite, *dtMod);
+
+            if ( ::SetFileTime(fh,
+                               dtCreate ? &ftCreate : NULL,
+                               dtAccess ? &ftAccess : NULL,
+                               dtMod ? &ftWrite : NULL) )
+            {
+                return TRUE;
+            }
+        }
+    }
+#elif defined(__UNIX_LIKE__) || (defined(__DOS__) && defined(__WATCOMC__))
     if ( !dtAccess && !dtMod )
     {
         // can't modify the creation time anyhow, don't try
@@ -1632,27 +1661,6 @@ bool wxFileName::SetTimes(const wxDateTime *dtAccess,
     {
         return TRUE;
     }
-#elif defined(__WIN32__)
-    wxFileHandle fh(GetFullPath(), wxFileHandle::Write);
-    if ( fh.IsOk() )
-    {
-        FILETIME ftAccess, ftCreate, ftWrite;
-
-        if ( dtCreate )
-            ConvertWxToFileTime(&ftCreate, *dtCreate);
-        if ( dtAccess )
-            ConvertWxToFileTime(&ftAccess, *dtAccess);
-        if ( dtMod )
-            ConvertWxToFileTime(&ftWrite, *dtMod);
-
-        if ( ::SetFileTime(fh,
-                           dtCreate ? &ftCreate : NULL,
-                           dtAccess ? &ftAccess : NULL,
-                           dtMod ? &ftWrite : NULL) )
-        {
-            return TRUE;
-        }
-    }
 #else // other platform
 #endif // platforms
 
@@ -1685,7 +1693,52 @@ bool wxFileName::GetTimes(wxDateTime *dtAccess,
                           wxDateTime *dtMod,
                           wxDateTime *dtCreate) const
 {
-#if defined(__UNIX_LIKE__) || defined(__WXMAC__) || (defined(__DOS__) && defined(__WATCOMC__))
+#if defined(__WIN32__)
+    // we must use different methods for the files and directories under
+    // Windows as CreateFile(GENERIC_READ) doesn't work for the directories and
+    // CreateFile(FILE_FLAG_BACKUP_SEMANTICS) works -- but only under NT and
+    // not 9x
+    bool ok;
+    FILETIME ftAccess, ftCreate, ftWrite;
+    if ( IsDir() )
+    {
+        // implemented in msw/dir.cpp
+        extern bool wxGetDirectoryTimes(const wxString& dirname,
+                                        FILETIME *, FILETIME *, FILETIME *);
+
+        // we should pass the path without the trailing separator to
+        // wxGetDirectoryTimes()
+        ok = wxGetDirectoryTimes(GetPath(wxPATH_GET_VOLUME),
+                                 &ftAccess, &ftCreate, &ftWrite);
+    }
+    else // file
+    {
+        wxFileHandle fh(GetFullPath(), wxFileHandle::Read);
+        if ( fh.IsOk() )
+        {
+            ok = ::GetFileTime(fh,
+                               dtCreate ? &ftCreate : NULL,
+                               dtAccess ? &ftAccess : NULL,
+                               dtMod ? &ftWrite : NULL) != 0;
+        }
+        else
+        {
+            ok = FALSE;
+        }
+    }
+
+    if ( ok )
+    {
+        if ( dtCreate )
+            ConvertFileTimeToWx(dtCreate, ftCreate);
+        if ( dtAccess )
+            ConvertFileTimeToWx(dtAccess, ftAccess);
+        if ( dtMod )
+            ConvertFileTimeToWx(dtMod, ftWrite);
+
+        return TRUE;
+    }
+#elif defined(__UNIX_LIKE__) || defined(__WXMAC__) || (defined(__DOS__) && defined(__WATCOMC__))
     wxStructStat stBuf;
     if ( wxStat( GetFullPath().c_str(), &stBuf) == 0 )
     {
@@ -1698,27 +1751,6 @@ bool wxFileName::GetTimes(wxDateTime *dtAccess,
 
         return TRUE;
     }
-#elif defined(__WIN32__)
-    wxFileHandle fh(GetFullPath(), wxFileHandle::Read);
-    if ( fh.IsOk() )
-    {
-        FILETIME ftAccess, ftCreate, ftWrite;
-
-        if ( ::GetFileTime(fh,
-                           dtCreate ? &ftCreate : NULL,
-                           dtAccess ? &ftAccess : NULL,
-                           dtMod ? &ftWrite : NULL) )
-        {
-            if ( dtCreate )
-                ConvertFileTimeToWx(dtCreate, ftCreate);
-            if ( dtAccess )
-                ConvertFileTimeToWx(dtAccess, ftAccess);
-            if ( dtMod )
-                ConvertFileTimeToWx(dtMod, ftWrite);
-
-            return TRUE;
-        }
-    }
 #else // other platform
 #endif // platforms
 
diff --git a/src/common/filesys.cpp b/src/common/filesys.cpp
index 93b65254dd..8e26b5d904 100644
--- a/src/common/filesys.cpp
+++ b/src/common/filesys.cpp
@@ -13,7 +13,7 @@
 
 #include "wx/wxprec.h"
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
@@ -173,7 +173,8 @@ wxFSFile* wxLocalFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString&
 {
     // location has Unix path separators
     wxString right = ms_root + GetRightLocation(location);
-    wxFileName fn(right, wxPATH_UNIX);
+    wxString nativePath = wxFileSystem::URLToNativePath(right);
+    wxFileName fn(nativePath, wxPATH_UNIX);
 
     if (!wxFileExists(fn.GetFullPath()))
         return (wxFSFile*) NULL;
@@ -417,7 +418,58 @@ void wxFileSystem::CleanUpHandlers()
     m_Handlers.Clear();
 }
 
+const static wxString g_unixPathString(wxT("/"));
+const static wxString g_nativePathString(wxFILE_SEP_PATH);
 
+// Returns the native path for a file URL
+wxString wxFileSystem::URLToNativePath( const wxString& url ) 
+{
+	wxString path = url ;
+
+	if ( path.Find(wxT("file://")) == 0 )
+	{
+		path = path.Mid(7) ;
+	}
+
+	// file urls either start with a forward slash (local harddisk),
+    // otherwise they have a servername/sharename notation,
+    // which only exists on msw and corresponds to a unc
+	if ( path[0u] == wxT('/') && path [1u] != wxT('/'))
+	{
+		path = path.Mid(1) ;
+	}
+#ifdef __WXMSW__
+	else if ( (url.Find(wxT("file://")) == 0) &&
+              (path.Find(wxT('/')) != wxNOT_FOUND) &&
+              (path.Length() > 1) && (path[1u] != wxT(':')) )
+	{
+		path = wxT("\\\\") + path ;
+	}
+#endif
+	path.Replace(g_unixPathString, g_nativePathString) ;
+
+	return path ;
+}
+
+// Returns the file URL for a native path
+wxString wxFileSystem::NativePathToURL( const wxString& path ) 
+{
+	wxString url = path ;
+#ifdef __WXMSW__
+	// unc notation
+	if ( url.Find(wxT("\\\\")) == 0 ) 
+	{
+		url = url.Mid(2) ;
+	}
+	else
+#endif
+	{
+		url = wxT("/") + url ;
+	}
+	url.Replace(g_nativePathString, g_unixPathString) ;
+	url = wxT("file://") + url ;
+	return url ;
+}
 
 
 ///// Module:
diff --git a/src/common/fontmap.cpp b/src/common/fontmap.cpp
index 6c591571f0..5e75f2f751 100644
--- a/src/common/fontmap.cpp
+++ b/src/common/fontmap.cpp
@@ -104,6 +104,7 @@ static wxFontEncoding gs_encodings[] =
     wxFONTENCODING_CP437,
     wxFONTENCODING_UTF7,
     wxFONTENCODING_UTF8,
+    wxFONTENCODING_EUC_JP,
 };
 
 // the descriptions for them
@@ -140,6 +141,7 @@ static const wxChar* gs_encodingDescs[] =
     wxTRANSLATE( "Windows/DOS OEM (CP 437)" ),
     wxTRANSLATE( "Unicode 7 bit (UTF-7)" ),
     wxTRANSLATE( "Unicode 8 bit (UTF-8)" ),
+    wxTRANSLATE( "Extended Unix Codepage for Japanese (EUC-JP)" ),
 };
 
 // and the internal names (these are not translated on purpose!)
@@ -176,8 +178,12 @@ static const wxChar* gs_encodingNames[] =
     wxT( "windows-437" ),
     wxT( "utf-7" ),
     wxT( "utf-8" ),
+    wxT( "euc-jp" ),
 };
 
+wxCOMPILE_TIME_ASSERT( WXSIZEOF(gs_encodingDescs) == WXSIZEOF(gs_encodings) &&
+                       WXSIZEOF(gs_encodingNames) == WXSIZEOF(gs_encodings),
+                       EncodingsArraysNotInSync );
 
 // ----------------------------------------------------------------------------
 // private classes
@@ -386,10 +392,7 @@ wxString wxFontMapper::GetEncodingDescription(wxFontEncoding encoding)
         return _("Default encoding");
     }
 
-    size_t count = WXSIZEOF(gs_encodingDescs);
-
-    wxASSERT_MSG( count == WXSIZEOF(gs_encodings),
-                  wxT("inconsitency detected - forgot to update one of the arrays?") );
+    const size_t count = WXSIZEOF(gs_encodingDescs);
 
     for ( size_t i = 0; i < count; i++ )
     {
@@ -413,10 +416,7 @@ wxString wxFontMapper::GetEncodingName(wxFontEncoding encoding)
         return _("default");
     }
 
-    size_t count = WXSIZEOF(gs_encodingNames);
-
-    wxASSERT_MSG( count == WXSIZEOF(gs_encodings),
-                  wxT("inconsistency detected - forgot to update one of the arrays?") );
+    const size_t count = WXSIZEOF(gs_encodingNames);
 
     for ( size_t i = 0; i < count; i++ )
     {
@@ -521,6 +521,25 @@ wxFontEncoding wxFontMapper::CharsetToEncoding(const wxString& charset,
         {
             encoding = wxFONTENCODING_UTF8;
         }
+        else if ( cs == wxT("GB2312") )
+        {
+            encoding = wxFONTENCODING_GB2312;
+        }
+        else if ( cs == wxT("BIG5") )
+        {
+            encoding = wxFONTENCODING_BIG5;
+        }
+        else if ( cs == wxT("SJIS") ||
+                  cs == wxT("SHIFT_JIS") ||
+                  cs == wxT("SHIFT-JIS") )
+        {
+            encoding = wxFONTENCODING_SHIFT_JIS;
+        }
+        else if ( cs == wxT("EUC-JP") ||
+                  cs == wxT("EUC_JP") )
+        {
+            encoding = wxFONTENCODING_EUC_JP;
+        }
         else if ( cs == wxT("KOI8-R") ||
                   cs == wxT("KOI8-U") ||
                   cs == wxT("KOI8-RU") )
@@ -537,10 +556,35 @@ wxFontEncoding wxFontMapper::CharsetToEncoding(const wxString& charset,
             const wxChar *p = cs.c_str() + 3;
             if ( *p == wxT('-') )
                 p++;
+                
+            // printf( "iso %s\n", (const char*) cs.ToAscii() );
 
             unsigned int value;
             if ( wxSscanf(p, wxT("8859-%u"), &value) == 1 )
             {
+                // printf( "value %d\n", (int)value );
+   
+                // make it 0 based and check that it is strictly positive in
+                // the process (no such thing as iso8859-0 encoding)
+                if ( (value-- > 0) &&
+                     (value < wxFONTENCODING_ISO8859_MAX -
+                              wxFONTENCODING_ISO8859_1) )
+                {
+                    // it's a valid ISO8859 encoding
+                    value += wxFONTENCODING_ISO8859_1;
+                    encoding = (wxFontEncoding)value;
+                }
+            }
+        }
+        else if ( cs.Left(4) == wxT("8859") )
+        {
+            const wxChar *p = cs.c_str();
+            
+            unsigned int value;
+            if ( wxSscanf(p, wxT("8859-%u"), &value) == 1 )
+            {
+                // printf( "value %d\n", (int)value );
+   
                 // make it 0 based and check that it is strictly positive in
                 // the process (no such thing as iso8859-0 encoding)
                 if ( (value-- > 0) &&
@@ -630,10 +674,7 @@ wxFontEncoding wxFontMapper::CharsetToEncoding(const wxString& charset,
         msg.Printf(_("The charset '%s' is unknown. You may select\nanother charset to replace it with or choose\n[Cancel] if it cannot be replaced"), charset.c_str());
 
         // the list of choices
-        size_t count = WXSIZEOF(gs_encodingDescs);
-
-        wxASSERT_MSG( count == WXSIZEOF(gs_encodings),
-                      wxT("inconsitency detected - forgot to update one of the arrays?") );
+        const size_t count = WXSIZEOF(gs_encodingDescs);
 
         wxString *encodingNamesTranslated = new wxString[count];
 
diff --git a/src/common/fs_inet.cpp b/src/common/fs_inet.cpp
index cba29271dc..5304925002 100644
--- a/src/common/fs_inet.cpp
+++ b/src/common/fs_inet.cpp
@@ -25,7 +25,7 @@ limitation)
 
 #include "wx/wxprec.h"
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
diff --git a/src/common/fs_mem.cpp b/src/common/fs_mem.cpp
index b3c156edd6..eca35ac6ff 100644
--- a/src/common/fs_mem.cpp
+++ b/src/common/fs_mem.cpp
@@ -13,7 +13,7 @@
 
 #include "wx/wxprec.h"
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
diff --git a/src/common/fs_zip.cpp b/src/common/fs_zip.cpp
index 97cfa0bb1b..18d421b7be 100644
--- a/src/common/fs_zip.cpp
+++ b/src/common/fs_zip.cpp
@@ -15,7 +15,7 @@
 
 #include "wx/wxprec.h"
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
@@ -89,8 +89,10 @@ wxFSFile* wxZipFSHandler::OpenFile(wxFileSystem& WXUNUSED(fs), const wxString& l
 
     if (right.GetChar(0) == wxT('/')) right = right.Mid(1);
 
-    s = new wxZipInputStream(left, right);
-    if (s && (s->LastError() == wxStream_NOERROR))
+    wxString leftFilename = wxFileSystem::URLToNativePath(left);
+
+    s = new wxZipInputStream(leftFilename, right);
+    if (s && s->IsOk() )
     {
         return new wxFSFile(s,
                             left + wxT("#zip:") + right,
@@ -179,8 +181,8 @@ wxString wxZipFSHandler::DoFind()
     while (match == wxEmptyString)
     {
         unzGetCurrentFileInfo((unzFile)m_Archive, NULL, namebuf, 1024, NULL, 0, NULL, 0);
-        for (c = namebuf; *c; c++) if (*c == wxT('\\')) *c = wxT('/');
-        namestr = namebuf;
+        for (c = namebuf; *c; c++) if (*c == '\\') *c = '/';
+        namestr = wxString::FromAscii( namebuf );    // TODO what encoding does ZIP use?
 
         if (m_AllowDirs)
         {
diff --git a/src/common/ftp.cpp b/src/common/ftp.cpp
index f3126b2f33..23dde41989 100644
--- a/src/common/ftp.cpp
+++ b/src/common/ftp.cpp
@@ -507,7 +507,7 @@ public:
     {
         delete m_i_socket;
 
-        if ( LastError() == wxStream_NOERROR )
+        if ( IsOk() )
         {
             // wait for "226 transfer completed"
             m_ftp->CheckResult('2');
diff --git a/src/common/gdicmn.cpp b/src/common/gdicmn.cpp
index 48925f3429..09222b21d4 100644
--- a/src/common/gdicmn.cpp
+++ b/src/common/gdicmn.cpp
@@ -364,7 +364,8 @@ wxColour *wxColourDatabase::FindColour(const wxString& colour)
 #ifdef __WXGTK__
   wxColour *col = new wxColour( colour );
 
-  if (!(col->Ok())) {
+  if (!(col->Ok()))
+  {
       delete col;
       return (wxColour *) NULL;
   }
@@ -382,7 +383,7 @@ wxColour *wxColourDatabase::FindColour(const wxString& colour)
     Display* display = (Display*) wxGetDisplay();
 #endif
     /* MATTHEW: [4] Use wxGetMainColormap */
-    if (!XParseColor(display, (Colormap) wxTheApp->GetMainColormap((WXDisplay*) display), colour,&xcolour))
+    if (!XParseColor(display, (Colormap) wxTheApp->GetMainColormap((WXDisplay*) display), colour.ToAscii() ,&xcolour))
       return NULL;
 
 #if wxUSE_NANOX
diff --git a/src/common/geometry.cpp b/src/common/geometry.cpp
index da7506b768..e10221ee8e 100644
--- a/src/common/geometry.cpp
+++ b/src/common/geometry.cpp
@@ -164,7 +164,7 @@ void wxPoint2DInt::ReadFrom( wxDataInputStream &stream )
     m_y = stream.Read32();
 }
 
-wxDouble wxPoint2DInt::GetVectorAngle()
+wxDouble wxPoint2DInt::GetVectorAngle() const
 {
     if ( m_x == 0 )
     {
diff --git a/src/common/imagbmp.cpp b/src/common/imagbmp.cpp
index 75e579a17b..010c34084a 100644
--- a/src/common/imagbmp.cpp
+++ b/src/common/imagbmp.cpp
@@ -608,7 +608,7 @@ bool wxBMPHandler::DoLoadDib(wxImage * image, int width, int height,
     for ( line = (height - 1); line >= 0; line-- )
     {
         int linepos = 0;
-        for ( column = 0; column < width; )
+        for ( column = 0; column < width ; )
         {
             if ( bpp < 16 )
             {
@@ -631,11 +631,70 @@ bool wxBMPHandler::DoLoadDib(wxImage * image, int width, int height,
                 {
                     if ( comp == BI_RLE4 )
                     {
-                        if ( verbose )
-                            wxLogError(_("DIB Header: Cannot deal with 4bit encoded yet."));
-                        image->Destroy();
-                        delete[] cmap;
-                        return FALSE;
+                        wxUint8 first;
+                        first = aByte;
+                        aByte = stream.GetC();
+                        if ( first == 0 )
+                        {
+                            if ( aByte == 0 )
+                            {
+                                if ( column > 0 )
+                                    column = width;
+                            }
+                            else if ( aByte == 1 )
+                            {
+                                column = width;
+                                line = -1;
+                            }
+                            else if ( aByte == 2 )
+                            {
+                                aByte = stream.GetC();
+                                column += aByte;
+                                linepos = column * bpp / 4;
+                                aByte = stream.GetC();
+                                line -= aByte; // upside down
+                            }
+                            else
+                            {
+                                int absolute = aByte;
+                                wxUint8 nibble[2] ;
+                                int readBytes = 0 ;
+                                for (int k = 0; k < absolute; k++)
+                                {
+                                    if ( !(k % 2 ) )
+                                    {
+                                        ++readBytes ;
+                                        aByte = stream.GetC();
+                                        nibble[0] = ( (aByte & 0xF0) >> 4 ) ;
+                                        nibble[1] = ( aByte & 0x0F ) ;
+                                    }
+                                    ptr[poffset    ] = cmap[nibble[k%2]].r;
+                                    ptr[poffset + 1] = cmap[nibble[k%2]].g;
+                                    ptr[poffset + 2] = cmap[nibble[k%2]].b;
+                                    column++;
+                                    if ( k % 2 )
+                                        linepos++;
+                                }
+                                if ( readBytes & 0x01 )
+                                    aByte = stream.GetC();
+                            }
+                        }
+                        else
+                        {
+                            wxUint8 nibble[2] ;
+                            nibble[0] = ( (aByte & 0xF0) >> 4 ) ;
+                            nibble[1] = ( aByte & 0x0F ) ;
+
+                            for ( int l = 0; l < first && column < width; l++ )
+                            {
+                                ptr[poffset    ] = cmap[nibble[l%2]].r;
+                                ptr[poffset + 1] = cmap[nibble[l%2]].g;
+                                ptr[poffset + 2] = cmap[nibble[l%2]].b;
+                                column++;
+                                if ( l % 2 )
+                                    linepos++;
+                            }
+                        }
                     }
                     else
                     {
@@ -715,63 +774,64 @@ bool wxBMPHandler::DoLoadDib(wxImage * image, int width, int height,
                         // linepos += size;    seems to be wrong, RR
                     }
                 }
-               }
-               else if ( bpp == 24 )
-               {
-                   stream.Read(bbuf, 3);
-                   linepos += 3;
-                   ptr[poffset    ] = (unsigned char)bbuf[2];
-                   ptr[poffset + 1] = (unsigned char)bbuf[1];
-                   ptr[poffset + 2] = (unsigned char)bbuf[0];
-                   column++;
-               }
-               else if ( bpp == 16 )
-               {
-                   unsigned char temp;
-                   stream.Read(&aWord, 2);
-                   aWord = wxUINT16_SWAP_ON_BE(aWord);
-                   linepos += 2;
-                   /* use the masks and calculated amonut of shift
+            }
+            else if ( bpp == 24 )
+            {
+                stream.Read(bbuf, 3);
+                linepos += 3;
+                ptr[poffset    ] = (unsigned char)bbuf[2];
+                ptr[poffset + 1] = (unsigned char)bbuf[1];
+                ptr[poffset + 2] = (unsigned char)bbuf[0];
+                column++;
+            }
+            else if ( bpp == 16 )
+            {
+                unsigned char temp;
+                stream.Read(&aWord, 2);
+                aWord = wxUINT16_SWAP_ON_BE(aWord);
+                linepos += 2;
+                /* use the masks and calculated amonut of shift
                    to retrieve the color data out of the word.  Then
                    shift it left by (8 - number of bits) such that
                    the image has the proper dynamic range */
-                   temp = (aWord & rmask) >> rshift << (8-rbits);
-                   ptr[poffset] = temp;
-                   temp = (aWord & gmask) >> gshift << (8-gbits);
-                   ptr[poffset + 1] = temp;
-                   temp = (aWord & bmask) >> bshift << (8-bbits);
-                   ptr[poffset + 2] = temp;
-                   column++;
-               }
-               else
-               {
-                   unsigned char temp;
-                   stream.Read(&aDword, 4);
-                   aDword = wxINT32_SWAP_ON_BE(aDword);
-                   linepos += 4;
-                   temp = (aDword & rmask) >> rshift;
-                   ptr[poffset] = temp;
-                   temp = (aDword & gmask) >> gshift;
-                   ptr[poffset + 1] = temp;
-                   temp = (aDword & bmask) >> bshift;
-                   ptr[poffset + 2] = temp;
-                   column++;
-               }
-          }
-          while ( (linepos < linesize) && (comp != 1) && (comp != 2) )
-          {
-              stream.Read(&aByte, 1);
-              linepos += 1;
-              if ( stream.LastError() != wxStream_NOERROR )
-                  break;
-          }
-     }
-     if (cmap)
-       delete[] cmap;
-
-     image->SetMask(FALSE);
-
-    return ( stream.LastError() == wxSTREAM_NO_ERROR || stream.LastError() == wxSTREAM_EOF );
+                temp = (aWord & rmask) >> rshift << (8-rbits);
+                ptr[poffset] = temp;
+                temp = (aWord & gmask) >> gshift << (8-gbits);
+                ptr[poffset + 1] = temp;
+                temp = (aWord & bmask) >> bshift << (8-bbits);
+                ptr[poffset + 2] = temp;
+                column++;
+            }
+            else
+            {
+                unsigned char temp;
+                stream.Read(&aDword, 4);
+                aDword = wxINT32_SWAP_ON_BE(aDword);
+                linepos += 4;
+                temp = (aDword & rmask) >> rshift;
+                ptr[poffset] = temp;
+                temp = (aDword & gmask) >> gshift;
+                ptr[poffset + 1] = temp;
+                temp = (aDword & bmask) >> bshift;
+                ptr[poffset + 2] = temp;
+                column++;
+            }
+        }
+        while ( (linepos < linesize) && (comp != 1) && (comp != 2) )
+        {
+            stream.Read(&aByte, 1);
+            linepos += 1;
+            if ( !stream )
+                break;
+        }
+    }
+
+    delete[] cmap;
+
+    image->SetMask(FALSE);
+
+    const wxStreamError err = stream.GetLastError();
+    return err == wxSTREAM_NO_ERROR || err == wxSTREAM_EOF;
 }
 
 bool wxBMPHandler::LoadDib(wxImage *image, wxInputStream& stream,
@@ -1219,7 +1279,7 @@ int wxICOHandler::GetImageCount(wxInputStream& stream)
 
 bool wxICOHandler::DoCanRead(wxInputStream& stream)
 {
-    stream.SeekI(0);   
+    stream.SeekI(0);
     unsigned char hdr[4];
     if ( !stream.Read(hdr, WXSIZEOF(hdr)) )
         return FALSE;
@@ -1258,14 +1318,13 @@ bool wxANIHandler::LoadFile(wxImage *image, wxInputStream& stream,
 {
     wxInt32 FCC1, FCC2;
     wxUint32 datalen;
-    static const char *rifftxt = "RIFF";
-    static const char *listtxt = "LIST";
-    static const char *icotxt  = "icon";
-
-    wxInt32 riff32 = (wxInt32) rifftxt;
-    wxInt32 list32 = (wxInt32) listtxt;
-    wxInt32 ico32  = (wxInt32) icotxt;
 
+    wxInt32 riff32;
+    memcpy( &riff32, "RIFF", 4 );
+    wxInt32 list32;
+    memcpy( &list32, "LIST", 4 );
+    wxInt32 ico32;
+    memcpy( &ico32, "icon", 4 );
     int iIcon = 0;
 
     stream.SeekI(0);
@@ -1310,14 +1369,16 @@ bool wxANIHandler::DoCanRead(wxInputStream& stream)
 {
     wxInt32 FCC1, FCC2;
     wxUint32 datalen ;
-    static const char *rifftxt = "RIFF";
-    static const char *listtxt = "LIST";
-    static const char *anihtxt = "anih";
-
-    wxInt32 riff32 = (wxInt32) rifftxt;
-    wxInt32 list32 = (wxInt32) listtxt;
-    wxInt32 anih32 = (wxInt32) anihtxt;
-
+    
+    wxInt32 riff32;
+    memcpy( &riff32, "RIFF", 4 );
+    wxInt32 list32;
+    memcpy( &list32, "LIST", 4 );
+    wxInt32 ico32;
+    memcpy( &ico32, "icon", 4 ); 
+    wxInt32 anih32;
+    memcpy( &anih32, "anih", 4 );
+    
     stream.SeekI(0);
     if ( !stream.Read(&FCC1, 4) )
         return FALSE;
@@ -1360,14 +1421,16 @@ int wxANIHandler::GetImageCount(wxInputStream& stream)
 {
     wxInt32 FCC1, FCC2;
     wxUint32 datalen ;
-    static const char *rifftxt = "RIFF";
-    static const char *listtxt = "LIST";
-    static const char *anihtxt = "anih";
-
-    wxInt32 riff32 = (wxInt32) rifftxt;
-    wxInt32 list32 = (wxInt32) listtxt;
-    wxInt32 anih32 = (wxInt32) anihtxt;
 
+    wxInt32 riff32;
+    memcpy( &riff32, "RIFF", 4 );
+    wxInt32 list32;
+    memcpy( &list32, "LIST", 4 );
+    wxInt32 ico32;
+    memcpy( &ico32, "icon", 4 );
+    wxInt32 anih32;
+    memcpy( &anih32, "anih", 4 );
+    
     stream.SeekI(0);
     stream.Read(&FCC1, 4);
     if ( FCC1 != riff32 )
diff --git a/src/common/image.cpp b/src/common/image.cpp
index 3241ed03cd..08b7f9c4d8 100644
--- a/src/common/image.cpp
+++ b/src/common/image.cpp
@@ -964,7 +964,7 @@ bool wxImage::SaveFile( const wxString& filename, int type ) const
 
     wxFileOutputStream stream(filename);
 
-    if ( stream.LastError() == wxStream_NOERROR )
+    if ( stream.IsOk() )
     {
         wxBufferedOutputStream bstream( stream );
         return SaveFile(bstream, type);
@@ -981,7 +981,7 @@ bool wxImage::SaveFile( const wxString& filename, const wxString& mimetype ) con
 
     wxFileOutputStream stream(filename);
 
-    if ( stream.LastError() == wxStream_NOERROR )
+    if ( stream.IsOk() )
     {
         wxBufferedOutputStream bstream( stream );
         return SaveFile(bstream, mimetype);
@@ -1092,7 +1092,7 @@ bool wxImage::LoadFile( wxInputStream& stream, long type, int index )
 
     handler = FindHandler(type);
 
-    if (handler == NULL)
+    if (handler == 0)
     {
         wxLogWarning( _("No image handler for type %d defined."), type );
 
@@ -1110,7 +1110,7 @@ bool wxImage::LoadFile( wxInputStream& stream, const wxString& mimetype, int ind
 
     wxImageHandler *handler = FindHandlerMime(mimetype);
 
-    if (handler == NULL)
+    if (handler == 0)
     {
         wxLogWarning( _("No image handler for type %s defined."), mimetype.GetData() );
 
@@ -1126,7 +1126,7 @@ bool wxImage::SaveFile( wxOutputStream& stream, int type ) const
 
     wxImageHandler *handler = FindHandler(type);
 
-    if (handler == NULL)
+    if (handler == 0)
     {
         wxLogWarning( _("No image handler for type %d defined."), type );
 
@@ -1142,7 +1142,7 @@ bool wxImage::SaveFile( wxOutputStream& stream, const wxString& mimetype ) const
 
     wxImageHandler *handler = FindHandlerMime(mimetype);
 
-    if (handler == NULL)
+    if (handler == 0)
     {
         wxLogWarning( _("No image handler for type %s defined."), mimetype.GetData() );
 
@@ -1158,7 +1158,23 @@ void wxImage::AddHandler( wxImageHandler *handler )
     // make sure that the memory will be freed at the program end
     sm_handlers.DeleteContents(TRUE);
 
-    sm_handlers.Append( handler );
+    // Check for an existing handler of the type being added.
+    if (FindHandler( handler->GetType() ) == 0)
+    {
+        sm_handlers.Append( handler );
+    }
+    else
+    {
+        // This is not documented behaviour, merely the simplest 'fix'
+        // for preventing duplicate additions.  If someone ever has
+        // a good reason to add and remove duplicate handlers (and they
+        // may) we should probably refcount the duplicates.
+        //   also an issue in InsertHandler below.
+
+        wxLogDebug( _T("Adding duplicate image handler for '%s'"),
+                    handler->GetName().c_str() );
+        delete handler;
+    }
 }
 
 void wxImage::InsertHandler( wxImageHandler *handler )
@@ -1166,7 +1182,18 @@ void wxImage::InsertHandler( wxImageHandler *handler )
     // make sure that the memory will be freed at the program end
     sm_handlers.DeleteContents(TRUE);
 
-    sm_handlers.Insert( handler );
+    // Check for an existing handler of the type being added.
+    if (FindHandler( handler->GetType() ) == 0)
+    {
+        sm_handlers.Insert( handler );
+    }
+    else
+    {
+        // see AddHandler for additional comments.
+        wxLogDebug( _T("Inserting duplicate image handler for '%s'"),
+                    handler->GetName().c_str() );
+        delete handler;
+    }
 }
 
 bool wxImage::RemoveHandler( const wxString& name )
@@ -1191,7 +1218,7 @@ wxImageHandler *wxImage::FindHandler( const wxString& name )
 
         node = node->Next();
     }
-    return (wxImageHandler *)NULL;
+    return 0;
 }
 
 wxImageHandler *wxImage::FindHandler( const wxString& extension, long bitmapType )
@@ -1205,7 +1232,7 @@ wxImageHandler *wxImage::FindHandler( const wxString& extension, long bitmapType
             return handler;
         node = node->Next();
     }
-    return (wxImageHandler*)NULL;
+    return 0;
 }
 
 wxImageHandler *wxImage::FindHandler( long bitmapType )
@@ -1217,7 +1244,7 @@ wxImageHandler *wxImage::FindHandler( long bitmapType )
         if (handler->GetType() == bitmapType) return handler;
         node = node->Next();
     }
-    return NULL;
+    return 0;
 }
 
 wxImageHandler *wxImage::FindHandlerMime( const wxString& mimetype )
@@ -1229,7 +1256,7 @@ wxImageHandler *wxImage::FindHandlerMime( const wxString& mimetype )
         if (handler->GetMimeType().IsSameAs(mimetype, FALSE)) return handler;
         node = node->Next();
     }
-    return NULL;
+    return 0;
 }
 
 void wxImage::InitStandardHandlers()
@@ -1319,7 +1346,7 @@ bool wxImageHandler::CallDoCanRead(wxInputStream& stream)
 
 
 //-----------------------------------------------------------------------------
-// Deprecated wxBitmap convertion routines
+// Deprecated wxBitmap conversion routines
 //-----------------------------------------------------------------------------
 
 #if WXWIN_COMPATIBILITY_2_2 && wxUSE_GUI
diff --git a/src/common/imagpng.cpp b/src/common/imagpng.cpp
index b1fea3c1fe..7e33316411 100644
--- a/src/common/imagpng.cpp
+++ b/src/common/imagpng.cpp
@@ -111,8 +111,8 @@ void
 PNGLINKAGEMODE wx_png_error(png_structp png_ptr, png_const_charp message)
 {
     wxPNGInfoStruct *info = WX_PNG_INFO(png_ptr);
-    if ( info->verbose )
-        wxLogError(wxString(message));
+    if (info->verbose)
+        wxLogError( wxString::FromAscii(message) );
 
 #ifdef USE_FAR_KEYWORD
     {
@@ -129,8 +129,8 @@ void
 PNGLINKAGEMODE wx_png_warning(png_structp png_ptr, png_const_charp message)
 {
     wxPNGInfoStruct *info = WX_PNG_INFO(png_ptr);
-    if ( info->verbose )
-        wxLogWarning(wxString(message));
+    if (info->verbose)
+        wxLogWarning( wxString::FromAscii(message) );
 }
 
 } // extern "C"
@@ -188,6 +188,10 @@ bool wxPNGHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbose
     if (color_type == PNG_COLOR_TYPE_PALETTE)
         png_set_expand( png_ptr );
 
+    // Fix for Bug [ 439207 ] Monochrome PNG images come up black
+    if (bit_depth < 8)
+        png_set_expand( png_ptr );
+
     png_set_strip_16( png_ptr );
     png_set_packing( png_ptr );
     if (png_get_valid( png_ptr, info_ptr, PNG_INFO_tRNS))
diff --git a/src/common/imagpnm.cpp b/src/common/imagpnm.cpp
index a11007de33..984de04ca4 100644
--- a/src/common/imagpnm.cpp
+++ b/src/common/imagpnm.cpp
@@ -39,12 +39,12 @@ IMPLEMENT_DYNAMIC_CLASS(wxPNMHandler,wxImageHandler)
 
 void Skip_Comment(wxInputStream &stream)
 {
-  wxTextInputStream text_stream(stream);
+    wxTextInputStream text_stream(stream);
 
-  if (stream.Peek()==wxT('#'))
+    if (stream.Peek()==wxT('#'))
     {
-      text_stream.ReadLine();
-      Skip_Comment(stream);
+        text_stream.ReadLine();
+        Skip_Comment(stream);
     }
 }
 
@@ -107,7 +107,7 @@ bool wxPNMHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbose
             value=text_stream.Read32();
             *ptr++=(unsigned char)value;
 
-            if (buf_stream.LastError()!=wxSTREAM_NOERROR)
+            if ( !buf_stream )
               {
                 if (verbose) wxLogError(_("PNM: File seems truncated."));
                 return FALSE;
@@ -119,7 +119,8 @@ bool wxPNMHandler::LoadFile( wxImage *image, wxInputStream& stream, bool verbose
 
     image->SetMask( FALSE );
 
-    return (buf_stream.LastError()==wxStream_NOERROR || buf_stream.LastError()==wxStream_EOF);
+    const wxStreamError err = buf_stream.GetLastError();
+    return err == wxSTREAM_NO_ERROR || err == wxSTREAM_EOF;
 }
 
 bool wxPNMHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool WXUNUSED(verbose) )
@@ -129,10 +130,10 @@ bool wxPNMHandler::SaveFile( wxImage *image, wxOutputStream& stream, bool WXUNUS
     //text_stream << "P6" << endl
     //<< image->GetWidth() << " " << image->GetHeight() << endl
     //<< "255" << endl;
-    text_stream << "P6\n" << image->GetWidth() << " " << image->GetHeight() << "\n255\n";
+    text_stream << wxT("P6\n") << image->GetWidth() << wxT(" ") << image->GetHeight() << wxT("\n255\n");
     stream.Write(image->GetData(),3*image->GetWidth()*image->GetHeight());
 
-    return (stream.LastError()==wxStream_NOERROR);
+    return stream.IsOk();
 }
 
 bool wxPNMHandler::DoCanRead( wxInputStream& stream )
diff --git a/src/common/imagxpm.cpp b/src/common/imagxpm.cpp
index c6ad6d6aa1..485aa239c0 100644
--- a/src/common/imagxpm.cpp
+++ b/src/common/imagxpm.cpp
@@ -107,6 +107,19 @@ bool wxXPMHandler::LoadFile(wxImage *image,
     return TRUE;
 }
 
+
+static char hexArray[] = "0123456789ABCDEF";
+
+static void DecToHex(int dec, char *buf)
+{
+    int firstDigit = (int)(dec/16.0);
+    int secondDigit = (int)(dec - (firstDigit*16.0));
+    buf[0] = hexArray[firstDigit];
+    buf[1] = hexArray[secondDigit];
+    buf[2] = 0;
+}
+
+
 bool wxXPMHandler::SaveFile(wxImage * image,
                             wxOutputStream& stream, bool WXUNUSED(verbose))
 {
@@ -140,7 +153,7 @@ bool wxXPMHandler::SaveFile(wxImage * image,
         sName = wxString(wxT("/* XPM */\nstatic char *")) + sName;
     else 
         sName = wxT("/* XPM */\nstatic char *xpm_data");
-    stream.Write(sName.c_str(), sName.Len());
+    stream.Write( (const char*) sName.ToAscii(), sName.Len() );
 
     char tmpbuf[200];
     // VS: 200b is safe upper bound for anything produced by sprintf below
@@ -185,19 +198,24 @@ bool wxXPMHandler::SaveFile(wxImage * image,
         unsigned long key = entry->first;
 
         if (key == 0)
-            tmp.Printf(wxT("\"%s c Black\",\n"), sym);
+            sprintf( tmpbuf, "\"%s c Black\",\n", sym);
         else if (key == mask_key)
-            tmp.Printf(wxT("\"%s c None\",\n"), sym);
+            sprintf( tmpbuf, "\"%s c None\",\n", sym);
         else
-            tmp.Printf(wxT("\"%s c #%s%s%s\",\n"), sym,
-                       wxDecToHex((unsigned char)(key >> 16)).c_str(),
-                       wxDecToHex((unsigned char)(key >> 8)).c_str(),
-                       wxDecToHex((unsigned char)(key)).c_str());
-        stream.Write(tmp.mb_str(), tmp.Length());
+        {
+            char rbuf[3];
+            DecToHex( (unsigned char)(key >> 16), rbuf );
+            char gbuf[3];
+            DecToHex( (unsigned char)(key >> 8), gbuf );
+            char bbuf[3];
+            DecToHex( (unsigned char)(key), bbuf );
+            sprintf( tmpbuf, "\"%s c #%s%s%s\",\n", sym, rbuf, gbuf, bbuf );
+        }
+        stream.Write( tmpbuf, strlen(tmpbuf) );
     }
 
     tmp = wxT("/* pixels */\n");
-    stream.Write(tmp.mb_str(), tmp.Length());
+    stream.Write( (const char*) tmp.ToAscii(), tmp.Length() );
 
     unsigned char *data = image->GetData();
     for (j = 0; j < image->GetHeight(); j++)
@@ -216,7 +234,7 @@ bool wxXPMHandler::SaveFile(wxImage * image,
         tmp_c = '\n'; stream.Write(&tmp_c, 1);
     }
     tmp = wxT("};\n");
-    stream.Write(tmp.mb_str(), 3);
+    stream.Write( (const char*) tmp.ToAscii(), 3 );
 
     // Clean up:
     delete[] symbols;
diff --git a/src/common/intl.cpp b/src/common/intl.cpp
index 3b26983d77..c6fa2cea1a 100644
--- a/src/common/intl.cpp
+++ b/src/common/intl.cpp
@@ -506,7 +506,7 @@ wxString wxMsgCatalogFile::GetCharset() const
         return wxEmptyString;
     }
 
-    wxString header(StringAtOfs(m_pTransTable, 0));
+    wxString header = wxString::FromAscii( StringAtOfs(m_pTransTable, 0));
     wxString charset;
     int pos = header.Find(wxT("Content-Type: text/plain; charset="));
     if ( pos == wxNOT_FOUND )
@@ -666,7 +666,6 @@ bool wxLocale::Init(int language, int flags)
     wxString name = info->Description;
     wxString canonical = info->CanonicalName;
     wxString locale;
-    const wxChar *retloc;
 
     // Set the locale:
 #if defined(__UNIX__) && !defined(__WXMAC__)
@@ -675,48 +674,55 @@ bool wxLocale::Init(int language, int flags)
     else
         locale = info->CanonicalName;
 
-    retloc = wxSetlocale(LC_ALL, locale);
+    wxMB2WXbuf retloc = wxSetlocale(LC_ALL, locale);
 
-    if (retloc == NULL)
+    if ( !retloc )
     {
         // Some C libraries don't like xx_YY form and require xx only
         retloc = wxSetlocale(LC_ALL, locale.Mid(0,2));
     }
-    if (retloc == NULL)
+    if ( !retloc )
     {
         // Some C libraries (namely glibc) still use old ISO 639,
         // so will translate the abbrev for them
         wxString mid = locale.Mid(0,2);
-        if (mid == wxT("he")) locale = wxT("iw") + locale.Mid(3);
-        else if (mid == wxT("id")) locale = wxT("in") + locale.Mid(3);
-        else if (mid == wxT("yi")) locale = wxT("ji") + locale.Mid(3);
+        if (mid == wxT("he"))
+            locale = wxT("iw") + locale.Mid(3);
+        else if (mid == wxT("id"))
+            locale = wxT("in") + locale.Mid(3);
+        else if (mid == wxT("yi"))
+            locale = wxT("ji") + locale.Mid(3);
+
         retloc = wxSetlocale(LC_ALL, locale);
     }
-    if (retloc == NULL)
+    if ( !retloc )
     {
         // (This time, we changed locale in previous if-branch, so try again.)
         // Some C libraries don't like xx_YY form and require xx only
         retloc = wxSetlocale(LC_ALL, locale.Mid(0,2));
     }
-    if (retloc == NULL)
+    if ( !retloc )
     {
         wxLogError(wxT("Cannot set locale to '%s'."), locale.c_str());
         return FALSE;
     }
 #elif defined(__WIN32__)
+    wxMB2WXbuf retloc = wxT("C");
     if (language != wxLANGUAGE_DEFAULT)
     {
         if (info->WinLang == 0)
         {
             wxLogWarning(wxT("Locale '%s' not supported by OS."), name.c_str());
-            retloc = wxT("C");
+            // retloc already set to "C"
         }
         else
         {
             wxUint32 lcid = MAKELCID(MAKELANGID(info->WinLang, info->WinSublang),
                                      SORT_DEFAULT);
             if (SetThreadLocale(lcid))
+            {
                 retloc = wxSetlocale(LC_ALL, wxEmptyString);
+            }
             else
             {
                 // Windows9X doesn't support SetThreadLocale, so we must
@@ -738,25 +744,29 @@ bool wxLocale::Init(int language, int flags)
                     return FALSE;
                 }
                 else
+                {
                     retloc = wxSetlocale(LC_ALL, locale);
+                }
             }
         }
     }
     else
+    {
         retloc = wxSetlocale(LC_ALL, wxEmptyString);
+    }
 
-    if (retloc == NULL)
+    if ( !retloc )
     {
         wxLogError(wxT("Cannot set locale to language %s."), name.c_str());
         return FALSE;
     }
-#elif defined(__WXMAC__)
-    retloc = wxSetlocale(LC_ALL , wxEmptyString);
+#elif defined(__WXMAC__) || defined(__WXPM__)
+    wxMB2WXbuf retloc = wxSetlocale(LC_ALL , wxEmptyString);
 #else
     return FALSE;
 #endif
 
-    return Init(name, canonical, wxString(retloc),
+    return Init(name, canonical, retloc,
                 (flags & wxLOCALE_LOAD_DEFAULT) != 0,
                 (flags & wxLOCALE_CONV_ENCODING) != 0);
 }
@@ -1334,6 +1344,17 @@ wxFontEncoding wxLocale::GetSystemEncoding()
         wxFontEncoding enc = wxFontMapper::Get()->
             CharsetToEncoding(encname, FALSE /* not interactive */);
 
+        // on some modern Linux systems (RedHat 8) the default system locale
+        // is UTF8 -- but it isn't supported by wxGTK in ANSI build at all so
+        // don't even try to use it in this case
+#if !wxUSE_UNICODE
+        if ( enc == wxFONTENCODING_UTF8 )
+        {
+            // the most similar supported encoding...
+            enc = wxFONTENCODING_ISO8859_1;
+        }
+#endif // !wxUSE_UNICODE
+
         // this should probably be considered as a bug in CharsetToEncoding():
         // it shouldn't return wxFONTENCODING_DEFAULT at all - but it does it
         // for US-ASCII charset
@@ -2095,7 +2116,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxLocaleModule, wxModule)
 #define LNG(wxlang, canonical, winlang, winsublang, desc) \
     info.Language = wxlang;                               \
     info.CanonicalName = wxT(canonical);                  \
-    info.Description = desc;                              \
+    info.Description = wxT(desc);                         \
     SETWINLANG(info, winlang, winsublang)                 \
     AddLanguage(info);
 
@@ -2151,7 +2172,7 @@ void wxLocale::InitLanguagesDB()
    LNG(wxLANGUAGE_CHINESE_HONGKONG,           "zh_HK", LANG_CHINESE   , SUBLANG_CHINESE_HONGKONG          , "Chinese (Hongkong)")
    LNG(wxLANGUAGE_CHINESE_MACAU,              "zh_MO", LANG_CHINESE   , SUBLANG_CHINESE_MACAU             , "Chinese (Macau)")
    LNG(wxLANGUAGE_CHINESE_SINGAPORE,          "zh_SG", LANG_CHINESE   , SUBLANG_CHINESE_SINGAPORE         , "Chinese (Singapore)")
-   LNG(wxLANGUAGE_CHINESE_TAIWAN,             "zh_TW", 0              , 0                                 , "Chinese (Taiwan)")
+   LNG(wxLANGUAGE_CHINESE_TAIWAN,             "zh_TW", LANG_CHINESE   , SUBLANG_CHINESE_TRADITIONAL       , "Chinese (Taiwan)")
    LNG(wxLANGUAGE_CORSICAN,                   "co"   , 0              , 0                                 , "Corsican")
    LNG(wxLANGUAGE_CROATIAN,                   "hr_HR", LANG_CROATIAN  , SUBLANG_DEFAULT                   , "Croatian")
    LNG(wxLANGUAGE_CZECH,                      "cs_CZ", LANG_CZECH     , SUBLANG_DEFAULT                   , "Czech")
diff --git a/src/common/log.cpp b/src/common/log.cpp
index b577f27aef..6e66555323 100644
--- a/src/common/log.cpp
+++ b/src/common/log.cpp
@@ -509,9 +509,8 @@ wxLogStderr::wxLogStderr(FILE *fp)
         m_fp = fp;
 }
 
-#if defined(__WXMAC__) && !defined(__DARWIN__) && (__MWERKS__ > 0x5300)
+#if defined(__WXMAC__) && !defined(__DARWIN__) && defined(__MWERKS__) && (__MWERKS__ >= 0x2400)
 
-#if !TARGET_API_MAC_CARBON
 // MetroNub stuff doesn't seem to work in CodeWarrior 5.3 Carbon builds...
 
 #ifndef __MetroNubUtils__
@@ -694,9 +693,7 @@ OSErr ClearWatchPoint (WatchPointIDT watchPointID)
     }
 #endif
 
-#endif // !TARGET_API_MAC_CARBON
-
-#endif // defined(__WXMAC__) && !defined(__DARWIN__) && (__MWERKS__ > 0x5300)
+#endif // defined(__WXMAC__) && !defined(__DARWIN__) && (__MWERKS__ >= 0x2400)
 
 void wxLogStderr::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
 {
@@ -722,7 +719,7 @@ void wxLogStderr::DoLogString(const wxChar *szString, time_t WXUNUSED(t))
 
     Boolean running = false ;
 
-#if !TARGET_API_MAC_CARBON && (__MWERKS__ > 0x5300)
+#if defined(__MWERKS__) && (__MWERKS__ >= 0x2400)
 
     if ( IsMWDebuggerRunning() && AmIBeingMWDebugged() )
     {
diff --git a/src/common/menucmn.cpp b/src/common/menucmn.cpp
index ee97f56614..05bb4f7f8c 100644
--- a/src/common/menucmn.cpp
+++ b/src/common/menucmn.cpp
@@ -159,14 +159,39 @@ wxAcceleratorEntry *wxGetAccelFromString(const wxString& label)
                     else if ( current == wxT("INSERT") ) {
                         keyCode = WXK_INSERT;
                     }
-#if 0
+                    else if ( current == wxT("ENTER") || current == wxT("RETURN") ) {
+                        keyCode = WXK_RETURN;
+                    }
                     else if ( current == wxT("PGUP") ) {
-                        keyCode = VK_PRIOR;
+                        keyCode = WXK_PRIOR;
                     }
                     else if ( current == wxT("PGDN") ) {
-                        keyCode = VK_NEXT;
+                        keyCode = WXK_NEXT;
+                    }
+                    else if ( current == wxT("LEFT") ) {
+                        keyCode = WXK_LEFT;
+                    }
+                    else if ( current == wxT("RIGHT") ) {
+                        keyCode = WXK_RIGHT;
+                    }
+                    else if ( current == wxT("UP") ) {
+                        keyCode = WXK_UP;
+                    }
+                    else if ( current == wxT("DOWN") ) {
+                        keyCode = WXK_DOWN;
+                    }
+                    else if ( current == wxT("HOME") ) {
+                        keyCode = WXK_HOME;
+                    }
+                    else if ( current == wxT("END") ) {
+                        keyCode = WXK_END;
+                    }
+                    else if ( current == wxT("SPACE") ) {
+                        keyCode = WXK_SPACE;
+                    }
+                    else if ( current == wxT("TAB") ) {
+                        keyCode = WXK_TAB;
                     }
-#endif
                     else
                     {
                         wxLogDebug(wxT("Unrecognized accel key '%s', accel string ignored."),
@@ -789,7 +814,7 @@ int wxMenuBarBase::FindMenu(const wxString& title) const
              (wxMenuItem::GetLabelFromText(title2) == label) )
         {
             // found
-            return (int)i; 
+            return (int)i;
         }
     }
 
diff --git a/src/common/mimecmn.cpp b/src/common/mimecmn.cpp
index 1335ec68bf..c663f9d7bd 100644
--- a/src/common/mimecmn.cpp
+++ b/src/common/mimecmn.cpp
@@ -426,7 +426,7 @@ bool wxFileType::SetDefaultIcon(const wxString& cmd, int index)
     // VZ: should we do this?
     // chris elliott : only makes sense in MS windows
     if ( sTmp.empty() )
-        GetOpenCommand(&sTmp, wxFileType::MessageParameters("", ""));
+        GetOpenCommand(&sTmp, wxFileType::MessageParameters(wxT(""), wxT("")));
 #endif
     wxCHECK_MSG( !sTmp.empty(), FALSE, _T("need the icon file") );
 
diff --git a/src/common/mstream.cpp b/src/common/mstream.cpp
index 9226ce4461..b1ac75aa94 100644
--- a/src/common/mstream.cpp
+++ b/src/common/mstream.cpp
@@ -80,7 +80,7 @@ size_t wxMemoryInputStream::OnSysRead(void *buffer, size_t nbytes)
     }
 
     m_i_streambuf->Read(buffer, nbytes);
-    m_lasterror = wxSTREAM_NOERROR;
+    m_lasterror = wxSTREAM_NO_ERROR;
 
     return m_i_streambuf->GetIntPosition() - pos;
 }
diff --git a/src/common/paper.cpp b/src/common/paper.cpp
index d8775f2c62..58156a1bb4 100644
--- a/src/common/paper.cpp
+++ b/src/common/paper.cpp
@@ -59,7 +59,7 @@ wxPrintPaperType::wxPrintPaperType()
 {
     m_paperId = wxPAPER_NONE;
     m_platformId = 0;
-    m_paperName = "";
+    m_paperName = wxT("");
     m_width = 0;
     m_height = 0;
 }
diff --git a/src/common/prntbase.cpp b/src/common/prntbase.cpp
index d1a4e3f691..921ae318ad 100644
--- a/src/common/prntbase.cpp
+++ b/src/common/prntbase.cpp
@@ -6,7 +6,7 @@
 // Created:     04/01/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:       wxWindows license
+// Licence:     wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -37,7 +37,8 @@
 #include "wx/stattext.h"
 #include "wx/intl.h"
 #include "wx/textdlg.h"
-#endif
+#include "wx/sizer.h"
+#endif // !WX_PRECOMP
 
 #include "wx/prntbase.h"
 #include "wx/dcprint.h"
@@ -47,8 +48,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include <wx/sizer.h>
-                                         
 #ifdef __WXMSW__
     #include "wx/msw/private.h"
     #include <commdlg.h>
@@ -475,11 +474,11 @@ void wxPreviewControlBar::CreateButtons()
 
     if (m_buttonFlags & wxPREVIEW_ZOOM)
     {
-        static const char *choices[] =
+        static const wxChar *choices[] =
         {
-            "10%", "15%", "20%", "25%", "30%", "35%", "40%", "45%", "50%", "55%",
-            "60%", "65%", "70%", "75%", "80%", "85%", "90%", "95%", "100%", "110%",
-            "120%", "150%", "200%"
+            wxT("10%"), wxT("15%"), wxT("20%"), wxT("25%"), wxT("30%"), wxT("35%"), wxT("40%"), wxT("45%"), wxT("50%"), wxT("55%"),
+            wxT("60%"), wxT("65%"), wxT("70%"), wxT("75%"), wxT("80%"), wxT("85%"), wxT("90%"), wxT("95%"), wxT("100%"), wxT("110%"),
+            wxT("120%"), wxT("150%"), wxT("200%")
         };
 
         int n = WXSIZEOF(choices);
@@ -505,9 +504,9 @@ void wxPreviewControlBar::CreateButtons()
 
 void wxPreviewControlBar::SetZoomControl(int zoom)
 {
-    char buf[20];
-    sprintf(buf, "%d%%", zoom);
-// Someone is calling methods that do no exist in wxChoice!! So I'll just comment out for VA for now
+    wxChar buf[20];
+    wxSprintf( buf, wxT("%d%%"), zoom );
+
     if (m_zoomControl)
         m_zoomControl->SetStringSelection(buf);
 }
diff --git a/src/common/process.cpp b/src/common/process.cpp
index 0e9769d95e..43dfcdf867 100644
--- a/src/common/process.cpp
+++ b/src/common/process.cpp
@@ -120,28 +120,21 @@ void wxProcess::SetPipeStreams(wxInputStream *inputSstream,
     m_outputStream = outputStream;
 }
 
-// these are implemented in platform-dependent (and correct!) way under MSW and
-// Unix but we still have to provide these dummy versions for the other
-// platforms here
-#if !defined(__WIN32__) && !defined(__UNIX_LIKE__)
-
 bool wxProcess::IsInputOpened() const
 {
-    return m_inputStream != NULL;
+    return m_inputStream && m_inputStream->GetLastError() != wxSTREAM_EOF;
 }
 
 bool wxProcess::IsInputAvailable() const
 {
-    return m_inputStream && !m_inputStream->Eof();
+    return m_inputStream && m_inputStream->CanRead();
 }
 
 bool wxProcess::IsErrorAvailable() const
 {
-    return m_errorStream && !m_errorStream->Eof();
+    return m_errorStream && m_errorStream->CanRead();
 }
 
-#endif // !Win32 && !Unix
-
 #endif // wxUSE_STREAMS
 
 // ----------------------------------------------------------------------------
diff --git a/src/common/protocol.cpp b/src/common/protocol.cpp
index 213de7ce97..1de1a297cb 100644
--- a/src/common/protocol.cpp
+++ b/src/common/protocol.cpp
@@ -41,12 +41,12 @@
 wxProtoInfo::wxProtoInfo(const wxChar *name, const wxChar *serv,
                          const bool need_host1, wxClassInfo *info)
 {
-  m_protoname = name;
-  m_servname = serv;
-  m_cinfo = info;
-  m_needhost = need_host1;
-  next = wxURL::ms_protocols;
-  wxURL::ms_protocols = this;
+    m_protoname = name;
+    m_servname = serv;
+    m_cinfo = info;
+    m_needhost = need_host1;
+    next = wxURL::ms_protocols;
+    wxURL::ms_protocols = this;
 }
 
 /////////////////////////////////////////////////////////////////
@@ -69,19 +69,21 @@ wxProtocol::wxProtocol()
 #if wxUSE_SOCKETS
 bool wxProtocol::Reconnect()
 {
-  wxIPV4address addr;
-
-  if (!GetPeer(addr))
-  {
-    Close();
-    return FALSE;
-  }
-  if (!Close())
-    return FALSE;
-  if (!Connect(addr))
-    return FALSE;
-
-  return TRUE;
+    wxIPV4address addr;
+
+    if (!GetPeer(addr))
+    {
+        Close();
+        return FALSE;
+    }
+
+    if (!Close())
+        return FALSE;
+        
+    if (!Connect(addr))
+        return FALSE;
+
+    return TRUE;
 }
 
 // ----------------------------------------------------------------------------
@@ -117,11 +119,11 @@ wxProtocolError wxProtocol::ReadLine(wxSocketBase *socket, wxString& result)
                 // normal char
                 if ( chLast )
                 {
-                    result += chLast;
+                    result += wxString::FromAscii( chLast );
                     chLast = '\0';
                 }
 
-                result += ch;
+                result += wxString::FromAscii( ch );
         }
     }
 
@@ -134,38 +136,42 @@ wxProtocolError wxProtocol::ReadLine(wxString& result)
 }
 
 // old function which only chops '\n' and not '\r\n'
-wxProtocolError GetLine(wxSocketBase *sock, wxString& result) {
+wxProtocolError GetLine(wxSocketBase *sock, wxString& result)
+{
 #define PROTO_BSIZE 2048
-  size_t avail, size;
-  char tmp_buf[PROTO_BSIZE], tmp_str[PROTO_BSIZE];
-  char *ret;
-  bool found;
-
-  avail = sock->Read(tmp_buf, PROTO_BSIZE).LastCount();
-  if (sock->Error() || avail == 0)
-    return wxPROTO_NETERR;
-
-  memcpy(tmp_str, tmp_buf, avail);
-
-// Not implemented on all systems
-// ret = (char *)memccpy(tmp_str, tmp_buf, '\n', avail);
-  found = FALSE;
-  for (ret=tmp_str;ret < (tmp_str+avail); ret++)
-     if (*ret == '\n') {
-       found = TRUE;
-       break;
-     }
+    size_t avail, size;
+    char tmp_buf[PROTO_BSIZE], tmp_str[PROTO_BSIZE];
+    char *ret;
+    bool found;
+
+    avail = sock->Read(tmp_buf, PROTO_BSIZE).LastCount();
+    if (sock->Error() || avail == 0)
+        return wxPROTO_NETERR;
+
+    memcpy(tmp_str, tmp_buf, avail);
+
+    // Not implemented on all systems
+    // ret = (char *)memccpy(tmp_str, tmp_buf, '\n', avail);
+    found = FALSE;
+    for (ret=tmp_str;ret < (tmp_str+avail); ret++)
+        if (*ret == '\n') 
+        {
+            found = TRUE;
+            break;
+        }
 
-  if (!found)
-    return wxPROTO_PROTERR;
-  *ret = 0;
+    if (!found)
+        return wxPROTO_PROTERR;
+        
+    *ret = 0;
 
-  result = tmp_str;
-  result = result.Left(result.Length()-1);
+    result = wxString::FromAscii( tmp_str );
+    result = result.Left(result.Length()-1);
 
-  size = ret-tmp_str+1;
-  sock->Unread(&tmp_buf[size], avail-size);
-  return wxPROTO_NOERR;
+    size = ret-tmp_str+1;
+    sock->Unread(&tmp_buf[size], avail-size);
+  
+    return wxPROTO_NOERR;
 #undef PROTO_BSIZE
 }
 #endif // wxUSE_SOCKETS
diff --git a/src/common/regex.cpp b/src/common/regex.cpp
index 7b480f24c8..cbaa57991d 100644
--- a/src/common/regex.cpp
+++ b/src/common/regex.cpp
@@ -132,7 +132,7 @@ wxString wxRegExImpl::GetErrorMsg(int errorcode) const
 
         (void)regerror(errorcode, &m_RegEx, (char *)buf.data(), len);
 
-        msg = buf.data();
+        msg = wxString(buf.data(), wxConvLibc);
 #else // !Unicode
         (void)regerror(errorcode, &m_RegEx, msg.GetWriteBuf(len), len);
 
diff --git a/src/common/resource.cpp b/src/common/resource.cpp
index 4ba466c395..de02d6a71f 100644
--- a/src/common/resource.cpp
+++ b/src/common/resource.cpp
@@ -216,7 +216,7 @@ bool wxResourceTable::DeleteResource(const wxString& name)
 bool wxResourceTable::ParseResourceFile( wxInputStream *is )
 {
     wxExprDatabase db;
-    int len = is->StreamSize() ;
+    int len = is->GetSize() ;
 
     bool eof = FALSE;
     while ( is->TellI() + 10 < len) // it's a hack because the streams dont support EOF
diff --git a/src/common/sckaddr.cpp b/src/common/sckaddr.cpp
index ff8739c79d..b75ac6efb5 100644
--- a/src/common/sckaddr.cpp
+++ b/src/common/sckaddr.cpp
@@ -136,7 +136,7 @@ bool wxIPV4address::Hostname(unsigned long addr)
   if (rv)
       m_origHostname = Hostname();
   else
-      m_origHostname = "";
+      m_origHostname = wxEmptyString;
   return rv;
 }
 
@@ -166,7 +166,7 @@ wxString wxIPV4address::Hostname()
 
    hostname[0] = 0;
    GAddress_INET_GetHostName(m_address, hostname, 1024);
-   return wxString(hostname);
+   return wxString::FromAscii(hostname);
 }
 
 unsigned short wxIPV4address::Service()
@@ -268,7 +268,8 @@ wxString wxUNIXaddress::Filename()
 
   path[0] = 0;
   GAddress_UNIX_GetPath(m_address, path, 1024);
-  return wxString(path);
+  
+  return wxString::FromAscii(path);
 }
 
 #endif // __UNIX__
diff --git a/src/common/sckstrm.cpp b/src/common/sckstrm.cpp
index 1e1417c416..bc56194375 100644
--- a/src/common/sckstrm.cpp
+++ b/src/common/sckstrm.cpp
@@ -44,17 +44,11 @@ wxSocketOutputStream::~wxSocketOutputStream()
 
 size_t wxSocketOutputStream::OnSysWrite(const void *buffer, size_t size)
 {
-  size_t ret;
+  size_t ret = m_o_socket->Write((const char *)buffer, size).LastCount();
 
-  ret = m_o_socket->Write((const char *)buffer, size).LastCount();
-
-  if (m_o_socket->Error())
-    m_lasterror = wxStream_WRITE_ERR;
-  else
-    m_lasterror = wxStream_NOERROR;
+  m_lasterror = m_o_socket->Error() ? wxSTREAM_WRITE_ERROR : wxSTREAM_NO_ERROR;
 
   return ret;
-
 }
 
 // ---------------------------------------------------------------------------
@@ -72,14 +66,9 @@ wxSocketInputStream::~wxSocketInputStream()
 
 size_t wxSocketInputStream::OnSysRead(void *buffer, size_t size)
 {
-  size_t ret;
-
-  ret = m_i_socket->Read((char *)buffer, size).LastCount();
+  size_t ret = m_i_socket->Read((char *)buffer, size).LastCount();
 
-  if (m_i_socket->Error())
-    m_lasterror = wxStream_READ_ERR;
-  else
-    m_lasterror = wxStream_NOERROR;
+  m_lasterror = m_i_socket->Error() ? wxSTREAM_READ_ERROR : wxSTREAM_NO_ERROR;
 
   return ret;
 }
diff --git a/src/common/settcmn.cpp b/src/common/settcmn.cpp
index 93ebe6286d..6e84b6a118 100644
--- a/src/common/settcmn.cpp
+++ b/src/common/settcmn.cpp
@@ -44,7 +44,7 @@ wxSystemScreenType wxSystemSettings::ms_screen = wxSYS_SCREEN_NONE;
 wxSystemScreenType wxSystemSettings::GetScreenType()
 {
     if (ms_screen == wxSYS_SCREEN_NONE)
-#ifndef __WXUNIV__
+#ifndef __WXUNIVERSAL__
     {
         // As a start, all GUI are desktops.
         ms_screen = wxSYS_SCREEN_DESKTOP;
@@ -52,9 +52,7 @@ wxSystemScreenType wxSystemSettings::GetScreenType()
 #else
     {
         // wxUniv will be used on small devices, too.
-        int x = 0;
-        int y = 0;
-        wxGetDisplaySize( &x, &y );
+        int x = GetMetric( wxSYS_SCREEN_X );
 
         ms_screen = wxSYS_SCREEN_DESKTOP;
             
diff --git a/src/common/sizer.cpp b/src/common/sizer.cpp
index b4f6dc23d1..36849b8cd1 100644
--- a/src/common/sizer.cpp
+++ b/src/common/sizer.cpp
@@ -50,6 +50,7 @@ wxSizerItem::wxSizerItem( int width, int height, int option, int flag, int borde
     m_option = option;
     m_border = border;
     m_flag = flag;
+    m_show = TRUE;                // Cannot be changed
     m_userData = userData;
 
     // minimal size is the initial size
@@ -69,6 +70,7 @@ wxSizerItem::wxSizerItem( wxWindow *window, int option, int flag, int border, wx
     m_option = option;
     m_border = border;
     m_flag = flag;
+    m_show = TRUE;
     m_userData = userData;
 
     // minimal size is the initial size
@@ -88,6 +90,7 @@ wxSizerItem::wxSizerItem( wxSizer *sizer, int option, int flag, int border, wxOb
     m_option = option;
     m_border = border;
     m_flag = flag;
+    m_show = TRUE;
     m_userData = userData;
 
     // minimal size is calculated later
@@ -145,14 +148,11 @@ wxSize wxSizerItem::CalcMin()
     {
         if ( IsWindow() && (m_flag & wxADJUST_MINSIZE) )
         {
-            // check if the best (minimal, in fact) window size hadn't changed
-            // by chance: this may happen for, e.g. static text if its label
-            // changed
-            wxSize size = m_window->GetBestSize();
-            if ( size.x > m_minSize.x )
-                m_minSize.x = size.x;
-            if ( size.y > m_minSize.y )
-                m_minSize.y = size.y;
+            // By user request, keep the minimal size for this item
+            // in sync with the largest of BestSize and any user supplied
+            // minimum size hint.  Useful in cases where the item is
+            // changeable -- static text labels, etc.
+            m_minSize = m_window->GetAdjustedBestSize();
         }
 
         ret = m_minSize;
@@ -361,6 +361,8 @@ bool wxSizer::Remove( wxSizer *sizer )
 
 bool wxSizer::Remove( int pos )
 {
+    if ((size_t)pos >= m_children.GetCount())
+        return FALSE;
     wxNode *node = m_children.Nth( pos );
     if (!node) return FALSE;
 
@@ -528,8 +530,7 @@ void wxSizer::SetDimension( int x, int y, int width, int height )
     m_position.y = y;
     m_size.x = width;
     m_size.y = height;
-    CalcMin();
-    RecalcSizes();
+    Layout();
 }
 
 wxSize wxSizer::GetMinSize()
@@ -636,6 +637,90 @@ bool wxSizer::DoSetItemMinSize( int pos, int width, int height )
     return TRUE;
 }
 
+void wxSizer::Show(wxWindow *window, bool show)
+{
+    wxNode *node = m_children.GetFirst();
+    while (node)
+    {
+        wxSizerItem *item = (wxSizerItem*) node->Data();
+
+        if (item->IsWindow() && item->GetWindow() == window)
+        {
+            item->Show(show);
+            window->Show(show);
+            return;
+        }
+        node = node->Next();
+    }
+}
+
+void wxSizer::Show(wxSizer *sizer, bool show)
+{
+    wxNode *node = m_children.GetFirst();
+    while (node)
+    {
+        wxSizerItem *item = (wxSizerItem*) node->Data();
+
+        if (item->IsSizer() && item->GetSizer() == sizer)
+        {
+            item->Show(show);
+            sizer->ShowItems(show);
+            return;
+        }
+        node = node->Next();
+    }
+}
+
+void wxSizer::ShowItems (bool show)
+{
+    wxNode *node = m_children.GetFirst();
+    while (node)
+    {
+        wxSizerItem *item = (wxSizerItem*) node->Data();
+
+        if (item->IsWindow())
+            item->GetWindow()->Show (show);
+        else if (item->IsSizer())
+            item->GetSizer()->ShowItems (show);
+
+        node = node->Next();
+    }
+}
+
+bool wxSizer::IsShown (wxWindow *window)
+{
+    wxNode *node = m_children.GetFirst();
+    while (node)
+    {
+        wxSizerItem *item = (wxSizerItem*) node->Data();
+        
+        if (item->IsWindow() && item->GetWindow() == window)
+        {
+            return item->IsShown();
+        }
+        node = node->Next();
+    }
+
+    return FALSE;
+}
+
+bool wxSizer::IsShown (wxSizer *sizer)
+{
+    wxNode *node = m_children.GetFirst();
+    while (node)
+    {
+        wxSizerItem *item = (wxSizerItem*) node->Data();
+
+        if (item->IsSizer() && item->GetSizer() == sizer)
+        {
+            return item->IsShown();
+        }
+        node = node->Next();
+    }
+
+    return FALSE;
+}
+
 //---------------------------------------------------------------------------
 // wxGridSizer
 //---------------------------------------------------------------------------
@@ -659,7 +744,7 @@ wxGridSizer::wxGridSizer( int cols, int vgap, int hgap )
 int wxGridSizer::CalcRowsCols(int& nrows, int& ncols) const
 {
     int nitems = m_children.GetCount();
-    if ( nitems) 
+    if ( nitems)
     {
         if ( m_cols )
         {
@@ -978,62 +1063,64 @@ void wxBoxSizer::RecalcSizes()
     while (node)
     {
         wxSizerItem *item = (wxSizerItem*) node->Data();
-
-        int weight = 1;
-        if (item->GetOption())
-            weight = item->GetOption();
-
-        wxSize size( item->CalcMin() );
-
-        if (m_orient == wxVERTICAL)
+        if (item->IsShown())
         {
-            wxCoord height = size.y;
+            int weight = 1;
             if (item->GetOption())
-            {
-                height = (delta * weight) + extra;
-                extra = 0; // only the first item will get the remainder as extra size
-            }
-
-            wxPoint child_pos( pt );
-            wxSize  child_size( wxSize( size.x, height) );
+                weight = item->GetOption();
 
-            if (item->GetFlag() & (wxEXPAND | wxSHAPED))
-                child_size.x = m_size.x;
-            else if (item->GetFlag() & wxALIGN_RIGHT)
-                child_pos.x += m_size.x - size.x;
-            else if (item->GetFlag() & (wxCENTER | wxALIGN_CENTER_HORIZONTAL))
-            // XXX wxCENTER is added for backward compatibility;
-            //     wxALIGN_CENTER should be used in new code
-                child_pos.x += (m_size.x - size.x) / 2;
-
-            item->SetDimension( child_pos, child_size );
+            wxSize size( item->CalcMin() );
 
-            pt.y += height;
-        }
-        else
-        {
-            wxCoord width = size.x;
-            if (item->GetOption())
+            if (m_orient == wxVERTICAL)
             {
-                width = (delta * weight) + extra;
-                extra = 0; // only the first item will get the remainder as extra size
+                wxCoord height = size.y;
+                if (item->GetOption())
+                {
+                    height = (delta * weight) + extra;
+                    extra = 0; // only the first item will get the remainder as extra size
+                }
+
+                wxPoint child_pos( pt );
+                wxSize  child_size( wxSize( size.x, height) );
+
+                if (item->GetFlag() & (wxEXPAND | wxSHAPED))
+                    child_size.x = m_size.x;
+                else if (item->GetFlag() & wxALIGN_RIGHT)
+                    child_pos.x += m_size.x - size.x;
+                else if (item->GetFlag() & (wxCENTER | wxALIGN_CENTER_HORIZONTAL))
+                // XXX wxCENTER is added for backward compatibility;
+                //     wxALIGN_CENTER should be used in new code
+                    child_pos.x += (m_size.x - size.x) / 2;
+
+                item->SetDimension( child_pos, child_size );
+
+                pt.y += height;
+            }
+            else
+            {
+                wxCoord width = size.x;
+                if (item->GetOption())
+                {
+                    width = (delta * weight) + extra;
+                    extra = 0; // only the first item will get the remainder as extra size
+                }
+
+                wxPoint child_pos( pt );
+                wxSize  child_size( wxSize(width, size.y) );
+
+                if (item->GetFlag() & (wxEXPAND | wxSHAPED))
+                    child_size.y = m_size.y;
+                else if (item->GetFlag() & wxALIGN_BOTTOM)
+                    child_pos.y += m_size.y - size.y;
+                else if (item->GetFlag() & (wxCENTER | wxALIGN_CENTER_VERTICAL))
+                // XXX wxCENTER is added for backward compatibility;
+                //     wxALIGN_CENTER should be used in new code
+                    child_pos.y += (m_size.y - size.y) / 2;
+
+                item->SetDimension( child_pos, child_size );
+
+                pt.x += width;
             }
-
-            wxPoint child_pos( pt );
-            wxSize  child_size( wxSize(width, size.y) );
-
-            if (item->GetFlag() & (wxEXPAND | wxSHAPED))
-                child_size.y = m_size.y;
-            else if (item->GetFlag() & wxALIGN_BOTTOM)
-                child_pos.y += m_size.y - size.y;
-            else if (item->GetFlag() & (wxCENTER | wxALIGN_CENTER_VERTICAL))
-            // XXX wxCENTER is added for backward compatibility;
-            //     wxALIGN_CENTER should be used in new code
-                child_pos.y += (m_size.y - size.y) / 2;
-
-            item->SetDimension( child_pos, child_size );
-
-            pt.x += width;
         }
 
         node = node->Next();
@@ -1057,7 +1144,7 @@ wxSize wxBoxSizer::CalcMin()
     while (node)
     {
         wxSizerItem *item = (wxSizerItem*) node->Data();
-        if (item->GetOption() != 0)
+        if (item->IsShown() && item->GetOption() != 0)
         {
             int stretch = item->GetOption();
             wxSize size( item->CalcMin() );
@@ -1077,43 +1164,44 @@ wxSize wxBoxSizer::CalcMin()
     while (node)
     {
         wxSizerItem *item = (wxSizerItem*) node->Data();
-
-        m_stretchable += item->GetOption();
-
-        wxSize size( item->CalcMin() );
-        if (item->GetOption() != 0)
+        if (item->IsShown())
         {
-            if (m_orient == wxHORIZONTAL)
-                size.x = stretchSize * item->GetOption();
-            else
-                size.y = stretchSize * item->GetOption();
-        }
+            m_stretchable += item->GetOption();
 
-        if (m_orient == wxHORIZONTAL)
-        {
-            m_minWidth += size.x;
-            m_minHeight = wxMax( m_minHeight, size.y );
-        }
-        else
-        {
-            m_minHeight += size.y;
-            m_minWidth = wxMax( m_minWidth, size.x );
-        }
+            wxSize size( item->CalcMin() );
+            if (item->GetOption() != 0)
+            {
+                if (m_orient == wxHORIZONTAL)
+                    size.x = stretchSize * item->GetOption();
+                else
+                    size.y = stretchSize * item->GetOption();
+            }
 
-        if (item->GetOption() == 0)
-        {
-            if (m_orient == wxVERTICAL)
+            if (m_orient == wxHORIZONTAL)
             {
-                m_fixedHeight += size.y;
-                m_fixedWidth = wxMax( m_fixedWidth, size.x );
+                m_minWidth += size.x;
+                m_minHeight = wxMax( m_minHeight, size.y );
             }
             else
             {
-                m_fixedWidth += size.x;
-                m_fixedHeight = wxMax( m_fixedHeight, size.y );
+                m_minHeight += size.y;
+                m_minWidth = wxMax( m_minWidth, size.x );
             }
-        }
 
+            if (item->GetOption() == 0)
+            {
+                if (m_orient == wxVERTICAL)
+                {
+                    m_fixedHeight += size.y;
+                    m_fixedWidth = wxMax( m_fixedWidth, size.x );
+                }
+                else
+                {
+                    m_fixedWidth += size.x;
+                    m_fixedHeight = wxMax( m_fixedHeight, size.y );
+                }
+            }
+        }
         node = node->Next();
     }
 
diff --git a/src/common/strconv.cpp b/src/common/strconv.cpp
index dafd61269a..59fdd4af98 100644
--- a/src/common/strconv.cpp
+++ b/src/common/strconv.cpp
@@ -52,9 +52,13 @@
 #if wxUSE_WCHAR_T
     WXDLLEXPORT_DATA(wxMBConv) wxConvLibc;
     WXDLLEXPORT_DATA(wxCSConv) wxConvLocal((const wxChar *)NULL);
+    WXDLLEXPORT_DATA(wxCSConv) wxConvISO8859_1(_T("iso-8859-1"));
 #else
     // stand-ins in absence of wchar_t
-    WXDLLEXPORT_DATA(wxMBConv) wxConvLibc, wxConvFile, wxConvLocal;
+    WXDLLEXPORT_DATA(wxMBConv) wxConvLibc,
+                               wxConvFile,
+                               wxConvISO8859_1,
+                               wxConvLocal;
 #endif // wxUSE_WCHAR_T
 
 WXDLLEXPORT_DATA(wxMBConv *) wxConvCurrent = &wxConvLibc;
@@ -68,6 +72,7 @@ public:
     {
 #if wxUSE_WCHAR_T
          wxConvLocal.Clear();
+         wxConvISO8859_1.Clear();
 #endif
     }
 
@@ -188,6 +193,11 @@ static size_t decode_utf16(const wchar_t* input, wxUint32& output)
 
 #define IGNORE_LIBC 0
 
+wxMBConv::~wxMBConv()
+{
+    // nothing to do here
+}
+
 size_t wxMBConv::MB2WC(wchar_t *buf, const char *psz, size_t n) const
 {
 #if IGNORE_LIBC
@@ -226,28 +236,41 @@ size_t wxMBConv::WC2MB(char *buf, const wchar_t *psz, size_t n) const
 
 const wxWCharBuffer wxMBConv::cMB2WC(const char *psz) const
 {
-    if (psz)
+    if ( psz )
     {
-        size_t nLen = MB2WC((wchar_t *) NULL, psz, 0);  // return value excludes /0
-        if (nLen == (size_t)-1)
-            return wxWCharBuffer((wchar_t *) NULL);
-        wxWCharBuffer buf(nLen);                        // this allocates nLen1+
-        MB2WC((wchar_t *)(const wchar_t *) buf, psz, nLen+1);
-        return buf;
+        // calculate the length of the buffer needed first
+        size_t nLen = MB2WC(NULL, psz, 0);
+        if ( nLen != (size_t)-1 )
+        {
+            // now do the actual conversion
+            wxWCharBuffer buf(nLen);
+            MB2WC(buf.data(), psz, nLen + 1); // with the trailing NUL
+
+            return buf;
+        }
     }
-    else
-        return wxWCharBuffer((wchar_t *) NULL);
+
+    wxWCharBuffer buf((wchar_t *)NULL);
+
+    return buf;
 }
 
 const wxCharBuffer wxMBConv::cWC2MB(const wchar_t *pwz) const
 {
-    // return value excludes NUL
-    size_t nLen = pwz ? WC2MB((char *) NULL, pwz, 0) : (size_t)-1;
-    if (nLen == (size_t)-1)
-        return wxCharBuffer((const char *)NULL);
+    if ( pwz )
+    {
+        size_t nLen = WC2MB(NULL, pwz, 0);
+        if ( nLen != (size_t)-1 )
+        {
+            wxCharBuffer buf(nLen);
+            WC2MB(buf.data(), pwz, nLen + 1);
+
+            return buf;
+        }
+    }
+
+    wxCharBuffer buf((char *)NULL);
 
-    wxCharBuffer buf(nLen);                      // this allocates nLen+1
-    WC2MB((char *)(const char *) buf, pwz, nLen+1);
     return buf;
 }
 
@@ -590,7 +613,7 @@ IC_CharSet::IC_CharSet(const wxChar *name)
                 {
                     ms_wcCharsetName = NULL;
                     wxLogLastError(wxT("iconv"));
-                    wxLogError(_("Convertion to charset '%s' doesn't work."), name);
+                    wxLogError(_("Conversion to charset '%s' doesn't work."), name);
                 }
                 else
                 {
@@ -761,6 +784,12 @@ size_t IC_CharSet::WC2MB(char *buf, const wchar_t *psz, size_t n)
 
 #if defined(__WIN32__) && !defined(__WXMICROWIN__)
 
+#ifdef __WXWINE__
+    #define WINE_CAST (WCHAR *)
+#else
+    #define WINE_CAST
+#endif
+
 extern long wxCharsetToCodepage(const wxChar *charset); // from utils.cpp
 
 class CP_CharSet : public wxCharacterSet
@@ -774,29 +803,37 @@ public:
 
     size_t MB2WC(wchar_t *buf, const char *psz, size_t n)
     {
-        size_t len =
-#ifdef __WXWINE__
-            MultiByteToWideChar(m_CodePage, 0, psz, -1, (WCHAR*) buf, buf ? n : 0);
-#else
-            MultiByteToWideChar(m_CodePage, 0, psz, -1, buf, buf ? n : 0);
-#endif
-        //VS: returns # of written chars for buf!=NULL and *size*
-        //    needed buffer for buf==NULL
-        return len ? (buf ? len : len-1) : (size_t)-1;
+        const size_t len = ::MultiByteToWideChar
+                             (
+                                m_CodePage,     // code page
+                                0,              // flags (none)
+                                psz,            // input string
+                                -1,             // its length (NUL-terminated)
+                                WINE_CAST buf,  // output string
+                                buf ? n : 0     // size of output buffer
+                             );
+
+        // note that it returns # of written chars for buf != NULL and *size*
+        // of the needed buffer for buf == NULL
+        return len ? (buf ? len : len - 1) : (size_t)-1;
     }
 
     size_t WC2MB(char *buf, const wchar_t *psz, size_t n)
     {
-#ifdef __WXWINE__
-        size_t len = WideCharToMultiByte(m_CodePage, 0, (const WCHAR*) psz, -1, buf,
-                                         buf ? n : 0, NULL, NULL);
-#else
-        size_t len = WideCharToMultiByte(m_CodePage, 0, psz, -1, buf,
-                                         buf ? n : 0, NULL, NULL);
-#endif
-        //VS: returns # of written chars for buf!=NULL and *size*
-        //    needed buffer for buf==NULL
-        return len ? (buf ? len : len-1) : (size_t)-1;
+        const size_t len = ::WideCharToMultiByte
+                             (
+                                m_CodePage,     // code page
+                                0,              // flags (none)
+                                WINE_CAST psz,  // input string
+                                -1,             // it is (wide) NUL-terminated
+                                buf,            // output buffer
+                                buf ? n : 0,    // and its size
+                                NULL,           // default "replacement" char
+                                NULL            // [out] was it used?
+                             );
+
+        // see the comment above!
+        return len ? (buf ? len : len - 1) : (size_t)-1;
     }
 
     bool usable() const
diff --git a/src/common/stream.cpp b/src/common/stream.cpp
index 26d3ab77cd..d5c5dd3318 100644
--- a/src/common/stream.cpp
+++ b/src/common/stream.cpp
@@ -46,7 +46,7 @@
 // ----------------------------------------------------------------------------
 
 // the temporary buffer size used when copying from stream to stream
-#define BUF_TEMP_SIZE 10000
+#define BUF_TEMP_SIZE 4096
 
 // ============================================================================
 // implementation
@@ -58,7 +58,7 @@
 
 void wxStreamBuffer::SetError(wxStreamError err)
 {
-   if ( m_stream->m_lasterror == wxStream_NOERROR )
+   if ( m_stream && m_stream->m_lasterror == wxSTREAM_NO_ERROR )
        m_stream->m_lasterror = err;
 }
 
@@ -80,40 +80,31 @@ void wxStreamBuffer::Init()
     m_fixed = TRUE;
 }
 
-wxStreamBuffer::wxStreamBuffer(wxStreamBase& stream, BufMode mode)
+wxStreamBuffer::wxStreamBuffer(BufMode mode)
 {
     Init();
 
-    m_stream = &stream;
+    m_stream = NULL;
     m_mode = mode;
 
-    m_flushable = TRUE;
-    m_destroystream = FALSE;
+    m_flushable = FALSE;
 }
 
-wxStreamBuffer::wxStreamBuffer(BufMode mode)
+wxStreamBuffer::wxStreamBuffer(wxStreamBase& stream, BufMode mode)
 {
     Init();
 
-    wxASSERT_MSG(mode != read_write, wxT("you have to use the other ctor for read_write mode") );
-    if ( mode == read )
-        m_stream = new wxInputStream;
-    else if ( mode == write)
-        m_stream = new wxOutputStream;
-    else
-        m_stream = NULL;
-
+    m_stream = &stream;
     m_mode = mode;
 
-    m_flushable = FALSE;
-    m_destroystream = TRUE;
+    m_flushable = TRUE;
 }
 
 wxStreamBuffer::wxStreamBuffer(const wxStreamBuffer& buffer)
 {
-    // doing this has big chances to lead to a crashwhen the source buffer is
+    // doing this has big chances to lead to a crash when the source buffer is
     // destroyed (otherwise assume the caller knows what he does)
-    wxASSERT_MSG( !buffer.m_destroybuf && !buffer.m_destroystream,
+    wxASSERT_MSG( !buffer.m_destroybuf,
                   _T("it's a bad idea to copy this buffer") );
 
     m_buffer_start = buffer.m_buffer_start;
@@ -125,7 +116,6 @@ wxStreamBuffer::wxStreamBuffer(const wxStreamBuffer& buffer)
     m_stream = buffer.m_stream;
     m_mode = buffer.m_mode;
     m_destroybuf = FALSE;
-    m_destroystream = FALSE;
 }
 
 void wxStreamBuffer::FreeBuffer()
@@ -137,9 +127,6 @@ void wxStreamBuffer::FreeBuffer()
 wxStreamBuffer::~wxStreamBuffer()
 {
     FreeBuffer();
-
-    if ( m_destroystream )
-        delete m_stream;
 }
 
 wxInputStream *wxStreamBuffer::GetInputStream() const
@@ -195,14 +182,15 @@ void wxStreamBuffer::SetBufferIO(size_t bufsize)
 
 void wxStreamBuffer::ResetBuffer()
 {
-    wxCHECK_RET( m_stream, _T("should have a stream in wxStreamBuffer") );
+    if ( m_stream )
+    {
+        m_stream->Reset();
+        m_stream->m_lastcount = 0;
+    }
 
-    m_stream->m_lasterror = wxStream_NOERROR;
-    m_stream->m_lastcount = 0;
-    if (m_mode == read && m_flushable)
-        m_buffer_pos = m_buffer_end;
-    else
-        m_buffer_pos = m_buffer_start;
+    m_buffer_pos = m_mode == read && m_flushable
+                        ? m_buffer_end
+                        : m_buffer_start;
 }
 
 // fill the buffer with as much data as possible (only for read buffers)
@@ -210,7 +198,9 @@ bool wxStreamBuffer::FillBuffer()
 {
     wxInputStream *inStream = GetInputStream();
 
-    wxCHECK_MSG( inStream, FALSE, _T("should have a stream in wxStreamBuffer") );
+    // It's legal to have no stream, so we don't complain about it just return FALSE
+    if ( !inStream )
+        return FALSE;
 
     size_t count = inStream->OnSysRead(m_buffer_start, m_buffer_size);
     if ( !count )
@@ -271,6 +261,7 @@ void wxStreamBuffer::GetFromBuffer(void *buffer, size_t size)
 void wxStreamBuffer::PutToBuffer(const void *buffer, size_t size)
 {
     size_t left = GetBytesLeft();
+
     if ( size > left )
     {
         if ( m_fixed )
@@ -315,7 +306,7 @@ void wxStreamBuffer::PutChar(char c)
     // if we don't have buffer at all, just forward this call to the stream,
     if ( !HasBuffer() )
     {
-        outStream->OnSysWrite(&c, 1);
+        outStream->OnSysWrite(&c, sizeof(c));
     }
     else
     {
@@ -323,11 +314,11 @@ void wxStreamBuffer::PutChar(char c)
         if ( !GetDataLeft() && !FlushBuffer() )
         {
             // we don't
-            SetError(wxStream_WRITE_ERR);
+            SetError(wxSTREAM_WRITE_ERROR);
         }
         else
         {
-            PutToBuffer(&c, 1);
+            PutToBuffer(&c, sizeof(c));
             m_stream->m_lastcount = 1;
         }
     }
@@ -340,12 +331,12 @@ char wxStreamBuffer::Peek()
 
     if ( !GetDataLeft() )
     {
-        SetError(wxStream_READ_ERR);
+        SetError(wxSTREAM_READ_ERROR);
         return 0;
     }
 
     char c;
-    GetFromBuffer(&c, 1);
+    GetFromBuffer(&c, sizeof(c));
     m_buffer_pos--;
 
     return c;
@@ -360,18 +351,18 @@ char wxStreamBuffer::GetChar()
     char c;
     if ( !HasBuffer() )
     {
-        inStream->OnSysRead(&c, 1);
+        inStream->OnSysRead(&c, sizeof(c));
     }
     else
     {
         if ( !GetDataLeft() )
         {
-            SetError(wxStream_READ_ERR);
+            SetError(wxSTREAM_READ_ERROR);
             c = 0;
         }
         else
         {
-            GetFromBuffer(&c, 1);
+            GetFromBuffer(&c, sizeof(c));
             m_stream->m_lastcount = 1;
         }
     }
@@ -381,16 +372,18 @@ char wxStreamBuffer::GetChar()
 
 size_t wxStreamBuffer::Read(void *buffer, size_t size)
 {
-    wxInputStream *inStream = GetInputStream();
-
-    wxCHECK_MSG( inStream, 0, _T("should have a stream in wxStreamBuffer") );
-
     // lasterror is reset before all new IO calls
-    m_stream->m_lasterror = wxStream_NOERROR;
+    if ( m_stream )
+        m_stream->Reset();
 
+    size_t read;
     if ( !HasBuffer() )
     {
-        m_stream->m_lastcount = inStream->OnSysRead(buffer, size);
+        wxInputStream *inStream = GetInputStream();
+
+        wxCHECK_MSG( inStream, 0, _T("should have a stream in wxStreamBuffer") );
+
+        read = inStream->OnSysRead(buffer, size);
     }
     else // we have a buffer, use it
     {
@@ -410,7 +403,7 @@ size_t wxStreamBuffer::Read(void *buffer, size_t size)
 
                 if ( !FillBuffer() )
                 {
-                    SetError(wxStream_EOF);
+                    SetError(wxSTREAM_EOF);
                     break;
                 }
             }
@@ -421,10 +414,13 @@ size_t wxStreamBuffer::Read(void *buffer, size_t size)
             }
         }
 
-        m_stream->m_lastcount = orig_size - size;
+        read = orig_size - size;
     }
 
-    return m_stream->m_lastcount;
+    if ( m_stream )
+        m_stream->m_lastcount = read;
+
+    return read;
 }
 
 // this should really be called "Copy()"
@@ -452,17 +448,22 @@ size_t wxStreamBuffer::Read(wxStreamBuffer *dbuf)
 
 size_t wxStreamBuffer::Write(const void *buffer, size_t size)
 {
-    wxOutputStream *outStream = GetOutputStream();
-
-    wxCHECK_MSG( outStream, 0, _T("should have a stream in wxStreamBuffer") );
+    if (m_stream)
+    {
+        // lasterror is reset before all new IO calls
+        m_stream->Reset();
+    }
 
-    // lasterror is reset before all new IO calls
-    m_stream->m_lasterror = wxStream_NOERROR;
+    size_t ret = 0;
 
     if ( !HasBuffer() && m_fixed )
     {
+        wxOutputStream *outStream = GetOutputStream();
+
+        wxCHECK_MSG( outStream, 0, _T("should have a stream in wxStreamBuffer") );
+
         // no buffer, just forward the call to the stream
-        m_stream->m_lastcount = outStream->OnSysWrite(buffer, size);
+        ret = outStream->OnSysWrite(buffer, size);
     }
     else // we [may] have a buffer, use it
     {
@@ -480,6 +481,7 @@ size_t wxStreamBuffer::Write(const void *buffer, size_t size)
             //
             // FIXME: fine, but if it fails we should (re)try writing it by
             //        chunks as this will (hopefully) always work (VZ)
+
             if ( size > left && m_fixed )
             {
                 PutToBuffer(buffer, left);
@@ -488,7 +490,7 @@ size_t wxStreamBuffer::Write(const void *buffer, size_t size)
 
                 if ( !FlushBuffer() )
                 {
-                    SetError(wxStream_WRITE_ERR);
+                    SetError(wxSTREAM_WRITE_ERROR);
 
                     break;
                 }
@@ -502,10 +504,16 @@ size_t wxStreamBuffer::Write(const void *buffer, size_t size)
             }
         }
 
-        m_stream->m_lastcount = orig_size - size;
+        ret = orig_size - size;
     }
 
-    return m_stream->m_lastcount;
+    if (m_stream)
+    {
+        // i am not entirely sure what we do this for
+        m_stream->m_lastcount = ret;
+    }
+
+    return ret;
 }
 
 size_t wxStreamBuffer::Write(wxStreamBuffer *sbuf)
@@ -615,10 +623,8 @@ off_t wxStreamBuffer::Tell() const
 {
     off_t pos;
 
-    // only ask the stream for position if we have a real stream and not a
-    // dummy one which we created ourselves, otherwise we'd call
-    // wxStream::OnSysTell() which would always return wxInvalidOffset
-    if ( !m_destroystream )
+    // ask the stream for position if we have a real one
+    if ( m_stream )
     {
         pos = m_stream->OnSysTell();
         if ( pos == wxInvalidOffset )
@@ -643,7 +649,7 @@ off_t wxStreamBuffer::Tell() const
 
 wxStreamBase::wxStreamBase()
 {
-    m_lasterror = wxStream_NOERROR;
+    m_lasterror = wxSTREAM_NO_ERROR;
     m_lastcount = 0;
 }
 
@@ -677,31 +683,19 @@ wxInputStream::~wxInputStream()
     free(m_wback);
 }
 
-size_t wxInputStream::OnSysRead(void * WXUNUSED(buffer),
-                                size_t WXUNUSED(bufsize))
+bool wxInputStream::CanRead() const
 {
-    return 0;
+    // we don't know if there is anything to read or not and by default we
+    // prefer to be optimistic and try to read data unless we know for sure
+    // there is no more of it
+    return m_lasterror != wxSTREAM_EOF;
 }
 
 bool wxInputStream::Eof() const
 {
-    wxInputStream *self = wxConstCast(this, wxInputStream);
-
-    char c;
-    self->Read(&c, 1);
-
-    // some streams can know that they're at EOF before actually trying to
-    // read beyond the end of stream (e.g. files) while others have no way of
-    // knowing it, so to provide the same behaviour in all cases we only
-    // return TRUE from here if the character really couldn't be read
-    if ( !self->LastRead() && GetLastError() == wxSTREAM_EOF )
-    {
-        return TRUE;
-    }
-
-    self->Ungetch(c);
-
-    return FALSE;
+    // the only way the base class can know we're at EOF is when we'd already
+    // tried to read beyond it in which case last error is set accordingly
+    return GetLastError() == wxSTREAM_EOF;
 }
 
 char *wxInputStream::AllocSpaceWBack(size_t needed_size)
@@ -730,7 +724,7 @@ char *wxInputStream::AllocSpaceWBack(size_t needed_size)
     return m_wback;
 }
 
-size_t wxInputStream::GetWBack(void *buf, size_t bsize)
+size_t wxInputStream::GetWBack(void *buf, size_t size)
 {
     if (!m_wback)
         return 0;
@@ -738,13 +732,13 @@ size_t wxInputStream::GetWBack(void *buf, size_t bsize)
     // how many bytes do we have in the buffer?
     size_t toget = m_wbacksize - m_wbackcur;
 
-    if ( bsize < toget )
+    if ( size < toget )
     {
         // we won't read everything
-        toget = bsize;
+        toget = size;
     }
 
-    // copy the data from the cache 
+    // copy the data from the cache
     memcpy(buf, m_wback + m_wbackcur, toget);
 
     m_wbackcur += toget;
@@ -783,13 +777,13 @@ size_t wxInputStream::Ungetch(const void *buf, size_t bufsize)
 
 bool wxInputStream::Ungetch(char c)
 {
-    return Ungetch(&c, sizeof(char)) != 0;
+    return Ungetch(&c, sizeof(c)) != 0;
 }
 
 char wxInputStream::GetC()
 {
     char c;
-    Read(&c, 1);
+    Read(&c, sizeof(c));
     return c;
 }
 
@@ -811,6 +805,13 @@ wxInputStream& wxInputStream::Read(void *buf, size_t size)
             break;
         }
 
+        if ( p != buf && !CanRead() )
+        {
+            // we have already read something and we would block in OnSysRead()
+            // now: don't do it but return immediately
+            break;
+        }
+
         read = OnSysRead(p, size);
         if ( !read )
         {
@@ -825,8 +826,8 @@ wxInputStream& wxInputStream::Read(void *buf, size_t size)
 char wxInputStream::Peek()
 {
     char c;
-    Read(&c, 1);
-    if (m_lasterror == wxStream_NOERROR)
+    Read(&c, sizeof(c));
+    if (m_lasterror == wxSTREAM_NO_ERROR)
     {
         Ungetch(c);
         return c;
@@ -838,13 +839,17 @@ char wxInputStream::Peek()
 wxInputStream& wxInputStream::Read(wxOutputStream& stream_out)
 {
     char buf[BUF_TEMP_SIZE];
-    size_t bytes_read = BUF_TEMP_SIZE;
 
-    while (bytes_read == BUF_TEMP_SIZE)
+    for ( ;; )
     {
-        bytes_read = Read(buf, bytes_read).LastRead();
-        bytes_read = stream_out.Write(buf, bytes_read).LastWrite();
+        size_t bytes_read = Read(buf, WXSIZEOF(buf)).LastRead();
+        if ( !bytes_read )
+            break;
+
+        if ( stream_out.Write(buf, bytes_read).LastWrite() != bytes_read )
+            break;
     }
+
     return *this;
 }
 
@@ -857,7 +862,7 @@ off_t wxInputStream::SeekI(off_t pos, wxSeekMode mode)
 
     // I don't know whether it should be put as well in wxFileInputStream::OnSysSeek
     if (m_lasterror==wxSTREAM_EOF)
-        m_lasterror=wxSTREAM_NOERROR;
+        m_lasterror=wxSTREAM_NO_ERROR;
 
     /* RR: A call to SeekI() will automatically invalidate any previous
        call to Ungetch(), otherwise it would be possible to SeekI() to
@@ -868,11 +873,11 @@ off_t wxInputStream::SeekI(off_t pos, wxSeekMode mode)
        buffer if possible, but is it really needed? It would only work
        when seeking in wxFromCurrent mode, else it would invalidate
        anyway... */
-       
+
     if (m_wback)
     {
         wxLogDebug( wxT("Seeking in stream which has data written back to it.") );
-        
+
         free(m_wback);
         m_wback = NULL;
         m_wbacksize = 0;
@@ -913,7 +918,7 @@ size_t wxOutputStream::OnSysWrite(const void * WXUNUSED(buffer),
 
 void wxOutputStream::PutC(char c)
 {
-    Write(&c, 1);
+    Write(&c, sizeof(c));
 }
 
 wxOutputStream& wxOutputStream::Write(const void *buffer, size_t size)
@@ -1072,7 +1077,7 @@ char wxBufferedInputStream::Peek()
 wxInputStream& wxBufferedInputStream::Read(void *buf, size_t size)
 {
     // reset the error flag
-    m_lasterror = wxStream_NOERROR;
+    Reset();
 
     // first read from the already cached data
     m_lastcount = GetWBack(buf, size);
@@ -1100,18 +1105,18 @@ off_t wxBufferedInputStream::SeekI(off_t pos, wxSeekMode mode)
     // RR: Look at wxInputStream for comments.
 
     if (m_lasterror==wxSTREAM_EOF)
-        m_lasterror=wxSTREAM_NOERROR;
+        Reset();
 
     if (m_wback)
     {
         wxLogDebug( wxT("Seeking in stream which has data written back to it.") );
-        
+
         free(m_wback);
         m_wback = NULL;
         m_wbacksize = 0;
         m_wbackcur = 0;
     }
-    
+
     return m_i_streambuf->Seek(pos, mode);
 }
 
@@ -1121,7 +1126,7 @@ off_t wxBufferedInputStream::TellI() const
 
     if (pos != wxInvalidOffset)
         pos -= (m_wbacksize - m_wbackcur);
-        
+
     return pos;
 }
 
diff --git a/src/common/string.cpp b/src/common/string.cpp
index 32a0adab79..b120724457 100644
--- a/src/common/string.cpp
+++ b/src/common/string.cpp
@@ -229,24 +229,38 @@ wxString::wxString(const void *pStart, const void *pEnd)
 // from multibyte string
 wxString::wxString(const char *psz, wxMBConv& conv, size_t nLength)
 {
-  // first get necessary size
-  size_t nLen = psz ? conv.MB2WC((wchar_t *) NULL, psz, 0) : 0;
+    // first get the size of the buffer we need
+    size_t nLen;
+    if ( psz )
+    {
+        // calculate the needed size ourselves or use a provide one
+        nLen = nLength == wxSTRING_MAXLEN ? conv.MB2WC(NULL, psz, 0) : nLength;
+    }
+    else
+    {
+        // nothing to convert
+        nLen = 0;
+    }
 
-  // nLength is number of *Unicode* characters here!
-  if ((nLen != (size_t)-1) && (nLen > nLength))
-    nLen = nLength;
+    // anything to do?
+    if ( (nLen != 0) && (nLen != (size_t)-1) )
+    {
+        if ( !AllocBuffer(nLen) )
+        {
+            wxFAIL_MSG( _T("out of memory in wxString::wxString") );
+            return;
+        }
 
-  // empty?
-  if ( (nLen != 0) && (nLen != (size_t)-1) ) {
-    if ( !AllocBuffer(nLen) ) {
-      wxFAIL_MSG( _T("out of memory in wxString::wxString") );
-      return;
+        // MB2WC wants the buffer size, not the string length
+        if ( conv.MB2WC(m_pchData, psz, nLen + 1) != (size_t)-1 )
+        {
+            // initialized ok
+            return;
+        }
+        //else: the conversion failed -- leave the string empty (what else?)
     }
-    conv.MB2WC(m_pchData, psz, nLen);
-  }
-  else {
+
     Init();
-  }
 }
 
 #else // ANSI
@@ -255,27 +269,38 @@ wxString::wxString(const char *psz, wxMBConv& conv, size_t nLength)
 // from wide string
 wxString::wxString(const wchar_t *pwz, wxMBConv& conv, size_t nLength)
 {
-  // first get necessary size
-  size_t nLen = 0;
-  if (pwz)
-  {
-    if (nLength == wxSTRING_MAXLEN)
-      nLen = conv.WC2MB((char *) NULL, pwz, 0);
+    // first get the size of the buffer we need
+    size_t nLen;
+    if ( pwz )
+    {
+        // calculate the needed size ourselves or use a provide one
+        nLen = nLength == wxSTRING_MAXLEN ? conv.WC2MB(NULL, pwz, 0) : nLength;
+    }
     else
-      nLen = nLength;
-  }
+    {
+        // nothing to convert
+        nLen = 0;
+    }
 
-  // empty?
-  if ( (nLen != 0) && (nLen != (size_t)-1) ) {
-    if ( !AllocBuffer(nLen) ) {
-      wxFAIL_MSG( _T("out of memory in wxString::wxString") );
-      return;
+    // anything to do?
+    if ( (nLen != 0) && (nLen != (size_t)-1) )
+    {
+        if ( !AllocBuffer(nLen) )
+        {
+            wxFAIL_MSG( _T("out of memory in wxString::wxString") );
+            return;
+        }
+
+        // WC2MB wants the buffer size, not the string length
+        if ( conv.WC2MB(m_pchData, pwz, nLen + 1) != (size_t)-1 )
+        {
+            // initialized ok
+            return;
+        }
+        //else: the conversion failed -- leave the string empty (what else?)
     }
-    conv.WC2MB(m_pchData, pwz, nLen);
-  }
-  else {
+
     Init();
-  }
 }
 #endif // wxUSE_WCHAR_T
 
@@ -730,6 +755,16 @@ wxString wxString::FromAscii(const char *ascii)
     return res;
 }
 
+wxString wxString::FromAscii(const char ascii)
+{
+    // What do we do with '\0' ?
+
+    wxString res;
+    res += (wchar_t)(unsigned char) ascii;
+    
+    return res;
+}
+
 const wxCharBuffer wxString::ToAscii() const
 {
     // this will allocate enough space for the terminating NUL too
@@ -1752,7 +1787,7 @@ void wxArrayString::Copy(const wxArrayString& src)
 void wxArrayString::Grow(size_t nIncrement)
 {
   // only do it if no more place
-  if ( m_nCount == m_nSize ) {
+  if ( (m_nSize - m_nCount) < nIncrement ) {
     // if ARRAY_DEFAULT_INITIAL_SIZE were set to 0, the initially empty would
     // be never resized!
     #if ARRAY_DEFAULT_INITIAL_SIZE == 0
diff --git a/src/common/timercmn.cpp b/src/common/timercmn.cpp
index 3bf88317e8..28f69dae3b 100644
--- a/src/common/timercmn.cpp
+++ b/src/common/timercmn.cpp
@@ -36,6 +36,7 @@
 #ifndef WX_PRECOMP
     #include "wx/intl.h"
     #include "wx/log.h"
+    #include "wx/thread.h"
 #endif
 
 #include "wx/timer.h"
@@ -131,6 +132,13 @@ void wxTimerBase::Notify()
 
 bool wxTimerBase::Start(int milliseconds, bool oneShot)
 {
+    // under MSW timers only work when they're started from the main thread so
+    // let the caller know about it
+#if wxUSE_THREADS
+    wxASSERT_MSG( wxThread::IsMain(),
+                  _T("timer can only be started from the main thread") );
+#endif // wxUSE_THREADS
+
     if ( IsRunning() )
     {
         // not stopping the already running timer might work for some
diff --git a/src/common/txtstrm.cpp b/src/common/txtstrm.cpp
index 14b8e4a626..62f2e5f72c 100644
--- a/src/common/txtstrm.cpp
+++ b/src/common/txtstrm.cpp
@@ -38,10 +38,17 @@
 // wxTextInputStream
 // ----------------------------------------------------------------------------
 
+#if wxUSE_UNICODE
+wxTextInputStream::wxTextInputStream(wxInputStream &s, const wxString &sep, wxMBConv& conv)
+  : m_input(s), m_separators(sep), m_conv(conv)
+{
+}
+#else
 wxTextInputStream::wxTextInputStream(wxInputStream &s, const wxString &sep)
   : m_input(s), m_separators(sep)
 {
 }
+#endif
 
 wxTextInputStream::~wxTextInputStream()
 {
@@ -234,12 +241,23 @@ wxString wxTextInputStream::ReadString()
 
 wxString wxTextInputStream::ReadLine()
 {
-    wxChar c;
     wxString line;
 
     while ( !m_input.Eof() )
     {
-        c = m_input.GetC();
+#if wxUSE_UNICODE
+        // FIXME: this is only works for single byte encodings
+        // How-to read a single char in an unkown encoding???
+        char buf[10];
+        buf[0] = m_input.GetC();
+        buf[1] = 0;
+        
+        wxChar wbuf[2];
+        m_conv.MB2WC( wbuf, buf, 2 );
+        wxChar c = wbuf[0];
+#else
+        char c = m_input.GetC();
+#endif
         
         if ( !m_input )
             break;
@@ -343,8 +361,15 @@ wxTextInputStream& wxTextInputStream::operator>>(float& f)
     return *this;
 }
 
+
+
+#if wxUSE_UNICODE
+wxTextOutputStream::wxTextOutputStream(wxOutputStream& s, wxEOL mode, wxMBConv& conv)
+  : m_output(s), m_conv(conv)
+#else
 wxTextOutputStream::wxTextOutputStream(wxOutputStream& s, wxEOL mode)
   : m_output(s)
+#endif
 {
     m_mode = mode;
     if (m_mode == wxEOL_NATIVE)
@@ -445,8 +470,13 @@ void wxTextOutputStream::WriteString(const wxString& string)
         out << c;
    }
 
-    // NB: we don't need to write the trailing NUL here
-    m_output.Write(out.c_str(), out.length() * sizeof(wxChar));
+    // We must not write the trailing NULL here
+#if wxUSE_UNICODE
+    wxCharBuffer buffer = m_conv.cWC2MB( out );
+    m_output.Write( (const char*) buffer, strlen( (const char*) buffer ) );
+#else
+    m_output.Write(out.c_str(), out.length() );
+#endif
 }
 
 wxTextOutputStream& wxTextOutputStream::operator<<(const wxChar *string)
@@ -463,12 +493,8 @@ wxTextOutputStream& wxTextOutputStream::operator<<(const wxString& string)
 
 wxTextOutputStream& wxTextOutputStream::operator<<(char c)
 {
-    // these strange manipulations are needed in Unicode mode
-    char buf[2];
-    buf[0] = c;
-    buf[1] = 0;
-
-    WriteString( wxString(buf) );
+    WriteString( wxString::FromAscii(c) );
+    
     return *this;
 }
 
diff --git a/src/common/unzip.h b/src/common/unzip.h
index 78dee0ee4d..acb137bc66 100644
--- a/src/common/unzip.h
+++ b/src/common/unzip.h
@@ -52,17 +52,37 @@ $Id$
 extern "C" {
 #endif
 
+/* include zlib.h if not done yet */
 #ifndef _ZLIB_H
-//#include "zlib.h"
-// normally, the compiler options should contain -I../zlib, but it is
-// apparently not the case for all MSW makefiles and so, unless we use
-// configure (which defines __WX_SETUP_H__) or it is explicitly overridden by
-// the user (who can define wxUSE_ZLIB_H_IN_PATH), we hardcode the path here
-#if defined(__WXMSW__) && !defined(__WX_SETUP_H__) && !defined(wxUSE_ZLIB_H_IN_PATH)
-   #include "../zlib/zlib.h"
-#else
-   #include "zlib.h"
+    /*
+       normally, the compiler options should contain -I../zlib, but it is
+       apparently not the case for all MSW makefiles and so, unless we use
+       configure (which defines __WX_SETUP_H__) or it is explicitly overridden
+       by the user (who can define wxUSE_ZLIB_H_IN_PATH), we hardcode the path
+       here
+     */
+#   if defined(__WXMSW__) && !defined(__WX_SETUP_H__) && !defined(wxUSE_ZLIB_H_IN_PATH)
+#       include "../zlib/zlib.h"
+#   else
+#       include "zlib.h"
+#   endif
+#endif /* _ZLIB_H */
+
+/*
+   Some system zlib.h headers are modified to not define the OF() macro but use
+   the (standard) __P() instead (example: NetBSD 1.6), work around this if
+   needed assuming that we deal with an ANSI C compiler (which is a natural
+   assumption in 21st century!)
+ */
+#ifndef OF
+#   define OF(args) args
 #endif
+
+/*
+   And on some systems ZEXPORT is not defined neither -- work around this too
+ */
+#ifndef ZEXPORT
+#   define ZEXPORT
 #endif
 
 #if defined(STRICTUNZIP) || defined(STRICTZIPUNZIP)
diff --git a/src/common/url.cpp b/src/common/url.cpp
index 8ae14ec4e9..16e2689e9a 100644
--- a/src/common/url.cpp
+++ b/src/common/url.cpp
@@ -65,7 +65,7 @@ wxURL::wxURL(const wxString& url)
 #if wxUSE_SOCKETS
     if ( ms_useDefaultProxy && !ms_proxyDefault )
     {
-        SetDefaultProxy(getenv("HTTP_PROXY"));
+        SetDefaultProxy( wxGetenv(wxT("HTTP_PROXY")) );
 
         if ( !ms_proxyDefault )
         {
diff --git a/src/common/utilscmn.cpp b/src/common/utilscmn.cpp
index d88d0e5206..2cc90ec0e9 100644
--- a/src/common/utilscmn.cpp
+++ b/src/common/utilscmn.cpp
@@ -98,134 +98,10 @@
     const wxChar *wxFatalErrorStr = wxT("wxWindows Fatal Error");
 #endif // WXWIN_COMPATIBILITY_2_2
 
-// ----------------------------------------------------------------------------
-// function protoypes
-// ----------------------------------------------------------------------------
-
 // ============================================================================
 // implementation
 // ============================================================================
 
-// ----------------------------------------------------------------------------
-// string functions
-// ----------------------------------------------------------------------------
-
-#if defined(__WXMAC__) && !defined(__DARWIN__)
-int strcasecmp(const char *str_1, const char *str_2)
-{
-  register char c1, c2;
-  do {
-    c1 = tolower(*str_1++);
-    c2 = tolower(*str_2++);
-  } while ( c1 && (c1 == c2) );
-
-  return c1 - c2;
-}
-
-int strncasecmp(const char *str_1, const char *str_2, size_t maxchar)
-{
-
-  register char c1, c2;
-  while( maxchar--)
-  {
-    c1 = tolower(*str_1++);
-    c2 = tolower(*str_2++);
-
-    if ( !c1 || c1!=c2 )
-                  return c1 - c2;
-
-  } ;
-
-  return 0 ;
-
-}
-#endif // __WXMAC__ && !__DARWIN__
-
-#if defined( __VMS__ ) && ( __VMS_VER < 70000000 )
-// we have no strI functions under VMS, therefore I have implemented
-// an inefficient but portable version: convert copies of strings to lowercase
-// and then use the normal comparison
-static void myLowerString(char *s)
-{
-  while(*s){
-    if(isalpha(*s)) *s = (char)tolower(*s);
-    s++;
-  }
-}
-
-int strcasecmp(const char *str_1, const char *str_2)
-{
-  char *temp1 = new char[strlen(str_1)+1];
-  char *temp2 = new char[strlen(str_2)+1];
-  strcpy(temp1,str_1);
-  strcpy(temp2,str_2);
-  myLowerString(temp1);
-  myLowerString(temp2);
-
-  int result = wxStrcmp(temp1,temp2);
-  delete[] temp1;
-  delete[] temp2;
-
-  return(result);
-}
-
-int strncasecmp(const char *str_1, const char *str_2, size_t maxchar)
-{
-  char *temp1 = new char[strlen(str_1)+1];
-  char *temp2 = new char[strlen(str_2)+1];
-  strcpy(temp1,str_1);
-  strcpy(temp2,str_2);
-  myLowerString(temp1);
-  myLowerString(temp2);
-
-  int result = strncmp(temp1,temp2,maxchar);
-  delete[] temp1;
-  delete[] temp2;
-
-  return(result);
-}
-#endif // __VMS__
-
-#if defined(__WINDOWS__) && !defined(__WXMICROWIN__) && !defined(__WXWINE__)
-
-#ifndef __GNUWIN32__
-#ifndef __MWERKS__
-#define strcasecmp stricmp
-#define strncasecmp strnicmp
-#else
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#endif
-#endif
-
-#else
-
-#ifdef __EMX__
-#define strcasecmp stricmp
-#define strncasecmp strnicmp
-#endif
-
-// This declaration is missing in SunOS!
-// (Yes, I know it is NOT ANSI-C but its in BSD libc)
-#if defined(__xlC) || defined(__AIX__) || defined(__GNUG__)
-extern "C"
-{
-  int strcasecmp (const char *, const char *);
-  int strncasecmp (const char *, const char *, size_t);
-}
-#endif
-#endif  /* __WXMSW__ */
-
-#ifdef __WXPM__
-#define strcasecmp stricmp
-#define strncasecmp strnicmp
-#endif
-
-#ifdef __WATCOMC__
-#define strcasecmp stricmp
-#define strncasecmp strnicmp
-#endif
-
 wxChar *
 copystring (const wxChar *s)
 {
@@ -360,9 +236,9 @@ wxString wxDecToHex(int dec)
     return wxString(buf);
 }
 
-// Match a string INDEPENDENT OF CASE
+#if WXWIN_COMPATIBILITY_2
 bool
-StringMatch (const char *str1, const char *str2, bool subString, bool exact)
+StringMatch (const wxChar *str1, const wxChar *str2, bool subString, bool exact)
 {
   if (str1 == NULL || str2 == NULL)
     return FALSE;
@@ -371,43 +247,44 @@ StringMatch (const char *str1, const char *str2, bool subString, bool exact)
 
   if (subString)
     {
-      int len1 = strlen (str1);
-      int len2 = strlen (str2);
+      int len1 = wxStrlen (str1);
+      int len2 = wxStrlen (str2);
       int i;
 
       // Search for str1 in str2
       // Slow .... but acceptable for short strings
       for (i = 0; i <= len2 - len1; i++)
         {
-          if (strncasecmp (str1, str2 + i, len1) == 0)
+          if (wxStrnicmp (str1, str2 + i, len1) == 0)
             return TRUE;
         }
     }
   else if (exact)
     {
-      if (strcasecmp (str1, str2) == 0)
+      if (wxStricmp (str1, str2) == 0)
         return TRUE;
     }
   else
     {
-      int len1 = strlen (str1);
-      int len2 = strlen (str2);
+      int len1 = wxStrlen (str1);
+      int len2 = wxStrlen (str2);
 
-      if (strncasecmp (str1, str2, wxMin (len1, len2)) == 0)
+      if (wxStrnicmp (str1, str2, wxMin (len1, len2)) == 0)
         return TRUE;
     }
 
   return FALSE;
 }
+#endif
 
 // Return the current date/time
 // [volatile]
 wxString wxNow()
 {
-  time_t now = time((time_t *) NULL);
-  char *date = ctime(&now);
-  date[24] = '\0';
-  return wxString(date);
+    time_t now = time((time_t *) NULL);
+    char *date = ctime(&now);
+    date[24] = '\0';
+    return wxString::FromAscii(date);
 }
 
 #if wxUSE_GUI
@@ -1185,6 +1062,38 @@ wxString wxGetCurrentDir()
 // wxExecute
 // ----------------------------------------------------------------------------
 
+// wxDoExecuteWithCapture() helper: reads an entire stream into one array
+//
+// returns TRUE if ok, FALSE if error
+static bool ReadAll(wxInputStream *is, wxArrayString& output)
+{
+    wxCHECK_MSG( is, FALSE, _T("NULL stream in wxExecute()?") );
+
+    // the stream could be already at EOF or in wxSTREAM_BROKEN_PIPE state
+    is->Reset();
+
+    wxTextInputStream tis(*is);
+
+    bool cont = TRUE;
+    while ( cont )
+    {
+        wxString line = tis.ReadLine();
+        if ( is->Eof() )
+            break;
+
+        if ( !*is )
+        {
+            cont = FALSE;
+        }
+        else
+        {
+            output.Add(line);
+        }
+    }
+
+    return cont;
+}
+
 // this is a private function because it hasn't a clean interface: the first
 // array is passed by reference, the second by pointer - instead we have 2
 // public versions of wxExecute() below
@@ -1206,51 +1115,15 @@ static long wxDoExecuteWithCapture(const wxString& command,
 #if wxUSE_STREAMS
     if ( rc != -1 )
     {
-        wxInputStream* is = process->GetInputStream();
-        wxCHECK_MSG( is, -1, _T("if wxExecute() succeded, stream can't be NULL") );
-        wxTextInputStream tis(*is);
+        if ( !ReadAll(process->GetInputStream(), output) )
+            rc = -1;
 
-        wxTextInputStream *tes = NULL;
-        wxInputStream *es = NULL;
         if ( error )
         {
-            es = process->GetErrorStream();
-
-            wxCHECK_MSG( es, -1, _T("stderr can't be NULL") );
-
-            tes = new wxTextInputStream(*es);
-        }
-
-        bool cont;
-        do
-        {
-            cont = FALSE;
-
-            if ( !is->Eof() && is->IsOk() )
-            {
-                wxString line = tis.ReadLine();
-                if ( is->LastError() )
-                    break;
-
-                cont = TRUE;
-
-                output.Add(line);
-            }
-
-            if ( error && !es->Eof() && es->IsOk() )
-            {
-                wxString line = tes->ReadLine();
-                if ( es->LastError() )
-                    break;
-
-                cont = TRUE;
-
-                error->Add(line);
-            }
+            if ( !ReadAll(process->GetErrorStream(), *error) )
+                rc = -1;
         }
-        while ( cont );
 
-        delete tes;
     }
 #endif // wxUSE_STREAMS
 
diff --git a/src/common/wfstream.cpp b/src/common/wfstream.cpp
index 2b2e68dc6f..56743fd214 100644
--- a/src/common/wfstream.cpp
+++ b/src/common/wfstream.cpp
@@ -235,10 +235,10 @@ size_t wxFFileInputStream::OnSysRead(void *buffer, size_t size)
     ret = m_file->Read(buffer, size);
 
     if (m_file->Eof())
-        m_lasterror = wxStream_EOF;
+        m_lasterror = wxSTREAM_EOF;
     if (ret == wxInvalidOffset)
     {
-        m_lasterror = wxStream_READ_ERR;
+        m_lasterror = wxSTREAM_READ_ERROR;
         ret = 0;
     }
 
@@ -307,9 +307,9 @@ size_t wxFFileOutputStream::OnSysWrite(const void *buffer, size_t size)
 {
     size_t ret = m_file->Write(buffer, size);
     if (m_file->Error())
-        m_lasterror = wxStream_WRITE_ERR;
+        m_lasterror = wxSTREAM_WRITE_ERROR;
     else
-        m_lasterror = wxStream_NOERROR;
+        m_lasterror = wxSTREAM_NO_ERROR;
     return ret;
 }
 
diff --git a/src/common/wincmn.cpp b/src/common/wincmn.cpp
index 205402dd18..7c40f7ce74 100644
--- a/src/common/wincmn.cpp
+++ b/src/common/wincmn.cpp
@@ -470,6 +470,15 @@ void wxWindowBase::Fit()
     //else: do nothing if we have no children
 }
 
+// fits virtual size (ie. scrolled area etc.) around children
+void wxWindowBase::FitInside()
+{
+    if ( GetChildren().GetCount() > 0 )
+    {
+        SetVirtualSize( GetBestVirtualSize() );
+    }
+}
+
 // return the size best suited for the current window
 wxSize wxWindowBase::DoGetBestSize() const
 {
@@ -593,8 +602,6 @@ void wxWindowBase::SetVirtualSizeHints( int minW, int minH,
     m_maxVirtualWidth = maxW;
     m_minVirtualHeight = minH;
     m_maxVirtualHeight = maxH;
-
-    SetVirtualSize( GetClientSize() );
 }
 
 void wxWindowBase::DoSetVirtualSize( int x, int y )
@@ -1757,10 +1764,16 @@ void wxWindowBase::UpdateWindowUI()
 #if wxUSE_TEXTCTRL
                 wxTextCtrl *text = wxDynamicCast(control, wxTextCtrl);
                 if ( text )
-                    text->SetValue(event.GetText());
+                {
+                	if ( event.GetText() != text->GetValue() )
+                    	text->SetValue(event.GetText());
+                }
                 else
 #endif // wxUSE_TEXTCTRL
-                    control->SetLabel(event.GetText());
+				{
+					if ( event.GetText() != control->GetLabel() )
+                    	control->SetLabel(event.GetText());
+                }
             }
         }
 
diff --git a/src/common/wxchar.cpp b/src/common/wxchar.cpp
index bca67b1228..cffcebd01b 100644
--- a/src/common/wxchar.cpp
+++ b/src/common/wxchar.cpp
@@ -50,40 +50,56 @@
 #if wxUSE_WCHAR_T
 size_t WXDLLEXPORT wxMB2WC(wchar_t *buf, const char *psz, size_t n)
 {
+  // assume that we have mbsrtowcs() too if we have wcsrtombs()
+#if HAVE_WCSRTOMBS
+  mbstate_t mbstate;
+  memset(&mbstate, 0, sizeof(mbstate_t));
+#endif
+
   if (buf) {
     if (!n || !*psz) {
       if (n) *buf = wxT('\0');
       return 0;
     }
+#ifdef HAVE_WCSRTOMBS
+    return mbsrtowcs(buf, &psz, n, &mbstate);
+#else
     return mbstowcs(buf, psz, n);
+#endif
   }
 
-  // assume that we have mbsrtowcs() too if we have wcsrtombs()
 #ifdef HAVE_WCSRTOMBS
-  mbstate_t mbstate;
   return mbsrtowcs((wchar_t *) NULL, &psz, 0, &mbstate);
-#else  // !GNU libc
+#else
   return mbstowcs((wchar_t *) NULL, psz, 0);
-#endif // GNU
+#endif
 }
 
 size_t WXDLLEXPORT wxWC2MB(char *buf, const wchar_t *pwz, size_t n)
 {
+#if HAVE_WCSRTOMBS
+  mbstate_t mbstate;
+  memset(&mbstate, 0, sizeof(mbstate_t));
+#endif
+
   if (buf) {
     if (!n || !*pwz) {
       // glibc2.1 chokes on null input
       if (n) *buf = '\0';
       return 0;
     }
+#if HAVE_WCSRTOMBS
+    return wcsrtombs(buf, &pwz, n, &mbstate);
+#else
     return wcstombs(buf, pwz, n);
+#endif
   }
 
 #if HAVE_WCSRTOMBS
-  mbstate_t mbstate;
   return wcsrtombs((char *) NULL, &pwz, 0, &mbstate);
-#else  // !GNU libc
+#else
   return wcstombs((char *) NULL, pwz, 0);
-#endif // GNU
+#endif
 }
 #endif // wxUSE_WCHAR_T
 
diff --git a/src/common/wxexpr.cpp b/src/common/wxexpr.cpp
index d868716226..3db96de17a 100644
--- a/src/common/wxexpr.cpp
+++ b/src/common/wxexpr.cpp
@@ -20,7 +20,7 @@
 #pragma hdrstop
 #endif
 
-#if 1 // wxUSE_PROLOGIO
+#if wxUSE_PROLOGIO
 
 #include <stdarg.h>
 #include <ctype.h>
diff --git a/src/common/xpmdecod.cpp b/src/common/xpmdecod.cpp
index e2aaefa573..1dc78c95d2 100644
--- a/src/common/xpmdecod.cpp
+++ b/src/common/xpmdecod.cpp
@@ -143,7 +143,7 @@ wxImage wxXPMDecoder::ReadFile(wxInputStream& stream)
     wxCharBuffer buffer(length);
 
     char *xpm_buffer = (char *)buffer.data();
-    if ( stream.Read(xpm_buffer, length).LastError() == wxSTREAM_READ_ERROR )
+    if ( stream.Read(xpm_buffer, length).GetLastError() == wxSTREAM_READ_ERROR )
         return wxNullImage;
     xpm_buffer[length] = '\0';
 
diff --git a/src/common/zipstrm.cpp b/src/common/zipstrm.cpp
index 9fbff10320..1ed942c0ea 100644
--- a/src/common/zipstrm.cpp
+++ b/src/common/zipstrm.cpp
@@ -43,12 +43,12 @@ wxZipInputStream::wxZipInputStream(const wxString& archive, const wxString& file
     m_Archive = (void*) unzOpen(archive.mb_str());
     if (m_Archive == NULL)
     {
-        m_lasterror = wxStream_READ_ERR;
+        m_lasterror = wxSTREAM_READ_ERROR;
         return;
     }
     if (unzLocateFile((unzFile)m_Archive, file.mb_str(), 0) != UNZ_OK)
     {
-        m_lasterror = wxStream_READ_ERR;
+        m_lasterror = wxSTREAM_READ_ERROR;
         return;
     }
 
@@ -56,7 +56,7 @@ wxZipInputStream::wxZipInputStream(const wxString& archive, const wxString& file
 
     if (unzOpenCurrentFile((unzFile)m_Archive) != UNZ_OK)
     {
-        m_lasterror = wxStream_READ_ERR;
+        m_lasterror = wxSTREAM_READ_ERROR;
         return;
     }
     m_Size = (size_t)zinfo.uncompressed_size;
@@ -90,7 +90,7 @@ size_t wxZipInputStream::OnSysRead(void *buffer, size_t bufsize)
 
     if ( m_Pos >= (off_t)m_Size )
     {
-        m_lasterror = wxStream_EOF;
+        m_lasterror = wxSTREAM_EOF;
         return 0;
     }
 
@@ -132,7 +132,7 @@ off_t wxZipInputStream::OnSysSeek(off_t seek, wxSeekMode mode)
         unzCloseCurrentFile((unzFile)m_Archive);
         if (unzOpenCurrentFile((unzFile)m_Archive) != UNZ_OK)
         {
-            m_lasterror = wxStream_READ_ERR;
+            m_lasterror = wxSTREAM_READ_ERROR;
             return m_Pos;
         }
         toskip = nextpos;
diff --git a/src/common/zstream.cpp b/src/common/zstream.cpp
index 4c7a7bf0ec..f1380d5b64 100644
--- a/src/common/zstream.cpp
+++ b/src/common/zstream.cpp
@@ -89,17 +89,17 @@ size_t wxZlibInputStream::OnSysRead(void *buffer, size_t size)
       m_inflate->next_in = m_z_buffer;
       m_inflate->avail_in = m_parent_i_stream->LastRead();
 
-      if (m_parent_i_stream->LastError() != wxStream_NOERROR &&
-          m_parent_i_stream->LastError() != wxStream_EOF)
+      wxStreamError err = m_parent_i_stream->GetLastError();
+      if ( err != wxSTREAM_NO_ERROR && err != wxSTREAM_EOF)
       { 
-        m_lasterror = m_parent_i_stream->LastError();
+        m_lasterror = err;
         return 0; // failed to read anything
       }
 
       if ( m_inflate->avail_in == 0 )
       {
           // EOF
-          m_lasterror = wxStream_EOF;
+          m_lasterror = wxSTREAM_EOF;
           break;
       }
     }
@@ -210,7 +210,7 @@ size_t wxZlibOutputStream::OnSysWrite(const void *buffer, size_t size)
 
     if (m_deflate->avail_out == 0) {
       m_parent_o_stream->Write(m_z_buffer, m_z_size);
-      if (m_parent_o_stream->LastError() != wxStream_NOERROR)
+      if ( !*m_parent_o_stream )
         return (size - m_deflate->avail_in);
 
       m_deflate->next_out = m_z_buffer;
diff --git a/src/files.lst b/src/files.lst
index 5819cb2fb6..e7729aea61 100644
--- a/src/files.lst
+++ b/src/files.lst
@@ -180,6 +180,7 @@ ALL_HEADERS = \
 		unix/gsockunx.h \
 		unix/mimetype.h \
 		msw/dde.h \
+		msw/gccpriv.h \
 		msw/mimetype.h \
 		msw/winundef.h \
 		protocol/file.h \
diff --git a/src/generic/busyinfo.cpp b/src/generic/busyinfo.cpp
index 5acc107333..830546db0c 100644
--- a/src/generic/busyinfo.cpp
+++ b/src/generic/busyinfo.cpp
@@ -12,7 +12,7 @@
 
 #include "wx/wxprec.h"
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
diff --git a/src/generic/calctrl.cpp b/src/generic/calctrl.cpp
index 61eeb94708..b1e3317091 100644
--- a/src/generic/calctrl.cpp
+++ b/src/generic/calctrl.cpp
@@ -155,6 +155,19 @@ wxYearSpinCtrl::wxYearSpinCtrl(wxCalendarCtrl *cal)
 // wxCalendarCtrl
 // ----------------------------------------------------------------------------
 
+wxCalendarCtrl::wxCalendarCtrl(wxWindow *parent,
+                   wxWindowID id,
+                   const wxDateTime& date,
+                   const wxPoint& pos,
+                   const wxSize& size,
+                   long style,
+                   const wxString& name)
+{
+    Init();
+    
+    (void)Create(parent, id, date, pos, size, style, name);
+}
+
 void wxCalendarCtrl::Init()
 {
     m_comboMonth = NULL;
diff --git a/src/generic/dcpsg.cpp b/src/generic/dcpsg.cpp
index c3d1807494..25c72a2a11 100644
--- a/src/generic/dcpsg.cpp
+++ b/src/generic/dcpsg.cpp
@@ -204,7 +204,8 @@ static const char *wxPostScriptHeaderColourImage = "\
   } ifelse          %% end of 'false' case\n\
 ";
 
-#ifndef __WXGTK20__
+#if wxUSE_PANGO
+#else
 static char wxPostScriptHeaderReencodeISO1[] =
     "\n/reencodeISO {\n"
 "dup dup findfont dup length dict begin\n"
@@ -886,7 +887,8 @@ void wxPostScriptDC::SetFont( const wxFont& font )
 
     m_font = font;
 
-#ifndef __WXGTK20__
+#if wxUSE_PANGO
+#else
     int Style = m_font.GetStyle();
     int Weight = m_font.GetWeight();
 
@@ -1117,13 +1119,18 @@ void wxPostScriptDC::SetBrush( const wxBrush& brush )
     }
 }
 
-#ifdef __WXGTK20__
+#if wxUSE_PANGO
 
 #define PANGO_ENABLE_ENGINE
 
+#ifdef __WXGTK20__
 #include "wx/gtk/private.h"
-#include "wx/fontutil.h"
 #include "gtk/gtk.h"
+#else
+#include "wx/x11/private.h"
+#endif
+
+#include "wx/fontutil.h"
 #include <pango/pangoft2.h>
 #include <freetype/ftglyph.h>
 
@@ -1233,7 +1240,7 @@ void wxPostScriptDC::DoDrawText( const wxString& text, wxCoord x, wxCoord y )
 {
     wxCHECK_RET( m_ok && m_pstream, wxT("invalid postscript dc") );
 
-#ifdef __WXGTK20__
+#if wxUSE_PANGO
     int dpi = GetResolution();
     dpi = 300;
     PangoContext *context = pango_ft2_get_context ( dpi, dpi );
@@ -1699,9 +1706,9 @@ bool wxPostScriptDC::StartDoc( const wxString& message )
 {
     wxCHECK_MSG( m_ok, FALSE, wxT("invalid postscript dc") );
 
-    if (m_printData.GetFilename() == "")
+    if (m_printData.GetFilename() == wxT(""))
     {
-        wxString filename = wxGetTempFileName("ps");
+        wxString filename = wxGetTempFileName( wxT("ps") );
         m_printData.SetFilename(filename);
     }
 
@@ -1754,7 +1761,8 @@ bool wxPostScriptDC::StartDoc( const wxString& message )
     fprintf( m_pstream, wxPostScriptHeaderEllipse );
     fprintf( m_pstream, wxPostScriptHeaderEllipticArc );
     fprintf( m_pstream, wxPostScriptHeaderColourImage );
-#ifndef __WXGTK20__
+#if wxUSE_PANGO
+#else
     fprintf( m_pstream, wxPostScriptHeaderReencodeISO1 );
     fprintf( m_pstream, wxPostScriptHeaderReencodeISO2 );
 #endif
@@ -1972,7 +1980,7 @@ void wxPostScriptDC::DoGetTextExtent(const wxString& string,
         return;
     }
     
-#ifdef __WXGTK20__
+#if wxUSE_PANGO
     int dpi = GetResolution();
     PangoContext *context = pango_ft2_get_context ( dpi, dpi );
     
@@ -2093,40 +2101,40 @@ void wxPostScriptDC::DoGetTextExtent(const wxString& string,
         lastStyle =  Style;
         lastWeight = Weight;
 
-        const char *name = NULL;
+        const wxChar *name = NULL;
 
         switch (Family)
         {
             case wxMODERN:
             case wxTELETYPE:
             {
-                if ((Style == wxITALIC) && (Weight == wxBOLD)) name = "CourBoO.afm";
-                else if ((Style != wxITALIC) && (Weight == wxBOLD)) name = "CourBo.afm";
-                else if ((Style == wxITALIC) && (Weight != wxBOLD)) name = "CourO.afm";
-                else name = "Cour.afm";
+                if ((Style == wxITALIC) && (Weight == wxBOLD)) name = wxT("CourBoO.afm");
+                else if ((Style != wxITALIC) && (Weight == wxBOLD)) name = wxT("CourBo.afm");
+                else if ((Style == wxITALIC) && (Weight != wxBOLD)) name = wxT("CourO.afm");
+                else name = wxT("Cour.afm");
                 break;
             }
             case wxROMAN:
             {
-                if ((Style == wxITALIC) && (Weight == wxBOLD)) name = "TimesBoO.afm";
-                else if ((Style != wxITALIC) && (Weight == wxBOLD)) name = "TimesBo.afm";
-                else if ((Style == wxITALIC) && (Weight != wxBOLD)) name = "TimesO.afm";
-                else name = "TimesRo.afm";
+                if ((Style == wxITALIC) && (Weight == wxBOLD)) name = wxT("TimesBoO.afm");
+                else if ((Style != wxITALIC) && (Weight == wxBOLD)) name = wxT("TimesBo.afm");
+                else if ((Style == wxITALIC) && (Weight != wxBOLD)) name = wxT("TimesO.afm");
+                else name = wxT("TimesRo.afm");
                 break;
             }
             case wxSCRIPT:
             {
-                name = "Zapf.afm";
+                name = wxT("Zapf.afm");
                 Style = wxNORMAL;
                 Weight = wxNORMAL;
             }
             case wxSWISS:
             default:
             {
-                if ((Style == wxITALIC) && (Weight == wxBOLD)) name = "HelvBoO.afm";
-                else if ((Style != wxITALIC) && (Weight == wxBOLD)) name = "HelvBo.afm";
-                else if ((Style == wxITALIC) && (Weight != wxBOLD)) name = "HelvO.afm";
-                else name = "Helv.afm";
+                if ((Style == wxITALIC) && (Weight == wxBOLD)) name = wxT("HelvBoO.afm");
+                else if ((Style != wxITALIC) && (Weight == wxBOLD)) name = wxT("HelvBo.afm");
+                else if ((Style == wxITALIC) && (Weight != wxBOLD)) name = wxT("HelvO.afm");
+                else name = wxT("Helv.afm");
                 break;
             }
         }
diff --git a/src/generic/dirctrlg.cpp b/src/generic/dirctrlg.cpp
index c7ed4450aa..5b1a43f09a 100644
--- a/src/generic/dirctrlg.cpp
+++ b/src/generic/dirctrlg.cpp
@@ -70,7 +70,9 @@
 
 #define INCL_BASE
 #include <os2.h>
+#ifndef __EMX__
 #include <direct.h>
+#endif
 #include <stdlib.h>
 #include <ctype.h>
 
diff --git a/src/generic/dirdlgg.cpp b/src/generic/dirdlgg.cpp
index 2900942781..7b51d075f7 100644
--- a/src/generic/dirdlgg.cpp
+++ b/src/generic/dirdlgg.cpp
@@ -250,7 +250,7 @@ void wxGenericDirDialog::OnShowHidden( wxCommandEvent& event )
     if (!m_dirCtrl)
         return;
 
-    m_dirCtrl->ShowHidden( event.GetInt() );
+    m_dirCtrl->ShowHidden( event.GetInt() != 0 );
 }
 
 void wxGenericDirDialog::OnNew( wxCommandEvent& WXUNUSED(event) )
diff --git a/src/generic/dragimgg.cpp b/src/generic/dragimgg.cpp
index d625524ed3..8e89afe823 100644
--- a/src/generic/dragimgg.cpp
+++ b/src/generic/dragimgg.cpp
@@ -139,12 +139,12 @@ bool wxGenericDragImage::Create(const wxString& str, const wxCursor& cursor)
     dc.SetFont(wxNullFont);
 
     wxMemoryDC dc2;
-    dc2.SetFont(font);
 
     // Sometimes GetTextExtent isn't accurate enough, so make it longer
     wxBitmap bitmap((int) ((w+2) * 1.5), (int) h+2);
     dc2.SelectObject(bitmap);
 
+    dc2.SetFont(font);
     dc2.SetBackground(* wxWHITE_BRUSH);
     dc2.Clear();
     dc2.SetBackgroundMode(wxTRANSPARENT);
diff --git a/src/generic/filedlgg.cpp b/src/generic/filedlgg.cpp
index 3890805a6d..ba0010d694 100644
--- a/src/generic/filedlgg.cpp
+++ b/src/generic/filedlgg.cpp
@@ -140,6 +140,7 @@ class wxFileCtrl : public wxListCtrl
 public:
     wxFileCtrl();
     wxFileCtrl( wxWindow *win,
+                wxStaticText *labelDir,
                 wxWindowID id,
                 const wxString &wild,
                 bool showHidden,
@@ -183,6 +184,9 @@ private:
     wxWindow     *m_goToParentControl;
     wxWindow     *m_newDirControl;
 
+    // the label showing the current directory
+    wxStaticText *m_labelDir;
+
     DECLARE_DYNAMIC_CLASS(wxFileCtrl);
     DECLARE_EVENT_TABLE()
 };
@@ -494,13 +498,13 @@ wxString wxFileData::GetFullName() const
 wxString wxFileData::GetHint() const
 {
     wxString s = m_fileName;
-    s += "  ";
-    if (m_isDir) s += _("<DIR> ");
-    else if (m_isLink) s += _("<LINK> ");
+    s += wxT("  ");
+    if (m_isDir) s += wxT("<DIR> ");
+    else if (m_isLink) s += wxT("<LINK> ");
     else
     {
         s += LongToString( m_size );
-        s += _(" bytes ");
+        s += wxT(" bytes ");
     }
     s += IntToString( m_day );
     s += wxT(".");
@@ -605,6 +609,7 @@ wxFileCtrl::wxFileCtrl()
 }
 
 wxFileCtrl::wxFileCtrl(wxWindow *win,
+                       wxStaticText *labelDir,
                        wxWindowID id,
                        const wxString& wild,
                        bool showHidden,
@@ -625,6 +630,8 @@ wxFileCtrl::wxFileCtrl(wxWindow *win,
     m_goToParentControl =
     m_newDirControl = NULL;
 
+    m_labelDir = labelDir;
+
     m_showHidden = showHidden;
 }
 
@@ -673,6 +680,10 @@ long wxFileCtrl::Add( wxFileData *fd, wxListItem &item )
 
 void wxFileCtrl::UpdateFiles()
 {
+    // don't do anything before ShowModal() call which sets m_dirName
+    if ( m_dirName.empty() )
+        return;
+
     wxBusyCursor bcur; // this may take a while...
 
     long my_style = GetWindowStyleFlag();
@@ -867,6 +878,8 @@ void wxFileCtrl::GoToParentDir()
             SetItemState( id, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED );
             EnsureVisible( id );
         }
+
+        m_labelDir->SetLabel(dir);
     }
 }
 
@@ -882,6 +895,8 @@ void wxFileCtrl::GoToDir( const wxString &dir )
     UpdateFiles();
     SetItemState( 0, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED );
     EnsureVisible( 0 );
+
+    m_labelDir->SetLabel(dir);
 }
 
 void wxFileCtrl::GetDir( wxString &dir )
@@ -988,7 +1003,7 @@ BEGIN_EVENT_TABLE(wxFileDialog,wxDialog)
         EVT_BUTTON(wxID_OK, wxFileDialog::OnListOk)
         EVT_LIST_ITEM_SELECTED(ID_LIST_CTRL, wxFileDialog::OnSelected)
         EVT_LIST_ITEM_ACTIVATED(ID_LIST_CTRL, wxFileDialog::OnActivated)
-        EVT_CHOICE(ID_CHOICE,wxFileDialog::OnChoice)
+        EVT_CHOICE(ID_CHOICE,wxFileDialog::OnChoiceFilter)
         EVT_TEXT_ENTER(ID_TEXT,wxFileDialog::OnTextEnter)
         EVT_CHECKBOX(ID_CHECK,wxFileDialog::OnCheck)
 END_EVENT_TABLE()
@@ -1061,9 +1076,12 @@ wxFileDialog::wxFileDialog(wxWindow *parent,
     }
     if ( firstWild.Left( 2 ) == wxT("*.") )
         m_filterExtension = firstWild.Mid( 1 );
-    if ( m_filterExtension == ".*" ) m_filterExtension = wxEmptyString;
+    if ( m_filterExtension == wxT(".*") )
+        m_filterExtension = wxEmptyString;
 
     // layout
+    
+    bool is_pda = (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA);
 
     wxBoxSizer *mainsizer = new wxBoxSizer( wxVERTICAL );
 
@@ -1114,13 +1132,13 @@ wxFileDialog::wxFileDialog(wxWindow *parent,
 #endif
     buttonsizer->Add( butNewDir, 0, wxALL, 5 );
 
-    if (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA)
+    if (is_pda)
         mainsizer->Add( buttonsizer, 0, wxALL | wxEXPAND, 0 );
     else
         mainsizer->Add( buttonsizer, 0, wxALL | wxEXPAND, 5 );
 
     wxBoxSizer *staticsizer = new wxBoxSizer( wxHORIZONTAL );
-    if (wxSystemSettings::GetScreenType() > wxSYS_SCREEN_PDA)
+    if (is_pda)
         staticsizer->Add( new wxStaticText( this, -1, _("Current directory:") ), 0, wxRIGHT, 10 );
     m_static = new wxStaticText( this, -1, m_dir );
     staticsizer->Add( m_static, 1 );
@@ -1130,14 +1148,15 @@ wxFileDialog::wxFileDialog(wxWindow *parent,
     if ( !(m_dialogStyle & wxMULTIPLE) )
         style2 |= wxLC_SINGLE_SEL;
 
-    m_list = new wxFileCtrl( this, ID_LIST_CTRL, firstWild, ms_lastShowHidden,
+    m_list = new wxFileCtrl( this, m_static, ID_LIST_CTRL,
+                             firstWild, ms_lastShowHidden,
                              wxDefaultPosition, wxSize(540,200),
                              style2);
 
     m_list->SetNewDirControl(butNewDir);
     m_list->SetGoToParentControl(butDirUp);
 
-    if (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA)
+    if (is_pda)
     {
         // PDAs have a different screen layout
         mainsizer->Add( m_list, 1, wxEXPAND | wxLEFT|wxRIGHT, 5 );
@@ -1215,31 +1234,38 @@ wxFileDialog::~wxFileDialog()
 int wxFileDialog::ShowModal()
 {
     m_list->GoToDir(m_dir);
+    m_text->SetValue(m_fileName);
 
     return wxDialog::ShowModal();
 }
 
+void wxFileDialog::DoSetFilterIndex(int filterindex)
+{
+    wxString *str = (wxString*) m_choice->GetClientData( filterindex );
+    m_list->SetWild( *str );
+    m_filterIndex = filterindex;
+    if ( str->Left(2) == wxT("*.") )
+    {
+        m_filterExtension = str->Mid(2);
+        if (m_filterExtension == _T("*"))
+            m_filterExtension.clear();
+    }
+    else
+    {
+        m_filterExtension.clear();
+    }
+}
+
 void wxFileDialog::SetFilterIndex( int filterindex )
 {
     m_choice->SetSelection( filterindex );
-    wxCommandEvent event;
-    event.SetInt( filterindex );
-    OnChoice( event );
+
+    DoSetFilterIndex(filterindex);
 }
 
-void wxFileDialog::OnChoice( wxCommandEvent &event )
+void wxFileDialog::OnChoiceFilter( wxCommandEvent &event )
 {
-    int index = (int)event.GetInt();
-    wxString *str = (wxString*) m_choice->GetClientData( index );
-    m_list->SetWild( *str );
-    m_filterIndex = index;
-    if ( str -> Left( 2 ) == wxT("*.") )
-    {
-        m_filterExtension = str -> Mid( 1 );
-        if (m_filterExtension == ".*") m_filterExtension = wxEmptyString;
-    }
-    else
-        m_filterExtension = wxEmptyString;
+    DoSetFilterIndex((int)event.GetInt());
 }
 
 void wxFileDialog::OnCheck( wxCommandEvent &event )
@@ -1286,8 +1312,6 @@ void wxFileDialog::HandleAction( const wxString &fn )
     {
         m_list->GoToParentDir();
         m_list->SetFocus();
-        m_list->GetDir( dir );
-        m_static->SetLabel( dir );
         return;
     }
 
@@ -1296,8 +1320,6 @@ void wxFileDialog::HandleAction( const wxString &fn )
     {
         m_list->GoToHomeDir();
         m_list->SetFocus();
-        m_list->GetDir( dir );
-        m_static->SetLabel( dir );
         return;
     }
 
@@ -1334,42 +1356,43 @@ void wxFileDialog::HandleAction( const wxString &fn )
     if (wxDirExists(filename))
     {
         m_list->GoToDir( filename );
-        m_list->GetDir( dir );
-        m_static->SetLabel( dir );
         return;
     }
 
-
-    if ( (m_dialogStyle & wxSAVE) && (m_dialogStyle & wxOVERWRITE_PROMPT) )
+    // append the default extension to the filename if it doesn't have any
+    //
+    // VZ: the logic of testing for !wxFileExists() only for the open file
+    //     dialog is not entirely clear to me, why don't we allow saving to a
+    //     file without extension as well?
+    if ( !(m_dialogStyle & wxOPEN) || !wxFileExists(filename) )
     {
-        if (filename.Find( wxT('.') ) == wxNOT_FOUND ||
-                filename.AfterLast( wxT('.') ).Find( wxFILE_SEP_PATH ) != wxNOT_FOUND)
-            filename << m_filterExtension;
-        if (wxFileExists( filename ))
+        wxString ext;
+        wxSplitPath(filename, NULL, NULL, &ext);
+        if ( ext.empty() )
         {
-            wxString msg;
-            msg.Printf( _("File '%s' already exists, do you really want to "
-                         "overwrite it?"), filename.c_str() );
-
-            if (wxMessageBox(msg, _("Confirm"), wxYES_NO) != wxYES)
-                return;
+            // append the first extension of the filter string
+            filename += m_filterExtension.BeforeFirst(_T(';'));
         }
     }
-    else if ( m_dialogStyle & wxOPEN )
+
+    // check that the file [doesn't] exist if necessary
+    if ( (m_dialogStyle & wxSAVE) &&
+            (m_dialogStyle & wxOVERWRITE_PROMPT) &&
+                wxFileExists( filename ) )
     {
-        if ( !wxFileExists( filename ) )
-            if (filename.Find( wxT('.') ) == wxNOT_FOUND ||
-                  filename.AfterLast( wxT('.') ).Find( wxFILE_SEP_PATH ) != wxNOT_FOUND)
-                filename << m_filterExtension;
+        wxString msg;
+        msg.Printf( _("File '%s' already exists, do you really want to "
+                     "overwrite it?"), filename.c_str() );
 
-        if ( m_dialogStyle & wxFILE_MUST_EXIST )
-        {
-            if ( !wxFileExists( filename ) )
-            {
-                wxMessageBox(_("Please choose an existing file."), _("Error"), wxOK | wxICON_ERROR );
-                return;
-            }
-        }
+        if (wxMessageBox(msg, _("Confirm"), wxYES_NO) != wxYES)
+            return;
+    }
+    else if ( (m_dialogStyle & wxOPEN) &&
+                (m_dialogStyle & wxFILE_MUST_EXIST) &&
+                    !wxFileExists(filename) )
+    {
+        wxMessageBox(_("Please choose an existing file."), _("Error"),
+                     wxOK | wxICON_ERROR );
     }
 
     SetPath( filename );
@@ -1413,20 +1436,12 @@ void wxFileDialog::OnUp( wxCommandEvent &WXUNUSED(event) )
 {
     m_list->GoToParentDir();
     m_list->SetFocus();
-    wxString dir;
-    m_list->GetDir( dir );
-    m_static->SetLabel( dir );
 }
 
 void wxFileDialog::OnHome( wxCommandEvent &WXUNUSED(event) )
 {
     m_list->GoToHomeDir();
     m_list->SetFocus();
-    wxString dir;
-    m_list->GetDir( dir );
-    m_static->SetLabel( dir );
-
-    m_text->SetFocus();
 }
 
 void wxFileDialog::OnNew( wxCommandEvent &WXUNUSED(event) )
diff --git a/src/generic/fontdlgg.cpp b/src/generic/fontdlgg.cpp
index 359424e7ec..13f1ca45cd 100644
--- a/src/generic/fontdlgg.cpp
+++ b/src/generic/fontdlgg.cpp
@@ -74,14 +74,14 @@ void wxFontPreviewer::OnPaint(wxPaintEvent& WXUNUSED(event))
 
     if ( font.Ok() )
     {
-        dc.SetFont(GetFont());
+        dc.SetFont(font);
         // Calculate vertical centre
         long w, h;
-        dc.GetTextExtent("X", &w, &h);
+        dc.GetTextExtent( wxT("X"), &w, &h);
         dc.SetTextForeground(GetForegroundColour());
         dc.SetClippingRegion(2, 2, size.x-4, size.y-4);
         dc.DrawText(_("ABCDEFGabcdefg12345"), 
-                    10, h/2 + size.y/2);
+                     10, size.y/2 - h/2);
         dc.DestroyClippingRegion();
     }
 }
@@ -191,6 +191,10 @@ bool wxGenericFontDialog::DoCreate(wxWindow *parent)
   InitializeFont();
   CreateWidgets();
  
+  // sets initial font in preview area
+  wxCommandEvent dummy;
+  OnChangeFont(dummy);
+  
   return TRUE;
 }
 
@@ -237,8 +241,8 @@ void wxGenericFontDialog::CreateWidgets()
   int i;
   for ( i = 0; i < 40; i++)
   {
-    char buf[5];
-    sprintf(buf, "%d", i + 1);
+    wxChar buf[5];
+    wxSprintf(buf, wxT("%d"), i + 1);
     pointSizes[i] = buf;
   }
 
@@ -248,7 +252,7 @@ void wxGenericFontDialog::CreateWidgets()
   m_previewer = new wxFontPreviewer(this);
 
   wxButton *okButton = new wxButton(this, wxID_OK, _("OK"));
-  wxButton *cancelButton = new wxButton(this, wxID_OK, _("Cancel"));
+  wxButton *cancelButton = new wxButton(this, wxID_CANCEL, _("Cancel"));
 
   familyChoice->SetStringSelection( wxFontFamilyIntToString(dialogFont.GetFamily()) );
   styleChoice->SetStringSelection(wxFontStyleIntToString(dialogFont.GetStyle()));
diff --git a/src/generic/grid.cpp b/src/generic/grid.cpp
index 9e25988500..f6f8156d78 100644
--- a/src/generic/grid.cpp
+++ b/src/generic/grid.cpp
@@ -1353,15 +1353,15 @@ void wxGridCellChoiceEditor::BeginEdit(int row, int col, wxGrid* grid)
 
     m_startValue = grid->GetTable()->GetValue(row, col);
 
-    Combo()->SetValue(m_startValue);
-    size_t count = m_choices.GetCount();
-    for (size_t i=0; i<count; i++)
+    if (m_allowOthers)
+        Combo()->SetValue(m_startValue);
+    else
     {
-        if (m_startValue == m_choices[i])
-        {
-            Combo()->SetSelection(i);
-            break;
-        }
+        // find the right position, or default to the first if not found
+        int pos = Combo()->FindString(m_startValue);
+        if (pos == -1)
+            pos = 0;
+        Combo()->SetSelection(pos);
     }
     Combo()->SetInsertionPointEnd();
     Combo()->SetFocus();
@@ -1377,7 +1377,10 @@ bool wxGridCellChoiceEditor::EndEdit(int row, int col,
         grid->GetTable()->SetValue(row, col, value);
 
     m_startValue = wxEmptyString;
-    Combo()->SetValue(m_startValue);
+    if (m_allowOthers)
+        Combo()->SetValue(m_startValue);
+    else
+        Combo()->SetSelection(0);
 
     return changed;
 }
@@ -1577,7 +1580,7 @@ void wxGridCellStringRenderer::Draw(wxGrid& grid,
             int i, c_cols, c_rows;
             for (i = col+cell_cols; i < cols; i++)
             {
-	        bool is_empty = TRUE;
+                bool is_empty = TRUE;
                 for (int j=row; j<row+cell_rows; j++)
                 {
                     // check w/ anchor cell for multicell block
@@ -1585,7 +1588,7 @@ void wxGridCellStringRenderer::Draw(wxGrid& grid,
                     if (c_rows > 0) c_rows = 0;
                     if (!grid.GetTable()->IsEmptyCell(j+c_rows, i))
                     {
-		        is_empty = FALSE;
+                        is_empty = FALSE;
                         break;
                     }
                 }
@@ -1597,20 +1600,20 @@ void wxGridCellStringRenderer::Draw(wxGrid& grid,
                     break;
                 }
                 if (rect.width >= best_width) break;
-	    }
+            }
             overflowCols = i - col - cell_cols + 1;
-	    if (overflowCols >= cols) overflowCols = cols - 1;
+            if (overflowCols >= cols) overflowCols = cols - 1;
         }
 
         if (overflowCols > 0) // redraw overflow cells w/ proper hilight
         {
             hAlign = wxALIGN_LEFT; // if oveflowed then it's left aligned
-            wxRect clip = rect; 
+            wxRect clip = rect;
             clip.x += rectCell.width;
             // draw each overflow cell individually
             int col_end = col+cell_cols+overflowCols;
             if (col_end >= grid.GetNumberCols())
-	        col_end = grid.GetNumberCols() - 1;
+                col_end = grid.GetNumberCols() - 1;
             for (int i = col+cell_cols; i <= col_end; i++)
             {
                 clip.width = grid.GetColSize(i) - 1;
@@ -1618,15 +1621,15 @@ void wxGridCellStringRenderer::Draw(wxGrid& grid,
                 dc.SetClippingRegion(clip);
 
                 SetTextColoursAndFont(grid, attr, dc,
-				      grid.IsInSelection(row,i));
+                        grid.IsInSelection(row,i));
 
                 grid.DrawTextRectangle(dc, grid.GetCellValue(row, col),
-                                       rect, hAlign, vAlign);
+                        rect, hAlign, vAlign);
                 clip.x += grid.GetColSize(i) - 1;
             }
 
             rect = rectCell;
-	    rect.Inflate(-1);
+            rect.Inflate(-1);
             rect.width++;
             dc.DestroyClippingRegion();
         }
@@ -1735,9 +1738,9 @@ wxString wxGridCellFloatRenderer::GetString(wxGrid& grid, int row, int col)
             {
                 if ( m_precision == -1 )
                 {
-                // default width/precision
-                m_format = _T("%f");
-            }
+                    // default width/precision
+                    m_format = _T("%f");
+                }
                 else
                 {
                     m_format.Printf(_T("%%.%df"), m_precision);
@@ -3832,6 +3835,8 @@ void wxGrid::Init()
 
     // init attr cache
     m_attrCache.row = -1;
+    m_attrCache.col = -1;
+    m_attrCache.attr = NULL;
 
     // TODO: something better than this ?
     //
@@ -3909,7 +3914,7 @@ void wxGrid::InitRowHeights()
     m_rowBottoms.Alloc( m_numRows );
 
     int rowBottom = 0;
-    
+
     m_rowHeights.Add( m_defaultRowHeight, m_numRows );
 
     for ( int i = 0;  i < m_numRows;  i++ )
@@ -5898,7 +5903,7 @@ void wxGrid::Refresh(bool eraseb, const wxRect* rect)
         else
         {
             m_cornerLabelWin->Refresh(eraseb, NULL);
-            m_colLabelWin->Refresh(eraseb, NULL);     
+            m_colLabelWin->Refresh(eraseb, NULL);
             m_rowLabelWin->Refresh(eraseb, NULL);
             m_gridWin->Refresh(eraseb, NULL);
         }
@@ -6258,7 +6263,7 @@ void wxGrid::HighlightBlock( int topRow, int leftCol, int bottomRow, int rightCo
         wxRect rect;
         rect = BlockToDeviceRect( wxGridCellCoords ( topRow, leftCol ),
                                   wxGridCellCoords ( bottomRow, rightCol ) );
-        m_gridWin->Refresh( FALSE, &rect );     
+        m_gridWin->Refresh( FALSE, &rect );
     }
     // Now handle changing an existing selection area.
     else if ( m_selectingTopLeft != updateTopLeft ||
@@ -7271,30 +7276,30 @@ void wxGrid::ShowCellEditControl()
             {
                 int y;
                 GetTextExtent(value, &maxWidth, &y,
-			      NULL, NULL, &attr->GetFont());
+                        NULL, NULL, &attr->GetFont());
                 if (maxWidth < rect.width) maxWidth = rect.width;
             }
             int client_right = m_gridWin->GetClientSize().GetWidth();
             if (rect.x+maxWidth > client_right)
-	        maxWidth = client_right - rect.x;
+                maxWidth = client_right - rect.x;
 
-	    if ((maxWidth > rect.width) && (col < m_numCols) && m_table)
-	    {
+            if ((maxWidth > rect.width) && (col < m_numCols) && m_table)
+            {
                 GetCellSize( row, col, &cell_rows, &cell_cols );
-		// may have changed earlier
-		for (int i = col+cell_cols; i < m_numCols; i++)
-		{
+                // may have changed earlier
+                for (int i = col+cell_cols; i < m_numCols; i++)
+                {
                     int c_rows, c_cols;
                     GetCellSize( row, i, &c_rows, &c_cols );
-		    // looks weird going over a multicell
-		    if (m_table->IsEmptyCell(row,i) &&
-			(rect.width < maxWidth) && (c_rows == 1))
-		        rect.width += GetColWidth(i);
-		    else
-		      break;
-		}
+                    // looks weird going over a multicell
+                    if (m_table->IsEmptyCell(row,i) &&
+                            (rect.width < maxWidth) && (c_rows == 1))
+                        rect.width += GetColWidth(i);
+                    else
+                        break;
+                }
                 if (rect.GetRight() > client_right)
-		    rect.SetRight(client_right-1);
+                    rect.SetRight(client_right-1);
             }
             editor->SetSize( rect );
 
@@ -7302,7 +7307,7 @@ void wxGrid::ShowCellEditControl()
 
             editor->DecRef();
             attr->DecRef();
-         }
+        }
     }
 }
 
@@ -8635,13 +8640,16 @@ void wxGrid::ClearAttrCache()
 
 void wxGrid::CacheAttr(int row, int col, wxGridCellAttr *attr) const
 {
-    wxGrid *self = (wxGrid *)this;  // const_cast
+    if ( attr != NULL )
+    {
+        wxGrid *self = (wxGrid *)this;  // const_cast
 
-    self->ClearAttrCache();
-    self->m_attrCache.row = row;
-    self->m_attrCache.col = col;
-    self->m_attrCache.attr = attr;
-    wxSafeIncRef(attr);
+        self->ClearAttrCache();
+        self->m_attrCache.row = row;
+        self->m_attrCache.col = col;
+        self->m_attrCache.attr = attr;
+        wxSafeIncRef(attr);
+    }
 }
 
 bool wxGrid::LookupAttr(int row, int col, wxGridCellAttr **attr) const
@@ -9282,13 +9290,17 @@ void wxGrid::AutoSize()
 
     // round up the size to a multiple of scroll step - this ensures that we
     // won't get the scrollbars if we're sized exactly to this width
-    wxSize sizeFit(GetScrollX(size.x) * GRID_SCROLL_LINE_X,
-                   GetScrollY(size.y) * GRID_SCROLL_LINE_Y);
+    // CalcDimension adds m_extraWidth + 1 etc. to calculate the necessary
+    // scrollbar steps
+    wxSize sizeFit(GetScrollX(size.x + m_extraWidth + 1) * GRID_SCROLL_LINE_X,
+                   GetScrollY(size.y + m_extraHeight + 1) * GRID_SCROLL_LINE_Y);
 
-    // distribute the extra space between teh columns/rows to avoid having
+    // distribute the extra space between the columns/rows to avoid having
     // extra white space
-    wxCoord diff = sizeFit.x - size.x;
-    if ( diff )
+
+    // Remove the extra m_extraWidth + 1 added above
+    wxCoord diff = sizeFit.x - size.x + (m_extraWidth + 1);
+    if ( diff && m_numCols )
     {
         // try to resize the columns uniformly
         wxCoord diffPerCol = diff / m_numCols;
@@ -9312,8 +9324,8 @@ void wxGrid::AutoSize()
     }
 
     // same for rows
-    diff = sizeFit.y - size.y;
-    if ( diff )
+    diff = sizeFit.y - size.y - (m_extraHeight + 1);
+    if ( diff && m_numRows )
     {
         // try to resize the columns uniformly
         wxCoord diffPerRow = diff / m_numRows;
diff --git a/src/generic/gridsel.cpp b/src/generic/gridsel.cpp
index 2781694fb5..bac2f8950b 100644
--- a/src/generic/gridsel.cpp
+++ b/src/generic/gridsel.cpp
@@ -4,7 +4,7 @@
 // Author:      Stefan Neis
 // Modified by:
 // Created:     20/02/1999
-// RCS-ID:      $$
+// RCS-ID:      $Id$
 // Copyright:   (c) Stefan Neis (Stefan.Neis@t-online.de)
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -165,7 +165,7 @@ void wxGridSelection::SetSelectionMode(wxGrid::wxGridSelectionModes selmode)
                     m_blockSelectionBottomRight.RemoveAt(n);
                     SelectBlock( topRow, 0,
                                  bottomRow, m_grid->GetNumberCols() - 1,
-                                 0, FALSE );
+                                 FALSE, FALSE, FALSE, FALSE, FALSE );
                 }
             }
             else // selmode == wxGridSelectColumns)
@@ -176,7 +176,7 @@ void wxGridSelection::SetSelectionMode(wxGrid::wxGridSelectionModes selmode)
                     m_blockSelectionBottomRight.RemoveAt(n);
                     SelectBlock( 0, leftCol,
                                  m_grid->GetNumberRows() - 1, rightCol,
-                                 0, FALSE );
+                                 FALSE, FALSE, FALSE, FALSE, FALSE );
                 }
             }
         }
@@ -522,13 +522,13 @@ void wxGridSelection::SelectCell( int row, int col,
     if ( m_selectionMode == wxGrid::wxGridSelectRows )
     {
         SelectBlock(row, 0, row, m_grid->GetNumberCols() - 1,
-                    ControlDown, ShiftDown, AltDown, MetaDown);
+                    ControlDown, ShiftDown, AltDown, MetaDown, sendEvent);
         return;
     }
     else if ( m_selectionMode == wxGrid::wxGridSelectColumns )
     {
         SelectBlock(0, col, m_grid->GetNumberRows() - 1, col,
-                    ControlDown, ShiftDown, AltDown, MetaDown);
+                    ControlDown, ShiftDown, AltDown, MetaDown, sendEvent);
         return;
     }
     else if ( IsInSelection ( row, col ) )
@@ -647,18 +647,20 @@ void wxGridSelection::ToggleCellSelection( int row, int col,
             if ( m_selectionMode != wxGrid::wxGridSelectColumns )
             {
                 if ( topRow < row )
-                    SelectBlock( topRow, leftCol,
-                                 row - 1, rightCol, 0, FALSE );
+                    SelectBlock( topRow, leftCol, row - 1, rightCol,
+				 FALSE, FALSE, FALSE, FALSE, FALSE );
                 if ( bottomRow > row )
-                    SelectBlock( row + 1, leftCol,
-                                 bottomRow, rightCol, 0, FALSE );
+                    SelectBlock( row + 1, leftCol, bottomRow, rightCol,
+				 FALSE, FALSE, FALSE, FALSE, FALSE );
             }
             if ( m_selectionMode != wxGrid::wxGridSelectRows )
             {
                 if ( leftCol < col )
-                    SelectBlock( row, leftCol, row, col - 1, 0, FALSE );
+                    SelectBlock( row, leftCol, row, col - 1,
+				 FALSE, FALSE, FALSE, FALSE, FALSE );
                 if ( rightCol > col )
-                    SelectBlock( row, col + 1, row, rightCol, 0, FALSE );
+                    SelectBlock( row, col + 1, row, rightCol,
+				 FALSE, FALSE, FALSE, FALSE, FALSE );
             }
         }
     }
@@ -676,11 +678,12 @@ void wxGridSelection::ToggleCellSelection( int row, int col,
                 if (m_selectionMode == wxGrid::wxGridSelectCells)
                 {
                     if ( col > 0 )
-                        SelectBlock( row, 0, row, col - 1, 0, FALSE );
+                        SelectBlock( row, 0, row, col - 1,
+				     FALSE, FALSE, FALSE, FALSE, FALSE );
                     if ( col < m_grid->GetNumberCols() - 1 )
                         SelectBlock( row, col + 1,
                                      row, m_grid->GetNumberCols() - 1,
-                                     0, FALSE );
+                                     FALSE, FALSE, FALSE, FALSE, FALSE );
                 }
             }
         }
@@ -699,11 +702,12 @@ void wxGridSelection::ToggleCellSelection( int row, int col,
                 if (m_selectionMode == wxGrid::wxGridSelectCells)
                 {
                     if ( row > 0 )
-                        SelectBlock( 0, col, row - 1, col, 0, FALSE );
+                        SelectBlock( 0, col, row - 1, col,
+				     FALSE, FALSE, FALSE, FALSE, FALSE );
                     if ( row < m_grid->GetNumberRows() - 1 )
                         SelectBlock( row + 1, col,
                                      m_grid->GetNumberRows() - 1, col,
-                                     0, FALSE );
+                                     FALSE, FALSE, FALSE, FALSE, FALSE );
                 }
             }
         }
diff --git a/src/generic/helpext.cpp b/src/generic/helpext.cpp
index bfd3efb403..f6e3add7b5 100644
--- a/src/generic/helpext.cpp
+++ b/src/generic/helpext.cpp
@@ -47,9 +47,9 @@
 IMPLEMENT_CLASS(wxExtHelpController, wxHTMLHelpControllerBase)
 
 /// Name of environment variable to set help browser.
-#define   WXEXTHELP_ENVVAR_BROWSER   "WX_HELPBROWSER"
+#define   WXEXTHELP_ENVVAR_BROWSER   wxT("WX_HELPBROWSER")
 /// Is browser a netscape browser?
-#define   WXEXTHELP_ENVVAR_BROWSERISNETSCAPE "WX_HELPBROWSER_NS"
+#define   WXEXTHELP_ENVVAR_BROWSERISNETSCAPE wxT("WX_HELPBROWSER_NS")
 
 /**
    This class implements help via an external browser.
@@ -62,18 +62,17 @@ wxExtHelpController::wxExtHelpController(void)
    m_BrowserName = WXEXTHELP_DEFAULTBROWSER;
    m_BrowserIsNetscape = WXEXTHELP_DEFAULTBROWSER_IS_NETSCAPE;
 
-   char *browser = getenv(WXEXTHELP_ENVVAR_BROWSER);
+   wxChar *browser = wxGetenv(WXEXTHELP_ENVVAR_BROWSER);
    if(browser)
    {
       m_BrowserName = browser;
-      browser = getenv(WXEXTHELP_ENVVAR_BROWSERISNETSCAPE);
-      m_BrowserIsNetscape = browser && (atoi(browser) != 0);
+      browser = wxGetenv(WXEXTHELP_ENVVAR_BROWSERISNETSCAPE);
+      m_BrowserIsNetscape = browser && (wxAtoi(browser) != 0);
    }
 }
 
 
-void
-wxExtHelpController::SetBrowser(wxString const & browsername, bool isNetscape)
+void wxExtHelpController::SetBrowser(wxString const & browsername, bool isNetscape)
 {
    m_BrowserName = browsername;
    m_BrowserIsNetscape = isNetscape;
diff --git a/src/generic/helphtml.cpp b/src/generic/helphtml.cpp
index 8aa2840806..9f106ae59c 100644
--- a/src/generic/helphtml.cpp
+++ b/src/generic/helphtml.cpp
@@ -195,15 +195,15 @@ wxHTMLHelpControllerBase::LoadFile(const wxString& ifile)
             break; // error
          for(i=0; isdigit(buffer[i])||isspace(buffer[i])||buffer[i]=='-'; i++)
             ; // find begin of URL
-         url = "";
+         url = wxT("");
          while(buffer[i] && ! isspace(buffer[i]) && buffer[i] !=
                WXEXTHELP_COMMENTCHAR)
-            url << buffer[i++];
+            url << (wxChar) buffer[i++];
          while(buffer[i] && buffer[i] != WXEXTHELP_COMMENTCHAR)
             i++;
-         doc = "";
+         doc = wxT("");
          if(buffer[i])
-            doc = (buffer + i + 1); // skip the comment character
+            doc = wxString::FromAscii( (buffer + i + 1) ); // skip the comment character
          m_MapList->Append(new wxExtHelpMapEntry(id,url,doc));
          m_NumOfEntries++;
       }
@@ -312,7 +312,7 @@ wxHTMLHelpControllerBase::KeywordSearch(const wxString& k)
             // choices[idx] = (**i).doc.Contains((**i).doc.Before(WXEXTHELP_COMMENTCHAR));
             //if(choices[idx].IsEmpty()) // didn't contain the ';'
             //   choices[idx] = (**i).doc;
-            choices[idx] = "";
+            choices[idx] = wxT("");
             for(j=0;entry->doc.c_str()[j]
                    && entry->doc.c_str()[j] != WXEXTHELP_COMMENTCHAR; j++)
                choices[idx] << entry->doc.c_str()[j];
diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp
index 911612205e..51f600fa5b 100644
--- a/src/generic/listctrl.cpp
+++ b/src/generic/listctrl.cpp
@@ -47,16 +47,26 @@
     #include "wx/textctrl.h"
 #endif
 
-// Include wx/listctrl.h (with wxListView declaration)
-// only when wxGenericListCtrl is the only
-// implementation, and therefore wxListView needs
-// to be derived from the 'generic' version.
-
+// under Win32 we always use the native version and also may use the generic
+// one, however some things should be done only if we use only the generic
+// version
 #if defined(__WIN32__) && !defined(__WXUNIVERSAL__)
+    #define HAVE_NATIVE_LISTCTRL
+#endif
+
+// if we have the native control, wx/listctrl.h declares it and not this one
+#ifdef HAVE_NATIVE_LISTCTRL
     #include "wx/generic/listctrl.h"
-#else
+#else // !HAVE_NATIVE_LISTCTRL
     #include "wx/listctrl.h"
-#endif
+
+    // if we have a native version, its implementation file does all this
+    IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject)
+    IMPLEMENT_DYNAMIC_CLASS(wxListView, wxListCtrl)
+    IMPLEMENT_DYNAMIC_CLASS(wxListEvent, wxNotifyEvent)
+
+    IMPLEMENT_DYNAMIC_CLASS(wxListCtrl, wxGenericListCtrl)
+#endif // HAVE_NATIVE_LISTCTRL/!HAVE_NATIVE_LISTCTRL
 
 #if defined(__WXGTK__)
     #include <gtk/gtk.h>
@@ -421,6 +431,10 @@ private:
                        const wxListItemAttr *attr,
                        bool highlight);
 
+    // draw the text on the DC with the correct justification; also add an
+    // ellipsis if the text is too large to fit in the current width
+    void DrawTextFormatted(wxDC *dc, const wxString &text, int col, int x, int y, int width);
+
     // these are only used by GetImage/SetImage above, we don't support images
     // with subitems at the public API level yet
     void SetImage( int index, int image );
@@ -462,7 +476,7 @@ public:
                         const wxPoint &pos = wxDefaultPosition,
                         const wxSize &size = wxDefaultSize,
                         long style = 0,
-                        const wxString &name = "wxlistctrlcolumntitles" );
+                        const wxString &name = wxT("wxlistctrlcolumntitles") );
 
     virtual ~wxListHeaderWindow();
 
@@ -879,6 +893,8 @@ private:
 
     DECLARE_DYNAMIC_CLASS(wxListMainWindow)
     DECLARE_EVENT_TABLE()
+
+    friend class wxGenericListCtrl;
 };
 
 // ============================================================================
@@ -1736,12 +1752,66 @@ void wxListLineData::DrawInReportMode( wxDC *dc,
             width -= ix;
         }
 
-        wxDCClipper clipper(*dc, xOld, y, width, rect.height);
+        wxDCClipper clipper(*dc, xOld, y, width - 8, rect.height);
 
         if ( item->HasText() )
         {
-            dc->DrawText( item->GetText(), xOld, y );
+            DrawTextFormatted(dc, item->GetText(), col, xOld, y, width - 8);
+        }
+    }
+}
+
+void wxListLineData::DrawTextFormatted(wxDC *dc,
+                                       const wxString &text,
+                                       int col,
+                                       int x,
+                                       int y,
+                                       int width)
+{
+    wxString drawntext, ellipsis;
+    wxCoord w, h, base_w;
+    wxListItem item;
+
+    // determine if the string can fit inside the current width
+    dc->GetTextExtent(text, &w, &h);
+
+    // if it can, draw it
+    if (w <= width)
+    {
+        m_owner->GetColumn(col, item);
+        if (item.m_format == wxLIST_FORMAT_LEFT)
+            dc->DrawText(text, x, y);
+        else if (item.m_format == wxLIST_FORMAT_RIGHT)
+            dc->DrawText(text, x + width - w, y);
+        else if (item.m_format == wxLIST_FORMAT_CENTER)
+            dc->DrawText(text, x + ((width - w) / 2), y);
+    }
+    else // otherwise, truncate and add an ellipsis if possible
+    {
+        // determine the base width
+        ellipsis = wxString(wxT("..."));
+        dc->GetTextExtent(ellipsis, &base_w, &h);
+
+        // continue until we have enough space or only one character left
+        drawntext = text.Left(text.Length() - 1);
+        while (drawntext.Length() > 1)
+        {
+            dc->GetTextExtent(drawntext, &w, &h);
+            if (w + base_w <= width)
+                break;
+            drawntext = drawntext.Left(drawntext.Length() - 1);
+        }
+
+        // if still not enough space, remove ellipsis characters
+        while (ellipsis.Length() > 0 && w + base_w > width)
+        {
+            ellipsis = ellipsis.Left(ellipsis.Length() - 1);
+            dc->GetTextExtent(ellipsis, &base_w, &h);
         }
+
+        // now draw the text
+        dc->DrawText(drawntext, x, y);
+        dc->DrawText(ellipsis, x + w, y);
     }
 }
 
@@ -1811,6 +1881,11 @@ wxListHeaderWindow::~wxListHeaderWindow()
     delete m_resizeCursor;
 }
 
+#ifdef __WXUNIVERSAL__
+#include "wx/univ/renderer.h"
+#include "wx/univ/theme.h"
+#endif
+
 void wxListHeaderWindow::DoDrawRect( wxDC *dc, int x, int y, int w, int h )
 {
 #if defined(__WXGTK__) && !defined(__WXUNIVERSAL__)
@@ -1824,7 +1899,11 @@ void wxListHeaderWindow::DoDrawRect( wxDC *dc, int x, int y, int w, int h )
                    (GdkRectangle*) NULL, m_wxwindow,
                    (char *)"button", // const_cast
                    x-1, y-1, w+2, h+2);
-#elif defined( __WXMAC__  )
+#elif defined(__WXUNIVERSAL__)
+    wxTheme *theme = wxTheme::Get();
+    wxRenderer *renderer = theme->GetRenderer();
+    renderer->DrawBorder( *dc, wxBORDER_RAISED, wxRect(x,y,w,h), 0 );
+#elif defined(__WXMAC__)
     const int m_corner = 1;
 
     dc->SetBrush( *wxTRANSPARENT_BRUSH );
@@ -3078,15 +3157,7 @@ void wxListMainWindow::OnMouse( wxMouseEvent &event )
         m_renameTimer->Stop();
         m_lastOnSame = FALSE;
 
-#ifdef __WXGTK__
-        // FIXME: wxGTK generates bad sequence of events prior to doubleclick
-        //        ("down, up, down, double, up" while other ports
-        //        do "down, up, double, up"). We have to have this hack
-        //        in place till somebody fixes wxGTK...
-        if ( current == m_lineBeforeLastClicked )
-#else
         if ( current == m_lineLastClicked )
-#endif
         {
             SendNotify( current, wxEVT_COMMAND_LIST_ITEM_ACTIVATED );
 
@@ -4359,7 +4430,10 @@ void wxListMainWindow::InsertItem( wxListItem &item )
 
     int mode = 0;
     if ( HasFlag(wxLC_REPORT) )
+    {
         mode = wxLC_REPORT;
+        ResetVisibleLinesRange();
+    }
     else if ( HasFlag(wxLC_LIST) )
         mode = wxLC_LIST;
     else if ( HasFlag(wxLC_ICON) )
@@ -4507,40 +4581,17 @@ void wxListMainWindow::GetVisibleLinesRange(size_t *from, size_t *to)
         *to = m_lineTo;
 }
 
-// -------------------------------------------------------------------------------------
-// wxListItem
-// -------------------------------------------------------------------------------------
-
-#if !defined(__WIN32__)
-IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject)
-#endif
-
 // -------------------------------------------------------------------------------------
 // wxGenericListCtrl
 // -------------------------------------------------------------------------------------
 
 IMPLEMENT_DYNAMIC_CLASS(wxGenericListCtrl, wxControl)
 
-#if !defined(__WIN32__)
-IMPLEMENT_DYNAMIC_CLASS(wxListView, wxListCtrl)
-
-IMPLEMENT_DYNAMIC_CLASS(wxListEvent, wxNotifyEvent)
-#endif
-
 BEGIN_EVENT_TABLE(wxGenericListCtrl,wxControl)
   EVT_SIZE(wxGenericListCtrl::OnSize)
   EVT_IDLE(wxGenericListCtrl::OnIdle)
 END_EVENT_TABLE()
 
-#if !defined(__WXMSW__) || defined(__WIN16__) || defined(__WXUNIVERSAL__)
-/*
- * wxListCtrl has to be a real class or we have problems with
- * the run-time information.
- */
-
-IMPLEMENT_DYNAMIC_CLASS(wxListCtrl, wxGenericListCtrl)
-#endif
-
 wxGenericListCtrl::wxGenericListCtrl()
 {
     m_imageListNormal = (wxImageListType *) NULL;
@@ -4882,7 +4933,9 @@ void wxGenericListCtrl::SetTextColour(const wxColour& col)
 
 long wxGenericListCtrl::GetTopItem() const
 {
-    return 0;
+    size_t top;
+    m_mainWin->GetVisibleLinesRange(&top, NULL);
+    return (long)top;
 }
 
 long wxGenericListCtrl::GetNextItem( long item, int geom, int state ) const
diff --git a/src/generic/mdig.cpp b/src/generic/mdig.cpp
index e86ba99ee9..ea08482ba2 100644
--- a/src/generic/mdig.cpp
+++ b/src/generic/mdig.cpp
@@ -31,6 +31,7 @@
 #ifndef WX_PRECOMP
     #include "wx/panel.h"
     #include "wx/menu.h"
+    #include "wx/intl.h"
 #endif //WX_PRECOMP
 
 #include "wx/generic/mdig.h"
@@ -108,11 +109,11 @@ bool wxGenericMDIParentFrame::Create(wxWindow *parent,
 #if wxUSE_MENUS
       m_pWindowMenu = new wxMenu;
 
-      m_pWindowMenu->Append(wxWINDOWCLOSE,    _T("Cl&ose"));
-      m_pWindowMenu->Append(wxWINDOWCLOSEALL, _T("Close Al&l"));
+      m_pWindowMenu->Append(wxWINDOWCLOSE,    _("Cl&ose"));
+      m_pWindowMenu->Append(wxWINDOWCLOSEALL, _("Close All"));
       m_pWindowMenu->AppendSeparator();
-      m_pWindowMenu->Append(wxWINDOWNEXT,     _T("&Next"));
-      m_pWindowMenu->Append(wxWINDOWPREV,     _T("&Previouse"));
+      m_pWindowMenu->Append(wxWINDOWNEXT,     _("&Next"));
+      m_pWindowMenu->Append(wxWINDOWPREV,     _("&Previous"));
 #endif // wxUSE_MENUS
   }
 
@@ -199,7 +200,7 @@ bool wxGenericMDIParentFrame::ProcessEvent(wxEvent& event)
 #if 0
         /* This is sure to not give problems... */
         && (event.GetEventType() == wxEVT_COMMAND_MENU_SELECTED ||
-            event.GetEventType() == wxEVT_UPDATE_UI ))
+            event.GetEventType() == wxEVT_UPDATE_UI )
 #else
         /* This was tested on wxMSW and worked... */
         && event.GetEventObject() != m_pClientWindow
@@ -208,8 +209,9 @@ bool wxGenericMDIParentFrame::ProcessEvent(wxEvent& event)
              event.GetEventType() == wxEVT_KILL_FOCUS ||
              event.GetEventType() == wxEVT_CHILD_FOCUS ||
              event.GetEventType() == wxEVT_COMMAND_SET_FOCUS ||
-             event.GetEventType() == wxEVT_COMMAND_KILL_FOCUS ))
+             event.GetEventType() == wxEVT_COMMAND_KILL_FOCUS )
 #endif
+       )
     {
         res = m_pActiveChild->GetEventHandler()->ProcessEvent(event);
     }
@@ -290,7 +292,7 @@ void wxGenericMDIParentFrame::RemoveWindowMenu(wxMenuBar *pMenuBar)
     if (pMenuBar && m_pWindowMenu)
     {
         // Remove old window menu
-        int pos = pMenuBar->FindMenu(_T("&Window"));
+        int pos = pMenuBar->FindMenu(_("&Window"));
         if (pos != wxNOT_FOUND)
         {
             wxASSERT(m_pWindowMenu == pMenuBar->GetMenu(pos)); // DBG:: We're going to delete the wrong menu!!!
@@ -303,14 +305,14 @@ void wxGenericMDIParentFrame::AddWindowMenu(wxMenuBar *pMenuBar)
 {
     if (pMenuBar && m_pWindowMenu)
     {
-        int pos = pMenuBar->FindMenu(_T("Help"));
+        int pos = pMenuBar->FindMenu(_("Help"));
         if (pos == wxNOT_FOUND)
         {
-            pMenuBar->Append(m_pWindowMenu, _T("&Window"));
+            pMenuBar->Append(m_pWindowMenu, _("&Window"));
         }
         else
         {
-            pMenuBar->Insert(pos, m_pWindowMenu, _T("&Window"));
+            pMenuBar->Insert(pos, m_pWindowMenu, _("&Window"));
         }
     }
 }
@@ -453,7 +455,7 @@ bool wxGenericMDIChildFrame::Create( wxGenericMDIParentFrame *parent,
 {
     wxGenericMDIClientWindow* pClientWindow = parent->GetClientWindow();
 
-    wxASSERT_MSG((pClientWindow != (wxWindow*) NULL), "Missing MDI client window.");
+    wxASSERT_MSG((pClientWindow != (wxWindow*) NULL), wxT("Missing MDI client window.") );
 
     wxPanel::Create(pClientWindow, id, wxDefaultPosition, size, style, name);
 
@@ -793,6 +795,16 @@ void wxGenericMDIClientWindow::OnSize(wxSizeEvent& event)
 
 #if wxUSE_GENERIC_MDI_AS_NATIVE
 
+wxMDIChildFrame * wxMDIParentFrame::GetActiveChild() const
+    {
+        wxGenericMDIChildFrame *pGFrame = wxGenericMDIParentFrame::GetActiveChild();
+        wxMDIChildFrame *pFrame = wxDynamicCast(pGFrame, wxMDIChildFrame);
+
+        wxASSERT_MSG(!(pFrame == NULL && pGFrame != NULL), wxT("Active frame is class not derived from wxMDIChildFrame!"));
+
+        return pFrame;
+    }
+
 IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame, wxGenericMDIParentFrame)
 IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame, wxGenericMDIChildFrame)
 IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow, wxGenericMDIClientWindow)
diff --git a/src/generic/msgdlgg.cpp b/src/generic/msgdlgg.cpp
index 2b1b8b33db..467ce46b18 100644
--- a/src/generic/msgdlgg.cpp
+++ b/src/generic/msgdlgg.cpp
@@ -40,6 +40,7 @@
 
 #include "wx/generic/msgdlgg.h"
 #include "wx/artprov.h"
+#include "wx/settings.h"
 
 #if wxUSE_STATLINE
   #include "wx/statline.h"
@@ -66,6 +67,8 @@ wxGenericMessageDialog::wxGenericMessageDialog( wxWindow *parent,
 {
     m_dialogStyle = style;
 
+    bool is_pda = (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA);
+
     wxBoxSizer *topsizer = new wxBoxSizer( wxVERTICAL );
 
     wxBoxSizer *icon_text = new wxBoxSizer( wxHORIZONTAL );
@@ -97,13 +100,16 @@ wxGenericMessageDialog::wxGenericMessageDialog( wxWindow *parent,
                 break;
         }
         wxStaticBitmap *icon = new wxStaticBitmap(this, -1, bitmap);
-        icon_text->Add( icon, 0, wxCENTER );
+        if (is_pda)
+            topsizer->Add( icon, 0, wxTOP|wxLEFT|wxRIGHT | wxALIGN_LEFT, 10 );
+        else
+            icon_text->Add( icon, 0, wxCENTER );
     }
 
     // 2) text
     icon_text->Add( CreateTextSizer( message ), 0, wxCENTER | wxLEFT, 10 );
 
-    topsizer->Add( icon_text, 0, wxCENTER | wxLEFT|wxRIGHT|wxTOP, 10 );
+    topsizer->Add( icon_text, 1, wxCENTER | wxLEFT|wxRIGHT|wxTOP, 10 );
 
 #if wxUSE_STATLINE
     // 3) static line
@@ -140,8 +146,8 @@ void wxGenericMessageDialog::OnNo(wxCommandEvent& WXUNUSED(event))
 
 void wxGenericMessageDialog::OnCancel(wxCommandEvent& WXUNUSED(event))
 {
-    /* Allow cancellation via ESC/Close button except if
-       only YES and NO are specified. */
+    // Allow cancellation via ESC/Close button except if
+    // only YES and NO are specified.
     if ( (m_dialogStyle & wxYES_NO) != wxYES_NO || (m_dialogStyle & wxCANCEL) )
     {
         EndModal( wxID_CANCEL );
diff --git a/src/generic/panelg.cpp b/src/generic/panelg.cpp
index 0c7b85fb42..d7f69ce937 100644
--- a/src/generic/panelg.cpp
+++ b/src/generic/panelg.cpp
@@ -107,22 +107,20 @@ void wxPanel::OnSize(wxSizeEvent& event)
 #if wxUSE_CONSTRAINTS
     if (GetAutoLayout())
         Layout();
-#endif // wxUSE_CONSTRAINTS
-
-    //
-    // Need to properly move child windows under OS/2
-    //
 #if defined(__WXPM__)
     else
     {
+        // Need to properly move child windows under OS/2
+
         PSWP                        pWinSwp = GetSwp();
 
         if (pWinSwp->cx == 0 && pWinSwp->cy == 0 && pWinSwp->fl == 0)
-            //
+        {
             // Uninitialized
-            //
+
             ::WinQueryWindowPos(GetHWND(), pWinSwp);
-        else
+	}
+	else
         {
             SWP                     vSwp;
             int                     nYDiff;
@@ -135,6 +133,8 @@ void wxPanel::OnSize(wxSizeEvent& event)
         }
     }
 #endif
+#endif // wxUSE_CONSTRAINTS
+
     event.Skip();
 }
 
diff --git a/src/generic/prntdlgg.cpp b/src/generic/prntdlgg.cpp
index 6f4584b82a..6d270a3bdf 100644
--- a/src/generic/prntdlgg.cpp
+++ b/src/generic/prntdlgg.cpp
@@ -182,16 +182,16 @@ void wxGenericPrintDialog::Init(wxWindow * WXUNUSED(parent))
     if (m_printDialogData.GetFromPage() != 0)
     {
         bottomsizer->Add( new wxStaticText(this, wxPRINTID_STATIC, _("From:") ), 0, wxCENTER|wxALL, 5 );
-        m_fromText = new wxTextCtrl(this, wxPRINTID_FROM, "", wxDefaultPosition, wxSize(40, -1));
+        m_fromText = new wxTextCtrl(this, wxPRINTID_FROM, wxT(""), wxDefaultPosition, wxSize(40, -1));
         bottomsizer->Add( m_fromText, 1, wxCENTER|wxRIGHT, 10 );
 
         bottomsizer->Add( new wxStaticText(this, wxPRINTID_STATIC, _("To:") ), 0, wxCENTER|wxALL, 5);
-        m_toText = new wxTextCtrl(this, wxPRINTID_TO, "", wxDefaultPosition, wxSize(40, -1));
+        m_toText = new wxTextCtrl(this, wxPRINTID_TO, wxT(""), wxDefaultPosition, wxSize(40, -1));
         bottomsizer->Add( m_toText, 1, wxCENTER|wxRIGHT, 10 );
     }
 
     bottomsizer->Add( new wxStaticText(this, wxPRINTID_STATIC, _("Copies:") ), 0, wxCENTER|wxALL, 5 );
-    m_noCopiesText = new wxTextCtrl(this, wxPRINTID_COPIES, "", wxPoint(252, 130), wxSize(40, -1));
+    m_noCopiesText = new wxTextCtrl(this, wxPRINTID_COPIES, wxT(""), wxPoint(252, 130), wxSize(40, -1));
     bottomsizer->Add( m_noCopiesText, 1, wxCENTER|wxRIGHT, 10 );
 
     mainsizer->Add( bottomsizer, 0, wxTOP|wxLEFT|wxRIGHT, 12 );
@@ -443,11 +443,11 @@ void wxGenericPrintSetupDialog::Init(wxPrintData* data)
 
     (void) new wxStaticText(this, wxPRINTID_STATIC, _("Printer command:"), wxPoint(340, 30));
 
-    m_printerCommandText = new wxTextCtrl(this, wxPRINTID_COMMAND, "", wxPoint(360, 55), wxSize(150, -1));
+    m_printerCommandText = new wxTextCtrl(this, wxPRINTID_COMMAND, wxT(""), wxPoint(360, 55), wxSize(150, -1));
 
     (void) new wxStaticText(this, wxPRINTID_STATIC, _("Printer options:"), wxPoint(340, 110));
 
-    m_printerOptionsText = new wxTextCtrl(this, wxPRINTID_OPTIONS, "", wxPoint(360, 135), wxSize(150, -1));
+    m_printerOptionsText = new wxTextCtrl(this, wxPRINTID_OPTIONS, wxT(""), wxPoint(360, 135), wxSize(150, -1));
 
     wxButton *okButton = new wxButton(this, wxID_OK, _("OK"), wxPoint(130, 200), wxSize(80, -1));
     (void) new wxButton(this, wxID_CANCEL, _("Cancel"), wxPoint(320, 200), wxSize(80, -1));
@@ -504,7 +504,7 @@ bool wxGenericPrintSetupDialog::TransferDataFromWindow()
     if (m_paperTypeChoice)
     {
         wxString val(m_paperTypeChoice->GetStringSelection());
-        if (!val.IsNull() && val != "")
+        if (!val.IsNull() && val != wxT(""))
             m_printData.SetPaperId(wxThePrintPaperDatabase->ConvertNameToId(val));
     }
 
@@ -634,8 +634,8 @@ wxDialog(parent, -1, _("Page Setup"), wxPoint(0, 0), wxSize(600, 600), wxDIALOG_
     table->Add( column1, 0, wxALL | wxEXPAND, 5 );
     
     wxBoxSizer *column2 = new wxBoxSizer( wxVERTICAL );
-    m_marginLeftText = new wxTextCtrl(this, wxPRINTID_LEFTMARGIN, "", wxDefaultPosition, wxSize(textWidth, -1));
-    m_marginTopText = new wxTextCtrl(this, wxPRINTID_TOPMARGIN, "", wxDefaultPosition, wxSize(textWidth, -1));
+    m_marginLeftText = new wxTextCtrl(this, wxPRINTID_LEFTMARGIN, wxT(""), wxDefaultPosition, wxSize(textWidth, -1));
+    m_marginTopText = new wxTextCtrl(this, wxPRINTID_TOPMARGIN, wxT(""), wxDefaultPosition, wxSize(textWidth, -1));
     column2->Add( m_marginLeftText, 1, wxALL, 5 );
     column2->Add( m_marginTopText, 1, wxALL, 5 );
     table->Add( column2, 0, wxRIGHT|wxTOP|wxBOTTOM | wxEXPAND, 5 );
@@ -646,8 +646,8 @@ wxDialog(parent, -1, _("Page Setup"), wxPoint(0, 0), wxSize(600, 600), wxDIALOG_
     table->Add( column3, 0, wxALL | wxEXPAND, 5 );
     
     wxBoxSizer *column4 = new wxBoxSizer( wxVERTICAL );
-    m_marginRightText = new wxTextCtrl(this, wxPRINTID_RIGHTMARGIN, "", wxDefaultPosition, wxSize(textWidth, -1));
-    m_marginBottomText = new wxTextCtrl(this, wxPRINTID_BOTTOMMARGIN, "", wxDefaultPosition, wxSize(textWidth, -1));
+    m_marginRightText = new wxTextCtrl(this, wxPRINTID_RIGHTMARGIN, wxT(""), wxDefaultPosition, wxSize(textWidth, -1));
+    m_marginBottomText = new wxTextCtrl(this, wxPRINTID_BOTTOMMARGIN, wxT(""), wxDefaultPosition, wxSize(textWidth, -1));
     column4->Add( m_marginRightText, 1, wxALL, 5 );
     column4->Add( m_marginBottomText, 1, wxALL, 5 );
     table->Add( column4, 0, wxRIGHT|wxTOP|wxBOTTOM | wxEXPAND, 5 );
diff --git a/src/generic/progdlgg.cpp b/src/generic/progdlgg.cpp
index 169a7ea949..39bb6d1ef8 100644
--- a/src/generic/progdlgg.cpp
+++ b/src/generic/progdlgg.cpp
@@ -322,7 +322,7 @@ wxProgressDialog::Update(int value, const wxString& newmsg)
 
     wxASSERT_MSG( value <= m_maximum, wxT("invalid progress value") );
 
-    if ( m_gauge )
+    if ( m_gauge && value < m_maximum )
     {
         m_gauge->SetValue(value + 1);
     }
diff --git a/src/generic/propform.cpp b/src/generic/propform.cpp
index bfa779c272..b8469214eb 100644
--- a/src/generic/propform.cpp
+++ b/src/generic/propform.cpp
@@ -518,9 +518,9 @@ bool wxIntegerFormValidator::OnCheckValue(wxProperty *property, wxPropertyFormVi
 
     if (val < m_integerMin || val > m_integerMax)
     {
-        char buf[200];
-        sprintf(buf, "Value must be an integer between %ld and %ld!", m_integerMin, m_integerMax);
-        wxMessageBox(buf, "Property value error", wxOK | wxICON_EXCLAMATION, parentWindow);
+        wxChar buf[200];
+        wxSprintf(buf, wxT("Value must be an integer between %ld and %ld!"), m_integerMin, m_integerMax);
+        wxMessageBox(buf, wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
         return FALSE;
     }
     return TRUE;
@@ -645,10 +645,10 @@ bool wxStringFormValidator::OnCheckValue(wxProperty *property, wxPropertyFormVie
         wxTextCtrl *text = (wxTextCtrl *)m_propertyWindow;
         if (!m_strings->Member(text->GetValue()))
         {
-            wxString s("Value ");
-            s += text->GetValue();
-            s += " is not valid.";
-            wxMessageBox(s, "Property value error", wxOK | wxICON_EXCLAMATION, parentWindow);
+            wxString str( wxT("Value ") );
+            str += text->GetValue();
+            str += wxT(" is not valid.");
+            wxMessageBox(str, wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
             return FALSE;
         }
     }
@@ -719,7 +719,7 @@ bool wxStringFormValidator::OnDisplayValue(wxProperty *property, wxPropertyFormV
             wxNode *node = m_strings->First();
             while (node)
             {
-                char *s = (char *)node->Data();
+                wxChar *s = (wxChar *)node->Data();
                 lbox->Append(s);
                 node = node->Next();
             }
@@ -736,7 +736,6 @@ bool wxStringFormValidator::OnDisplayValue(wxProperty *property, wxPropertyFormV
     else if (m_propertyWindow->IsKindOf(CLASSINFO(wxChoice)))
     {
         wxChoice *choice = (wxChoice *)m_propertyWindow;
-#ifndef __XVIEW__
         if (choice->GetCount() == 0 && m_strings)
         {
             // Try to initialize the choice item from 'strings'
@@ -744,12 +743,11 @@ bool wxStringFormValidator::OnDisplayValue(wxProperty *property, wxPropertyFormV
             wxNode *node = m_strings->First();
             while (node)
             {
-                char *s = (char *)node->Data();
+                wxChar *s = (wxChar *)node->Data();
                 choice->Append(s);
                 node = node->Next();
             }
         }
-#endif
         choice->SetStringSelection(property->GetValue().StringValue());
     }
     else
diff --git a/src/generic/proplist.cpp b/src/generic/proplist.cpp
index a9e3b83c39..cd6af4d9c1 100644
--- a/src/generic/proplist.cpp
+++ b/src/generic/proplist.cpp
@@ -149,7 +149,7 @@ bool wxPropertyListView::UpdatePropertyList(bool clearEditArea)
   if (clearEditArea)
   {
     m_valueList->Clear();
-    m_valueText->SetValue(_T(""));
+    m_valueText->SetValue( wxT("") );
   }
   wxNode *node = m_propertySheet->GetProperties().First();
 
@@ -223,7 +223,7 @@ wxString wxPropertyListView::MakeNameValueString(wxString name, wxString value)
   if (GetFlags() & wxPROP_SHOWVALUES)
   {
     // Want to pad with spaces
-    theString.Append(' ', padWith);
+    theString.Append( wxT(' '), padWith);
     theString += value;
   }
 
@@ -241,7 +241,7 @@ bool wxPropertyListView::ShowProperty(wxProperty *property, bool select)
   }
 
   m_valueList->Clear();
-  m_valueText->SetValue(_T(""));
+  m_valueText->SetValue( wxT("") );
 
   if (property)
   {
@@ -894,9 +894,9 @@ bool wxRealListValidator::OnCheckValue(wxProperty *WXUNUSED(property), wxPropert
 
   if (val < m_realMin || val > m_realMax)
   {
-    char buf[200];
-    sprintf(buf, "Value must be a real number between %.2f and %.2f!", m_realMin, m_realMax);
-    wxMessageBox(buf, "Property value error", wxOK | wxICON_EXCLAMATION, parentWindow);
+    wxChar buf[200];
+    wxSprintf(buf, wxT("Value must be a real number between %.2f and %.2f!"), m_realMin, m_realMax);
+    wxMessageBox(buf, wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
     return FALSE;
   }
   return TRUE;
@@ -1129,10 +1129,10 @@ bool wxStringListValidator::OnCheckValue(wxProperty *WXUNUSED(property), wxPrope
 
   if (!m_strings->Member(value.GetData()))
   {
-    wxString s("Value ");
-    s += value.GetData();
-    s += " is not valid.";
-    wxMessageBox(s.GetData(), "Property value error", wxOK | wxICON_EXCLAMATION, parentWindow);
+    wxString str( wxT("Value ") );
+    str += value.GetData();
+    str += wxT(" is not valid.");
+    wxMessageBox( str.GetData(), wxT("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow);
     return FALSE;
   }
   return TRUE;
@@ -1563,7 +1563,7 @@ class wxPropertyStringListEditorDialog: public wxDialog
   public:
     wxPropertyStringListEditorDialog(wxWindow *parent, const wxString& title,
         const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
-          long windowStyle = wxDEFAULT_DIALOG_STYLE, const wxString& name = "stringEditorDialogBox"):
+          long windowStyle = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxT("stringEditorDialogBox")):
                wxDialog(parent, -1, title, pos, size, windowStyle, name)
     {
       m_stringList = NULL;
@@ -1613,7 +1613,7 @@ class wxPropertyStringListEditorText: public wxTextCtrl
  public:
   wxPropertyStringListEditorText(wxWindow *parent, wxWindowID id, const wxString& val,
       const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
-    long windowStyle = 0, const wxString& name = "text"):
+    long windowStyle = 0, const wxString& name = wxT("text")):
      wxTextCtrl(parent, id, val, pos, size, windowStyle, wxDefaultValidator, name)
   {
   }
@@ -1642,14 +1642,14 @@ bool wxListOfStringsListValidator::EditStringList(wxWindow *parent, wxStringList
     wxPoint(-1, -1), wxSize(-1, -1), 0, NULL, wxLB_SINGLE);
 
   dialog->m_stringText = new wxPropertyStringListEditorText(dialog,
-  wxID_PROP_SL_TEXT, "", wxPoint(5, 240),
+  wxID_PROP_SL_TEXT, wxT(""), wxPoint(5, 240),
        wxSize(300, -1), wxPROCESS_ENTER);
   dialog->m_stringText->Enable(FALSE);
 
-  wxButton *addButton = new wxButton(dialog, wxID_PROP_SL_ADD, "Add", wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight));
-  wxButton *deleteButton = new wxButton(dialog, wxID_PROP_SL_DELETE, "Delete", wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight));
-  wxButton *cancelButton = new wxButton(dialog, wxID_CANCEL, "Cancel", wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight));
-  wxButton *okButton = new wxButton(dialog, wxID_OK, "OK", wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight));
+  wxButton *addButton = new wxButton(dialog, wxID_PROP_SL_ADD, wxT("Add"), wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight));
+  wxButton *deleteButton = new wxButton(dialog, wxID_PROP_SL_DELETE, wxT("Delete"), wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight));
+  wxButton *cancelButton = new wxButton(dialog, wxID_CANCEL, wxT("Cancel"), wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight));
+  wxButton *okButton = new wxButton(dialog, wxID_OK, wxT("OK"), wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight));
 
 #ifndef __WXGTK__
   okButton->SetDefault();
@@ -1701,9 +1701,9 @@ bool wxListOfStringsListValidator::EditStringList(wxWindow *parent, wxStringList
   wxNode *node = stringList->First();
   while (node)
   {
-    char *str = (char *)node->Data();
+    wxChar *str = (wxChar *)node->Data();
     // Save node as client data for each listbox item
-    dialog->m_listBox->Append(str, (char *)node);
+    dialog->m_listBox->Append(str, (wxChar *)node);
     node = node->Next();
   }
 
@@ -1807,21 +1807,21 @@ void wxPropertyStringListEditorDialog::SaveCurrentSelection()
 
   wxString txt(m_stringText->GetValue());
   if (node->Data())
-    delete[] (char *)node->Data();
-  node->SetData((wxObject *)copystring(txt));
+    delete[] (wxChar *)node->Data();
+  node->SetData((wxObject *)wxStrdup(txt));
 
-  m_listBox->SetString(m_currentSelection, (char *)node->Data());
+  m_listBox->SetString(m_currentSelection, (wxChar *)node->Data());
 }
 
 void wxPropertyStringListEditorDialog::ShowCurrentSelection()
 {
   if (m_currentSelection == -1)
   {
-    m_stringText->SetValue(_T(""));
+    m_stringText->SetValue(wxT(""));
     return;
   }
   wxNode *node = (wxNode *)m_listBox->wxListBox::GetClientData(m_currentSelection);
-  char *txt = (char *)node->Data();
+  wxChar *txt = (wxChar *)node->Data();
   m_stringText->SetValue(txt);
   m_stringText->Enable(TRUE);
 }
diff --git a/src/generic/sashwin.cpp b/src/generic/sashwin.cpp
index 90bc832b39..6f0fc70c24 100644
--- a/src/generic/sashwin.cpp
+++ b/src/generic/sashwin.cpp
@@ -46,6 +46,10 @@ BEGIN_EVENT_TABLE(wxSashWindow, wxWindow)
     EVT_PAINT(wxSashWindow::OnPaint)
     EVT_SIZE(wxSashWindow::OnSize)
     EVT_MOUSE_EVENTS(wxSashWindow::OnMouseEvent)
+#ifdef __WXMSW__
+    EVT_SET_CURSOR(wxSashWindow::OnSetCursor)
+#endif // wxMSW
+
 END_EVENT_TABLE()
 
 bool wxSashWindow::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos,
@@ -77,6 +81,7 @@ void wxSashWindow::Init()
     m_sashCursorWE = new wxCursor(wxCURSOR_SIZEWE);
     m_sashCursorNS = new wxCursor(wxCURSOR_SIZENS);
     m_mouseCaptured = FALSE;
+    m_currentCursor = NULL;
 
     // Eventually, we'll respond to colour change messages
     InitColours();
@@ -86,9 +91,7 @@ void wxSashWindow::OnPaint(wxPaintEvent& WXUNUSED(event))
 {
     wxPaintDC dc(this);
 
-    //    if ( m_borderSize > 0 )
     DrawBorders(dc);
-
     DrawSashes(dc);
 }
 
@@ -99,15 +102,6 @@ void wxSashWindow::OnMouseEvent(wxMouseEvent& event)
 
     wxSashEdgePosition sashHit = SashHitTest(x, y);
 
-    // reset the cursor
-#if defined(__WXMOTIF__) || defined(__WXGTK__)
-    // Not necessary and in fact inhibits proper cursor setting (JACS 8/2000)
-    //SetCursor(* wxSTANDARD_CURSOR);
-#endif
-#ifdef __WXMSW__
-    SetCursor(wxNullCursor);
-#endif
-
     if (event.LeftDown())
     {
         CaptureMouse();
@@ -139,11 +133,19 @@ void wxSashWindow::OnMouseEvent(wxMouseEvent& event)
 
             if ( (sashHit == wxSASH_LEFT) || (sashHit == wxSASH_RIGHT) )
             {
-                SetCursor(*m_sashCursorWE);
+                if (m_currentCursor != m_sashCursorWE)
+                {
+                    SetCursor(*m_sashCursorWE);
+                }
+                m_currentCursor = m_sashCursorWE;
             }
             else
             {
-                SetCursor(*m_sashCursorNS);
+                if (m_currentCursor != m_sashCursorNS)
+                {
+                    SetCursor(*m_sashCursorNS);
+                }
+                m_currentCursor = m_sashCursorNS;
             }
         }
     }
@@ -296,16 +298,25 @@ void wxSashWindow::OnMouseEvent(wxMouseEvent& event)
         {
             if ( (sashHit == wxSASH_LEFT) || (sashHit == wxSASH_RIGHT) )
             {
-                SetCursor(*m_sashCursorWE);
+                if (m_currentCursor != m_sashCursorWE)
+                {
+                    SetCursor(*m_sashCursorWE);
+                }
+                m_currentCursor = m_sashCursorWE;
             }
             else
             {
-                SetCursor(*m_sashCursorNS);
+                if (m_currentCursor != m_sashCursorNS)
+                {
+                    SetCursor(*m_sashCursorNS);
+                }
+                m_currentCursor = m_sashCursorNS;
             }
         }
         else
         {
             SetCursor(wxNullCursor);
+            m_currentCursor = NULL;
         }
     }
     else if ( event.Dragging() &&
@@ -314,11 +325,19 @@ void wxSashWindow::OnMouseEvent(wxMouseEvent& event)
     {
         if ( (m_draggingEdge == wxSASH_LEFT) || (m_draggingEdge == wxSASH_RIGHT) )
         {
-            SetCursor(*m_sashCursorWE);
+            if (m_currentCursor != m_sashCursorWE)
+            {
+                SetCursor(*m_sashCursorWE);
+            }
+            m_currentCursor = m_sashCursorWE;
         }
         else
         {
-            SetCursor(*m_sashCursorNS);
+            if (m_currentCursor != m_sashCursorNS)
+            {
+                SetCursor(*m_sashCursorNS);
+            }
+            m_currentCursor = m_sashCursorNS;
         }
 
         if (m_dragMode == wxSASH_DRAG_LEFT_DOWN)
@@ -683,4 +702,23 @@ void wxSashWindow::SetSashVisible(wxSashEdgePosition edge, bool sash)
         m_sashes[edge].m_margin = 0;
 }
 
+#ifdef __WXMSW__
+
+// this is currently called (and needed) under MSW only...
+void wxSashWindow::OnSetCursor(wxSetCursorEvent& event)
+{
+    // if we don't do it, the resizing cursor might be set for child window:
+    // and like this we explicitly say that our cursor should not be used for
+    // children windows which overlap us
+
+    if ( SashHitTest(event.GetX(), event.GetY()) != wxSASH_NONE)
+    {
+        // default processing is ok
+        event.Skip();
+    }
+    //else: do nothing, in particular, don't call Skip()
+}
+
+#endif // wxMSW
+
 #endif // wxUSE_SASH
diff --git a/src/generic/scrlwing.cpp b/src/generic/scrlwing.cpp
index ae4107a1fa..f65fb4b487 100644
--- a/src/generic/scrlwing.cpp
+++ b/src/generic/scrlwing.cpp
@@ -340,9 +340,15 @@ void wxScrollHelper::SetScrollbars(int pixelsPerUnitX,
     m_xScrollPosition = xPos;
     m_yScrollPosition = yPos;
 
+    // For better backward compatibility we set persisting limits
+    // here not just the size.  It makes SetScrollbars 'sticky'
+    // emulating the old non-autoscroll behaviour.
+
     m_targetWindow->SetVirtualSizeHints( noUnitsX * pixelsPerUnitX, noUnitsY * pixelsPerUnitY );
 
-    AdjustScrollbars();
+    // The above should arguably be deprecated, this however we still need.
+
+    m_targetWindow->SetVirtualSize( noUnitsX * pixelsPerUnitX, noUnitsY * pixelsPerUnitY );
 
     if (do_refresh && !noRefresh)
         m_targetWindow->Refresh(TRUE, GetRect());
@@ -867,17 +873,19 @@ void wxScrollHelper::DoCalcUnscrolledPosition(int x, int y, int *xx, int *yy) co
 // Default OnSize resets scrollbars, if any
 void wxScrollHelper::HandleOnSize(wxSizeEvent& WXUNUSED(event))
 {
-    if ( m_targetWindow != m_win )
-        m_targetWindow->SetVirtualSize( m_targetWindow->GetClientSize() );
-
-    m_win->SetVirtualSize( m_win->GetClientSize() );
+    if( m_win->GetAutoLayout() )
+    {
+        if ( m_targetWindow != m_win )
+            m_targetWindow->FitInside();
 
-    AdjustScrollbars();
+        m_win->FitInside();
 
 #if wxUSE_CONSTRAINTS
-    if (m_win->GetAutoLayout())
         m_win->Layout();
 #endif
+    }
+    else
+        AdjustScrollbars();
 }
 
 // This calls OnDraw, having adjusted the origin according to the current
@@ -1171,6 +1179,17 @@ bool wxGenericScrolledWindow::Layout()
     return wxPanel::Layout();
 }
 
+void wxGenericScrolledWindow::DoSetVirtualSize(int x, int y)
+{
+    wxPanel::DoSetVirtualSize( x, y );
+    AdjustScrollbars();
+
+#if wxUSE_CONSTRAINTS
+    if (GetAutoLayout())
+        Layout();
+#endif
+}
+
 void wxGenericScrolledWindow::OnPaint(wxPaintEvent& event)
 {
     // the user code didn't really draw the window if we got here, so set this
diff --git a/src/generic/splitter.cpp b/src/generic/splitter.cpp
index c79934a3ea..c5d099a54c 100644
--- a/src/generic/splitter.cpp
+++ b/src/generic/splitter.cpp
@@ -21,19 +21,22 @@
 #endif
 
 #ifndef WX_PRECOMP
+    #include "wx/string.h"
+    #include "wx/utils.h"
+    #include "wx/log.h"
+
+    #include "wx/dcscreen.h"
+
     #include "wx/window.h"
     #include "wx/dialog.h"
     #include "wx/frame.h"
-#endif
 
-#include <stdlib.h>
+    #include "wx/settings.h"
+#endif
 
-#include "wx/string.h"
 #include "wx/splitter.h"
-#include "wx/dcscreen.h"
-#include "wx/settings.h"
-#include "wx/log.h"
-#include "wx/utils.h"
+
+#include <stdlib.h>
 
 DEFINE_EVENT_TYPE(wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED)
 DEFINE_EVENT_TYPE(wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING)
@@ -107,8 +110,8 @@ void wxSplitterWindow::Init()
     m_oldY = 0;
     m_firstX = 0;
     m_firstY = 0;
-    m_sashSize = 7;
-    m_borderSize = 2;
+    m_sashSize = 3;
+    m_borderSize = 0;
     m_sashPosition = m_requestedSashPosition = 0;
     m_minimumPaneSize = 0;
     m_sashCursorWE = wxCursor(wxCURSOR_SIZEWE);
@@ -121,9 +124,6 @@ void wxSplitterWindow::Init()
     m_facePen = (wxPen *) NULL;
     m_hilightPen = (wxPen *) NULL;
 
-    m_borderSize = 0;
-    m_sashSize = 3;
-
     InitColours();
 
     m_needUpdating = FALSE;
@@ -169,7 +169,7 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event)
         y = (int)event.GetY();
 
     // reset the cursor
-#if defined( __WXMOTIF__ ) || defined( __WXMAC__ )
+#if defined( __WXMOTIF__ ) || defined( __WXGTK__ ) || defined( __WXMAC__ )
     SetCursor(* wxSTANDARD_CURSOR);
 #elif defined(__WXMSW__)
     SetCursor(wxCursor());
@@ -214,6 +214,12 @@ void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event)
         m_dragMode = wxSPLIT_DRAG_NONE;
         ReleaseMouse();
 
+        // exit if unsplit after doubleclick
+        if ( !IsSplit() )
+        {
+            return;
+        }
+
         // Erase old tracker
         if ( !isLive )
         {
@@ -537,7 +543,7 @@ void wxSplitterWindow::DrawSash(wxDC& dc)
                 dc.DrawLine(m_sashPosition+1, h-m_borderSize-1, m_sashPosition+m_sashSize-1, h-m_borderSize-1);
             }
         }
-        else
+        else // wxSPLIT_HORIZONTAL
         {
             dc.SetPen(*m_facePen);
             if (HasFlag( wxSP_SASH_AQUA ))
@@ -577,12 +583,12 @@ void wxSplitterWindow::DrawSash(wxDC& dc)
             }
         }
     }
-    else
+    else // !wxSP_3DSASH
     {
+        dc.SetPen(*wxTRANSPARENT_PEN);
+        dc.SetBrush(*m_faceBrush);
         if ( m_splitMode == wxSPLIT_VERTICAL )
         {
-            dc.SetPen(*wxBLACK_PEN);
-            dc.SetBrush(*wxBLACK_BRUSH);
             int h1 = h-1;
             int y1 = 0;
             if ( (GetWindowStyleFlag() & wxSP_BORDER) != wxSP_BORDER && (GetWindowStyleFlag() & wxSP_3DBORDER) != wxSP_3DBORDER )
@@ -593,10 +599,8 @@ void wxSplitterWindow::DrawSash(wxDC& dc)
             }
             dc.DrawRectangle(m_sashPosition, y1, m_sashSize, h1);
         }
-        else
+        else // wxSPLIT_HORIZONTAL
         {
-            dc.SetPen(*wxBLACK_PEN);
-            dc.SetBrush(*wxBLACK_BRUSH);
             int w1 = w-1;
             int x1 = 0;
             if ( (GetWindowStyleFlag() & wxSP_BORDER) != wxSP_BORDER && (GetWindowStyleFlag() & wxSP_3DBORDER) != wxSP_3DBORDER )
@@ -607,7 +611,6 @@ void wxSplitterWindow::DrawSash(wxDC& dc)
             }
             dc.DrawRectangle(x1, m_sashPosition, w1, m_sashSize);
         }
-
     }
 
     dc.SetPen(wxNullPen);
@@ -754,7 +757,8 @@ void wxSplitterWindow::SizeWindows()
             DoSetSashPosition(newSashPosition);
         }
 
-        if ( newSashPosition == m_sashPosition )
+        if ( newSashPosition <= m_sashPosition
+            && newSashPosition >= m_sashPosition - GetBorderSize() )
         {
             // don't update it any more
             m_requestedSashPosition = INT_MAX;
@@ -805,7 +809,7 @@ void wxSplitterWindow::SizeWindows()
 // Set pane for unsplit window
 void wxSplitterWindow::Initialize(wxWindow *window)
 {
-    wxASSERT_MSG( window->GetParent() == this,
+    wxASSERT_MSG( window && window->GetParent() == this,
                   _T("windows in the splitter should have it as parent!") );
 
     m_windowOne = window;
@@ -823,7 +827,10 @@ bool wxSplitterWindow::DoSplit(wxSplitMode mode,
     if ( IsSplit() )
         return FALSE;
 
-    wxASSERT_MSG( window1->GetParent() == this && window2->GetParent() == this,
+    wxCHECK_MSG( window1 && window2, FALSE,
+                 _T("can not split with NULL window(s)") );
+
+    wxCHECK_MSG( window1->GetParent() == this && window2->GetParent() == this, FALSE,
                   _T("windows in the splitter should have it as parent!") );
 
     m_splitMode = mode;
diff --git a/src/generic/statusbr.cpp b/src/generic/statusbr.cpp
index c5128995c8..00588ff0f6 100644
--- a/src/generic/statusbr.cpp
+++ b/src/generic/statusbr.cpp
@@ -29,6 +29,11 @@
 #include "wx/dcclient.h"
 #endif
 
+#ifdef __WXGTK20__
+#include "wx/gtk/private.h"
+#include "wx/gtk/win_gtk.h"
+#endif
+
 #include "wx/statusbr.h"
 
 // we only have to do it here when we use wxStatusBarGeneric in addition to the
@@ -44,8 +49,8 @@
 
 BEGIN_EVENT_TABLE(wxStatusBarGeneric, wxWindow)
     EVT_PAINT(wxStatusBarGeneric::OnPaint)
-    EVT_SIZE(wxStatusBarGeneric::OnSize)
-
+    EVT_LEFT_DOWN(wxStatusBarGeneric::OnLeftDown)
+    EVT_RIGHT_DOWN(wxStatusBarGeneric::OnRightDown)
     EVT_SYS_COLOUR_CHANGED(wxStatusBarGeneric::OnSysColourChanged)
 END_EVENT_TABLE()
 
@@ -168,28 +173,41 @@ void wxStatusBarGeneric::SetStatusWidths(int n, const int widths_field[])
 
 void wxStatusBarGeneric::OnPaint(wxPaintEvent& WXUNUSED(event) )
 {
-  wxPaintDC dc(this);
+    wxPaintDC dc(this);
 
+#ifdef __WXGTK20__
+    // Draw grip first
+    if (HasFlag( wxST_SIZEGRIP ))
+    {
+        int width, height;
+        GetClientSize(&width, &height);
+        
+        gtk_paint_resize_grip( m_widget->style,
+                               GTK_PIZZA(m_wxwindow)->bin_window,
+                               (GtkStateType) GTK_WIDGET_STATE (m_widget),
+                               NULL,
+                               m_widget,
+                               "statusbar",
+                               GDK_WINDOW_EDGE_SOUTH_EAST,
+                               width-height-2, 1, height-2, height-3 );
+        
+    }
+#endif
 
-  int i;
-  if ( GetFont().Ok() )
-    dc.SetFont(GetFont());
+  if (GetFont().Ok())
+        dc.SetFont(GetFont());
+    
   dc.SetBackgroundMode(wxTRANSPARENT);
 
 #ifdef __WXPM__
-  wxColour                          vColor;
+  wxColour vColor;
 
   vColor = wxSystemSettings::GetColour(wxSYS_COLOUR_MENUBAR);
   ::WinFillRect(dc.m_hPS, &dc.m_vRclPaint, vColor.GetPixel());
 #endif
 
-  for ( i = 0; i < m_nFields; i ++ )
-    DrawField(dc, i);
-
-  // VZ: again, what is this for?
-#ifdef __WXMSW__
-  dc.SetFont(wxNullFont);
-#endif // MSW
+  for (int i = 0; i < m_nFields; i ++)
+        DrawField(dc, i);
 }
 
 void wxStatusBarGeneric::DrawFieldText(wxDC& dc, int i)
@@ -222,8 +240,8 @@ void wxStatusBarGeneric::DrawFieldText(wxDC& dc, int i)
 
 void wxStatusBarGeneric::DrawField(wxDC& dc, int i)
 {
-  wxRect rect;
-  GetFieldRect(i, rect);
+    wxRect rect;
+    GetFieldRect(i, rect);
 
     // Draw border
     // Have grey background, plus 3-d border -
@@ -280,12 +298,15 @@ bool wxStatusBarGeneric::GetFieldRect(int n, wxRect& rect) const
     GetClientSize(&width, &height);
 #endif
 
-    // we cache m_widthsAbs between calls normally but it's cleared when the
-    // status widths change so recompute it if needed
-    if ( m_widthsAbs.IsEmpty() )
+    // we cache m_widthsAbs between calls and recompute it if client
+    // width has changed (or when it is initially empty)
+    if ( m_widthsAbs.IsEmpty() || (m_lastClientWidth != width) )
     {
         wxConstCast(this, wxStatusBarGeneric)->
             m_widthsAbs = CalculateAbsWidths(width);
+        // remember last width for which we have recomputed the widths in pixels
+        wxConstCast(this, wxStatusBarGeneric)->
+            m_lastClientWidth = width;
     }
 
     rect.x = 0;
@@ -351,7 +372,7 @@ void wxStatusBarGeneric::SetMinHeight(int height)
     // current font
     wxClientDC dc(this);
     wxCoord y;
-    dc.GetTextExtent( _T("X"), NULL, &y );
+    dc.GetTextExtent( wxT("X"), NULL, &y );
 
     if ( height > (11*y)/10 )
     {
@@ -359,12 +380,73 @@ void wxStatusBarGeneric::SetMinHeight(int height)
     }
 }
 
-void wxStatusBarGeneric::OnSize(wxSizeEvent& event)
+void wxStatusBarGeneric::OnLeftDown(wxMouseEvent& event)
 {
-    // have to recompute the widths in pixels
-    m_widthsAbs.Empty();
+#ifdef __WXGTK20__
+    int width, height;
+    GetClientSize(&width, &height);
+    
+    if (HasFlag( wxST_SIZEGRIP ) && (event.GetX() > width-height))
+    {
+        GtkWidget *ancestor = gtk_widget_get_toplevel( m_widget );
+
+        if (!GTK_IS_WINDOW (ancestor))
+            return;
 
-    event.Skip();
+        GdkWindow *source = GTK_PIZZA(m_wxwindow)->bin_window;
+
+        int org_x = 0;
+        int org_y = 0;
+        gdk_window_get_origin( source, &org_x, &org_y );
+
+        gtk_window_begin_resize_drag (GTK_WINDOW (ancestor),
+                                  GDK_WINDOW_EDGE_SOUTH_EAST,
+                                  1,
+                                  org_x + event.GetX(), 
+                                  org_y + event.GetY(), 
+                                  0);
+    }
+    else
+    {
+        event.Skip( TRUE );
+    }
+#else
+    event.Skip( TRUE );
+#endif
+}
+
+void wxStatusBarGeneric::OnRightDown(wxMouseEvent& event)
+{
+#ifdef __WXGTK20__
+    int width, height;
+    GetClientSize(&width, &height);
+    
+    if (HasFlag( wxST_SIZEGRIP ) && (event.GetX() > width-height))
+    {
+        GtkWidget *ancestor = gtk_widget_get_toplevel( m_widget );
+
+        if (!GTK_IS_WINDOW (ancestor))
+            return;
+
+        GdkWindow *source = GTK_PIZZA(m_wxwindow)->bin_window;
+
+        int org_x = 0;
+        int org_y = 0;
+        gdk_window_get_origin( source, &org_x, &org_y );
+    
+        gtk_window_begin_move_drag (GTK_WINDOW (ancestor),
+                                2,
+                                org_x + event.GetX(), 
+                                org_y + event.GetY(), 
+                                0);
+    }
+    else
+    {
+        event.Skip( TRUE );
+    }
+#else
+    event.Skip( TRUE );
+#endif
 }
 
 #endif // wxUSE_STATUSBAR
diff --git a/src/generic/tbarsmpl.cpp b/src/generic/tbarsmpl.cpp
index 522736e77f..b7e16e0d4d 100644
--- a/src/generic/tbarsmpl.cpp
+++ b/src/generic/tbarsmpl.cpp
@@ -356,13 +356,15 @@ bool wxToolBarSimple::Realize()
     }
 
     if ( GetWindowStyleFlag() & wxTB_HORIZONTAL )
-        m_maxWidth += maxToolWidth;
-    else
         m_maxHeight += maxToolHeight;
+    else
+        m_maxWidth += maxToolWidth;
 
     m_maxWidth += m_xMargin;
     m_maxHeight += m_yMargin;
 
+    SetSize(m_maxWidth, m_maxHeight);
+
     return TRUE;
 }
 
diff --git a/src/generic/timer.cpp b/src/generic/timer.cpp
index c46854c9e9..259a0ebe0e 100644
--- a/src/generic/timer.cpp
+++ b/src/generic/timer.cpp
@@ -90,7 +90,7 @@ void wxTimerScheduler::QueueTimer(wxTimerDesc *desc, unsigned long when)
     desc->shotTime = when;
     desc->running = TRUE;
 
-    wxLogTrace("timer", "queued timer %p at tick %ld", 
+    wxLogTrace( wxT("timer"), wxT("queued timer %p at tick %ld"), 
                desc->timer, (long) when);
 
     if ( m_timers )
@@ -143,7 +143,7 @@ void wxTimerScheduler::NotifyTimers()
             
             if ( !timerDeleted )
             {
-                wxLogTrace("timer", "notified timer %p sheduled for %ld", 
+                wxLogTrace( wxT("timer"), wxT("notified timer %p sheduled for %ld"), 
                            desc->timer, (long) desc->shotTime);
 
                 desc->deleteFlag = NULL;
@@ -172,7 +172,7 @@ void wxTimer::Init()
 
 wxTimer::~wxTimer()
 {
-    wxLogTrace("timer", "destroying timer %p...", this);
+    wxLogTrace( wxT("timer"), wxT("destroying timer %p..."), this);
     if ( IsRunning() )
         Stop();
 
@@ -184,7 +184,7 @@ wxTimer::~wxTimer()
         *m_desc->deleteFlag = TRUE;
 
     delete m_desc;
-    wxLogTrace("timer", "    ...done destroying timer %p...", this);
+    wxLogTrace( wxT("timer"), wxT("    ...done destroying timer %p..."), this);
 }
 
 bool wxTimer::IsRunning() const
@@ -194,7 +194,7 @@ bool wxTimer::IsRunning() const
 
 bool wxTimer::Start(int millisecs, bool oneShot)
 {
-    wxLogTrace("timer", "started timer %p: %i ms, oneshot=%i", 
+    wxLogTrace( wxT("timer"), wxT("started timer %p: %i ms, oneshot=%i"), 
                this, millisecs, oneShot);
 
     if ( !wxTimerBase::Start(millisecs, oneShot) )
diff --git a/src/generic/treectlg.cpp b/src/generic/treectlg.cpp
index 3fb31eb750..10b2517c13 100644
--- a/src/generic/treectlg.cpp
+++ b/src/generic/treectlg.cpp
@@ -762,11 +762,13 @@ void wxGenericTreeCtrl::Init()
     m_lastOnSame = FALSE;
 
     m_normalFont = wxSystemSettings::GetFont( wxSYS_DEFAULT_GUI_FONT );
-    m_boldFont = wxFont( m_normalFont.GetPointSize(),
-                         m_normalFont.GetFamily(),
-                         m_normalFont.GetStyle(),
-                         wxBOLD,
-                         m_normalFont.GetUnderlined());
+    m_boldFont = wxFont(m_normalFont.GetPointSize(),
+                        m_normalFont.GetFamily(),
+                        m_normalFont.GetStyle(),
+                        wxBOLD,
+                        m_normalFont.GetUnderlined(),
+                        m_normalFont.GetFaceName(),
+                        m_normalFont.GetEncoding());
 }
 
 bool wxGenericTreeCtrl::Create(wxWindow *parent,
@@ -919,6 +921,30 @@ wxTreeItemData *wxGenericTreeCtrl::GetItemData(const wxTreeItemId& item) const
     return ((wxGenericTreeItem*) item.m_pItem)->GetData();
 }
 
+wxColour wxGenericTreeCtrl::GetItemTextColour(const wxTreeItemId& item) const
+{
+    wxCHECK_MSG( item.IsOk(), wxNullColour, wxT("invalid tree item") );
+
+    wxGenericTreeItem *pItem = (wxGenericTreeItem*) item.m_pItem;
+    return pItem->Attr().GetTextColour();
+}
+
+wxColour wxGenericTreeCtrl::GetItemBackgroundColour(const wxTreeItemId& item) const
+{
+    wxCHECK_MSG( item.IsOk(), wxNullColour, wxT("invalid tree item") );
+
+    wxGenericTreeItem *pItem = (wxGenericTreeItem*) item.m_pItem;
+    return pItem->Attr().GetBackgroundColour();
+}
+
+wxFont wxGenericTreeCtrl::GetItemFont(const wxTreeItemId& item) const
+{
+    wxCHECK_MSG( item.IsOk(), wxNullFont, wxT("invalid tree item") );
+
+    wxGenericTreeItem *pItem = (wxGenericTreeItem*) item.m_pItem;
+    return pItem->Attr().GetFont();
+}
+
 void wxGenericTreeCtrl::SetItemText(const wxTreeItemId& item, const wxString& text)
 {
     wxCHECK_RET( item.IsOk(), wxT("invalid tree item") );
@@ -1007,11 +1033,13 @@ bool wxGenericTreeCtrl::SetFont( const wxFont &font )
     wxScrolledWindow::SetFont(font);
 
     m_normalFont = font ;
-    m_boldFont = wxFont( m_normalFont.GetPointSize(),
-                            m_normalFont.GetFamily(),
-                            m_normalFont.GetStyle(),
-                            wxBOLD,
-                            m_normalFont.GetUnderlined());
+    m_boldFont = wxFont(m_normalFont.GetPointSize(),
+                        m_normalFont.GetFamily(),
+                        m_normalFont.GetStyle(),
+                        wxBOLD,
+                        m_normalFont.GetUnderlined(),
+                        m_normalFont.GetFaceName(),
+                        m_normalFont.GetEncoding());
 
     return TRUE;
 }
diff --git a/src/generic/treelay.cpp b/src/generic/treelay.cpp
index 701a0f14b7..43aae86378 100644
--- a/src/generic/treelay.cpp
+++ b/src/generic/treelay.cpp
@@ -270,7 +270,7 @@ void wxTreeLayoutStored::Initialize(int n)
     int i;
     for (i = 0; i < n; i++)
     {
-        m_nodes[i].m_name = "";
+        m_nodes[i].m_name = wxT("");
         m_nodes[i].m_active = FALSE;
         m_nodes[i].m_parentId = -1;
         m_nodes[i].m_x = 0;
@@ -464,7 +464,7 @@ wxString wxTreeLayoutStored::HitTest(wxMouseEvent& event, wxDC& dc)
         }
     }
 
-    return wxString("");
+    return wxString( wxT("") );
 }
 
 #endif
diff --git a/src/generic/wizard.cpp b/src/generic/wizard.cpp
index 0b99d25e0c..c438b292c5 100644
--- a/src/generic/wizard.cpp
+++ b/src/generic/wizard.cpp
@@ -348,7 +348,7 @@ bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward)
 
         m_page->Hide();
 
-        btnLabelWasNext = m_page->GetNext() != (wxWizardPage *)NULL;
+        btnLabelWasNext = HasNextPage(m_page);
 
         // Get the bitmap of the previous page (if it exists)
         if ( m_page->GetBitmap().Ok() )
@@ -395,9 +395,9 @@ bool wxWizard::ShowPage(wxWizardPage *page, bool goingForward)
     }
 
     // and update the buttons state
-    m_btnPrev->Enable(m_page->GetPrev() != (wxWizardPage *)NULL);
+    m_btnPrev->Enable(HasPrevPage(m_page));
 
-    bool hasNext = m_page->GetNext() != (wxWizardPage *)NULL;
+    bool hasNext = HasNextPage(m_page);
     if ( btnLabelWasNext != hasNext )
     {
         // need to update
diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp
index 20d8961d6c..eccbb52d0a 100644
--- a/src/gtk/app.cpp
+++ b/src/gtk/app.cpp
@@ -26,6 +26,7 @@
 #include "wx/dialog.h"
 #include "wx/msgdlg.h"
 #include "wx/file.h"
+#include "wx/filename.h"
 
 #if wxUSE_WX_RESOURCES
     #include "wx/resource.h"
@@ -44,13 +45,32 @@
 #endif
 
 #include <unistd.h>
-#if defined(__DARWIN__)
-# warning "FIXME: select must be used instead of poll (GD)"
-#elif defined(__VMS)
-# include <poll.h>
-#else
-# include <sys/poll.h>
-#endif
+
+#ifdef HAVE_POLL
+    #if defined(__VMS)
+        #include <poll.h>
+    #else
+        // bug in the OpenBSD headers: at least in 3.1 there is no extern "C"
+        // in neither poll.h nor sys/poll.h which results in link errors later
+        #ifdef __OPENBSD__
+            extern "C"
+            {
+        #endif
+
+        #include <sys/poll.h>
+
+        #ifdef __OPENBSD__
+            };
+        #endif
+    #endif // platform
+#else // !HAVE_POLL
+    // we implement poll() ourselves using select() which is supposed exist in
+    // all modern Unices
+    #include <sys/types.h>
+    #include <sys/time.h>
+    #include <unistd.h>
+#endif // HAVE_POLL/!HAVE_POLL
+
 #include "wx/gtk/win_gtk.h"
 
 #include <gtk/gtk.h>
@@ -250,22 +270,82 @@ static gint wxapp_idle_callback( gpointer WXUNUSED(data) )
 
 #if wxUSE_THREADS
 
+#ifdef HAVE_POLL
+    #define wxPoll poll
+    #define wxPollFd pollfd
+#else // !HAVE_POLL
+
+typedef GPollFD wxPollFd;
+
+int wxPoll(wxPollFd *ufds, unsigned int nfds, int timeout)
+{
+    // convert timeout from ms to struct timeval (s/us)
+    timeval tv_timeout;
+    tv_timeout.tv_sec = timeout/1000;
+    tv_timeout.tv_usec = (timeout%1000)*1000;
+
+    // remember the highest fd used here
+    int fdMax = -1;
+
+    // and fill the sets for select()
+    fd_set readfds;
+    fd_set writefds;
+    fd_set exceptfds;
+    FD_ZERO(&readfds);
+    FD_ZERO(&writefds);
+    FD_ZERO(&exceptfds);
+
+    unsigned int i;
+    for ( i = 0; i < nfds; i++ )
+    {
+        wxASSERT_MSG( ufds[i].fd < FD_SETSIZE, _T("fd out of range") );
+
+        if ( ufds[i].events & G_IO_IN )
+            FD_SET(ufds[i].fd, &readfds);
+
+        if ( ufds[i].events & G_IO_PRI )
+            FD_SET(ufds[i].fd, &exceptfds);
+
+        if ( ufds[i].events & G_IO_OUT )
+            FD_SET(ufds[i].fd, &writefds);
+
+        if ( ufds[i].fd > fdMax )
+            fdMax = ufds[i].fd;
+    }
+
+    fdMax++;
+    int res = select(fdMax, &readfds, &writefds, &exceptfds, &tv_timeout);
+
+    // translate the results back
+    for ( i = 0; i < nfds; i++ )
+    {
+        ufds[i].revents = 0;
+
+        if ( FD_ISSET(ufds[i].fd, &readfds ) )
+            ufds[i].revents |= G_IO_IN;
+
+        if ( FD_ISSET(ufds[i].fd, &exceptfds ) )
+            ufds[i].revents |= G_IO_PRI;
+
+        if ( FD_ISSET(ufds[i].fd, &writefds ) )
+            ufds[i].revents |= G_IO_OUT;
+    }
+
+    return res;
+}
+
+#endif // HAVE_POLL/!HAVE_POLL
+
 static gint wxapp_poll_func( GPollFD *ufds, guint nfds, gint timeout )
 {
-    gint res;
     gdk_threads_enter();
 
     wxMutexGuiLeave();
     g_mainThreadLocked = TRUE;
 
-#ifdef __DARWIN__
-    // FIXME: poll is not available under Darwin/Mac OS X and this needs
-    //        to be implemented using select instead (GD)
-    //        what about other BSD derived systems?
-    res = -1;
-#else
-    res = poll( (struct pollfd*) ufds, nfds, timeout );
-#endif
+    // we rely on the fact that glib GPollFD struct is really just pollfd but
+    // I wonder how wise is this in the long term (VZ)
+    gint res = wxPoll( (wxPollFd *) ufds, nfds, timeout );
 
     wxMutexGuiEnter();
     g_mainThreadLocked = FALSE;
@@ -463,6 +543,16 @@ GdkVisual *wxApp::GetGdkVisual()
 
 bool wxApp::ProcessIdle()
 {
+    wxWindowList::Node* node = wxTopLevelWindows.GetFirst();
+    node = wxTopLevelWindows.GetFirst();
+    while (node)
+    {
+        wxWindow* win = node->GetData();
+        CallInternalIdle( win );
+
+        node = node->GetNext();
+    }
+
     wxIdleEvent event;
     event.SetEventObject( this );
     ProcessEvent( event );
@@ -510,14 +600,6 @@ bool wxApp::SendIdleEvents()
         node = node->GetNext();
     }
 
-    node = wxTopLevelWindows.GetFirst();
-    while (node)
-    {
-        wxWindow* win = node->GetData();
-        CallInternalIdle( win );
-
-        node = node->GetNext();
-    }
     return needMore;
 }
 
@@ -545,7 +627,7 @@ bool wxApp::SendIdleEvents( wxWindow* win )
     event.SetEventObject(win);
 
     win->GetEventHandler()->ProcessEvent(event);
-    
+
     if (event.MoreRequested())
         needMore = TRUE;
 
@@ -609,10 +691,6 @@ bool wxApp::Initialize()
 {
     wxClassInfo::InitializeClasses();
 
-#if wxUSE_INTL
-    wxFont::SetDefaultEncoding(wxLocale::GetSystemEncoding());
-#endif
-
     // GL: I'm annoyed ... I don't know where to put this and I don't want to
     // create a module for that as it's part of the core.
 #if wxUSE_THREADS
@@ -631,7 +709,12 @@ bool wxApp::Initialize()
 #endif
 
     wxModule::RegisterModules();
-    if (!wxModule::InitializeModules()) return FALSE;
+    if (!wxModule::InitializeModules())
+        return FALSE;
+
+#if wxUSE_INTL
+    wxFont::SetDefaultEncoding(wxLocale::GetSystemEncoding());
+#endif
 
     return TRUE;
 }
@@ -810,9 +893,11 @@ int wxEntry( int argc, char *argv[] )
     wxTheApp->argv = argv;
 #endif
 
-    wxString name(wxFileNameFromPath(argv[0]));
-    wxStripExtension( name );
-    wxTheApp->SetAppName( name );
+    if (wxTheApp->argc > 0)
+    {
+        wxFileName fname( wxTheApp->argv[0] );
+        wxTheApp->SetAppName( fname.GetName() );
+    }
 
     int retValue;
     retValue = wxEntryInitGui();
diff --git a/src/gtk/bitmap.cpp b/src/gtk/bitmap.cpp
index 033071565e..d2e9fda7f0 100644
--- a/src/gtk/bitmap.cpp
+++ b/src/gtk/bitmap.cpp
@@ -344,7 +344,7 @@ bool wxBitmap::CreateFromImage( const wxImage& image, int depth )
     m_refData = new wxBitmapRefData();
 
     // ------
-    // convertion to mono bitmap:
+    // conversion to mono bitmap:
     // ------
     if (depth == 1)
     {
@@ -440,7 +440,7 @@ bool wxBitmap::CreateFromImage( const wxImage& image, int depth )
     }
 
     // ------
-    // convertion to colour bitmap:
+    // conversion to colour bitmap:
     // ------
     else
     {
diff --git a/src/gtk/button.cpp b/src/gtk/button.cpp
index 711b64f16c..fae04c1372 100644
--- a/src/gtk/button.cpp
+++ b/src/gtk/button.cpp
@@ -188,6 +188,15 @@ bool wxButton::Enable( bool enable )
     return TRUE;
 }
 
+bool wxButton::IsOwnGtkWindow( GdkWindow *window )
+{
+#ifdef __WXGTK20__
+    return GTK_BUTTON(m_widget)->event_window;
+#else
+    return (window == m_widget->window);
+#endif
+}
+
 void wxButton::ApplyWidgetStyle()
 {
     SetWidgetStyle();
diff --git a/src/gtk/colour.cpp b/src/gtk/colour.cpp
index 84c790a329..21d852e55d 100644
--- a/src/gtk/colour.cpp
+++ b/src/gtk/colour.cpp
@@ -13,6 +13,7 @@
 #endif
 
 #include "wx/gdicmn.h"
+#include "wx/gtk/private.h"
 
 #include <gdk/gdk.h>
 #include <gdk/gdkx.h>
@@ -167,7 +168,7 @@ void wxColour::InitFromName( const wxString &colourName )
     {
         m_refData = new wxColourRefData();
         
-        if (!gdk_color_parse( colourName.mb_str(), &M_COLDATA->m_color ))
+        if (!gdk_color_parse( wxGTK_CONV( colourName ), &M_COLDATA->m_color ))
         {
             // VZ: asserts are good in general but this one is triggered by
             //     calling wxColourDatabase::FindColour() with an
@@ -217,11 +218,13 @@ void wxColour::Set( unsigned char red, unsigned char green, unsigned char blue )
 {
     AllocExclusive();
     
-    m_refData = new wxColourRefData();
     M_COLDATA->m_color.red = ((unsigned short)red) << SHIFT;
     M_COLDATA->m_color.green = ((unsigned short)green) << SHIFT;
     M_COLDATA->m_color.blue = ((unsigned short)blue) << SHIFT;
     M_COLDATA->m_color.pixel = 0;
+    
+    M_COLDATA->m_colormap = (GdkColormap*) NULL;
+    M_COLDATA->m_hasPixel = FALSE;
 }
 
 unsigned char wxColour::Red() const
diff --git a/src/gtk/combobox.cpp b/src/gtk/combobox.cpp
index a03df573b1..ee0cc2e8d5 100644
--- a/src/gtk/combobox.cpp
+++ b/src/gtk/combobox.cpp
@@ -209,6 +209,17 @@ wxComboBox::~wxComboBox()
     m_clientDataList.Clear();
 }
 
+void wxComboBox::SetFocus()
+{
+    if ( m_hasFocus )
+    {
+        // don't do anything if we already have focus
+        return;
+    }
+
+    gtk_widget_grab_focus( m_focusWidget );
+}
+
 void wxComboBox::AppendCommon( const wxString &item )
 {
     wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
@@ -364,8 +375,14 @@ int wxComboBox::FindString( const wxString &item )
     {
         GtkBin *bin = GTK_BIN( child->data );
         GtkLabel *label = GTK_LABEL( bin->child );
-        if (item == wxString(label->label,*wxConvCurrent))
+#ifdef __WXGTK20__
+        wxString str( wxGTK_CONV_BACK( gtk_label_get_text(label) ) );
+#else
+        wxString str( label->label );
+#endif
+        if (item == str)
             return count;
+            
         count++;
         child = child->next;
     }
@@ -408,7 +425,7 @@ wxString wxComboBox::GetString( int n ) const
         GtkBin *bin = GTK_BIN( child->data );
         GtkLabel *label = GTK_LABEL( bin->child );
 #ifdef __WXGTK20__
-        str = wxGTK_CONV_BACK( gtk_label_get_text( label) );
+        str = wxGTK_CONV_BACK( gtk_label_get_text(label) );
 #else
         str = wxString( label->label );
 #endif
@@ -431,7 +448,12 @@ wxString wxComboBox::GetStringSelection() const
     if (selection)
     {
         GtkBin *bin = GTK_BIN( selection->data );
-        wxString tmp = wxString(GTK_LABEL( bin->child )->label,*wxConvCurrent);
+        GtkLabel *label = GTK_LABEL( bin->child );
+#ifdef __WXGTK20__
+        wxString tmp( wxGTK_CONV_BACK( gtk_label_get_text(label) ) );
+#else
+        wxString tmp( label->label );
+#endif
         return tmp;
     }
 
diff --git a/src/gtk/dataobj.cpp b/src/gtk/dataobj.cpp
index ca8fb4dbd6..2b0f4f43ae 100644
--- a/src/gtk/dataobj.cpp
+++ b/src/gtk/dataobj.cpp
@@ -158,6 +158,11 @@ wxDataObject::wxDataObject()
 {
 }
 
+wxDataObject::~wxDataObject()
+{
+    // dtor is empty but needed for Darwin and AIX -- otherwise it doesn't link
+}
+
 bool wxDataObject::IsSupportedFormat(const wxDataFormat& format, Direction dir) const
 {
     size_t nFormatCount = GetFormatCount(dir);
diff --git a/src/gtk/dcclient.cpp b/src/gtk/dcclient.cpp
index 8a33377614..d36b26b870 100644
--- a/src/gtk/dcclient.cpp
+++ b/src/gtk/dcclient.cpp
@@ -330,12 +330,7 @@ wxWindowDC::wxWindowDC( wxWindow *window )
     wxASSERT_MSG( widget, wxT("DC needs a widget") );
 
 #ifdef __WXGTK20__
-    m_context = gtk_widget_get_pango_context( widget );
-    
-    // Always take Xft context to get matching fonts
-    // for display and printing.
-    // m_context = pango_xft_get_context (GDK_DISPLAY (), DefaultScreen (GDK_DISPLAY ()));
-    
+    m_context = window->GtkGetPangoDefaultContext();
     m_fontdesc = widget->style->font_desc;
 #endif
 
@@ -1414,19 +1409,23 @@ void wxWindowDC::DoDrawText( const wxString &text, wxCoord x, wxCoord y )
     wxCHECK_RET( Ok(), wxT("invalid window dc") );
 
     if (!m_window) return;
+    
+    if (text.empty()) return;
 
+#ifndef __WXGTK20__
     GdkFont *font = m_font.GetInternalFont( m_scaleY );
 
     wxCHECK_RET( font, wxT("invalid font") );
+#endif
 
-#if defined(__WXGTK20__)
+#ifdef __WXGTK20__
     wxCHECK_RET( m_context, wxT("no Pango context") );
 #endif
 
     x = XLOG2DEV(x);
     y = YLOG2DEV(y);
 
-#if defined(__WXGTK20__)
+#ifdef __WXGTK20__
     // TODO: the layout engine should be abstracted at a higher level!
     PangoLayout *layout = pango_layout_new(m_context);
     pango_layout_set_font_description(layout, m_fontdesc);
@@ -1440,12 +1439,17 @@ void wxWindowDC::DoDrawText( const wxString &text, wxCoord x, wxCoord y )
         pango_layout_set_text(layout, (const char*) data, strlen( (const char*) data ));
 #endif
     }
-    PangoLayoutLine *line = (PangoLayoutLine *)pango_layout_get_lines(layout)->data;
-    PangoRectangle rect;
-    pango_layout_line_get_extents(line, NULL, &rect);
-    wxCoord width = rect.width;
-    wxCoord height = rect.height;
+    
+    // Measure layout.
+    int w,h;
+    pango_layout_get_pixel_size(layout, &w, &h);
+    wxCoord width = w;
+    wxCoord height = h;
+    
+    // Draw layout.
     gdk_draw_layout( m_window, m_textGC, x, y, layout );
+    
+    g_object_unref( G_OBJECT( layout ) );
 #else // GTK+ 1.x
     wxCoord width = gdk_string_width( font, text.mbc_str() );
     wxCoord height = font->ascent + font->descent;
@@ -1469,9 +1473,6 @@ void wxWindowDC::DoDrawText( const wxString &text, wxCoord x, wxCoord y )
     }
 #endif // GTK+ 2.0/1.x
 
-#if defined(__WXGTK20__)
-    g_object_unref( G_OBJECT( layout ) );
-#endif
 
     width = wxCoord(width / m_scaleX);
     height = wxCoord(height / m_scaleY);
@@ -1596,8 +1597,6 @@ void wxWindowDC::DoGetTextExtent(const wxString &string,
                                  wxCoord *descent, wxCoord *externalLeading,
                                  wxFont *theFont) const
 {
-    wxFont fontToUse = m_font;
-    if (theFont) fontToUse = *theFont;
     if (string.IsEmpty())
     {
         if (width) (*width) = 0;
@@ -1606,9 +1605,14 @@ void wxWindowDC::DoGetTextExtent(const wxString &string,
     }
     
 #ifdef __WXGTK20__
-    PangoFontDescription *desc = fontToUse.GetNativeFontInfo()->description;
+    // Create layout and set font description
     PangoLayout *layout = pango_layout_new(m_context);
-    pango_layout_set_font_description(layout, desc);
+    if (theFont)
+        pango_layout_set_font_description( layout, theFont->GetNativeFontInfo()->description );
+    else
+        pango_layout_set_font_description(layout, m_fontdesc);
+        
+    // Set layout's text
 #if wxUSE_UNICODE
         const wxCharBuffer data = wxConvUTF8.cWC2MB( string );
         pango_layout_set_text(layout, (const char*) data, strlen( (const char*) data ));
@@ -1617,23 +1621,25 @@ void wxWindowDC::DoGetTextExtent(const wxString &string,
         const wxCharBuffer data = wxConvUTF8.cWC2MB( wdata );
         pango_layout_set_text(layout, (const char*) data, strlen( (const char*) data ));
 #endif
-    PangoLayoutLine *line = (PangoLayoutLine *)pango_layout_get_lines(layout)->data;
  
-    PangoRectangle rect;
-    pango_layout_line_get_extents(line, NULL, &rect);
-       
+    // Measure text.
+    int w,h;
+    pango_layout_get_pixel_size(layout, &w, &h);
     
-    if (width) (*width) = (wxCoord) (rect.width / PANGO_SCALE);
-    if (height) (*height) = (wxCoord) (rect.height / PANGO_SCALE);
+    if (width) (*width) = (wxCoord) w; 
+    if (height) (*height) = (wxCoord) h;
     if (descent)
     {
-        // Do something about metrics here
+        // Do something about metrics here. TODO.
         (*descent) = 0;
     }
     if (externalLeading) (*externalLeading) = 0;  // ??
     
     g_object_unref( G_OBJECT( layout ) );
 #else
+    wxFont fontToUse = m_font;
+    if (theFont) fontToUse = *theFont;
+    
     GdkFont *font = fontToUse.GetInternalFont( m_scaleY );
     if (width) (*width) = wxCoord(gdk_string_width( font, string.mbc_str() ) / m_scaleX);
     if (height) (*height) = wxCoord((font->ascent + font->descent) / m_scaleY);
@@ -1644,18 +1650,40 @@ void wxWindowDC::DoGetTextExtent(const wxString &string,
 
 wxCoord wxWindowDC::GetCharWidth() const
 {
+#ifdef __WXGTK20__
+    // There should be an easier way.
+    PangoLayout *layout = pango_layout_new(m_context);
+    pango_layout_set_font_description(layout, m_fontdesc);
+    pango_layout_set_text(layout, "H", 1 );
+    int w,h;
+    pango_layout_get_pixel_size(layout, &w, &h);
+    g_object_unref( G_OBJECT( layout ) );
+    return w;
+#else
     GdkFont *font = m_font.GetInternalFont( m_scaleY );
     wxCHECK_MSG( font, -1, wxT("invalid font") );
 
     return wxCoord(gdk_string_width( font, "H" ) / m_scaleX);
+#endif
 }
 
 wxCoord wxWindowDC::GetCharHeight() const
 {
+#ifdef __WXGTK20__
+    // There should be an easier way.
+    PangoLayout *layout = pango_layout_new(m_context);
+    pango_layout_set_font_description(layout, m_fontdesc);
+    pango_layout_set_text(layout, "H", 1 );
+    int w,h;
+    pango_layout_get_pixel_size(layout, &w, &h);
+    g_object_unref( G_OBJECT( layout ) );
+    return h;
+#else
     GdkFont *font = m_font.GetInternalFont( m_scaleY );
     wxCHECK_MSG( font, -1, wxT("invalid font") );
 
     return wxCoord((font->ascent + font->descent) / m_scaleY);
+#endif
 }
 
 void wxWindowDC::Clear()
@@ -1705,6 +1733,14 @@ void wxWindowDC::SetFont( const wxFont &font )
     m_font = font;
 #ifdef __WXGTK20__
     m_fontdesc = m_font.GetNativeFontInfo()->description;
+   
+    if (m_owner)
+    {
+        if (m_font.GetNoAntiAliasing())
+            m_context = m_owner->GtkGetPangoX11Context();
+        else
+            m_context = m_owner->GtkGetPangoDefaultContext();
+    }
 #endif
 }
 
@@ -1816,7 +1852,7 @@ void wxWindowDC::SetPen( const wxPen &pen )
             gdk_gc_set_dashes( m_penGC, 0, (wxGTKDash*)req_dash, req_nb_dash );
         }
     }
-#endif
+#endif // GTK+ > 1.0
 
     GdkCapStyle capStyle = GDK_CAP_ROUND;
     switch (m_pen.GetCap())
@@ -1955,12 +1991,12 @@ void wxWindowDC::SetLogicalFunction( int function )
     if (!m_window)
         return;
 
-    GdkFunction mode = GDK_COPY;
+    GdkFunction mode;
     switch (function)
     {
         case wxXOR:          mode = GDK_XOR;           break;
         case wxINVERT:       mode = GDK_INVERT;        break;
-#if (GTK_MINOR_VERSION > 0)
+#if (GTK_MINOR_VERSION > 0) || (GTK_MAJOR_VERSION > 1)
         case wxOR_REVERSE:   mode = GDK_OR_REVERSE;    break;
         case wxAND_REVERSE:  mode = GDK_AND_REVERSE;   break;
         case wxCLEAR:        mode = GDK_CLEAR;         break;
@@ -1977,12 +2013,10 @@ void wxWindowDC::SetLogicalFunction( int function )
 
         // unsupported by GTK
         case wxNOR:          mode = GDK_COPY;          break;
-#endif
+#endif // GTK+ > 1.0
         default:
-        {
            wxFAIL_MSG( wxT("unsupported logical function") );
-           break;
-        }
+           mode = GDK_COPY;
     }
 
     m_logicalFunction = function;
diff --git a/src/gtk/dialog.cpp b/src/gtk/dialog.cpp
index 68a991a371..4c95d23682 100644
--- a/src/gtk/dialog.cpp
+++ b/src/gtk/dialog.cpp
@@ -30,8 +30,6 @@ extern void wxapp_install_idle_handler();
 extern bool g_isIdle;
 extern int g_openDialogs;
 
-
-
 //-----------------------------------------------------------------------------
 // wxDialog
 //-----------------------------------------------------------------------------
@@ -209,9 +207,11 @@ int wxDialog::ShowModal()
     }
 
     wxBusyCursorSuspender cs; // temporarily suppress the busy cursor
-
+    
     Show( TRUE );
 
+    SetFocus();
+
     m_modalShowing = TRUE;
 
     g_openDialogs++;
diff --git a/src/gtk/files.lst b/src/gtk/files.lst
index 68e2a7dacd..0f77d8693d 100644
--- a/src/gtk/files.lst
+++ b/src/gtk/files.lst
@@ -265,7 +265,6 @@ ALL_SOURCES = \
 		html/m_layout.cpp \
 		html/m_links.cpp \
 		html/m_list.cpp \
-		html/m_meta.cpp \
 		html/m_pre.cpp \
 		html/m_style.cpp \
 		html/m_tables.cpp \
@@ -636,7 +635,6 @@ ALL_HEADERS = \
 		protocol/protocol.h
 
 COMMONOBJS = \
-		parser.o \
 		appcmn.o \
 		artprov.o \
 		artstd.o \
@@ -984,7 +982,6 @@ HTMLOBJS = \
 		m_layout.o \
 		m_links.o \
 		m_list.o \
-		m_meta.o \
 		m_pre.o \
 		m_style.o \
 		m_tables.o \
diff --git a/src/gtk/font.cpp b/src/gtk/font.cpp
index 31345187cb..2fd0ad6f5f 100644
--- a/src/gtk/font.cpp
+++ b/src/gtk/font.cpp
@@ -93,6 +93,9 @@ public:
     void SetFaceName(const wxString& facename);
     void SetEncoding(wxFontEncoding encoding);
 
+    void SetNoAntiAliasing( bool no = TRUE ) { m_noAA = no; }
+    bool GetNoAntiAliasing() { return m_noAA; }
+    
     // and this one also modifies all the other font data fields
     void SetNativeFontInfo(const wxNativeFontInfo& info);
 
@@ -130,17 +133,14 @@ protected:
     void InitFromNative();
 
 private:
-#ifdef __WXGTK20__
-    void ClearGdkFonts() { }
-#else // GTK 1.x
-    // clear m_scaled_xfonts
+    // clear m_scaled_xfonts if any
     void ClearGdkFonts();
 
+#ifndef __WXGTK20__
     // the map of font sizes to "GdkFont *"
     wxScaledFontList  m_scaled_xfonts;
 #endif // GTK 2.0/1.x
 
-    // the broken down font parameters
     int             m_pointSize;
     int             m_family,
                     m_style,
@@ -148,6 +148,7 @@ private:
     bool            m_underlined;
     wxString        m_faceName;
     wxFontEncoding  m_encoding;  // Unused under GTK 2.0
+    bool            m_noAA;      // No anti-aliasing
 
     // The native font info, basicly an XFLD under GTK 1.2 and
     // the pango font description under GTK 2.0.
@@ -156,12 +157,8 @@ private:
     friend class wxFont;
 };
 
-// ============================================================================
-// wxFontRefData implementation
-// ============================================================================
-
 // ----------------------------------------------------------------------------
-// wxFontRefData creation
+// wxFontRefData 
 // ----------------------------------------------------------------------------
 
 void wxFontRefData::Init(int pointSize,
@@ -188,25 +185,37 @@ void wxFontRefData::Init(int pointSize,
 
     m_underlined = underlined;
     m_encoding = encoding;
+    
+    m_noAA = FALSE;
 
 #ifdef __WXGTK20__
     // Create native font info
     m_nativeFontInfo.description = pango_font_description_new();
 
     // And set its values
-    switch (m_family)
-    {
-        case wxFONTFAMILY_MODERN:
-        case wxFONTFAMILY_TELETYPE:
-           pango_font_description_set_family( m_nativeFontInfo.description, "monospace" );
-           break;
-        case wxFONTFAMILY_SWISS:
-           pango_font_description_set_family( m_nativeFontInfo.description, "serif" );
-           break;
-        default:
-           pango_font_description_set_family( m_nativeFontInfo.description, "sans" );
-           break;
+    if (!m_faceName.empty())
+    {
+       pango_font_description_set_family( m_nativeFontInfo.description, wxGTK_CONV(m_faceName) );
+    }
+    else
+    {
+        switch (m_family)
+        {
+            case wxFONTFAMILY_MODERN:
+            case wxFONTFAMILY_TELETYPE:
+               pango_font_description_set_family( m_nativeFontInfo.description, "monospace" );
+               break;
+            case wxFONTFAMILY_ROMAN:
+               pango_font_description_set_family( m_nativeFontInfo.description, "serif" );
+               break;
+            case wxFONTFAMILY_SWISS:
+               // SWISS = sans serif
+            default:
+               pango_font_description_set_family( m_nativeFontInfo.description, "sans" );
+               break;
+        }
     }
+    
     SetStyle( m_style );
     SetPointSize( m_pointSize );
     SetWeight( m_weight );
@@ -215,6 +224,8 @@ void wxFontRefData::Init(int pointSize,
 
 void wxFontRefData::InitFromNative()
 {
+    m_noAA = FALSE;
+
 #ifdef __WXGTK20__
     // Get native info
     PangoFontDescription *desc = m_nativeFontInfo.description;
@@ -267,6 +278,10 @@ void wxFontRefData::InitFromNative()
     {
         m_family = wxFONTFAMILY_SWISS;
     }
+    else if (m_faceName == wxT("serif"))
+    {
+        m_family = wxFONTFAMILY_ROMAN;
+    }
     else
     {
         m_family = wxFONTFAMILY_UNKNOWN;
@@ -391,6 +406,8 @@ wxFontRefData::wxFontRefData( const wxFontRefData& data )
     m_faceName = data.m_faceName;
     m_encoding = data.m_encoding;
 
+    m_noAA = data.m_noAA;
+    
     m_nativeFontInfo = data.m_nativeFontInfo;
 }
 
@@ -414,9 +431,9 @@ wxFontRefData::wxFontRefData(const wxString& fontname)
     InitFromNative();
 }
 
-#ifndef __WXGTK20__
 void wxFontRefData::ClearGdkFonts()
 {
+#ifndef __WXGTK20__
     for ( wxScaledFontList::iterator i = m_scaled_xfonts.begin();
           i != m_scaled_xfonts.end();
           ++i )
@@ -426,8 +443,8 @@ void wxFontRefData::ClearGdkFonts()
     }
 
     m_scaled_xfonts.clear();
-}
 #endif // GTK 1.x
+}
 
 wxFontRefData::~wxFontRefData()
 {
@@ -522,7 +539,27 @@ void wxFontRefData::SetWeight(int weight)
 {
     m_weight = weight;
 
-#ifndef __WXGTK20__
+#ifdef __WXGTK20__
+    PangoFontDescription *desc = m_nativeFontInfo.description;
+    switch ( weight )
+    {
+        case wxFONTWEIGHT_BOLD:
+            pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD);
+            break;
+
+        case wxFONTWEIGHT_LIGHT:
+            pango_font_description_set_weight(desc, PANGO_WEIGHT_LIGHT);
+            break;
+
+        default:
+            wxFAIL_MSG( _T("unknown font weight") );
+            // fall through
+
+        case wxFONTWEIGHT_NORMAL:
+            // unspecified
+            pango_font_description_set_weight(desc, PANGO_WEIGHT_NORMAL);
+    }
+#else //!__WXGTK20__
     if ( HasNativeFont() )
     {
         wxString boldness;
@@ -597,10 +634,6 @@ void wxFontRefData::SetNativeFontInfo(const wxNativeFontInfo& info)
     InitFromNative();
 }
 
-// ============================================================================
-// wxFont implementation
-// ============================================================================
-
 // ----------------------------------------------------------------------------
 // wxFont creation
 // ----------------------------------------------------------------------------
@@ -624,7 +657,7 @@ wxFont::wxFont(const wxNativeFontInfo& info)
             info.GetFaceName(),
             info.GetEncoding() );
 #else
-    Create(info.GetXFontName());
+    (void) Create(info.GetXFontName());
 #endif
 }
 
@@ -636,6 +669,8 @@ bool wxFont::Create( int pointSize,
                      const wxString& face,
                      wxFontEncoding encoding)
 {
+    UnRef();
+
     m_refData = new wxFontRefData(pointSize, family, style, weight,
                                   underlined, face, encoding);
 
@@ -679,9 +714,6 @@ wxFont::~wxFont()
 // accessors
 // ----------------------------------------------------------------------------
 
-// all accessors are just forwarded to wxFontRefData which has everything we
-// need
-
 int wxFont::GetPointSize() const
 {
     wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
@@ -731,6 +763,13 @@ wxFontEncoding wxFont::GetEncoding() const
     return M_FONTDATA->m_encoding;
 }
 
+bool wxFont::GetNoAntiAliasing()
+{
+    wxCHECK_MSG( Ok(), wxFONTENCODING_DEFAULT, wxT("invalid font") );
+
+    return M_FONTDATA->m_noAA;
+}
+
 wxNativeFontInfo *wxFont::GetNativeFontInfo() const
 {
     wxCHECK_MSG( Ok(), (wxNativeFontInfo *)NULL, wxT("invalid font") );
@@ -814,11 +853,18 @@ void wxFont::SetEncoding(wxFontEncoding encoding)
     M_FONTDATA->SetEncoding(encoding);
 }
 
-void wxFont::SetNativeFontInfo(const wxNativeFontInfo& info)
+void wxFont::SetNativeFontInfo( const wxNativeFontInfo& info )
+{
+    Unshare();
+
+    M_FONTDATA->SetNativeFontInfo( info );
+}
+
+void wxFont::SetNoAntiAliasing( bool no )
 {
     Unshare();
 
-    M_FONTDATA->SetNativeFontInfo(info);
+    M_FONTDATA->SetNoAntiAliasing( no );
 }
 
 // ----------------------------------------------------------------------------
diff --git a/src/gtk/fontdlg.cpp b/src/gtk/fontdlg.cpp
index 4582a5c002..3dfb008131 100644
--- a/src/gtk/fontdlg.cpp
+++ b/src/gtk/fontdlg.cpp
@@ -77,7 +77,7 @@ void gtk_fontdialog_ok_callback( GtkWidget *WXUNUSED(widget), wxFontDialog *dial
     
     // printf( "font %s\n", fontname );
 
-    dialog->SetChosenFont(fontname);
+    dialog->SetChosenFont( fontname);
 
     g_free( fontname );
 
@@ -181,7 +181,7 @@ wxFontDialog::~wxFontDialog()
 
 void wxFontDialog::SetChosenFont(const char *fontname)
 {
-    m_fontData.SetChosenFont(wxFont(fontname));
+    m_fontData.SetChosenFont(wxFont( wxString::FromAscii(fontname) ));
 }
 
 #endif // wxUSE_FONTDLG
diff --git a/src/gtk/frame.cpp b/src/gtk/frame.cpp
index acad4c3355..7e1ed2b2ba 100644
--- a/src/gtk/frame.cpp
+++ b/src/gtk/frame.cpp
@@ -45,7 +45,6 @@
 // constants
 // ----------------------------------------------------------------------------
 
-const int wxMENU_HEIGHT    = 27;
 const int wxSTATUS_HEIGHT  = 25;
 const int wxPLACE_HOLDER   = 0;
 
@@ -165,7 +164,7 @@ static void wxInsertChildInFrame( wxFrame* parent, wxWindow* child )
                          child->m_y,
                          child->m_width,
                          child->m_height );
-
+                         
 #if wxUSE_TOOLBAR_NATIVE
         // We connect to these events for recalculating the client area
         // space when the toolbar is floating
@@ -193,7 +192,7 @@ static void wxInsertChildInFrame( wxFrame* parent, wxWindow* child )
                          child->m_width,
                          child->m_height );
     }
-
+    
     // Resize on OnInternalIdle
     parent->GtkUpdateSize();
 }
@@ -206,6 +205,7 @@ void wxFrame::Init()
 {
     m_menuBarDetached = FALSE;
     m_toolBarDetached = FALSE;
+    m_menuBarHeight = 2;
 }
 
 bool wxFrame::Create( wxWindow *parent,
@@ -219,6 +219,7 @@ bool wxFrame::Create( wxWindow *parent,
     bool rt = wxTopLevelWindow::Create(parent, id, title, pos, sizeOrig,
                                        style, name);
     m_insertCallback = (wxInsertChildFunction) wxInsertChildInFrame;
+    
     return rt;
 }
 
@@ -245,7 +246,7 @@ void wxFrame::DoGetClientSize( int *width, int *height ) const
         if (m_frameMenuBar)
         {
             if (!m_menuBarDetached)
-                (*height) -= wxMENU_HEIGHT;
+                (*height) -= m_menuBarHeight;
             else
                 (*height) -= wxPLACE_HOLDER;
         }
@@ -292,7 +293,7 @@ void wxFrame::DoSetClientSize( int width, int height )
         if (m_frameMenuBar)
         {
             if (!m_menuBarDetached)
-                height += wxMENU_HEIGHT;
+                height += m_menuBarHeight;
             else
                 height += wxPLACE_HOLDER;
         }
@@ -396,7 +397,7 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
             int xx = m_miniEdge;
             int yy = m_miniEdge + m_miniTitle;
             int ww = m_width  - 2*m_miniEdge;
-            int hh = wxMENU_HEIGHT;
+            int hh = m_menuBarHeight;
             if (m_menuBarDetached) hh = wxPLACE_HOLDER;
             m_frameMenuBar->m_x = xx;
             m_frameMenuBar->m_y = yy;
@@ -419,7 +420,7 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
             if (m_frameMenuBar)
             {
                 if (!m_menuBarDetached)
-                    yy += wxMENU_HEIGHT;
+                    yy += m_menuBarHeight;
                 else
                     yy += wxPLACE_HOLDER;
             }
@@ -576,11 +577,34 @@ void wxFrame::AttachMenuBar( wxMenuBar *menuBar )
             gtk_signal_connect( GTK_OBJECT(menuBar->m_widget), "child_detached",
                 GTK_SIGNAL_FUNC(gtk_menu_detached_callback), (gpointer)this );
         }
-
+        
         m_frameMenuBar->Show( TRUE );
+
+        UpdateMenuBarSize();
     }
+    else
+    {
+        m_menuBarHeight = 2;
+        GtkUpdateSize();        // resize window in OnInternalIdle
+    }
+}
+
+void wxFrame::UpdateMenuBarSize()
+{
+    wxASSERT_MSG( m_frameMenuBar, _T("Updating non existant menubar?") );
+
+    GtkRequisition  req;
+
+    req.width = 2;
+    req.height = 2;
+
+    (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_frameMenuBar->m_widget) )->size_request )
+        (m_frameMenuBar->m_widget, &req );
+
+    m_menuBarHeight = req.height;
+
+        // resize window in OnInternalIdle
 
-    // resize window in OnInternalIdle
     GtkUpdateSize();
 }
 
diff --git a/src/gtk/gauge.cpp b/src/gtk/gauge.cpp
index 917ab60307..f180206c79 100644
--- a/src/gtk/gauge.cpp
+++ b/src/gtk/gauge.cpp
@@ -15,18 +15,22 @@
 
 #if wxUSE_GAUGE
 
-#include <gdk/gdk.h>
 #include <gtk/gtk.h>
 
 //-----------------------------------------------------------------------------
 // wxGauge
 //-----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxGauge,wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxGauge, wxControl)
 
-bool wxGauge::Create( wxWindow *parent, wxWindowID id,  int range,
-    const wxPoint& pos, const wxSize& size,
-    long style, const wxValidator& validator, const wxString& name )
+bool wxGauge::Create( wxWindow *parent,
+                      wxWindowID id,
+                      int range,
+                      const wxPoint& pos,
+                      const wxSize& size,
+                      long style,
+                      const wxValidator& validator,
+                      const wxString& name )
 {
     m_needParent = TRUE;
 
@@ -38,12 +42,13 @@ bool wxGauge::Create( wxWindow *parent, wxWindowID id,  int range,
     }
 
     m_rangeMax = range;
-    m_gaugePos = 0;
-    m_useProgressBar = TRUE;
 
     m_widget = gtk_progress_bar_new();
-    if( style & wxGA_VERTICAL)
-        gtk_progress_bar_set_orientation( GTK_PROGRESS_BAR(m_widget) , GTK_PROGRESS_BOTTOM_TO_TOP );
+    if ( style & wxGA_VERTICAL )
+    {
+        gtk_progress_bar_set_orientation( GTK_PROGRESS_BAR(m_widget),
+                                          GTK_PROGRESS_BOTTOM_TO_TOP );
+    }
 
     m_parent->DoAddChild( this );
 
@@ -54,20 +59,31 @@ bool wxGauge::Create( wxWindow *parent, wxWindowID id,  int range,
     return TRUE;
 }
 
-void wxGauge::SetRange( int r )
+void wxGauge::DoSetGauge()
+{
+    wxASSERT_MSG( 0 <= m_gaugePos && m_gaugePos <= m_rangeMax,
+                  _T("invalid gauge position in DoSetGauge()") );
+
+    gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget),
+                             m_rangeMax ? ((float)m_gaugePos)/m_rangeMax : 0.);
+}
+
+void wxGauge::SetRange( int range )
 {
-    m_rangeMax = r;
-    if (m_gaugePos > m_rangeMax) m_gaugePos = m_rangeMax;
+    m_rangeMax = range;
+    if (m_gaugePos > m_rangeMax)
+        m_gaugePos = m_rangeMax;
 
-    gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget), ((float)m_gaugePos)/m_rangeMax );
+    DoSetGauge();
 }
 
 void wxGauge::SetValue( int pos )
 {
+    wxCHECK_RET( pos <= m_rangeMax, _T("invalid value in wxGauge::SetValue()") );
+
     m_gaugePos = pos;
-    if (m_gaugePos > m_rangeMax) m_gaugePos = m_rangeMax;
 
-    gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget), ((float)m_gaugePos)/m_rangeMax );
+    DoSetGauge();
 }
 
 int wxGauge::GetRange() const
diff --git a/src/gtk/glcanvas.cpp b/src/gtk/glcanvas.cpp
index e46cac9e32..ff037160c6 100644
--- a/src/gtk/glcanvas.cpp
+++ b/src/gtk/glcanvas.cpp
@@ -1,12 +1,12 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        glcanvas.cpp
+// Name:        gtk/glcanvas.cpp
 // Purpose:     wxGLCanvas, for using OpenGL/Mesa with wxWindows and GTK
 // Author:      Robert Roebling
 // Modified by:
 // Created:     17/08/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Robert Roebling
-// Licence:   	wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -24,7 +24,8 @@
 #include "wx/module.h"
 #include "wx/app.h"
 
-extern "C" {
+extern "C"
+{
 #include "gtk/gtk.h"
 #include "gdk/gdk.h"
 #include "gdk/gdkx.h"
@@ -58,16 +59,16 @@ wxGLContext::wxGLContext( bool WXUNUSED(isRGB), wxWindow *win, const wxPalette&
 
     wxGLCanvas *gc = (wxGLCanvas*) win;
     XVisualInfo *vi = (XVisualInfo *) gc->m_vi;
-    
-    wxCHECK_RET( vi, "invalid visual for OpenGl" );
-    
+
+    wxCHECK_RET( vi, _T("invalid visual for OpenGl") );
+
     m_glContext = glXCreateContext( GDK_DISPLAY(), vi, None, GL_TRUE );
-  
-    wxCHECK_RET( m_glContext, "Couldn't create OpenGl context" );
+
+    wxCHECK_RET( m_glContext, _T("Couldn't create OpenGl context") );
 }
 
-wxGLContext::wxGLContext( 
-               bool WXUNUSED(isRGB), wxWindow *win, 
+wxGLContext::wxGLContext(
+               bool WXUNUSED(isRGB), wxWindow *win,
                const wxPalette& WXUNUSED(palette),
                const wxGLContext *other        /* for sharing display lists */
 )
@@ -77,26 +78,28 @@ wxGLContext::wxGLContext(
 
     wxGLCanvas *gc = (wxGLCanvas*) win;
     XVisualInfo *vi = (XVisualInfo *) gc->m_vi;
-    
-    wxCHECK_RET( vi, "invalid visual for OpenGl" );
-    
-    if( other != 0 )
-        m_glContext = glXCreateContext( GDK_DISPLAY(), vi, other->m_glContext, GL_TRUE );
-    else
-        m_glContext = glXCreateContext( GDK_DISPLAY(), vi, None, GL_TRUE );
-    
-    wxCHECK_RET( m_glContext, "Couldn't create OpenGl context" );
+
+    wxCHECK_RET( vi, _T("invalid visual for OpenGl") );
+
+    m_glContext = glXCreateContext( GDK_DISPLAY(), vi,
+                                    other ? other->m_glContext : None,
+                                    GL_TRUE );
+
+    if ( !m_glContext )
+    {
+        wxFAIL_MSG( _T("Couldn't create OpenGl context") );
+    }
 }
 
 wxGLContext::~wxGLContext()
 {
     if (!m_glContext) return;
-    
+
     if (m_glContext == glXGetCurrentContext())
     {
         glXMakeCurrent( GDK_DISPLAY(), None, NULL);
     }
-	
+
     glXDestroyContext( GDK_DISPLAY(), m_glContext );
 }
 
@@ -111,14 +114,14 @@ void wxGLContext::SwapBuffers()
 
 void wxGLContext::SetCurrent()
 {
-    if (m_glContext) 
-    { 
+    if (m_glContext)
+    {
         GdkWindow *window = GTK_PIZZA(m_widget)->bin_window;
         glXMakeCurrent( GDK_DISPLAY(), GDK_WINDOW_XWINDOW(window), m_glContext );
     }
 }
 
-void wxGLContext::SetColour(const char *colour)
+void wxGLContext::SetColour(const wxChar *colour)
 {
     float r = 0.0;
     float g = 0.0;
@@ -185,10 +188,10 @@ gtk_glwindow_map_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
 // "expose_event" of m_wxwindow
 //-----------------------------------------------------------------------------
 
-static void 
+static void
 gtk_glwindow_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_event, wxGLCanvas *win )
 {
-    if (g_isIdle) 
+    if (g_isIdle)
         wxapp_install_idle_handler();
 
     win->m_exposed = TRUE;
@@ -203,10 +206,10 @@ gtk_glwindow_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_e
 // "draw" of m_wxwindow
 //-----------------------------------------------------------------------------
 
-static void 
+static void
 gtk_glwindow_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxGLCanvas *win )
 {
-    if (g_isIdle) 
+    if (g_isIdle)
         wxapp_install_idle_handler();
 
     win->m_exposed = TRUE;
@@ -219,7 +222,7 @@ gtk_glwindow_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxG
 // "size_allocate" of m_wxwindow
 //-----------------------------------------------------------------------------
 
-static void 
+static void
 gtk_glcanvas_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxGLCanvas *win )
 {
     if (g_isIdle)
@@ -244,77 +247,80 @@ BEGIN_EVENT_TABLE(wxGLCanvas, wxWindow)
 END_EVENT_TABLE()
 
 wxGLCanvas::wxGLCanvas( wxWindow *parent, wxWindowID id,
-                        const wxPoint& pos, const wxSize& size, 
-			long style, const wxString& name,
-                        int *attribList, 
-			const wxPalette& palette )
+                        const wxPoint& pos, const wxSize& size,
+                        long style, const wxString& name,
+                        int *attribList,
+                        const wxPalette& palette )
 {
     Create( parent, NULL, NULL, id, pos, size, style, name, attribList, palette );
 }
 
-wxGLCanvas::wxGLCanvas( wxWindow *parent, 
+wxGLCanvas::wxGLCanvas( wxWindow *parent,
                         const wxGLContext *shared,
                         wxWindowID id,
-                        const wxPoint& pos, const wxSize& size, 
-			long style, const wxString& name,
-                        int *attribList, 
-			const wxPalette& palette )
-{			
+                        const wxPoint& pos, const wxSize& size,
+                        long style, const wxString& name,
+                        int *attribList,
+                        const wxPalette& palette )
+{
     Create( parent, shared, NULL, id, pos, size, style, name, attribList, palette );
 }
 
-wxGLCanvas::wxGLCanvas( wxWindow *parent, 
+wxGLCanvas::wxGLCanvas( wxWindow *parent,
                         const wxGLCanvas *shared,
                         wxWindowID id,
-                        const wxPoint& pos, const wxSize& size, 
-			long style, const wxString& name,
-                        int *attribList, 
-			const wxPalette& palette )
-{			
+                        const wxPoint& pos, const wxSize& size,
+                        long style, const wxString& name,
+                        int *attribList,
+                        const wxPalette& palette )
+{
     Create( parent, NULL, shared, id, pos, size, style, name, attribList, palette );
 }
 
-bool wxGLCanvas::Create( wxWindow *parent, 
+bool wxGLCanvas::Create( wxWindow *parent,
                          const wxGLContext *shared,
                          const wxGLCanvas *shared_context_of,
                          wxWindowID id,
-                         const wxPoint& pos, const wxSize& size, 
-			 long style, const wxString& name,
-                         int *attribList, 
-			 const wxPalette& palette)
+                         const wxPoint& pos, const wxSize& size,
+                         long style, const wxString& name,
+                         int *attribList,
+                         const wxPalette& palette)
 {
     m_sharedContext = (wxGLContext*)shared;  // const_cast
     m_sharedContextOf = (wxGLCanvas*)shared_context_of;  // const_cast
     m_glContext = (wxGLContext*) NULL;
-    
+
     m_exposed = FALSE;
     m_noExpose = TRUE;
     m_nativeSizeEvent = TRUE;
-    
+
     XVisualInfo *vi = NULL;
-    if (wxTheApp->m_glVisualInfo != NULL) {
-        vi = (XVisualInfo *) wxTheApp->m_glVisualInfo; 
+    if (wxTheApp->m_glVisualInfo != NULL)
+    {
+        vi = (XVisualInfo *) wxTheApp->m_glVisualInfo;
         m_canFreeVi = FALSE; // owned by wxTheApp - don't free upon destruction
-    } else {
+    }
+    else
+    {
         vi = (XVisualInfo *) ChooseGLVisual(attribList);
         m_canFreeVi = TRUE;
     }
     m_vi = vi;  // save for later use
-    
-    wxCHECK_MSG( m_vi, FALSE, "required visual couldn't be found" );
+
+    wxCHECK_MSG( m_vi, FALSE, _T("required visual couldn't be found") );
 
     GdkVisual *visual = gdkx_visual_get( vi->visualid );
     GdkColormap *colormap = gdk_colormap_new( gdkx_visual_get(vi->visualid), TRUE );
-    
+
     gtk_widget_push_colormap( colormap );
     gtk_widget_push_visual( visual );
 
     wxWindow::Create( parent, id, pos, size, style, name );
 
     m_glWidget = m_wxwindow;
-    
+
     gtk_pizza_set_clear( GTK_PIZZA(m_wxwindow), FALSE );
-    
+
     gtk_signal_connect( GTK_OBJECT(m_wxwindow), "realize",
                             GTK_SIGNAL_FUNC(gtk_glwindow_realized_callback), (gpointer) this );
 
@@ -326,26 +332,26 @@ bool wxGLCanvas::Create( wxWindow *parent,
 
     gtk_signal_connect( GTK_OBJECT(m_wxwindow), "draw",
         GTK_SIGNAL_FUNC(gtk_glwindow_draw_callback), (gpointer)this );
-	
+
     gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate",
         GTK_SIGNAL_FUNC(gtk_glcanvas_size_callback), (gpointer)this );
 
     gtk_widget_pop_visual();
     gtk_widget_pop_colormap();
-    
+
     if (GTK_WIDGET_REALIZED(m_wxwindow))
         gtk_glwindow_realized_callback( m_wxwindow, this );
-    
+
     if (GTK_WIDGET_MAPPED(m_wxwindow))
         gtk_glwindow_map_callback( m_wxwindow, this );
-    
+
     return TRUE;
 }
 
 wxGLCanvas::~wxGLCanvas()
 {
     XVisualInfo *vi = (XVisualInfo *) m_vi;
-    
+
     if (vi && m_canFreeVi) XFree( vi );
     if (m_glContext) delete m_glContext;
 }
@@ -365,12 +371,12 @@ void* wxGLCanvas::ChooseGLVisual(int *attribList)
         data[10] = GLX_ALPHA_SIZE;  data[11] = 0;
         data[12] = None;
 
-	attribList = (int*) data;
+        attribList = (int*) data;
     }
     else
     {
       int arg=0, p=0;
-       
+
       while( (attribList[arg]!=0) && (p<510) )
       {
         switch( attribList[arg++] )
@@ -392,9 +398,9 @@ void* wxGLCanvas::ChooseGLVisual(int *attribList)
             data[p++]=GLX_BLUE_SIZE; data[p++]=attribList[arg++]; break;
           case WX_GL_MIN_ALPHA:
             data[p++]=GLX_ALPHA_SIZE; data[p++]=attribList[arg++]; break;
-          case WX_GL_DEPTH_SIZE: 
+          case WX_GL_DEPTH_SIZE:
             data[p++]=GLX_DEPTH_SIZE; data[p++]=attribList[arg++]; break;
-          case WX_GL_STENCIL_SIZE: 
+          case WX_GL_STENCIL_SIZE:
             data[p++]=GLX_STENCIL_SIZE; data[p++]=attribList[arg++]; break;
           case WX_GL_MIN_ACCUM_RED:
             data[p++]=GLX_ACCUM_RED_SIZE; data[p++]=attribList[arg++]; break;
@@ -407,21 +413,22 @@ void* wxGLCanvas::ChooseGLVisual(int *attribList)
           default:
             break;
         }
-      }       
-      data[p] = 0; 
+      }
+      data[p] = 0;
 
       attribList = (int*) data;
     }
-    
-    
+
+
     Display *dpy = GDK_DISPLAY();
-    
+
     return glXChooseVisual( dpy, DefaultScreen(dpy), attribList );
 }
 
 void wxGLCanvas::SwapBuffers()
 {
-    if (m_glContext) m_glContext->SwapBuffers();
+    if (m_glContext)
+        m_glContext->SwapBuffers();
 }
 
 void wxGLCanvas::OnSize(wxSizeEvent& WXUNUSED(event))
@@ -430,12 +437,14 @@ void wxGLCanvas::OnSize(wxSizeEvent& WXUNUSED(event))
 
 void wxGLCanvas::SetCurrent()
 {
-    if (m_glContext) m_glContext->SetCurrent();
+    if (m_glContext)
+        m_glContext->SetCurrent();
 }
 
-void wxGLCanvas::SetColour( const char *colour )
+void wxGLCanvas::SetColour( const wxChar *colour )
 {
-    if (m_glContext) m_glContext->SetColour( colour );
+    if (m_glContext)
+        m_glContext->SetColour( colour );
 }
 
 void wxGLCanvas::OnInternalIdle()
@@ -449,7 +458,7 @@ void wxGLCanvas::OnInternalIdle()
         m_exposed = FALSE;
         GetUpdateRegion().Clear();
     }
-    
+
     wxWindow::OnInternalIdle();
 }
 
@@ -460,17 +469,21 @@ void wxGLCanvas::OnInternalIdle()
 //---------------------------------------------------------------------------
 
 IMPLEMENT_CLASS(wxGLApp, wxApp)
-        
+
 wxGLApp::~wxGLApp()
 {
-    if (m_glVisualInfo) XFree(m_glVisualInfo);
+    if (m_glVisualInfo)
+        XFree(m_glVisualInfo);
 }
 
 bool wxGLApp::InitGLVisual(int *attribList)
 {
-    if (m_glVisualInfo) XFree(m_glVisualInfo);
+    if (m_glVisualInfo)
+        XFree(m_glVisualInfo);
+
     m_glVisualInfo = wxGLCanvas::ChooseGLVisual(attribList);
-    return (m_glVisualInfo != NULL);
+
+    return m_glVisualInfo != NULL;
 }
 
 #endif
diff --git a/src/gtk/listbox.cpp b/src/gtk/listbox.cpp
index 3ad658a264..46808ec081 100644
--- a/src/gtk/listbox.cpp
+++ b/src/gtk/listbox.cpp
@@ -1057,7 +1057,7 @@ wxSize wxListBox::DoGetBestSize() const
 
     // And just a bit more
     int cx, cy;
-    GetTextExtent("X", &cx, &cy);
+    GetTextExtent( wxT("X"), &cx, &cy);
     lbWidth += 3 * cx;
 
     // don't make the listbox too tall (limit height to around 10 items) but don't
diff --git a/src/gtk/menu.cpp b/src/gtk/menu.cpp
index 886522158e..3701f416ee 100644
--- a/src/gtk/menu.cpp
+++ b/src/gtk/menu.cpp
@@ -113,9 +113,16 @@ static wxString wxReplaceUnderscore( const wxString& title )
 
     /* GTK 1.2 wants to have "_" instead of "&" for accelerators */
     wxString str;
-    for ( pc = title; *pc != wxT('\0'); pc++ )
+    pc = title;
+    while (*pc != wxT('\0'))
     {
-        if (*pc == wxT('&'))
+        if ((*pc == wxT('&')) && (*(pc+1) == wxT('&')))
+        {
+            // "&" is doubled to indicate "&" instead of accelerator
+            ++pc;
+            str << wxT('&');
+        }
+        else if (*pc == wxT('&'))
         {
 #if GTK_CHECK_VERSION(1, 2, 0)
             str << wxT('_');
@@ -149,6 +156,7 @@ static wxString wxReplaceUnderscore( const wxString& title )
 
             str << *pc;
         }
+        ++pc;
     }
     return str;
 }
@@ -385,10 +393,23 @@ bool wxMenuBar::GtkAppend(wxMenu *menu, const wxString& title)
 #endif
 
     // m_invokingWindow is set after wxFrame::SetMenuBar(). This call enables
-    // adding menu later on.
+    // addings menu later on.
     if (m_invokingWindow)
+    {
         wxMenubarSetInvokingWindow( menu, m_invokingWindow );
 
+            // OPTIMISE ME:  we should probably cache this, or pass it
+            //               directly, but for now this is a minimal
+            //               change to validate the new dynamic sizing.
+            //               see (and refactor :) similar code in Remove
+            //               below.
+
+        wxFrame	*frame = wxDynamicCast( m_invokingWindow, wxFrame );
+
+        if( frame )
+            frame->UpdateMenuBarSize();
+    }
+
     return TRUE;
 }
 
@@ -452,6 +473,16 @@ wxMenu *wxMenuBar::Remove(size_t pos)
     printf( "menu shell entries after %d\n", (int)g_list_length( menu_shell->children ) );
 */
 
+    if (m_invokingWindow)
+    {
+            // OPTIMISE ME:  see comment in GtkAppend
+
+	wxFrame	*frame = wxDynamicCast( m_invokingWindow, wxFrame );
+
+	if( frame )
+            frame->UpdateMenuBarSize();
+    }
+
     return menu;
 }
 
@@ -554,10 +585,9 @@ wxString wxMenuBar::GetLabelTop( size_t pos ) const
     wxString text( menu->GetTitle() );
     for ( const wxChar *pc = text.c_str(); *pc; pc++ )
     {
-        if ( *pc == wxT('_') || *pc == wxT('&') )
+        if ( *pc == wxT('_') )
         {
-            // '_' is the escape character for GTK+ and '&' is the one for
-            // wxWindows - skip both of them
+            // '_' is the escape character for GTK+
             continue;
         }
 
@@ -750,17 +780,21 @@ wxString wxMenuItemBase::GetLabelFromText(const wxString& text)
     {
         if ( *pc == wxT('_')  )
         {
-            // wxGTK escapes "xxx_xxx" to "xxx__xxx"
+            // GTK 1.2 escapes "xxx_xxx" to "xxx__xxx"
             pc++;
             label += *pc;
             continue;
         }
 
-        if ( *pc == wxT('&') )
+#if GTK_CHECK_VERSION(2, 0, 0)
+        if ( *pc == wxT('\\')  )
         {
-            // wxMSW escapes &
+            // GTK 2.0 escapes "xxx/xxx" to "xxx\/xxx"
+            pc++;
+            label += *pc;
             continue;
         }
+#endif
 
         label += *pc;
     }
@@ -784,42 +818,54 @@ void wxMenuItem::SetText( const wxString& str )
     {
         GtkLabel *label;
         if (m_labelWidget)
-          label = (GtkLabel*) m_labelWidget;
+            label = (GtkLabel*) m_labelWidget;
         else
-          label = GTK_LABEL( GTK_BIN(m_menuItem)->child );
+            label = GTK_LABEL( GTK_BIN(m_menuItem)->child );
 
-        /* set new text */
+#if GTK_CHECK_VERSION(2, 0, 0)
+        // We have to imitate item_factory_unescape_label here
+        wxString tmp;
+        for (size_t n = 0; n < m_text.Len(); n++)
+        {
+            if (m_text[n] != wxT('\\'))
+                tmp += m_text[n];
+        }
+        
+        gtk_label_set_text_with_mnemonic( GTK_LABEL(label), wxGTK_CONV(tmp) );
+#else
+        // set new text
         gtk_label_set( label, wxGTK_CONV( m_text ) );
 
-        /* reparse key accel */
-        (void)gtk_label_parse_uline (GTK_LABEL(label), wxGTK_CONV( m_text ) );
+        // reparse key accel
+        (void)gtk_label_parse_uline (GTK_LABEL(label), wxGTK_CONV(m_text) );
         gtk_accel_label_refetch( GTK_ACCEL_LABEL(label) );
+#endif
     }
 }
 
 // it's valid for this function to be called even if m_menuItem == NULL
 void wxMenuItem::DoSetText( const wxString& str )
 {
-    /* '\t' is the deliminator indicating a hot key */
+    // '\t' is the deliminator indicating a hot key
     m_text.Empty();
     const wxChar *pc = str;
-    for (; (*pc != wxT('\0')) && (*pc != wxT('\t')); pc++ )
+    while ( (*pc != wxT('\0')) && (*pc != wxT('\t')) )
     {
-#if GTK_CHECK_VERSION(1, 2, 0)
-        if (*pc == wxT('&'))
+        if ((*pc == wxT('&')) && (*(pc+1) == wxT('&')))
         {
-            m_text << wxT('_');
+            // "&" is doubled to indicate "&" instead of accelerator
+            ++pc;
+            m_text << wxT('&');
         }
-        else if ( *pc == wxT('_') )    // escape underscores
+        else if (*pc == wxT('&'))
         {
-            m_text << wxT("__");
+            m_text << wxT('_');
         }
-#else // GTK+ < 1.2.0
-        if (*pc == wxT('&'))
+#if GTK_CHECK_VERSION(2, 0, 0)
+        else if ( *pc == wxT('_') )    // escape underscores
         {
+            // m_text << wxT("__");    doesn't work
         }
-#endif
-#if GTK_CHECK_VERSION(2, 0, 0)
         else if (*pc == wxT('/'))      // we have to escape slashes
         {
             m_text << wxT("\\/");
@@ -828,16 +874,22 @@ void wxMenuItem::DoSetText( const wxString& str )
         {
             m_text << wxT("\\\\");
         }
-#elif GTK_CHECK_VERSION(1, 2, 0)
+#else
+        else if ( *pc == wxT('_') )    // escape underscores
+        {
+            m_text << wxT("__");
+        }
         else if (*pc == wxT('/'))      /* we have to filter out slashes ... */
         {
             m_text << wxT('\\');  /* ... and replace them with back slashes */
         }
 #endif
-        else
+        else {
             m_text << *pc;
+        }
+        ++pc;
     }
-
+    
     m_hotKey = wxT("");
 
     if(*pc == wxT('\t'))
@@ -913,9 +965,9 @@ wxString wxMenuItem::GetFactoryPath() const
 
     for ( const wxChar *pc = m_text.c_str(); *pc; pc++ )
     {
-        if ( *pc == wxT('_') || *pc == wxT('&') )
+        if ( *pc == wxT('_') )
         {
-            // remove '_' and '&' unconditionally
+            // remove '_' unconditionally
             continue;
         }
 
@@ -1042,7 +1094,7 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem)
         guint accel_key = gtk_label_parse_uline (GTK_LABEL(label), wxGTK_CONV( text ) );
         gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (label), menuItem);
         if (accel_key != GDK_VoidSymbol)
-            {
+        {
             gtk_widget_add_accelerator (menuItem,
                                         "activate_item",
                                         gtk_menu_ensure_uline_accel_group (GTK_MENU (m_menu)),
@@ -1060,6 +1112,7 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem)
         gtk_signal_connect( GTK_OBJECT(menuItem), "activate",
                             GTK_SIGNAL_FUNC(gtk_menu_clicked_callback),
                             (gpointer)this );
+                            
         gtk_menu_append( GTK_MENU(m_menu), menuItem );
         gtk_widget_show( menuItem );
 
@@ -1097,7 +1150,9 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem)
                 {
                     // start of a new radio group
                     item_type = "<RadioItem>";
-                    m_pathLastRadio = bufPath + 1;
+                    wxString tmp( wxGTK_CONV_BACK( bufPath ) );
+                    tmp.Remove(0,1);
+                    m_pathLastRadio = tmp;
                 }
                 else // continue the radio group
                 {
@@ -1143,10 +1198,15 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem)
 
         wxString path( mitem->GetFactoryPath() );
         menuItem = gtk_item_factory_get_widget( m_factory, wxGTK_CONV( path ) );
+        
+        if (!menuItem)
+            wxLogError( wxT("Wrong menu path: %s\n"), path.c_str() );
     }
 
     if ( !mitem->IsSeparator() )
     {
+        wxASSERT_MSG( menuItem, wxT("invalid menuitem") );
+    
         gtk_signal_connect( GTK_OBJECT(menuItem), "select",
                             GTK_SIGNAL_FUNC(gtk_menu_hilight_callback),
                             (gpointer)this );
@@ -1283,6 +1343,33 @@ static wxString GetHotKey( const wxMenuItem& item )
             case WXK_DELETE:
                 hotkey << wxT("Delete" );
                 break;
+            case WXK_UP:
+                hotkey << wxT("Up" );
+                break;
+            case WXK_DOWN:
+                hotkey << wxT("Down" );
+                break;
+            case WXK_PAGEUP:
+                hotkey << wxT("Prior" );
+                break;
+            case WXK_PAGEDOWN:
+                hotkey << wxT("Next" );
+                break;
+            case WXK_LEFT:
+                hotkey << wxT("Left" );
+                break;
+            case WXK_RIGHT:
+                hotkey << wxT("Right" );
+                break;
+            case WXK_HOME:
+                hotkey << wxT("Home" );
+                break;
+            case WXK_END:
+                hotkey << wxT("End" );
+                break;
+            case WXK_RETURN:
+                hotkey << wxT("Return" );
+                break;
 
                 // if there are any other keys wxGetAccelFromString() may
                 // return, we should process them here
@@ -1290,7 +1377,7 @@ static wxString GetHotKey( const wxMenuItem& item )
             default:
                 if ( code < 127 )
                 {
-                    gchar *name = gdk_keyval_name((guint)code);
+                    wxString name = wxGTK_CONV_BACK( gdk_keyval_name((guint)code) );
                     if ( name )
                     {
                         hotkey << name;
diff --git a/src/gtk/notebook.cpp b/src/gtk/notebook.cpp
index fe5e541720..4439cbae46 100644
--- a/src/gtk/notebook.cpp
+++ b/src/gtk/notebook.cpp
@@ -86,14 +86,12 @@ static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
                                               gint page,
                                               wxNotebook *notebook )
 {
-    static bool s_inPageChange = FALSE;
-
     // are you trying to call SetSelection() from a notebook event handler?
     // you shouldn't!
-    wxCHECK_RET( !s_inPageChange,
+    wxCHECK_RET( !notebook->m_inSwitchPage,
                  _T("gtk_notebook_page_change_callback reentered") );
 
-    s_inPageChange = TRUE;
+    notebook->m_inSwitchPage = TRUE;
     if (g_isIdle)
         wxapp_install_idle_handler();
 
@@ -123,7 +121,7 @@ static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
         notebook->GetEventHandler()->ProcessEvent( eventChanged );
     }
 
-    s_inPageChange = FALSE;
+    notebook->m_inSwitchPage = FALSE;
 }
 
 //-----------------------------------------------------------------------------
@@ -236,6 +234,8 @@ END_EVENT_TABLE()
 void wxNotebook::Init()
 {
     m_padding = 0;
+    m_inSwitchPage = FALSE;
+
     m_imageList = (wxImageList *) NULL;
     m_pagesData.DeleteContents( TRUE );
     m_selection = -1;
diff --git a/src/gtk/popupwin.cpp b/src/gtk/popupwin.cpp
index 923a68bbd1..236a69d036 100644
--- a/src/gtk/popupwin.cpp
+++ b/src/gtk/popupwin.cpp
@@ -160,7 +160,7 @@ bool wxPopupWindow::Create( wxWindow *parent, int style )
     m_needParent = FALSE;
 
     if (!PreCreation( parent, wxDefaultPosition, wxDefaultSize ) ||
-        !CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, "popup" ))
+        !CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, wxT("popup") ))
     {
         wxFAIL_MSG( wxT("wxPopupWindow creation failed") );
         return FALSE;
diff --git a/src/gtk/radiobox.cpp b/src/gtk/radiobox.cpp
index 26240cc004..5bc55111c2 100644
--- a/src/gtk/radiobox.cpp
+++ b/src/gtk/radiobox.cpp
@@ -418,7 +418,7 @@ bool wxRadioBox::Show( bool show )
     return TRUE;
 }
 
-int wxRadioBox::FindString( const wxString &s ) const
+int wxRadioBox::FindString( const wxString &find ) const
 {
     wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid radiobox") );
 
@@ -428,7 +428,12 @@ int wxRadioBox::FindString( const wxString &s ) const
     while (node)
     {
         GtkLabel *label = GTK_LABEL( BUTTON_CHILD(node->Data()) );
-        if (s == label->label)
+#ifdef __WXGTK20__
+        wxString str( wxGTK_CONV_BACK( gtk_label_get_text(label) ) );
+#else
+        wxString str( label->label );
+#endif
+        if (find == str)
             return count;
 
         count++;
@@ -505,7 +510,13 @@ wxString wxRadioBox::GetString( int n ) const
 
     GtkLabel *label = GTK_LABEL( BUTTON_CHILD(node->Data()) );
 
-    return wxString( label->label );
+#ifdef __WXGTK20__
+    wxString str( wxGTK_CONV_BACK( gtk_label_get_text(label) ) );
+#else
+    wxString str( label->label );
+#endif
+
+    return str;
 }
 
 void wxRadioBox::SetLabel( const wxString& label )
@@ -592,7 +603,12 @@ wxString wxRadioBox::GetStringSelection() const
         {
             GtkLabel *label = GTK_LABEL( BUTTON_CHILD(node->Data()) );
 
-            return label->label;
+#ifdef __WXGTK20__
+            wxString str( wxGTK_CONV_BACK( gtk_label_get_text(label) ) );
+#else
+            wxString str( label->label );
+#endif
+            return str;
         }
         node = node->Next();
     }
diff --git a/src/gtk/region.cpp b/src/gtk/region.cpp
index 7ca7653e2a..f9ac057cbe 100644
--- a/src/gtk/region.cpp
+++ b/src/gtk/region.cpp
@@ -191,25 +191,20 @@ bool wxRegion::Union( wxCoord x, wxCoord y, wxCoord width, wxCoord height )
     if ( !width || !height )
         return TRUE;
 
-    GdkRectangle rect;
-    rect.x = x;
-    rect.y = y;
-    rect.width = width;
-    rect.height = height;
-
-    if (!m_refData)
+    if ( !m_refData )
     {
-        m_refData = new wxRegionRefData();
-#ifdef __WXGTK20__
-        M_REGIONDATA->m_region = gdk_region_rectangle( &rect );
-#else
-        M_REGIONDATA->m_region = gdk_region_union_with_rect(wxGdkRegion(), &rect);
-#endif
+        InitRect(x, y, width, height);
     }
     else
     {
         AllocExclusive();
 
+        GdkRectangle rect;
+        rect.x = x;
+        rect.y = y;
+        rect.width = width;
+        rect.height = height;
+
 #ifdef __WXGTK20__
         gdk_region_union_with_rect( M_REGIONDATA->m_region, &rect );
 #else
@@ -274,17 +269,12 @@ bool wxRegion::Intersect( const wxRegion& region )
 
     if (!m_refData)
     {
-        m_refData = new wxRegionRefData();
-        M_REGIONDATA->m_region = gdk_region_new();
-
-        // leave here
-        return TRUE;
-    }
-    else
-    {
-        AllocExclusive();
+        // intersecting with invalid region doesn't make sense
+        return FALSE;
     }
 
+    AllocExclusive();
+
 #ifdef __WXGTK20__
     gdk_region_intersect( M_REGIONDATA->m_region, region.GetRegion() );
 #else
@@ -315,14 +305,12 @@ bool wxRegion::Subtract( const wxRegion& region )
 
     if (!m_refData)
     {
-        m_refData = new wxRegionRefData();
-        M_REGIONDATA->m_region = gdk_region_new();
-    }
-    else
-    {
-        AllocExclusive();
+        // subtracting from an invalid region doesn't make sense
+        return FALSE;
     }
 
+    AllocExclusive();
+
 #ifdef __WXGTK20__
     gdk_region_subtract( M_REGIONDATA->m_region, region.GetRegion() );
 #else
@@ -353,14 +341,11 @@ bool wxRegion::Xor( const wxRegion& region )
 
     if (!m_refData)
     {
-        m_refData = new wxRegionRefData();
-        M_REGIONDATA->m_region = gdk_region_new();
-    }
-    else
-    {
-        AllocExclusive();
+        return FALSE;
     }
 
+    AllocExclusive();
+
 #ifdef __WXGTK20__
     gdk_region_xor( M_REGIONDATA->m_region, region.GetRegion() );
 #else
@@ -372,6 +357,18 @@ bool wxRegion::Xor( const wxRegion& region )
     return TRUE;
 }
 
+bool wxRegion::Offset( wxCoord x, wxCoord y )
+{
+    if (!m_refData)
+        return FALSE;
+
+    AllocExclusive();
+
+    gdk_region_offset( M_REGIONDATA->m_region, x, y );
+
+    return TRUE;
+}
+
 // ----------------------------------------------------------------------------
 // wxRegion tests
 // ----------------------------------------------------------------------------
@@ -403,18 +400,6 @@ wxRect wxRegion::GetBox() const
     return wxRect( x, y, w, h );
 }
 
-bool wxRegion::Offset( wxCoord x, wxCoord y )
-{
-    if (!m_refData)
-        return FALSE;
-
-    AllocExclusive();
-
-    gdk_region_offset( M_REGIONDATA->m_region, x, y );
-
-    return TRUE;
-}
-
 bool wxRegion::Empty() const
 {
     if (!m_refData)
@@ -495,7 +480,7 @@ struct _XRegion {
     _XBox *rects, extents;
 };
 
-#endif
+#endif // GTK+ 1.x
 
 class wxRIRefData: public wxObjectRefData
 {
@@ -592,42 +577,48 @@ bool wxRegionIterator::HaveRects() const
     return m_current < ((wxRIRefData*)m_refData)->m_numRects;
 }
 
-wxRegionIterator::operator bool () const
+wxRegionIterator& wxRegionIterator::operator ++ ()
 {
-    return HaveRects();
-}
+    if (HaveRects())
+        ++m_current;
 
-void wxRegionIterator::operator ++ ()
-{
-    if (HaveRects()) ++m_current;
+    return *this;
 }
 
-void wxRegionIterator::operator ++ (int)
+wxRegionIterator wxRegionIterator::operator ++ (int)
 {
-    if (HaveRects()) ++m_current;
+    wxRegionIterator tmp = *this;
+    if (HaveRects())
+        ++m_current;
+
+    return tmp;
 }
 
 wxCoord wxRegionIterator::GetX() const
 {
-    if( !HaveRects() ) return 0;
+    wxCHECK_MSG( HaveRects(), 0, _T("invalid wxRegionIterator") );
+
     return ((wxRIRefData*)m_refData)->m_rects[m_current].x;
 }
 
 wxCoord wxRegionIterator::GetY() const
 {
-    if( !HaveRects() ) return 0;
+    wxCHECK_MSG( HaveRects(), 0, _T("invalid wxRegionIterator") );
+
     return ((wxRIRefData*)m_refData)->m_rects[m_current].y;
 }
 
 wxCoord wxRegionIterator::GetW() const
 {
-    if( !HaveRects() ) return -1;
+    wxCHECK_MSG( HaveRects(), 0, _T("invalid wxRegionIterator") );
+
     return ((wxRIRefData*)m_refData)->m_rects[m_current].width;
 }
 
 wxCoord wxRegionIterator::GetH() const
 {
-    if( !HaveRects() ) return -1;
+    wxCHECK_MSG( HaveRects(), 0, _T("invalid wxRegionIterator") );
+
     return ((wxRIRefData*)m_refData)->m_rects[m_current].height;
 }
 
diff --git a/src/gtk/scrolwin.cpp b/src/gtk/scrolwin.cpp
index a072691442..a18ec663f7 100644
--- a/src/gtk/scrolwin.cpp
+++ b/src/gtk/scrolwin.cpp
@@ -313,7 +313,7 @@ bool wxScrolledWindow::Create(wxWindow *parent,
     PostCreation();
 
     Show( TRUE );
-
+    
     return TRUE;
 }
 
@@ -349,8 +349,12 @@ void wxScrolledWindow::SetScrollbars( int pixelsPerUnitX, int pixelsPerUnitY,
     m_hAdjust->value = m_xScrollPosition = xPos;
     m_vAdjust->value = m_yScrollPosition = yPos;
 
+    // Setting hints here should arguably be deprecated, but without it
+    // a sizer might override this manual scrollbar setting in old code.
     m_targetWindow->SetVirtualSizeHints( noUnitsX * pixelsPerUnitX, noUnitsY * pixelsPerUnitY );
 
+    m_targetWindow->SetVirtualSize( noUnitsX * pixelsPerUnitX, noUnitsY * pixelsPerUnitY );
+
     if (!noRefresh)
     {
         int new_x = m_xScrollPixelsPerLine * m_xScrollPosition;
@@ -381,13 +385,16 @@ void wxScrolledWindow::AdjustScrollbars()
         // If the scrollbar hits the right side, move the window
         // right to keep it from over extending.
 
-        if( m_hAdjust->value + m_hAdjust->page_size > m_hAdjust->upper )
+        if ((m_hAdjust->value != 0.0) && (m_hAdjust->value + m_hAdjust->page_size > m_hAdjust->upper))
         {
+            m_hAdjust->value = m_hAdjust->upper - m_hAdjust->page_size;
+            if (m_hAdjust->value < 0.0)
+                m_hAdjust->value = 0.0;
+                
             if (GetChildren().GetCount() == 0)
-            {
-                m_hAdjust->value = m_hAdjust->upper - m_hAdjust->page_size;
-                m_xScrollPosition = (int)m_hAdjust->value;
-            }
+                m_xScrollPosition = (int)m_hAdjust->value; // This is enough without child windows
+            else
+                gtk_signal_emit_by_name( GTK_OBJECT(m_hAdjust), "value_changed" ); // Actually scroll window
         }
     }
 
@@ -401,13 +408,16 @@ void wxScrolledWindow::AdjustScrollbars()
         m_vAdjust->upper = vh / m_yScrollPixelsPerLine;
         m_vAdjust->page_size = (h / m_yScrollPixelsPerLine);
 
-        if( m_vAdjust->value + m_vAdjust->page_size > m_vAdjust->upper )
+        if ((m_vAdjust->value != 0.0) && (m_vAdjust->value + m_vAdjust->page_size > m_vAdjust->upper))
         {
+            m_vAdjust->value = m_vAdjust->upper - m_vAdjust->page_size;
+            if (m_vAdjust->value < 0.0)
+                m_vAdjust->value = 0.0;
+                
             if (GetChildren().GetCount() == 0)
-            {
-                m_vAdjust->value = m_vAdjust->upper - m_vAdjust->page_size;
-                m_yScrollPosition = (int)m_vAdjust->value;
-            }
+                m_yScrollPosition = (int)m_vAdjust->value;  
+            else
+                gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "value_changed" );
         }
     }
 
@@ -823,10 +833,17 @@ bool wxScrolledWindow::Layout()
 // Default OnSize resets scrollbars, if any
 void wxScrolledWindow::OnSize(wxSizeEvent& WXUNUSED(event))
 {
-    if( m_targetWindow != this )
-        m_targetWindow->SetVirtualSize( m_targetWindow->GetClientSize() );
+    if( GetAutoLayout() )
+    {
+        if( m_targetWindow != this )
+            m_targetWindow->FitInside();
 
-    SetVirtualSize( GetClientSize() );
+        FitInside();
+    }
+    else
+    {
+        AdjustScrollbars();
+    }
 }
 
 // This calls OnDraw, having adjusted the origin according to the current
@@ -849,7 +866,7 @@ void wxScrolledWindow::OnChar(wxKeyEvent& event)
         szx, szy,       // view size (total)
         clix, cliy;     // view size (on screen)
 
-    ViewStart(&stx, &sty);
+    GetViewStart(&stx, &sty);
     GetClientSize(&clix, &cliy);
     GetVirtualSize(&szx, &szy);
 
diff --git a/src/gtk/settings.cpp b/src/gtk/settings.cpp
index 9aed45b5a9..736ed76aba 100644
--- a/src/gtk/settings.cpp
+++ b/src/gtk/settings.cpp
@@ -16,6 +16,7 @@
 #include "wx/debug.h"
 #include "wx/module.h"
 #include "wx/cmndata.h"
+#include "wx/fontutil.h"
 
 #include <gdk/gdk.h>
 #include <gdk/gdkprivate.h>
@@ -326,8 +327,25 @@ wxFont wxSystemSettingsNative::GetFont( wxSystemFont index )
         {
             if (!g_systemFont)
             {
+#ifdef __WXGTK20__
+                GtkWidget *widget = gtk_button_new();
+                GtkStyle *def = gtk_rc_get_style( widget );
+                if (!def)
+                    def = gtk_widget_get_default_style();
+                if (def)
+                {
+                    wxNativeFontInfo info;
+                    info.description = def->font_desc;
+                    g_systemFont = new wxFont(info);
+                }
+                else
+                {
+                   g_systemFont = new wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL );
+                }
+                gtk_widget_destroy( widget );
+#else
                 g_systemFont = new wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL );
-
+#endif
             }
             return *g_systemFont;
         }
diff --git a/src/gtk/slider.cpp b/src/gtk/slider.cpp
index 9f59575679..799f21d2b1 100644
--- a/src/gtk/slider.cpp
+++ b/src/gtk/slider.cpp
@@ -255,14 +255,15 @@ int wxSlider::GetLineSize() const
 bool wxSlider::IsOwnGtkWindow( GdkWindow *window )
 {
     GtkRange *range = GTK_RANGE(m_widget);
+#ifdef __WXGTK20__
+    return (range->event_window == window);
+#else
     return ( (window == GTK_WIDGET(range)->window)
-#ifndef __WXGTK20__
                 || (window == range->trough)
                 || (window == range->slider)
                 || (window == range->step_forw)
-                || (window == range->step_back)
-#endif // GTK+ 1.x
-           );
+                || (window == range->step_back) );
+#endif
 }
 
 void wxSlider::ApplyWidgetStyle()
diff --git a/src/gtk/tbargtk.cpp b/src/gtk/tbargtk.cpp
index 235319eb16..d05f2cddfb 100644
--- a/src/gtk/tbargtk.cpp
+++ b/src/gtk/tbargtk.cpp
@@ -278,6 +278,10 @@ bool wxToolBar::Create( wxWindow *parent,
 #ifdef __WXGTK20__
     m_toolbar = GTK_TOOLBAR( gtk_toolbar_new() );
     GtkSetStyle();
+    
+    // Doesn't work this way.
+    // GtkToolbarSpaceStyle space_style = GTK_TOOLBAR_SPACE_EMPTY;
+    // gtk_widget_style_set (GTK_WIDGET (m_toolbar), "space_style", &space_style, NULL);
 #else
     GtkOrientation orient;
     GtkToolbarStyle gtkStyle;
@@ -374,37 +378,44 @@ bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase)
 {
     wxToolBarTool *tool = (wxToolBarTool *)toolBase;
 
+#ifndef __WXGTK20__
     // if we have inserted a space before all the tools we must change the GTK
     // index by 1
     size_t posGtk = m_xMargin > 1 ? pos + 1 : pos;
+#else
+    size_t posGtk = pos;
+#endif
 
     if ( tool->IsButton() )
     {
-        wxBitmap bitmap = tool->GetNormalBitmap();
+        if ( !HasFlag(wxTB_NOICONS) )
+        {
+            wxBitmap bitmap = tool->GetNormalBitmap();
 
-        wxCHECK_MSG( bitmap.Ok(), FALSE,
-                     wxT("invalid bitmap for wxToolBar icon") );
+            wxCHECK_MSG( bitmap.Ok(), FALSE,
+                         wxT("invalid bitmap for wxToolBar icon") );
 
-        wxCHECK_MSG( bitmap.GetBitmap() == NULL, FALSE,
-                     wxT("wxToolBar doesn't support GdkBitmap") );
+            wxCHECK_MSG( bitmap.GetBitmap() == NULL, FALSE,
+                         wxT("wxToolBar doesn't support GdkBitmap") );
 
-        wxCHECK_MSG( bitmap.GetPixmap() != NULL, FALSE,
-                     wxT("wxToolBar::Add needs a wxBitmap") );
+            wxCHECK_MSG( bitmap.GetPixmap() != NULL, FALSE,
+                         wxT("wxToolBar::Add needs a wxBitmap") );
 
-        GtkWidget *tool_pixmap = (GtkWidget *)NULL;
+            GtkWidget *tool_pixmap = (GtkWidget *)NULL;
 
-        GdkPixmap *pixmap = bitmap.GetPixmap();
+            GdkPixmap *pixmap = bitmap.GetPixmap();
 
-        GdkBitmap *mask = (GdkBitmap *)NULL;
-        if ( bitmap.GetMask() )
-          mask = bitmap.GetMask()->GetBitmap();
+            GdkBitmap *mask = (GdkBitmap *)NULL;
+            if ( bitmap.GetMask() )
+              mask = bitmap.GetMask()->GetBitmap();
 
-        tool_pixmap = gtk_pixmap_new( pixmap, mask );
-        gtk_pixmap_set_build_insensitive( GTK_PIXMAP(tool_pixmap), TRUE );
+            tool_pixmap = gtk_pixmap_new( pixmap, mask );
+            gtk_pixmap_set_build_insensitive( GTK_PIXMAP(tool_pixmap), TRUE );
 
-        gtk_misc_set_alignment( GTK_MISC(tool_pixmap), 0.5, 0.5 );
+            gtk_misc_set_alignment( GTK_MISC(tool_pixmap), 0.5, 0.5 );
 
-        tool->m_pixmap = tool_pixmap;
+            tool->m_pixmap = tool_pixmap;
+        }
     }
 
     switch ( tool->GetStyle() )
@@ -464,7 +475,7 @@ bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase)
 
                     return FALSE;
                 }
-
+                
                 gtk_signal_connect( GTK_OBJECT(tool->m_item),
                                     "enter_notify_event",
                                     GTK_SIGNAL_FUNC(gtk_toolbar_tool_callback),
@@ -587,8 +598,10 @@ void wxToolBar::SetMargins( int x, int y )
     wxCHECK_RET( GetToolsCount() == 0,
                  wxT("wxToolBar::SetMargins must be called before adding tools.") );
 
+#ifndef __WXGTK20__
     if (x > 1)
         gtk_toolbar_append_space( m_toolbar );  // oh well
+#endif
 
     m_xMargin = x;
     m_yMargin = y;
diff --git a/src/gtk/textctrl.cpp b/src/gtk/textctrl.cpp
index 034a4cce4a..d449dcfb75 100644
--- a/src/gtk/textctrl.cpp
+++ b/src/gtk/textctrl.cpp
@@ -475,7 +475,7 @@ wxString wxTextCtrl::GetValue() const
         GtkTextIter end;
         gtk_text_buffer_get_end_iter( text_buffer, &end );
         gchar *text = gtk_text_buffer_get_text( text_buffer, &start, &end, TRUE );
-
+        
 #if wxUSE_UNICODE
         wxWCharBuffer buffer( wxConvUTF8.cMB2WX( text ) );
 #else
@@ -552,6 +552,7 @@ void wxTextCtrl::WriteText( const wxString &text )
         wxCharBuffer buffer( wxConvUTF8.cWC2MB( wxConvLocal.cWX2WC( text ) ) );
 #endif
         GtkTextBuffer *text_buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(m_text) );
+        // TODO: call wahtever is needed to delete the selection
         gtk_text_buffer_insert_at_cursor( text_buffer, buffer, strlen(buffer) );
 
 #else // GTK 1.x
@@ -561,6 +562,7 @@ void wxTextCtrl::WriteText( const wxString &text )
         // always use m_defaultStyle, even if it is empty as otherwise
         // resetting the style and appending some more text wouldn't work: if
         // we don't specify the style explicitly, the old style would be used
+        gtk_editable_delete_selection( GTK_EDITABLE(m_text) );
         wxGtkTextInsert(m_text, m_defaultStyle, text.c_str(), text.Len());
 
         // Bring editable's cursor back uptodate.
@@ -569,6 +571,9 @@ void wxTextCtrl::WriteText( const wxString &text )
     }
     else // single line
     {
+        // First remove the selection if there is one
+        gtk_editable_delete_selection( GTK_EDITABLE(m_text) );
+
         // This moves the cursor pos to behind the inserted text.
         gint len = GET_EDITABLE_POS(m_text);
 
@@ -585,9 +590,6 @@ void wxTextCtrl::WriteText( const wxString &text )
         gtk_editable_insert_text( GTK_EDITABLE(m_text), text.c_str(), text.Len(), &len );
 #endif
 
-        // Bring editable's cursor uptodate.
-        len += text.Len();
-
         // Bring entry's cursor uptodate.
         gtk_entry_set_position( GTK_ENTRY(m_text), len );
     }
@@ -928,6 +930,12 @@ void wxTextCtrl::SetSelection( long from, long to )
 {
     wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
 
+    if (from == -1 && to == -1)
+    {
+        from = 0;
+        to = GetValue().Length();
+    }
+
 #ifndef __WXGTK20__
     if ( (m_windowStyle & wxTE_MULTILINE) &&
          !GTK_TEXT(m_text)->line_start_cache )
diff --git a/src/gtk/toplevel.cpp b/src/gtk/toplevel.cpp
index 1ca2768d11..0866c33410 100644
--- a/src/gtk/toplevel.cpp
+++ b/src/gtk/toplevel.cpp
@@ -25,6 +25,7 @@
 
 #include "wx/defs.h"
 
+#include "wx/log.h"
 #include "wx/dialog.h"
 #include "wx/control.h"
 #include "wx/app.h"
@@ -835,6 +836,11 @@ void wxTopLevelWindowGTK::OnInternalIdle()
         if ( g_delayedFocus &&
              wxGetTopLevelParent((wxWindow*)g_delayedFocus) == this )
         {
+            wxLogTrace(_T("focus"),
+                       _T("Setting focus from wxTLW::OnIdle() to %s(%s)"),
+                       g_delayedFocus->GetClassInfo()->GetClassName(),
+                       g_delayedFocus->GetLabel().c_str());
+
             g_delayedFocus->SetFocus();
             g_delayedFocus = NULL;
         }
diff --git a/src/gtk/win_gtk.c b/src/gtk/win_gtk.c
index 27e2d156bb..fecb23b7f5 100644
--- a/src/gtk/win_gtk.c
+++ b/src/gtk/win_gtk.c
@@ -310,11 +310,11 @@ gtk_pizza_put (GtkPizza   *pizza,
 
     pizza->children = g_list_append (pizza->children, child_info);
 
-    gtk_widget_set_parent (widget, GTK_WIDGET (pizza));
-
     if (GTK_WIDGET_REALIZED (pizza))
       gtk_widget_set_parent_window (widget, pizza->bin_window);
 
+    gtk_widget_set_parent (widget, GTK_WIDGET (pizza));
+
 #ifndef __WXGTK20__ /* FIXME? */
     if (!IS_ONSCREEN (x, y))
        GTK_PRIVATE_SET_FLAG (widget, GTK_IS_OFFSCREEN);
diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp
index 6411fca957..bf5f12cdb8 100644
--- a/src/gtk/window.cpp
+++ b/src/gtk/window.cpp
@@ -67,6 +67,10 @@
 
 #include "wx/gtk/win_gtk.h"
 
+#ifdef __WXGTK20__
+#include <pango/pangox.h>
+#endif
+
 #ifdef __WXGTK20__
     #define SET_CONTAINER_FOCUS(w, d) gtk_widget_child_focus((w), (d))
 #else
@@ -262,7 +266,7 @@ extern bool g_mainThreadLocked;
 //-----------------------------------------------------------------------------
 
 #ifndef __WXGTK20__
-#define DISABLE_STYLE_IF_BROKEN_THEME 1
+#define DISABLE_STYLE_IF_BROKEN_THEME 0
 #endif
 
 #ifdef __WXDEBUG__
@@ -501,10 +505,10 @@ static int gtk_window_expose_callback( GtkWidget *widget,
     // This callback gets called in drawing-idle time under
     // GTK 2.0, so we don't need to defer anything to idle
     // time anymore.
-    
+
     GtkPizza *pizza = GTK_PIZZA( widget );
     if (gdk_event->window != pizza->bin_window) return FALSE;
-    
+
 #if 0
     if (win->GetName())
     {
@@ -522,13 +526,14 @@ static int gtk_window_expose_callback( GtkWidget *widget,
 
     win->GtkSendPaintEvents();
 
+
     // Let parent window draw window less widgets
     (* GTK_WIDGET_CLASS (pizza_parent_class)->expose_event) (widget, gdk_event);
 #else
     // This gets called immediately after an expose event
     // under GTK 1.2 so we collect the calls and wait for
     // the idle handler to pick things up.
-    
+
     win->GetUpdateRegion().Union( gdk_event->area.x,
                                   gdk_event->area.y,
                                   gdk_event->area.width,
@@ -1060,6 +1065,7 @@ wxTranslateGTKKeyEventToWx(wxKeyEvent& event,
     return TRUE;
 }
 
+#ifndef __WXGTK20__
 static gint gtk_window_key_press_callback( GtkWidget *widget,
                                            GdkEventKey *gdk_event,
                                            wxWindow *win )
@@ -1130,7 +1136,7 @@ static gint gtk_window_key_press_callback( GtkWidget *widget,
             wxLogTrace(TRACE_KEYS, _T("Char event: %ld"), key_code);
 
             event.m_keyCode = key_code;
-            
+
             // Implement OnCharHook by checking ancesteror top level windows
             wxWindow *parent = win;
             while (parent && !parent->IsTopLevel())
@@ -1207,45 +1213,184 @@ static gint gtk_window_key_press_callback( GtkWidget *widget,
         }
     }
 
-    // Doesn't work.
-#if 0 
-    // Pressing F10 will activate the menu bar of the top frame
-    if ( (!ret) &&
-         (gdk_event->keyval == GDK_F10) )
+    if (ret)
     {
-        wxWindowGTK *ancestor = win;
-        while (ancestor)
+        gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_press_event" );
+        return TRUE;
+    }
+
+    return FALSE;
+}
+#endif
+
+#ifdef __WXGTK20__
+static gint gtk_window_key_press_callback( GtkWidget *widget,
+                                           GdkEventKey *gdk_event,
+                                           wxWindow *win )
+{
+    if (g_isIdle)
+        wxapp_install_idle_handler();
+
+    if (!win->m_hasVMT)
+        return FALSE;
+    if (g_blockEventsOnDrag)
+        return FALSE;
+
+    bool ret = FALSE;
+    bool dont_use_IM = FALSE;
+
+    wxKeyEvent event( wxEVT_KEY_DOWN );
+    long keycode = wxTranslateKeySymToWXKey( gdk_event->keyval, FALSE );
+    if (keycode)
+    {
+        // We were able to decode the key press without
+        // any input method, so don't use it.
+        dont_use_IM = TRUE;
+
+        // now fill all the other fields
+        int x = 0;
+        int y = 0;
+        GdkModifierType state;
+        if (gdk_event->window)
+            gdk_window_get_pointer(gdk_event->window, &x, &y, &state);
+
+        event.SetTimestamp( gdk_event->time );
+        event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK) != 0;
+        event.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK) != 0;
+        event.m_altDown = (gdk_event->state & GDK_MOD1_MASK) != 0;
+        event.m_metaDown = (gdk_event->state & GDK_MOD2_MASK) != 0;
+        event.m_keyCode = keycode;
+        event.m_scanCode = gdk_event->keyval;
+        event.m_rawCode = (wxUint32) gdk_event->keyval;
+        event.m_rawFlags = 0;
+        event.m_x = x;
+        event.m_y = y;
+        event.SetEventObject( win );
+
+        // send key down event
+        ret = win->GetEventHandler()->ProcessEvent( event );
+
+        if (!ret)
         {
-            if (wxIsKindOf(ancestor,wxFrame))
+            // Implement OnCharHook by checking ancesteror top level windows
+            wxWindow *parent = win;
+            while (parent && !parent->IsTopLevel())
+            parent = parent->GetParent();
+            if (parent)
             {
-                wxFrame *frame = (wxFrame*) ancestor;
-                wxMenuBar *menubar = frame->GetMenuBar();
-                if (menubar)
-                {
-                    wxNode *node = menubar->GetMenus().First();
-                    if (node)
-                    {
-                        wxMenu *firstMenu = (wxMenu*) node->Data();
-                        gtk_menu_item_select( GTK_MENU_ITEM(firstMenu->m_owner) );
-                        ret = TRUE;
-                        break;
-                    }
-                }
+                event.SetEventType( wxEVT_CHAR_HOOK );
+                ret = parent->GetEventHandler()->ProcessEvent( event );
+            }
+
+            if (!ret)
+            {
+                event.SetEventType(wxEVT_CHAR);
+                ret = win->GetEventHandler()->ProcessEvent( event );
+            }
+        }
+
+        // win is a control: tab can be propagated up
+        if ( !ret &&
+             ((gdk_event->keyval == GDK_Tab) || (gdk_event->keyval == GDK_ISO_Left_Tab)) &&
+            win->GetParent() && (win->GetParent()->HasFlag( wxTAB_TRAVERSAL)) )
+        {
+            wxNavigationKeyEvent new_event;
+            new_event.SetEventObject( win->GetParent() );
+            // GDK reports GDK_ISO_Left_Tab for SHIFT-TAB
+            new_event.SetDirection( (gdk_event->keyval == GDK_Tab) );
+            // CTRL-TAB changes the (parent) window, i.e. switch notebook page
+            new_event.SetWindowChange( (gdk_event->state & GDK_CONTROL_MASK) );
+            new_event.SetCurrentFocus( win );
+            ret = win->GetParent()->GetEventHandler()->ProcessEvent( new_event );
+        }
+
+        if ( !ret &&
+             (gdk_event->keyval == GDK_Escape) )
+        {
+            wxWindow *winForCancel = win, *btnCancel = NULL;
+            while ( winForCancel )
+            {
+                btnCancel = winForCancel->FindWindow(wxID_CANCEL);
+                if ( btnCancel ) break;
+
+                if ( winForCancel->IsTopLevel() ) break;
+
+                winForCancel = winForCancel->GetParent();
+            }
+
+            if ( btnCancel )
+            {
+                wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
+                event.SetEventObject(btnCancel);
+                ret = btnCancel->GetEventHandler()->ProcessEvent(event);
             }
-            ancestor = ancestor->GetParent();
         }
     }
-#endif // 0
 
     if (ret)
     {
         gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_press_event" );
         return TRUE;
     }
-    
+
+    if (!dont_use_IM && win->m_imContext)
+    {
+        // In GTK 2.0, we need to hand over the key
+        // event to an input method and the IM will
+        // emit a "commit" event containing the
+        // actual utf8 character.
+        gtk_im_context_filter_keypress ( (GtkIMContext*) win->m_imContext, gdk_event );
+
+        return TRUE;
+    }
+
     return FALSE;
 }
 
+static void gtk_wxwindow_commit_cb (GtkIMContext *context,
+						   const gchar  *str,
+						   wxWindow     *window)
+{
+    bool ret = FALSE;
+
+    wxKeyEvent event( wxEVT_KEY_DOWN );
+
+#if wxUSE_UNICODE
+    event.m_uniChar = g_utf8_get_char( str );
+
+    // Backward compatible for ISO-8859
+    if (event.m_uniChar < 256)
+        event.m_keyCode = event.m_uniChar;
+#else
+    gunichar uniChar = g_utf8_get_char( str );
+    // We cannot handle Unicode in non-Unicode mode
+    if (uniChar > 255) return;
+
+    event.m_keyCode = uniChar;
+#endif
+
+    if (!ret)
+    {
+        // Implement OnCharHook by checking ancesteror top level windows
+        wxWindow *parent = window;
+        while (parent && !parent->IsTopLevel())
+        parent = parent->GetParent();
+        if (parent)
+        {
+            event.SetEventType( wxEVT_CHAR_HOOK );
+            ret = parent->GetEventHandler()->ProcessEvent( event );
+        }
+
+        if (!ret)
+        {
+            event.SetEventType(wxEVT_CHAR);
+            ret = window->GetEventHandler()->ProcessEvent( event );
+        }
+    }
+}
+#endif
+
+
 //-----------------------------------------------------------------------------
 // "key_release_event" from any window
 //-----------------------------------------------------------------------------
@@ -1303,6 +1448,13 @@ static gint gtk_window_key_release_callback( GtkWidget *widget,
     event.m_leftDown = (gdk_event->state & GDK_BUTTON1_MASK);                 \
     event.m_middleDown = (gdk_event->state & GDK_BUTTON2_MASK);               \
     event.m_rightDown = (gdk_event->state & GDK_BUTTON3_MASK);                \
+    if (event.GetEventType()==wxEVT_MOUSEWHEEL)                               \
+    {                                                                         \
+       if (((GdkEventButton*)gdk_event)->button == 4)                         \
+           event.m_wheelRotation = 120;                                       \
+       else if (((GdkEventButton*)gdk_event)->button == 5)                    \
+           event.m_wheelRotation = -120;                                      \
+    }                                                                         \
                                                                               \
     wxPoint pt = win->GetClientAreaOrigin();                                  \
     event.m_x = (wxCoord)gdk_event->x - pt.x;                                 \
@@ -1447,6 +1599,26 @@ static gint gtk_window_button_press_callback( GtkWidget *widget,
 */
     }
 
+    // GDK sends surplus button down event
+    // before a double click event. We
+    // need to filter these out.
+    if (gdk_event->type == GDK_BUTTON_PRESS)
+    {
+        GdkEvent *peek_event = gdk_event_peek();
+        if (peek_event)
+        {
+            if (peek_event->type == GDK_2BUTTON_PRESS)
+            {
+                gdk_event_free( peek_event );
+                return TRUE;
+            }
+            else
+            {
+                gdk_event_free( peek_event );
+            }
+        }
+    }
+
     wxEventType event_type = wxEVT_NULL;
 
     if (gdk_event->button == 1)
@@ -1476,6 +1648,22 @@ static gint gtk_window_button_press_callback( GtkWidget *widget,
             default:  break;
         }
     }
+    else if (gdk_event->button == 4)
+    {
+        switch (gdk_event->type)
+        {
+            case GDK_BUTTON_PRESS: event_type = wxEVT_MOUSEWHEEL; break;
+            default:  break;
+        }
+    }
+    else if (gdk_event->button == 5)
+    {
+        switch (gdk_event->type)
+        {
+            case GDK_BUTTON_PRESS: event_type = wxEVT_MOUSEWHEEL; break;
+            default:  break;
+        }
+    }
 
     if ( event_type == wxEVT_NULL )
     {
@@ -1520,7 +1708,9 @@ static gint gtk_window_button_press_callback( GtkWidget *widget,
 // "button_release_event"
 //-----------------------------------------------------------------------------
 
-static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxWindowGTK *win )
+static gint gtk_window_button_release_callback( GtkWidget *widget,
+                                                GdkEventButton *gdk_event,
+                                                wxWindowGTK *win )
 {
     DEBUG_MAIN_THREAD
 
@@ -1533,21 +1723,25 @@ static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButto
 
     if (!win->IsOwnGtkWindow( gdk_event->window )) return FALSE;
 
-/*
-    printf( "OnButtonRelease from " );
-    if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
-        printf( win->GetClassInfo()->GetClassName() );
-    printf( ".\n" );
-*/
-
     wxEventType event_type = wxEVT_NULL;
 
     switch (gdk_event->button)
     {
-        case 1: event_type = wxEVT_LEFT_UP; break;
-        case 2: event_type = wxEVT_MIDDLE_UP; break;
-        case 3: event_type = wxEVT_RIGHT_UP; break;
-        default: return FALSE;
+        case 1:
+            event_type = wxEVT_LEFT_UP;
+            break;
+
+        case 2:
+            event_type = wxEVT_MIDDLE_UP;
+            break;
+
+        case 3:
+            event_type = wxEVT_RIGHT_UP;
+            break;
+
+        default:
+            // unknwon button, don't process
+            return FALSE;
     }
 
     wxMouseEvent event( event_type );
@@ -1558,6 +1752,20 @@ static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButto
     // same wxListBox hack as above
     win->FixUpMouseEvent(widget, event.m_x, event.m_y);
 
+    if ( event_type == wxEVT_RIGHT_UP )
+    {
+        // generate a "context menu" event: this is similar to wxEVT_RIGHT_UP
+        // except that:
+        //
+        // (a) it's a command event and so is propagated to the parent
+        // (b) under MSW it can be generated from kbd too
+        // (c) it uses screen coords (because of (a))
+        wxContextMenuEvent evtCtx(wxEVT_CONTEXT_MENU,
+                                  win->GetId(),
+                                  win->ClientToScreen(event.GetPosition()));
+        (void)win->GetEventHandler()->ProcessEvent(evtCtx);
+    }
+
     if ( !g_captureWindow )
         win = FindWindowForMouseEvent(win, event.m_x, event.m_y);
 
@@ -1706,7 +1914,7 @@ static gint gtk_window_focus_in_callback( GtkWidget *widget,
 #endif // wxUSE_CARET
 
     g_activeFrameLostFocus = FALSE;
-    
+
     wxWindowGTK *active = wxGetTopLevelParent(win);
     if ( active != g_activeFrame )
     {
@@ -1723,7 +1931,7 @@ static gint gtk_window_focus_in_callback( GtkWidget *widget,
         wxActivateEvent event(wxEVT_ACTIVATE, TRUE, g_activeFrame->GetId());
         event.SetEventObject(g_activeFrame);
         g_activeFrame->GetEventHandler()->ProcessEvent(event);
-        
+
         // Don't send focus events in addition to activate
         // if (win == g_activeFrame)
         //    return TRUE;
@@ -2077,7 +2285,7 @@ static void gtk_window_destroy_callback( GtkWidget* widget, wxWindow *win )
    been realized, so we do this directly after realization. */
 
 static gint
-gtk_window_realized_callback( GtkWidget *WXUNUSED(m_widget), wxWindow *win )
+gtk_window_realized_callback( GtkWidget *m_widget, wxWindow *win )
 {
     DEBUG_MAIN_THREAD
 
@@ -2090,6 +2298,14 @@ gtk_window_realized_callback( GtkWidget *WXUNUSED(m_widget), wxWindow *win )
     if (win->m_delayedForegroundColour)
         win->GtkSetForegroundColour( win->GetForegroundColour() );
 
+#ifdef __WXGTK20__
+    if (win->m_imContext)
+    {
+        GtkPizza *pizza = GTK_PIZZA( m_widget );
+        gtk_im_context_set_client_window( (GtkIMContext*) win->m_imContext, pizza->bin_window );
+    }
+#endif
+
     wxWindowCreateEvent event( win );
     event.SetEventObject( win );
     win->GetEventHandler()->ProcessEvent( event );
@@ -2349,10 +2565,15 @@ void wxWindowGTK::Init()
     m_delayedForegroundColour = FALSE;
     m_delayedBackgroundColour = FALSE;
 
+#ifdef __WXGTK20__
+    m_imContext = NULL;
+    m_x11Context = NULL;
+#else
 #ifdef HAVE_XIM
     m_ic = (GdkIC*) NULL;
     m_icattr = (GdkICAttr*) NULL;
 #endif
+#endif
 }
 
 wxWindowGTK::wxWindowGTK()
@@ -2387,9 +2608,9 @@ bool wxWindowGTK::Create( wxWindow *parent,
     }
 
     m_insertCallback = wxInsertChildInWindow;
-    
+
     // always needed for background clearing
-    m_delayedBackgroundColour = TRUE; 
+    m_delayedBackgroundColour = TRUE;
 
     m_widget = gtk_scrolled_window_new( (GtkAdjustment *) NULL, (GtkAdjustment *) NULL );
     GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS );
@@ -2473,6 +2694,17 @@ bool wxWindowGTK::Create( wxWindow *parent,
     gtk_signal_connect( GTK_OBJECT(m_vAdjust), "value_changed",
           (GtkSignalFunc) gtk_window_vscroll_callback, (gpointer) this );
 
+#ifdef __WXGTK20__
+    // Create input method handler
+    m_imContext = (GtkIMMulticontext*) gtk_im_multicontext_new ();
+
+    // Cannot handle drawing preedited text yet
+    gtk_im_context_set_use_preedit( (GtkIMContext*) m_imContext, FALSE );
+
+    g_signal_connect (G_OBJECT (m_imContext), "commit",
+        G_CALLBACK (gtk_wxwindow_commit_cb), this);
+#endif
+
     gtk_widget_show( m_wxwindow );
 
     if (m_parent)
@@ -2596,7 +2828,18 @@ void wxWindowGTK::PostCreation()
                     GTK_SIGNAL_FUNC(gtk_window_event_event_callback), (gpointer)this );
             }
 #else
-            gtk_widget_set_redraw_on_allocate( GTK_WIDGET(m_wxwindow), HasFlag( wxNO_FULL_REPAINT_ON_RESIZE ) );
+            // gtk_widget_set_redraw_on_allocate( GTK_WIDGET(m_wxwindow), HasFlag( wxNO_FULL_REPAINT_ON_RESIZE ) );
+#endif
+
+#ifdef __WXGTK20__
+        // Create input method handler
+        m_imContext = (GtkIMMulticontext*) gtk_im_multicontext_new ();
+
+        // Cannot handle drawing preedited text yet
+        gtk_im_context_set_use_preedit( (GtkIMContext*) m_imContext, FALSE );
+
+        g_signal_connect (G_OBJECT (m_imContext), "commit",
+            G_CALLBACK (gtk_wxwindow_commit_cb), this);
 #endif
         }
 
@@ -2683,7 +2926,7 @@ void wxWindowGTK::ConnectWidget( GtkWidget *widget )
 
     gtk_signal_connect( GTK_OBJECT(widget), "leave_notify_event",
       GTK_SIGNAL_FUNC(gtk_window_leave_callback), (gpointer)this );
-      
+
     // This keeps crashing on me. RR.
     //
     // gtk_signal_connect( GTK_OBJECT(widget), "destroy",
@@ -2842,7 +3085,7 @@ void wxWindowGTK::OnInternalIdle()
         }
         g_activeFrameLostFocus = FALSE;
     }
-    
+
     wxCursor cursor = m_cursor;
     if (g_globalCursor.Ok()) cursor = g_globalCursor;
 
@@ -3113,6 +3356,11 @@ bool wxWindowGTK::Show( bool show )
     else
         gtk_widget_hide( m_widget );
 
+    wxShowEvent eventShow(GetId(), show);
+    eventShow.m_eventObject = this;
+
+    GetEventHandler()->ProcessEvent(eventShow);
+
     return TRUE;
 }
 
@@ -3185,26 +3433,26 @@ void wxWindowGTK::GetTextExtent( const wxString& string,
     if (theFont) fontToUse = *theFont;
 
     wxCHECK_RET( fontToUse.Ok(), wxT("invalid font") );
-    
+
     if (string.IsEmpty())
     {
         if (x) (*x) = 0;
         if (y) (*y) = 0;
         return;
     }
-#ifdef __WXGTK20__
 
+#ifdef __WXGTK20__
     PangoContext *context = NULL;
     if (m_widget)
-        gtk_widget_get_pango_context( m_widget );
-        
+        context = gtk_widget_get_pango_context( m_widget );
+
     if (!context)
     {
         if (x) (*x) = 0;
         if (y) (*y) = 0;
         return;
     }
-    
+
     PangoFontDescription *desc = fontToUse.GetNativeFontInfo()->description;
     PangoLayout *layout = pango_layout_new(context);
     pango_layout_set_font_description(layout, desc);
@@ -3219,10 +3467,10 @@ void wxWindowGTK::GetTextExtent( const wxString& string,
 #endif
     }
     PangoLayoutLine *line = (PangoLayoutLine *)pango_layout_get_lines(layout)->data;
- 
+
     PangoRectangle rect;
     pango_layout_line_get_extents(line, NULL, &rect);
-       
+
     if (x) (*x) = (wxCoord) (rect.width / PANGO_SCALE);
     if (y) (*y) = (wxCoord) (rect.height / PANGO_SCALE);
     if (descent)
@@ -3231,7 +3479,7 @@ void wxWindowGTK::GetTextExtent( const wxString& string,
         (*descent) = 0;
     }
     if (externalLeading) (*externalLeading) = 0;  // ??
-    
+
     g_object_unref( G_OBJECT( layout ) );
 #else
     GdkFont *font = fontToUse.GetInternalFont( 1.0 );
@@ -3408,11 +3656,11 @@ void wxWindowGTK::Refresh( bool eraseBackground, const wxRect *rect )
 {
     if (!m_widget) return;
     if (!m_widget->window) return;
-    
+
 #ifndef __WXGTK20__
     if (g_isIdle)
         wxapp_install_idle_handler();
-        
+
     if (eraseBackground && m_wxwindow && m_wxwindow->window)
     {
         if (rect)
@@ -3498,7 +3746,7 @@ void wxWindowGTK::GtkSendPaintEvents()
 {
     if (!m_wxwindow)
     {
-#ifndef __WXGTK20__    
+#ifndef __WXGTK20__
         m_clearRegion.Clear();
 #endif
         m_updateRegion.Clear();
@@ -3511,7 +3759,7 @@ void wxWindowGTK::GtkSendPaintEvents()
 #ifndef __WXGTK20__
     // widget to draw on
     GtkPizza *pizza = GTK_PIZZA (m_wxwindow);
-            
+
     // later for GTK 2.0, too.
     if (GetThemeEnabled())
     {
@@ -3521,7 +3769,7 @@ void wxWindowGTK::GtkSendPaintEvents()
             parent = parent->GetParent();
         if (!parent)
             parent = (wxWindow*)this;
-    
+
         wxRegionIterator upd( m_updateRegion );
         while (upd)
         {
@@ -3530,7 +3778,7 @@ void wxWindowGTK::GtkSendPaintEvents()
             rect.y = upd.GetY();
             rect.width = upd.GetWidth();
             rect.height = upd.GetHeight();
-                    
+
             gtk_paint_flat_box( parent->m_widget->style,
                         pizza->bin_window,
                         GTK_STATE_NORMAL,
@@ -3539,7 +3787,7 @@ void wxWindowGTK::GtkSendPaintEvents()
                         parent->m_widget,
                         (char *)"base",
                         0, 0, -1, -1 );
-                        
+
             upd ++;
         }
     }
@@ -3610,7 +3858,7 @@ void wxWindowGTK::GtkSendPaintEvents()
     {
         GtkPizzaChild *child = (GtkPizzaChild*) children->data;
         children = children->next;
-        
+
         if (GTK_WIDGET_NO_WINDOW (child->widget) &&
             GTK_WIDGET_DRAWABLE (child->widget))
         {
@@ -3656,7 +3904,7 @@ void wxWindowGTK::Clear()
         m_clearRegion.Clear();
         wxSize size( GetClientSize() );
         m_clearRegion.Union( 0,0,size.x,size.y );
-        
+
         // Better do this in idle?
         GtkUpdate();
     }
@@ -3687,10 +3935,10 @@ void wxWindowGTK::GtkSetBackgroundColour( const wxColour &colour )
         window = GetConnectWidget()->window;
 
     wxASSERT( window );
-    
+
     // We need the pixel value e.g. for background clearing.
     m_backgroundColour.CalcPixel( gdk_window_get_colormap( window ) );
-    
+
     if (m_wxwindow)
     {
         // wxMSW doesn't clear the window here, either.
@@ -3774,6 +4022,21 @@ bool wxWindowGTK::SetForegroundColour( const wxColour &colour )
     return TRUE;
 }
 
+#ifdef __WXGTK20__
+PangoContext *wxWindowGTK::GtkGetPangoDefaultContext()
+{
+    return gtk_widget_get_pango_context( m_widget );
+}
+
+PangoContext *wxWindowGTK::GtkGetPangoX11Context()
+{
+    if (!m_x11Context)
+        m_x11Context = pango_x_get_context( gdk_display );
+
+    return m_x11Context;
+}
+#endif
+
 GtkStyle *wxWindowGTK::GetWidgetStyle()
 {
     if (m_widgetStyle)
@@ -4271,7 +4534,7 @@ void wxWindowGTK::ScrollWindow( int dx, int dy, const wxRect* WXUNUSED(rect) )
     wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
 
     wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") );
-    
+
     // No scrolling requested.
     if ((dx == 0) && (dy == 0)) return;
 
diff --git a/src/gtk1/app.cpp b/src/gtk1/app.cpp
index 20d8961d6c..eccbb52d0a 100644
--- a/src/gtk1/app.cpp
+++ b/src/gtk1/app.cpp
@@ -26,6 +26,7 @@
 #include "wx/dialog.h"
 #include "wx/msgdlg.h"
 #include "wx/file.h"
+#include "wx/filename.h"
 
 #if wxUSE_WX_RESOURCES
     #include "wx/resource.h"
@@ -44,13 +45,32 @@
 #endif
 
 #include <unistd.h>
-#if defined(__DARWIN__)
-# warning "FIXME: select must be used instead of poll (GD)"
-#elif defined(__VMS)
-# include <poll.h>
-#else
-# include <sys/poll.h>
-#endif
+
+#ifdef HAVE_POLL
+    #if defined(__VMS)
+        #include <poll.h>
+    #else
+        // bug in the OpenBSD headers: at least in 3.1 there is no extern "C"
+        // in neither poll.h nor sys/poll.h which results in link errors later
+        #ifdef __OPENBSD__
+            extern "C"
+            {
+        #endif
+
+        #include <sys/poll.h>
+
+        #ifdef __OPENBSD__
+            };
+        #endif
+    #endif // platform
+#else // !HAVE_POLL
+    // we implement poll() ourselves using select() which is supposed exist in
+    // all modern Unices
+    #include <sys/types.h>
+    #include <sys/time.h>
+    #include <unistd.h>
+#endif // HAVE_POLL/!HAVE_POLL
+
 #include "wx/gtk/win_gtk.h"
 
 #include <gtk/gtk.h>
@@ -250,22 +270,82 @@ static gint wxapp_idle_callback( gpointer WXUNUSED(data) )
 
 #if wxUSE_THREADS
 
+#ifdef HAVE_POLL
+    #define wxPoll poll
+    #define wxPollFd pollfd
+#else // !HAVE_POLL
+
+typedef GPollFD wxPollFd;
+
+int wxPoll(wxPollFd *ufds, unsigned int nfds, int timeout)
+{
+    // convert timeout from ms to struct timeval (s/us)
+    timeval tv_timeout;
+    tv_timeout.tv_sec = timeout/1000;
+    tv_timeout.tv_usec = (timeout%1000)*1000;
+
+    // remember the highest fd used here
+    int fdMax = -1;
+
+    // and fill the sets for select()
+    fd_set readfds;
+    fd_set writefds;
+    fd_set exceptfds;
+    FD_ZERO(&readfds);
+    FD_ZERO(&writefds);
+    FD_ZERO(&exceptfds);
+
+    unsigned int i;
+    for ( i = 0; i < nfds; i++ )
+    {
+        wxASSERT_MSG( ufds[i].fd < FD_SETSIZE, _T("fd out of range") );
+
+        if ( ufds[i].events & G_IO_IN )
+            FD_SET(ufds[i].fd, &readfds);
+
+        if ( ufds[i].events & G_IO_PRI )
+            FD_SET(ufds[i].fd, &exceptfds);
+
+        if ( ufds[i].events & G_IO_OUT )
+            FD_SET(ufds[i].fd, &writefds);
+
+        if ( ufds[i].fd > fdMax )
+            fdMax = ufds[i].fd;
+    }
+
+    fdMax++;
+    int res = select(fdMax, &readfds, &writefds, &exceptfds, &tv_timeout);
+
+    // translate the results back
+    for ( i = 0; i < nfds; i++ )
+    {
+        ufds[i].revents = 0;
+
+        if ( FD_ISSET(ufds[i].fd, &readfds ) )
+            ufds[i].revents |= G_IO_IN;
+
+        if ( FD_ISSET(ufds[i].fd, &exceptfds ) )
+            ufds[i].revents |= G_IO_PRI;
+
+        if ( FD_ISSET(ufds[i].fd, &writefds ) )
+            ufds[i].revents |= G_IO_OUT;
+    }
+
+    return res;
+}
+
+#endif // HAVE_POLL/!HAVE_POLL
+
 static gint wxapp_poll_func( GPollFD *ufds, guint nfds, gint timeout )
 {
-    gint res;
     gdk_threads_enter();
 
     wxMutexGuiLeave();
     g_mainThreadLocked = TRUE;
 
-#ifdef __DARWIN__
-    // FIXME: poll is not available under Darwin/Mac OS X and this needs
-    //        to be implemented using select instead (GD)
-    //        what about other BSD derived systems?
-    res = -1;
-#else
-    res = poll( (struct pollfd*) ufds, nfds, timeout );
-#endif
+    // we rely on the fact that glib GPollFD struct is really just pollfd but
+    // I wonder how wise is this in the long term (VZ)
+    gint res = wxPoll( (wxPollFd *) ufds, nfds, timeout );
 
     wxMutexGuiEnter();
     g_mainThreadLocked = FALSE;
@@ -463,6 +543,16 @@ GdkVisual *wxApp::GetGdkVisual()
 
 bool wxApp::ProcessIdle()
 {
+    wxWindowList::Node* node = wxTopLevelWindows.GetFirst();
+    node = wxTopLevelWindows.GetFirst();
+    while (node)
+    {
+        wxWindow* win = node->GetData();
+        CallInternalIdle( win );
+
+        node = node->GetNext();
+    }
+
     wxIdleEvent event;
     event.SetEventObject( this );
     ProcessEvent( event );
@@ -510,14 +600,6 @@ bool wxApp::SendIdleEvents()
         node = node->GetNext();
     }
 
-    node = wxTopLevelWindows.GetFirst();
-    while (node)
-    {
-        wxWindow* win = node->GetData();
-        CallInternalIdle( win );
-
-        node = node->GetNext();
-    }
     return needMore;
 }
 
@@ -545,7 +627,7 @@ bool wxApp::SendIdleEvents( wxWindow* win )
     event.SetEventObject(win);
 
     win->GetEventHandler()->ProcessEvent(event);
-    
+
     if (event.MoreRequested())
         needMore = TRUE;
 
@@ -609,10 +691,6 @@ bool wxApp::Initialize()
 {
     wxClassInfo::InitializeClasses();
 
-#if wxUSE_INTL
-    wxFont::SetDefaultEncoding(wxLocale::GetSystemEncoding());
-#endif
-
     // GL: I'm annoyed ... I don't know where to put this and I don't want to
     // create a module for that as it's part of the core.
 #if wxUSE_THREADS
@@ -631,7 +709,12 @@ bool wxApp::Initialize()
 #endif
 
     wxModule::RegisterModules();
-    if (!wxModule::InitializeModules()) return FALSE;
+    if (!wxModule::InitializeModules())
+        return FALSE;
+
+#if wxUSE_INTL
+    wxFont::SetDefaultEncoding(wxLocale::GetSystemEncoding());
+#endif
 
     return TRUE;
 }
@@ -810,9 +893,11 @@ int wxEntry( int argc, char *argv[] )
     wxTheApp->argv = argv;
 #endif
 
-    wxString name(wxFileNameFromPath(argv[0]));
-    wxStripExtension( name );
-    wxTheApp->SetAppName( name );
+    if (wxTheApp->argc > 0)
+    {
+        wxFileName fname( wxTheApp->argv[0] );
+        wxTheApp->SetAppName( fname.GetName() );
+    }
 
     int retValue;
     retValue = wxEntryInitGui();
diff --git a/src/gtk1/bitmap.cpp b/src/gtk1/bitmap.cpp
index 033071565e..d2e9fda7f0 100644
--- a/src/gtk1/bitmap.cpp
+++ b/src/gtk1/bitmap.cpp
@@ -344,7 +344,7 @@ bool wxBitmap::CreateFromImage( const wxImage& image, int depth )
     m_refData = new wxBitmapRefData();
 
     // ------
-    // convertion to mono bitmap:
+    // conversion to mono bitmap:
     // ------
     if (depth == 1)
     {
@@ -440,7 +440,7 @@ bool wxBitmap::CreateFromImage( const wxImage& image, int depth )
     }
 
     // ------
-    // convertion to colour bitmap:
+    // conversion to colour bitmap:
     // ------
     else
     {
diff --git a/src/gtk1/button.cpp b/src/gtk1/button.cpp
index 711b64f16c..fae04c1372 100644
--- a/src/gtk1/button.cpp
+++ b/src/gtk1/button.cpp
@@ -188,6 +188,15 @@ bool wxButton::Enable( bool enable )
     return TRUE;
 }
 
+bool wxButton::IsOwnGtkWindow( GdkWindow *window )
+{
+#ifdef __WXGTK20__
+    return GTK_BUTTON(m_widget)->event_window;
+#else
+    return (window == m_widget->window);
+#endif
+}
+
 void wxButton::ApplyWidgetStyle()
 {
     SetWidgetStyle();
diff --git a/src/gtk1/colour.cpp b/src/gtk1/colour.cpp
index 84c790a329..21d852e55d 100644
--- a/src/gtk1/colour.cpp
+++ b/src/gtk1/colour.cpp
@@ -13,6 +13,7 @@
 #endif
 
 #include "wx/gdicmn.h"
+#include "wx/gtk/private.h"
 
 #include <gdk/gdk.h>
 #include <gdk/gdkx.h>
@@ -167,7 +168,7 @@ void wxColour::InitFromName( const wxString &colourName )
     {
         m_refData = new wxColourRefData();
         
-        if (!gdk_color_parse( colourName.mb_str(), &M_COLDATA->m_color ))
+        if (!gdk_color_parse( wxGTK_CONV( colourName ), &M_COLDATA->m_color ))
         {
             // VZ: asserts are good in general but this one is triggered by
             //     calling wxColourDatabase::FindColour() with an
@@ -217,11 +218,13 @@ void wxColour::Set( unsigned char red, unsigned char green, unsigned char blue )
 {
     AllocExclusive();
     
-    m_refData = new wxColourRefData();
     M_COLDATA->m_color.red = ((unsigned short)red) << SHIFT;
     M_COLDATA->m_color.green = ((unsigned short)green) << SHIFT;
     M_COLDATA->m_color.blue = ((unsigned short)blue) << SHIFT;
     M_COLDATA->m_color.pixel = 0;
+    
+    M_COLDATA->m_colormap = (GdkColormap*) NULL;
+    M_COLDATA->m_hasPixel = FALSE;
 }
 
 unsigned char wxColour::Red() const
diff --git a/src/gtk1/combobox.cpp b/src/gtk1/combobox.cpp
index a03df573b1..ee0cc2e8d5 100644
--- a/src/gtk1/combobox.cpp
+++ b/src/gtk1/combobox.cpp
@@ -209,6 +209,17 @@ wxComboBox::~wxComboBox()
     m_clientDataList.Clear();
 }
 
+void wxComboBox::SetFocus()
+{
+    if ( m_hasFocus )
+    {
+        // don't do anything if we already have focus
+        return;
+    }
+
+    gtk_widget_grab_focus( m_focusWidget );
+}
+
 void wxComboBox::AppendCommon( const wxString &item )
 {
     wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
@@ -364,8 +375,14 @@ int wxComboBox::FindString( const wxString &item )
     {
         GtkBin *bin = GTK_BIN( child->data );
         GtkLabel *label = GTK_LABEL( bin->child );
-        if (item == wxString(label->label,*wxConvCurrent))
+#ifdef __WXGTK20__
+        wxString str( wxGTK_CONV_BACK( gtk_label_get_text(label) ) );
+#else
+        wxString str( label->label );
+#endif
+        if (item == str)
             return count;
+            
         count++;
         child = child->next;
     }
@@ -408,7 +425,7 @@ wxString wxComboBox::GetString( int n ) const
         GtkBin *bin = GTK_BIN( child->data );
         GtkLabel *label = GTK_LABEL( bin->child );
 #ifdef __WXGTK20__
-        str = wxGTK_CONV_BACK( gtk_label_get_text( label) );
+        str = wxGTK_CONV_BACK( gtk_label_get_text(label) );
 #else
         str = wxString( label->label );
 #endif
@@ -431,7 +448,12 @@ wxString wxComboBox::GetStringSelection() const
     if (selection)
     {
         GtkBin *bin = GTK_BIN( selection->data );
-        wxString tmp = wxString(GTK_LABEL( bin->child )->label,*wxConvCurrent);
+        GtkLabel *label = GTK_LABEL( bin->child );
+#ifdef __WXGTK20__
+        wxString tmp( wxGTK_CONV_BACK( gtk_label_get_text(label) ) );
+#else
+        wxString tmp( label->label );
+#endif
         return tmp;
     }
 
diff --git a/src/gtk1/dataobj.cpp b/src/gtk1/dataobj.cpp
index ca8fb4dbd6..2b0f4f43ae 100644
--- a/src/gtk1/dataobj.cpp
+++ b/src/gtk1/dataobj.cpp
@@ -158,6 +158,11 @@ wxDataObject::wxDataObject()
 {
 }
 
+wxDataObject::~wxDataObject()
+{
+    // dtor is empty but needed for Darwin and AIX -- otherwise it doesn't link
+}
+
 bool wxDataObject::IsSupportedFormat(const wxDataFormat& format, Direction dir) const
 {
     size_t nFormatCount = GetFormatCount(dir);
diff --git a/src/gtk1/dcclient.cpp b/src/gtk1/dcclient.cpp
index 8a33377614..d36b26b870 100644
--- a/src/gtk1/dcclient.cpp
+++ b/src/gtk1/dcclient.cpp
@@ -330,12 +330,7 @@ wxWindowDC::wxWindowDC( wxWindow *window )
     wxASSERT_MSG( widget, wxT("DC needs a widget") );
 
 #ifdef __WXGTK20__
-    m_context = gtk_widget_get_pango_context( widget );
-    
-    // Always take Xft context to get matching fonts
-    // for display and printing.
-    // m_context = pango_xft_get_context (GDK_DISPLAY (), DefaultScreen (GDK_DISPLAY ()));
-    
+    m_context = window->GtkGetPangoDefaultContext();
     m_fontdesc = widget->style->font_desc;
 #endif
 
@@ -1414,19 +1409,23 @@ void wxWindowDC::DoDrawText( const wxString &text, wxCoord x, wxCoord y )
     wxCHECK_RET( Ok(), wxT("invalid window dc") );
 
     if (!m_window) return;
+    
+    if (text.empty()) return;
 
+#ifndef __WXGTK20__
     GdkFont *font = m_font.GetInternalFont( m_scaleY );
 
     wxCHECK_RET( font, wxT("invalid font") );
+#endif
 
-#if defined(__WXGTK20__)
+#ifdef __WXGTK20__
     wxCHECK_RET( m_context, wxT("no Pango context") );
 #endif
 
     x = XLOG2DEV(x);
     y = YLOG2DEV(y);
 
-#if defined(__WXGTK20__)
+#ifdef __WXGTK20__
     // TODO: the layout engine should be abstracted at a higher level!
     PangoLayout *layout = pango_layout_new(m_context);
     pango_layout_set_font_description(layout, m_fontdesc);
@@ -1440,12 +1439,17 @@ void wxWindowDC::DoDrawText( const wxString &text, wxCoord x, wxCoord y )
         pango_layout_set_text(layout, (const char*) data, strlen( (const char*) data ));
 #endif
     }
-    PangoLayoutLine *line = (PangoLayoutLine *)pango_layout_get_lines(layout)->data;
-    PangoRectangle rect;
-    pango_layout_line_get_extents(line, NULL, &rect);
-    wxCoord width = rect.width;
-    wxCoord height = rect.height;
+    
+    // Measure layout.
+    int w,h;
+    pango_layout_get_pixel_size(layout, &w, &h);
+    wxCoord width = w;
+    wxCoord height = h;
+    
+    // Draw layout.
     gdk_draw_layout( m_window, m_textGC, x, y, layout );
+    
+    g_object_unref( G_OBJECT( layout ) );
 #else // GTK+ 1.x
     wxCoord width = gdk_string_width( font, text.mbc_str() );
     wxCoord height = font->ascent + font->descent;
@@ -1469,9 +1473,6 @@ void wxWindowDC::DoDrawText( const wxString &text, wxCoord x, wxCoord y )
     }
 #endif // GTK+ 2.0/1.x
 
-#if defined(__WXGTK20__)
-    g_object_unref( G_OBJECT( layout ) );
-#endif
 
     width = wxCoord(width / m_scaleX);
     height = wxCoord(height / m_scaleY);
@@ -1596,8 +1597,6 @@ void wxWindowDC::DoGetTextExtent(const wxString &string,
                                  wxCoord *descent, wxCoord *externalLeading,
                                  wxFont *theFont) const
 {
-    wxFont fontToUse = m_font;
-    if (theFont) fontToUse = *theFont;
     if (string.IsEmpty())
     {
         if (width) (*width) = 0;
@@ -1606,9 +1605,14 @@ void wxWindowDC::DoGetTextExtent(const wxString &string,
     }
     
 #ifdef __WXGTK20__
-    PangoFontDescription *desc = fontToUse.GetNativeFontInfo()->description;
+    // Create layout and set font description
     PangoLayout *layout = pango_layout_new(m_context);
-    pango_layout_set_font_description(layout, desc);
+    if (theFont)
+        pango_layout_set_font_description( layout, theFont->GetNativeFontInfo()->description );
+    else
+        pango_layout_set_font_description(layout, m_fontdesc);
+        
+    // Set layout's text
 #if wxUSE_UNICODE
         const wxCharBuffer data = wxConvUTF8.cWC2MB( string );
         pango_layout_set_text(layout, (const char*) data, strlen( (const char*) data ));
@@ -1617,23 +1621,25 @@ void wxWindowDC::DoGetTextExtent(const wxString &string,
         const wxCharBuffer data = wxConvUTF8.cWC2MB( wdata );
         pango_layout_set_text(layout, (const char*) data, strlen( (const char*) data ));
 #endif
-    PangoLayoutLine *line = (PangoLayoutLine *)pango_layout_get_lines(layout)->data;
  
-    PangoRectangle rect;
-    pango_layout_line_get_extents(line, NULL, &rect);
-       
+    // Measure text.
+    int w,h;
+    pango_layout_get_pixel_size(layout, &w, &h);
     
-    if (width) (*width) = (wxCoord) (rect.width / PANGO_SCALE);
-    if (height) (*height) = (wxCoord) (rect.height / PANGO_SCALE);
+    if (width) (*width) = (wxCoord) w; 
+    if (height) (*height) = (wxCoord) h;
     if (descent)
     {
-        // Do something about metrics here
+        // Do something about metrics here. TODO.
         (*descent) = 0;
     }
     if (externalLeading) (*externalLeading) = 0;  // ??
     
     g_object_unref( G_OBJECT( layout ) );
 #else
+    wxFont fontToUse = m_font;
+    if (theFont) fontToUse = *theFont;
+    
     GdkFont *font = fontToUse.GetInternalFont( m_scaleY );
     if (width) (*width) = wxCoord(gdk_string_width( font, string.mbc_str() ) / m_scaleX);
     if (height) (*height) = wxCoord((font->ascent + font->descent) / m_scaleY);
@@ -1644,18 +1650,40 @@ void wxWindowDC::DoGetTextExtent(const wxString &string,
 
 wxCoord wxWindowDC::GetCharWidth() const
 {
+#ifdef __WXGTK20__
+    // There should be an easier way.
+    PangoLayout *layout = pango_layout_new(m_context);
+    pango_layout_set_font_description(layout, m_fontdesc);
+    pango_layout_set_text(layout, "H", 1 );
+    int w,h;
+    pango_layout_get_pixel_size(layout, &w, &h);
+    g_object_unref( G_OBJECT( layout ) );
+    return w;
+#else
     GdkFont *font = m_font.GetInternalFont( m_scaleY );
     wxCHECK_MSG( font, -1, wxT("invalid font") );
 
     return wxCoord(gdk_string_width( font, "H" ) / m_scaleX);
+#endif
 }
 
 wxCoord wxWindowDC::GetCharHeight() const
 {
+#ifdef __WXGTK20__
+    // There should be an easier way.
+    PangoLayout *layout = pango_layout_new(m_context);
+    pango_layout_set_font_description(layout, m_fontdesc);
+    pango_layout_set_text(layout, "H", 1 );
+    int w,h;
+    pango_layout_get_pixel_size(layout, &w, &h);
+    g_object_unref( G_OBJECT( layout ) );
+    return h;
+#else
     GdkFont *font = m_font.GetInternalFont( m_scaleY );
     wxCHECK_MSG( font, -1, wxT("invalid font") );
 
     return wxCoord((font->ascent + font->descent) / m_scaleY);
+#endif
 }
 
 void wxWindowDC::Clear()
@@ -1705,6 +1733,14 @@ void wxWindowDC::SetFont( const wxFont &font )
     m_font = font;
 #ifdef __WXGTK20__
     m_fontdesc = m_font.GetNativeFontInfo()->description;
+   
+    if (m_owner)
+    {
+        if (m_font.GetNoAntiAliasing())
+            m_context = m_owner->GtkGetPangoX11Context();
+        else
+            m_context = m_owner->GtkGetPangoDefaultContext();
+    }
 #endif
 }
 
@@ -1816,7 +1852,7 @@ void wxWindowDC::SetPen( const wxPen &pen )
             gdk_gc_set_dashes( m_penGC, 0, (wxGTKDash*)req_dash, req_nb_dash );
         }
     }
-#endif
+#endif // GTK+ > 1.0
 
     GdkCapStyle capStyle = GDK_CAP_ROUND;
     switch (m_pen.GetCap())
@@ -1955,12 +1991,12 @@ void wxWindowDC::SetLogicalFunction( int function )
     if (!m_window)
         return;
 
-    GdkFunction mode = GDK_COPY;
+    GdkFunction mode;
     switch (function)
     {
         case wxXOR:          mode = GDK_XOR;           break;
         case wxINVERT:       mode = GDK_INVERT;        break;
-#if (GTK_MINOR_VERSION > 0)
+#if (GTK_MINOR_VERSION > 0) || (GTK_MAJOR_VERSION > 1)
         case wxOR_REVERSE:   mode = GDK_OR_REVERSE;    break;
         case wxAND_REVERSE:  mode = GDK_AND_REVERSE;   break;
         case wxCLEAR:        mode = GDK_CLEAR;         break;
@@ -1977,12 +2013,10 @@ void wxWindowDC::SetLogicalFunction( int function )
 
         // unsupported by GTK
         case wxNOR:          mode = GDK_COPY;          break;
-#endif
+#endif // GTK+ > 1.0
         default:
-        {
            wxFAIL_MSG( wxT("unsupported logical function") );
-           break;
-        }
+           mode = GDK_COPY;
     }
 
     m_logicalFunction = function;
diff --git a/src/gtk1/dialog.cpp b/src/gtk1/dialog.cpp
index 68a991a371..4c95d23682 100644
--- a/src/gtk1/dialog.cpp
+++ b/src/gtk1/dialog.cpp
@@ -30,8 +30,6 @@ extern void wxapp_install_idle_handler();
 extern bool g_isIdle;
 extern int g_openDialogs;
 
-
-
 //-----------------------------------------------------------------------------
 // wxDialog
 //-----------------------------------------------------------------------------
@@ -209,9 +207,11 @@ int wxDialog::ShowModal()
     }
 
     wxBusyCursorSuspender cs; // temporarily suppress the busy cursor
-
+    
     Show( TRUE );
 
+    SetFocus();
+
     m_modalShowing = TRUE;
 
     g_openDialogs++;
diff --git a/src/gtk1/files.lst b/src/gtk1/files.lst
index 68e2a7dacd..0f77d8693d 100644
--- a/src/gtk1/files.lst
+++ b/src/gtk1/files.lst
@@ -265,7 +265,6 @@ ALL_SOURCES = \
 		html/m_layout.cpp \
 		html/m_links.cpp \
 		html/m_list.cpp \
-		html/m_meta.cpp \
 		html/m_pre.cpp \
 		html/m_style.cpp \
 		html/m_tables.cpp \
@@ -636,7 +635,6 @@ ALL_HEADERS = \
 		protocol/protocol.h
 
 COMMONOBJS = \
-		parser.o \
 		appcmn.o \
 		artprov.o \
 		artstd.o \
@@ -984,7 +982,6 @@ HTMLOBJS = \
 		m_layout.o \
 		m_links.o \
 		m_list.o \
-		m_meta.o \
 		m_pre.o \
 		m_style.o \
 		m_tables.o \
diff --git a/src/gtk1/font.cpp b/src/gtk1/font.cpp
index 31345187cb..2fd0ad6f5f 100644
--- a/src/gtk1/font.cpp
+++ b/src/gtk1/font.cpp
@@ -93,6 +93,9 @@ public:
     void SetFaceName(const wxString& facename);
     void SetEncoding(wxFontEncoding encoding);
 
+    void SetNoAntiAliasing( bool no = TRUE ) { m_noAA = no; }
+    bool GetNoAntiAliasing() { return m_noAA; }
+    
     // and this one also modifies all the other font data fields
     void SetNativeFontInfo(const wxNativeFontInfo& info);
 
@@ -130,17 +133,14 @@ protected:
     void InitFromNative();
 
 private:
-#ifdef __WXGTK20__
-    void ClearGdkFonts() { }
-#else // GTK 1.x
-    // clear m_scaled_xfonts
+    // clear m_scaled_xfonts if any
     void ClearGdkFonts();
 
+#ifndef __WXGTK20__
     // the map of font sizes to "GdkFont *"
     wxScaledFontList  m_scaled_xfonts;
 #endif // GTK 2.0/1.x
 
-    // the broken down font parameters
     int             m_pointSize;
     int             m_family,
                     m_style,
@@ -148,6 +148,7 @@ private:
     bool            m_underlined;
     wxString        m_faceName;
     wxFontEncoding  m_encoding;  // Unused under GTK 2.0
+    bool            m_noAA;      // No anti-aliasing
 
     // The native font info, basicly an XFLD under GTK 1.2 and
     // the pango font description under GTK 2.0.
@@ -156,12 +157,8 @@ private:
     friend class wxFont;
 };
 
-// ============================================================================
-// wxFontRefData implementation
-// ============================================================================
-
 // ----------------------------------------------------------------------------
-// wxFontRefData creation
+// wxFontRefData 
 // ----------------------------------------------------------------------------
 
 void wxFontRefData::Init(int pointSize,
@@ -188,25 +185,37 @@ void wxFontRefData::Init(int pointSize,
 
     m_underlined = underlined;
     m_encoding = encoding;
+    
+    m_noAA = FALSE;
 
 #ifdef __WXGTK20__
     // Create native font info
     m_nativeFontInfo.description = pango_font_description_new();
 
     // And set its values
-    switch (m_family)
-    {
-        case wxFONTFAMILY_MODERN:
-        case wxFONTFAMILY_TELETYPE:
-           pango_font_description_set_family( m_nativeFontInfo.description, "monospace" );
-           break;
-        case wxFONTFAMILY_SWISS:
-           pango_font_description_set_family( m_nativeFontInfo.description, "serif" );
-           break;
-        default:
-           pango_font_description_set_family( m_nativeFontInfo.description, "sans" );
-           break;
+    if (!m_faceName.empty())
+    {
+       pango_font_description_set_family( m_nativeFontInfo.description, wxGTK_CONV(m_faceName) );
+    }
+    else
+    {
+        switch (m_family)
+        {
+            case wxFONTFAMILY_MODERN:
+            case wxFONTFAMILY_TELETYPE:
+               pango_font_description_set_family( m_nativeFontInfo.description, "monospace" );
+               break;
+            case wxFONTFAMILY_ROMAN:
+               pango_font_description_set_family( m_nativeFontInfo.description, "serif" );
+               break;
+            case wxFONTFAMILY_SWISS:
+               // SWISS = sans serif
+            default:
+               pango_font_description_set_family( m_nativeFontInfo.description, "sans" );
+               break;
+        }
     }
+    
     SetStyle( m_style );
     SetPointSize( m_pointSize );
     SetWeight( m_weight );
@@ -215,6 +224,8 @@ void wxFontRefData::Init(int pointSize,
 
 void wxFontRefData::InitFromNative()
 {
+    m_noAA = FALSE;
+
 #ifdef __WXGTK20__
     // Get native info
     PangoFontDescription *desc = m_nativeFontInfo.description;
@@ -267,6 +278,10 @@ void wxFontRefData::InitFromNative()
     {
         m_family = wxFONTFAMILY_SWISS;
     }
+    else if (m_faceName == wxT("serif"))
+    {
+        m_family = wxFONTFAMILY_ROMAN;
+    }
     else
     {
         m_family = wxFONTFAMILY_UNKNOWN;
@@ -391,6 +406,8 @@ wxFontRefData::wxFontRefData( const wxFontRefData& data )
     m_faceName = data.m_faceName;
     m_encoding = data.m_encoding;
 
+    m_noAA = data.m_noAA;
+    
     m_nativeFontInfo = data.m_nativeFontInfo;
 }
 
@@ -414,9 +431,9 @@ wxFontRefData::wxFontRefData(const wxString& fontname)
     InitFromNative();
 }
 
-#ifndef __WXGTK20__
 void wxFontRefData::ClearGdkFonts()
 {
+#ifndef __WXGTK20__
     for ( wxScaledFontList::iterator i = m_scaled_xfonts.begin();
           i != m_scaled_xfonts.end();
           ++i )
@@ -426,8 +443,8 @@ void wxFontRefData::ClearGdkFonts()
     }
 
     m_scaled_xfonts.clear();
-}
 #endif // GTK 1.x
+}
 
 wxFontRefData::~wxFontRefData()
 {
@@ -522,7 +539,27 @@ void wxFontRefData::SetWeight(int weight)
 {
     m_weight = weight;
 
-#ifndef __WXGTK20__
+#ifdef __WXGTK20__
+    PangoFontDescription *desc = m_nativeFontInfo.description;
+    switch ( weight )
+    {
+        case wxFONTWEIGHT_BOLD:
+            pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD);
+            break;
+
+        case wxFONTWEIGHT_LIGHT:
+            pango_font_description_set_weight(desc, PANGO_WEIGHT_LIGHT);
+            break;
+
+        default:
+            wxFAIL_MSG( _T("unknown font weight") );
+            // fall through
+
+        case wxFONTWEIGHT_NORMAL:
+            // unspecified
+            pango_font_description_set_weight(desc, PANGO_WEIGHT_NORMAL);
+    }
+#else //!__WXGTK20__
     if ( HasNativeFont() )
     {
         wxString boldness;
@@ -597,10 +634,6 @@ void wxFontRefData::SetNativeFontInfo(const wxNativeFontInfo& info)
     InitFromNative();
 }
 
-// ============================================================================
-// wxFont implementation
-// ============================================================================
-
 // ----------------------------------------------------------------------------
 // wxFont creation
 // ----------------------------------------------------------------------------
@@ -624,7 +657,7 @@ wxFont::wxFont(const wxNativeFontInfo& info)
             info.GetFaceName(),
             info.GetEncoding() );
 #else
-    Create(info.GetXFontName());
+    (void) Create(info.GetXFontName());
 #endif
 }
 
@@ -636,6 +669,8 @@ bool wxFont::Create( int pointSize,
                      const wxString& face,
                      wxFontEncoding encoding)
 {
+    UnRef();
+
     m_refData = new wxFontRefData(pointSize, family, style, weight,
                                   underlined, face, encoding);
 
@@ -679,9 +714,6 @@ wxFont::~wxFont()
 // accessors
 // ----------------------------------------------------------------------------
 
-// all accessors are just forwarded to wxFontRefData which has everything we
-// need
-
 int wxFont::GetPointSize() const
 {
     wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
@@ -731,6 +763,13 @@ wxFontEncoding wxFont::GetEncoding() const
     return M_FONTDATA->m_encoding;
 }
 
+bool wxFont::GetNoAntiAliasing()
+{
+    wxCHECK_MSG( Ok(), wxFONTENCODING_DEFAULT, wxT("invalid font") );
+
+    return M_FONTDATA->m_noAA;
+}
+
 wxNativeFontInfo *wxFont::GetNativeFontInfo() const
 {
     wxCHECK_MSG( Ok(), (wxNativeFontInfo *)NULL, wxT("invalid font") );
@@ -814,11 +853,18 @@ void wxFont::SetEncoding(wxFontEncoding encoding)
     M_FONTDATA->SetEncoding(encoding);
 }
 
-void wxFont::SetNativeFontInfo(const wxNativeFontInfo& info)
+void wxFont::SetNativeFontInfo( const wxNativeFontInfo& info )
+{
+    Unshare();
+
+    M_FONTDATA->SetNativeFontInfo( info );
+}
+
+void wxFont::SetNoAntiAliasing( bool no )
 {
     Unshare();
 
-    M_FONTDATA->SetNativeFontInfo(info);
+    M_FONTDATA->SetNoAntiAliasing( no );
 }
 
 // ----------------------------------------------------------------------------
diff --git a/src/gtk1/fontdlg.cpp b/src/gtk1/fontdlg.cpp
index 4582a5c002..3dfb008131 100644
--- a/src/gtk1/fontdlg.cpp
+++ b/src/gtk1/fontdlg.cpp
@@ -77,7 +77,7 @@ void gtk_fontdialog_ok_callback( GtkWidget *WXUNUSED(widget), wxFontDialog *dial
     
     // printf( "font %s\n", fontname );
 
-    dialog->SetChosenFont(fontname);
+    dialog->SetChosenFont( fontname);
 
     g_free( fontname );
 
@@ -181,7 +181,7 @@ wxFontDialog::~wxFontDialog()
 
 void wxFontDialog::SetChosenFont(const char *fontname)
 {
-    m_fontData.SetChosenFont(wxFont(fontname));
+    m_fontData.SetChosenFont(wxFont( wxString::FromAscii(fontname) ));
 }
 
 #endif // wxUSE_FONTDLG
diff --git a/src/gtk1/frame.cpp b/src/gtk1/frame.cpp
index acad4c3355..7e1ed2b2ba 100644
--- a/src/gtk1/frame.cpp
+++ b/src/gtk1/frame.cpp
@@ -45,7 +45,6 @@
 // constants
 // ----------------------------------------------------------------------------
 
-const int wxMENU_HEIGHT    = 27;
 const int wxSTATUS_HEIGHT  = 25;
 const int wxPLACE_HOLDER   = 0;
 
@@ -165,7 +164,7 @@ static void wxInsertChildInFrame( wxFrame* parent, wxWindow* child )
                          child->m_y,
                          child->m_width,
                          child->m_height );
-
+                         
 #if wxUSE_TOOLBAR_NATIVE
         // We connect to these events for recalculating the client area
         // space when the toolbar is floating
@@ -193,7 +192,7 @@ static void wxInsertChildInFrame( wxFrame* parent, wxWindow* child )
                          child->m_width,
                          child->m_height );
     }
-
+    
     // Resize on OnInternalIdle
     parent->GtkUpdateSize();
 }
@@ -206,6 +205,7 @@ void wxFrame::Init()
 {
     m_menuBarDetached = FALSE;
     m_toolBarDetached = FALSE;
+    m_menuBarHeight = 2;
 }
 
 bool wxFrame::Create( wxWindow *parent,
@@ -219,6 +219,7 @@ bool wxFrame::Create( wxWindow *parent,
     bool rt = wxTopLevelWindow::Create(parent, id, title, pos, sizeOrig,
                                        style, name);
     m_insertCallback = (wxInsertChildFunction) wxInsertChildInFrame;
+    
     return rt;
 }
 
@@ -245,7 +246,7 @@ void wxFrame::DoGetClientSize( int *width, int *height ) const
         if (m_frameMenuBar)
         {
             if (!m_menuBarDetached)
-                (*height) -= wxMENU_HEIGHT;
+                (*height) -= m_menuBarHeight;
             else
                 (*height) -= wxPLACE_HOLDER;
         }
@@ -292,7 +293,7 @@ void wxFrame::DoSetClientSize( int width, int height )
         if (m_frameMenuBar)
         {
             if (!m_menuBarDetached)
-                height += wxMENU_HEIGHT;
+                height += m_menuBarHeight;
             else
                 height += wxPLACE_HOLDER;
         }
@@ -396,7 +397,7 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
             int xx = m_miniEdge;
             int yy = m_miniEdge + m_miniTitle;
             int ww = m_width  - 2*m_miniEdge;
-            int hh = wxMENU_HEIGHT;
+            int hh = m_menuBarHeight;
             if (m_menuBarDetached) hh = wxPLACE_HOLDER;
             m_frameMenuBar->m_x = xx;
             m_frameMenuBar->m_y = yy;
@@ -419,7 +420,7 @@ void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y),
             if (m_frameMenuBar)
             {
                 if (!m_menuBarDetached)
-                    yy += wxMENU_HEIGHT;
+                    yy += m_menuBarHeight;
                 else
                     yy += wxPLACE_HOLDER;
             }
@@ -576,11 +577,34 @@ void wxFrame::AttachMenuBar( wxMenuBar *menuBar )
             gtk_signal_connect( GTK_OBJECT(menuBar->m_widget), "child_detached",
                 GTK_SIGNAL_FUNC(gtk_menu_detached_callback), (gpointer)this );
         }
-
+        
         m_frameMenuBar->Show( TRUE );
+
+        UpdateMenuBarSize();
     }
+    else
+    {
+        m_menuBarHeight = 2;
+        GtkUpdateSize();        // resize window in OnInternalIdle
+    }
+}
+
+void wxFrame::UpdateMenuBarSize()
+{
+    wxASSERT_MSG( m_frameMenuBar, _T("Updating non existant menubar?") );
+
+    GtkRequisition  req;
+
+    req.width = 2;
+    req.height = 2;
+
+    (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_frameMenuBar->m_widget) )->size_request )
+        (m_frameMenuBar->m_widget, &req );
+
+    m_menuBarHeight = req.height;
+
+        // resize window in OnInternalIdle
 
-    // resize window in OnInternalIdle
     GtkUpdateSize();
 }
 
diff --git a/src/gtk1/gauge.cpp b/src/gtk1/gauge.cpp
index 917ab60307..f180206c79 100644
--- a/src/gtk1/gauge.cpp
+++ b/src/gtk1/gauge.cpp
@@ -15,18 +15,22 @@
 
 #if wxUSE_GAUGE
 
-#include <gdk/gdk.h>
 #include <gtk/gtk.h>
 
 //-----------------------------------------------------------------------------
 // wxGauge
 //-----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxGauge,wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxGauge, wxControl)
 
-bool wxGauge::Create( wxWindow *parent, wxWindowID id,  int range,
-    const wxPoint& pos, const wxSize& size,
-    long style, const wxValidator& validator, const wxString& name )
+bool wxGauge::Create( wxWindow *parent,
+                      wxWindowID id,
+                      int range,
+                      const wxPoint& pos,
+                      const wxSize& size,
+                      long style,
+                      const wxValidator& validator,
+                      const wxString& name )
 {
     m_needParent = TRUE;
 
@@ -38,12 +42,13 @@ bool wxGauge::Create( wxWindow *parent, wxWindowID id,  int range,
     }
 
     m_rangeMax = range;
-    m_gaugePos = 0;
-    m_useProgressBar = TRUE;
 
     m_widget = gtk_progress_bar_new();
-    if( style & wxGA_VERTICAL)
-        gtk_progress_bar_set_orientation( GTK_PROGRESS_BAR(m_widget) , GTK_PROGRESS_BOTTOM_TO_TOP );
+    if ( style & wxGA_VERTICAL )
+    {
+        gtk_progress_bar_set_orientation( GTK_PROGRESS_BAR(m_widget),
+                                          GTK_PROGRESS_BOTTOM_TO_TOP );
+    }
 
     m_parent->DoAddChild( this );
 
@@ -54,20 +59,31 @@ bool wxGauge::Create( wxWindow *parent, wxWindowID id,  int range,
     return TRUE;
 }
 
-void wxGauge::SetRange( int r )
+void wxGauge::DoSetGauge()
+{
+    wxASSERT_MSG( 0 <= m_gaugePos && m_gaugePos <= m_rangeMax,
+                  _T("invalid gauge position in DoSetGauge()") );
+
+    gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget),
+                             m_rangeMax ? ((float)m_gaugePos)/m_rangeMax : 0.);
+}
+
+void wxGauge::SetRange( int range )
 {
-    m_rangeMax = r;
-    if (m_gaugePos > m_rangeMax) m_gaugePos = m_rangeMax;
+    m_rangeMax = range;
+    if (m_gaugePos > m_rangeMax)
+        m_gaugePos = m_rangeMax;
 
-    gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget), ((float)m_gaugePos)/m_rangeMax );
+    DoSetGauge();
 }
 
 void wxGauge::SetValue( int pos )
 {
+    wxCHECK_RET( pos <= m_rangeMax, _T("invalid value in wxGauge::SetValue()") );
+
     m_gaugePos = pos;
-    if (m_gaugePos > m_rangeMax) m_gaugePos = m_rangeMax;
 
-    gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget), ((float)m_gaugePos)/m_rangeMax );
+    DoSetGauge();
 }
 
 int wxGauge::GetRange() const
diff --git a/src/gtk1/glcanvas.cpp b/src/gtk1/glcanvas.cpp
index e46cac9e32..ff037160c6 100644
--- a/src/gtk1/glcanvas.cpp
+++ b/src/gtk1/glcanvas.cpp
@@ -1,12 +1,12 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        glcanvas.cpp
+// Name:        gtk/glcanvas.cpp
 // Purpose:     wxGLCanvas, for using OpenGL/Mesa with wxWindows and GTK
 // Author:      Robert Roebling
 // Modified by:
 // Created:     17/08/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Robert Roebling
-// Licence:   	wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifdef __GNUG__
@@ -24,7 +24,8 @@
 #include "wx/module.h"
 #include "wx/app.h"
 
-extern "C" {
+extern "C"
+{
 #include "gtk/gtk.h"
 #include "gdk/gdk.h"
 #include "gdk/gdkx.h"
@@ -58,16 +59,16 @@ wxGLContext::wxGLContext( bool WXUNUSED(isRGB), wxWindow *win, const wxPalette&
 
     wxGLCanvas *gc = (wxGLCanvas*) win;
     XVisualInfo *vi = (XVisualInfo *) gc->m_vi;
-    
-    wxCHECK_RET( vi, "invalid visual for OpenGl" );
-    
+
+    wxCHECK_RET( vi, _T("invalid visual for OpenGl") );
+
     m_glContext = glXCreateContext( GDK_DISPLAY(), vi, None, GL_TRUE );
-  
-    wxCHECK_RET( m_glContext, "Couldn't create OpenGl context" );
+
+    wxCHECK_RET( m_glContext, _T("Couldn't create OpenGl context") );
 }
 
-wxGLContext::wxGLContext( 
-               bool WXUNUSED(isRGB), wxWindow *win, 
+wxGLContext::wxGLContext(
+               bool WXUNUSED(isRGB), wxWindow *win,
                const wxPalette& WXUNUSED(palette),
                const wxGLContext *other        /* for sharing display lists */
 )
@@ -77,26 +78,28 @@ wxGLContext::wxGLContext(
 
     wxGLCanvas *gc = (wxGLCanvas*) win;
     XVisualInfo *vi = (XVisualInfo *) gc->m_vi;
-    
-    wxCHECK_RET( vi, "invalid visual for OpenGl" );
-    
-    if( other != 0 )
-        m_glContext = glXCreateContext( GDK_DISPLAY(), vi, other->m_glContext, GL_TRUE );
-    else
-        m_glContext = glXCreateContext( GDK_DISPLAY(), vi, None, GL_TRUE );
-    
-    wxCHECK_RET( m_glContext, "Couldn't create OpenGl context" );
+
+    wxCHECK_RET( vi, _T("invalid visual for OpenGl") );
+
+    m_glContext = glXCreateContext( GDK_DISPLAY(), vi,
+                                    other ? other->m_glContext : None,
+                                    GL_TRUE );
+
+    if ( !m_glContext )
+    {
+        wxFAIL_MSG( _T("Couldn't create OpenGl context") );
+    }
 }
 
 wxGLContext::~wxGLContext()
 {
     if (!m_glContext) return;
-    
+
     if (m_glContext == glXGetCurrentContext())
     {
         glXMakeCurrent( GDK_DISPLAY(), None, NULL);
     }
-	
+
     glXDestroyContext( GDK_DISPLAY(), m_glContext );
 }
 
@@ -111,14 +114,14 @@ void wxGLContext::SwapBuffers()
 
 void wxGLContext::SetCurrent()
 {
-    if (m_glContext) 
-    { 
+    if (m_glContext)
+    {
         GdkWindow *window = GTK_PIZZA(m_widget)->bin_window;
         glXMakeCurrent( GDK_DISPLAY(), GDK_WINDOW_XWINDOW(window), m_glContext );
     }
 }
 
-void wxGLContext::SetColour(const char *colour)
+void wxGLContext::SetColour(const wxChar *colour)
 {
     float r = 0.0;
     float g = 0.0;
@@ -185,10 +188,10 @@ gtk_glwindow_map_callback( GtkWidget * WXUNUSED(widget), wxGLCanvas *win )
 // "expose_event" of m_wxwindow
 //-----------------------------------------------------------------------------
 
-static void 
+static void
 gtk_glwindow_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_event, wxGLCanvas *win )
 {
-    if (g_isIdle) 
+    if (g_isIdle)
         wxapp_install_idle_handler();
 
     win->m_exposed = TRUE;
@@ -203,10 +206,10 @@ gtk_glwindow_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_e
 // "draw" of m_wxwindow
 //-----------------------------------------------------------------------------
 
-static void 
+static void
 gtk_glwindow_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxGLCanvas *win )
 {
-    if (g_isIdle) 
+    if (g_isIdle)
         wxapp_install_idle_handler();
 
     win->m_exposed = TRUE;
@@ -219,7 +222,7 @@ gtk_glwindow_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxG
 // "size_allocate" of m_wxwindow
 //-----------------------------------------------------------------------------
 
-static void 
+static void
 gtk_glcanvas_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxGLCanvas *win )
 {
     if (g_isIdle)
@@ -244,77 +247,80 @@ BEGIN_EVENT_TABLE(wxGLCanvas, wxWindow)
 END_EVENT_TABLE()
 
 wxGLCanvas::wxGLCanvas( wxWindow *parent, wxWindowID id,
-                        const wxPoint& pos, const wxSize& size, 
-			long style, const wxString& name,
-                        int *attribList, 
-			const wxPalette& palette )
+                        const wxPoint& pos, const wxSize& size,
+                        long style, const wxString& name,
+                        int *attribList,
+                        const wxPalette& palette )
 {
     Create( parent, NULL, NULL, id, pos, size, style, name, attribList, palette );
 }
 
-wxGLCanvas::wxGLCanvas( wxWindow *parent, 
+wxGLCanvas::wxGLCanvas( wxWindow *parent,
                         const wxGLContext *shared,
                         wxWindowID id,
-                        const wxPoint& pos, const wxSize& size, 
-			long style, const wxString& name,
-                        int *attribList, 
-			const wxPalette& palette )
-{			
+                        const wxPoint& pos, const wxSize& size,
+                        long style, const wxString& name,
+                        int *attribList,
+                        const wxPalette& palette )
+{
     Create( parent, shared, NULL, id, pos, size, style, name, attribList, palette );
 }
 
-wxGLCanvas::wxGLCanvas( wxWindow *parent, 
+wxGLCanvas::wxGLCanvas( wxWindow *parent,
                         const wxGLCanvas *shared,
                         wxWindowID id,
-                        const wxPoint& pos, const wxSize& size, 
-			long style, const wxString& name,
-                        int *attribList, 
-			const wxPalette& palette )
-{			
+                        const wxPoint& pos, const wxSize& size,
+                        long style, const wxString& name,
+                        int *attribList,
+                        const wxPalette& palette )
+{
     Create( parent, NULL, shared, id, pos, size, style, name, attribList, palette );
 }
 
-bool wxGLCanvas::Create( wxWindow *parent, 
+bool wxGLCanvas::Create( wxWindow *parent,
                          const wxGLContext *shared,
                          const wxGLCanvas *shared_context_of,
                          wxWindowID id,
-                         const wxPoint& pos, const wxSize& size, 
-			 long style, const wxString& name,
-                         int *attribList, 
-			 const wxPalette& palette)
+                         const wxPoint& pos, const wxSize& size,
+                         long style, const wxString& name,
+                         int *attribList,
+                         const wxPalette& palette)
 {
     m_sharedContext = (wxGLContext*)shared;  // const_cast
     m_sharedContextOf = (wxGLCanvas*)shared_context_of;  // const_cast
     m_glContext = (wxGLContext*) NULL;
-    
+
     m_exposed = FALSE;
     m_noExpose = TRUE;
     m_nativeSizeEvent = TRUE;
-    
+
     XVisualInfo *vi = NULL;
-    if (wxTheApp->m_glVisualInfo != NULL) {
-        vi = (XVisualInfo *) wxTheApp->m_glVisualInfo; 
+    if (wxTheApp->m_glVisualInfo != NULL)
+    {
+        vi = (XVisualInfo *) wxTheApp->m_glVisualInfo;
         m_canFreeVi = FALSE; // owned by wxTheApp - don't free upon destruction
-    } else {
+    }
+    else
+    {
         vi = (XVisualInfo *) ChooseGLVisual(attribList);
         m_canFreeVi = TRUE;
     }
     m_vi = vi;  // save for later use
-    
-    wxCHECK_MSG( m_vi, FALSE, "required visual couldn't be found" );
+
+    wxCHECK_MSG( m_vi, FALSE, _T("required visual couldn't be found") );
 
     GdkVisual *visual = gdkx_visual_get( vi->visualid );
     GdkColormap *colormap = gdk_colormap_new( gdkx_visual_get(vi->visualid), TRUE );
-    
+
     gtk_widget_push_colormap( colormap );
     gtk_widget_push_visual( visual );
 
     wxWindow::Create( parent, id, pos, size, style, name );
 
     m_glWidget = m_wxwindow;
-    
+
     gtk_pizza_set_clear( GTK_PIZZA(m_wxwindow), FALSE );
-    
+
     gtk_signal_connect( GTK_OBJECT(m_wxwindow), "realize",
                             GTK_SIGNAL_FUNC(gtk_glwindow_realized_callback), (gpointer) this );
 
@@ -326,26 +332,26 @@ bool wxGLCanvas::Create( wxWindow *parent,
 
     gtk_signal_connect( GTK_OBJECT(m_wxwindow), "draw",
         GTK_SIGNAL_FUNC(gtk_glwindow_draw_callback), (gpointer)this );
-	
+
     gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate",
         GTK_SIGNAL_FUNC(gtk_glcanvas_size_callback), (gpointer)this );
 
     gtk_widget_pop_visual();
     gtk_widget_pop_colormap();
-    
+
     if (GTK_WIDGET_REALIZED(m_wxwindow))
         gtk_glwindow_realized_callback( m_wxwindow, this );
-    
+
     if (GTK_WIDGET_MAPPED(m_wxwindow))
         gtk_glwindow_map_callback( m_wxwindow, this );
-    
+
     return TRUE;
 }
 
 wxGLCanvas::~wxGLCanvas()
 {
     XVisualInfo *vi = (XVisualInfo *) m_vi;
-    
+
     if (vi && m_canFreeVi) XFree( vi );
     if (m_glContext) delete m_glContext;
 }
@@ -365,12 +371,12 @@ void* wxGLCanvas::ChooseGLVisual(int *attribList)
         data[10] = GLX_ALPHA_SIZE;  data[11] = 0;
         data[12] = None;
 
-	attribList = (int*) data;
+        attribList = (int*) data;
     }
     else
     {
       int arg=0, p=0;
-       
+
       while( (attribList[arg]!=0) && (p<510) )
       {
         switch( attribList[arg++] )
@@ -392,9 +398,9 @@ void* wxGLCanvas::ChooseGLVisual(int *attribList)
             data[p++]=GLX_BLUE_SIZE; data[p++]=attribList[arg++]; break;
           case WX_GL_MIN_ALPHA:
             data[p++]=GLX_ALPHA_SIZE; data[p++]=attribList[arg++]; break;
-          case WX_GL_DEPTH_SIZE: 
+          case WX_GL_DEPTH_SIZE:
             data[p++]=GLX_DEPTH_SIZE; data[p++]=attribList[arg++]; break;
-          case WX_GL_STENCIL_SIZE: 
+          case WX_GL_STENCIL_SIZE:
             data[p++]=GLX_STENCIL_SIZE; data[p++]=attribList[arg++]; break;
           case WX_GL_MIN_ACCUM_RED:
             data[p++]=GLX_ACCUM_RED_SIZE; data[p++]=attribList[arg++]; break;
@@ -407,21 +413,22 @@ void* wxGLCanvas::ChooseGLVisual(int *attribList)
           default:
             break;
         }
-      }       
-      data[p] = 0; 
+      }
+      data[p] = 0;
 
       attribList = (int*) data;
     }
-    
-    
+
+
     Display *dpy = GDK_DISPLAY();
-    
+
     return glXChooseVisual( dpy, DefaultScreen(dpy), attribList );
 }
 
 void wxGLCanvas::SwapBuffers()
 {
-    if (m_glContext) m_glContext->SwapBuffers();
+    if (m_glContext)
+        m_glContext->SwapBuffers();
 }
 
 void wxGLCanvas::OnSize(wxSizeEvent& WXUNUSED(event))
@@ -430,12 +437,14 @@ void wxGLCanvas::OnSize(wxSizeEvent& WXUNUSED(event))
 
 void wxGLCanvas::SetCurrent()
 {
-    if (m_glContext) m_glContext->SetCurrent();
+    if (m_glContext)
+        m_glContext->SetCurrent();
 }
 
-void wxGLCanvas::SetColour( const char *colour )
+void wxGLCanvas::SetColour( const wxChar *colour )
 {
-    if (m_glContext) m_glContext->SetColour( colour );
+    if (m_glContext)
+        m_glContext->SetColour( colour );
 }
 
 void wxGLCanvas::OnInternalIdle()
@@ -449,7 +458,7 @@ void wxGLCanvas::OnInternalIdle()
         m_exposed = FALSE;
         GetUpdateRegion().Clear();
     }
-    
+
     wxWindow::OnInternalIdle();
 }
 
@@ -460,17 +469,21 @@ void wxGLCanvas::OnInternalIdle()
 //---------------------------------------------------------------------------
 
 IMPLEMENT_CLASS(wxGLApp, wxApp)
-        
+
 wxGLApp::~wxGLApp()
 {
-    if (m_glVisualInfo) XFree(m_glVisualInfo);
+    if (m_glVisualInfo)
+        XFree(m_glVisualInfo);
 }
 
 bool wxGLApp::InitGLVisual(int *attribList)
 {
-    if (m_glVisualInfo) XFree(m_glVisualInfo);
+    if (m_glVisualInfo)
+        XFree(m_glVisualInfo);
+
     m_glVisualInfo = wxGLCanvas::ChooseGLVisual(attribList);
-    return (m_glVisualInfo != NULL);
+
+    return m_glVisualInfo != NULL;
 }
 
 #endif
diff --git a/src/gtk1/listbox.cpp b/src/gtk1/listbox.cpp
index 3ad658a264..46808ec081 100644
--- a/src/gtk1/listbox.cpp
+++ b/src/gtk1/listbox.cpp
@@ -1057,7 +1057,7 @@ wxSize wxListBox::DoGetBestSize() const
 
     // And just a bit more
     int cx, cy;
-    GetTextExtent("X", &cx, &cy);
+    GetTextExtent( wxT("X"), &cx, &cy);
     lbWidth += 3 * cx;
 
     // don't make the listbox too tall (limit height to around 10 items) but don't
diff --git a/src/gtk1/menu.cpp b/src/gtk1/menu.cpp
index 886522158e..3701f416ee 100644
--- a/src/gtk1/menu.cpp
+++ b/src/gtk1/menu.cpp
@@ -113,9 +113,16 @@ static wxString wxReplaceUnderscore( const wxString& title )
 
     /* GTK 1.2 wants to have "_" instead of "&" for accelerators */
     wxString str;
-    for ( pc = title; *pc != wxT('\0'); pc++ )
+    pc = title;
+    while (*pc != wxT('\0'))
     {
-        if (*pc == wxT('&'))
+        if ((*pc == wxT('&')) && (*(pc+1) == wxT('&')))
+        {
+            // "&" is doubled to indicate "&" instead of accelerator
+            ++pc;
+            str << wxT('&');
+        }
+        else if (*pc == wxT('&'))
         {
 #if GTK_CHECK_VERSION(1, 2, 0)
             str << wxT('_');
@@ -149,6 +156,7 @@ static wxString wxReplaceUnderscore( const wxString& title )
 
             str << *pc;
         }
+        ++pc;
     }
     return str;
 }
@@ -385,10 +393,23 @@ bool wxMenuBar::GtkAppend(wxMenu *menu, const wxString& title)
 #endif
 
     // m_invokingWindow is set after wxFrame::SetMenuBar(). This call enables
-    // adding menu later on.
+    // addings menu later on.
     if (m_invokingWindow)
+    {
         wxMenubarSetInvokingWindow( menu, m_invokingWindow );
 
+            // OPTIMISE ME:  we should probably cache this, or pass it
+            //               directly, but for now this is a minimal
+            //               change to validate the new dynamic sizing.
+            //               see (and refactor :) similar code in Remove
+            //               below.
+
+        wxFrame	*frame = wxDynamicCast( m_invokingWindow, wxFrame );
+
+        if( frame )
+            frame->UpdateMenuBarSize();
+    }
+
     return TRUE;
 }
 
@@ -452,6 +473,16 @@ wxMenu *wxMenuBar::Remove(size_t pos)
     printf( "menu shell entries after %d\n", (int)g_list_length( menu_shell->children ) );
 */
 
+    if (m_invokingWindow)
+    {
+            // OPTIMISE ME:  see comment in GtkAppend
+
+	wxFrame	*frame = wxDynamicCast( m_invokingWindow, wxFrame );
+
+	if( frame )
+            frame->UpdateMenuBarSize();
+    }
+
     return menu;
 }
 
@@ -554,10 +585,9 @@ wxString wxMenuBar::GetLabelTop( size_t pos ) const
     wxString text( menu->GetTitle() );
     for ( const wxChar *pc = text.c_str(); *pc; pc++ )
     {
-        if ( *pc == wxT('_') || *pc == wxT('&') )
+        if ( *pc == wxT('_') )
         {
-            // '_' is the escape character for GTK+ and '&' is the one for
-            // wxWindows - skip both of them
+            // '_' is the escape character for GTK+
             continue;
         }
 
@@ -750,17 +780,21 @@ wxString wxMenuItemBase::GetLabelFromText(const wxString& text)
     {
         if ( *pc == wxT('_')  )
         {
-            // wxGTK escapes "xxx_xxx" to "xxx__xxx"
+            // GTK 1.2 escapes "xxx_xxx" to "xxx__xxx"
             pc++;
             label += *pc;
             continue;
         }
 
-        if ( *pc == wxT('&') )
+#if GTK_CHECK_VERSION(2, 0, 0)
+        if ( *pc == wxT('\\')  )
         {
-            // wxMSW escapes &
+            // GTK 2.0 escapes "xxx/xxx" to "xxx\/xxx"
+            pc++;
+            label += *pc;
             continue;
         }
+#endif
 
         label += *pc;
     }
@@ -784,42 +818,54 @@ void wxMenuItem::SetText( const wxString& str )
     {
         GtkLabel *label;
         if (m_labelWidget)
-          label = (GtkLabel*) m_labelWidget;
+            label = (GtkLabel*) m_labelWidget;
         else
-          label = GTK_LABEL( GTK_BIN(m_menuItem)->child );
+            label = GTK_LABEL( GTK_BIN(m_menuItem)->child );
 
-        /* set new text */
+#if GTK_CHECK_VERSION(2, 0, 0)
+        // We have to imitate item_factory_unescape_label here
+        wxString tmp;
+        for (size_t n = 0; n < m_text.Len(); n++)
+        {
+            if (m_text[n] != wxT('\\'))
+                tmp += m_text[n];
+        }
+        
+        gtk_label_set_text_with_mnemonic( GTK_LABEL(label), wxGTK_CONV(tmp) );
+#else
+        // set new text
         gtk_label_set( label, wxGTK_CONV( m_text ) );
 
-        /* reparse key accel */
-        (void)gtk_label_parse_uline (GTK_LABEL(label), wxGTK_CONV( m_text ) );
+        // reparse key accel
+        (void)gtk_label_parse_uline (GTK_LABEL(label), wxGTK_CONV(m_text) );
         gtk_accel_label_refetch( GTK_ACCEL_LABEL(label) );
+#endif
     }
 }
 
 // it's valid for this function to be called even if m_menuItem == NULL
 void wxMenuItem::DoSetText( const wxString& str )
 {
-    /* '\t' is the deliminator indicating a hot key */
+    // '\t' is the deliminator indicating a hot key
     m_text.Empty();
     const wxChar *pc = str;
-    for (; (*pc != wxT('\0')) && (*pc != wxT('\t')); pc++ )
+    while ( (*pc != wxT('\0')) && (*pc != wxT('\t')) )
     {
-#if GTK_CHECK_VERSION(1, 2, 0)
-        if (*pc == wxT('&'))
+        if ((*pc == wxT('&')) && (*(pc+1) == wxT('&')))
         {
-            m_text << wxT('_');
+            // "&" is doubled to indicate "&" instead of accelerator
+            ++pc;
+            m_text << wxT('&');
         }
-        else if ( *pc == wxT('_') )    // escape underscores
+        else if (*pc == wxT('&'))
         {
-            m_text << wxT("__");
+            m_text << wxT('_');
         }
-#else // GTK+ < 1.2.0
-        if (*pc == wxT('&'))
+#if GTK_CHECK_VERSION(2, 0, 0)
+        else if ( *pc == wxT('_') )    // escape underscores
         {
+            // m_text << wxT("__");    doesn't work
         }
-#endif
-#if GTK_CHECK_VERSION(2, 0, 0)
         else if (*pc == wxT('/'))      // we have to escape slashes
         {
             m_text << wxT("\\/");
@@ -828,16 +874,22 @@ void wxMenuItem::DoSetText( const wxString& str )
         {
             m_text << wxT("\\\\");
         }
-#elif GTK_CHECK_VERSION(1, 2, 0)
+#else
+        else if ( *pc == wxT('_') )    // escape underscores
+        {
+            m_text << wxT("__");
+        }
         else if (*pc == wxT('/'))      /* we have to filter out slashes ... */
         {
             m_text << wxT('\\');  /* ... and replace them with back slashes */
         }
 #endif
-        else
+        else {
             m_text << *pc;
+        }
+        ++pc;
     }
-
+    
     m_hotKey = wxT("");
 
     if(*pc == wxT('\t'))
@@ -913,9 +965,9 @@ wxString wxMenuItem::GetFactoryPath() const
 
     for ( const wxChar *pc = m_text.c_str(); *pc; pc++ )
     {
-        if ( *pc == wxT('_') || *pc == wxT('&') )
+        if ( *pc == wxT('_') )
         {
-            // remove '_' and '&' unconditionally
+            // remove '_' unconditionally
             continue;
         }
 
@@ -1042,7 +1094,7 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem)
         guint accel_key = gtk_label_parse_uline (GTK_LABEL(label), wxGTK_CONV( text ) );
         gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (label), menuItem);
         if (accel_key != GDK_VoidSymbol)
-            {
+        {
             gtk_widget_add_accelerator (menuItem,
                                         "activate_item",
                                         gtk_menu_ensure_uline_accel_group (GTK_MENU (m_menu)),
@@ -1060,6 +1112,7 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem)
         gtk_signal_connect( GTK_OBJECT(menuItem), "activate",
                             GTK_SIGNAL_FUNC(gtk_menu_clicked_callback),
                             (gpointer)this );
+                            
         gtk_menu_append( GTK_MENU(m_menu), menuItem );
         gtk_widget_show( menuItem );
 
@@ -1097,7 +1150,9 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem)
                 {
                     // start of a new radio group
                     item_type = "<RadioItem>";
-                    m_pathLastRadio = bufPath + 1;
+                    wxString tmp( wxGTK_CONV_BACK( bufPath ) );
+                    tmp.Remove(0,1);
+                    m_pathLastRadio = tmp;
                 }
                 else // continue the radio group
                 {
@@ -1143,10 +1198,15 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem)
 
         wxString path( mitem->GetFactoryPath() );
         menuItem = gtk_item_factory_get_widget( m_factory, wxGTK_CONV( path ) );
+        
+        if (!menuItem)
+            wxLogError( wxT("Wrong menu path: %s\n"), path.c_str() );
     }
 
     if ( !mitem->IsSeparator() )
     {
+        wxASSERT_MSG( menuItem, wxT("invalid menuitem") );
+    
         gtk_signal_connect( GTK_OBJECT(menuItem), "select",
                             GTK_SIGNAL_FUNC(gtk_menu_hilight_callback),
                             (gpointer)this );
@@ -1283,6 +1343,33 @@ static wxString GetHotKey( const wxMenuItem& item )
             case WXK_DELETE:
                 hotkey << wxT("Delete" );
                 break;
+            case WXK_UP:
+                hotkey << wxT("Up" );
+                break;
+            case WXK_DOWN:
+                hotkey << wxT("Down" );
+                break;
+            case WXK_PAGEUP:
+                hotkey << wxT("Prior" );
+                break;
+            case WXK_PAGEDOWN:
+                hotkey << wxT("Next" );
+                break;
+            case WXK_LEFT:
+                hotkey << wxT("Left" );
+                break;
+            case WXK_RIGHT:
+                hotkey << wxT("Right" );
+                break;
+            case WXK_HOME:
+                hotkey << wxT("Home" );
+                break;
+            case WXK_END:
+                hotkey << wxT("End" );
+                break;
+            case WXK_RETURN:
+                hotkey << wxT("Return" );
+                break;
 
                 // if there are any other keys wxGetAccelFromString() may
                 // return, we should process them here
@@ -1290,7 +1377,7 @@ static wxString GetHotKey( const wxMenuItem& item )
             default:
                 if ( code < 127 )
                 {
-                    gchar *name = gdk_keyval_name((guint)code);
+                    wxString name = wxGTK_CONV_BACK( gdk_keyval_name((guint)code) );
                     if ( name )
                     {
                         hotkey << name;
diff --git a/src/gtk1/notebook.cpp b/src/gtk1/notebook.cpp
index fe5e541720..4439cbae46 100644
--- a/src/gtk1/notebook.cpp
+++ b/src/gtk1/notebook.cpp
@@ -86,14 +86,12 @@ static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
                                               gint page,
                                               wxNotebook *notebook )
 {
-    static bool s_inPageChange = FALSE;
-
     // are you trying to call SetSelection() from a notebook event handler?
     // you shouldn't!
-    wxCHECK_RET( !s_inPageChange,
+    wxCHECK_RET( !notebook->m_inSwitchPage,
                  _T("gtk_notebook_page_change_callback reentered") );
 
-    s_inPageChange = TRUE;
+    notebook->m_inSwitchPage = TRUE;
     if (g_isIdle)
         wxapp_install_idle_handler();
 
@@ -123,7 +121,7 @@ static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget),
         notebook->GetEventHandler()->ProcessEvent( eventChanged );
     }
 
-    s_inPageChange = FALSE;
+    notebook->m_inSwitchPage = FALSE;
 }
 
 //-----------------------------------------------------------------------------
@@ -236,6 +234,8 @@ END_EVENT_TABLE()
 void wxNotebook::Init()
 {
     m_padding = 0;
+    m_inSwitchPage = FALSE;
+
     m_imageList = (wxImageList *) NULL;
     m_pagesData.DeleteContents( TRUE );
     m_selection = -1;
diff --git a/src/gtk1/popupwin.cpp b/src/gtk1/popupwin.cpp
index 923a68bbd1..236a69d036 100644
--- a/src/gtk1/popupwin.cpp
+++ b/src/gtk1/popupwin.cpp
@@ -160,7 +160,7 @@ bool wxPopupWindow::Create( wxWindow *parent, int style )
     m_needParent = FALSE;
 
     if (!PreCreation( parent, wxDefaultPosition, wxDefaultSize ) ||
-        !CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, "popup" ))
+        !CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, wxT("popup") ))
     {
         wxFAIL_MSG( wxT("wxPopupWindow creation failed") );
         return FALSE;
diff --git a/src/gtk1/radiobox.cpp b/src/gtk1/radiobox.cpp
index 26240cc004..5bc55111c2 100644
--- a/src/gtk1/radiobox.cpp
+++ b/src/gtk1/radiobox.cpp
@@ -418,7 +418,7 @@ bool wxRadioBox::Show( bool show )
     return TRUE;
 }
 
-int wxRadioBox::FindString( const wxString &s ) const
+int wxRadioBox::FindString( const wxString &find ) const
 {
     wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid radiobox") );
 
@@ -428,7 +428,12 @@ int wxRadioBox::FindString( const wxString &s ) const
     while (node)
     {
         GtkLabel *label = GTK_LABEL( BUTTON_CHILD(node->Data()) );
-        if (s == label->label)
+#ifdef __WXGTK20__
+        wxString str( wxGTK_CONV_BACK( gtk_label_get_text(label) ) );
+#else
+        wxString str( label->label );
+#endif
+        if (find == str)
             return count;
 
         count++;
@@ -505,7 +510,13 @@ wxString wxRadioBox::GetString( int n ) const
 
     GtkLabel *label = GTK_LABEL( BUTTON_CHILD(node->Data()) );
 
-    return wxString( label->label );
+#ifdef __WXGTK20__
+    wxString str( wxGTK_CONV_BACK( gtk_label_get_text(label) ) );
+#else
+    wxString str( label->label );
+#endif
+
+    return str;
 }
 
 void wxRadioBox::SetLabel( const wxString& label )
@@ -592,7 +603,12 @@ wxString wxRadioBox::GetStringSelection() const
         {
             GtkLabel *label = GTK_LABEL( BUTTON_CHILD(node->Data()) );
 
-            return label->label;
+#ifdef __WXGTK20__
+            wxString str( wxGTK_CONV_BACK( gtk_label_get_text(label) ) );
+#else
+            wxString str( label->label );
+#endif
+            return str;
         }
         node = node->Next();
     }
diff --git a/src/gtk1/region.cpp b/src/gtk1/region.cpp
index 7ca7653e2a..f9ac057cbe 100644
--- a/src/gtk1/region.cpp
+++ b/src/gtk1/region.cpp
@@ -191,25 +191,20 @@ bool wxRegion::Union( wxCoord x, wxCoord y, wxCoord width, wxCoord height )
     if ( !width || !height )
         return TRUE;
 
-    GdkRectangle rect;
-    rect.x = x;
-    rect.y = y;
-    rect.width = width;
-    rect.height = height;
-
-    if (!m_refData)
+    if ( !m_refData )
     {
-        m_refData = new wxRegionRefData();
-#ifdef __WXGTK20__
-        M_REGIONDATA->m_region = gdk_region_rectangle( &rect );
-#else
-        M_REGIONDATA->m_region = gdk_region_union_with_rect(wxGdkRegion(), &rect);
-#endif
+        InitRect(x, y, width, height);
     }
     else
     {
         AllocExclusive();
 
+        GdkRectangle rect;
+        rect.x = x;
+        rect.y = y;
+        rect.width = width;
+        rect.height = height;
+
 #ifdef __WXGTK20__
         gdk_region_union_with_rect( M_REGIONDATA->m_region, &rect );
 #else
@@ -274,17 +269,12 @@ bool wxRegion::Intersect( const wxRegion& region )
 
     if (!m_refData)
     {
-        m_refData = new wxRegionRefData();
-        M_REGIONDATA->m_region = gdk_region_new();
-
-        // leave here
-        return TRUE;
-    }
-    else
-    {
-        AllocExclusive();
+        // intersecting with invalid region doesn't make sense
+        return FALSE;
     }
 
+    AllocExclusive();
+
 #ifdef __WXGTK20__
     gdk_region_intersect( M_REGIONDATA->m_region, region.GetRegion() );
 #else
@@ -315,14 +305,12 @@ bool wxRegion::Subtract( const wxRegion& region )
 
     if (!m_refData)
     {
-        m_refData = new wxRegionRefData();
-        M_REGIONDATA->m_region = gdk_region_new();
-    }
-    else
-    {
-        AllocExclusive();
+        // subtracting from an invalid region doesn't make sense
+        return FALSE;
     }
 
+    AllocExclusive();
+
 #ifdef __WXGTK20__
     gdk_region_subtract( M_REGIONDATA->m_region, region.GetRegion() );
 #else
@@ -353,14 +341,11 @@ bool wxRegion::Xor( const wxRegion& region )
 
     if (!m_refData)
     {
-        m_refData = new wxRegionRefData();
-        M_REGIONDATA->m_region = gdk_region_new();
-    }
-    else
-    {
-        AllocExclusive();
+        return FALSE;
     }
 
+    AllocExclusive();
+
 #ifdef __WXGTK20__
     gdk_region_xor( M_REGIONDATA->m_region, region.GetRegion() );
 #else
@@ -372,6 +357,18 @@ bool wxRegion::Xor( const wxRegion& region )
     return TRUE;
 }
 
+bool wxRegion::Offset( wxCoord x, wxCoord y )
+{
+    if (!m_refData)
+        return FALSE;
+
+    AllocExclusive();
+
+    gdk_region_offset( M_REGIONDATA->m_region, x, y );
+
+    return TRUE;
+}
+
 // ----------------------------------------------------------------------------
 // wxRegion tests
 // ----------------------------------------------------------------------------
@@ -403,18 +400,6 @@ wxRect wxRegion::GetBox() const
     return wxRect( x, y, w, h );
 }
 
-bool wxRegion::Offset( wxCoord x, wxCoord y )
-{
-    if (!m_refData)
-        return FALSE;
-
-    AllocExclusive();
-
-    gdk_region_offset( M_REGIONDATA->m_region, x, y );
-
-    return TRUE;
-}
-
 bool wxRegion::Empty() const
 {
     if (!m_refData)
@@ -495,7 +480,7 @@ struct _XRegion {
     _XBox *rects, extents;
 };
 
-#endif
+#endif // GTK+ 1.x
 
 class wxRIRefData: public wxObjectRefData
 {
@@ -592,42 +577,48 @@ bool wxRegionIterator::HaveRects() const
     return m_current < ((wxRIRefData*)m_refData)->m_numRects;
 }
 
-wxRegionIterator::operator bool () const
+wxRegionIterator& wxRegionIterator::operator ++ ()
 {
-    return HaveRects();
-}
+    if (HaveRects())
+        ++m_current;
 
-void wxRegionIterator::operator ++ ()
-{
-    if (HaveRects()) ++m_current;
+    return *this;
 }
 
-void wxRegionIterator::operator ++ (int)
+wxRegionIterator wxRegionIterator::operator ++ (int)
 {
-    if (HaveRects()) ++m_current;
+    wxRegionIterator tmp = *this;
+    if (HaveRects())
+        ++m_current;
+
+    return tmp;
 }
 
 wxCoord wxRegionIterator::GetX() const
 {
-    if( !HaveRects() ) return 0;
+    wxCHECK_MSG( HaveRects(), 0, _T("invalid wxRegionIterator") );
+
     return ((wxRIRefData*)m_refData)->m_rects[m_current].x;
 }
 
 wxCoord wxRegionIterator::GetY() const
 {
-    if( !HaveRects() ) return 0;
+    wxCHECK_MSG( HaveRects(), 0, _T("invalid wxRegionIterator") );
+
     return ((wxRIRefData*)m_refData)->m_rects[m_current].y;
 }
 
 wxCoord wxRegionIterator::GetW() const
 {
-    if( !HaveRects() ) return -1;
+    wxCHECK_MSG( HaveRects(), 0, _T("invalid wxRegionIterator") );
+
     return ((wxRIRefData*)m_refData)->m_rects[m_current].width;
 }
 
 wxCoord wxRegionIterator::GetH() const
 {
-    if( !HaveRects() ) return -1;
+    wxCHECK_MSG( HaveRects(), 0, _T("invalid wxRegionIterator") );
+
     return ((wxRIRefData*)m_refData)->m_rects[m_current].height;
 }
 
diff --git a/src/gtk1/scrolwin.cpp b/src/gtk1/scrolwin.cpp
index a072691442..a18ec663f7 100644
--- a/src/gtk1/scrolwin.cpp
+++ b/src/gtk1/scrolwin.cpp
@@ -313,7 +313,7 @@ bool wxScrolledWindow::Create(wxWindow *parent,
     PostCreation();
 
     Show( TRUE );
-
+    
     return TRUE;
 }
 
@@ -349,8 +349,12 @@ void wxScrolledWindow::SetScrollbars( int pixelsPerUnitX, int pixelsPerUnitY,
     m_hAdjust->value = m_xScrollPosition = xPos;
     m_vAdjust->value = m_yScrollPosition = yPos;
 
+    // Setting hints here should arguably be deprecated, but without it
+    // a sizer might override this manual scrollbar setting in old code.
     m_targetWindow->SetVirtualSizeHints( noUnitsX * pixelsPerUnitX, noUnitsY * pixelsPerUnitY );
 
+    m_targetWindow->SetVirtualSize( noUnitsX * pixelsPerUnitX, noUnitsY * pixelsPerUnitY );
+
     if (!noRefresh)
     {
         int new_x = m_xScrollPixelsPerLine * m_xScrollPosition;
@@ -381,13 +385,16 @@ void wxScrolledWindow::AdjustScrollbars()
         // If the scrollbar hits the right side, move the window
         // right to keep it from over extending.
 
-        if( m_hAdjust->value + m_hAdjust->page_size > m_hAdjust->upper )
+        if ((m_hAdjust->value != 0.0) && (m_hAdjust->value + m_hAdjust->page_size > m_hAdjust->upper))
         {
+            m_hAdjust->value = m_hAdjust->upper - m_hAdjust->page_size;
+            if (m_hAdjust->value < 0.0)
+                m_hAdjust->value = 0.0;
+                
             if (GetChildren().GetCount() == 0)
-            {
-                m_hAdjust->value = m_hAdjust->upper - m_hAdjust->page_size;
-                m_xScrollPosition = (int)m_hAdjust->value;
-            }
+                m_xScrollPosition = (int)m_hAdjust->value; // This is enough without child windows
+            else
+                gtk_signal_emit_by_name( GTK_OBJECT(m_hAdjust), "value_changed" ); // Actually scroll window
         }
     }
 
@@ -401,13 +408,16 @@ void wxScrolledWindow::AdjustScrollbars()
         m_vAdjust->upper = vh / m_yScrollPixelsPerLine;
         m_vAdjust->page_size = (h / m_yScrollPixelsPerLine);
 
-        if( m_vAdjust->value + m_vAdjust->page_size > m_vAdjust->upper )
+        if ((m_vAdjust->value != 0.0) && (m_vAdjust->value + m_vAdjust->page_size > m_vAdjust->upper))
         {
+            m_vAdjust->value = m_vAdjust->upper - m_vAdjust->page_size;
+            if (m_vAdjust->value < 0.0)
+                m_vAdjust->value = 0.0;
+                
             if (GetChildren().GetCount() == 0)
-            {
-                m_vAdjust->value = m_vAdjust->upper - m_vAdjust->page_size;
-                m_yScrollPosition = (int)m_vAdjust->value;
-            }
+                m_yScrollPosition = (int)m_vAdjust->value;  
+            else
+                gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "value_changed" );
         }
     }
 
@@ -823,10 +833,17 @@ bool wxScrolledWindow::Layout()
 // Default OnSize resets scrollbars, if any
 void wxScrolledWindow::OnSize(wxSizeEvent& WXUNUSED(event))
 {
-    if( m_targetWindow != this )
-        m_targetWindow->SetVirtualSize( m_targetWindow->GetClientSize() );
+    if( GetAutoLayout() )
+    {
+        if( m_targetWindow != this )
+            m_targetWindow->FitInside();
 
-    SetVirtualSize( GetClientSize() );
+        FitInside();
+    }
+    else
+    {
+        AdjustScrollbars();
+    }
 }
 
 // This calls OnDraw, having adjusted the origin according to the current
@@ -849,7 +866,7 @@ void wxScrolledWindow::OnChar(wxKeyEvent& event)
         szx, szy,       // view size (total)
         clix, cliy;     // view size (on screen)
 
-    ViewStart(&stx, &sty);
+    GetViewStart(&stx, &sty);
     GetClientSize(&clix, &cliy);
     GetVirtualSize(&szx, &szy);
 
diff --git a/src/gtk1/settings.cpp b/src/gtk1/settings.cpp
index 9aed45b5a9..736ed76aba 100644
--- a/src/gtk1/settings.cpp
+++ b/src/gtk1/settings.cpp
@@ -16,6 +16,7 @@
 #include "wx/debug.h"
 #include "wx/module.h"
 #include "wx/cmndata.h"
+#include "wx/fontutil.h"
 
 #include <gdk/gdk.h>
 #include <gdk/gdkprivate.h>
@@ -326,8 +327,25 @@ wxFont wxSystemSettingsNative::GetFont( wxSystemFont index )
         {
             if (!g_systemFont)
             {
+#ifdef __WXGTK20__
+                GtkWidget *widget = gtk_button_new();
+                GtkStyle *def = gtk_rc_get_style( widget );
+                if (!def)
+                    def = gtk_widget_get_default_style();
+                if (def)
+                {
+                    wxNativeFontInfo info;
+                    info.description = def->font_desc;
+                    g_systemFont = new wxFont(info);
+                }
+                else
+                {
+                   g_systemFont = new wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL );
+                }
+                gtk_widget_destroy( widget );
+#else
                 g_systemFont = new wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL );
-
+#endif
             }
             return *g_systemFont;
         }
diff --git a/src/gtk1/slider.cpp b/src/gtk1/slider.cpp
index 9f59575679..799f21d2b1 100644
--- a/src/gtk1/slider.cpp
+++ b/src/gtk1/slider.cpp
@@ -255,14 +255,15 @@ int wxSlider::GetLineSize() const
 bool wxSlider::IsOwnGtkWindow( GdkWindow *window )
 {
     GtkRange *range = GTK_RANGE(m_widget);
+#ifdef __WXGTK20__
+    return (range->event_window == window);
+#else
     return ( (window == GTK_WIDGET(range)->window)
-#ifndef __WXGTK20__
                 || (window == range->trough)
                 || (window == range->slider)
                 || (window == range->step_forw)
-                || (window == range->step_back)
-#endif // GTK+ 1.x
-           );
+                || (window == range->step_back) );
+#endif
 }
 
 void wxSlider::ApplyWidgetStyle()
diff --git a/src/gtk1/tbargtk.cpp b/src/gtk1/tbargtk.cpp
index 235319eb16..d05f2cddfb 100644
--- a/src/gtk1/tbargtk.cpp
+++ b/src/gtk1/tbargtk.cpp
@@ -278,6 +278,10 @@ bool wxToolBar::Create( wxWindow *parent,
 #ifdef __WXGTK20__
     m_toolbar = GTK_TOOLBAR( gtk_toolbar_new() );
     GtkSetStyle();
+    
+    // Doesn't work this way.
+    // GtkToolbarSpaceStyle space_style = GTK_TOOLBAR_SPACE_EMPTY;
+    // gtk_widget_style_set (GTK_WIDGET (m_toolbar), "space_style", &space_style, NULL);
 #else
     GtkOrientation orient;
     GtkToolbarStyle gtkStyle;
@@ -374,37 +378,44 @@ bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase)
 {
     wxToolBarTool *tool = (wxToolBarTool *)toolBase;
 
+#ifndef __WXGTK20__
     // if we have inserted a space before all the tools we must change the GTK
     // index by 1
     size_t posGtk = m_xMargin > 1 ? pos + 1 : pos;
+#else
+    size_t posGtk = pos;
+#endif
 
     if ( tool->IsButton() )
     {
-        wxBitmap bitmap = tool->GetNormalBitmap();
+        if ( !HasFlag(wxTB_NOICONS) )
+        {
+            wxBitmap bitmap = tool->GetNormalBitmap();
 
-        wxCHECK_MSG( bitmap.Ok(), FALSE,
-                     wxT("invalid bitmap for wxToolBar icon") );
+            wxCHECK_MSG( bitmap.Ok(), FALSE,
+                         wxT("invalid bitmap for wxToolBar icon") );
 
-        wxCHECK_MSG( bitmap.GetBitmap() == NULL, FALSE,
-                     wxT("wxToolBar doesn't support GdkBitmap") );
+            wxCHECK_MSG( bitmap.GetBitmap() == NULL, FALSE,
+                         wxT("wxToolBar doesn't support GdkBitmap") );
 
-        wxCHECK_MSG( bitmap.GetPixmap() != NULL, FALSE,
-                     wxT("wxToolBar::Add needs a wxBitmap") );
+            wxCHECK_MSG( bitmap.GetPixmap() != NULL, FALSE,
+                         wxT("wxToolBar::Add needs a wxBitmap") );
 
-        GtkWidget *tool_pixmap = (GtkWidget *)NULL;
+            GtkWidget *tool_pixmap = (GtkWidget *)NULL;
 
-        GdkPixmap *pixmap = bitmap.GetPixmap();
+            GdkPixmap *pixmap = bitmap.GetPixmap();
 
-        GdkBitmap *mask = (GdkBitmap *)NULL;
-        if ( bitmap.GetMask() )
-          mask = bitmap.GetMask()->GetBitmap();
+            GdkBitmap *mask = (GdkBitmap *)NULL;
+            if ( bitmap.GetMask() )
+              mask = bitmap.GetMask()->GetBitmap();
 
-        tool_pixmap = gtk_pixmap_new( pixmap, mask );
-        gtk_pixmap_set_build_insensitive( GTK_PIXMAP(tool_pixmap), TRUE );
+            tool_pixmap = gtk_pixmap_new( pixmap, mask );
+            gtk_pixmap_set_build_insensitive( GTK_PIXMAP(tool_pixmap), TRUE );
 
-        gtk_misc_set_alignment( GTK_MISC(tool_pixmap), 0.5, 0.5 );
+            gtk_misc_set_alignment( GTK_MISC(tool_pixmap), 0.5, 0.5 );
 
-        tool->m_pixmap = tool_pixmap;
+            tool->m_pixmap = tool_pixmap;
+        }
     }
 
     switch ( tool->GetStyle() )
@@ -464,7 +475,7 @@ bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase)
 
                     return FALSE;
                 }
-
+                
                 gtk_signal_connect( GTK_OBJECT(tool->m_item),
                                     "enter_notify_event",
                                     GTK_SIGNAL_FUNC(gtk_toolbar_tool_callback),
@@ -587,8 +598,10 @@ void wxToolBar::SetMargins( int x, int y )
     wxCHECK_RET( GetToolsCount() == 0,
                  wxT("wxToolBar::SetMargins must be called before adding tools.") );
 
+#ifndef __WXGTK20__
     if (x > 1)
         gtk_toolbar_append_space( m_toolbar );  // oh well
+#endif
 
     m_xMargin = x;
     m_yMargin = y;
diff --git a/src/gtk1/textctrl.cpp b/src/gtk1/textctrl.cpp
index 034a4cce4a..d449dcfb75 100644
--- a/src/gtk1/textctrl.cpp
+++ b/src/gtk1/textctrl.cpp
@@ -475,7 +475,7 @@ wxString wxTextCtrl::GetValue() const
         GtkTextIter end;
         gtk_text_buffer_get_end_iter( text_buffer, &end );
         gchar *text = gtk_text_buffer_get_text( text_buffer, &start, &end, TRUE );
-
+        
 #if wxUSE_UNICODE
         wxWCharBuffer buffer( wxConvUTF8.cMB2WX( text ) );
 #else
@@ -552,6 +552,7 @@ void wxTextCtrl::WriteText( const wxString &text )
         wxCharBuffer buffer( wxConvUTF8.cWC2MB( wxConvLocal.cWX2WC( text ) ) );
 #endif
         GtkTextBuffer *text_buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(m_text) );
+        // TODO: call wahtever is needed to delete the selection
         gtk_text_buffer_insert_at_cursor( text_buffer, buffer, strlen(buffer) );
 
 #else // GTK 1.x
@@ -561,6 +562,7 @@ void wxTextCtrl::WriteText( const wxString &text )
         // always use m_defaultStyle, even if it is empty as otherwise
         // resetting the style and appending some more text wouldn't work: if
         // we don't specify the style explicitly, the old style would be used
+        gtk_editable_delete_selection( GTK_EDITABLE(m_text) );
         wxGtkTextInsert(m_text, m_defaultStyle, text.c_str(), text.Len());
 
         // Bring editable's cursor back uptodate.
@@ -569,6 +571,9 @@ void wxTextCtrl::WriteText( const wxString &text )
     }
     else // single line
     {
+        // First remove the selection if there is one
+        gtk_editable_delete_selection( GTK_EDITABLE(m_text) );
+
         // This moves the cursor pos to behind the inserted text.
         gint len = GET_EDITABLE_POS(m_text);
 
@@ -585,9 +590,6 @@ void wxTextCtrl::WriteText( const wxString &text )
         gtk_editable_insert_text( GTK_EDITABLE(m_text), text.c_str(), text.Len(), &len );
 #endif
 
-        // Bring editable's cursor uptodate.
-        len += text.Len();
-
         // Bring entry's cursor uptodate.
         gtk_entry_set_position( GTK_ENTRY(m_text), len );
     }
@@ -928,6 +930,12 @@ void wxTextCtrl::SetSelection( long from, long to )
 {
     wxCHECK_RET( m_text != NULL, wxT("invalid text ctrl") );
 
+    if (from == -1 && to == -1)
+    {
+        from = 0;
+        to = GetValue().Length();
+    }
+
 #ifndef __WXGTK20__
     if ( (m_windowStyle & wxTE_MULTILINE) &&
          !GTK_TEXT(m_text)->line_start_cache )
diff --git a/src/gtk1/toplevel.cpp b/src/gtk1/toplevel.cpp
index 1ca2768d11..0866c33410 100644
--- a/src/gtk1/toplevel.cpp
+++ b/src/gtk1/toplevel.cpp
@@ -25,6 +25,7 @@
 
 #include "wx/defs.h"
 
+#include "wx/log.h"
 #include "wx/dialog.h"
 #include "wx/control.h"
 #include "wx/app.h"
@@ -835,6 +836,11 @@ void wxTopLevelWindowGTK::OnInternalIdle()
         if ( g_delayedFocus &&
              wxGetTopLevelParent((wxWindow*)g_delayedFocus) == this )
         {
+            wxLogTrace(_T("focus"),
+                       _T("Setting focus from wxTLW::OnIdle() to %s(%s)"),
+                       g_delayedFocus->GetClassInfo()->GetClassName(),
+                       g_delayedFocus->GetLabel().c_str());
+
             g_delayedFocus->SetFocus();
             g_delayedFocus = NULL;
         }
diff --git a/src/gtk1/win_gtk.c b/src/gtk1/win_gtk.c
index 27e2d156bb..fecb23b7f5 100644
--- a/src/gtk1/win_gtk.c
+++ b/src/gtk1/win_gtk.c
@@ -310,11 +310,11 @@ gtk_pizza_put (GtkPizza   *pizza,
 
     pizza->children = g_list_append (pizza->children, child_info);
 
-    gtk_widget_set_parent (widget, GTK_WIDGET (pizza));
-
     if (GTK_WIDGET_REALIZED (pizza))
       gtk_widget_set_parent_window (widget, pizza->bin_window);
 
+    gtk_widget_set_parent (widget, GTK_WIDGET (pizza));
+
 #ifndef __WXGTK20__ /* FIXME? */
     if (!IS_ONSCREEN (x, y))
        GTK_PRIVATE_SET_FLAG (widget, GTK_IS_OFFSCREEN);
diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp
index 6411fca957..bf5f12cdb8 100644
--- a/src/gtk1/window.cpp
+++ b/src/gtk1/window.cpp
@@ -67,6 +67,10 @@
 
 #include "wx/gtk/win_gtk.h"
 
+#ifdef __WXGTK20__
+#include <pango/pangox.h>
+#endif
+
 #ifdef __WXGTK20__
     #define SET_CONTAINER_FOCUS(w, d) gtk_widget_child_focus((w), (d))
 #else
@@ -262,7 +266,7 @@ extern bool g_mainThreadLocked;
 //-----------------------------------------------------------------------------
 
 #ifndef __WXGTK20__
-#define DISABLE_STYLE_IF_BROKEN_THEME 1
+#define DISABLE_STYLE_IF_BROKEN_THEME 0
 #endif
 
 #ifdef __WXDEBUG__
@@ -501,10 +505,10 @@ static int gtk_window_expose_callback( GtkWidget *widget,
     // This callback gets called in drawing-idle time under
     // GTK 2.0, so we don't need to defer anything to idle
     // time anymore.
-    
+
     GtkPizza *pizza = GTK_PIZZA( widget );
     if (gdk_event->window != pizza->bin_window) return FALSE;
-    
+
 #if 0
     if (win->GetName())
     {
@@ -522,13 +526,14 @@ static int gtk_window_expose_callback( GtkWidget *widget,
 
     win->GtkSendPaintEvents();
 
+
     // Let parent window draw window less widgets
     (* GTK_WIDGET_CLASS (pizza_parent_class)->expose_event) (widget, gdk_event);
 #else
     // This gets called immediately after an expose event
     // under GTK 1.2 so we collect the calls and wait for
     // the idle handler to pick things up.
-    
+
     win->GetUpdateRegion().Union( gdk_event->area.x,
                                   gdk_event->area.y,
                                   gdk_event->area.width,
@@ -1060,6 +1065,7 @@ wxTranslateGTKKeyEventToWx(wxKeyEvent& event,
     return TRUE;
 }
 
+#ifndef __WXGTK20__
 static gint gtk_window_key_press_callback( GtkWidget *widget,
                                            GdkEventKey *gdk_event,
                                            wxWindow *win )
@@ -1130,7 +1136,7 @@ static gint gtk_window_key_press_callback( GtkWidget *widget,
             wxLogTrace(TRACE_KEYS, _T("Char event: %ld"), key_code);
 
             event.m_keyCode = key_code;
-            
+
             // Implement OnCharHook by checking ancesteror top level windows
             wxWindow *parent = win;
             while (parent && !parent->IsTopLevel())
@@ -1207,45 +1213,184 @@ static gint gtk_window_key_press_callback( GtkWidget *widget,
         }
     }
 
-    // Doesn't work.
-#if 0 
-    // Pressing F10 will activate the menu bar of the top frame
-    if ( (!ret) &&
-         (gdk_event->keyval == GDK_F10) )
+    if (ret)
     {
-        wxWindowGTK *ancestor = win;
-        while (ancestor)
+        gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_press_event" );
+        return TRUE;
+    }
+
+    return FALSE;
+}
+#endif
+
+#ifdef __WXGTK20__
+static gint gtk_window_key_press_callback( GtkWidget *widget,
+                                           GdkEventKey *gdk_event,
+                                           wxWindow *win )
+{
+    if (g_isIdle)
+        wxapp_install_idle_handler();
+
+    if (!win->m_hasVMT)
+        return FALSE;
+    if (g_blockEventsOnDrag)
+        return FALSE;
+
+    bool ret = FALSE;
+    bool dont_use_IM = FALSE;
+
+    wxKeyEvent event( wxEVT_KEY_DOWN );
+    long keycode = wxTranslateKeySymToWXKey( gdk_event->keyval, FALSE );
+    if (keycode)
+    {
+        // We were able to decode the key press without
+        // any input method, so don't use it.
+        dont_use_IM = TRUE;
+
+        // now fill all the other fields
+        int x = 0;
+        int y = 0;
+        GdkModifierType state;
+        if (gdk_event->window)
+            gdk_window_get_pointer(gdk_event->window, &x, &y, &state);
+
+        event.SetTimestamp( gdk_event->time );
+        event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK) != 0;
+        event.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK) != 0;
+        event.m_altDown = (gdk_event->state & GDK_MOD1_MASK) != 0;
+        event.m_metaDown = (gdk_event->state & GDK_MOD2_MASK) != 0;
+        event.m_keyCode = keycode;
+        event.m_scanCode = gdk_event->keyval;
+        event.m_rawCode = (wxUint32) gdk_event->keyval;
+        event.m_rawFlags = 0;
+        event.m_x = x;
+        event.m_y = y;
+        event.SetEventObject( win );
+
+        // send key down event
+        ret = win->GetEventHandler()->ProcessEvent( event );
+
+        if (!ret)
         {
-            if (wxIsKindOf(ancestor,wxFrame))
+            // Implement OnCharHook by checking ancesteror top level windows
+            wxWindow *parent = win;
+            while (parent && !parent->IsTopLevel())
+            parent = parent->GetParent();
+            if (parent)
             {
-                wxFrame *frame = (wxFrame*) ancestor;
-                wxMenuBar *menubar = frame->GetMenuBar();
-                if (menubar)
-                {
-                    wxNode *node = menubar->GetMenus().First();
-                    if (node)
-                    {
-                        wxMenu *firstMenu = (wxMenu*) node->Data();
-                        gtk_menu_item_select( GTK_MENU_ITEM(firstMenu->m_owner) );
-                        ret = TRUE;
-                        break;
-                    }
-                }
+                event.SetEventType( wxEVT_CHAR_HOOK );
+                ret = parent->GetEventHandler()->ProcessEvent( event );
+            }
+
+            if (!ret)
+            {
+                event.SetEventType(wxEVT_CHAR);
+                ret = win->GetEventHandler()->ProcessEvent( event );
+            }
+        }
+
+        // win is a control: tab can be propagated up
+        if ( !ret &&
+             ((gdk_event->keyval == GDK_Tab) || (gdk_event->keyval == GDK_ISO_Left_Tab)) &&
+            win->GetParent() && (win->GetParent()->HasFlag( wxTAB_TRAVERSAL)) )
+        {
+            wxNavigationKeyEvent new_event;
+            new_event.SetEventObject( win->GetParent() );
+            // GDK reports GDK_ISO_Left_Tab for SHIFT-TAB
+            new_event.SetDirection( (gdk_event->keyval == GDK_Tab) );
+            // CTRL-TAB changes the (parent) window, i.e. switch notebook page
+            new_event.SetWindowChange( (gdk_event->state & GDK_CONTROL_MASK) );
+            new_event.SetCurrentFocus( win );
+            ret = win->GetParent()->GetEventHandler()->ProcessEvent( new_event );
+        }
+
+        if ( !ret &&
+             (gdk_event->keyval == GDK_Escape) )
+        {
+            wxWindow *winForCancel = win, *btnCancel = NULL;
+            while ( winForCancel )
+            {
+                btnCancel = winForCancel->FindWindow(wxID_CANCEL);
+                if ( btnCancel ) break;
+
+                if ( winForCancel->IsTopLevel() ) break;
+
+                winForCancel = winForCancel->GetParent();
+            }
+
+            if ( btnCancel )
+            {
+                wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL);
+                event.SetEventObject(btnCancel);
+                ret = btnCancel->GetEventHandler()->ProcessEvent(event);
             }
-            ancestor = ancestor->GetParent();
         }
     }
-#endif // 0
 
     if (ret)
     {
         gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_press_event" );
         return TRUE;
     }
-    
+
+    if (!dont_use_IM && win->m_imContext)
+    {
+        // In GTK 2.0, we need to hand over the key
+        // event to an input method and the IM will
+        // emit a "commit" event containing the
+        // actual utf8 character.
+        gtk_im_context_filter_keypress ( (GtkIMContext*) win->m_imContext, gdk_event );
+
+        return TRUE;
+    }
+
     return FALSE;
 }
 
+static void gtk_wxwindow_commit_cb (GtkIMContext *context,
+						   const gchar  *str,
+						   wxWindow     *window)
+{
+    bool ret = FALSE;
+
+    wxKeyEvent event( wxEVT_KEY_DOWN );
+
+#if wxUSE_UNICODE
+    event.m_uniChar = g_utf8_get_char( str );
+
+    // Backward compatible for ISO-8859
+    if (event.m_uniChar < 256)
+        event.m_keyCode = event.m_uniChar;
+#else
+    gunichar uniChar = g_utf8_get_char( str );
+    // We cannot handle Unicode in non-Unicode mode
+    if (uniChar > 255) return;
+
+    event.m_keyCode = uniChar;
+#endif
+
+    if (!ret)
+    {
+        // Implement OnCharHook by checking ancesteror top level windows
+        wxWindow *parent = window;
+        while (parent && !parent->IsTopLevel())
+        parent = parent->GetParent();
+        if (parent)
+        {
+            event.SetEventType( wxEVT_CHAR_HOOK );
+            ret = parent->GetEventHandler()->ProcessEvent( event );
+        }
+
+        if (!ret)
+        {
+            event.SetEventType(wxEVT_CHAR);
+            ret = window->GetEventHandler()->ProcessEvent( event );
+        }
+    }
+}
+#endif
+
+
 //-----------------------------------------------------------------------------
 // "key_release_event" from any window
 //-----------------------------------------------------------------------------
@@ -1303,6 +1448,13 @@ static gint gtk_window_key_release_callback( GtkWidget *widget,
     event.m_leftDown = (gdk_event->state & GDK_BUTTON1_MASK);                 \
     event.m_middleDown = (gdk_event->state & GDK_BUTTON2_MASK);               \
     event.m_rightDown = (gdk_event->state & GDK_BUTTON3_MASK);                \
+    if (event.GetEventType()==wxEVT_MOUSEWHEEL)                               \
+    {                                                                         \
+       if (((GdkEventButton*)gdk_event)->button == 4)                         \
+           event.m_wheelRotation = 120;                                       \
+       else if (((GdkEventButton*)gdk_event)->button == 5)                    \
+           event.m_wheelRotation = -120;                                      \
+    }                                                                         \
                                                                               \
     wxPoint pt = win->GetClientAreaOrigin();                                  \
     event.m_x = (wxCoord)gdk_event->x - pt.x;                                 \
@@ -1447,6 +1599,26 @@ static gint gtk_window_button_press_callback( GtkWidget *widget,
 */
     }
 
+    // GDK sends surplus button down event
+    // before a double click event. We
+    // need to filter these out.
+    if (gdk_event->type == GDK_BUTTON_PRESS)
+    {
+        GdkEvent *peek_event = gdk_event_peek();
+        if (peek_event)
+        {
+            if (peek_event->type == GDK_2BUTTON_PRESS)
+            {
+                gdk_event_free( peek_event );
+                return TRUE;
+            }
+            else
+            {
+                gdk_event_free( peek_event );
+            }
+        }
+    }
+
     wxEventType event_type = wxEVT_NULL;
 
     if (gdk_event->button == 1)
@@ -1476,6 +1648,22 @@ static gint gtk_window_button_press_callback( GtkWidget *widget,
             default:  break;
         }
     }
+    else if (gdk_event->button == 4)
+    {
+        switch (gdk_event->type)
+        {
+            case GDK_BUTTON_PRESS: event_type = wxEVT_MOUSEWHEEL; break;
+            default:  break;
+        }
+    }
+    else if (gdk_event->button == 5)
+    {
+        switch (gdk_event->type)
+        {
+            case GDK_BUTTON_PRESS: event_type = wxEVT_MOUSEWHEEL; break;
+            default:  break;
+        }
+    }
 
     if ( event_type == wxEVT_NULL )
     {
@@ -1520,7 +1708,9 @@ static gint gtk_window_button_press_callback( GtkWidget *widget,
 // "button_release_event"
 //-----------------------------------------------------------------------------
 
-static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxWindowGTK *win )
+static gint gtk_window_button_release_callback( GtkWidget *widget,
+                                                GdkEventButton *gdk_event,
+                                                wxWindowGTK *win )
 {
     DEBUG_MAIN_THREAD
 
@@ -1533,21 +1723,25 @@ static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButto
 
     if (!win->IsOwnGtkWindow( gdk_event->window )) return FALSE;
 
-/*
-    printf( "OnButtonRelease from " );
-    if (win->GetClassInfo() && win->GetClassInfo()->GetClassName())
-        printf( win->GetClassInfo()->GetClassName() );
-    printf( ".\n" );
-*/
-
     wxEventType event_type = wxEVT_NULL;
 
     switch (gdk_event->button)
     {
-        case 1: event_type = wxEVT_LEFT_UP; break;
-        case 2: event_type = wxEVT_MIDDLE_UP; break;
-        case 3: event_type = wxEVT_RIGHT_UP; break;
-        default: return FALSE;
+        case 1:
+            event_type = wxEVT_LEFT_UP;
+            break;
+
+        case 2:
+            event_type = wxEVT_MIDDLE_UP;
+            break;
+
+        case 3:
+            event_type = wxEVT_RIGHT_UP;
+            break;
+
+        default:
+            // unknwon button, don't process
+            return FALSE;
     }
 
     wxMouseEvent event( event_type );
@@ -1558,6 +1752,20 @@ static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButto
     // same wxListBox hack as above
     win->FixUpMouseEvent(widget, event.m_x, event.m_y);
 
+    if ( event_type == wxEVT_RIGHT_UP )
+    {
+        // generate a "context menu" event: this is similar to wxEVT_RIGHT_UP
+        // except that:
+        //
+        // (a) it's a command event and so is propagated to the parent
+        // (b) under MSW it can be generated from kbd too
+        // (c) it uses screen coords (because of (a))
+        wxContextMenuEvent evtCtx(wxEVT_CONTEXT_MENU,
+                                  win->GetId(),
+                                  win->ClientToScreen(event.GetPosition()));
+        (void)win->GetEventHandler()->ProcessEvent(evtCtx);
+    }
+
     if ( !g_captureWindow )
         win = FindWindowForMouseEvent(win, event.m_x, event.m_y);
 
@@ -1706,7 +1914,7 @@ static gint gtk_window_focus_in_callback( GtkWidget *widget,
 #endif // wxUSE_CARET
 
     g_activeFrameLostFocus = FALSE;
-    
+
     wxWindowGTK *active = wxGetTopLevelParent(win);
     if ( active != g_activeFrame )
     {
@@ -1723,7 +1931,7 @@ static gint gtk_window_focus_in_callback( GtkWidget *widget,
         wxActivateEvent event(wxEVT_ACTIVATE, TRUE, g_activeFrame->GetId());
         event.SetEventObject(g_activeFrame);
         g_activeFrame->GetEventHandler()->ProcessEvent(event);
-        
+
         // Don't send focus events in addition to activate
         // if (win == g_activeFrame)
         //    return TRUE;
@@ -2077,7 +2285,7 @@ static void gtk_window_destroy_callback( GtkWidget* widget, wxWindow *win )
    been realized, so we do this directly after realization. */
 
 static gint
-gtk_window_realized_callback( GtkWidget *WXUNUSED(m_widget), wxWindow *win )
+gtk_window_realized_callback( GtkWidget *m_widget, wxWindow *win )
 {
     DEBUG_MAIN_THREAD
 
@@ -2090,6 +2298,14 @@ gtk_window_realized_callback( GtkWidget *WXUNUSED(m_widget), wxWindow *win )
     if (win->m_delayedForegroundColour)
         win->GtkSetForegroundColour( win->GetForegroundColour() );
 
+#ifdef __WXGTK20__
+    if (win->m_imContext)
+    {
+        GtkPizza *pizza = GTK_PIZZA( m_widget );
+        gtk_im_context_set_client_window( (GtkIMContext*) win->m_imContext, pizza->bin_window );
+    }
+#endif
+
     wxWindowCreateEvent event( win );
     event.SetEventObject( win );
     win->GetEventHandler()->ProcessEvent( event );
@@ -2349,10 +2565,15 @@ void wxWindowGTK::Init()
     m_delayedForegroundColour = FALSE;
     m_delayedBackgroundColour = FALSE;
 
+#ifdef __WXGTK20__
+    m_imContext = NULL;
+    m_x11Context = NULL;
+#else
 #ifdef HAVE_XIM
     m_ic = (GdkIC*) NULL;
     m_icattr = (GdkICAttr*) NULL;
 #endif
+#endif
 }
 
 wxWindowGTK::wxWindowGTK()
@@ -2387,9 +2608,9 @@ bool wxWindowGTK::Create( wxWindow *parent,
     }
 
     m_insertCallback = wxInsertChildInWindow;
-    
+
     // always needed for background clearing
-    m_delayedBackgroundColour = TRUE; 
+    m_delayedBackgroundColour = TRUE;
 
     m_widget = gtk_scrolled_window_new( (GtkAdjustment *) NULL, (GtkAdjustment *) NULL );
     GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS );
@@ -2473,6 +2694,17 @@ bool wxWindowGTK::Create( wxWindow *parent,
     gtk_signal_connect( GTK_OBJECT(m_vAdjust), "value_changed",
           (GtkSignalFunc) gtk_window_vscroll_callback, (gpointer) this );
 
+#ifdef __WXGTK20__
+    // Create input method handler
+    m_imContext = (GtkIMMulticontext*) gtk_im_multicontext_new ();
+
+    // Cannot handle drawing preedited text yet
+    gtk_im_context_set_use_preedit( (GtkIMContext*) m_imContext, FALSE );
+
+    g_signal_connect (G_OBJECT (m_imContext), "commit",
+        G_CALLBACK (gtk_wxwindow_commit_cb), this);
+#endif
+
     gtk_widget_show( m_wxwindow );
 
     if (m_parent)
@@ -2596,7 +2828,18 @@ void wxWindowGTK::PostCreation()
                     GTK_SIGNAL_FUNC(gtk_window_event_event_callback), (gpointer)this );
             }
 #else
-            gtk_widget_set_redraw_on_allocate( GTK_WIDGET(m_wxwindow), HasFlag( wxNO_FULL_REPAINT_ON_RESIZE ) );
+            // gtk_widget_set_redraw_on_allocate( GTK_WIDGET(m_wxwindow), HasFlag( wxNO_FULL_REPAINT_ON_RESIZE ) );
+#endif
+
+#ifdef __WXGTK20__
+        // Create input method handler
+        m_imContext = (GtkIMMulticontext*) gtk_im_multicontext_new ();
+
+        // Cannot handle drawing preedited text yet
+        gtk_im_context_set_use_preedit( (GtkIMContext*) m_imContext, FALSE );
+
+        g_signal_connect (G_OBJECT (m_imContext), "commit",
+            G_CALLBACK (gtk_wxwindow_commit_cb), this);
 #endif
         }
 
@@ -2683,7 +2926,7 @@ void wxWindowGTK::ConnectWidget( GtkWidget *widget )
 
     gtk_signal_connect( GTK_OBJECT(widget), "leave_notify_event",
       GTK_SIGNAL_FUNC(gtk_window_leave_callback), (gpointer)this );
-      
+
     // This keeps crashing on me. RR.
     //
     // gtk_signal_connect( GTK_OBJECT(widget), "destroy",
@@ -2842,7 +3085,7 @@ void wxWindowGTK::OnInternalIdle()
         }
         g_activeFrameLostFocus = FALSE;
     }
-    
+
     wxCursor cursor = m_cursor;
     if (g_globalCursor.Ok()) cursor = g_globalCursor;
 
@@ -3113,6 +3356,11 @@ bool wxWindowGTK::Show( bool show )
     else
         gtk_widget_hide( m_widget );
 
+    wxShowEvent eventShow(GetId(), show);
+    eventShow.m_eventObject = this;
+
+    GetEventHandler()->ProcessEvent(eventShow);
+
     return TRUE;
 }
 
@@ -3185,26 +3433,26 @@ void wxWindowGTK::GetTextExtent( const wxString& string,
     if (theFont) fontToUse = *theFont;
 
     wxCHECK_RET( fontToUse.Ok(), wxT("invalid font") );
-    
+
     if (string.IsEmpty())
     {
         if (x) (*x) = 0;
         if (y) (*y) = 0;
         return;
     }
-#ifdef __WXGTK20__
 
+#ifdef __WXGTK20__
     PangoContext *context = NULL;
     if (m_widget)
-        gtk_widget_get_pango_context( m_widget );
-        
+        context = gtk_widget_get_pango_context( m_widget );
+
     if (!context)
     {
         if (x) (*x) = 0;
         if (y) (*y) = 0;
         return;
     }
-    
+
     PangoFontDescription *desc = fontToUse.GetNativeFontInfo()->description;
     PangoLayout *layout = pango_layout_new(context);
     pango_layout_set_font_description(layout, desc);
@@ -3219,10 +3467,10 @@ void wxWindowGTK::GetTextExtent( const wxString& string,
 #endif
     }
     PangoLayoutLine *line = (PangoLayoutLine *)pango_layout_get_lines(layout)->data;
- 
+
     PangoRectangle rect;
     pango_layout_line_get_extents(line, NULL, &rect);
-       
+
     if (x) (*x) = (wxCoord) (rect.width / PANGO_SCALE);
     if (y) (*y) = (wxCoord) (rect.height / PANGO_SCALE);
     if (descent)
@@ -3231,7 +3479,7 @@ void wxWindowGTK::GetTextExtent( const wxString& string,
         (*descent) = 0;
     }
     if (externalLeading) (*externalLeading) = 0;  // ??
-    
+
     g_object_unref( G_OBJECT( layout ) );
 #else
     GdkFont *font = fontToUse.GetInternalFont( 1.0 );
@@ -3408,11 +3656,11 @@ void wxWindowGTK::Refresh( bool eraseBackground, const wxRect *rect )
 {
     if (!m_widget) return;
     if (!m_widget->window) return;
-    
+
 #ifndef __WXGTK20__
     if (g_isIdle)
         wxapp_install_idle_handler();
-        
+
     if (eraseBackground && m_wxwindow && m_wxwindow->window)
     {
         if (rect)
@@ -3498,7 +3746,7 @@ void wxWindowGTK::GtkSendPaintEvents()
 {
     if (!m_wxwindow)
     {
-#ifndef __WXGTK20__    
+#ifndef __WXGTK20__
         m_clearRegion.Clear();
 #endif
         m_updateRegion.Clear();
@@ -3511,7 +3759,7 @@ void wxWindowGTK::GtkSendPaintEvents()
 #ifndef __WXGTK20__
     // widget to draw on
     GtkPizza *pizza = GTK_PIZZA (m_wxwindow);
-            
+
     // later for GTK 2.0, too.
     if (GetThemeEnabled())
     {
@@ -3521,7 +3769,7 @@ void wxWindowGTK::GtkSendPaintEvents()
             parent = parent->GetParent();
         if (!parent)
             parent = (wxWindow*)this;
-    
+
         wxRegionIterator upd( m_updateRegion );
         while (upd)
         {
@@ -3530,7 +3778,7 @@ void wxWindowGTK::GtkSendPaintEvents()
             rect.y = upd.GetY();
             rect.width = upd.GetWidth();
             rect.height = upd.GetHeight();
-                    
+
             gtk_paint_flat_box( parent->m_widget->style,
                         pizza->bin_window,
                         GTK_STATE_NORMAL,
@@ -3539,7 +3787,7 @@ void wxWindowGTK::GtkSendPaintEvents()
                         parent->m_widget,
                         (char *)"base",
                         0, 0, -1, -1 );
-                        
+
             upd ++;
         }
     }
@@ -3610,7 +3858,7 @@ void wxWindowGTK::GtkSendPaintEvents()
     {
         GtkPizzaChild *child = (GtkPizzaChild*) children->data;
         children = children->next;
-        
+
         if (GTK_WIDGET_NO_WINDOW (child->widget) &&
             GTK_WIDGET_DRAWABLE (child->widget))
         {
@@ -3656,7 +3904,7 @@ void wxWindowGTK::Clear()
         m_clearRegion.Clear();
         wxSize size( GetClientSize() );
         m_clearRegion.Union( 0,0,size.x,size.y );
-        
+
         // Better do this in idle?
         GtkUpdate();
     }
@@ -3687,10 +3935,10 @@ void wxWindowGTK::GtkSetBackgroundColour( const wxColour &colour )
         window = GetConnectWidget()->window;
 
     wxASSERT( window );
-    
+
     // We need the pixel value e.g. for background clearing.
     m_backgroundColour.CalcPixel( gdk_window_get_colormap( window ) );
-    
+
     if (m_wxwindow)
     {
         // wxMSW doesn't clear the window here, either.
@@ -3774,6 +4022,21 @@ bool wxWindowGTK::SetForegroundColour( const wxColour &colour )
     return TRUE;
 }
 
+#ifdef __WXGTK20__
+PangoContext *wxWindowGTK::GtkGetPangoDefaultContext()
+{
+    return gtk_widget_get_pango_context( m_widget );
+}
+
+PangoContext *wxWindowGTK::GtkGetPangoX11Context()
+{
+    if (!m_x11Context)
+        m_x11Context = pango_x_get_context( gdk_display );
+
+    return m_x11Context;
+}
+#endif
+
 GtkStyle *wxWindowGTK::GetWidgetStyle()
 {
     if (m_widgetStyle)
@@ -4271,7 +4534,7 @@ void wxWindowGTK::ScrollWindow( int dx, int dy, const wxRect* WXUNUSED(rect) )
     wxCHECK_RET( m_widget != NULL, wxT("invalid window") );
 
     wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") );
-    
+
     // No scrolling requested.
     if ((dx == 0) && (dy == 0)) return;
 
diff --git a/src/html/descrip.mms b/src/html/descrip.mms
index c03594367b..503f51c556 100644
--- a/src/html/descrip.mms
+++ b/src/html/descrip.mms
@@ -41,13 +41,13 @@ OBJECTS = \
 	helpctrl.obj,helpdata.obj,helpfrm.obj,htmlcell.obj,htmlfilt.obj,\
 	htmlpars.obj,htmltag.obj,htmlwin.obj,htmprint.obj,m_dflist.obj,\
 	m_fonts.obj,m_hline.obj,m_image.obj,m_layout.obj,m_links.obj,\
-	m_list.obj,m_meta.obj,m_pre.obj,m_tables.obj,winpars.obj
+	m_list.obj,m_pre.obj,m_tables.obj,winpars.obj
 
 SOURCES = \
 	helpctrl.cpp,helpdata.cpp,helpfrm.cpp,htmlcell.cpp,htmlfilt.cpp,\
 	htmlpars.cpp,htmltag.cpp,htmlwin.cpp,htmprint.cpp,m_dflist.cpp,\
 	m_fonts.cpp,m_hline.cpp,m_image.cpp,m_layout.cpp,m_links.cpp,\
-	m_list.cpp,m_meta.cpp,m_pre.cpp,m_tables.cpp,winpars.cpp
+	m_list.cpp,m_pre.cpp,m_tables.cpp,winpars.cpp
   
 all : $(SOURCES)
 	$(MMS)$(MMSQUALIFIERS) $(OBJECTS)
@@ -79,7 +79,6 @@ m_image.obj : m_image.cpp
 m_layout.obj : m_layout.cpp
 m_links.obj : m_links.cpp
 m_list.obj : m_list.cpp
-m_meta.obj : m_meta.cpp
 m_pre.obj : m_pre.cpp
 m_tables.obj : m_tables.cpp
 winpars.obj : winpars.cpp
diff --git a/src/html/helpdata.cpp b/src/html/helpdata.cpp
index 4dcef850cf..51d0f334d3 100644
--- a/src/html/helpdata.cpp
+++ b/src/html/helpdata.cpp
@@ -40,6 +40,7 @@
 #include "wx/log.h"
 #include "wx/html/htmlpars.h"
 #include "wx/html/htmldefs.h"
+#include "wx/html/htmlfilt.h"
 #include "wx/filename.h"
 
 #include "wx/arrimpl.cpp"
@@ -250,12 +251,10 @@ wxHtmlHelpData::~wxHtmlHelpData()
     }
 }
 
-// defined in htmlfilt.cpp
-void wxPrivate_ReadString(wxString& str, wxInputStream* s);
-
 bool wxHtmlHelpData::LoadMSProject(wxHtmlBookRecord *book, wxFileSystem& fsys, const wxString& indexfile, const wxString& contentsfile)
 {
     wxFSFile *f;
+    wxHtmlFilterHTML filter;
     wxString buf;
     wxString string;
 
@@ -267,27 +266,31 @@ bool wxHtmlHelpData::LoadMSProject(wxHtmlBookRecord *book, wxFileSystem& fsys, c
     if (f)
     {
         buf.clear();
-        wxPrivate_ReadString(buf, f->GetStream());
+        buf = filter.ReadFile(*f);
         delete f;
         handler->ReadIn(m_Contents, m_ContentsCnt);
         parser.Parse(buf);
         handler->WriteOut(m_Contents, m_ContentsCnt);
     }
     else
+    {
         wxLogError(_("Cannot open contents file: %s"), contentsfile.c_str());
+    }
 
     f = ( indexfile.IsEmpty() ? (wxFSFile*) NULL : fsys.OpenFile(indexfile) );
     if (f)
     {
         buf.clear();
-        wxPrivate_ReadString(buf, f->GetStream());
+        buf = filter.ReadFile(*f);
         delete f;
         handler->ReadIn(m_Index, m_IndexCnt);
         parser.Parse(buf);
         handler->WriteOut(m_Index, m_IndexCnt);
     }
     else if (!indexfile.IsEmpty())
+    {
         wxLogError(_("Cannot open index file: %s"), indexfile.c_str());
+    }
     return TRUE;
 }
 
@@ -307,22 +310,34 @@ inline static wxInt32 CacheReadInt32(wxInputStream *f)
 }
 
 inline static void CacheWriteString(wxOutputStream *f, const wxChar *str)
-{
-    size_t len = wxStrlen(str)+1;
+{    
+#if wxUSE_UNICODE
+    wxWX2MBbuf mbstr(wxConvUTF8.cWX2MB(str));
+#else
+    const wxChar *mbstr = str;
+#endif
+    size_t len = strlen(mbstr)+1;
     CacheWriteInt32(f, len);
-    f->Write(str, len * sizeof(wxChar));
+    f->Write(mbstr, len);
 }
 
-inline static wxChar *CacheReadString(wxInputStream *f)
+inline static wxChar* CacheReadString(wxInputStream *f)
 {
-    wxChar *str;
+    char *str;
     size_t len = (size_t)CacheReadInt32(f);
-    str = new wxChar[len];
-    f->Read(str, len * sizeof(wxChar));
+    str = new char[len];
+    f->Read(str, len);
+#if !wxUSE_UNICODE
     return str;
+#else
+    wxMB2WXbuf wxstr(wxConvUTF8.cMB2WX(str));
+    wxChar *outstr = new wxChar[wxStrlen(wxstr)+1];
+    wxStrcpy(outstr, wxstr);
+    return outstr;
+#endif
 }
 
-#define CURRENT_CACHED_BOOK_VERSION     2
+#define CURRENT_CACHED_BOOK_VERSION     3
 
 bool wxHtmlHelpData::LoadCachedBook(wxHtmlBookRecord *book, wxInputStream *f)
 {
@@ -331,7 +346,7 @@ bool wxHtmlHelpData::LoadCachedBook(wxHtmlBookRecord *book, wxInputStream *f)
 
     /* load header - version info : */
     version = CacheReadInt32(f);
-
+    
     if (version != CURRENT_CACHED_BOOK_VERSION)
     {
         // NB: We can just silently return FALSE here and don't worry about
@@ -555,7 +570,6 @@ bool wxHtmlHelpData::AddBook(const wxString& book)
     {
         wxFSFile *fi;
         wxFileSystem fsys;
-        wxInputStream *s;
         wxString bookFull;
 
         wxString title = _("noname"),
@@ -572,7 +586,7 @@ bool wxHtmlHelpData::AddBook(const wxString& book)
         bookFull = fn.GetFullPath( wxPATH_UNIX );
 #else
         if (wxIsAbsolutePath(book)) bookFull = book;
-        else bookFull = wxGetCwd() + "/" + book;
+        else bookFull = wxGetCwd() + wxT("/") + book;
 #endif
 
         fi = fsys.OpenFile(bookFull);
@@ -582,20 +596,19 @@ bool wxHtmlHelpData::AddBook(const wxString& book)
             return FALSE;
         }
         fsys.ChangePathTo(bookFull);
-        s = fi->GetStream();
 
         const wxChar *lineptr;
         wxChar linebuf[300];
         wxString tmp;
-
-        wxPrivate_ReadString(tmp, s);
+        wxHtmlFilterPlainText filter;
+        tmp = filter.ReadFile(*fi);
         lineptr = tmp.c_str();
 
         do 
         {
             lineptr = ReadLine(lineptr, linebuf, 300);
             
-            for (wxChar *ch = linebuf; *ch != '\0' && *ch != '='; ch++)
+            for (wxChar *ch = linebuf; *ch != wxT('\0') && *ch != wxT('='); ch++)
                *ch = tolower(*ch);
 
             if (wxStrstr(linebuf, _T("title=")) == linebuf)
@@ -773,7 +786,7 @@ bool wxHtmlSearchStatus::Search()
     file = fsys.OpenFile(m_Data->m_Contents[i].m_Book->GetFullPath(thepage));
     if (file)
     {
-        if (m_Engine.Scan(file->GetStream()))
+        if (m_Engine.Scan(*file))
         {
             m_Name = m_Data->m_Contents[i].m_Name;
             m_ContentsItem = m_Data->m_Contents + i;
@@ -792,10 +805,10 @@ bool wxHtmlSearchStatus::Search()
 
 
 //--------------------------------------------------------------------------------
-// wxSearchEngine
+// wxHtmlSearchEngine
 //--------------------------------------------------------------------------------
 
-void wxSearchEngine::LookFor(const wxString& keyword, bool case_sensitive, bool whole_words_only)
+void wxHtmlSearchEngine::LookFor(const wxString& keyword, bool case_sensitive, bool whole_words_only)
 {
     m_CaseSensitive = case_sensitive;
     m_WholeWords = whole_words_only;
@@ -819,15 +832,15 @@ static inline bool WHITESPACE(wxChar c)
     return c == _T(' ') || c == _T('\n') || c == _T('\r') || c == _T('\t');
 }
 
-bool wxSearchEngine::Scan(wxInputStream *stream)
+bool wxHtmlSearchEngine::Scan(const wxFSFile& file)
 {
-    wxASSERT_MSG(m_Keyword != NULL, wxT("wxSearchEngine::LookFor must be called before scanning!"));
+    wxASSERT_MSG(m_Keyword != NULL, wxT("wxHtmlSearchEngine::LookFor must be called before scanning!"));
 
     int i, j;
     int wrd = wxStrlen(m_Keyword);
     bool found = FALSE;
-    wxString tmp;
-    wxPrivate_ReadString(tmp, stream);
+    wxHtmlFilterHTML filter;
+    wxString tmp = filter.ReadFile(file);
     int lng = tmp.length();
     const wxChar *buf = tmp.c_str();
 
diff --git a/src/html/helpfrm.cpp b/src/html/helpfrm.cpp
index 4e1c99dcc4..92f11379b1 100644
--- a/src/html/helpfrm.cpp
+++ b/src/html/helpfrm.cpp
@@ -878,10 +878,15 @@ void wxHtmlHelpFrame::WriteCustomization(wxConfigBase *cfg, const wxString& path
 
     cfg->Write(wxT("hcNavigPanel"), m_Cfg.navig_on);
     cfg->Write(wxT("hcSashPos"), (long)m_Cfg.sashpos);
-    cfg->Write(wxT("hcX"), (long)m_Cfg.x);
-    cfg->Write(wxT("hcY"), (long)m_Cfg.y);
-    cfg->Write(wxT("hcW"), (long)m_Cfg.w);
-    cfg->Write(wxT("hcH"), (long)m_Cfg.h);
+    if ( !IsIconized() )
+    {
+        //  Don't write if iconized as this would make the window
+        //  disappear next time it is shown!
+        cfg->Write(wxT("hcX"), (long)m_Cfg.x);
+        cfg->Write(wxT("hcY"), (long)m_Cfg.y);
+        cfg->Write(wxT("hcW"), (long)m_Cfg.w);
+        cfg->Write(wxT("hcH"), (long)m_Cfg.h);
+    }
     cfg->Write(wxT("hcFixedFace"), m_FixedFace);
     cfg->Write(wxT("hcNormalFace"), m_NormalFace);
     cfg->Write(wxT("hcBaseFontSize"), (long)m_FontSize);
@@ -1120,8 +1125,12 @@ void wxHtmlHelpFrame::OnActivate(wxActivateEvent& event)
 {
     // This saves one mouse click when using the
     // wxHTML for context sensitive help systems
+#ifndef __WXGTK__
+    // NB: wxActivateEvent is a bit broken in wxGTK
+    //     and is sometimes sent when it should not be
     if (event.GetActive() && m_HtmlWin)
         m_HtmlWin->SetFocus();
+#endif
 
     event.Skip();
 }
diff --git a/src/html/htmlcell.cpp b/src/html/htmlcell.cpp
index 6a7f93f0c0..94edca7b64 100644
--- a/src/html/htmlcell.cpp
+++ b/src/html/htmlcell.cpp
@@ -17,7 +17,7 @@
 
 #if wxUSE_HTML && wxUSE_STREAMS
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
@@ -255,8 +255,8 @@ void wxHtmlContainerCell::Layout(int w)
        m_Width = 0;
        for (wxHtmlCell *cell = m_Cells; cell; cell = cell->GetNext())
             cell->Layout(0);
-            // this does two things: it recursively calls this code on all child
-            // contrainers and resets children's position to (0,0)
+            // this does two things: it recursively calls this code on all
+            // child contrainers and resets children's position to (0,0)
        return;
     }
 
@@ -465,6 +465,15 @@ void wxHtmlContainerCell::DrawInvisible(wxDC& dc, int x, int y)
 }
 
 
+wxColour wxHtmlContainerCell::GetBackgroundColour()
+{
+    if (m_UseBkColour)
+        return m_BkColour;
+    else
+        return wxNullColour;
+}
+
+
 
 wxHtmlLinkInfo *wxHtmlContainerCell::GetLink(int x, int y) const
 {
diff --git a/src/html/htmlfilt.cpp b/src/html/htmlfilt.cpp
index 0482dc49cd..7e1dc3c178 100644
--- a/src/html/htmlfilt.cpp
+++ b/src/html/htmlfilt.cpp
@@ -17,7 +17,7 @@
 #include "wx/defs.h"
 #if wxUSE_HTML && wxUSE_STREAMS
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
@@ -26,15 +26,16 @@
     #include "wx/intl.h"
 #endif
 
+#include "wx/strconv.h"
 #include "wx/html/htmlfilt.h"
 #include "wx/html/htmlwin.h"
 
 // utility function: read a wxString from a wxInputStream
-void wxPrivate_ReadString(wxString& str, wxInputStream* s)
+static void ReadString(wxString& str, wxInputStream* s, wxMBConv& conv)
 {
     size_t streamSize = s->GetSize();
 
-    if(streamSize == ~(size_t)0)
+    if (streamSize == ~(size_t)0)
     {
         const size_t bufSize = 4095;
         char buffer[bufSize+1];
@@ -45,17 +46,17 @@ void wxPrivate_ReadString(wxString& str, wxInputStream* s)
             s->Read(buffer, bufSize);
             lastRead = s->LastRead();
             buffer[lastRead] = 0;
-            str.Append(buffer);
+            str.Append(wxString(buffer, conv));
         }
-        while(lastRead == bufSize);
+        while (lastRead == bufSize);
     }
     else
     {
         char* src = new char[streamSize+1];
         s->Read(src, streamSize);
         src[streamSize] = 0;
-        str = src;
-        delete [] src;
+        str = wxString(src, conv);
+        delete[] src;
     }
 }
 
@@ -87,12 +88,12 @@ wxString wxHtmlFilterPlainText::ReadFile(const wxFSFile& file) const
     wxString doc, doc2;
 
     if (s == NULL) return wxEmptyString;
-    wxPrivate_ReadString(doc, s);
+    ReadString(doc, s, wxConvISO8859_1);
 
     doc.Replace(wxT("&"), wxT("&amp;"), TRUE);
     doc.Replace(wxT("<"), wxT("&lt;"), TRUE);
     doc.Replace(wxT(">"), wxT("&gt;"), TRUE);
-    doc2 = "<HTML><BODY><PRE>\n" + doc + "\n</PRE></BODY></HTML>";
+    doc2 = wxT("<HTML><BODY><PRE>\n") + doc + wxT("\n</PRE></BODY></HTML>");
     return doc2;
 }
 
@@ -127,26 +128,18 @@ bool wxHtmlFilterImage::CanRead(const wxFSFile& file) const
 
 wxString wxHtmlFilterImage::ReadFile(const wxFSFile& file) const
 {
-    return ("<HTML><BODY><IMG SRC=\"" + file.GetLocation() + "\"></BODY></HTML>");
+    wxString res = wxT("<HTML><BODY><IMG SRC=\"") + file.GetLocation() + wxT("\"></BODY></HTML>");
+    return res;
 }
 
 
 
 
 //--------------------------------------------------------------------------------
-// wxHtmlFilterPlainText
-//          filter for text/plain or uknown
+// wxHtmlFilterHTML
+//          filter for text/html
 //--------------------------------------------------------------------------------
 
-class wxHtmlFilterHTML : public wxHtmlFilter
-{
-    DECLARE_DYNAMIC_CLASS(wxHtmlFilterHTML)
-
-    public:
-        virtual bool CanRead(const wxFSFile& file) const;
-        virtual wxString ReadFile(const wxFSFile& file) const;
-};
-
 
 IMPLEMENT_DYNAMIC_CLASS(wxHtmlFilterHTML, wxHtmlFilter)
 
@@ -171,15 +164,43 @@ wxString wxHtmlFilterHTML::ReadFile(const wxFSFile& file) const
         wxLogError(_("Cannot open HTML document: %s"), file.GetLocation().c_str());
         return wxEmptyString;
     }
-    wxPrivate_ReadString(doc, s);
 
+    // NB: We convert input file to wchar_t here in Unicode mode, based on 
+    //     either Content-Type header or <meta> tags. In ANSI mode, we don't
+    //     do it as it is done by wxHtmlParser (for this reason, we add <meta>
+    //     tag if we used Content-Type header).
+#if wxUSE_UNICODE
+    int charsetPos;    
+    if ((charsetPos = file.GetMimeType().Find(_T("; charset="))) != wxNOT_FOUND)
+    {
+        wxString charset = file.GetMimeType().Mid(charsetPos + 10);
+        wxCSConv conv(charset);
+        ReadString(doc, s, conv);
+    }
+    else
+    {
+        wxString tmpdoc;
+        ReadString(tmpdoc, s, wxConvISO8859_1);
+        wxString charset = wxHtmlParser::ExtractCharsetInformation(tmpdoc);
+        if (charset.empty())
+            doc = tmpdoc;
+        else
+        {
+            wxCSConv conv(charset);
+            doc = wxString(tmpdoc.mb_str(wxConvISO8859_1), conv);
+        }
+    }
+#else // !wxUSE_UNICODE
+    ReadString(doc, s, wxConvLibc);
     // add meta tag if we obtained this through http:
-    if (file.GetMimeType().Find(_T("; charset=")) == 0)
+    if (!file.GetMimeType().empty())
     {
-        wxString s(_T("<meta http-equiv=\"Content-Type\" content=\""));
-        s << file.GetMimeType() <<  _T("\">");
-        return s+doc;
+        wxString hdr;
+        wxString mime = file.GetMimeType();
+        hdr.Printf(_T("<meta http-equiv=\"Content-Type\" content=\"%s\">"), mime.c_str());
+        return hdr+doc;
     }
+#endif
 
     return doc;
 }
diff --git a/src/html/htmlpars.cpp b/src/html/htmlpars.cpp
index 50b878f4da..9ed716fe81 100644
--- a/src/html/htmlpars.cpp
+++ b/src/html/htmlpars.cpp
@@ -17,7 +17,7 @@
 #include "wx/defs.h"
 #if wxUSE_HTML && wxUSE_STREAMS
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
@@ -92,11 +92,9 @@ wxHtmlParser::~wxHtmlParser()
 
 wxObject* wxHtmlParser::Parse(const wxString& source)
 {
-    wxObject *result;
-
     InitParser(source);
     DoParsing();
-    result = GetProduct();
+    wxObject *result = GetProduct();
     DoneParser();
     return result;
 }
@@ -104,6 +102,7 @@ wxObject* wxHtmlParser::Parse(const wxString& source)
 void wxHtmlParser::InitParser(const wxString& source)
 {
     SetSource(source);
+    m_stopParsing = FALSE;
 }
 
 void wxHtmlParser::DoneParser()
@@ -292,6 +291,8 @@ void wxHtmlParser::DoParsing(int begin_pos, int end_pos)
             wxHtmlTag *t = m_CurTag;
             m_CurTag = m_CurTag->GetNextTag();
             AddTag(*t);
+            if (m_stopParsing)
+                return;
         }
         else break;
     }
@@ -304,7 +305,11 @@ void wxHtmlParser::AddTag(const wxHtmlTag& tag)
 
     h = (wxHtmlTagHandler*) m_HandlersHash.Get(tag.GetName());
     if (h)
+    {
         inner = h->HandleTag(tag);
+        if (m_stopParsing)
+            return;
+    }
     if (!inner)
     {
         if (tag.HasEnding())
@@ -432,11 +437,15 @@ wxHtmlEntitiesParser::~wxHtmlEntitiesParser()
 void wxHtmlEntitiesParser::SetEncoding(wxFontEncoding encoding)
 {
 #if wxUSE_WCHAR_T && !wxUSE_UNICODE
-    if (encoding == m_encoding) return;
+    if (encoding == m_encoding)
+        return;
+
     delete m_conv;
-    m_conv = NULL;
+
     m_encoding = encoding;
-    if (m_encoding != wxFONTENCODING_SYSTEM)
+    if (m_encoding == wxFONTENCODING_SYSTEM)
+        m_conv = NULL;
+    else
         m_conv = new wxCSConv(wxFontMapper::GetEncodingName(m_encoding));
 #else
     (void) encoding;
@@ -496,11 +505,10 @@ extern "C" int LINKAGEMODE wxHtmlEntityCompare(const void *key, const void *item
     return wxStrcmp((wxChar*)key, ((wxHtmlEntityInfo*)item)->name);
 }
 
+#if !wxUSE_UNICODE
 wxChar wxHtmlEntitiesParser::GetCharForCode(unsigned code)
 {
-#if wxUSE_UNICODE
-    return (wxChar)code;
-#elif wxUSE_WCHAR_T
+#if wxUSE_WCHAR_T
     char buf[2];
     wchar_t wbuf[2];
     wbuf[0] = (wchar_t)code;
@@ -513,6 +521,7 @@ wxChar wxHtmlEntitiesParser::GetCharForCode(unsigned code)
     return (code < 256) ? (wxChar)code : '?';
 #endif
 }
+#endif
 
 wxChar wxHtmlEntitiesParser::GetEntityChar(const wxString& entity)
 {
@@ -818,4 +827,62 @@ wxFSFile *wxHtmlParser::OpenURL(wxHtmlURLType WXUNUSED(type),
     return GetFS()->OpenFile(url);
 }
 
+
+//-----------------------------------------------------------------------------
+// wxHtmlParser::ExtractCharsetInformation
+//-----------------------------------------------------------------------------
+
+class wxMetaTagParser : public wxHtmlParser
+{
+public:
+    wxObject* GetProduct() { return NULL; }
+protected:
+    virtual void AddText(const wxChar* WXUNUSED(txt)) {}
+};
+
+class wxMetaTagHandler : public wxHtmlTagHandler
+{
+public:
+    wxMetaTagHandler(wxString *retval) : wxHtmlTagHandler(), m_retval(retval) {}
+    wxString GetSupportedTags() { return wxT("META,BODY"); }
+    bool HandleTag(const wxHtmlTag& tag);
+
+private:
+    wxString *m_retval;
+};
+
+bool wxMetaTagHandler::HandleTag(const wxHtmlTag& tag)
+{
+    if (tag.GetName() == _T("BODY"))
+    {
+        m_Parser->StopParsing();
+        return FALSE;
+    }
+
+    if (tag.HasParam(_T("HTTP-EQUIV")) &&
+        tag.GetParam(_T("HTTP-EQUIV")) == _T("Content-Type") &&
+        tag.HasParam(_T("CONTENT")))
+    {
+        wxString content = tag.GetParam(_T("CONTENT"));
+        if (content.Left(19) == _T("text/html; charset="))
+        {
+            *m_retval = content.Mid(19);
+            m_Parser->StopParsing();
+        }
+    }
+    return FALSE;
+}
+
+
+/*static*/
+wxString wxHtmlParser::ExtractCharsetInformation(const wxString& markup)
+{
+    wxString charset;
+    wxMetaTagParser parser;
+    parser.AddTagHandler(new wxMetaTagHandler(&charset));
+    parser.Parse(markup);
+    return charset;
+}
+
+
 #endif
diff --git a/src/html/htmltag.cpp b/src/html/htmltag.cpp
index 33607f7ada..47ac16a2e4 100644
--- a/src/html/htmltag.cpp
+++ b/src/html/htmltag.cpp
@@ -17,7 +17,7 @@
 #include "wx/defs.h"
 #if wxUSE_HTML
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
diff --git a/src/html/htmlwin.cpp b/src/html/htmlwin.cpp
index ebb83bd452..f57311fce4 100644
--- a/src/html/htmlwin.cpp
+++ b/src/html/htmlwin.cpp
@@ -18,7 +18,7 @@
 #include "wx/defs.h"
 #if wxUSE_HTML && wxUSE_STREAMS
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
diff --git a/src/html/htmprint.cpp b/src/html/htmprint.cpp
index 117e2261c4..a2dfa82097 100644
--- a/src/html/htmprint.cpp
+++ b/src/html/htmprint.cpp
@@ -269,9 +269,6 @@ void wxHtmlPrintout::SetHtmlText(const wxString& html, const wxString &basepath,
     m_BasePathIsDir = isdir;
 }
 
-// defined in htmlfilt.cpp
-void wxPrivate_ReadString(wxString& str, wxInputStream* s);
-
 void wxHtmlPrintout::SetHtmlFile(const wxString& htmlfile)
 {
     wxFileSystem fs;
@@ -283,13 +280,11 @@ void wxHtmlPrintout::SetHtmlFile(const wxString& htmlfile)
         return;
     }
 
-    wxInputStream *st = ff->GetStream();
-    wxString doc;
-    wxPrivate_ReadString(doc, st);
-
-    delete ff;
-
+    wxHtmlFilterHTML filter;
+    wxString doc = filter.ReadFile(*ff);
+    
     SetHtmlText(doc, htmlfile, FALSE);
+    delete ff;
 }
 
 
diff --git a/src/html/m_dflist.cpp b/src/html/m_dflist.cpp
index 634a31786b..e113412e7a 100644
--- a/src/html/m_dflist.cpp
+++ b/src/html/m_dflist.cpp
@@ -17,7 +17,7 @@
 #include "wx/defs.h"
 #if wxUSE_HTML && wxUSE_STREAMS
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
@@ -34,7 +34,7 @@ FORCE_LINK_ME(m_dflist)
 
 
 
-TAG_HANDLER_BEGIN(DEFLIST, "DL,DT,DD")
+TAG_HANDLER_BEGIN(DEFLIST, "DL,DT,DD" )
 
     TAG_HANDLER_PROC(tag)
     {
diff --git a/src/html/m_fonts.cpp b/src/html/m_fonts.cpp
index 0014a38ed8..8582927cf7 100644
--- a/src/html/m_fonts.cpp
+++ b/src/html/m_fonts.cpp
@@ -16,7 +16,7 @@
 #include "wx/defs.h"
 #if wxUSE_HTML && wxUSE_STREAMS
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
@@ -31,7 +31,7 @@
 FORCE_LINK_ME(m_fonts)
 
 
-TAG_HANDLER_BEGIN(FONT, "FONT")
+TAG_HANDLER_BEGIN(FONT, "FONT" )
 
     TAG_HANDLER_VARS
         wxArrayString m_Faces;
diff --git a/src/html/m_hline.cpp b/src/html/m_hline.cpp
index b9df229000..d0a1b033bc 100644
--- a/src/html/m_hline.cpp
+++ b/src/html/m_hline.cpp
@@ -16,7 +16,7 @@
 
 #include "wx/defs.h"
 #if wxUSE_HTML && wxUSE_STREAMS
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
diff --git a/src/html/m_image.cpp b/src/html/m_image.cpp
index 7458ddf792..aaf6a8fa4a 100644
--- a/src/html/m_image.cpp
+++ b/src/html/m_image.cpp
@@ -16,7 +16,7 @@
 #include "wx/defs.h"
 #if wxUSE_HTML && wxUSE_STREAMS
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
diff --git a/src/html/m_layout.cpp b/src/html/m_layout.cpp
index e828f01e1d..aeb0478d49 100644
--- a/src/html/m_layout.cpp
+++ b/src/html/m_layout.cpp
@@ -15,7 +15,7 @@
 
 #include "wx/defs.h"
 #if wxUSE_HTML && wxUSE_STREAMS
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
diff --git a/src/html/m_links.cpp b/src/html/m_links.cpp
index 588180f01e..dd0c0eae07 100644
--- a/src/html/m_links.cpp
+++ b/src/html/m_links.cpp
@@ -16,7 +16,7 @@
 #include "wx/defs.h"
 #if wxUSE_HTML && wxUSE_STREAMS
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
@@ -52,19 +52,19 @@ TAG_HANDLER_BEGIN(A, "A")
 
     TAG_HANDLER_PROC(tag)
     {
-        if (tag.HasParam("NAME"))
+        if (tag.HasParam( wxT("NAME") ))
         {
-            m_WParser->GetContainer()->InsertCell(new wxHtmlAnchorCell(tag.GetParam("NAME")));
+            m_WParser->GetContainer()->InsertCell(new wxHtmlAnchorCell(tag.GetParam( wxT("NAME") )));
         }
 
-        if (tag.HasParam("HREF"))
+        if (tag.HasParam( wxT("HREF") ))
         {
             wxHtmlLinkInfo oldlnk = m_WParser->GetLink();
             wxColour oldclr = m_WParser->GetActualColor();
             int oldund = m_WParser->GetFontUnderlined();
-            wxString name(tag.GetParam("HREF")), target;
+            wxString name(tag.GetParam( wxT("HREF") )), target;
 
-            if (tag.HasParam("TARGET")) target = tag.GetParam("TARGET");
+            if (tag.HasParam( wxT("TARGET") )) target = tag.GetParam( wxT("TARGET") );
             m_WParser->SetActualColor(m_WParser->GetLinkColor());
             m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(m_WParser->GetLinkColor()));
             m_WParser->SetFontUnderlined(TRUE);
diff --git a/src/html/m_list.cpp b/src/html/m_list.cpp
index 44cad981ed..0549463eab 100644
--- a/src/html/m_list.cpp
+++ b/src/html/m_list.cpp
@@ -16,7 +16,7 @@
 #include "wx/defs.h"
 #if wxUSE_HTML && wxUSE_STREAMS
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
diff --git a/src/html/m_meta.cpp b/src/html/m_meta.cpp
deleted file mode 100644
index 9ad9eb7c4b..0000000000
--- a/src/html/m_meta.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// Name:        m_meta.cpp
-// Purpose:     wxHtml module for parsing <meta> tag
-// Author:      Vaclav Slavik
-// RCS-ID:      $Id$
-// Copyright:   (c) 2000 Vaclav Slavik
-// Licence:     wxWindows Licence
-/////////////////////////////////////////////////////////////////////////////
-
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
-#include "wx/wxprec.h"
-
-
-#include "wx/defs.h"
-#if wxUSE_HTML && wxUSE_STREAMS
-
-#ifdef __BORDLANDC__
-#pragma hdrstop
-#endif
-
-#ifndef WXPRECOMP
-#endif
-
-#include "wx/fontmap.h"
-#include "wx/html/forcelnk.h"
-#include "wx/html/m_templ.h"
-#include "wx/html/htmlcell.h"
-
-FORCE_LINK_ME(m_meta)
-
-
-
-
-TAG_HANDLER_BEGIN(META, "META")
-
-    TAG_HANDLER_PROC(tag)
-    {
-        if (tag.HasParam(_T("HTTP-EQUIV")) &&
-            tag.GetParam(_T("HTTP-EQUIV")) == _T("Content-Type") &&
-            tag.HasParam(_T("CONTENT")))
-        {
-            wxString content = tag.GetParam(_T("CONTENT"));
-            if (content.Left(19) == _T("text/html; charset="))
-            {
-                wxFontEncoding enc =
-                    wxFontMapper::Get()->CharsetToEncoding(content.Mid(19));
-                if (enc == wxFONTENCODING_SYSTEM) return FALSE;
-                if (enc == m_WParser->GetInputEncoding()) return FALSE;
-
-                m_WParser->SetInputEncoding(enc);
-                m_WParser->GetContainer()->InsertCell(
-                    new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
-            }
-        }
-        return FALSE;
-    }
-
-TAG_HANDLER_END(META)
-
-
-TAGS_MODULE_BEGIN(MetaTag)
-
-    TAGS_MODULE_ADD(META)
-
-TAGS_MODULE_END(MetaTag)
-
-#endif
diff --git a/src/html/m_pre.cpp b/src/html/m_pre.cpp
index f1c064e755..313d8a88bc 100644
--- a/src/html/m_pre.cpp
+++ b/src/html/m_pre.cpp
@@ -15,7 +15,7 @@
 
 #include "wx/defs.h"
 #if wxUSE_HTML && wxUSE_STREAMS
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
diff --git a/src/html/m_style.cpp b/src/html/m_style.cpp
index 9355867e81..9913b83703 100644
--- a/src/html/m_style.cpp
+++ b/src/html/m_style.cpp
@@ -17,7 +17,7 @@
 #include "wx/defs.h"
 #if wxUSE_HTML && wxUSE_STREAMS
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
diff --git a/src/html/m_tables.cpp b/src/html/m_tables.cpp
index 7d125edf1c..07aa795bac 100644
--- a/src/html/m_tables.cpp
+++ b/src/html/m_tables.cpp
@@ -15,7 +15,7 @@
 
 #include "wx/defs.h"
 #if wxUSE_HTML && wxUSE_STREAMS
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
diff --git a/src/html/winpars.cpp b/src/html/winpars.cpp
index 4c6943463a..d11a8ea9fd 100644
--- a/src/html/winpars.cpp
+++ b/src/html/winpars.cpp
@@ -17,7 +17,7 @@
 #include "wx/defs.h"
 #if wxUSE_HTML && wxUSE_STREAMS
 
-#ifdef __BORDLANDC__
+#ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
@@ -49,8 +49,11 @@ wxHtmlWinParser::wxHtmlWinParser(wxHtmlWindow *wnd) : wxHtmlParser()
     m_DC = NULL;
     m_CharHeight = m_CharWidth = 0;
     m_UseLink = FALSE;
+#if !wxUSE_UNICODE
     m_EncConv = NULL;
-    m_InputEnc = m_OutputEnc = wxFONTENCODING_DEFAULT;
+    m_InputEnc = wxFONTENCODING_ISO8859_1;
+    m_OutputEnc = wxFONTENCODING_DEFAULT;
+#endif
 
     {
         int i, j, k, l, m;
@@ -62,7 +65,9 @@ wxHtmlWinParser::wxHtmlWinParser(wxHtmlWindow *wnd) : wxHtmlParser()
                         {
                             m_FontsTable[i][j][k][l][m] = NULL;
                             m_FontsFacesTable[i][j][k][l][m] = wxEmptyString;
+#if !wxUSE_UNICODE
                             m_FontsEncTable[i][j][k][l][m] = wxFONTENCODING_DEFAULT;
+#endif
                         }
 #ifdef __WXMSW__
         static int default_sizes[7] = {7, 8, 10, 12, 16, 22, 30};
@@ -71,7 +76,7 @@ wxHtmlWinParser::wxHtmlWinParser(wxHtmlWindow *wnd) : wxHtmlParser()
 #else
         static int default_sizes[7] = {10, 12, 14, 16, 19, 24, 32};
 #endif
-        SetFonts("", "", default_sizes);
+        SetFonts(wxT(""), wxT(""), default_sizes);
     }
 
     // fill in wxHtmlParser's tables:
@@ -97,7 +102,9 @@ wxHtmlWinParser::~wxHtmlWinParser()
                         if (m_FontsTable[i][j][k][l][m] != NULL)
                             delete m_FontsTable[i][j][k][l][m];
                     }
+#if !wxUSE_UNICODE
     delete m_EncConv;
+#endif
     delete[] m_tmpStrBuf;
 }
 
@@ -119,7 +126,9 @@ void wxHtmlWinParser::SetFonts(wxString normal_face, wxString fixed_face, const
     m_FontFaceFixed = fixed_face;
     m_FontFaceNormal = normal_face;
 
+#if !wxUSE_UNICODE
     SetInputEncoding(m_InputEnc);
+#endif
 
     for (i = 0; i < 2; i++)
         for (j = 0; j < 2; j++)
@@ -137,26 +146,36 @@ void wxHtmlWinParser::SetFonts(wxString normal_face, wxString fixed_face, const
 void wxHtmlWinParser::InitParser(const wxString& source)
 {
     wxHtmlParser::InitParser(source);
-    wxASSERT_MSG(m_DC != NULL, _T("no DC assigned to wxHtmlWinParser!!"));
+    wxASSERT_MSG(m_DC != NULL, wxT("no DC assigned to wxHtmlWinParser!!"));
 
     m_FontBold = m_FontItalic = m_FontUnderlined = m_FontFixed = FALSE;
     m_FontSize = 3; //default one
     CreateCurrentFont();           // we're selecting default font into
-    m_DC->GetTextExtent("H", &m_CharWidth, &m_CharHeight);
+    m_DC->GetTextExtent( wxT("H"), &m_CharWidth, &m_CharHeight);
                 /* NOTE : we're not using GetCharWidth/Height() because
                    of differences under X and win
                  */
 
     m_UseLink = FALSE;
-    m_Link = wxHtmlLinkInfo("", "");
+    m_Link = wxHtmlLinkInfo( wxT(""), wxT("") );
     m_LinkColor.Set(0, 0, 0xFF);
     m_ActualColor.Set(0, 0, 0);
     m_Align = wxHTML_ALIGN_LEFT;
     m_tmpLastWasSpace = FALSE;
 
     OpenContainer();
-
     OpenContainer();
+
+#if 0 //!wxUSE_UNICODE
+    wxString charset = ExtractCharsetInformation(source);
+    if (!charset.empty())
+    {
+        wxFontEncoding enc = wxFontMapper::Get()->CharsetToEncoding(charset);
+        if (enc != wxFONTENCODING_SYSTEM)
+          SetInputEncoding(enc);
+    }
+#endif
+
     m_Container->InsertCell(new wxHtmlColourCell(m_ActualColor));
     m_Container->InsertCell(new wxHtmlFontCell(CreateCurrentFont()));
 }
@@ -164,7 +183,9 @@ void wxHtmlWinParser::InitParser(const wxString& source)
 void wxHtmlWinParser::DoneParser()
 {
     m_Container = NULL;
-    SetInputEncoding(wxFONTENCODING_DEFAULT); // for next call
+#if !wxUSE_UNICODE
+    SetInputEncoding(wxFONTENCODING_ISO8859_1); // for next call
+#endif
     wxHtmlParser::DoneParser();
 }
 
@@ -253,8 +274,10 @@ void wxHtmlWinParser::AddText(const wxChar* txt)
             if (templen == 1) continue;
 #endif
             templen = 0;
+#if !wxUSE_UNICODE
             if (m_EncConv)
                 m_EncConv->Convert(temp);
+#endif
             size_t len = wxStrlen(temp);
             for (size_t j = 0; j < len; j++)
                 if (temp[j] == nbsp)
@@ -270,8 +293,10 @@ void wxHtmlWinParser::AddText(const wxChar* txt)
     if (templen && (templen > 1 || temp[0] != wxT(' ')))
     {
         temp[templen] = 0;
+#if !wxUSE_UNICODE
         if (m_EncConv)
             m_EncConv->Convert(temp);
+#endif
         size_t len = wxStrlen(temp);
         for (size_t j = 0; j < len; j++)
             if (temp[j] == nbsp)
@@ -333,9 +358,15 @@ wxFont* wxHtmlWinParser::CreateCurrentFont()
     wxString face = ff ? m_FontFaceFixed : m_FontFaceNormal;
     wxString *faceptr = &(m_FontsFacesTable[fb][fi][fu][ff][fs]);
     wxFont **fontptr = &(m_FontsTable[fb][fi][fu][ff][fs]);
+#if !wxUSE_UNICODE
     wxFontEncoding *encptr = &(m_FontsEncTable[fb][fi][fu][ff][fs]);
+#endif
 
-    if (*fontptr != NULL && (*faceptr != face || *encptr != m_OutputEnc))
+    if (*fontptr != NULL && (*faceptr != face
+#if !wxUSE_UNICODE
+                             || *encptr != m_OutputEnc
+#endif
+                            ))
     {
         delete *fontptr;
         *fontptr = NULL;
@@ -344,14 +375,18 @@ wxFont* wxHtmlWinParser::CreateCurrentFont()
     if (*fontptr == NULL)
     {
         *faceptr = face;
-        *encptr = m_OutputEnc;
         *fontptr = new wxFont(
                        (int) (m_FontsSizes[fs] * m_PixelScale),
                        ff ? wxMODERN : wxSWISS,
                        fi ? wxITALIC : wxNORMAL,
                        fb ? wxBOLD : wxNORMAL,
-                       fu ? TRUE : FALSE, face,
-                       m_OutputEnc);
+                       fu ? TRUE : FALSE, face
+#if wxUSE_UNICODE
+                       );
+#else
+                       , m_OutputEnc);
+        *encptr = m_OutputEnc;
+#endif
     }
     m_DC->SetFont(**fontptr);
     return (*fontptr);
@@ -371,12 +406,15 @@ void wxHtmlWinParser::SetFontFace(const wxString& face)
     if (GetFontFixed()) m_FontFaceFixed = face;
     else m_FontFaceNormal = face;
 
+#if !wxUSE_UNICODE
     if (m_InputEnc != wxFONTENCODING_DEFAULT)
         SetInputEncoding(m_InputEnc);
+#endif
 }
 
 
 
+#if !wxUSE_UNICODE
 void wxHtmlWinParser::SetInputEncoding(wxFontEncoding enc)
 {
     m_InputEnc = m_OutputEnc = wxFONTENCODING_DEFAULT;
@@ -434,7 +472,7 @@ void wxHtmlWinParser::SetInputEncoding(wxFontEncoding enc)
         m_EncConv = NULL;
     }
 }
-
+#endif
 
 
 
diff --git a/src/jpeg/jdcoefct.c b/src/jpeg/jdcoefct.c
index 4b89b62d24..5b5b3bbd49 100644
--- a/src/jpeg/jdcoefct.c
+++ b/src/jpeg/jdcoefct.c
@@ -104,13 +104,16 @@ start_iMCU_row (j_decompress_ptr cinfo)
  */
 
 METHODDEF(void)
+#if defined(__VISAGECPP__)
+start_input_pass2 (j_decompress_ptr cinfo)
+#else
 start_input_pass (j_decompress_ptr cinfo)
+#endif
 {
   cinfo->input_iMCU_row = 0;
   start_iMCU_row(cinfo);
 }
 
-
 /*
  * Initialize for an output processing pass.
  */
@@ -681,7 +684,12 @@ jinit_d_coef_controller (j_decompress_ptr cinfo, boolean need_full_buffer)
     (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE,
 				SIZEOF(my_coef_controller));
   cinfo->coef = (struct jpeg_d_coef_controller *) coef;
+#if defined(__VISAGECPP__)
+  coef->pub.start_input_pass2 = start_input_pass2;
+#else
   coef->pub.start_input_pass = start_input_pass;
+#endif
+
   coef->pub.start_output_pass = start_output_pass;
 #ifdef BLOCK_SMOOTHING_SUPPORTED
   coef->coef_bits_latch = NULL;
@@ -734,3 +742,4 @@ jinit_d_coef_controller (j_decompress_ptr cinfo, boolean need_full_buffer)
     coef->pub.coef_arrays = NULL; /* flag for no virtual arrays */
   }
 }
+
diff --git a/src/jpeg/jdinput.c b/src/jpeg/jdinput.c
index 324d0ffe0c..ce05a85815 100644
--- a/src/jpeg/jdinput.c
+++ b/src/jpeg/jdinput.c
@@ -260,7 +260,11 @@ start_input_pass (j_decompress_ptr cinfo)
   per_scan_setup(cinfo);
   latch_quant_tables(cinfo);
   (*cinfo->entropy->start_pass) (cinfo);
+#if defined(__VISAGECPP__)
+  (*cinfo->coef->start_input_pass2) (cinfo);
+#else
   (*cinfo->coef->start_input_pass) (cinfo);
+#endif
   cinfo->inputctl->consume_input = cinfo->coef->consume_data;
 }
 
@@ -389,3 +393,4 @@ jinit_input_controller (j_decompress_ptr cinfo)
 #   undef start_input_pass2
 #  endif
 #endif
+
diff --git a/src/jpeg/jdtrans.c b/src/jpeg/jdtrans.c
index 6c0ab715d3..d22388684f 100644
--- a/src/jpeg/jdtrans.c
+++ b/src/jpeg/jdtrans.c
@@ -121,7 +121,6 @@ transdecode_master_selection (j_decompress_ptr cinfo)
 
   /* Initialize input side of decompressor to consume first scan. */
   (*cinfo->inputctl->start_input_pass) (cinfo);
-
   /* Initialize progress monitoring. */
   if (cinfo->progress != NULL) {
     int nscans;
@@ -141,3 +140,4 @@ transdecode_master_selection (j_decompress_ptr cinfo)
     cinfo->progress->total_passes = 1;
   }
 }
+
diff --git a/src/jpeg/jpegint.h b/src/jpeg/jpegint.h
index 65091f4f08..14a51d14d8 100644
--- a/src/jpeg/jpegint.h
+++ b/src/jpeg/jpegint.h
@@ -175,7 +175,15 @@ struct jpeg_d_main_controller {
 
 /* Coefficient buffer control */
 struct jpeg_d_coef_controller {
+#if defined(__VISAGECPP__)
+  /* the start input pass in jdcoeft must have a different name than the
+  // one in jdtrans under VisualAge or else we get a dup symbol error
+  */
+  JMETHOD(void, start_input_pass2, (j_decompress_ptr cinfo));
+#else
   JMETHOD(void, start_input_pass, (j_decompress_ptr cinfo));
+#endif
+
   JMETHOD(int, consume_data, (j_decompress_ptr cinfo));
   JMETHOD(void, start_output_pass, (j_decompress_ptr cinfo));
   JMETHOD(int, decompress_data, (j_decompress_ptr cinfo,
diff --git a/src/mac/app.cpp b/src/mac/app.cpp
index 587cdeb344..c10922c3a9 100644
--- a/src/mac/app.cpp
+++ b/src/mac/app.cpp
@@ -101,6 +101,8 @@ long      wxApp::s_lastModifiers = 0 ;
 bool      wxApp::s_macDefaultEncodingIsPC = true ;
 bool      wxApp::s_macSupportPCMenuShortcuts = true ;
 long      wxApp::s_macAboutMenuItemId = wxID_ABOUT ;
+long      wxApp::s_macPreferencesMenuItemId = 0 ;
+long      wxApp::s_macExitMenuItemId = wxID_EXIT ;
 wxString  wxApp::s_macHelpMenuTitleName = "&Help" ;
 
 pascal OSErr AEHandleODoc( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
@@ -923,10 +925,7 @@ int wxEntry( int argc, char *argv[] , bool enterLoop )
     // application (otherwise applications would need to handle it)
 
     if (argc > 1) {
-        char theArg[6] = "";
-        strncpy(theArg, argv[1], 5);
-
-        if (strcmp(theArg, "-psn_") == 0) {
+        if (strncmp(argv[1], "-psn_", 5) == 0) {
             // assume the argument is always the only one and remove it
             --argc;
         }
@@ -1443,7 +1442,9 @@ void wxApp::MacHandleModifierEvents( WXEVENTREF evr )
     EventRecord* ev = (EventRecord*) evr ;
 #if TARGET_CARBON
     if ( ev->what == mouseDown || ev->what == mouseUp || ev->what == activateEvt ||
-        ev->what == keyDown || ev->what == autoKey || ev->what == keyUp || ev->what == nullEvent )
+        ev->what == keyDown || ev->what == autoKey || ev->what == keyUp || ev->what == kHighLevelEvent ||
+        ev->what == nullEvent
+        )
     {
         // in these cases the modifiers are already correctly setup by carbon
     }
@@ -1628,23 +1629,28 @@ void wxApp::MacHandleMouseDownEvent( WXEVENTREF evr )
             break;
         case inGrow:
           {
-                int growResult = GrowWindow(window , ev->where, &screenBits.bounds);
-                if (growResult != 0)
+                Rect newContentRect ;
+                Rect constraintRect ;
+                constraintRect.top = win->GetMinHeight() ;
+                if ( constraintRect.top == -1 )
+                    constraintRect.top  = 0 ;
+                constraintRect.left = win->GetMinWidth() ;
+                if ( constraintRect.left == -1 )
+                    constraintRect.left  = 0 ;
+                constraintRect.right = win->GetMaxWidth() ;
+                if ( constraintRect.right == -1 )
+                    constraintRect.right  = 32000 ;
+                constraintRect.bottom = win->GetMaxHeight() ;
+                if ( constraintRect.bottom == -1 )
+                    constraintRect.bottom = 32000 ;
+
+                Boolean growResult = ResizeWindow( window , ev->where ,
+                    &constraintRect , &newContentRect ) ;
+                if ( growResult )
                 {
-                    int newWidth = LoWord(growResult);
-                    int newHeight = HiWord(growResult);
-                    int oldWidth, oldHeight;
-
-
-                    if (win)
-                    {
-                        win->GetSize(&oldWidth, &oldHeight);
-                        if (newWidth == 0)
-                            newWidth = oldWidth;
-                        if (newHeight == 0)
-                            newHeight = oldHeight;
-                        win->SetSize( -1, -1 , newWidth, newHeight, wxSIZE_USE_EXISTING);
-                    }
+                    win->SetSize( newContentRect.left , newContentRect.top , 
+                        newContentRect.right - newContentRect.left , 
+                        newContentRect.bottom - newContentRect.top, wxSIZE_USE_EXISTING);
                 }
                 s_lastMouseDown = 0;
           }
@@ -2309,35 +2315,31 @@ void wxApp::MacHandleMenuSelect( int macMenuId , int macMenuItemNum )
     }
     else
     {
+        MenuCommand id ;
+        GetMenuItemCommandID( GetMenuHandle(macMenuId) , macMenuItemNum , &id ) ;
+        wxMenuBar* mbar = wxMenuBar::MacGetInstalledMenuBar() ;
+        wxMenu* menu = NULL ;
+        wxMenuItem* item = NULL ;
+        if ( mbar )
+        {
+            item = mbar->FindItem( id , &menu ) ;
+        }
+        wxCHECK_RET( item != NULL && menu != NULL && mbar != NULL, wxT("error in menu item callback") );
+            
+        if (item->IsCheckable())
+        {
+            item->Check( !item->IsChecked() ) ;
+        }
+		
+		menu->SendEvent( id , item->IsCheckable() ? item->IsChecked() : -1 ) ;
+		/*
         wxWindow* frontwindow = wxFindWinFromMacWindow( ::FrontWindow() )  ;
-        if ( frontwindow && wxMenuBar::MacGetInstalledMenuBar() )
-            wxMenuBar::MacGetInstalledMenuBar()->MacMenuSelect( frontwindow->GetEventHandler() , 0 , macMenuId , macMenuItemNum ) ;
+        wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, id );
+        event.m_timeStamp =  ((EventRecord*) MacGetCurrentEvent())->when ;
+        event.SetEventObject(menu);
+        event.SetInt(item->IsCheckable() ? item->IsChecked() : -1);
+        frontwindow->GetEventHandler()->ProcessEvent(event); 
+        */
     }
     HiliteMenu(0);
 }
-
-/*
-long wxApp::MacTranslateKey(char key, int mods)
-{
-}
-
-void wxApp::MacAdjustCursor()
-{
-}
-
-*/
-/*
-void
-wxApp::macAdjustCursor()
-{
-  if (ev->what != kHighLevelEvent)
-  {
-    wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow());
-    if (theMacWxFrame)
-    {
-        if (!theMacWxFrame->MacAdjustCursor(ev->where))
-        ::SetCursor(&(qd.arrow));
-      }
-  }
-}
-*/
diff --git a/src/mac/bitmap.cpp b/src/mac/bitmap.cpp
index 08590d1006..cd1c398c99 100644
--- a/src/mac/bitmap.cpp
+++ b/src/mac/bitmap.cpp
@@ -272,14 +272,19 @@ PicHandle wxMacCreatePict(GWorldPtr wp, GWorldPtr mask)
     
   SetGWorld( wp , NULL ) ;
   Rect portRect ;
-  GetPortBounds( wp , &portRect ) ;
-
+  if ( clipRgn )
+    GetRegionBounds( clipRgn , &portRect ) ;   
+  else
+  	GetPortBounds( wp , &portRect ) ;
   pict = OpenPicture(&portRect);   
   if(pict)  
   {
     RGBForeColor( &black ) ;
     RGBBackColor( &white ) ;
-
+    
+    if ( clipRgn )
+    	SetClip( clipRgn ) ;
+    
     LockPixels( GetGWorldPixMap( wp ) ) ;
     CopyBits(GetPortBitMapForCopyBits(wp),          
             GetPortBitMapForCopyBits(wp),       
@@ -290,10 +295,12 @@ PicHandle wxMacCreatePict(GWorldPtr wp, GWorldPtr mask)
     ClosePicture();                 
   }
   SetGWorld( origPort , origDev ) ;
+  if ( clipRgn )
+  	DisposeRgn( clipRgn ) ;
   return pict;                  
 }
 
-void wxMacCreateBitmapButton( ControlButtonContentInfo*info , const wxBitmap& bitmap , bool forceColorIcon ) 
+void wxMacCreateBitmapButton( ControlButtonContentInfo*info , const wxBitmap& bitmap , int forceType ) 
 {
     memset( info , 0 , sizeof(ControlButtonContentInfo) ) ;
     if ( bitmap.Ok() )
@@ -309,7 +316,7 @@ void wxMacCreateBitmapButton( ControlButtonContentInfo*info , const wxBitmap& bi
         }
         else if ( bmap->m_bitmapType == kMacBitmapTypeGrafWorld )
         {
-            if ( (forceColorIcon || bmap->m_width == bmap->m_height) && ((bmap->m_width & 0x3) == 0) )
+            if ( (forceType == kControlContentCIconHandle || ( bmap->m_width == bmap->m_height && forceType != kControlContentPictHandle ) ) && ((bmap->m_width & 0x3) == 0) )
             {
                 info->contentType = kControlContentCIconHandle ;
                 if ( bitmap.GetMask() )
@@ -771,6 +778,8 @@ wxImage wxBitmap::ConvertToImage() const
 
     GWorldPtr origPort;
     GDHandle  origDevice;
+    RgnHandle maskRgn = NULL ;
+    GWorldPtr tempPort = NULL ;
     int      index;
     RGBColor color;
     // background color set to RGB(16,16,16) in consistent with wxGTK
@@ -779,9 +788,28 @@ wxImage wxBitmap::ConvertToImage() const
     wxMask  *mask = GetMask();
 
     GetGWorld( &origPort, &origDevice );
-    LockPixels(GetGWorldPixMap( (GWorldPtr) GetHBITMAP()));
-    SetGWorld(  (GWorldPtr) GetHBITMAP(), NULL);
-
+    if ( GetBitmapType() != kMacBitmapTypeGrafWorld )
+    {
+    	tempPort = wxMacCreateGWorld( width , height , -1) ;
+    }
+    else
+    {
+    	tempPort =  (GWorldPtr) GetHBITMAP() ;
+	}
+	LockPixels(GetGWorldPixMap(tempPort));
+	SetGWorld( tempPort, NULL);
+	if ( GetBitmapType() == kMacBitmapTypePict || GetBitmapType() == kMacBitmapTypeIcon )
+	{
+        Rect bitmaprect = { 0 , 0 , height, width };
+    	if ( GetBitmapType() == kMacBitmapTypeIcon )
+    	{
+        	::PlotCIconHandle( &bitmaprect , atNone , ttNone , MAC_WXHICON(GetHICON()) ) ;
+        	maskRgn = NewRgn() ;
+        	BitMapToRegion( maskRgn , &(**(MAC_WXHICON(GetHICON()))).iconMask ) ; 
+        }
+     	else
+         	::DrawPicture( (PicHandle) GetPict(), &bitmaprect ) ;
+	}
     // Copy data into image
     index = 0;
     for (int yy = 0; yy < height; yy++)
@@ -795,27 +823,50 @@ wxImage wxBitmap::ConvertToImage() const
             data[index    ] = r;
             data[index + 1] = g;
             data[index + 2] = b;
-            if (mask)
-            {
-                if (mask->PointMasked(xx,yy))
-                {
+            if ( maskRgn )
+            {	
+            	Point pt ;
+            	pt.h = xx ;
+            	pt.v = yy ;
+            	if ( !PtInRgn( pt , maskRgn ) )
+            	{
                     data[index    ] = mask_r;
                     data[index + 1] = mask_g;
                     data[index + 2] = mask_b;
-                }
+            	}
+            }
+            else
+            {
+	            if (mask)
+	            {
+	                if (mask->PointMasked(xx,yy))
+	                {
+	                    data[index    ] = mask_r;
+	                    data[index + 1] = mask_g;
+	                    data[index + 2] = mask_b;
+	                }
+	            }
             }
             index += 3;
         }
     }
-    if (mask)
+    if (mask || maskRgn )
     {
         image.SetMaskColour( mask_r, mask_g, mask_b );
         image.SetMask( true );
     }
 
     // Free resources
-    UnlockPixels(GetGWorldPixMap( (GWorldPtr) GetHBITMAP()));
+    UnlockPixels(GetGWorldPixMap( tempPort ));
     SetGWorld(origPort, origDevice);
+    if ( GetBitmapType() != kMacBitmapTypeGrafWorld )
+    {
+    	wxMacDestroyGWorld( tempPort ) ;
+    }
+    if ( maskRgn )
+    {
+    	DisposeRgn( maskRgn ) ;
+    }
 
     return image;
 }
diff --git a/src/mac/carbon/app.cpp b/src/mac/carbon/app.cpp
index 587cdeb344..c10922c3a9 100644
--- a/src/mac/carbon/app.cpp
+++ b/src/mac/carbon/app.cpp
@@ -101,6 +101,8 @@ long      wxApp::s_lastModifiers = 0 ;
 bool      wxApp::s_macDefaultEncodingIsPC = true ;
 bool      wxApp::s_macSupportPCMenuShortcuts = true ;
 long      wxApp::s_macAboutMenuItemId = wxID_ABOUT ;
+long      wxApp::s_macPreferencesMenuItemId = 0 ;
+long      wxApp::s_macExitMenuItemId = wxID_EXIT ;
 wxString  wxApp::s_macHelpMenuTitleName = "&Help" ;
 
 pascal OSErr AEHandleODoc( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
@@ -923,10 +925,7 @@ int wxEntry( int argc, char *argv[] , bool enterLoop )
     // application (otherwise applications would need to handle it)
 
     if (argc > 1) {
-        char theArg[6] = "";
-        strncpy(theArg, argv[1], 5);
-
-        if (strcmp(theArg, "-psn_") == 0) {
+        if (strncmp(argv[1], "-psn_", 5) == 0) {
             // assume the argument is always the only one and remove it
             --argc;
         }
@@ -1443,7 +1442,9 @@ void wxApp::MacHandleModifierEvents( WXEVENTREF evr )
     EventRecord* ev = (EventRecord*) evr ;
 #if TARGET_CARBON
     if ( ev->what == mouseDown || ev->what == mouseUp || ev->what == activateEvt ||
-        ev->what == keyDown || ev->what == autoKey || ev->what == keyUp || ev->what == nullEvent )
+        ev->what == keyDown || ev->what == autoKey || ev->what == keyUp || ev->what == kHighLevelEvent ||
+        ev->what == nullEvent
+        )
     {
         // in these cases the modifiers are already correctly setup by carbon
     }
@@ -1628,23 +1629,28 @@ void wxApp::MacHandleMouseDownEvent( WXEVENTREF evr )
             break;
         case inGrow:
           {
-                int growResult = GrowWindow(window , ev->where, &screenBits.bounds);
-                if (growResult != 0)
+                Rect newContentRect ;
+                Rect constraintRect ;
+                constraintRect.top = win->GetMinHeight() ;
+                if ( constraintRect.top == -1 )
+                    constraintRect.top  = 0 ;
+                constraintRect.left = win->GetMinWidth() ;
+                if ( constraintRect.left == -1 )
+                    constraintRect.left  = 0 ;
+                constraintRect.right = win->GetMaxWidth() ;
+                if ( constraintRect.right == -1 )
+                    constraintRect.right  = 32000 ;
+                constraintRect.bottom = win->GetMaxHeight() ;
+                if ( constraintRect.bottom == -1 )
+                    constraintRect.bottom = 32000 ;
+
+                Boolean growResult = ResizeWindow( window , ev->where ,
+                    &constraintRect , &newContentRect ) ;
+                if ( growResult )
                 {
-                    int newWidth = LoWord(growResult);
-                    int newHeight = HiWord(growResult);
-                    int oldWidth, oldHeight;
-
-
-                    if (win)
-                    {
-                        win->GetSize(&oldWidth, &oldHeight);
-                        if (newWidth == 0)
-                            newWidth = oldWidth;
-                        if (newHeight == 0)
-                            newHeight = oldHeight;
-                        win->SetSize( -1, -1 , newWidth, newHeight, wxSIZE_USE_EXISTING);
-                    }
+                    win->SetSize( newContentRect.left , newContentRect.top , 
+                        newContentRect.right - newContentRect.left , 
+                        newContentRect.bottom - newContentRect.top, wxSIZE_USE_EXISTING);
                 }
                 s_lastMouseDown = 0;
           }
@@ -2309,35 +2315,31 @@ void wxApp::MacHandleMenuSelect( int macMenuId , int macMenuItemNum )
     }
     else
     {
+        MenuCommand id ;
+        GetMenuItemCommandID( GetMenuHandle(macMenuId) , macMenuItemNum , &id ) ;
+        wxMenuBar* mbar = wxMenuBar::MacGetInstalledMenuBar() ;
+        wxMenu* menu = NULL ;
+        wxMenuItem* item = NULL ;
+        if ( mbar )
+        {
+            item = mbar->FindItem( id , &menu ) ;
+        }
+        wxCHECK_RET( item != NULL && menu != NULL && mbar != NULL, wxT("error in menu item callback") );
+            
+        if (item->IsCheckable())
+        {
+            item->Check( !item->IsChecked() ) ;
+        }
+		
+		menu->SendEvent( id , item->IsCheckable() ? item->IsChecked() : -1 ) ;
+		/*
         wxWindow* frontwindow = wxFindWinFromMacWindow( ::FrontWindow() )  ;
-        if ( frontwindow && wxMenuBar::MacGetInstalledMenuBar() )
-            wxMenuBar::MacGetInstalledMenuBar()->MacMenuSelect( frontwindow->GetEventHandler() , 0 , macMenuId , macMenuItemNum ) ;
+        wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, id );
+        event.m_timeStamp =  ((EventRecord*) MacGetCurrentEvent())->when ;
+        event.SetEventObject(menu);
+        event.SetInt(item->IsCheckable() ? item->IsChecked() : -1);
+        frontwindow->GetEventHandler()->ProcessEvent(event); 
+        */
     }
     HiliteMenu(0);
 }
-
-/*
-long wxApp::MacTranslateKey(char key, int mods)
-{
-}
-
-void wxApp::MacAdjustCursor()
-{
-}
-
-*/
-/*
-void
-wxApp::macAdjustCursor()
-{
-  if (ev->what != kHighLevelEvent)
-  {
-    wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow());
-    if (theMacWxFrame)
-    {
-        if (!theMacWxFrame->MacAdjustCursor(ev->where))
-        ::SetCursor(&(qd.arrow));
-      }
-  }
-}
-*/
diff --git a/src/mac/carbon/bitmap.cpp b/src/mac/carbon/bitmap.cpp
index 08590d1006..cd1c398c99 100644
--- a/src/mac/carbon/bitmap.cpp
+++ b/src/mac/carbon/bitmap.cpp
@@ -272,14 +272,19 @@ PicHandle wxMacCreatePict(GWorldPtr wp, GWorldPtr mask)
     
   SetGWorld( wp , NULL ) ;
   Rect portRect ;
-  GetPortBounds( wp , &portRect ) ;
-
+  if ( clipRgn )
+    GetRegionBounds( clipRgn , &portRect ) ;   
+  else
+  	GetPortBounds( wp , &portRect ) ;
   pict = OpenPicture(&portRect);   
   if(pict)  
   {
     RGBForeColor( &black ) ;
     RGBBackColor( &white ) ;
-
+    
+    if ( clipRgn )
+    	SetClip( clipRgn ) ;
+    
     LockPixels( GetGWorldPixMap( wp ) ) ;
     CopyBits(GetPortBitMapForCopyBits(wp),          
             GetPortBitMapForCopyBits(wp),       
@@ -290,10 +295,12 @@ PicHandle wxMacCreatePict(GWorldPtr wp, GWorldPtr mask)
     ClosePicture();                 
   }
   SetGWorld( origPort , origDev ) ;
+  if ( clipRgn )
+  	DisposeRgn( clipRgn ) ;
   return pict;                  
 }
 
-void wxMacCreateBitmapButton( ControlButtonContentInfo*info , const wxBitmap& bitmap , bool forceColorIcon ) 
+void wxMacCreateBitmapButton( ControlButtonContentInfo*info , const wxBitmap& bitmap , int forceType ) 
 {
     memset( info , 0 , sizeof(ControlButtonContentInfo) ) ;
     if ( bitmap.Ok() )
@@ -309,7 +316,7 @@ void wxMacCreateBitmapButton( ControlButtonContentInfo*info , const wxBitmap& bi
         }
         else if ( bmap->m_bitmapType == kMacBitmapTypeGrafWorld )
         {
-            if ( (forceColorIcon || bmap->m_width == bmap->m_height) && ((bmap->m_width & 0x3) == 0) )
+            if ( (forceType == kControlContentCIconHandle || ( bmap->m_width == bmap->m_height && forceType != kControlContentPictHandle ) ) && ((bmap->m_width & 0x3) == 0) )
             {
                 info->contentType = kControlContentCIconHandle ;
                 if ( bitmap.GetMask() )
@@ -771,6 +778,8 @@ wxImage wxBitmap::ConvertToImage() const
 
     GWorldPtr origPort;
     GDHandle  origDevice;
+    RgnHandle maskRgn = NULL ;
+    GWorldPtr tempPort = NULL ;
     int      index;
     RGBColor color;
     // background color set to RGB(16,16,16) in consistent with wxGTK
@@ -779,9 +788,28 @@ wxImage wxBitmap::ConvertToImage() const
     wxMask  *mask = GetMask();
 
     GetGWorld( &origPort, &origDevice );
-    LockPixels(GetGWorldPixMap( (GWorldPtr) GetHBITMAP()));
-    SetGWorld(  (GWorldPtr) GetHBITMAP(), NULL);
-
+    if ( GetBitmapType() != kMacBitmapTypeGrafWorld )
+    {
+    	tempPort = wxMacCreateGWorld( width , height , -1) ;
+    }
+    else
+    {
+    	tempPort =  (GWorldPtr) GetHBITMAP() ;
+	}
+	LockPixels(GetGWorldPixMap(tempPort));
+	SetGWorld( tempPort, NULL);
+	if ( GetBitmapType() == kMacBitmapTypePict || GetBitmapType() == kMacBitmapTypeIcon )
+	{
+        Rect bitmaprect = { 0 , 0 , height, width };
+    	if ( GetBitmapType() == kMacBitmapTypeIcon )
+    	{
+        	::PlotCIconHandle( &bitmaprect , atNone , ttNone , MAC_WXHICON(GetHICON()) ) ;
+        	maskRgn = NewRgn() ;
+        	BitMapToRegion( maskRgn , &(**(MAC_WXHICON(GetHICON()))).iconMask ) ; 
+        }
+     	else
+         	::DrawPicture( (PicHandle) GetPict(), &bitmaprect ) ;
+	}
     // Copy data into image
     index = 0;
     for (int yy = 0; yy < height; yy++)
@@ -795,27 +823,50 @@ wxImage wxBitmap::ConvertToImage() const
             data[index    ] = r;
             data[index + 1] = g;
             data[index + 2] = b;
-            if (mask)
-            {
-                if (mask->PointMasked(xx,yy))
-                {
+            if ( maskRgn )
+            {	
+            	Point pt ;
+            	pt.h = xx ;
+            	pt.v = yy ;
+            	if ( !PtInRgn( pt , maskRgn ) )
+            	{
                     data[index    ] = mask_r;
                     data[index + 1] = mask_g;
                     data[index + 2] = mask_b;
-                }
+            	}
+            }
+            else
+            {
+	            if (mask)
+	            {
+	                if (mask->PointMasked(xx,yy))
+	                {
+	                    data[index    ] = mask_r;
+	                    data[index + 1] = mask_g;
+	                    data[index + 2] = mask_b;
+	                }
+	            }
             }
             index += 3;
         }
     }
-    if (mask)
+    if (mask || maskRgn )
     {
         image.SetMaskColour( mask_r, mask_g, mask_b );
         image.SetMask( true );
     }
 
     // Free resources
-    UnlockPixels(GetGWorldPixMap( (GWorldPtr) GetHBITMAP()));
+    UnlockPixels(GetGWorldPixMap( tempPort ));
     SetGWorld(origPort, origDevice);
+    if ( GetBitmapType() != kMacBitmapTypeGrafWorld )
+    {
+    	wxMacDestroyGWorld( tempPort ) ;
+    }
+    if ( maskRgn )
+    {
+    	DisposeRgn( maskRgn ) ;
+    }
 
     return image;
 }
diff --git a/src/mac/carbon/checklst.cpp b/src/mac/carbon/checklst.cpp
index bba473b606..3bb48dec08 100644
--- a/src/mac/carbon/checklst.cpp
+++ b/src/mac/carbon/checklst.cpp
@@ -271,7 +271,7 @@ bool wxCheckListBox::Create(wxWindow *parent,
     }
     else
     {
-        options = lOnlyOne ;
+        options = (OptionBits) lOnlyOne ;
     }
     SetListSelectionFlags((ListHandle)m_macList, options);
     
diff --git a/src/mac/carbon/cursor.cpp b/src/mac/carbon/cursor.cpp
index 23b9eb4c0c..247d910752 100644
--- a/src/mac/carbon/cursor.cpp
+++ b/src/mac/carbon/cursor.cpp
@@ -217,8 +217,9 @@ void wxCursor::MacInstall() const
 {
 	if ( m_refData && M_CURSORDATA->m_hCursor )
 	{
-		::SetCursor(  *((CursHandle)M_CURSORDATA->m_hCursor) ) ;
-		gMacCurrentCursor = (CursHandle)M_CURSORDATA->m_hCursor ;
+		CursHandle ch = ((CursHandle)M_CURSORDATA->m_hCursor) ;
+		::SetCursor(  *ch ) ;
+		gMacCurrentCursor = ch ;
 	}
 	else
 	{
diff --git a/src/mac/carbon/dc.cpp b/src/mac/carbon/dc.cpp
index 14ced3443b..d9b5abecbd 100644
--- a/src/mac/carbon/dc.cpp
+++ b/src/mac/carbon/dc.cpp
@@ -2041,7 +2041,8 @@ void wxDC::MacInstallPen() const
 	        case wxUSER_DASH :
 	            {
 	                wxDash* dash ;
-                    int number = m_pen.GetDashes(&dash) ;
+                    m_pen.GetDashes(&dash) ;
+
 	                // right now we don't allocate larger pixmaps
 	                // int number = 
 	                m_pen.GetDashes(&dash) ;
diff --git a/src/mac/carbon/filedlg.cpp b/src/mac/carbon/filedlg.cpp
index cef71e0136..f4e41ae710 100644
--- a/src/mac/carbon/filedlg.cpp
+++ b/src/mac/carbon/filedlg.cpp
@@ -46,15 +46,15 @@ extern bool gUseNavServices ;
 // and a copy of the "previous" file spec of the reply record
 // so we can see if the selection has changed
 
-const int kwxMacFileTypes = 10 ;
-
 struct OpenUserDataRec {
   int           currentfilter ;
-  wxString      name [kwxMacFileTypes] ;
-  wxString      extensions[kwxMacFileTypes] ;
-	OSType				filtermactypes[kwxMacFileTypes] ;
-	int					  numfilters ;
+  bool				saveMode ;
+  wxArrayString      name ;
+  wxArrayString      extensions ;
+  wxArrayLong		filtermactypes ;
+  NavMenuItemSpecArrayHandle menuitems ;
 };
+
 typedef struct OpenUserDataRec
 	OpenUserDataRec, *OpenUserDataRecPtr;
 
@@ -75,23 +75,40 @@ NavEventProc(
 	NavCBRecPtr					ioParams,
 	NavCallBackUserData	ioUserData	)
 {
-	  OpenUserDataRec * data = ( OpenUserDataRec *) ioUserData ;
+	OpenUserDataRec * data = ( OpenUserDataRec *) ioUserData ;
 	if (inSelector == kNavCBEvent) {	
-			// In Universal Headers 3.2, Apple changed the definition of
-		/*
-		#if UNIVERSAL_INTERFACES_VERSION >= 0x0320 // Universal Headers 3.2
-			UModalAlerts::ProcessModalEvent(*(ioParams->eventData.eventDataParms.event));
-			
-		#else
-			UModalAlerts::ProcessModalEvent(*(ioParams->eventData.event));
-		#endif
-		*/
-		
          wxTheApp->MacHandleOneEvent(ioParams->eventData.eventDataParms.event);
-	} else if ( inSelector == kNavCBPopupMenuSelect )
+	} 
+	else if ( inSelector == kNavCBStart )
+	{
+		if ( data->menuitems )
+			NavCustomControl(ioParams->context, kNavCtlSelectCustomType, &(*data->menuitems)[data->currentfilter]);
+	}
+	else if ( inSelector == kNavCBPopupMenuSelect )
 	{
-	  NavMenuItemSpec * menu = (NavMenuItemSpec *) ioParams->eventData.eventDataParms.param ;
-	  data->currentfilter = menu->menuType ;
+		NavMenuItemSpec * menu = (NavMenuItemSpec *) ioParams->eventData.eventDataParms.param ;
+		if ( menu->menuCreator == 'WXNG' )
+		{
+			data->currentfilter = menu->menuType ;
+			if ( data->saveMode )
+			{
+				int i = menu->menuType ;
+				wxString extension =  data->extensions[i].AfterLast('.') ;
+				extension.MakeLower() ;
+				Str255 filename ;
+				// get the current filename
+				NavCustomControl(ioParams->context, kNavCtlGetEditFileName, &filename);
+				CopyPascalStringToC( filename , (char*) filename ) ;
+				wxString sfilename( filename ) ;
+				int pos = sfilename.Find('.',TRUE) ;
+				if ( pos != wxNOT_FOUND )
+				{
+					sfilename = sfilename.Left(pos+1)+extension ;
+					CopyCStringToPascal( sfilename.c_str() , filename ) ;
+					NavCustomControl(ioParams->context, kNavCtlSetEditFileName, &filename);
+				}
+			}
+	  	}
 	}
 }
 
@@ -117,23 +134,25 @@ OSType gfiltersmac[] =
 
 void MakeUserDataRec(OpenUserDataRec	*myData , const wxString& filter )
 {
-  myData->currentfilter = 0 ;
-  
+	myData->menuitems = NULL ;
+  	myData->currentfilter = 0 ;
+  	myData->saveMode = FALSE ;
+  	
 	if ( filter && filter[0] )
 	{
 	  wxString filter2(filter) ;
     int filterIndex = 0;
     bool isName = true ;
     wxString current ;
-    for( unsigned int i = 0; i < filter2.Len(); i++ )
+    for( unsigned int i = 0; i < filter2.Len() ; i++ )
     {
        if( filter2.GetChar(i) == wxT('|') )
        {
         if( isName ) {
-          myData->name[filterIndex] = current ;
+          myData->name.Add( current ) ;
         }
         else {
-          myData->extensions[filterIndex] = current.MakeUpper() ;
+          myData->extensions.Add( current.MakeUpper() ) ;
           ++filterIndex ;
         }
         isName = !isName ;
@@ -149,35 +168,33 @@ void MakeUserDataRec(OpenUserDataRec	*myData , const wxString& filter )
       
     wxASSERT_MSG( filterIndex == 0 || !isName , "incorrect format of format string" ) ;
     if ( current.IsEmpty() )
-        myData->extensions[filterIndex] = myData->name[filterIndex] ;
+        myData->extensions.Add( myData->name[filterIndex] ) ;
     else
-        myData->extensions[filterIndex] = current.MakeUpper() ;
+        myData->extensions.Add( current.MakeUpper() ) ;
+    if ( filterIndex == 0 || isName )
+        myData->name.Add( current.MakeUpper() ) ;
+        
     ++filterIndex ;
 
 
-		myData->numfilters = filterIndex ;
-		for ( int i = 0 ; i < myData->numfilters ; i++ )
+        const size_t extCount = myData->extensions.GetCount();
+		for ( size_t i = 0 ; i < extCount; i++ )
 		{
 			int j ;
 			for ( j = 0 ; gfilters[j] ; j++ )
 			{
 				if ( strcmp( myData->extensions[i] , gfilters[j] ) == 0 )
 				{
-					myData->filtermactypes[i] = gfiltersmac[j] ;
+				    myData->filtermactypes.Add( gfiltersmac[j] ) ;
 					break ;
 				}
 			}
 			if( gfilters[j] == NULL )
 			{
-				myData->filtermactypes[i] = '****' ;
+				myData->filtermactypes.Add( '****' ) ;
 			}
 		}
 	}
-	else
-	{
-		myData->numfilters = 0 ;
-	}
-
 }
 
 static Boolean CheckFile( ConstStr255Param name , OSType type , OpenUserDataRecPtr data)
@@ -193,7 +210,7 @@ static Boolean CheckFile( ConstStr255Param name , OSType type , OpenUserDataRecP
     wxString file(filename) ;
     file.MakeUpper() ;
     
-    if ( data->numfilters > 0 )
+    if ( data->extensions.GetCount() > 0 )
     {
 	//for ( int i = 0 ; i < data->numfilters ; ++i )
 	    int i = data->currentfilter ;
@@ -201,7 +218,7 @@ static Boolean CheckFile( ConstStr255Param name , OSType type , OpenUserDataRecP
 	      return true ;
 	
 	    {
-	      if ( type == data->filtermactypes[i] )
+	      if ( type == (OSType)data->filtermactypes[i] )
 		      return true ;
 	    
 	      wxStringTokenizer tokenizer( data->extensions[i] , ";" ) ;
@@ -314,7 +331,7 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
         const wxString& defaultDir, const wxString& defaultFileName, const wxString& wildCard,
         long style, const wxPoint& pos)
 {
-	  wxASSERT_MSG( NavServicesAvailable() , "Navigation Services are not running" ) ;
+	wxASSERT_MSG( NavServicesAvailable() , "Navigation Services are not running" ) ;
     m_message = message;
     m_dialogStyle = style;
     m_parent = parent;
@@ -322,7 +339,7 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
     m_fileName = defaultFileName;
     m_dir = defaultDir;
     m_wildCard = wildCard;
-    m_filterIndex = 1;
+    m_filterIndex = 0;
 }
 
 
@@ -408,10 +425,30 @@ int wxFileDialog::ShowModal()
 		c2pstr((char *)mNavOptions.savedFileName ) ;
 #endif
 
+		OpenUserDataRec			myData;
+		MakeUserDataRec( &myData , m_wildCard ) ;
+		myData.currentfilter = m_filterIndex ;
+	  	if ( myData.extensions.GetCount() > 0 )
+	  	{
+		  	mNavOptions.popupExtension = (NavMenuItemSpecArrayHandle) NewHandle( sizeof( NavMenuItemSpec ) * myData.extensions.GetCount() ) ;
+			myData.menuitems = mNavOptions.popupExtension ;
+		  	for ( int i = 0 ; i < myData.extensions.GetCount() ; ++i ) 
+		  	{
+		  	    (*mNavOptions.popupExtension)[i].version = kNavMenuItemSpecVersion ;
+		  	    (*mNavOptions.popupExtension)[i].menuCreator = 'WXNG' ;
+		  	    (*mNavOptions.popupExtension)[i].menuType = i ;
+	          #if TARGET_CARBON
+	          		c2pstrcpy((StringPtr)(*mNavOptions.popupExtension)[i].menuItemName, myData.name[i]) ;
+	          #else
+	          		strcpy((char *)(*mNavOptions.popupExtension)[i].menuItemName, myData.name[i]) ;
+	          		c2pstr((char *)(*mNavOptions.popupExtension)[i].menuItemName ) ;
+	          #endif
+	  	 	}
+		}
 		if ( m_dialogStyle & wxSAVE )
 		{
-			
-			mNavOptions.dialogOptionFlags |= kNavNoTypePopup ;
+		  	myData.saveMode = true ;
+
 			mNavOptions.dialogOptionFlags |= kNavDontAutoTranslate ;
 			mNavOptions.dialogOptionFlags |= kNavDontAddTranslateItems ;
 			
@@ -420,33 +457,16 @@ int wxFileDialog::ShowModal()
 						&mNavReply,
 						&mNavOptions,
 						sStandardNavEventFilter ,
-						'TEXT',
-						'TEXT',
-						0L);					// User Data
+						NULL,
+						kNavGenericSignature,
+						&myData);					// User Data
+			m_filterIndex = myData.currentfilter ;
 		}
 		else
 		{
-	  	OpenUserDataRec			myData;
-	  	MakeUserDataRec( &myData , m_wildCard ) ;
-	  	NavTypeListHandle typelist = NULL ;
-
-	  	if ( myData.numfilters > 0 )
-	  	{
-	  	  mNavOptions.popupExtension = (NavMenuItemSpecArrayHandle) NewHandle( sizeof( NavMenuItemSpec ) * myData.numfilters ) ;
-	  	  for ( int i = 0 ; i < myData.numfilters ; ++i ) {
-	  	    (*mNavOptions.popupExtension)[i].version = kNavMenuItemSpecVersion ;
-	  	    (*mNavOptions.popupExtension)[i].menuCreator = 'WXNG' ;
-	  	    (*mNavOptions.popupExtension)[i].menuType = i ;
-          #if TARGET_CARBON
-          		c2pstrcpy((StringPtr)(*mNavOptions.popupExtension)[i].menuItemName, myData.name[i]) ;
-          #else
-          		strcpy((char *)(*mNavOptions.popupExtension)[i].menuItemName, myData.name[i]) ;
-          		c2pstr((char *)(*mNavOptions.popupExtension)[i].menuItemName ) ;
-          #endif
-	  	  }
-	  	}
+		  	myData.saveMode = false ;
 
-      mNavFilterUPP = NewNavObjectFilterUPP( CrossPlatformFilterCallback ) ;
+      		mNavFilterUPP = NewNavObjectFilterUPP( CrossPlatformFilterCallback ) ;
 			if ( m_dialogStyle & wxMULTIPLE )
 				mNavOptions.dialogOptionFlags |= kNavAllowMultipleFiles ;
 			else
@@ -459,10 +479,9 @@ int wxFileDialog::ShowModal()
 						sStandardNavEventFilter ,
 						mNavPreviewUPP,
 						mNavFilterUPP,
-						typelist /*inFileTypes.TypeListHandle() */,
-						&myData);							// User Data
-			if ( typelist )
-			  DisposeHandle( (Handle) typelist ) ;
+						NULL ,
+						&myData);						
+			m_filterIndex = myData.currentfilter ;
 		}
 		
 		DisposeNavObjectFilterUPP(mNavFilterUPP);
diff --git a/src/mac/carbon/files.lst b/src/mac/carbon/files.lst
index 009570dcbb..b8705f0122 100644
--- a/src/mac/carbon/files.lst
+++ b/src/mac/carbon/files.lst
@@ -271,7 +271,6 @@ ALL_SOURCES = \
 		html/m_layout.cpp \
 		html/m_links.cpp \
 		html/m_list.cpp \
-		html/m_meta.cpp \
 		html/m_pre.cpp \
 		html/m_style.cpp \
 		html/m_tables.cpp \
@@ -621,7 +620,7 @@ ALL_HEADERS = \
 		generic/imaglist.h \
 		generic/laywin.h \
 		generic/listctrl.h \
-		generic/mdig.cpp \
+		generic/mdig.h \
 		generic/msgdlgg.h \
 		generic/notebook.h \
 		generic/paletteg.h \
@@ -665,7 +664,6 @@ ALL_HEADERS = \
 		protocol/protocol.h
 
 COMMONOBJS = \
-		parser.o \
 		appcmn.o \
 		artprov.o \
 		artstd.o \
@@ -953,7 +951,6 @@ HTMLOBJS = \
 		m_layout.o \
 		m_links.o \
 		m_list.o \
-		m_meta.o \
 		m_pre.o \
 		m_style.o \
 		m_tables.o \
diff --git a/src/mac/carbon/font.cpp b/src/mac/carbon/font.cpp
index eec71c52ee..d1b4798cc4 100644
--- a/src/mac/carbon/font.cpp
+++ b/src/mac/carbon/font.cpp
@@ -89,6 +89,10 @@ void wxFontRefData::MacFindFont()
 				::GetFNum( "\pMonaco" , &m_macFontNum) ;
 				break ;
 		}
+		Str255 name ;
+		GetFontName( m_macFontNum , name ) ;
+		CopyPascalStringToC( name , (char*) name ) ;
+		m_faceName = (char*) name ;
 	}
 	else
 	{
diff --git a/src/mac/carbon/frame.cpp b/src/mac/carbon/frame.cpp
index 4d83421744..7f1860a837 100644
--- a/src/mac/carbon/frame.cpp
+++ b/src/mac/carbon/frame.cpp
@@ -231,9 +231,35 @@ void wxFrame::OnActivate(wxActivateEvent& event)
 	    {
 	    	m_frameMenuBar->MacInstallMenuBar() ;
 	    }
+	    else if (wxTheApp->GetTopWindow() && wxTheApp->GetTopWindow()->IsKindOf(CLASSINFO(wxFrame)))
+        {
+            // Trying toplevel frame menbar
+            if( ((wxFrame*)wxTheApp->GetTopWindow())->GetMenuBar() )
+	            ((wxFrame*)wxTheApp->GetTopWindow())->GetMenuBar()->MacInstallMenuBar();
+ 	    }
 	}
 }
 
+void wxFrame::DetachMenuBar()
+{
+    if ( m_frameMenuBar )
+    {
+        m_frameMenuBar->UnsetInvokingWindow();
+    }
+
+    wxFrameBase::DetachMenuBar();
+}
+
+void wxFrame::AttachMenuBar( wxMenuBar *menuBar )
+{
+    wxFrameBase::AttachMenuBar(menuBar);
+
+    if (m_frameMenuBar)
+    {
+        m_frameMenuBar->SetInvokingWindow( this );
+    }
+}
+
 void wxFrame::DoGetClientSize(int *x, int *y) const
 {
 	wxWindow::DoGetClientSize( x , y ) ;
diff --git a/src/mac/carbon/gsocket.c b/src/mac/carbon/gsocket.c
index b96cd92358..50086739cf 100644
--- a/src/mac/carbon/gsocket.c
+++ b/src/mac/carbon/gsocket.c
@@ -87,6 +87,7 @@ extern pascal void OTDebugStr(const char* str);
 #endif
 InetSvcRef gInetSvcRef = 0 ;
 int gOTInited = 0 ;
+OTNotifyUPP gOTNotifierUPP = NULL ;
 
 OSStatus DoNegotiateIPReuseAddrOption(EndpointRef ep, Boolean enableReuseIPMode);
 
@@ -185,7 +186,7 @@ static void SetDefaultEndpointModes(EndpointRef ep , void *data )
 	junk = OTSetBlocking(ep);
 	OTAssert("SetDefaultEndpointModes: Could not set blocking", junk == noErr);
 */
-	junk = OTInstallNotifier(ep, OTInetEventHandler, data);
+	junk = OTInstallNotifier(ep, gOTNotifierUPP, data);
 	OTAssert("SetDefaultEndpointModes: Could not install notifier", junk == noErr);
 /*
 	junk = OTUseSyncIdleEvents(ep, true);
@@ -229,6 +230,7 @@ int GSocket_Verify_Inited()
 	OTAssert("Could not open Inet Services", err == noErr);
 	return FALSE ;
     }
+    gOTNotifierUPP = NewOTNotifyUPP( OTInetEventHandler ) ;
     return TRUE ;
 }
 
@@ -243,6 +245,8 @@ void GSocket_Cleanup()
     #else
       CloseOpenTransport() ;
     #endif
+        if ( gOTNotifierUPP )
+            DisposeOTNotifyUPP( gOTNotifierUPP ) ;
     }
 }
 
diff --git a/src/mac/carbon/listbox.cpp b/src/mac/carbon/listbox.cpp
index 8c2e856246..343420363c 100644
--- a/src/mac/carbon/listbox.cpp
+++ b/src/mac/carbon/listbox.cpp
@@ -105,16 +105,34 @@ static pascal void wxMacListDefinition( short message, Boolean isSelected, Rect
             ClipRect( drawRect );
             EraseRect( drawRect );
 
+			wxFontRefData * font = (wxFontRefData*) list->GetFont().GetRefData() ;
+
+			if ( font )
+			{
+				::TextFont( font->m_macFontNum ) ;
+				::TextSize( short(font->m_macFontSize) ) ;
+				::TextFace( font->m_macFontStyle ) ;
+			}
+			else
+			{
+		        ::TextFont( kFontIDMonaco ) ;
+		        ::TextSize( 9  );
+		        ::TextFace( 0 ) ;
+			}
+
 #if TARGET_CARBON
 	        bool useDrawThemeText = ( DrawThemeTextBox != (void*) kUnresolvedCFragSymbolAddress ) ;
 
            	if ( useDrawThemeText )
            	{
 	            Rect frame = { drawRect->top, drawRect->left + 4,
-	                           drawRect->top + kwxMacListItemHeight, drawRect->right} ;
-                CFStringRef mString = CFStringCreateWithBytes( NULL , (UInt8*) text.c_str(), text.Length(), CFStringGetSystemEncoding(), false ) ;
+	                           drawRect->top + kwxMacListItemHeight, drawRect->right + 10000 } ;
+                CFStringRef sString = CFStringCreateWithBytes( NULL , (UInt8*) text.c_str(), text.Length(), CFStringGetSystemEncoding(), false ) ;
+                CFMutableStringRef mString = CFStringCreateMutableCopy( NULL , 0 , sString ) ;
+        	    CFRelease( sString ) ;
+  				::TruncateThemeText( mString , kThemeCurrentPortFont, kThemeStateActive, drawRect->right - drawRect->left , truncEnd , NULL ) ;
         		::DrawThemeTextBox( mString,
-        							kThemeViewsFont,
+        							kThemeCurrentPortFont,
         							kThemeStateActive,
         							false,
         							&frame,
@@ -126,9 +144,6 @@ static pascal void wxMacListDefinition( short message, Boolean isSelected, Rect
 #endif
    		    {
 		        MoveTo(drawRect->left + 4 , drawRect->top + 10 );
-		        ::TextFont( kFontIDMonaco ) ;
-		        ::TextSize( 9  );
-		        ::TextFace( 0 ) ;
         		DrawText(text, 0 , text.Length());
 		    }
 
@@ -206,6 +221,19 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id,
     }
         listDef.u.userProc = macListDefUPP ;
 
+    Str255 fontName ;
+    SInt16 fontSize ;
+    Style fontStyle ;
+	SInt16 fontNum ;
+#if TARGET_CARBON
+	GetThemeFont(kThemeViewsFont , GetApplicationScript() , fontName , &fontSize , &fontStyle ) ;
+#else
+	GetFontName( kFontIDMonaco , fontName ) ;
+	fontSize = 9 ;
+	fontStyle = normal ;
+#endif 
+    CopyPascalStringToC( fontName , (char*) fontName ) ;
+    SetFont( wxFont (fontSize, wxSWISS, wxNORMAL, wxNORMAL , false , fontName ) ) ;
 #if TARGET_CARBON
     Size asize;
 
@@ -255,17 +283,17 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id,
     }
     else
     {
-        options = lOnlyOne ;
+        options = (OptionBits) lOnlyOne ;
     }
     SetListSelectionFlags((ListHandle)m_macList, options);
 
-    MacPostControlCreate() ;
-
     for ( int i = 0 ; i < n ; i++ )
     {
         Append( choices[i] ) ;
     }
 
+    MacPostControlCreate() ;
+
     LSetDrawingMode( true , (ListHandle)m_macList ) ;
 
     return TRUE;
@@ -616,7 +644,49 @@ void wxListBox::SetString(int N, const wxString& s)
 
 wxSize wxListBox::DoGetBestSize() const
 {
-    return wxSize(100, 100);
+    int lbWidth = 100;  // some defaults
+    int lbHeight = 110;
+    int wLine;
+
+	{
+		wxMacPortStateHelper st( UMAGetWindowPort( (WindowRef) MacGetRootWindow() ) ) ; 
+ 		Rect drawRect ;
+
+		wxFontRefData * font = (wxFontRefData*) m_font.GetRefData() ;
+
+		if ( font )
+		{
+			::TextFont( font->m_macFontNum ) ;
+			::TextSize( short(font->m_macFontSize) ) ;
+			::TextFace( font->m_macFontStyle ) ;
+		}
+		else
+		{
+	        ::TextFont( kFontIDMonaco ) ;
+	        ::TextSize( 9  );
+	        ::TextFace( 0 ) ;
+		}
+
+	    // Find the widest line
+	    for(int i = 0; i < GetCount(); i++) {
+	        wxString str(GetString(i));
+	        wLine = ::TextWidth( str.c_str() , 0 , str.Length() ) ;
+	        lbWidth = wxMax(lbWidth, wLine);
+	    }
+
+	    // Add room for the scrollbar
+	    lbWidth += wxSystemSettings::GetMetric(wxSYS_VSCROLL_X);
+
+	    // And just a bit more
+	    int cy = 12 ;
+	    int cx = ::TextWidth( "X" , 0 , 1 ) ;
+	    lbWidth += cx ;
+	    
+	    // don't make the listbox too tall (limit height to around 10 items) but don't
+	    // make it too small neither
+	    lbHeight = (cy+4) * wxMin(wxMax(GetCount(), 3), 10);
+	}
+    return wxSize(lbWidth, lbHeight);
 }
 
 int wxListBox::GetCount() const
@@ -661,6 +731,7 @@ wxOwnerDrawn *wxListBox::CreateItem(size_t n)
 // list box control implementation
 // ============================================================================
 
+/*
 void MacDrawStringCell(Rect *cellRect, Cell lCell, ListHandle theList, long refCon)
 {
     wxListBox*          list;
@@ -675,7 +746,7 @@ void MacDrawStringCell(Rect *cellRect, Cell lCell, ListHandle theList, long refC
     DrawText(text, 0 , text.Length());
 
 }
-
+*/
 void wxListBox::MacDelete( int N )
 {
     LDelRow( 1 , N , (ListHandle)m_macList) ;
diff --git a/src/mac/carbon/menu.cpp b/src/mac/carbon/menu.cpp
index caadf18ce3..e81e6de61a 100644
--- a/src/mac/carbon/menu.cpp
+++ b/src/mac/carbon/menu.cpp
@@ -28,6 +28,7 @@
 #include "wx/window.h"
 #include "wx/log.h"
 #include "wx/utils.h"
+#include "wx/frame.h"
 
 #include "wx/mac/uma.h"
 
@@ -209,10 +210,11 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
 			if ( pos == (size_t)-1 )
 			{
 				UMAAppendMenuItem(MAC_WXHMENU(m_hMenu), label,key,modifiers);
+				SetMenuItemCommandID( MAC_WXHMENU(m_hMenu) , CountMenuItems(MAC_WXHMENU(m_hMenu))  , pItem->GetId() ) ;
 				if ( pItem->GetBitmap().Ok() )
 				{
 					ControlButtonContentInfo info ;
-					wxMacCreateBitmapButton( &info , pItem->GetBitmap() , true ) ;
+					wxMacCreateBitmapButton( &info , pItem->GetBitmap() , kControlContentCIconHandle ) ;
 					if ( info.contentType != kControlNoContent )
 					{
 						if ( info.contentType == kControlContentCIconHandle )
@@ -225,10 +227,11 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
 			else
 			{
 				UMAInsertMenuItem(MAC_WXHMENU(m_hMenu), label , pos,key,modifiers);
+				SetMenuItemCommandID( MAC_WXHMENU(m_hMenu) , pos , pItem->GetId() ) ;
 				if ( pItem->GetBitmap().Ok() )
 				{
 					ControlButtonContentInfo info ;
-					wxMacCreateBitmapButton( &info , pItem->GetBitmap() , true ) ;
+					wxMacCreateBitmapButton( &info , pItem->GetBitmap() , kControlContentCIconHandle ) ;
 					if ( info.contentType != kControlNoContent )
 					{
 						if ( info.contentType == kControlContentCIconHandle )
@@ -429,114 +432,6 @@ void wxMenu::MacEnableMenu( bool bDoEnable )
 	::DrawMenuBar() ;
 }
 
-bool wxMenu::MacMenuSelect( wxEvtHandler* handler, long when , int macMenuId, int macMenuItemNum )
-{
-    int pos;
-    wxNode *node;
-
-    if ( m_macMenuId == macMenuId )
-    {
-        node = GetMenuItems().Nth(macMenuItemNum-1);
-        if (node) 
-        {
-            wxMenuItem *pItem = (wxMenuItem*)node->Data();
-            
-            if (pItem->IsCheckable())
-                pItem->Check(! pItem->IsChecked());
-            
-            wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, pItem->GetId());
-            event.m_timeStamp = when;
-            event.SetEventObject(handler);
-            event.SetInt( pItem->GetId() );
-            {
-                bool processed = false ;
-                
-#if WXWIN_COMPATIBILITY
-                // Try a callback
-                if (m_callback)
-                {
-                    (void) (*(m_callback)) (*this, event);
-                    processed = TRUE;
-                }
-#endif			
-                // Try the menu's event handler
-                if ( !processed && handler)
-                {
-                    processed = handler->ProcessEvent(event);
-                }
-                
-                // Try the window the menu was popped up from (and up
-                // through the hierarchy)
-                if ( !processed && GetInvokingWindow())
-                    processed = GetInvokingWindow()->GetEventHandler()->ProcessEvent(event);
-            }
-            return true ;
-        }
-    }
-    else if ( macMenuId == kHMHelpMenuID )
-    {
-        int menuItem = firstUserHelpMenuItem-1 ;
-        for (pos = 0, node = GetMenuItems().First(); node; node = node->Next(), pos++) 
-        {	
-            wxMenuItem * pItem = (wxMenuItem *)  node->Data() ;
-            
-            wxMenu *pSubMenu = pItem->GetSubMenu() ;
-            if ( pSubMenu != NULL )
-            {
-            }
-            else
-            {
-                if ( pItem->GetId() != wxApp::s_macAboutMenuItemId )
-                    ++menuItem ;
-                
-                if ( menuItem == macMenuItemNum )
-                {
-                    wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, pItem->GetId());
-                    event.m_timeStamp = when;
-                    event.SetEventObject(handler);
-                    event.SetInt( pItem->GetId() );
-                    {
-                        bool processed = false ;
-#if WXWIN_COMPATIBILITY
-                        // Try a callback
-                        if (m_callback)
-                        {
-                            (void) (*(m_callback)) (*this, event);
-                            processed = TRUE;
-                        }
-#endif					
-                        // Try the menu's event handler
-                        if ( !processed && handler)
-                        {
-                            processed = handler->ProcessEvent(event);
-                        }
-                        
-                        // Try the window the menu was popped up from (and up
-                        // through the hierarchy)
-                        if ( !processed && GetInvokingWindow())
-                            processed = GetInvokingWindow()->GetEventHandler()->ProcessEvent(event);
-                    }
-                    return true ;
-                }
-            }
-        }
-    }
-    
-    for (pos = 0, node = GetMenuItems().First(); node; node = node->Next(), pos++) 
-    {	
-        wxMenuItem * pItem = (wxMenuItem *)  node->Data() ;
-  	
-        wxMenu *pSubMenu = pItem->GetSubMenu() ;
-        if ( pSubMenu != NULL )
-        {
-            if ( pSubMenu->MacMenuSelect( handler , when , macMenuId , macMenuItemNum ) )
-                return true ;
-        }
-    }
-    
-    return false ;
-}
-
 // Menu Bar
 
 /* 
@@ -664,89 +559,93 @@ void wxMenuBar::MacInstallMenuBar()
  
    	for (size_t i = 0; i < m_menus.GetCount(); i++)
   	{
-            Str255 	label;
-            wxNode *node;
-            wxMenuItem *item;
-            int pos ;
-			wxMenu* menu = m_menus[i] , *subMenu = NULL ;
-		
-			if( m_titles[i] == "?" || m_titles[i] == "&?"  || m_titles[i] == wxApp::s_macHelpMenuTitleName )
+        Str255 	label;
+        wxNode *node;
+        wxMenuItem *item;
+        int pos ;
+    	wxMenu* menu = m_menus[i] , *subMenu = NULL ;
+
+    	if( m_titles[i] == "?" || m_titles[i] == "&?"  || m_titles[i] == wxApp::s_macHelpMenuTitleName )
+    	{
+			MenuHandle mh = NULL ;
+			if ( UMAGetHelpMenu( &mh , &firstUserHelpMenuItem) != noErr )
 			{
-				MenuHandle mh = NULL ;
-			  if ( UMAGetHelpMenu( &mh , &firstUserHelpMenuItem) != noErr )
-			  {
 			    continue ;
-			  }
+			}
 
 		    for ( int i = CountMenuItems( mh ) ; i >= firstUserHelpMenuItem ; --i )
 		    {
-		      DeleteMenuItem( mh , i ) ;
+		        DeleteMenuItem( mh , i ) ;
 		    }
-					
-			  	for (pos = 0 , node = menu->GetMenuItems().First(); node; node = node->Next(), pos++) 
-		  		{
-		 			item = (wxMenuItem *)node->Data();
-		 			subMenu = item->GetSubMenu() ;
-					if (subMenu)	 		
+				
+		  	for (pos = 0 , node = menu->GetMenuItems().First(); node; node = node->Next(), pos++) 
+	  		{
+	 			item = (wxMenuItem *)node->Data();
+	 			subMenu = item->GetSubMenu() ;
+				if (subMenu)	 		
+				{
+					// we don't support hierarchical menus in the help menu yet
+				}
+				else		
+				{
+					if ( item->IsSeparator() )
 					{
-						// we don't support hierarchical menus in the help menu yet
+						if ( mh )
+							MacAppendMenu(mh, "\p-" );
 					}
-					else		
+					else
 					{
-						if ( item->IsSeparator() )
+						Str255 label ;
+						UInt8 modifiers ;
+						SInt16 key ;
+						wxMenuItem::MacBuildMenuString( label, &key , &modifiers  , item->GetText(), item->GetId() != wxApp::s_macAboutMenuItemId); // no shortcut in about menu
+						if ( label[0] == 0 )
 						{
-							if ( mh )
-								MacAppendMenu(mh, "\p-" );
+							// we cannot add empty menus on mac
+							label[0] = 1 ;
+							label[1] = ' ' ;
 						}
+						if ( item->GetId() == wxApp::s_macAboutMenuItemId )
+						{ 
+								::SetMenuItemText( GetMenuHandle( kwxMacAppleMenuId ) , 1 , label );
+								UMAEnableMenuItem( GetMenuHandle( kwxMacAppleMenuId ) , 1 );
+								SetMenuItemCommandID( GetMenuHandle( kwxMacAppleMenuId ) , 1 , item->GetId() ) ;
+ 						}
 						else
 						{
-							Str255 label ;
-							UInt8 modifiers ;
-							SInt16 key ;
-							wxMenuItem::MacBuildMenuString( label, &key , &modifiers  , item->GetText(), item->GetId() != wxApp::s_macAboutMenuItemId); // no shortcut in about menu
-							if ( label[0] == 0 )
-							{
-								// we cannot add empty menus on mac
-								label[0] = 1 ;
-								label[1] = ' ' ;
-							}
-							if ( item->GetId() == wxApp::s_macAboutMenuItemId )
-							{ 
-									::SetMenuItemText( GetMenuHandle( kwxMacAppleMenuId ) , 1 , label );
-									UMAEnableMenuItem( GetMenuHandle( kwxMacAppleMenuId ) , 1 );
-	 						}
-							else
+							if ( mh )
 							{
-								if ( mh )
-									UMAAppendMenuItem(mh, label , key , modifiers );
+								UMAAppendMenuItem(mh, label , key , modifiers );
+								SetMenuItemCommandID( mh , CountMenuItems(mh) , item->GetId() ) ;
 							}
 						}
 					}
 				}
 			}
-			else
-			{
-				wxMenuItem::MacBuildMenuString( label, NULL , NULL , m_titles[i] , false );
-				UMASetMenuTitle( MAC_WXHMENU(menu->GetHMenu()) , label ) ;
-					wxArrayPtrVoid submenus ;
-					
-		  		for (pos = 0, node = menu->GetMenuItems().First(); node; node = node->Next(), pos++) 
-	  			{
-		 			item = (wxMenuItem *)node->Data();
-		 			subMenu = item->GetSubMenu() ;
-					if (subMenu)	 		
-					{
-  					  submenus.Add(subMenu) ;
-					}
-				}
-				::InsertMenu(MAC_WXHMENU(m_menus[i]->GetHMenu()), 0);
-				for ( size_t i = 0 ; i < submenus.GetCount() ; ++i )
+		}
+		else
+		{
+			wxMenuItem::MacBuildMenuString( label, NULL , NULL , m_titles[i] , false );
+			UMASetMenuTitle( MAC_WXHMENU(menu->GetHMenu()) , label ) ;
+				wxArrayPtrVoid submenus ;
+				
+	  		for (pos = 0, node = menu->GetMenuItems().First(); node; node = node->Next(), pos++) 
+  			{
+	 			item = (wxMenuItem *)node->Data();
+	 			subMenu = item->GetSubMenu() ;
+				if (subMenu)	 		
 				{
-				  wxMenu* submenu = (wxMenu*) submenus[i] ;
-        	wxNode *subnode;
-        	wxMenuItem *subitem;
-        	int subpos ;
-          for ( subpos = 0 , subnode = submenu->GetMenuItems().First(); subnode; subnode = subnode->Next(), subpos++) 
+				  submenus.Add(subMenu) ;
+				}
+			}
+			::InsertMenu(MAC_WXHMENU(m_menus[i]->GetHMenu()), 0);
+			for ( size_t i = 0 ; i < submenus.GetCount() ; ++i )
+			{
+			    wxMenu* submenu = (wxMenu*) submenus[i] ;
+    	        wxNode *subnode;
+    	        wxMenuItem *subitem;
+    	        int subpos ;
+                for ( subpos = 0 , subnode = submenu->GetMenuItems().First(); subnode; subnode = subnode->Next(), subpos++) 
 		  		{
   		 			subitem = (wxMenuItem *)subnode->Data();
   		 			wxMenu* itsSubMenu = subitem->GetSubMenu() ;
@@ -755,11 +654,11 @@ void wxMenuBar::MacInstallMenuBar()
   						submenus.Add(itsSubMenu) ;
   					}  				
   				}
-					::InsertMenu( MAC_WXHMENU(submenu->GetHMenu()) , -1 ) ;
-  			}
-			}
+				::InsertMenu( MAC_WXHMENU(submenu->GetHMenu()) , -1 ) ;
+		    }
 		}
-		::DrawMenuBar() ;
+	}
+	::DrawMenuBar() ;
 	s_macInstalledMenuBar = this;
 }
 
@@ -900,44 +799,6 @@ bool wxMenuBar::Insert(size_t pos, wxMenu *menu, const wxString& title)
     return TRUE;
 }
 
-void wxMenuBar::MacMenuSelect(wxEvtHandler* handler, long when , int macMenuId, int macMenuItemNum)
-{
-    // first scan fast for direct commands, i.e. menus which have these commands directly in their own list
-    
-    if ( macMenuId == kwxMacAppleMenuId && macMenuItemNum == 1 )
-    {
-        wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, wxApp::s_macAboutMenuItemId );
-        event.m_timeStamp = when;
-        event.SetEventObject(handler);
-        event.SetInt( wxApp::s_macAboutMenuItemId );
-        handler->ProcessEvent(event);
-    }
-    else
-    {		
-        for (size_t i = 0; i < m_menus.GetCount() ; i++)
-        {
-            if ( m_menus[i]->MacGetMenuId() == macMenuId || ( macMenuId == kHMHelpMenuID && ( m_titles[i] == "?" || m_titles[i] == "&?"  || m_titles[i] == wxApp::s_macHelpMenuTitleName ) ) )
-            {
-                if ( m_menus[i]->MacMenuSelect( handler , when , macMenuId , macMenuItemNum ) )
-                    return ;
-                else
-                {
-                    //TODO flag this as an error since it must contain the item
-                    return ;
-                }
-            }
-        }
-	
-	  for (size_t i = 0; i < m_menus.GetCount(); i++)
-	  {
-	  	if ( m_menus[i]->MacMenuSelect( handler , when , macMenuId , macMenuItemNum ) )
-	  	{
-	  		break ;
-	  	}
-	  }
-	}
-}
-
 wxMenu *wxMenuBar::Remove(size_t pos)
 {
     wxMenu *menu = wxMenuBarBase::Remove(pos);
@@ -1004,6 +865,56 @@ bool wxMenuBar::Append(wxMenu *menu, const wxString& title)
     return TRUE;
 }
 
+static void wxMenubarUnsetInvokingWindow( wxMenu *menu )
+{
+    menu->SetInvokingWindow( (wxWindow*) NULL );
+
+    wxMenuItemList::Node *node = menu->GetMenuItems().GetFirst();
+    while (node)
+    {
+        wxMenuItem *menuitem = node->GetData();
+        if (menuitem->IsSubMenu())
+            wxMenubarUnsetInvokingWindow( menuitem->GetSubMenu() );
+        node = node->GetNext();
+    }
+}
+
+static void wxMenubarSetInvokingWindow( wxMenu *menu, wxWindow *win )
+{
+    menu->SetInvokingWindow( win );
+
+    wxMenuItemList::Node *node = menu->GetMenuItems().GetFirst();
+    while (node)
+    {
+        wxMenuItem *menuitem = node->GetData();
+        if (menuitem->IsSubMenu())
+            wxMenubarSetInvokingWindow( menuitem->GetSubMenu() , win );
+        node = node->GetNext();
+    }
+}
+
+void wxMenuBar::UnsetInvokingWindow()
+{
+    wxMenuList::Node *node = m_menus.GetFirst();
+    while (node)
+    {
+        wxMenu *menu = node->GetData();
+        wxMenubarUnsetInvokingWindow( menu );
+        node = node->GetNext();
+    }
+}
+
+void wxMenuBar::SetInvokingWindow(wxFrame *frame)
+{
+    wxMenuList::Node *node = m_menus.GetFirst();
+    while (node)
+    {
+        wxMenu *menu = node->GetData();
+        wxMenubarSetInvokingWindow( menu, frame );
+        node = node->GetNext();
+    }
+}
+
 void wxMenuBar::Detach()
 {
     wxMenuBarBase::Detach() ;
@@ -1012,7 +923,6 @@ void wxMenuBar::Detach()
 void wxMenuBar::Attach(wxFrame *frame)
 {
     wxMenuBarBase::Attach( frame ) ;
-
 #if wxUSE_ACCEL
     RebuildAccelTable();
 #endif // wxUSE_ACCEL
diff --git a/src/mac/carbon/menuitem.cpp b/src/mac/carbon/menuitem.cpp
index 544bfd6004..6c41427f76 100644
--- a/src/mac/carbon/menuitem.cpp
+++ b/src/mac/carbon/menuitem.cpp
@@ -46,7 +46,7 @@ int wxMenuItem::MacBuildMenuString(StringPtr outMacItemText, SInt16 *outMacShort
 {
 	char *p = (char *) &outMacItemText[1] ;
 	short macModifiers = 0 ;
-	char macShortCut = 0 ;
+	SInt16 macShortCut = 0 ;
 	const char *inItemName ;
 	wxString inItemTextMac ;
 	
@@ -72,31 +72,6 @@ int wxMenuItem::MacBuildMenuString(StringPtr outMacItemText, SInt16 *outMacShort
 	{
 		switch ( *inItemName )
 		{
-			// special characters for macintosh menus -> use some replacement
-			case ';' :
-				*p++ = ',' ;
-				break ;
-			case '^' :
-				*p++ = ' ' ;
-				break ;
-			case '!' :
-				*p++ = ' ' ;
-				break ;
-			case '<' :
-				*p++ = '[' ;
-				break ;
-			case '>' :
-				*p++ = ']' ;
-				break ;
-			case '/' :
-				*p++ = '|' ;
-				break ;
-			case '(' :
-				*p++ = '[' ;
-				break ;
-			case ')' :	
-				*p++ = ']' ;
-				break ;
 			// shortcuts
 			case '&' :
 				{
@@ -115,43 +90,71 @@ int wxMenuItem::MacBuildMenuString(StringPtr outMacItemText, SInt16 *outMacShort
 			case '\t' :
 				{
 					++inItemName ;
-					while( *inItemName )
+					bool skip = false ;
+					bool explicitCommandKey = false ;
+					while( *inItemName && !skip )
 					{
-						if (strncmp("Ctrl", inItemName, 4) == 0) 
+						if (wxStrnicmp("Ctrl", inItemName, 4) == 0) 
 						{
 							inItemName = inItemName + 5;
-							macShortCut = *inItemName;
+							explicitCommandKey = true ;
 						}
-						else if (strncmp("Cntrl", inItemName, 5) == 0) 
+						else if (wxStrnicmp("Cntrl", inItemName, 5) == 0) 
 						{
 							inItemName = inItemName + 6;
-							macShortCut = *inItemName;
+							explicitCommandKey = true ;
 						}
-						else if (strncmp("Alt", inItemName, 3) == 0) 
+						else if (wxStrnicmp("Alt", inItemName, 3) == 0) 
 						{
 							inItemName = inItemName + 4;
 							macModifiers |= kMenuOptionModifier ;
-							macShortCut = *inItemName ;
 						}
-						else if (strncmp("Shift", inItemName, 5) == 0) 
+						else if (wxStrnicmp("Shift", inItemName, 5) == 0) 
 						{
 							inItemName = inItemName + 6;
 							macModifiers |= kMenuShiftModifier ;
-							macShortCut = *inItemName ;
 						}
-						else if (strncmp("F", inItemName, 1) == 0) 
+						else
 						{
-							inItemName += strlen( inItemName ) ;
-							// no function keys at the moment
-							// macModifiers |= kMenuShiftModifier ;
-							// macShortCut = *inItemName ;
+						    skip = true ;
 						}
-						else
+					}
+					if ( *inItemName )
+				    {
+				        if ( strlen(inItemName) == 1 )
+				        {
+						    macShortCut = *inItemName;
+						}
+						else if ( !wxStricmp( inItemName , "Delete" ) || !wxStricmp( inItemName , "Del" ) )
+						{
+						    macShortCut = WXK_DELETE ;
+						}
+						else if ( !wxStricmp( inItemName , "Back" ) || !wxStricmp( inItemName , "Backspace" ) )
+						{
+						    macShortCut = WXK_BACK ;
+						}
+						else if ( !wxStricmp( inItemName , "Return" ) )
 						{
-							break ;
+						    macShortCut = WXK_RETURN ;
+						}
+						else if ( !wxStricmp( inItemName , "Enter" ) )
+						{
+						    macShortCut = kEnterCharCode ;
+						}
+						else if ( *inItemName == 'F' )
+						{
+						    int fkey = atol(inItemName+1) ;
+						    if (fkey >= 1 && fkey < 15 )
+						    {
+                                macShortCut = WXK_F1 + fkey - 1 ;
+						    }
+                            if ( !explicitCommandKey )
+                                macModifiers |= kMenuNoCommandModifier ;
 						}
 					}
-
+						
+					inItemName += strlen( inItemName ) ;
+					
 					if ( *inItemName == 0 )
 						--inItemName ;
 						
diff --git a/src/mac/carbon/notebmac.cpp b/src/mac/carbon/notebmac.cpp
index 7c72298654..2f8f53b786 100644
--- a/src/mac/carbon/notebmac.cpp
+++ b/src/mac/carbon/notebmac.cpp
@@ -132,8 +132,17 @@ bool wxNotebook::Create(wxWindow *parent,
 	
 	MacPreControlCreate( parent , id ,  "" , pos , size ,style, wxDefaultValidator , name , &bounds , title ) ;
 
+	int tabstyle = kControlTabSmallNorthProc ;
+	if ( HasFlag(wxNB_LEFT) )
+		tabstyle = kControlTabSmallWestProc ;
+	else if ( HasFlag( wxNB_RIGHT ) )
+		tabstyle = kControlTabSmallEastProc ;
+	else if ( HasFlag( wxNB_BOTTOM ) )
+		tabstyle = kControlTabSmallSouthProc ;
+
+
 	m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , title , false , 0 , 0 , 1, 
-	  	kControlTabSmallProc , (long) this ) ;
+	  	tabstyle , (long) this ) ;
 	
 	MacPostControlCreate() ;
 	return TRUE ;
@@ -207,6 +216,7 @@ int wxNotebook::SetSelection(int nPage)
     ChangePage(m_nSelection, nPage);
 	SetControl32BitValue( (ControlHandle) m_macControl , m_nSelection + 1 ) ;
 
+    Refresh();
     return m_nSelection;
 }
 
@@ -233,7 +243,7 @@ int wxNotebook::GetPageImage(int nPage) const
 {
     wxCHECK_MSG( IS_VALID_PAGE(nPage), -1, _T("invalid notebook page") );
 
-    return 0 ;
+    return m_images[nPage];
 }
 
 bool wxNotebook::SetPageImage(int nPage, int nImage)
@@ -243,7 +253,17 @@ bool wxNotebook::SetPageImage(int nPage, int nImage)
     wxCHECK_MSG( m_imageList && nImage < m_imageList->GetImageCount(), FALSE,
                  _T("invalid image index in SetPageImage()") );
 
-    return FALSE;
+    if ( nImage != m_images[nPage] )
+    {
+        // if the item didn't have an icon before or, on the contrary, did have
+        // it but has lost it now, its size will change - but if the icon just
+        // changes, it won't
+        m_images[nPage] = nImage;
+
+		MacSetupTabs() ;
+    }
+
+    return TRUE;
 }
 
 // ----------------------------------------------------------------------------
@@ -295,6 +315,8 @@ bool wxNotebook::InsertPage(int nPage,
     // save the pointer to the page
     m_pages.Insert(pPage, nPage);
 
+    m_images.Insert(imageId, nPage);
+
     MacSetupTabs();
 
     if ( bSelect ) {
@@ -332,7 +354,8 @@ void wxNotebook::MacSetupTabs()
 
     wxNotebookPage *page;
     ControlTabInfoRec info;
-    Boolean enabled = true;
+
+    OSStatus err = noErr ;
     for(int ii = 0; ii < GetPageCount(); ii++)
     {
         page = m_pages[ii];
@@ -346,8 +369,35 @@ void wxNotebook::MacSetupTabs()
 #endif
         SetControlData( (ControlHandle) m_macControl, ii+1, kControlTabInfoTag,
                         sizeof( ControlTabInfoRec) , (char*) &info ) ;
-        SetControlData( (ControlHandle) m_macControl, ii+1, kControlTabEnabledFlagTag,
-                        sizeof( Boolean ), (Ptr)&enabled );
+        SetTabEnabled( (ControlHandle) m_macControl , ii+1 , true ) ;
+
+#if TARGET_CARBON
+        if ( GetImageList() && GetPageImage(ii) >= 0 && UMAGetSystemVersion() >= 0x1020 )
+        {
+        	// tab controls only support very specific types of images, therefore we are doing an odyssee
+        	// accross the icon worlds (even Apple DTS did not find a shorter path)
+        	// in order not to pollute the icon registry we put every icon into (OSType) 1 and immediately
+        	// afterwards Unregister it (IconRef is ref counted, so it will stay on the tab even if we 
+        	// unregister it) in case this will ever lead to having the same icon everywhere add some kind
+        	// of static counter 
+        	ControlButtonContentInfo info ;
+        	wxMacCreateBitmapButton( &info , *GetImageList()->GetBitmap( GetPageImage(ii ) ) , kControlContentPictHandle) ;
+        	IconFamilyHandle iconFamily = (IconFamilyHandle) NewHandle(0) ;
+        	OSErr err = SetIconFamilyData( iconFamily, 'PICT' , (Handle) info.u.picture ) ;
+            wxASSERT_MSG( err == noErr , "Error when adding bitmap" ) ;
+         	IconRef iconRef ;
+         	err = RegisterIconRefFromIconFamily( 'WXNG' , (OSType) 1 , iconFamily, &iconRef ) ;
+            wxASSERT_MSG( err == noErr , "Error when adding bitmap" ) ;
+         	info.contentType = kControlContentIconRef ;
+         	info.u.iconRef = iconRef ;
+        	SetControlData( (ControlHandle) m_macControl, ii+1,kControlTabImageContentTag,
+                        sizeof( info ), (Ptr)&info );
+            wxASSERT_MSG( err == noErr , "Error when setting icon on tab" ) ;
+           	UnregisterIconRef( 'WXNG' , (OSType) 1 ) ;
+            ReleaseIconRef( iconRef ) ;
+            DisposeHandle( (Handle) iconFamily ) ;
+        }
+#endif
     }
     Rect bounds;
     GetControlBounds((ControlHandle)m_macControl, &bounds);
diff --git a/src/mac/carbon/printdlg.cpp b/src/mac/carbon/printdlg.cpp
index ec13b97455..1b18c1d49b 100644
--- a/src/mac/carbon/printdlg.cpp
+++ b/src/mac/carbon/printdlg.cpp
@@ -104,11 +104,8 @@ int wxPrintDialog::ShowModal()
 	::UMAPrClose(NULL) ;
 #else
   #if PM_USE_SESSION_APIS
-    PMPrintSession macPrintSession = kPMNoReference;
     Boolean        accepted;
     
-    err = ::UMAPrOpen(&macPrintSession) ;
-    if ( err == noErr )
     {
         m_printDialogData.ConvertToNative() ;
         
@@ -123,13 +120,13 @@ int wxPrintDialog::ShowModal()
             if ((err == noErr) &&
                 (m_printDialogData.GetPrintData().m_macPageFormat != kPMNoPageFormat))
             {
-                err = PMSessionDefaultPageFormat((PMPrintSession)macPrintSession,
+                err = PMSessionDefaultPageFormat((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
                                                  (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat);
             }
         }
         else
         {
-            err = PMSessionValidatePageFormat((PMPrintSession)macPrintSession,
+            err = PMSessionValidatePageFormat((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
                                               (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat,
                                               kPMDontWantBoolean);
         }
@@ -145,13 +142,13 @@ int wxPrintDialog::ShowModal()
             if ((err == noErr) &&
                 (m_printDialogData.GetPrintData().m_macPrintSettings != kPMNoPrintSettings))
             {
-                err = PMSessionDefaultPrintSettings((PMPrintSession)macPrintSession,
+                err = PMSessionDefaultPrintSettings((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
                                                     (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings);
             }
         }
         else
         {
-            err = PMSessionValidatePrintSettings((PMPrintSession)macPrintSession,
+            err = PMSessionValidatePrintSettings((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
                                                  (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings,
                                                  kPMDontWantBoolean);
         }
@@ -165,7 +162,7 @@ int wxPrintDialog::ShowModal()
         //  Display the Print dialog.
         if (err == noErr)
         {
-            err = PMSessionPrintDialog((PMPrintSession)macPrintSession,
+            err = PMSessionPrintDialog((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
                                        (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings,
                                        (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat,
                                        &accepted);
@@ -186,7 +183,6 @@ int wxPrintDialog::ShowModal()
         wxMessageDialog dialog( NULL , message  , "", wxICON_HAND | wxOK) ;
         dialog.ShowModal();
     }
-    ::UMAPrClose(&macPrintSession) ;
   #else
     #pragma warning "TODO: Printing for carbon without session apis"
   #endif
@@ -256,11 +252,8 @@ int wxPageSetupDialog::ShowModal()
 	::UMAPrClose(NULL) ;
 #else
   #if PM_USE_SESSION_APIS
-    PMPrintSession macPrintSession = kPMNoReference;
     Boolean        accepted;
     
-    err = ::UMAPrOpen(&macPrintSession) ;
-    if ( err == noErr )
     {
         m_pageSetupData.ConvertToNative() ;
         
@@ -275,13 +268,13 @@ int wxPageSetupDialog::ShowModal()
             if ((err == noErr) &&
                 (m_pageSetupData.GetPrintData().m_macPageFormat != kPMNoPageFormat))
             {
-                err = PMSessionDefaultPageFormat((PMPrintSession)macPrintSession,
+                err = PMSessionDefaultPageFormat((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession,
                                                  (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat);
             }
         }
         else
         {
-            err = PMSessionValidatePageFormat((PMPrintSession)macPrintSession,
+            err = PMSessionValidatePageFormat((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession,
                                               (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat,
                                               kPMDontWantBoolean);
         }
@@ -289,7 +282,7 @@ int wxPageSetupDialog::ShowModal()
         //  Display the Page Setup dialog.
         if (err == noErr)
         {
-            err = PMSessionPageSetupDialog((PMPrintSession)macPrintSession,
+            err = PMSessionPageSetupDialog((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession,
                                            (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat,
                                            &accepted);
             if ((err == noErr) && !accepted)
@@ -312,7 +305,6 @@ int wxPageSetupDialog::ShowModal()
         wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ;
         dialog.ShowModal();
     }
-    ::UMAPrClose(&macPrintSession) ;
   #else
     #pragma warning "TODO: Printing for carbon without session apis"
   #endif
diff --git a/src/mac/carbon/printmac.cpp b/src/mac/carbon/printmac.cpp
index 33506c4548..1240fd6622 100644
--- a/src/mac/carbon/printmac.cpp
+++ b/src/mac/carbon/printmac.cpp
@@ -276,7 +276,7 @@ void wxMacPrintPreview::DetermineScaling(void)
 	
 	m_previewPrintout->SetPPIScreen( 72 , 72 ) ;
 	m_previewPrintout->SetPPIPrinter( 72 , 72 ) ;
-	m_previewPrintout->SetPageSizeMM( 8 * 25.6 , 11 * 25.6 ) ;
+	m_previewPrintout->SetPageSizeMM( (int) (8.0 * 25.6), (int) (11.0 * 25.6) );
 	m_previewPrintout->SetPageSizePixels( 8 * 72 , 11 * 72 ) ;
     m_pageWidth = 8 * 72 ;
     m_pageHeight = 11 * 72 ;
@@ -295,7 +295,10 @@ void wxMacPrintPreview::DetermineScaling(void)
 		m_pageWidth = x ;
 		m_pageHeight =  y ;
 		m_isOk = true ;
-
+	}
+	else
+	{
+	  m_isOk = false ;
 	}
     // At 100%, the page should look about page-size on the screen.
     // m_previewScale = (float)((float)screenWidth/(float)printerWidth);
diff --git a/src/mac/carbon/textctrl.cpp b/src/mac/carbon/textctrl.cpp
index 4f8d67ae6d..cee43bf68b 100644
--- a/src/mac/carbon/textctrl.cpp
+++ b/src/mac/carbon/textctrl.cpp
@@ -23,7 +23,14 @@
 #else
   #include <stat.h>
 #endif
-#include <fstream.h>
+
+#if wxUSE_STD_IOSTREAM
+    #if wxUSE_IOSTREAMH
+        #include <fstream.h>
+    #else
+        #include <fstream>
+    #endif
+#endif
 
 #include "wx/app.h"
 #include "wx/dc.h"
@@ -332,12 +339,18 @@ static pascal void TPPaneIdleProc(ControlHandle theControl) {
                     RectRgn((theRgn = NewRgn()), &varsp->fRTextArea);
                     TXNAdjustCursor(varsp->fTXNRec, theRgn);
                     DisposeRgn(theRgn);
-                 } else SetThemeCursor(kThemeArrowCursor);
+                 } 
+                 else 
+                 {
+                 // SetThemeCursor(kThemeArrowCursor);
+                 }
             } else {
                 /* if it's in our bounds, set the cursor */
                 GetControlBounds(theControl, &bounds);
                 if (PtInRect(mousep, &bounds))
-                    SetThemeCursor(kThemeArrowCursor);
+                {
+                //    SetThemeCursor(kThemeArrowCursor);
+                }
             }
             
             HSetState((Handle) tpvars, state);
@@ -529,29 +542,29 @@ OSStatus mUPOpenControl(ControlHandle theControl, long wxStyle )
     TXNFrameOptions frameOptions = 
         kTXNDontDrawCaretWhenInactiveMask ;
     if ( ! ( wxStyle & wxTE_NOHIDESEL ) )
-	    frameOptions |= kTXNDontDrawSelectionWhenInactiveMask ;
-	
-	if ( wxStyle & wxTE_MULTILINE )
-	{
-	    if ( ! ( wxStyle & wxTE_DONTWRAP ) )
-	        frameOptions |= kTXNAlwaysWrapAtViewEdgeMask ;
-	    else
-	    {
-	        frameOptions |= kTXNAlwaysWrapAtViewEdgeMask ;
-	        frameOptions |= kTXNWantHScrollBarMask ;
-	    }
-	        
-	    if ( !(wxStyle & wxTE_NO_VSCROLL ) )
-	        frameOptions |= kTXNWantVScrollBarMask ;
-	}
-	else
-	    frameOptions |= kTXNSingleLineOnlyMask ;
-	    
-	if ( wxStyle & wxTE_READONLY )
-	    frameOptions |= kTXNReadOnlyMask ;
+        frameOptions |= kTXNDontDrawSelectionWhenInactiveMask ;
+    
+    if ( wxStyle & wxTE_MULTILINE )
+    {
+        if ( ! ( wxStyle & wxTE_DONTWRAP ) )
+            frameOptions |= kTXNAlwaysWrapAtViewEdgeMask ;
+        else
+        {
+            frameOptions |= kTXNAlwaysWrapAtViewEdgeMask ;
+            frameOptions |= kTXNWantHScrollBarMask ;
+        }
+            
+        if ( !(wxStyle & wxTE_NO_VSCROLL ) )
+            frameOptions |= kTXNWantVScrollBarMask ;
+    }
+    else
+        frameOptions |= kTXNSingleLineOnlyMask ;
+        
+    if ( wxStyle & wxTE_READONLY )
+        frameOptions |= kTXNReadOnlyMask ;
   
     TXNNewObject(NULL, varsp->fOwner, &varsp->fRTextArea,
-	    frameOptions ,
+        frameOptions ,
         kTXNTextEditStyleFrameType,
         kTXNTextensionFile,
         kTXNSystemDefaultEncoding, 
@@ -715,7 +728,7 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
             /* create the control */
         m_macControl = NewControl(MAC_WXHWND(parent->MacGetRootWindow()), &bounds, "\p", true, featurSet, 0, featurSet, kControlUserPaneProc, 0);
             /* set up the mUP specific features and data */
-    	mUPOpenControl((ControlHandle) m_macControl, m_windowStyle );
+        mUPOpenControl((ControlHandle) m_macControl, m_windowStyle );
         if ( parent )
         {
             parent->MacGetTopLevelWindow()->MacInstallEventHandler() ;
@@ -745,7 +758,7 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
         m_macTXN =  (**tpvars).fTXNRec ;
         m_macTXNvars = tpvars ;
         m_macUsesTXN = true ;
-      	TXNSetSelection( (TXNObject) m_macTXN, 0, 0);
+        TXNSetSelection( (TXNObject) m_macTXN, 0, 0);
         TXNShowSelection( (TXNObject) m_macTXN, kTXNShowStart);
     }
   
@@ -785,11 +798,13 @@ wxString wxTextCtrl::GetValue() const
     wxString value;
 
     if( wxApp::s_macDefaultEncodingIsPC )
+    {
         value = wxMacMakePCStringFromMac( wxBuffer ) ;
+        value.Replace( "\r", "\n" );
+    }
     else
         value = wxBuffer;
         
-    value.Replace( "\r", "\n" );
     
     return value;
 }
@@ -812,11 +827,13 @@ void wxTextCtrl::SetValue(const wxString& st)
     wxString value;
     
     if( wxApp::s_macDefaultEncodingIsPC )
+    {
         value = wxMacMakeMacStringFromPC( st ) ;
+        value.Replace( "\n", "\r" );
+    }
     else
         value = st;
         
-    value.Replace( "\n", "\r" );
         
     if ( !m_macUsesTXN )
     {
@@ -825,12 +842,14 @@ void wxTextCtrl::SetValue(const wxString& st)
     else
     {
         bool formerEditable = IsEditable() ;
-        SetEditable(true) ;
-      	TXNSetData( ((TXNObject) m_macTXN), kTXNTextData,  (void*)value.c_str(), value.Length(),
-      	  kTXNStartOffset, kTXNEndOffset);
-      	TXNSetSelection( (TXNObject) m_macTXN, 0, 0);
+        if ( !formerEditable )
+            SetEditable(true) ;
+        TXNSetData( ((TXNObject) m_macTXN), kTXNTextData,  (void*)value.c_str(), value.Length(),
+          kTXNStartOffset, kTXNEndOffset);
+        TXNSetSelection( (TXNObject) m_macTXN, 0, 0);
         TXNShowSelection( (TXNObject) m_macTXN, kTXNShowStart);
-        SetEditable(formerEditable) ;
+        if ( !formerEditable )
+            SetEditable(formerEditable) ;
     }
     MacRedrawControl() ;
 }
@@ -845,45 +864,46 @@ bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
     if ( m_macUsesTXN )
     {
         bool formerEditable = IsEditable() ;
-        SetEditable(true) ;
-		TXNTypeAttributes typeAttr[4] ;
-		Str255 fontName = "\pMonaco" ;
-		SInt16 fontSize = 12 ;
-		Style fontStyle = normal ;
-		RGBColor color ;
-		int attrCounter = 0 ;
-		if ( style.HasFont() )
-		{
-		    const wxFont &font = style.GetFont() ;
-		    CopyCStringToPascal( font.GetFaceName().c_str() , fontName ) ;
-		    fontSize = font.GetPointSize() ;
-		    if ( font.GetUnderlined() )
-		        fontStyle |= underline ;
-		    if ( font.GetWeight() == wxBOLD )
-		        fontStyle |= bold ;
-		    if ( font.GetStyle() == wxITALIC )
-		        fontStyle |= italic ;
-		        
-		    typeAttr[attrCounter].tag = kTXNQDFontNameAttribute ;
-		    typeAttr[attrCounter].size = kTXNQDFontNameAttributeSize ;
-		    typeAttr[attrCounter].data.dataPtr = (void*) fontName ;
-		    typeAttr[attrCounter+1].tag = kTXNQDFontSizeAttribute ;
-		    typeAttr[attrCounter+1].size = kTXNFontSizeAttributeSize ;
-		    typeAttr[attrCounter+1].data.dataValue =  (fontSize << 16) ;
-		    typeAttr[attrCounter+2].tag = kTXNQDFontStyleAttribute ;
-		    typeAttr[attrCounter+2].size = kTXNQDFontStyleAttributeSize ;
-		    typeAttr[attrCounter+2].data.dataValue = fontStyle ;
-		    attrCounter += 3 ;
-		    
-		}
-		if ( style.HasTextColour() )
-		{
-		    typeAttr[attrCounter].tag = kTXNQDFontColorAttribute ;
-		    typeAttr[attrCounter].size = kTXNQDFontColorAttributeSize ;
-		    typeAttr[attrCounter].data.dataPtr = (void*) &color ;
-		    color = MAC_WXCOLORREF(style.GetTextColour().GetPixel()) ;
-		    attrCounter += 1 ;
-		}
+        if ( !formerEditable )
+            SetEditable(true) ;
+        TXNTypeAttributes typeAttr[4] ;
+        Str255 fontName = "\pMonaco" ;
+        SInt16 fontSize = 12 ;
+        Style fontStyle = normal ;
+        RGBColor color ;
+        int attrCounter = 0 ;
+        if ( style.HasFont() )
+        {
+            const wxFont &font = style.GetFont() ;
+            CopyCStringToPascal( font.GetFaceName().c_str() , fontName ) ;
+            fontSize = font.GetPointSize() ;
+            if ( font.GetUnderlined() )
+                fontStyle |= underline ;
+            if ( font.GetWeight() == wxBOLD )
+                fontStyle |= bold ;
+            if ( font.GetStyle() == wxITALIC )
+                fontStyle |= italic ;
+                
+            typeAttr[attrCounter].tag = kTXNQDFontNameAttribute ;
+            typeAttr[attrCounter].size = kTXNQDFontNameAttributeSize ;
+            typeAttr[attrCounter].data.dataPtr = (void*) fontName ;
+            typeAttr[attrCounter+1].tag = kTXNQDFontSizeAttribute ;
+            typeAttr[attrCounter+1].size = kTXNFontSizeAttributeSize ;
+            typeAttr[attrCounter+1].data.dataValue =  (fontSize << 16) ;
+            typeAttr[attrCounter+2].tag = kTXNQDFontStyleAttribute ;
+            typeAttr[attrCounter+2].size = kTXNQDFontStyleAttributeSize ;
+            typeAttr[attrCounter+2].data.dataValue = fontStyle ;
+            attrCounter += 3 ;
+            
+        }
+        if ( style.HasTextColour() )
+        {
+            typeAttr[attrCounter].tag = kTXNQDFontColorAttribute ;
+            typeAttr[attrCounter].size = kTXNQDFontColorAttributeSize ;
+            typeAttr[attrCounter].data.dataPtr = (void*) &color ;
+            color = MAC_WXCOLORREF(style.GetTextColour().GetPixel()) ;
+            attrCounter += 1 ;
+        }
            
         if ( attrCounter > 0 )
         {
@@ -891,7 +911,8 @@ bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
                 start,end);
             wxASSERT_MSG( status == noErr , "Couldn't set text attributes" ) ;
         }
-        SetEditable(formerEditable) ;
+        if ( !formerEditable )
+            SetEditable(formerEditable) ;
     }
     return TRUE ;
 }
@@ -1034,9 +1055,9 @@ void wxTextCtrl::SetEditable(bool editable)
         if ( !m_macUsesTXN )
         {
             if ( editable )
-            	UMAActivateControl( (ControlHandle) m_macControl ) ;
+                UMAActivateControl( (ControlHandle) m_macControl ) ;
             else
-            	UMADeactivateControl((ControlHandle)  m_macControl ) ;
+                UMADeactivateControl((ControlHandle)  m_macControl ) ;
         }
         else
         {
@@ -1106,12 +1127,14 @@ void wxTextCtrl::Replace(long from, long to, const wxString& value)
     else
     {
         bool formerEditable = IsEditable() ;
-        SetEditable(true) ;
-	    TXNSetSelection( ((TXNObject) m_macTXN) , from , to ) ;
-	    TXNClear( ((TXNObject) m_macTXN) ) ;
-  	    TXNSetData( ((TXNObject) m_macTXN), kTXNTextData,  (void*)value.c_str(), value.Length(),
-  	    kTXNUseCurrentSelection, kTXNUseCurrentSelection);
-  	    SetEditable( formerEditable ) ;
+        if ( !formerEditable )
+            SetEditable(true) ;
+        TXNSetSelection( ((TXNObject) m_macTXN) , from , to ) ;
+        TXNClear( ((TXNObject) m_macTXN) ) ;
+        TXNSetData( ((TXNObject) m_macTXN), kTXNTextData,  (void*)value.c_str(), value.Length(),
+        kTXNUseCurrentSelection, kTXNUseCurrentSelection);
+        if ( !formerEditable )
+            SetEditable( formerEditable ) ;
     }
     Refresh() ;
 }
@@ -1130,10 +1153,12 @@ void wxTextCtrl::Remove(long from, long to)
   else
   {
     bool formerEditable = IsEditable() ;
-    SetEditable(true) ;
+    if ( !formerEditable )
+        SetEditable(true) ;
     TXNSetSelection( ((TXNObject) m_macTXN) , from , to ) ; 
     TXNClear( ((TXNObject) m_macTXN) ) ; 
-    SetEditable( formerEditable ) ;
+    if ( !formerEditable )
+        SetEditable( formerEditable ) ;
   }
     Refresh() ;
 }
@@ -1178,9 +1203,13 @@ void wxTextCtrl::WriteText(const wxString& text)
 {
     wxString value ;
     if( wxApp::s_macDefaultEncodingIsPC )
+    {
         value = wxMacMakeMacStringFromPC( text ) ;
+        value.Replace( "\n", "\r" );
+    }
     else
         value = text ;
+        
     if ( !m_macUsesTXN )
     {
         TEInsert( value , value.Length() , ((TEHandle) m_macTE) ) ;
@@ -1188,14 +1217,16 @@ void wxTextCtrl::WriteText(const wxString& text)
     else
     {
         bool formerEditable = IsEditable() ;
-        SetEditable(true) ;
-	    long start , end , dummy ;
-	    GetSelection( &start , &dummy ) ;
+        if ( !formerEditable )
+            SetEditable(true) ;
+        long start , end , dummy ;
+        GetSelection( &start , &dummy ) ;
         TXNSetData( ((TXNObject) m_macTXN), kTXNTextData, (void*) (const char*)value, value.Length(),
           kTXNUseCurrentSelection, kTXNUseCurrentSelection);
-    	GetSelection( &dummy , &end ) ;
+        GetSelection( &dummy , &end ) ;
         SetStyle( start , end , GetDefaultStyle() ) ;
-    	SetEditable( formerEditable ) ;
+        if ( !formerEditable )
+            SetEditable( formerEditable ) ;
     }
     MacRedrawControl() ;
 }
@@ -1511,7 +1542,9 @@ void wxTextCtrl::OnChar(wxKeyEvent& event)
          key == WXK_DELETE || 
          key == WXK_BACK)
     {
+        long t1 = 0xDEADBEEF ;
         wxCommandEvent event1(wxEVT_COMMAND_TEXT_UPDATED, m_windowId);
+        long t2 = 0xDEADBEEF ;
         event1.SetString( GetValue() ) ;
         event1.SetEventObject( this );
         wxPostEvent(GetEventHandler(),event1);
@@ -1539,7 +1572,7 @@ bool  wxTextCtrl::Show(bool show)
     
     bool retval = wxControl::Show( show ) ;
     
-    if ( former != m_macControlIsShown )
+    if ( former != m_macControlIsShown && show )
     {
         if ( m_macControlIsShown )
             TXNSetFrameBounds( (TXNObject) m_macTXN, (**(STPTextPaneVars **)m_macTXNvars).fRTextArea.top, (**(STPTextPaneVars **)m_macTXNvars).fRTextArea.left, 
@@ -1606,7 +1639,13 @@ void wxTextCtrl::OnUpdateRedo(wxUpdateUIEvent& event)
     event.Enable( CanRedo() );
 }
 
-
+bool wxTextCtrl::MacSetupCursor( const wxPoint& pt )
+{
+    if ( m_macUsesTXN )
+        return true ;
+    else
+        return wxWindow::MacSetupCursor( pt ) ;
+}
 
 #endif
     // wxUSE_TEXTCTRL
diff --git a/src/mac/carbon/toolbar.cpp b/src/mac/carbon/toolbar.cpp
index 0ed2cc6b55..c1d36f4122 100644
--- a/src/mac/carbon/toolbar.cpp
+++ b/src/mac/carbon/toolbar.cpp
@@ -159,6 +159,13 @@ bool wxToolBar::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, cons
 
 wxToolBar::~wxToolBar()
 {
+    size_t index = 0 ;
+    for ( index = 0 ; index < m_macToolHandles.Count() ; ++index )
+    {
+        // Delete the control as we get ghosts otherwise
+        ::DisposeControl( (ControlHandle) m_macToolHandles[index] );
+    }
+    
     // we must refresh the frame size when the toolbar is deleted but the frame
     // is not - otherwise toolbar leaves a hole in the place it used to occupy
 }
diff --git a/src/mac/carbon/tooltip.cpp b/src/mac/carbon/tooltip.cpp
index 5f71f00425..317fe723fd 100644
--- a/src/mac/carbon/tooltip.cpp
+++ b/src/mac/carbon/tooltip.cpp
@@ -287,16 +287,38 @@ void wxMacToolTip::Draw()
   		    m_rect.right += kTipBorder ;
 #endif
   		m_rect.bottom = m_rect.top + height + 2 * kTipBorder;
+  		Rect r ;
+  		GetPortBounds( GetWindowPort( m_window ) , &r ) ;
+  		if ( m_rect.top < 0 )
+  		{
+  		    m_rect.bottom += -m_rect.top ;
+  		    m_rect.top = 0 ;
+  		}
+  		if ( m_rect.left < 0 )
+  		{
+  		    m_rect.right += -m_rect.left ;
+  		    m_rect.left = 0 ;
+  		}
+  		if ( m_rect.right > r.right )
+  		{
+  		    m_rect.left -= (m_rect.right - r.right ) ;
+  		    m_rect.right = r.right ;
+  		}
+  		if ( m_rect.bottom > r.bottom )
+  		{
+  		    m_rect.top -= (m_rect.bottom - r.bottom) ;
+  		    m_rect.bottom = r.bottom ;
+  		}
   		ClipRect( &m_rect ) ;
   		BackColor( whiteColor ) ;
   		ForeColor(blackColor ) ;
-                GWorldPtr port ;	        
-                NewGWorld( &port , wxDisplayDepth() , &m_rect , NULL , NULL , 0 ) ;
-                CGrafPtr    origPort ;
-                GDHandle    origDevice ;
-    
-                GetGWorld( &origPort , &origDevice ) ;
-                SetGWorld( port , NULL ) ;
+        GWorldPtr port ;	        
+        NewGWorld( &port , wxDisplayDepth() , &m_rect , NULL , NULL , 0 ) ;
+        CGrafPtr    origPort ;
+        GDHandle    origDevice ;
+
+        GetGWorld( &origPort , &origDevice ) ;
+        SetGWorld( port , NULL ) ;
 	    
   		m_backpict = OpenPicture(&m_rect);
 
diff --git a/src/mac/carbon/toplevel.cpp b/src/mac/carbon/toplevel.cpp
index efcf1a737d..e074c7fb31 100644
--- a/src/mac/carbon/toplevel.cpp
+++ b/src/mac/carbon/toplevel.cpp
@@ -235,7 +235,7 @@ pascal OSStatus wxMacWindowEventHandler( EventHandlerCallRef handler , EventRef
             {
     			wxTheApp->m_macCurrentEvent = &rec ;
                 wxWindow* focus = wxWindow::FindFocus() ;
-                if ( (focus != NULL) && wxTheApp->MacSendKeyDownEvent( focus , rec.message , rec.modifiers , rec.when , rec.where.h , rec.where.v ) )
+                if ( (focus != NULL) && !UMAMenuEvent(&rec) && wxTheApp->MacSendKeyDownEvent( focus , rec.message , rec.modifiers , rec.when , rec.where.h , rec.where.v ) )
                 {
                     // was handled internally
                     result = noErr ;
@@ -322,7 +322,11 @@ void  wxTopLevelWindowMac::MacCreateRealWindow( const wxString& title,
         }
         else
         {
+#if TARGET_CARBON
             wclass = kPlainWindowClass ;
+#else
+            wclass = kFloatingWindowClass ;
+#endif
         }
     }
     else if ( HasFlag( wxCAPTION ) )
@@ -345,7 +349,11 @@ void  wxTopLevelWindowMac::MacCreateRealWindow( const wxString& title,
         }
         else
         {
+#if TARGET_CARBON
             wclass = kPlainWindowClass ;
+#else
+            wclass = kModalWindowClass ;
+#endif
         }
     }
     
@@ -604,8 +612,8 @@ bool wxTopLevelWindowMac::Show(bool show)
         return FALSE;
 
     if (show)
-    {
-      ::ShowWindow( (WindowRef)m_macWindow ) ;
+    { 
+      ::TransitionWindow((WindowRef)m_macWindow,kWindowZoomTransitionEffect,kWindowShowTransitionAction,nil);
       ::SelectWindow( (WindowRef)m_macWindow ) ;
       // no need to generate events here, they will get them triggered by macos
       // actually they should be , but apparently they are not
@@ -616,7 +624,7 @@ bool wxTopLevelWindowMac::Show(bool show)
     }
     else
     {
-      ::HideWindow( (WindowRef)m_macWindow ) ;
+      ::TransitionWindow((WindowRef)m_macWindow,kWindowZoomTransitionEffect,kWindowHideTransitionAction,nil);
     }
 
     if ( !show )
@@ -675,9 +683,13 @@ void wxTopLevelWindowMac::DoMoveWindow(int x, int y, int width, int height)
         
         if ( doResize )
             ::SizeWindow((WindowRef)m_macWindow, m_width, m_height  , true); 
+            
+        // the OS takes care of invalidating and erasing the new area so we only have to
+        // take care of refreshing for full repaints
+
+        if ( doResize && !HasFlag(wxNO_FULL_REPAINT_ON_RESIZE) )
+            Refresh() ;
         
-        // the OS takes care of invalidating and erasing the new area
-        // we have erased the old one   
         
         if ( IsKindOf( CLASSINFO( wxFrame ) ) )
         {
diff --git a/src/mac/carbon/uma.cpp b/src/mac/carbon/uma.cpp
index 7f12124698..1c6afd4eb6 100644
--- a/src/mac/carbon/uma.cpp
+++ b/src/mac/carbon/uma.cpp
@@ -23,12 +23,14 @@
 
 static bool	sUMAHasAppearance = false ;
 static long sUMAAppearanceVersion = 0 ;
+static long sUMASystemVersion = 0 ;
 static bool sUMAHasAquaLayout = false ;
 static bool sUMASystemInitialized = false ;
 
 extern int gAGABackgroundColor ;
 bool UMAHasAppearance() { return sUMAHasAppearance ; }
 long UMAGetAppearanceVersion() { return sUMAAppearanceVersion ; }
+long UMAGetSystemVersion() { return sUMASystemVersion ; }
 
 static bool	sUMAHasWindowManager = false ;
 static long sUMAWindowManagerAttr = 0 ;
@@ -71,6 +73,9 @@ void UMAInitToolbox( UInt16 inMoreMastersCalls )
 	InitCursor();
 #endif
 
+    if ( Gestalt(gestaltSystemVersion, &sUMASystemVersion) != noErr)
+    	sUMASystemVersion = 0x0000 ;
+    	
 	long theAppearance ;
 	if ( Gestalt( gestaltAppearanceAttr, &theAppearance ) == noErr )
 	{
@@ -232,33 +237,157 @@ void UMAInsertSubMenuItem( MenuRef menu , StringPtr l , MenuItemIndex item , SIn
 	SetMenuItemHierarchicalID( menu , item , id ) ;
 }
 
-
-void UMAAppendMenuItem( MenuRef menu , StringPtr l , SInt16 key, UInt8 modifiers ) 
+void UMASetMenuItemShortcut( MenuRef menu , MenuItemIndex item , SInt16 key , UInt8 modifiers )
 {
-	Str255 label ;
-	memcpy( label , l , l[0]+1 ) ;
 	if ( key )
 	{
-			int pos = label[0] ;
-			label[++pos] = '/';
-			label[++pos] = toupper( key );
-			label[0] = pos ;
+	    SInt16 glyph = 0 ;
+	    SInt16 macKey = key ;
+	    if ( key >= WXK_F1 && key <= WXK_F15 )
+	    {
+	        macKey = kFunctionKeyCharCode ;
+	        glyph = kMenuF1Glyph + ( key - WXK_F1 ) ;
+	        if ( key >= WXK_F13 )
+	            glyph += 13 ;
+	        switch( key )
+	        {
+	            case WXK_F1 :
+	                macKey += ( 0x7a << 8 ) ;
+	                break ;
+	            case WXK_F2 :
+	                macKey += ( 0x78 << 8 ) ;
+	                break ;
+	            case WXK_F3 :
+	                macKey += ( 0x63 << 8 ) ;
+	                break ;
+	            case WXK_F4 :
+	                macKey += ( 0x76 << 8 ) ;
+	                break ;
+	            case WXK_F5 :
+	                macKey += ( 0x60 << 8 ) ;
+	                break ;
+	            case WXK_F6 :
+	                macKey += ( 0x61 << 8 ) ;
+	                break ;
+	            case WXK_F7 :
+	                macKey += ( 0x62 << 8 ) ;
+	                break ;
+	            case WXK_F8 :
+	                macKey += ( 0x64 << 8 ) ;
+	                break ;
+	            case WXK_F9 :
+	                macKey += ( 0x65 << 8 ) ;
+	                break ;
+	            case WXK_F10 :
+	                macKey += ( 0x6D << 8 ) ;
+	                break ;
+	            case WXK_F11 :
+	                macKey += ( 0x67 << 8 ) ;
+	                break ;
+	            case WXK_F12 :
+	                macKey += ( 0x6F << 8 ) ;
+	                break ;
+	            case WXK_F13 :
+	                macKey += ( 0x69 << 8 ) ;
+	                break ;
+	            case WXK_F14 :
+	                macKey += ( 0x6B << 8 ) ;
+	                break ;
+	            case WXK_F15 :
+	                macKey += ( 0x71 << 8 ) ;
+	                break ;
+	            default :
+	                break ;
+	        } ;
+	        // unfortunately this does not yet trigger the right key ,
+	        // for some reason mac justs picks the first function key menu
+	        // defined, so we turn this off
+	        macKey = 0 ;
+	        glyph = 0 ;
+  	    }
+	    else
+    	{
+    	    switch( key )
+    	    {
+    	        case WXK_BACK :
+    	            macKey = kBackspaceCharCode ;
+    	            glyph = kMenuDeleteLeftGlyph ;
+    	            break ;
+    	        case WXK_TAB :
+    	            macKey = kTabCharCode ;
+    	            glyph = kMenuTabRightGlyph ;
+    	            break ;
+    	        case kEnterCharCode :
+    	            macKey = kEnterCharCode ;
+    	            glyph = kMenuEnterGlyph ;
+    	            break ;
+    	        case WXK_RETURN :
+    	            macKey = kReturnCharCode ;
+    	            glyph = kMenuReturnGlyph ;
+    	            break ;
+    	        case WXK_ESCAPE :
+    	            macKey = kEscapeCharCode ;
+    	            glyph = kMenuEscapeGlyph ;
+    	            break ;
+    	        case WXK_SPACE :
+    	            macKey = ' ' ;
+    	            glyph = kMenuSpaceGlyph ;
+    	            break ;
+    	        case WXK_DELETE :
+    	            macKey = kDeleteCharCode ;
+    	            glyph = kMenuDeleteRightGlyph ;
+    	            break ;
+    	        case WXK_CLEAR :
+    	            macKey = kClearCharCode ;
+    	            glyph = kMenuClearGlyph ;
+    	            break ;
+    	        case WXK_PRIOR : // PAGE UP
+    	            macKey = kPageUpCharCode ;
+    	            glyph = kMenuPageUpGlyph ;
+    	            break ;
+    	        case WXK_NEXT :
+    	            macKey = kPageDownCharCode ;
+    	            glyph = kMenuPageDownGlyph ;
+    	            break ;
+    	        case WXK_LEFT :
+    	            macKey = kLeftArrowCharCode ;
+    	            glyph = kMenuLeftArrowGlyph ;
+    	            break ;
+    	        case WXK_UP :
+    	            macKey = kUpArrowCharCode ;
+    	            glyph = kMenuUpArrowGlyph ;
+    	            break ;
+    	        case WXK_RIGHT :
+    	            macKey = kRightArrowCharCode ;
+    	            glyph = kMenuRightArrowGlyph ;
+    	            break ;
+    	        case WXK_DOWN :
+    	            macKey = kDownArrowCharCode ;
+    	            glyph = kMenuDownArrowGlyph ;
+    	            break ;
+            }
+        }
+	    
+	    SetItemCmd( menu, item , macKey );
+	    SetMenuItemModifiers(menu, item , modifiers ) ;
+
+        if ( glyph )
+            SetMenuItemKeyGlyph(menu, item , glyph ) ;
 	}
-	MacAppendMenu( menu , label ) ;
+}
+
+void UMAAppendMenuItem( MenuRef menu , StringPtr l , SInt16 key, UInt8 modifiers ) 
+{
+	MacAppendMenu(menu, "\pA");
+	SetMenuItemText(menu, (SInt16) ::CountMenuItems(menu), l);
+	UMASetMenuItemShortcut( menu ,  (SInt16) ::CountMenuItems(menu), key , modifiers ) ;
 }
 
 void UMAInsertMenuItem( MenuRef menu , StringPtr l , MenuItemIndex item , SInt16 key, UInt8 modifiers ) 
 {
-	Str255 label ;
-	memcpy( label , l , l[0]+1 ) ;
-	if ( key )
-	{
-			int pos = label[0] ;
-			label[++pos] = '/';
-			label[++pos] = toupper( key );
-			label[0] = pos ;
-	}
-	MacInsertMenuItem( menu , label , item) ;
+	MacInsertMenuItem( menu , "\p" , item) ;
+	SetMenuItemText(menu, item , l);
+	UMASetMenuItemShortcut( menu , item , key , modifiers ) ;
 }
 
 // quickdraw
diff --git a/src/mac/carbon/utils.cpp b/src/mac/carbon/utils.cpp
index 1d0252c810..2ab9256cc5 100644
--- a/src/mac/carbon/utils.cpp
+++ b/src/mac/carbon/utils.cpp
@@ -461,7 +461,11 @@ int wxDisplayDepth()
 // Get size of display
 void wxDisplaySize(int *width, int *height)
 {
-  wxClientDisplayRect( NULL , NULL , width , height ) ;
+  	BitMap screenBits;
+  	GetQDGlobalsScreenBits( &screenBits );
+
+    *width = screenBits.bounds.right - screenBits.bounds.left  ;
+    *height = screenBits.bounds.bottom - screenBits.bounds.top ;
 }
 
 void wxDisplaySizeMM(int *width, int *height)
diff --git a/src/mac/carbon/window.cpp b/src/mac/carbon/window.cpp
index bc83a282a2..26c54353c6 100644
--- a/src/mac/carbon/window.cpp
+++ b/src/mac/carbon/window.cpp
@@ -353,7 +353,17 @@ bool wxWindowMac::DoPopupMenu(wxMenu *menu, int x, int y)
 
     ::InsertMenu( (MenuHandle) menu->GetHMenu() , -1 ) ;
     long menuResult = ::PopUpMenuSelect((MenuHandle) menu->GetHMenu() ,y,x, 0) ;
-    menu->MacMenuSelect( this , TickCount() , HiWord(menuResult) , LoWord(menuResult) ) ;
+    if ( HiWord(menuResult) != 0 )
+    {
+        MenuCommand id ;
+        GetMenuItemCommandID( GetMenuHandle(HiWord(menuResult)) , LoWord(menuResult) , &id ) ;
+
+        wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, id );
+        event.m_timeStamp =  TickCount() ;
+        event.SetEventObject(this->GetEventHandler());
+        event.SetInt( id );
+        GetEventHandler()->ProcessEvent(event);
+    }
     ::DeleteMenu( menu->MacGetMenuId() ) ;
     menu->SetInvokingWindow(NULL);
 
@@ -595,7 +605,35 @@ void wxWindowMac::DoMoveWindow(int x, int y, int width, int height)
     {
         // erase former position
 
-        Refresh() ;
+        bool partialRepaint = false ;
+
+        if ( HasFlag(wxNO_FULL_REPAINT_ON_RESIZE) )
+        {
+            wxPoint oldPos( m_x , m_y ) ; 
+            wxPoint newPos( actualX , actualY ) ;
+            MacWindowToRootWindow( &oldPos.x , &oldPos.y ) ;
+            MacWindowToRootWindow( &newPos.x , &newPos.y ) ;
+            if ( oldPos == newPos )
+            {
+                partialRepaint = true ;
+                RgnHandle oldRgn,newRgn,diffRgn ;
+                oldRgn = NewRgn() ;
+                newRgn = NewRgn() ;
+                diffRgn = NewRgn() ;
+                SetRectRgn(oldRgn , oldPos.x , oldPos.y , oldPos.x + m_width , oldPos.y + m_height ) ;
+                SetRectRgn(newRgn , newPos.x , newPos.y , newPos.x + actualWidth , newPos.y + actualHeight ) ;
+                DiffRgn( newRgn , oldRgn , diffRgn ) ;
+                InvalWindowRgn( (WindowRef) MacGetRootWindow() , diffRgn ) ;
+                DiffRgn( oldRgn , newRgn , diffRgn ) ;
+                InvalWindowRgn( (WindowRef) MacGetRootWindow() , diffRgn ) ;
+                DisposeRgn(oldRgn) ;
+                DisposeRgn(newRgn) ;
+                DisposeRgn(diffRgn) ;
+            }
+        }
+
+        if ( !partialRepaint )
+            Refresh() ;
 
         m_x = actualX ;
         m_y = actualY ;
@@ -607,7 +645,8 @@ void wxWindowMac::DoMoveWindow(int x, int y, int width, int height)
 		MacUpdateDimensions() ;
         // erase new position
 
-        Refresh() ;
+        if ( !partialRepaint )
+            Refresh() ;
         if ( doMove )
             wxWindowMac::MacSuperChangedPosition() ; // like this only children will be notified
 
diff --git a/src/mac/checklst.cpp b/src/mac/checklst.cpp
index bba473b606..3bb48dec08 100644
--- a/src/mac/checklst.cpp
+++ b/src/mac/checklst.cpp
@@ -271,7 +271,7 @@ bool wxCheckListBox::Create(wxWindow *parent,
     }
     else
     {
-        options = lOnlyOne ;
+        options = (OptionBits) lOnlyOne ;
     }
     SetListSelectionFlags((ListHandle)m_macList, options);
     
diff --git a/src/mac/cursor.cpp b/src/mac/cursor.cpp
index 23b9eb4c0c..247d910752 100644
--- a/src/mac/cursor.cpp
+++ b/src/mac/cursor.cpp
@@ -217,8 +217,9 @@ void wxCursor::MacInstall() const
 {
 	if ( m_refData && M_CURSORDATA->m_hCursor )
 	{
-		::SetCursor(  *((CursHandle)M_CURSORDATA->m_hCursor) ) ;
-		gMacCurrentCursor = (CursHandle)M_CURSORDATA->m_hCursor ;
+		CursHandle ch = ((CursHandle)M_CURSORDATA->m_hCursor) ;
+		::SetCursor(  *ch ) ;
+		gMacCurrentCursor = ch ;
 	}
 	else
 	{
diff --git a/src/mac/dc.cpp b/src/mac/dc.cpp
index 14ced3443b..d9b5abecbd 100644
--- a/src/mac/dc.cpp
+++ b/src/mac/dc.cpp
@@ -2041,7 +2041,8 @@ void wxDC::MacInstallPen() const
 	        case wxUSER_DASH :
 	            {
 	                wxDash* dash ;
-                    int number = m_pen.GetDashes(&dash) ;
+                    m_pen.GetDashes(&dash) ;
+
 	                // right now we don't allocate larger pixmaps
 	                // int number = 
 	                m_pen.GetDashes(&dash) ;
diff --git a/src/mac/filedlg.cpp b/src/mac/filedlg.cpp
index cef71e0136..f4e41ae710 100644
--- a/src/mac/filedlg.cpp
+++ b/src/mac/filedlg.cpp
@@ -46,15 +46,15 @@ extern bool gUseNavServices ;
 // and a copy of the "previous" file spec of the reply record
 // so we can see if the selection has changed
 
-const int kwxMacFileTypes = 10 ;
-
 struct OpenUserDataRec {
   int           currentfilter ;
-  wxString      name [kwxMacFileTypes] ;
-  wxString      extensions[kwxMacFileTypes] ;
-	OSType				filtermactypes[kwxMacFileTypes] ;
-	int					  numfilters ;
+  bool				saveMode ;
+  wxArrayString      name ;
+  wxArrayString      extensions ;
+  wxArrayLong		filtermactypes ;
+  NavMenuItemSpecArrayHandle menuitems ;
 };
+
 typedef struct OpenUserDataRec
 	OpenUserDataRec, *OpenUserDataRecPtr;
 
@@ -75,23 +75,40 @@ NavEventProc(
 	NavCBRecPtr					ioParams,
 	NavCallBackUserData	ioUserData	)
 {
-	  OpenUserDataRec * data = ( OpenUserDataRec *) ioUserData ;
+	OpenUserDataRec * data = ( OpenUserDataRec *) ioUserData ;
 	if (inSelector == kNavCBEvent) {	
-			// In Universal Headers 3.2, Apple changed the definition of
-		/*
-		#if UNIVERSAL_INTERFACES_VERSION >= 0x0320 // Universal Headers 3.2
-			UModalAlerts::ProcessModalEvent(*(ioParams->eventData.eventDataParms.event));
-			
-		#else
-			UModalAlerts::ProcessModalEvent(*(ioParams->eventData.event));
-		#endif
-		*/
-		
          wxTheApp->MacHandleOneEvent(ioParams->eventData.eventDataParms.event);
-	} else if ( inSelector == kNavCBPopupMenuSelect )
+	} 
+	else if ( inSelector == kNavCBStart )
+	{
+		if ( data->menuitems )
+			NavCustomControl(ioParams->context, kNavCtlSelectCustomType, &(*data->menuitems)[data->currentfilter]);
+	}
+	else if ( inSelector == kNavCBPopupMenuSelect )
 	{
-	  NavMenuItemSpec * menu = (NavMenuItemSpec *) ioParams->eventData.eventDataParms.param ;
-	  data->currentfilter = menu->menuType ;
+		NavMenuItemSpec * menu = (NavMenuItemSpec *) ioParams->eventData.eventDataParms.param ;
+		if ( menu->menuCreator == 'WXNG' )
+		{
+			data->currentfilter = menu->menuType ;
+			if ( data->saveMode )
+			{
+				int i = menu->menuType ;
+				wxString extension =  data->extensions[i].AfterLast('.') ;
+				extension.MakeLower() ;
+				Str255 filename ;
+				// get the current filename
+				NavCustomControl(ioParams->context, kNavCtlGetEditFileName, &filename);
+				CopyPascalStringToC( filename , (char*) filename ) ;
+				wxString sfilename( filename ) ;
+				int pos = sfilename.Find('.',TRUE) ;
+				if ( pos != wxNOT_FOUND )
+				{
+					sfilename = sfilename.Left(pos+1)+extension ;
+					CopyCStringToPascal( sfilename.c_str() , filename ) ;
+					NavCustomControl(ioParams->context, kNavCtlSetEditFileName, &filename);
+				}
+			}
+	  	}
 	}
 }
 
@@ -117,23 +134,25 @@ OSType gfiltersmac[] =
 
 void MakeUserDataRec(OpenUserDataRec	*myData , const wxString& filter )
 {
-  myData->currentfilter = 0 ;
-  
+	myData->menuitems = NULL ;
+  	myData->currentfilter = 0 ;
+  	myData->saveMode = FALSE ;
+  	
 	if ( filter && filter[0] )
 	{
 	  wxString filter2(filter) ;
     int filterIndex = 0;
     bool isName = true ;
     wxString current ;
-    for( unsigned int i = 0; i < filter2.Len(); i++ )
+    for( unsigned int i = 0; i < filter2.Len() ; i++ )
     {
        if( filter2.GetChar(i) == wxT('|') )
        {
         if( isName ) {
-          myData->name[filterIndex] = current ;
+          myData->name.Add( current ) ;
         }
         else {
-          myData->extensions[filterIndex] = current.MakeUpper() ;
+          myData->extensions.Add( current.MakeUpper() ) ;
           ++filterIndex ;
         }
         isName = !isName ;
@@ -149,35 +168,33 @@ void MakeUserDataRec(OpenUserDataRec	*myData , const wxString& filter )
       
     wxASSERT_MSG( filterIndex == 0 || !isName , "incorrect format of format string" ) ;
     if ( current.IsEmpty() )
-        myData->extensions[filterIndex] = myData->name[filterIndex] ;
+        myData->extensions.Add( myData->name[filterIndex] ) ;
     else
-        myData->extensions[filterIndex] = current.MakeUpper() ;
+        myData->extensions.Add( current.MakeUpper() ) ;
+    if ( filterIndex == 0 || isName )
+        myData->name.Add( current.MakeUpper() ) ;
+        
     ++filterIndex ;
 
 
-		myData->numfilters = filterIndex ;
-		for ( int i = 0 ; i < myData->numfilters ; i++ )
+        const size_t extCount = myData->extensions.GetCount();
+		for ( size_t i = 0 ; i < extCount; i++ )
 		{
 			int j ;
 			for ( j = 0 ; gfilters[j] ; j++ )
 			{
 				if ( strcmp( myData->extensions[i] , gfilters[j] ) == 0 )
 				{
-					myData->filtermactypes[i] = gfiltersmac[j] ;
+				    myData->filtermactypes.Add( gfiltersmac[j] ) ;
 					break ;
 				}
 			}
 			if( gfilters[j] == NULL )
 			{
-				myData->filtermactypes[i] = '****' ;
+				myData->filtermactypes.Add( '****' ) ;
 			}
 		}
 	}
-	else
-	{
-		myData->numfilters = 0 ;
-	}
-
 }
 
 static Boolean CheckFile( ConstStr255Param name , OSType type , OpenUserDataRecPtr data)
@@ -193,7 +210,7 @@ static Boolean CheckFile( ConstStr255Param name , OSType type , OpenUserDataRecP
     wxString file(filename) ;
     file.MakeUpper() ;
     
-    if ( data->numfilters > 0 )
+    if ( data->extensions.GetCount() > 0 )
     {
 	//for ( int i = 0 ; i < data->numfilters ; ++i )
 	    int i = data->currentfilter ;
@@ -201,7 +218,7 @@ static Boolean CheckFile( ConstStr255Param name , OSType type , OpenUserDataRecP
 	      return true ;
 	
 	    {
-	      if ( type == data->filtermactypes[i] )
+	      if ( type == (OSType)data->filtermactypes[i] )
 		      return true ;
 	    
 	      wxStringTokenizer tokenizer( data->extensions[i] , ";" ) ;
@@ -314,7 +331,7 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
         const wxString& defaultDir, const wxString& defaultFileName, const wxString& wildCard,
         long style, const wxPoint& pos)
 {
-	  wxASSERT_MSG( NavServicesAvailable() , "Navigation Services are not running" ) ;
+	wxASSERT_MSG( NavServicesAvailable() , "Navigation Services are not running" ) ;
     m_message = message;
     m_dialogStyle = style;
     m_parent = parent;
@@ -322,7 +339,7 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
     m_fileName = defaultFileName;
     m_dir = defaultDir;
     m_wildCard = wildCard;
-    m_filterIndex = 1;
+    m_filterIndex = 0;
 }
 
 
@@ -408,10 +425,30 @@ int wxFileDialog::ShowModal()
 		c2pstr((char *)mNavOptions.savedFileName ) ;
 #endif
 
+		OpenUserDataRec			myData;
+		MakeUserDataRec( &myData , m_wildCard ) ;
+		myData.currentfilter = m_filterIndex ;
+	  	if ( myData.extensions.GetCount() > 0 )
+	  	{
+		  	mNavOptions.popupExtension = (NavMenuItemSpecArrayHandle) NewHandle( sizeof( NavMenuItemSpec ) * myData.extensions.GetCount() ) ;
+			myData.menuitems = mNavOptions.popupExtension ;
+		  	for ( int i = 0 ; i < myData.extensions.GetCount() ; ++i ) 
+		  	{
+		  	    (*mNavOptions.popupExtension)[i].version = kNavMenuItemSpecVersion ;
+		  	    (*mNavOptions.popupExtension)[i].menuCreator = 'WXNG' ;
+		  	    (*mNavOptions.popupExtension)[i].menuType = i ;
+	          #if TARGET_CARBON
+	          		c2pstrcpy((StringPtr)(*mNavOptions.popupExtension)[i].menuItemName, myData.name[i]) ;
+	          #else
+	          		strcpy((char *)(*mNavOptions.popupExtension)[i].menuItemName, myData.name[i]) ;
+	          		c2pstr((char *)(*mNavOptions.popupExtension)[i].menuItemName ) ;
+	          #endif
+	  	 	}
+		}
 		if ( m_dialogStyle & wxSAVE )
 		{
-			
-			mNavOptions.dialogOptionFlags |= kNavNoTypePopup ;
+		  	myData.saveMode = true ;
+
 			mNavOptions.dialogOptionFlags |= kNavDontAutoTranslate ;
 			mNavOptions.dialogOptionFlags |= kNavDontAddTranslateItems ;
 			
@@ -420,33 +457,16 @@ int wxFileDialog::ShowModal()
 						&mNavReply,
 						&mNavOptions,
 						sStandardNavEventFilter ,
-						'TEXT',
-						'TEXT',
-						0L);					// User Data
+						NULL,
+						kNavGenericSignature,
+						&myData);					// User Data
+			m_filterIndex = myData.currentfilter ;
 		}
 		else
 		{
-	  	OpenUserDataRec			myData;
-	  	MakeUserDataRec( &myData , m_wildCard ) ;
-	  	NavTypeListHandle typelist = NULL ;
-
-	  	if ( myData.numfilters > 0 )
-	  	{
-	  	  mNavOptions.popupExtension = (NavMenuItemSpecArrayHandle) NewHandle( sizeof( NavMenuItemSpec ) * myData.numfilters ) ;
-	  	  for ( int i = 0 ; i < myData.numfilters ; ++i ) {
-	  	    (*mNavOptions.popupExtension)[i].version = kNavMenuItemSpecVersion ;
-	  	    (*mNavOptions.popupExtension)[i].menuCreator = 'WXNG' ;
-	  	    (*mNavOptions.popupExtension)[i].menuType = i ;
-          #if TARGET_CARBON
-          		c2pstrcpy((StringPtr)(*mNavOptions.popupExtension)[i].menuItemName, myData.name[i]) ;
-          #else
-          		strcpy((char *)(*mNavOptions.popupExtension)[i].menuItemName, myData.name[i]) ;
-          		c2pstr((char *)(*mNavOptions.popupExtension)[i].menuItemName ) ;
-          #endif
-	  	  }
-	  	}
+		  	myData.saveMode = false ;
 
-      mNavFilterUPP = NewNavObjectFilterUPP( CrossPlatformFilterCallback ) ;
+      		mNavFilterUPP = NewNavObjectFilterUPP( CrossPlatformFilterCallback ) ;
 			if ( m_dialogStyle & wxMULTIPLE )
 				mNavOptions.dialogOptionFlags |= kNavAllowMultipleFiles ;
 			else
@@ -459,10 +479,9 @@ int wxFileDialog::ShowModal()
 						sStandardNavEventFilter ,
 						mNavPreviewUPP,
 						mNavFilterUPP,
-						typelist /*inFileTypes.TypeListHandle() */,
-						&myData);							// User Data
-			if ( typelist )
-			  DisposeHandle( (Handle) typelist ) ;
+						NULL ,
+						&myData);						
+			m_filterIndex = myData.currentfilter ;
 		}
 		
 		DisposeNavObjectFilterUPP(mNavFilterUPP);
diff --git a/src/mac/files.lst b/src/mac/files.lst
index 009570dcbb..b8705f0122 100644
--- a/src/mac/files.lst
+++ b/src/mac/files.lst
@@ -271,7 +271,6 @@ ALL_SOURCES = \
 		html/m_layout.cpp \
 		html/m_links.cpp \
 		html/m_list.cpp \
-		html/m_meta.cpp \
 		html/m_pre.cpp \
 		html/m_style.cpp \
 		html/m_tables.cpp \
@@ -621,7 +620,7 @@ ALL_HEADERS = \
 		generic/imaglist.h \
 		generic/laywin.h \
 		generic/listctrl.h \
-		generic/mdig.cpp \
+		generic/mdig.h \
 		generic/msgdlgg.h \
 		generic/notebook.h \
 		generic/paletteg.h \
@@ -665,7 +664,6 @@ ALL_HEADERS = \
 		protocol/protocol.h
 
 COMMONOBJS = \
-		parser.o \
 		appcmn.o \
 		artprov.o \
 		artstd.o \
@@ -953,7 +951,6 @@ HTMLOBJS = \
 		m_layout.o \
 		m_links.o \
 		m_list.o \
-		m_meta.o \
 		m_pre.o \
 		m_style.o \
 		m_tables.o \
diff --git a/src/mac/font.cpp b/src/mac/font.cpp
index eec71c52ee..d1b4798cc4 100644
--- a/src/mac/font.cpp
+++ b/src/mac/font.cpp
@@ -89,6 +89,10 @@ void wxFontRefData::MacFindFont()
 				::GetFNum( "\pMonaco" , &m_macFontNum) ;
 				break ;
 		}
+		Str255 name ;
+		GetFontName( m_macFontNum , name ) ;
+		CopyPascalStringToC( name , (char*) name ) ;
+		m_faceName = (char*) name ;
 	}
 	else
 	{
diff --git a/src/mac/frame.cpp b/src/mac/frame.cpp
index 4d83421744..7f1860a837 100644
--- a/src/mac/frame.cpp
+++ b/src/mac/frame.cpp
@@ -231,9 +231,35 @@ void wxFrame::OnActivate(wxActivateEvent& event)
 	    {
 	    	m_frameMenuBar->MacInstallMenuBar() ;
 	    }
+	    else if (wxTheApp->GetTopWindow() && wxTheApp->GetTopWindow()->IsKindOf(CLASSINFO(wxFrame)))
+        {
+            // Trying toplevel frame menbar
+            if( ((wxFrame*)wxTheApp->GetTopWindow())->GetMenuBar() )
+	            ((wxFrame*)wxTheApp->GetTopWindow())->GetMenuBar()->MacInstallMenuBar();
+ 	    }
 	}
 }
 
+void wxFrame::DetachMenuBar()
+{
+    if ( m_frameMenuBar )
+    {
+        m_frameMenuBar->UnsetInvokingWindow();
+    }
+
+    wxFrameBase::DetachMenuBar();
+}
+
+void wxFrame::AttachMenuBar( wxMenuBar *menuBar )
+{
+    wxFrameBase::AttachMenuBar(menuBar);
+
+    if (m_frameMenuBar)
+    {
+        m_frameMenuBar->SetInvokingWindow( this );
+    }
+}
+
 void wxFrame::DoGetClientSize(int *x, int *y) const
 {
 	wxWindow::DoGetClientSize( x , y ) ;
diff --git a/src/mac/gsocket.c b/src/mac/gsocket.c
index b96cd92358..50086739cf 100644
--- a/src/mac/gsocket.c
+++ b/src/mac/gsocket.c
@@ -87,6 +87,7 @@ extern pascal void OTDebugStr(const char* str);
 #endif
 InetSvcRef gInetSvcRef = 0 ;
 int gOTInited = 0 ;
+OTNotifyUPP gOTNotifierUPP = NULL ;
 
 OSStatus DoNegotiateIPReuseAddrOption(EndpointRef ep, Boolean enableReuseIPMode);
 
@@ -185,7 +186,7 @@ static void SetDefaultEndpointModes(EndpointRef ep , void *data )
 	junk = OTSetBlocking(ep);
 	OTAssert("SetDefaultEndpointModes: Could not set blocking", junk == noErr);
 */
-	junk = OTInstallNotifier(ep, OTInetEventHandler, data);
+	junk = OTInstallNotifier(ep, gOTNotifierUPP, data);
 	OTAssert("SetDefaultEndpointModes: Could not install notifier", junk == noErr);
 /*
 	junk = OTUseSyncIdleEvents(ep, true);
@@ -229,6 +230,7 @@ int GSocket_Verify_Inited()
 	OTAssert("Could not open Inet Services", err == noErr);
 	return FALSE ;
     }
+    gOTNotifierUPP = NewOTNotifyUPP( OTInetEventHandler ) ;
     return TRUE ;
 }
 
@@ -243,6 +245,8 @@ void GSocket_Cleanup()
     #else
       CloseOpenTransport() ;
     #endif
+        if ( gOTNotifierUPP )
+            DisposeOTNotifyUPP( gOTNotifierUPP ) ;
     }
 }
 
diff --git a/src/mac/listbox.cpp b/src/mac/listbox.cpp
index 8c2e856246..343420363c 100644
--- a/src/mac/listbox.cpp
+++ b/src/mac/listbox.cpp
@@ -105,16 +105,34 @@ static pascal void wxMacListDefinition( short message, Boolean isSelected, Rect
             ClipRect( drawRect );
             EraseRect( drawRect );
 
+			wxFontRefData * font = (wxFontRefData*) list->GetFont().GetRefData() ;
+
+			if ( font )
+			{
+				::TextFont( font->m_macFontNum ) ;
+				::TextSize( short(font->m_macFontSize) ) ;
+				::TextFace( font->m_macFontStyle ) ;
+			}
+			else
+			{
+		        ::TextFont( kFontIDMonaco ) ;
+		        ::TextSize( 9  );
+		        ::TextFace( 0 ) ;
+			}
+
 #if TARGET_CARBON
 	        bool useDrawThemeText = ( DrawThemeTextBox != (void*) kUnresolvedCFragSymbolAddress ) ;
 
            	if ( useDrawThemeText )
            	{
 	            Rect frame = { drawRect->top, drawRect->left + 4,
-	                           drawRect->top + kwxMacListItemHeight, drawRect->right} ;
-                CFStringRef mString = CFStringCreateWithBytes( NULL , (UInt8*) text.c_str(), text.Length(), CFStringGetSystemEncoding(), false ) ;
+	                           drawRect->top + kwxMacListItemHeight, drawRect->right + 10000 } ;
+                CFStringRef sString = CFStringCreateWithBytes( NULL , (UInt8*) text.c_str(), text.Length(), CFStringGetSystemEncoding(), false ) ;
+                CFMutableStringRef mString = CFStringCreateMutableCopy( NULL , 0 , sString ) ;
+        	    CFRelease( sString ) ;
+  				::TruncateThemeText( mString , kThemeCurrentPortFont, kThemeStateActive, drawRect->right - drawRect->left , truncEnd , NULL ) ;
         		::DrawThemeTextBox( mString,
-        							kThemeViewsFont,
+        							kThemeCurrentPortFont,
         							kThemeStateActive,
         							false,
         							&frame,
@@ -126,9 +144,6 @@ static pascal void wxMacListDefinition( short message, Boolean isSelected, Rect
 #endif
    		    {
 		        MoveTo(drawRect->left + 4 , drawRect->top + 10 );
-		        ::TextFont( kFontIDMonaco ) ;
-		        ::TextSize( 9  );
-		        ::TextFace( 0 ) ;
         		DrawText(text, 0 , text.Length());
 		    }
 
@@ -206,6 +221,19 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id,
     }
         listDef.u.userProc = macListDefUPP ;
 
+    Str255 fontName ;
+    SInt16 fontSize ;
+    Style fontStyle ;
+	SInt16 fontNum ;
+#if TARGET_CARBON
+	GetThemeFont(kThemeViewsFont , GetApplicationScript() , fontName , &fontSize , &fontStyle ) ;
+#else
+	GetFontName( kFontIDMonaco , fontName ) ;
+	fontSize = 9 ;
+	fontStyle = normal ;
+#endif 
+    CopyPascalStringToC( fontName , (char*) fontName ) ;
+    SetFont( wxFont (fontSize, wxSWISS, wxNORMAL, wxNORMAL , false , fontName ) ) ;
 #if TARGET_CARBON
     Size asize;
 
@@ -255,17 +283,17 @@ bool wxListBox::Create(wxWindow *parent, wxWindowID id,
     }
     else
     {
-        options = lOnlyOne ;
+        options = (OptionBits) lOnlyOne ;
     }
     SetListSelectionFlags((ListHandle)m_macList, options);
 
-    MacPostControlCreate() ;
-
     for ( int i = 0 ; i < n ; i++ )
     {
         Append( choices[i] ) ;
     }
 
+    MacPostControlCreate() ;
+
     LSetDrawingMode( true , (ListHandle)m_macList ) ;
 
     return TRUE;
@@ -616,7 +644,49 @@ void wxListBox::SetString(int N, const wxString& s)
 
 wxSize wxListBox::DoGetBestSize() const
 {
-    return wxSize(100, 100);
+    int lbWidth = 100;  // some defaults
+    int lbHeight = 110;
+    int wLine;
+
+	{
+		wxMacPortStateHelper st( UMAGetWindowPort( (WindowRef) MacGetRootWindow() ) ) ; 
+ 		Rect drawRect ;
+
+		wxFontRefData * font = (wxFontRefData*) m_font.GetRefData() ;
+
+		if ( font )
+		{
+			::TextFont( font->m_macFontNum ) ;
+			::TextSize( short(font->m_macFontSize) ) ;
+			::TextFace( font->m_macFontStyle ) ;
+		}
+		else
+		{
+	        ::TextFont( kFontIDMonaco ) ;
+	        ::TextSize( 9  );
+	        ::TextFace( 0 ) ;
+		}
+
+	    // Find the widest line
+	    for(int i = 0; i < GetCount(); i++) {
+	        wxString str(GetString(i));
+	        wLine = ::TextWidth( str.c_str() , 0 , str.Length() ) ;
+	        lbWidth = wxMax(lbWidth, wLine);
+	    }
+
+	    // Add room for the scrollbar
+	    lbWidth += wxSystemSettings::GetMetric(wxSYS_VSCROLL_X);
+
+	    // And just a bit more
+	    int cy = 12 ;
+	    int cx = ::TextWidth( "X" , 0 , 1 ) ;
+	    lbWidth += cx ;
+	    
+	    // don't make the listbox too tall (limit height to around 10 items) but don't
+	    // make it too small neither
+	    lbHeight = (cy+4) * wxMin(wxMax(GetCount(), 3), 10);
+	}
+    return wxSize(lbWidth, lbHeight);
 }
 
 int wxListBox::GetCount() const
@@ -661,6 +731,7 @@ wxOwnerDrawn *wxListBox::CreateItem(size_t n)
 // list box control implementation
 // ============================================================================
 
+/*
 void MacDrawStringCell(Rect *cellRect, Cell lCell, ListHandle theList, long refCon)
 {
     wxListBox*          list;
@@ -675,7 +746,7 @@ void MacDrawStringCell(Rect *cellRect, Cell lCell, ListHandle theList, long refC
     DrawText(text, 0 , text.Length());
 
 }
-
+*/
 void wxListBox::MacDelete( int N )
 {
     LDelRow( 1 , N , (ListHandle)m_macList) ;
diff --git a/src/mac/menu.cpp b/src/mac/menu.cpp
index caadf18ce3..e81e6de61a 100644
--- a/src/mac/menu.cpp
+++ b/src/mac/menu.cpp
@@ -28,6 +28,7 @@
 #include "wx/window.h"
 #include "wx/log.h"
 #include "wx/utils.h"
+#include "wx/frame.h"
 
 #include "wx/mac/uma.h"
 
@@ -209,10 +210,11 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
 			if ( pos == (size_t)-1 )
 			{
 				UMAAppendMenuItem(MAC_WXHMENU(m_hMenu), label,key,modifiers);
+				SetMenuItemCommandID( MAC_WXHMENU(m_hMenu) , CountMenuItems(MAC_WXHMENU(m_hMenu))  , pItem->GetId() ) ;
 				if ( pItem->GetBitmap().Ok() )
 				{
 					ControlButtonContentInfo info ;
-					wxMacCreateBitmapButton( &info , pItem->GetBitmap() , true ) ;
+					wxMacCreateBitmapButton( &info , pItem->GetBitmap() , kControlContentCIconHandle ) ;
 					if ( info.contentType != kControlNoContent )
 					{
 						if ( info.contentType == kControlContentCIconHandle )
@@ -225,10 +227,11 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
 			else
 			{
 				UMAInsertMenuItem(MAC_WXHMENU(m_hMenu), label , pos,key,modifiers);
+				SetMenuItemCommandID( MAC_WXHMENU(m_hMenu) , pos , pItem->GetId() ) ;
 				if ( pItem->GetBitmap().Ok() )
 				{
 					ControlButtonContentInfo info ;
-					wxMacCreateBitmapButton( &info , pItem->GetBitmap() , true ) ;
+					wxMacCreateBitmapButton( &info , pItem->GetBitmap() , kControlContentCIconHandle ) ;
 					if ( info.contentType != kControlNoContent )
 					{
 						if ( info.contentType == kControlContentCIconHandle )
@@ -429,114 +432,6 @@ void wxMenu::MacEnableMenu( bool bDoEnable )
 	::DrawMenuBar() ;
 }
 
-bool wxMenu::MacMenuSelect( wxEvtHandler* handler, long when , int macMenuId, int macMenuItemNum )
-{
-    int pos;
-    wxNode *node;
-
-    if ( m_macMenuId == macMenuId )
-    {
-        node = GetMenuItems().Nth(macMenuItemNum-1);
-        if (node) 
-        {
-            wxMenuItem *pItem = (wxMenuItem*)node->Data();
-            
-            if (pItem->IsCheckable())
-                pItem->Check(! pItem->IsChecked());
-            
-            wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, pItem->GetId());
-            event.m_timeStamp = when;
-            event.SetEventObject(handler);
-            event.SetInt( pItem->GetId() );
-            {
-                bool processed = false ;
-                
-#if WXWIN_COMPATIBILITY
-                // Try a callback
-                if (m_callback)
-                {
-                    (void) (*(m_callback)) (*this, event);
-                    processed = TRUE;
-                }
-#endif			
-                // Try the menu's event handler
-                if ( !processed && handler)
-                {
-                    processed = handler->ProcessEvent(event);
-                }
-                
-                // Try the window the menu was popped up from (and up
-                // through the hierarchy)
-                if ( !processed && GetInvokingWindow())
-                    processed = GetInvokingWindow()->GetEventHandler()->ProcessEvent(event);
-            }
-            return true ;
-        }
-    }
-    else if ( macMenuId == kHMHelpMenuID )
-    {
-        int menuItem = firstUserHelpMenuItem-1 ;
-        for (pos = 0, node = GetMenuItems().First(); node; node = node->Next(), pos++) 
-        {	
-            wxMenuItem * pItem = (wxMenuItem *)  node->Data() ;
-            
-            wxMenu *pSubMenu = pItem->GetSubMenu() ;
-            if ( pSubMenu != NULL )
-            {
-            }
-            else
-            {
-                if ( pItem->GetId() != wxApp::s_macAboutMenuItemId )
-                    ++menuItem ;
-                
-                if ( menuItem == macMenuItemNum )
-                {
-                    wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, pItem->GetId());
-                    event.m_timeStamp = when;
-                    event.SetEventObject(handler);
-                    event.SetInt( pItem->GetId() );
-                    {
-                        bool processed = false ;
-#if WXWIN_COMPATIBILITY
-                        // Try a callback
-                        if (m_callback)
-                        {
-                            (void) (*(m_callback)) (*this, event);
-                            processed = TRUE;
-                        }
-#endif					
-                        // Try the menu's event handler
-                        if ( !processed && handler)
-                        {
-                            processed = handler->ProcessEvent(event);
-                        }
-                        
-                        // Try the window the menu was popped up from (and up
-                        // through the hierarchy)
-                        if ( !processed && GetInvokingWindow())
-                            processed = GetInvokingWindow()->GetEventHandler()->ProcessEvent(event);
-                    }
-                    return true ;
-                }
-            }
-        }
-    }
-    
-    for (pos = 0, node = GetMenuItems().First(); node; node = node->Next(), pos++) 
-    {	
-        wxMenuItem * pItem = (wxMenuItem *)  node->Data() ;
-  	
-        wxMenu *pSubMenu = pItem->GetSubMenu() ;
-        if ( pSubMenu != NULL )
-        {
-            if ( pSubMenu->MacMenuSelect( handler , when , macMenuId , macMenuItemNum ) )
-                return true ;
-        }
-    }
-    
-    return false ;
-}
-
 // Menu Bar
 
 /* 
@@ -664,89 +559,93 @@ void wxMenuBar::MacInstallMenuBar()
  
    	for (size_t i = 0; i < m_menus.GetCount(); i++)
   	{
-            Str255 	label;
-            wxNode *node;
-            wxMenuItem *item;
-            int pos ;
-			wxMenu* menu = m_menus[i] , *subMenu = NULL ;
-		
-			if( m_titles[i] == "?" || m_titles[i] == "&?"  || m_titles[i] == wxApp::s_macHelpMenuTitleName )
+        Str255 	label;
+        wxNode *node;
+        wxMenuItem *item;
+        int pos ;
+    	wxMenu* menu = m_menus[i] , *subMenu = NULL ;
+
+    	if( m_titles[i] == "?" || m_titles[i] == "&?"  || m_titles[i] == wxApp::s_macHelpMenuTitleName )
+    	{
+			MenuHandle mh = NULL ;
+			if ( UMAGetHelpMenu( &mh , &firstUserHelpMenuItem) != noErr )
 			{
-				MenuHandle mh = NULL ;
-			  if ( UMAGetHelpMenu( &mh , &firstUserHelpMenuItem) != noErr )
-			  {
 			    continue ;
-			  }
+			}
 
 		    for ( int i = CountMenuItems( mh ) ; i >= firstUserHelpMenuItem ; --i )
 		    {
-		      DeleteMenuItem( mh , i ) ;
+		        DeleteMenuItem( mh , i ) ;
 		    }
-					
-			  	for (pos = 0 , node = menu->GetMenuItems().First(); node; node = node->Next(), pos++) 
-		  		{
-		 			item = (wxMenuItem *)node->Data();
-		 			subMenu = item->GetSubMenu() ;
-					if (subMenu)	 		
+				
+		  	for (pos = 0 , node = menu->GetMenuItems().First(); node; node = node->Next(), pos++) 
+	  		{
+	 			item = (wxMenuItem *)node->Data();
+	 			subMenu = item->GetSubMenu() ;
+				if (subMenu)	 		
+				{
+					// we don't support hierarchical menus in the help menu yet
+				}
+				else		
+				{
+					if ( item->IsSeparator() )
 					{
-						// we don't support hierarchical menus in the help menu yet
+						if ( mh )
+							MacAppendMenu(mh, "\p-" );
 					}
-					else		
+					else
 					{
-						if ( item->IsSeparator() )
+						Str255 label ;
+						UInt8 modifiers ;
+						SInt16 key ;
+						wxMenuItem::MacBuildMenuString( label, &key , &modifiers  , item->GetText(), item->GetId() != wxApp::s_macAboutMenuItemId); // no shortcut in about menu
+						if ( label[0] == 0 )
 						{
-							if ( mh )
-								MacAppendMenu(mh, "\p-" );
+							// we cannot add empty menus on mac
+							label[0] = 1 ;
+							label[1] = ' ' ;
 						}
+						if ( item->GetId() == wxApp::s_macAboutMenuItemId )
+						{ 
+								::SetMenuItemText( GetMenuHandle( kwxMacAppleMenuId ) , 1 , label );
+								UMAEnableMenuItem( GetMenuHandle( kwxMacAppleMenuId ) , 1 );
+								SetMenuItemCommandID( GetMenuHandle( kwxMacAppleMenuId ) , 1 , item->GetId() ) ;
+ 						}
 						else
 						{
-							Str255 label ;
-							UInt8 modifiers ;
-							SInt16 key ;
-							wxMenuItem::MacBuildMenuString( label, &key , &modifiers  , item->GetText(), item->GetId() != wxApp::s_macAboutMenuItemId); // no shortcut in about menu
-							if ( label[0] == 0 )
-							{
-								// we cannot add empty menus on mac
-								label[0] = 1 ;
-								label[1] = ' ' ;
-							}
-							if ( item->GetId() == wxApp::s_macAboutMenuItemId )
-							{ 
-									::SetMenuItemText( GetMenuHandle( kwxMacAppleMenuId ) , 1 , label );
-									UMAEnableMenuItem( GetMenuHandle( kwxMacAppleMenuId ) , 1 );
-	 						}
-							else
+							if ( mh )
 							{
-								if ( mh )
-									UMAAppendMenuItem(mh, label , key , modifiers );
+								UMAAppendMenuItem(mh, label , key , modifiers );
+								SetMenuItemCommandID( mh , CountMenuItems(mh) , item->GetId() ) ;
 							}
 						}
 					}
 				}
 			}
-			else
-			{
-				wxMenuItem::MacBuildMenuString( label, NULL , NULL , m_titles[i] , false );
-				UMASetMenuTitle( MAC_WXHMENU(menu->GetHMenu()) , label ) ;
-					wxArrayPtrVoid submenus ;
-					
-		  		for (pos = 0, node = menu->GetMenuItems().First(); node; node = node->Next(), pos++) 
-	  			{
-		 			item = (wxMenuItem *)node->Data();
-		 			subMenu = item->GetSubMenu() ;
-					if (subMenu)	 		
-					{
-  					  submenus.Add(subMenu) ;
-					}
-				}
-				::InsertMenu(MAC_WXHMENU(m_menus[i]->GetHMenu()), 0);
-				for ( size_t i = 0 ; i < submenus.GetCount() ; ++i )
+		}
+		else
+		{
+			wxMenuItem::MacBuildMenuString( label, NULL , NULL , m_titles[i] , false );
+			UMASetMenuTitle( MAC_WXHMENU(menu->GetHMenu()) , label ) ;
+				wxArrayPtrVoid submenus ;
+				
+	  		for (pos = 0, node = menu->GetMenuItems().First(); node; node = node->Next(), pos++) 
+  			{
+	 			item = (wxMenuItem *)node->Data();
+	 			subMenu = item->GetSubMenu() ;
+				if (subMenu)	 		
 				{
-				  wxMenu* submenu = (wxMenu*) submenus[i] ;
-        	wxNode *subnode;
-        	wxMenuItem *subitem;
-        	int subpos ;
-          for ( subpos = 0 , subnode = submenu->GetMenuItems().First(); subnode; subnode = subnode->Next(), subpos++) 
+				  submenus.Add(subMenu) ;
+				}
+			}
+			::InsertMenu(MAC_WXHMENU(m_menus[i]->GetHMenu()), 0);
+			for ( size_t i = 0 ; i < submenus.GetCount() ; ++i )
+			{
+			    wxMenu* submenu = (wxMenu*) submenus[i] ;
+    	        wxNode *subnode;
+    	        wxMenuItem *subitem;
+    	        int subpos ;
+                for ( subpos = 0 , subnode = submenu->GetMenuItems().First(); subnode; subnode = subnode->Next(), subpos++) 
 		  		{
   		 			subitem = (wxMenuItem *)subnode->Data();
   		 			wxMenu* itsSubMenu = subitem->GetSubMenu() ;
@@ -755,11 +654,11 @@ void wxMenuBar::MacInstallMenuBar()
   						submenus.Add(itsSubMenu) ;
   					}  				
   				}
-					::InsertMenu( MAC_WXHMENU(submenu->GetHMenu()) , -1 ) ;
-  			}
-			}
+				::InsertMenu( MAC_WXHMENU(submenu->GetHMenu()) , -1 ) ;
+		    }
 		}
-		::DrawMenuBar() ;
+	}
+	::DrawMenuBar() ;
 	s_macInstalledMenuBar = this;
 }
 
@@ -900,44 +799,6 @@ bool wxMenuBar::Insert(size_t pos, wxMenu *menu, const wxString& title)
     return TRUE;
 }
 
-void wxMenuBar::MacMenuSelect(wxEvtHandler* handler, long when , int macMenuId, int macMenuItemNum)
-{
-    // first scan fast for direct commands, i.e. menus which have these commands directly in their own list
-    
-    if ( macMenuId == kwxMacAppleMenuId && macMenuItemNum == 1 )
-    {
-        wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, wxApp::s_macAboutMenuItemId );
-        event.m_timeStamp = when;
-        event.SetEventObject(handler);
-        event.SetInt( wxApp::s_macAboutMenuItemId );
-        handler->ProcessEvent(event);
-    }
-    else
-    {		
-        for (size_t i = 0; i < m_menus.GetCount() ; i++)
-        {
-            if ( m_menus[i]->MacGetMenuId() == macMenuId || ( macMenuId == kHMHelpMenuID && ( m_titles[i] == "?" || m_titles[i] == "&?"  || m_titles[i] == wxApp::s_macHelpMenuTitleName ) ) )
-            {
-                if ( m_menus[i]->MacMenuSelect( handler , when , macMenuId , macMenuItemNum ) )
-                    return ;
-                else
-                {
-                    //TODO flag this as an error since it must contain the item
-                    return ;
-                }
-            }
-        }
-	
-	  for (size_t i = 0; i < m_menus.GetCount(); i++)
-	  {
-	  	if ( m_menus[i]->MacMenuSelect( handler , when , macMenuId , macMenuItemNum ) )
-	  	{
-	  		break ;
-	  	}
-	  }
-	}
-}
-
 wxMenu *wxMenuBar::Remove(size_t pos)
 {
     wxMenu *menu = wxMenuBarBase::Remove(pos);
@@ -1004,6 +865,56 @@ bool wxMenuBar::Append(wxMenu *menu, const wxString& title)
     return TRUE;
 }
 
+static void wxMenubarUnsetInvokingWindow( wxMenu *menu )
+{
+    menu->SetInvokingWindow( (wxWindow*) NULL );
+
+    wxMenuItemList::Node *node = menu->GetMenuItems().GetFirst();
+    while (node)
+    {
+        wxMenuItem *menuitem = node->GetData();
+        if (menuitem->IsSubMenu())
+            wxMenubarUnsetInvokingWindow( menuitem->GetSubMenu() );
+        node = node->GetNext();
+    }
+}
+
+static void wxMenubarSetInvokingWindow( wxMenu *menu, wxWindow *win )
+{
+    menu->SetInvokingWindow( win );
+
+    wxMenuItemList::Node *node = menu->GetMenuItems().GetFirst();
+    while (node)
+    {
+        wxMenuItem *menuitem = node->GetData();
+        if (menuitem->IsSubMenu())
+            wxMenubarSetInvokingWindow( menuitem->GetSubMenu() , win );
+        node = node->GetNext();
+    }
+}
+
+void wxMenuBar::UnsetInvokingWindow()
+{
+    wxMenuList::Node *node = m_menus.GetFirst();
+    while (node)
+    {
+        wxMenu *menu = node->GetData();
+        wxMenubarUnsetInvokingWindow( menu );
+        node = node->GetNext();
+    }
+}
+
+void wxMenuBar::SetInvokingWindow(wxFrame *frame)
+{
+    wxMenuList::Node *node = m_menus.GetFirst();
+    while (node)
+    {
+        wxMenu *menu = node->GetData();
+        wxMenubarSetInvokingWindow( menu, frame );
+        node = node->GetNext();
+    }
+}
+
 void wxMenuBar::Detach()
 {
     wxMenuBarBase::Detach() ;
@@ -1012,7 +923,6 @@ void wxMenuBar::Detach()
 void wxMenuBar::Attach(wxFrame *frame)
 {
     wxMenuBarBase::Attach( frame ) ;
-
 #if wxUSE_ACCEL
     RebuildAccelTable();
 #endif // wxUSE_ACCEL
diff --git a/src/mac/menuitem.cpp b/src/mac/menuitem.cpp
index 544bfd6004..6c41427f76 100644
--- a/src/mac/menuitem.cpp
+++ b/src/mac/menuitem.cpp
@@ -46,7 +46,7 @@ int wxMenuItem::MacBuildMenuString(StringPtr outMacItemText, SInt16 *outMacShort
 {
 	char *p = (char *) &outMacItemText[1] ;
 	short macModifiers = 0 ;
-	char macShortCut = 0 ;
+	SInt16 macShortCut = 0 ;
 	const char *inItemName ;
 	wxString inItemTextMac ;
 	
@@ -72,31 +72,6 @@ int wxMenuItem::MacBuildMenuString(StringPtr outMacItemText, SInt16 *outMacShort
 	{
 		switch ( *inItemName )
 		{
-			// special characters for macintosh menus -> use some replacement
-			case ';' :
-				*p++ = ',' ;
-				break ;
-			case '^' :
-				*p++ = ' ' ;
-				break ;
-			case '!' :
-				*p++ = ' ' ;
-				break ;
-			case '<' :
-				*p++ = '[' ;
-				break ;
-			case '>' :
-				*p++ = ']' ;
-				break ;
-			case '/' :
-				*p++ = '|' ;
-				break ;
-			case '(' :
-				*p++ = '[' ;
-				break ;
-			case ')' :	
-				*p++ = ']' ;
-				break ;
 			// shortcuts
 			case '&' :
 				{
@@ -115,43 +90,71 @@ int wxMenuItem::MacBuildMenuString(StringPtr outMacItemText, SInt16 *outMacShort
 			case '\t' :
 				{
 					++inItemName ;
-					while( *inItemName )
+					bool skip = false ;
+					bool explicitCommandKey = false ;
+					while( *inItemName && !skip )
 					{
-						if (strncmp("Ctrl", inItemName, 4) == 0) 
+						if (wxStrnicmp("Ctrl", inItemName, 4) == 0) 
 						{
 							inItemName = inItemName + 5;
-							macShortCut = *inItemName;
+							explicitCommandKey = true ;
 						}
-						else if (strncmp("Cntrl", inItemName, 5) == 0) 
+						else if (wxStrnicmp("Cntrl", inItemName, 5) == 0) 
 						{
 							inItemName = inItemName + 6;
-							macShortCut = *inItemName;
+							explicitCommandKey = true ;
 						}
-						else if (strncmp("Alt", inItemName, 3) == 0) 
+						else if (wxStrnicmp("Alt", inItemName, 3) == 0) 
 						{
 							inItemName = inItemName + 4;
 							macModifiers |= kMenuOptionModifier ;
-							macShortCut = *inItemName ;
 						}
-						else if (strncmp("Shift", inItemName, 5) == 0) 
+						else if (wxStrnicmp("Shift", inItemName, 5) == 0) 
 						{
 							inItemName = inItemName + 6;
 							macModifiers |= kMenuShiftModifier ;
-							macShortCut = *inItemName ;
 						}
-						else if (strncmp("F", inItemName, 1) == 0) 
+						else
 						{
-							inItemName += strlen( inItemName ) ;
-							// no function keys at the moment
-							// macModifiers |= kMenuShiftModifier ;
-							// macShortCut = *inItemName ;
+						    skip = true ;
 						}
-						else
+					}
+					if ( *inItemName )
+				    {
+				        if ( strlen(inItemName) == 1 )
+				        {
+						    macShortCut = *inItemName;
+						}
+						else if ( !wxStricmp( inItemName , "Delete" ) || !wxStricmp( inItemName , "Del" ) )
+						{
+						    macShortCut = WXK_DELETE ;
+						}
+						else if ( !wxStricmp( inItemName , "Back" ) || !wxStricmp( inItemName , "Backspace" ) )
+						{
+						    macShortCut = WXK_BACK ;
+						}
+						else if ( !wxStricmp( inItemName , "Return" ) )
 						{
-							break ;
+						    macShortCut = WXK_RETURN ;
+						}
+						else if ( !wxStricmp( inItemName , "Enter" ) )
+						{
+						    macShortCut = kEnterCharCode ;
+						}
+						else if ( *inItemName == 'F' )
+						{
+						    int fkey = atol(inItemName+1) ;
+						    if (fkey >= 1 && fkey < 15 )
+						    {
+                                macShortCut = WXK_F1 + fkey - 1 ;
+						    }
+                            if ( !explicitCommandKey )
+                                macModifiers |= kMenuNoCommandModifier ;
 						}
 					}
-
+						
+					inItemName += strlen( inItemName ) ;
+					
 					if ( *inItemName == 0 )
 						--inItemName ;
 						
diff --git a/src/mac/notebmac.cpp b/src/mac/notebmac.cpp
index 7c72298654..2f8f53b786 100644
--- a/src/mac/notebmac.cpp
+++ b/src/mac/notebmac.cpp
@@ -132,8 +132,17 @@ bool wxNotebook::Create(wxWindow *parent,
 	
 	MacPreControlCreate( parent , id ,  "" , pos , size ,style, wxDefaultValidator , name , &bounds , title ) ;
 
+	int tabstyle = kControlTabSmallNorthProc ;
+	if ( HasFlag(wxNB_LEFT) )
+		tabstyle = kControlTabSmallWestProc ;
+	else if ( HasFlag( wxNB_RIGHT ) )
+		tabstyle = kControlTabSmallEastProc ;
+	else if ( HasFlag( wxNB_BOTTOM ) )
+		tabstyle = kControlTabSmallSouthProc ;
+
+
 	m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , title , false , 0 , 0 , 1, 
-	  	kControlTabSmallProc , (long) this ) ;
+	  	tabstyle , (long) this ) ;
 	
 	MacPostControlCreate() ;
 	return TRUE ;
@@ -207,6 +216,7 @@ int wxNotebook::SetSelection(int nPage)
     ChangePage(m_nSelection, nPage);
 	SetControl32BitValue( (ControlHandle) m_macControl , m_nSelection + 1 ) ;
 
+    Refresh();
     return m_nSelection;
 }
 
@@ -233,7 +243,7 @@ int wxNotebook::GetPageImage(int nPage) const
 {
     wxCHECK_MSG( IS_VALID_PAGE(nPage), -1, _T("invalid notebook page") );
 
-    return 0 ;
+    return m_images[nPage];
 }
 
 bool wxNotebook::SetPageImage(int nPage, int nImage)
@@ -243,7 +253,17 @@ bool wxNotebook::SetPageImage(int nPage, int nImage)
     wxCHECK_MSG( m_imageList && nImage < m_imageList->GetImageCount(), FALSE,
                  _T("invalid image index in SetPageImage()") );
 
-    return FALSE;
+    if ( nImage != m_images[nPage] )
+    {
+        // if the item didn't have an icon before or, on the contrary, did have
+        // it but has lost it now, its size will change - but if the icon just
+        // changes, it won't
+        m_images[nPage] = nImage;
+
+		MacSetupTabs() ;
+    }
+
+    return TRUE;
 }
 
 // ----------------------------------------------------------------------------
@@ -295,6 +315,8 @@ bool wxNotebook::InsertPage(int nPage,
     // save the pointer to the page
     m_pages.Insert(pPage, nPage);
 
+    m_images.Insert(imageId, nPage);
+
     MacSetupTabs();
 
     if ( bSelect ) {
@@ -332,7 +354,8 @@ void wxNotebook::MacSetupTabs()
 
     wxNotebookPage *page;
     ControlTabInfoRec info;
-    Boolean enabled = true;
+
+    OSStatus err = noErr ;
     for(int ii = 0; ii < GetPageCount(); ii++)
     {
         page = m_pages[ii];
@@ -346,8 +369,35 @@ void wxNotebook::MacSetupTabs()
 #endif
         SetControlData( (ControlHandle) m_macControl, ii+1, kControlTabInfoTag,
                         sizeof( ControlTabInfoRec) , (char*) &info ) ;
-        SetControlData( (ControlHandle) m_macControl, ii+1, kControlTabEnabledFlagTag,
-                        sizeof( Boolean ), (Ptr)&enabled );
+        SetTabEnabled( (ControlHandle) m_macControl , ii+1 , true ) ;
+
+#if TARGET_CARBON
+        if ( GetImageList() && GetPageImage(ii) >= 0 && UMAGetSystemVersion() >= 0x1020 )
+        {
+        	// tab controls only support very specific types of images, therefore we are doing an odyssee
+        	// accross the icon worlds (even Apple DTS did not find a shorter path)
+        	// in order not to pollute the icon registry we put every icon into (OSType) 1 and immediately
+        	// afterwards Unregister it (IconRef is ref counted, so it will stay on the tab even if we 
+        	// unregister it) in case this will ever lead to having the same icon everywhere add some kind
+        	// of static counter 
+        	ControlButtonContentInfo info ;
+        	wxMacCreateBitmapButton( &info , *GetImageList()->GetBitmap( GetPageImage(ii ) ) , kControlContentPictHandle) ;
+        	IconFamilyHandle iconFamily = (IconFamilyHandle) NewHandle(0) ;
+        	OSErr err = SetIconFamilyData( iconFamily, 'PICT' , (Handle) info.u.picture ) ;
+            wxASSERT_MSG( err == noErr , "Error when adding bitmap" ) ;
+         	IconRef iconRef ;
+         	err = RegisterIconRefFromIconFamily( 'WXNG' , (OSType) 1 , iconFamily, &iconRef ) ;
+            wxASSERT_MSG( err == noErr , "Error when adding bitmap" ) ;
+         	info.contentType = kControlContentIconRef ;
+         	info.u.iconRef = iconRef ;
+        	SetControlData( (ControlHandle) m_macControl, ii+1,kControlTabImageContentTag,
+                        sizeof( info ), (Ptr)&info );
+            wxASSERT_MSG( err == noErr , "Error when setting icon on tab" ) ;
+           	UnregisterIconRef( 'WXNG' , (OSType) 1 ) ;
+            ReleaseIconRef( iconRef ) ;
+            DisposeHandle( (Handle) iconFamily ) ;
+        }
+#endif
     }
     Rect bounds;
     GetControlBounds((ControlHandle)m_macControl, &bounds);
diff --git a/src/mac/printdlg.cpp b/src/mac/printdlg.cpp
index ec13b97455..1b18c1d49b 100644
--- a/src/mac/printdlg.cpp
+++ b/src/mac/printdlg.cpp
@@ -104,11 +104,8 @@ int wxPrintDialog::ShowModal()
 	::UMAPrClose(NULL) ;
 #else
   #if PM_USE_SESSION_APIS
-    PMPrintSession macPrintSession = kPMNoReference;
     Boolean        accepted;
     
-    err = ::UMAPrOpen(&macPrintSession) ;
-    if ( err == noErr )
     {
         m_printDialogData.ConvertToNative() ;
         
@@ -123,13 +120,13 @@ int wxPrintDialog::ShowModal()
             if ((err == noErr) &&
                 (m_printDialogData.GetPrintData().m_macPageFormat != kPMNoPageFormat))
             {
-                err = PMSessionDefaultPageFormat((PMPrintSession)macPrintSession,
+                err = PMSessionDefaultPageFormat((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
                                                  (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat);
             }
         }
         else
         {
-            err = PMSessionValidatePageFormat((PMPrintSession)macPrintSession,
+            err = PMSessionValidatePageFormat((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
                                               (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat,
                                               kPMDontWantBoolean);
         }
@@ -145,13 +142,13 @@ int wxPrintDialog::ShowModal()
             if ((err == noErr) &&
                 (m_printDialogData.GetPrintData().m_macPrintSettings != kPMNoPrintSettings))
             {
-                err = PMSessionDefaultPrintSettings((PMPrintSession)macPrintSession,
+                err = PMSessionDefaultPrintSettings((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
                                                     (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings);
             }
         }
         else
         {
-            err = PMSessionValidatePrintSettings((PMPrintSession)macPrintSession,
+            err = PMSessionValidatePrintSettings((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
                                                  (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings,
                                                  kPMDontWantBoolean);
         }
@@ -165,7 +162,7 @@ int wxPrintDialog::ShowModal()
         //  Display the Print dialog.
         if (err == noErr)
         {
-            err = PMSessionPrintDialog((PMPrintSession)macPrintSession,
+            err = PMSessionPrintDialog((PMPrintSession)m_printDialogData.GetPrintData().m_macPrintSession,
                                        (PMPrintSettings)m_printDialogData.GetPrintData().m_macPrintSettings,
                                        (PMPageFormat)m_printDialogData.GetPrintData().m_macPageFormat,
                                        &accepted);
@@ -186,7 +183,6 @@ int wxPrintDialog::ShowModal()
         wxMessageDialog dialog( NULL , message  , "", wxICON_HAND | wxOK) ;
         dialog.ShowModal();
     }
-    ::UMAPrClose(&macPrintSession) ;
   #else
     #pragma warning "TODO: Printing for carbon without session apis"
   #endif
@@ -256,11 +252,8 @@ int wxPageSetupDialog::ShowModal()
 	::UMAPrClose(NULL) ;
 #else
   #if PM_USE_SESSION_APIS
-    PMPrintSession macPrintSession = kPMNoReference;
     Boolean        accepted;
     
-    err = ::UMAPrOpen(&macPrintSession) ;
-    if ( err == noErr )
     {
         m_pageSetupData.ConvertToNative() ;
         
@@ -275,13 +268,13 @@ int wxPageSetupDialog::ShowModal()
             if ((err == noErr) &&
                 (m_pageSetupData.GetPrintData().m_macPageFormat != kPMNoPageFormat))
             {
-                err = PMSessionDefaultPageFormat((PMPrintSession)macPrintSession,
+                err = PMSessionDefaultPageFormat((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession,
                                                  (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat);
             }
         }
         else
         {
-            err = PMSessionValidatePageFormat((PMPrintSession)macPrintSession,
+            err = PMSessionValidatePageFormat((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession,
                                               (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat,
                                               kPMDontWantBoolean);
         }
@@ -289,7 +282,7 @@ int wxPageSetupDialog::ShowModal()
         //  Display the Page Setup dialog.
         if (err == noErr)
         {
-            err = PMSessionPageSetupDialog((PMPrintSession)macPrintSession,
+            err = PMSessionPageSetupDialog((PMPrintSession)m_pageSetupData.GetPrintData().m_macPrintSession,
                                            (PMPageFormat)m_pageSetupData.GetPrintData().m_macPageFormat,
                                            &accepted);
             if ((err == noErr) && !accepted)
@@ -312,7 +305,6 @@ int wxPageSetupDialog::ShowModal()
         wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ;
         dialog.ShowModal();
     }
-    ::UMAPrClose(&macPrintSession) ;
   #else
     #pragma warning "TODO: Printing for carbon without session apis"
   #endif
diff --git a/src/mac/printmac.cpp b/src/mac/printmac.cpp
index 33506c4548..1240fd6622 100644
--- a/src/mac/printmac.cpp
+++ b/src/mac/printmac.cpp
@@ -276,7 +276,7 @@ void wxMacPrintPreview::DetermineScaling(void)
 	
 	m_previewPrintout->SetPPIScreen( 72 , 72 ) ;
 	m_previewPrintout->SetPPIPrinter( 72 , 72 ) ;
-	m_previewPrintout->SetPageSizeMM( 8 * 25.6 , 11 * 25.6 ) ;
+	m_previewPrintout->SetPageSizeMM( (int) (8.0 * 25.6), (int) (11.0 * 25.6) );
 	m_previewPrintout->SetPageSizePixels( 8 * 72 , 11 * 72 ) ;
     m_pageWidth = 8 * 72 ;
     m_pageHeight = 11 * 72 ;
@@ -295,7 +295,10 @@ void wxMacPrintPreview::DetermineScaling(void)
 		m_pageWidth = x ;
 		m_pageHeight =  y ;
 		m_isOk = true ;
-
+	}
+	else
+	{
+	  m_isOk = false ;
 	}
     // At 100%, the page should look about page-size on the screen.
     // m_previewScale = (float)((float)screenWidth/(float)printerWidth);
diff --git a/src/mac/textctrl.cpp b/src/mac/textctrl.cpp
index 4f8d67ae6d..cee43bf68b 100644
--- a/src/mac/textctrl.cpp
+++ b/src/mac/textctrl.cpp
@@ -23,7 +23,14 @@
 #else
   #include <stat.h>
 #endif
-#include <fstream.h>
+
+#if wxUSE_STD_IOSTREAM
+    #if wxUSE_IOSTREAMH
+        #include <fstream.h>
+    #else
+        #include <fstream>
+    #endif
+#endif
 
 #include "wx/app.h"
 #include "wx/dc.h"
@@ -332,12 +339,18 @@ static pascal void TPPaneIdleProc(ControlHandle theControl) {
                     RectRgn((theRgn = NewRgn()), &varsp->fRTextArea);
                     TXNAdjustCursor(varsp->fTXNRec, theRgn);
                     DisposeRgn(theRgn);
-                 } else SetThemeCursor(kThemeArrowCursor);
+                 } 
+                 else 
+                 {
+                 // SetThemeCursor(kThemeArrowCursor);
+                 }
             } else {
                 /* if it's in our bounds, set the cursor */
                 GetControlBounds(theControl, &bounds);
                 if (PtInRect(mousep, &bounds))
-                    SetThemeCursor(kThemeArrowCursor);
+                {
+                //    SetThemeCursor(kThemeArrowCursor);
+                }
             }
             
             HSetState((Handle) tpvars, state);
@@ -529,29 +542,29 @@ OSStatus mUPOpenControl(ControlHandle theControl, long wxStyle )
     TXNFrameOptions frameOptions = 
         kTXNDontDrawCaretWhenInactiveMask ;
     if ( ! ( wxStyle & wxTE_NOHIDESEL ) )
-	    frameOptions |= kTXNDontDrawSelectionWhenInactiveMask ;
-	
-	if ( wxStyle & wxTE_MULTILINE )
-	{
-	    if ( ! ( wxStyle & wxTE_DONTWRAP ) )
-	        frameOptions |= kTXNAlwaysWrapAtViewEdgeMask ;
-	    else
-	    {
-	        frameOptions |= kTXNAlwaysWrapAtViewEdgeMask ;
-	        frameOptions |= kTXNWantHScrollBarMask ;
-	    }
-	        
-	    if ( !(wxStyle & wxTE_NO_VSCROLL ) )
-	        frameOptions |= kTXNWantVScrollBarMask ;
-	}
-	else
-	    frameOptions |= kTXNSingleLineOnlyMask ;
-	    
-	if ( wxStyle & wxTE_READONLY )
-	    frameOptions |= kTXNReadOnlyMask ;
+        frameOptions |= kTXNDontDrawSelectionWhenInactiveMask ;
+    
+    if ( wxStyle & wxTE_MULTILINE )
+    {
+        if ( ! ( wxStyle & wxTE_DONTWRAP ) )
+            frameOptions |= kTXNAlwaysWrapAtViewEdgeMask ;
+        else
+        {
+            frameOptions |= kTXNAlwaysWrapAtViewEdgeMask ;
+            frameOptions |= kTXNWantHScrollBarMask ;
+        }
+            
+        if ( !(wxStyle & wxTE_NO_VSCROLL ) )
+            frameOptions |= kTXNWantVScrollBarMask ;
+    }
+    else
+        frameOptions |= kTXNSingleLineOnlyMask ;
+        
+    if ( wxStyle & wxTE_READONLY )
+        frameOptions |= kTXNReadOnlyMask ;
   
     TXNNewObject(NULL, varsp->fOwner, &varsp->fRTextArea,
-	    frameOptions ,
+        frameOptions ,
         kTXNTextEditStyleFrameType,
         kTXNTextensionFile,
         kTXNSystemDefaultEncoding, 
@@ -715,7 +728,7 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
             /* create the control */
         m_macControl = NewControl(MAC_WXHWND(parent->MacGetRootWindow()), &bounds, "\p", true, featurSet, 0, featurSet, kControlUserPaneProc, 0);
             /* set up the mUP specific features and data */
-    	mUPOpenControl((ControlHandle) m_macControl, m_windowStyle );
+        mUPOpenControl((ControlHandle) m_macControl, m_windowStyle );
         if ( parent )
         {
             parent->MacGetTopLevelWindow()->MacInstallEventHandler() ;
@@ -745,7 +758,7 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
         m_macTXN =  (**tpvars).fTXNRec ;
         m_macTXNvars = tpvars ;
         m_macUsesTXN = true ;
-      	TXNSetSelection( (TXNObject) m_macTXN, 0, 0);
+        TXNSetSelection( (TXNObject) m_macTXN, 0, 0);
         TXNShowSelection( (TXNObject) m_macTXN, kTXNShowStart);
     }
   
@@ -785,11 +798,13 @@ wxString wxTextCtrl::GetValue() const
     wxString value;
 
     if( wxApp::s_macDefaultEncodingIsPC )
+    {
         value = wxMacMakePCStringFromMac( wxBuffer ) ;
+        value.Replace( "\r", "\n" );
+    }
     else
         value = wxBuffer;
         
-    value.Replace( "\r", "\n" );
     
     return value;
 }
@@ -812,11 +827,13 @@ void wxTextCtrl::SetValue(const wxString& st)
     wxString value;
     
     if( wxApp::s_macDefaultEncodingIsPC )
+    {
         value = wxMacMakeMacStringFromPC( st ) ;
+        value.Replace( "\n", "\r" );
+    }
     else
         value = st;
         
-    value.Replace( "\n", "\r" );
         
     if ( !m_macUsesTXN )
     {
@@ -825,12 +842,14 @@ void wxTextCtrl::SetValue(const wxString& st)
     else
     {
         bool formerEditable = IsEditable() ;
-        SetEditable(true) ;
-      	TXNSetData( ((TXNObject) m_macTXN), kTXNTextData,  (void*)value.c_str(), value.Length(),
-      	  kTXNStartOffset, kTXNEndOffset);
-      	TXNSetSelection( (TXNObject) m_macTXN, 0, 0);
+        if ( !formerEditable )
+            SetEditable(true) ;
+        TXNSetData( ((TXNObject) m_macTXN), kTXNTextData,  (void*)value.c_str(), value.Length(),
+          kTXNStartOffset, kTXNEndOffset);
+        TXNSetSelection( (TXNObject) m_macTXN, 0, 0);
         TXNShowSelection( (TXNObject) m_macTXN, kTXNShowStart);
-        SetEditable(formerEditable) ;
+        if ( !formerEditable )
+            SetEditable(formerEditable) ;
     }
     MacRedrawControl() ;
 }
@@ -845,45 +864,46 @@ bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
     if ( m_macUsesTXN )
     {
         bool formerEditable = IsEditable() ;
-        SetEditable(true) ;
-		TXNTypeAttributes typeAttr[4] ;
-		Str255 fontName = "\pMonaco" ;
-		SInt16 fontSize = 12 ;
-		Style fontStyle = normal ;
-		RGBColor color ;
-		int attrCounter = 0 ;
-		if ( style.HasFont() )
-		{
-		    const wxFont &font = style.GetFont() ;
-		    CopyCStringToPascal( font.GetFaceName().c_str() , fontName ) ;
-		    fontSize = font.GetPointSize() ;
-		    if ( font.GetUnderlined() )
-		        fontStyle |= underline ;
-		    if ( font.GetWeight() == wxBOLD )
-		        fontStyle |= bold ;
-		    if ( font.GetStyle() == wxITALIC )
-		        fontStyle |= italic ;
-		        
-		    typeAttr[attrCounter].tag = kTXNQDFontNameAttribute ;
-		    typeAttr[attrCounter].size = kTXNQDFontNameAttributeSize ;
-		    typeAttr[attrCounter].data.dataPtr = (void*) fontName ;
-		    typeAttr[attrCounter+1].tag = kTXNQDFontSizeAttribute ;
-		    typeAttr[attrCounter+1].size = kTXNFontSizeAttributeSize ;
-		    typeAttr[attrCounter+1].data.dataValue =  (fontSize << 16) ;
-		    typeAttr[attrCounter+2].tag = kTXNQDFontStyleAttribute ;
-		    typeAttr[attrCounter+2].size = kTXNQDFontStyleAttributeSize ;
-		    typeAttr[attrCounter+2].data.dataValue = fontStyle ;
-		    attrCounter += 3 ;
-		    
-		}
-		if ( style.HasTextColour() )
-		{
-		    typeAttr[attrCounter].tag = kTXNQDFontColorAttribute ;
-		    typeAttr[attrCounter].size = kTXNQDFontColorAttributeSize ;
-		    typeAttr[attrCounter].data.dataPtr = (void*) &color ;
-		    color = MAC_WXCOLORREF(style.GetTextColour().GetPixel()) ;
-		    attrCounter += 1 ;
-		}
+        if ( !formerEditable )
+            SetEditable(true) ;
+        TXNTypeAttributes typeAttr[4] ;
+        Str255 fontName = "\pMonaco" ;
+        SInt16 fontSize = 12 ;
+        Style fontStyle = normal ;
+        RGBColor color ;
+        int attrCounter = 0 ;
+        if ( style.HasFont() )
+        {
+            const wxFont &font = style.GetFont() ;
+            CopyCStringToPascal( font.GetFaceName().c_str() , fontName ) ;
+            fontSize = font.GetPointSize() ;
+            if ( font.GetUnderlined() )
+                fontStyle |= underline ;
+            if ( font.GetWeight() == wxBOLD )
+                fontStyle |= bold ;
+            if ( font.GetStyle() == wxITALIC )
+                fontStyle |= italic ;
+                
+            typeAttr[attrCounter].tag = kTXNQDFontNameAttribute ;
+            typeAttr[attrCounter].size = kTXNQDFontNameAttributeSize ;
+            typeAttr[attrCounter].data.dataPtr = (void*) fontName ;
+            typeAttr[attrCounter+1].tag = kTXNQDFontSizeAttribute ;
+            typeAttr[attrCounter+1].size = kTXNFontSizeAttributeSize ;
+            typeAttr[attrCounter+1].data.dataValue =  (fontSize << 16) ;
+            typeAttr[attrCounter+2].tag = kTXNQDFontStyleAttribute ;
+            typeAttr[attrCounter+2].size = kTXNQDFontStyleAttributeSize ;
+            typeAttr[attrCounter+2].data.dataValue = fontStyle ;
+            attrCounter += 3 ;
+            
+        }
+        if ( style.HasTextColour() )
+        {
+            typeAttr[attrCounter].tag = kTXNQDFontColorAttribute ;
+            typeAttr[attrCounter].size = kTXNQDFontColorAttributeSize ;
+            typeAttr[attrCounter].data.dataPtr = (void*) &color ;
+            color = MAC_WXCOLORREF(style.GetTextColour().GetPixel()) ;
+            attrCounter += 1 ;
+        }
            
         if ( attrCounter > 0 )
         {
@@ -891,7 +911,8 @@ bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
                 start,end);
             wxASSERT_MSG( status == noErr , "Couldn't set text attributes" ) ;
         }
-        SetEditable(formerEditable) ;
+        if ( !formerEditable )
+            SetEditable(formerEditable) ;
     }
     return TRUE ;
 }
@@ -1034,9 +1055,9 @@ void wxTextCtrl::SetEditable(bool editable)
         if ( !m_macUsesTXN )
         {
             if ( editable )
-            	UMAActivateControl( (ControlHandle) m_macControl ) ;
+                UMAActivateControl( (ControlHandle) m_macControl ) ;
             else
-            	UMADeactivateControl((ControlHandle)  m_macControl ) ;
+                UMADeactivateControl((ControlHandle)  m_macControl ) ;
         }
         else
         {
@@ -1106,12 +1127,14 @@ void wxTextCtrl::Replace(long from, long to, const wxString& value)
     else
     {
         bool formerEditable = IsEditable() ;
-        SetEditable(true) ;
-	    TXNSetSelection( ((TXNObject) m_macTXN) , from , to ) ;
-	    TXNClear( ((TXNObject) m_macTXN) ) ;
-  	    TXNSetData( ((TXNObject) m_macTXN), kTXNTextData,  (void*)value.c_str(), value.Length(),
-  	    kTXNUseCurrentSelection, kTXNUseCurrentSelection);
-  	    SetEditable( formerEditable ) ;
+        if ( !formerEditable )
+            SetEditable(true) ;
+        TXNSetSelection( ((TXNObject) m_macTXN) , from , to ) ;
+        TXNClear( ((TXNObject) m_macTXN) ) ;
+        TXNSetData( ((TXNObject) m_macTXN), kTXNTextData,  (void*)value.c_str(), value.Length(),
+        kTXNUseCurrentSelection, kTXNUseCurrentSelection);
+        if ( !formerEditable )
+            SetEditable( formerEditable ) ;
     }
     Refresh() ;
 }
@@ -1130,10 +1153,12 @@ void wxTextCtrl::Remove(long from, long to)
   else
   {
     bool formerEditable = IsEditable() ;
-    SetEditable(true) ;
+    if ( !formerEditable )
+        SetEditable(true) ;
     TXNSetSelection( ((TXNObject) m_macTXN) , from , to ) ; 
     TXNClear( ((TXNObject) m_macTXN) ) ; 
-    SetEditable( formerEditable ) ;
+    if ( !formerEditable )
+        SetEditable( formerEditable ) ;
   }
     Refresh() ;
 }
@@ -1178,9 +1203,13 @@ void wxTextCtrl::WriteText(const wxString& text)
 {
     wxString value ;
     if( wxApp::s_macDefaultEncodingIsPC )
+    {
         value = wxMacMakeMacStringFromPC( text ) ;
+        value.Replace( "\n", "\r" );
+    }
     else
         value = text ;
+        
     if ( !m_macUsesTXN )
     {
         TEInsert( value , value.Length() , ((TEHandle) m_macTE) ) ;
@@ -1188,14 +1217,16 @@ void wxTextCtrl::WriteText(const wxString& text)
     else
     {
         bool formerEditable = IsEditable() ;
-        SetEditable(true) ;
-	    long start , end , dummy ;
-	    GetSelection( &start , &dummy ) ;
+        if ( !formerEditable )
+            SetEditable(true) ;
+        long start , end , dummy ;
+        GetSelection( &start , &dummy ) ;
         TXNSetData( ((TXNObject) m_macTXN), kTXNTextData, (void*) (const char*)value, value.Length(),
           kTXNUseCurrentSelection, kTXNUseCurrentSelection);
-    	GetSelection( &dummy , &end ) ;
+        GetSelection( &dummy , &end ) ;
         SetStyle( start , end , GetDefaultStyle() ) ;
-    	SetEditable( formerEditable ) ;
+        if ( !formerEditable )
+            SetEditable( formerEditable ) ;
     }
     MacRedrawControl() ;
 }
@@ -1511,7 +1542,9 @@ void wxTextCtrl::OnChar(wxKeyEvent& event)
          key == WXK_DELETE || 
          key == WXK_BACK)
     {
+        long t1 = 0xDEADBEEF ;
         wxCommandEvent event1(wxEVT_COMMAND_TEXT_UPDATED, m_windowId);
+        long t2 = 0xDEADBEEF ;
         event1.SetString( GetValue() ) ;
         event1.SetEventObject( this );
         wxPostEvent(GetEventHandler(),event1);
@@ -1539,7 +1572,7 @@ bool  wxTextCtrl::Show(bool show)
     
     bool retval = wxControl::Show( show ) ;
     
-    if ( former != m_macControlIsShown )
+    if ( former != m_macControlIsShown && show )
     {
         if ( m_macControlIsShown )
             TXNSetFrameBounds( (TXNObject) m_macTXN, (**(STPTextPaneVars **)m_macTXNvars).fRTextArea.top, (**(STPTextPaneVars **)m_macTXNvars).fRTextArea.left, 
@@ -1606,7 +1639,13 @@ void wxTextCtrl::OnUpdateRedo(wxUpdateUIEvent& event)
     event.Enable( CanRedo() );
 }
 
-
+bool wxTextCtrl::MacSetupCursor( const wxPoint& pt )
+{
+    if ( m_macUsesTXN )
+        return true ;
+    else
+        return wxWindow::MacSetupCursor( pt ) ;
+}
 
 #endif
     // wxUSE_TEXTCTRL
diff --git a/src/mac/toolbar.cpp b/src/mac/toolbar.cpp
index 0ed2cc6b55..c1d36f4122 100644
--- a/src/mac/toolbar.cpp
+++ b/src/mac/toolbar.cpp
@@ -159,6 +159,13 @@ bool wxToolBar::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, cons
 
 wxToolBar::~wxToolBar()
 {
+    size_t index = 0 ;
+    for ( index = 0 ; index < m_macToolHandles.Count() ; ++index )
+    {
+        // Delete the control as we get ghosts otherwise
+        ::DisposeControl( (ControlHandle) m_macToolHandles[index] );
+    }
+    
     // we must refresh the frame size when the toolbar is deleted but the frame
     // is not - otherwise toolbar leaves a hole in the place it used to occupy
 }
diff --git a/src/mac/tooltip.cpp b/src/mac/tooltip.cpp
index 5f71f00425..317fe723fd 100644
--- a/src/mac/tooltip.cpp
+++ b/src/mac/tooltip.cpp
@@ -287,16 +287,38 @@ void wxMacToolTip::Draw()
   		    m_rect.right += kTipBorder ;
 #endif
   		m_rect.bottom = m_rect.top + height + 2 * kTipBorder;
+  		Rect r ;
+  		GetPortBounds( GetWindowPort( m_window ) , &r ) ;
+  		if ( m_rect.top < 0 )
+  		{
+  		    m_rect.bottom += -m_rect.top ;
+  		    m_rect.top = 0 ;
+  		}
+  		if ( m_rect.left < 0 )
+  		{
+  		    m_rect.right += -m_rect.left ;
+  		    m_rect.left = 0 ;
+  		}
+  		if ( m_rect.right > r.right )
+  		{
+  		    m_rect.left -= (m_rect.right - r.right ) ;
+  		    m_rect.right = r.right ;
+  		}
+  		if ( m_rect.bottom > r.bottom )
+  		{
+  		    m_rect.top -= (m_rect.bottom - r.bottom) ;
+  		    m_rect.bottom = r.bottom ;
+  		}
   		ClipRect( &m_rect ) ;
   		BackColor( whiteColor ) ;
   		ForeColor(blackColor ) ;
-                GWorldPtr port ;	        
-                NewGWorld( &port , wxDisplayDepth() , &m_rect , NULL , NULL , 0 ) ;
-                CGrafPtr    origPort ;
-                GDHandle    origDevice ;
-    
-                GetGWorld( &origPort , &origDevice ) ;
-                SetGWorld( port , NULL ) ;
+        GWorldPtr port ;	        
+        NewGWorld( &port , wxDisplayDepth() , &m_rect , NULL , NULL , 0 ) ;
+        CGrafPtr    origPort ;
+        GDHandle    origDevice ;
+
+        GetGWorld( &origPort , &origDevice ) ;
+        SetGWorld( port , NULL ) ;
 	    
   		m_backpict = OpenPicture(&m_rect);
 
diff --git a/src/mac/toplevel.cpp b/src/mac/toplevel.cpp
index efcf1a737d..e074c7fb31 100644
--- a/src/mac/toplevel.cpp
+++ b/src/mac/toplevel.cpp
@@ -235,7 +235,7 @@ pascal OSStatus wxMacWindowEventHandler( EventHandlerCallRef handler , EventRef
             {
     			wxTheApp->m_macCurrentEvent = &rec ;
                 wxWindow* focus = wxWindow::FindFocus() ;
-                if ( (focus != NULL) && wxTheApp->MacSendKeyDownEvent( focus , rec.message , rec.modifiers , rec.when , rec.where.h , rec.where.v ) )
+                if ( (focus != NULL) && !UMAMenuEvent(&rec) && wxTheApp->MacSendKeyDownEvent( focus , rec.message , rec.modifiers , rec.when , rec.where.h , rec.where.v ) )
                 {
                     // was handled internally
                     result = noErr ;
@@ -322,7 +322,11 @@ void  wxTopLevelWindowMac::MacCreateRealWindow( const wxString& title,
         }
         else
         {
+#if TARGET_CARBON
             wclass = kPlainWindowClass ;
+#else
+            wclass = kFloatingWindowClass ;
+#endif
         }
     }
     else if ( HasFlag( wxCAPTION ) )
@@ -345,7 +349,11 @@ void  wxTopLevelWindowMac::MacCreateRealWindow( const wxString& title,
         }
         else
         {
+#if TARGET_CARBON
             wclass = kPlainWindowClass ;
+#else
+            wclass = kModalWindowClass ;
+#endif
         }
     }
     
@@ -604,8 +612,8 @@ bool wxTopLevelWindowMac::Show(bool show)
         return FALSE;
 
     if (show)
-    {
-      ::ShowWindow( (WindowRef)m_macWindow ) ;
+    { 
+      ::TransitionWindow((WindowRef)m_macWindow,kWindowZoomTransitionEffect,kWindowShowTransitionAction,nil);
       ::SelectWindow( (WindowRef)m_macWindow ) ;
       // no need to generate events here, they will get them triggered by macos
       // actually they should be , but apparently they are not
@@ -616,7 +624,7 @@ bool wxTopLevelWindowMac::Show(bool show)
     }
     else
     {
-      ::HideWindow( (WindowRef)m_macWindow ) ;
+      ::TransitionWindow((WindowRef)m_macWindow,kWindowZoomTransitionEffect,kWindowHideTransitionAction,nil);
     }
 
     if ( !show )
@@ -675,9 +683,13 @@ void wxTopLevelWindowMac::DoMoveWindow(int x, int y, int width, int height)
         
         if ( doResize )
             ::SizeWindow((WindowRef)m_macWindow, m_width, m_height  , true); 
+            
+        // the OS takes care of invalidating and erasing the new area so we only have to
+        // take care of refreshing for full repaints
+
+        if ( doResize && !HasFlag(wxNO_FULL_REPAINT_ON_RESIZE) )
+            Refresh() ;
         
-        // the OS takes care of invalidating and erasing the new area
-        // we have erased the old one   
         
         if ( IsKindOf( CLASSINFO( wxFrame ) ) )
         {
diff --git a/src/mac/uma.cpp b/src/mac/uma.cpp
index 7f12124698..1c6afd4eb6 100644
--- a/src/mac/uma.cpp
+++ b/src/mac/uma.cpp
@@ -23,12 +23,14 @@
 
 static bool	sUMAHasAppearance = false ;
 static long sUMAAppearanceVersion = 0 ;
+static long sUMASystemVersion = 0 ;
 static bool sUMAHasAquaLayout = false ;
 static bool sUMASystemInitialized = false ;
 
 extern int gAGABackgroundColor ;
 bool UMAHasAppearance() { return sUMAHasAppearance ; }
 long UMAGetAppearanceVersion() { return sUMAAppearanceVersion ; }
+long UMAGetSystemVersion() { return sUMASystemVersion ; }
 
 static bool	sUMAHasWindowManager = false ;
 static long sUMAWindowManagerAttr = 0 ;
@@ -71,6 +73,9 @@ void UMAInitToolbox( UInt16 inMoreMastersCalls )
 	InitCursor();
 #endif
 
+    if ( Gestalt(gestaltSystemVersion, &sUMASystemVersion) != noErr)
+    	sUMASystemVersion = 0x0000 ;
+    	
 	long theAppearance ;
 	if ( Gestalt( gestaltAppearanceAttr, &theAppearance ) == noErr )
 	{
@@ -232,33 +237,157 @@ void UMAInsertSubMenuItem( MenuRef menu , StringPtr l , MenuItemIndex item , SIn
 	SetMenuItemHierarchicalID( menu , item , id ) ;
 }
 
-
-void UMAAppendMenuItem( MenuRef menu , StringPtr l , SInt16 key, UInt8 modifiers ) 
+void UMASetMenuItemShortcut( MenuRef menu , MenuItemIndex item , SInt16 key , UInt8 modifiers )
 {
-	Str255 label ;
-	memcpy( label , l , l[0]+1 ) ;
 	if ( key )
 	{
-			int pos = label[0] ;
-			label[++pos] = '/';
-			label[++pos] = toupper( key );
-			label[0] = pos ;
+	    SInt16 glyph = 0 ;
+	    SInt16 macKey = key ;
+	    if ( key >= WXK_F1 && key <= WXK_F15 )
+	    {
+	        macKey = kFunctionKeyCharCode ;
+	        glyph = kMenuF1Glyph + ( key - WXK_F1 ) ;
+	        if ( key >= WXK_F13 )
+	            glyph += 13 ;
+	        switch( key )
+	        {
+	            case WXK_F1 :
+	                macKey += ( 0x7a << 8 ) ;
+	                break ;
+	            case WXK_F2 :
+	                macKey += ( 0x78 << 8 ) ;
+	                break ;
+	            case WXK_F3 :
+	                macKey += ( 0x63 << 8 ) ;
+	                break ;
+	            case WXK_F4 :
+	                macKey += ( 0x76 << 8 ) ;
+	                break ;
+	            case WXK_F5 :
+	                macKey += ( 0x60 << 8 ) ;
+	                break ;
+	            case WXK_F6 :
+	                macKey += ( 0x61 << 8 ) ;
+	                break ;
+	            case WXK_F7 :
+	                macKey += ( 0x62 << 8 ) ;
+	                break ;
+	            case WXK_F8 :
+	                macKey += ( 0x64 << 8 ) ;
+	                break ;
+	            case WXK_F9 :
+	                macKey += ( 0x65 << 8 ) ;
+	                break ;
+	            case WXK_F10 :
+	                macKey += ( 0x6D << 8 ) ;
+	                break ;
+	            case WXK_F11 :
+	                macKey += ( 0x67 << 8 ) ;
+	                break ;
+	            case WXK_F12 :
+	                macKey += ( 0x6F << 8 ) ;
+	                break ;
+	            case WXK_F13 :
+	                macKey += ( 0x69 << 8 ) ;
+	                break ;
+	            case WXK_F14 :
+	                macKey += ( 0x6B << 8 ) ;
+	                break ;
+	            case WXK_F15 :
+	                macKey += ( 0x71 << 8 ) ;
+	                break ;
+	            default :
+	                break ;
+	        } ;
+	        // unfortunately this does not yet trigger the right key ,
+	        // for some reason mac justs picks the first function key menu
+	        // defined, so we turn this off
+	        macKey = 0 ;
+	        glyph = 0 ;
+  	    }
+	    else
+    	{
+    	    switch( key )
+    	    {
+    	        case WXK_BACK :
+    	            macKey = kBackspaceCharCode ;
+    	            glyph = kMenuDeleteLeftGlyph ;
+    	            break ;
+    	        case WXK_TAB :
+    	            macKey = kTabCharCode ;
+    	            glyph = kMenuTabRightGlyph ;
+    	            break ;
+    	        case kEnterCharCode :
+    	            macKey = kEnterCharCode ;
+    	            glyph = kMenuEnterGlyph ;
+    	            break ;
+    	        case WXK_RETURN :
+    	            macKey = kReturnCharCode ;
+    	            glyph = kMenuReturnGlyph ;
+    	            break ;
+    	        case WXK_ESCAPE :
+    	            macKey = kEscapeCharCode ;
+    	            glyph = kMenuEscapeGlyph ;
+    	            break ;
+    	        case WXK_SPACE :
+    	            macKey = ' ' ;
+    	            glyph = kMenuSpaceGlyph ;
+    	            break ;
+    	        case WXK_DELETE :
+    	            macKey = kDeleteCharCode ;
+    	            glyph = kMenuDeleteRightGlyph ;
+    	            break ;
+    	        case WXK_CLEAR :
+    	            macKey = kClearCharCode ;
+    	            glyph = kMenuClearGlyph ;
+    	            break ;
+    	        case WXK_PRIOR : // PAGE UP
+    	            macKey = kPageUpCharCode ;
+    	            glyph = kMenuPageUpGlyph ;
+    	            break ;
+    	        case WXK_NEXT :
+    	            macKey = kPageDownCharCode ;
+    	            glyph = kMenuPageDownGlyph ;
+    	            break ;
+    	        case WXK_LEFT :
+    	            macKey = kLeftArrowCharCode ;
+    	            glyph = kMenuLeftArrowGlyph ;
+    	            break ;
+    	        case WXK_UP :
+    	            macKey = kUpArrowCharCode ;
+    	            glyph = kMenuUpArrowGlyph ;
+    	            break ;
+    	        case WXK_RIGHT :
+    	            macKey = kRightArrowCharCode ;
+    	            glyph = kMenuRightArrowGlyph ;
+    	            break ;
+    	        case WXK_DOWN :
+    	            macKey = kDownArrowCharCode ;
+    	            glyph = kMenuDownArrowGlyph ;
+    	            break ;
+            }
+        }
+	    
+	    SetItemCmd( menu, item , macKey );
+	    SetMenuItemModifiers(menu, item , modifiers ) ;
+
+        if ( glyph )
+            SetMenuItemKeyGlyph(menu, item , glyph ) ;
 	}
-	MacAppendMenu( menu , label ) ;
+}
+
+void UMAAppendMenuItem( MenuRef menu , StringPtr l , SInt16 key, UInt8 modifiers ) 
+{
+	MacAppendMenu(menu, "\pA");
+	SetMenuItemText(menu, (SInt16) ::CountMenuItems(menu), l);
+	UMASetMenuItemShortcut( menu ,  (SInt16) ::CountMenuItems(menu), key , modifiers ) ;
 }
 
 void UMAInsertMenuItem( MenuRef menu , StringPtr l , MenuItemIndex item , SInt16 key, UInt8 modifiers ) 
 {
-	Str255 label ;
-	memcpy( label , l , l[0]+1 ) ;
-	if ( key )
-	{
-			int pos = label[0] ;
-			label[++pos] = '/';
-			label[++pos] = toupper( key );
-			label[0] = pos ;
-	}
-	MacInsertMenuItem( menu , label , item) ;
+	MacInsertMenuItem( menu , "\p" , item) ;
+	SetMenuItemText(menu, item , l);
+	UMASetMenuItemShortcut( menu , item , key , modifiers ) ;
 }
 
 // quickdraw
diff --git a/src/mac/utils.cpp b/src/mac/utils.cpp
index 1d0252c810..2ab9256cc5 100644
--- a/src/mac/utils.cpp
+++ b/src/mac/utils.cpp
@@ -461,7 +461,11 @@ int wxDisplayDepth()
 // Get size of display
 void wxDisplaySize(int *width, int *height)
 {
-  wxClientDisplayRect( NULL , NULL , width , height ) ;
+  	BitMap screenBits;
+  	GetQDGlobalsScreenBits( &screenBits );
+
+    *width = screenBits.bounds.right - screenBits.bounds.left  ;
+    *height = screenBits.bounds.bottom - screenBits.bounds.top ;
 }
 
 void wxDisplaySizeMM(int *width, int *height)
diff --git a/src/mac/window.cpp b/src/mac/window.cpp
index bc83a282a2..26c54353c6 100644
--- a/src/mac/window.cpp
+++ b/src/mac/window.cpp
@@ -353,7 +353,17 @@ bool wxWindowMac::DoPopupMenu(wxMenu *menu, int x, int y)
 
     ::InsertMenu( (MenuHandle) menu->GetHMenu() , -1 ) ;
     long menuResult = ::PopUpMenuSelect((MenuHandle) menu->GetHMenu() ,y,x, 0) ;
-    menu->MacMenuSelect( this , TickCount() , HiWord(menuResult) , LoWord(menuResult) ) ;
+    if ( HiWord(menuResult) != 0 )
+    {
+        MenuCommand id ;
+        GetMenuItemCommandID( GetMenuHandle(HiWord(menuResult)) , LoWord(menuResult) , &id ) ;
+
+        wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED, id );
+        event.m_timeStamp =  TickCount() ;
+        event.SetEventObject(this->GetEventHandler());
+        event.SetInt( id );
+        GetEventHandler()->ProcessEvent(event);
+    }
     ::DeleteMenu( menu->MacGetMenuId() ) ;
     menu->SetInvokingWindow(NULL);
 
@@ -595,7 +605,35 @@ void wxWindowMac::DoMoveWindow(int x, int y, int width, int height)
     {
         // erase former position
 
-        Refresh() ;
+        bool partialRepaint = false ;
+
+        if ( HasFlag(wxNO_FULL_REPAINT_ON_RESIZE) )
+        {
+            wxPoint oldPos( m_x , m_y ) ; 
+            wxPoint newPos( actualX , actualY ) ;
+            MacWindowToRootWindow( &oldPos.x , &oldPos.y ) ;
+            MacWindowToRootWindow( &newPos.x , &newPos.y ) ;
+            if ( oldPos == newPos )
+            {
+                partialRepaint = true ;
+                RgnHandle oldRgn,newRgn,diffRgn ;
+                oldRgn = NewRgn() ;
+                newRgn = NewRgn() ;
+                diffRgn = NewRgn() ;
+                SetRectRgn(oldRgn , oldPos.x , oldPos.y , oldPos.x + m_width , oldPos.y + m_height ) ;
+                SetRectRgn(newRgn , newPos.x , newPos.y , newPos.x + actualWidth , newPos.y + actualHeight ) ;
+                DiffRgn( newRgn , oldRgn , diffRgn ) ;
+                InvalWindowRgn( (WindowRef) MacGetRootWindow() , diffRgn ) ;
+                DiffRgn( oldRgn , newRgn , diffRgn ) ;
+                InvalWindowRgn( (WindowRef) MacGetRootWindow() , diffRgn ) ;
+                DisposeRgn(oldRgn) ;
+                DisposeRgn(newRgn) ;
+                DisposeRgn(diffRgn) ;
+            }
+        }
+
+        if ( !partialRepaint )
+            Refresh() ;
 
         m_x = actualX ;
         m_y = actualY ;
@@ -607,7 +645,8 @@ void wxWindowMac::DoMoveWindow(int x, int y, int width, int height)
 		MacUpdateDimensions() ;
         // erase new position
 
-        Refresh() ;
+        if ( !partialRepaint )
+            Refresh() ;
         if ( doMove )
             wxWindowMac::MacSuperChangedPosition() ; // like this only children will be notified
 
diff --git a/src/make.env.in b/src/make.env.in
index 2cc978aa50..94a973aeef 100644
--- a/src/make.env.in
+++ b/src/make.env.in
@@ -12,7 +12,7 @@
 ####################### GENERAL SETTINGS ############################
 
 # see comment near LDFLAGS at the end of file
-EXTRALIBS = @LDFLAGS@ @LIBS@ @DMALLOC_LIBS@
+EXTRALIBS = @LDFLAGS@ @LDFLAGS_VERSIONING@ @LIBS@ @DMALLOC_LIBS@
 OPENGLLIBS = @OPENGL_LIBS@
 LDLIBS = ${APPEXTRALIBS} ${top_builddir}/lib/@WX_TARGET_LIBRARY@ ${EXTRALIBS}
 
@@ -21,6 +21,7 @@ TOOLKITDIR = @TOOLKIT_DIR@
 
 WXLIB = @WX_LIBRARY_NAME_STATIC@
 WXSHLIB = @WX_LIBRARY_NAME_SHARED@
+WXLIBBASE = @WX_LIBRARY_BASENAME@
 
 ########################### VERSION #################################
 
diff --git a/src/makeb32.env b/src/makeb32.env
index 0f942ef87d..857e503f62 100644
--- a/src/makeb32.env
+++ b/src/makeb32.env
@@ -15,6 +15,8 @@ BCCDIR=$(MAKEDIR)\..
 
 ARCHINCDIR=$(WXDIR)\lib\msw
 ARCHSETUPH=$(ARCHINCDIR)\wx\setup.h
+#see below for SETUPSRCDIR
+
 
 # Using a config file isn't compatible across all BC++ versions
 # LNKCFG=$(WXDIR)\src\msw\bclnk32.cfg
@@ -81,6 +83,20 @@ WXLIBNAME=wx32
 WXLIBNAME=wx32
 !endif
 
+## Use this if you want to use the UNIV controls set rather than the native ones 
+## make -f makefile.b32 WXUSINGUNIV=1
+!if "$(WXUSINGUNIV)" == "1"
+USE_UNIV="UNIV"
+CFG=$(CFG)v
+WXLIBNAME=$(WXLIBNAME)v
+ARCHINCDIR=$(ARCHINCDIR)v
+SETUPSRCDIR=$(WXDIR)\include\wx\univ
+PORT=__WXUNIVERSAL__
+!else
+USE_UNIV=""
+PORT=__WXMSW__
+SETUPSRCDIR=$(WXDIR)\include\wx\msw
+!endif
 
 #not sure what to do with unicode builds - we need to define something ?
 #!if "$(UNICODE)" == "1"
diff --git a/src/makeg95.env b/src/makeg95.env
index 39f402da26..ce231cc18c 100644
--- a/src/makeg95.env
+++ b/src/makeg95.env
@@ -18,8 +18,14 @@ MINGW32=1
 #MINGW32VERSION=2.95
 MINGW32VERSION=3.0
 
+# If we're using MSYS, or other utilities that
+# use forward slashes, we need to set this when
+# invoking the makefile from DOS, or the wrong separators
+# will be assumed.
+#OSTYPE=msys
+
 # If building DLL, the version
-WXVERSION=233
+WXVERSION=234
 
 ifndef UNICODE
   UNICODE=0
@@ -285,11 +291,14 @@ ifeq ($(wxUSE_GUI),1)
 endif
 LDFLAGS = $(WINDOWSLDFLAGS) $(COMMON_THREADFLAGS) -L$(WXDIR)/lib -L$(WXDIR)/contrib/lib $(EXTRALDFLAGS)
 
-.SUFFIXES: .rc .$(RESSUFF) .$(RSCSUFF) .cpp .cxx .c
+.SUFFIXES: .rc .$(RESSUFF) .$(RSCSUFF) .cpp .cxx .cc .c
 
 .c.o:
 	$(CC) -c $(CFLAGS) -o $@ $*.c
 
+.cc.o:
+	$(CC) -c $(CPPFLAGS) -o $@ $*.cc
+
 .cxx.o:
 	$(CC) -c $(CPPFLAGS) -o $@ $*.cxx
 
diff --git a/src/makelib.env.in b/src/makelib.env.in
index 3da9676922..daf3f6b710 100644
--- a/src/makelib.env.in
+++ b/src/makelib.env.in
@@ -41,6 +41,8 @@ TARGETLIB_LINK2 = $(TARGET_LIBNAME).so
 
 TARGETLIB_SONAME = @WX_TARGET_LIBRARY_SONAME@
 
+LDFLAGS_VERSIONING = @LDFLAGS_VERSIONING@
+
 # NB: see remark in Makefile.in as to why we don't use %.foo: %.bar rules
 .SUFFIXES: .o .c .cpp .cxx
 
@@ -68,7 +70,7 @@ libtype_a: $(top_builddir)/lib/$(TARGETLIB_STATIC)
 
 $(top_builddir)/lib/$(TARGETLIB_SHARED): $(OBJECTS)
 	@$(INSTALL) -d $(top_builddir)/lib
-	$(SHARED_LD) $@ $(TARGETLIB_SONAME) $(OBJECTS)
+	$(SHARED_LD) $@ $(TARGETLIB_SONAME) $(OBJECTS) $(LDFLAGS_VERSIONING)
 	cd $(top_builddir)/lib \
 		&& $(RM) $(TARGETLIB_LINK1) $(TARGETLIB_LINK2) \
 		&& $(LN_S) $(TARGETLIB_SHARED) $(TARGETLIB_LINK1) \
diff --git a/src/makelib.g95 b/src/makelib.g95
index 7fb95c9b3c..882d560429 100644
--- a/src/makelib.g95
+++ b/src/makelib.g95
@@ -7,8 +7,6 @@
 #
 # Include file for Cygwin/Mingw32 libraries
 
-WXDIR = $(WXWIN)
-
 # All common UNIX compiler flags and options are now in
 # this central makefile.
 include $(WXDIR)/src/makeg95.env
@@ -23,4 +21,4 @@ clean:
 	-$(RM) $(OBJECTS) core *.rsc *.res
 
 cleanall: clean
-	-$(RM) $(LIBTARGET)
\ No newline at end of file
+	-$(RM) $(LIBTARGET)
diff --git a/src/makeprog.b32 b/src/makeprog.b32
index 67c9a6854d..2afd2304d6 100644
--- a/src/makeprog.b32
+++ b/src/makeprog.b32
@@ -14,10 +14,16 @@
 WXDIR = $(WXWIN)
 !include $(WXDIR)\src\makeb32.env
 
+!if "$(wxUSE_GUI)" == "0"
+IMGLIBS=
+!else
+IMGLIBS= winpng jpeg tiff
+!endif
+
 !if "$(WXUSINGDLL)" == "1"
-LIBS=$(WXLIB) $(EXTRALIBS) cw32mti import32 ole2w32 winpng regex zlib jpeg tiff odbc32
+LIBS=$(WXLIB) $(EXTRALIBS) cw32mti import32 ole2w32 regex zlib $(IMGLIBS) odbc32
 !else
-LIBS=$(WXLIB) $(EXTRALIBS) cw32mt import32 ole2w32 winpng regex zlib jpeg tiff odbc32
+LIBS=$(WXLIB) $(EXTRALIBS) cw32mt import32 ole2w32 regex zlib $(IMGLIBS) odbc32
 !endif
 
 # Note: you may need to remove some libraries for earlier versions of BC++, as below
diff --git a/src/makeprog.vc b/src/makeprog.vc
index 1a4c5ef2bf..e2c76535c4 100644
--- a/src/makeprog.vc
+++ b/src/makeprog.vc
@@ -13,7 +13,9 @@
 # Set WXDIR for your system
 WXDIR = $(WXWIN)
 
+!ifndef WXUSINGDLL
 WXUSINGDLL=0
+!endif
 
 !include $(WXDIR)\src\makevc.env
 
@@ -69,7 +71,7 @@ $(LIBS)
 
 
 clean:
-        -$(RM) $(OBJECTS)
+        -$(RM) *.obj
         -$(RM) *.exe
         -$(RM) *.res
         -$(RM) *.map
diff --git a/src/makeva.env b/src/makeva.env
index eafd3a48a1..1fd0dc138f 100644
--- a/src/makeva.env
+++ b/src/makeva.env
@@ -116,17 +116,17 @@ D=DebugOS2
 
 WXLIB=$(WXDIR)\lib\$(WXLIBNAME).lib
 
-INC=-I$(WXINC) -I$(WXDIR)/src/jpeg -I$(WXDIR)/src/zlib -I$(WXDIR)/src/xpm -I$(WXDIR)/src/tiff -I$(WXDIR)/src/png -I$(EXTRAINC)
+INC=-I$(WXINC) -I$(WXDIR)/src/jpeg -I$(WXDIR)/src/zlib -I$(WXDIR)/src/tiff -I$(WXDIR)/src/png -I$(EXTRAINC)
 !if "$(WXMAKINGDLL)" == "1" || "$(WXUSINGDLL)" == "1"
 LINKLIBS=CPPOM30I.LIB CPPOOC3I.LIB OS2386.LIB $(UPMLIB)\UPM32.LIB $(NETLIB)\NETAPI32.LIB $(TCPIP)\TCP32DLL.LIB $(TCPIP)\SO32DLL.LIB $(TCPIP)\TCPIP32.LIB $(TCPIP)\R0LIB32.LIB
-EXTRALIBS=$(WXDIR)\lib\os2pngd.lib $(WXDIR)\lib\os2zlibd.lib $(WXDIR)\lib\os2jpegd.lib $(WXDIR)\lib\os2xpmd.lib $(WXDIR)\lib\os2tiffd.lib
+EXTRALIBS=$(WXDIR)\lib\os2pngd.lib $(WXDIR)\lib\os2zlibd.lib $(WXDIR)\lib\os2jpegd.lib $(WXDIR)\lib\os2tiffd.lib
 !if "$(WXUSINGDLL)" == "1"
 EXTRALIBS=$(EXTRALIBS) $(WXLIB)
 !endif
 LIBS=$(LINKLIBS) $(EXTRALIBS)
 !else
 LINKLIBS=CPPOM30.LIB CPPOOC3.LIB OS2386.LIB $(UPMLIB)\UPM32.LIB $(NETLIB)\NETAPI32.LIB $(TCPIP)\TCP32DLL.LIB $(TCPIP)\SO32DLL.LIB $(TCPIP)\TCPIP32.LIB $(TCPIP)\R0LIB32.LIB
-EXTRALIBS=$(WXDIR)\lib\os2png.lib $(WXDIR)\lib\os2zlib.lib $(WXDIR)\lib\os2jpeg.lib $(WXDIR)\lib\os2xpm.lib $(WXDIR)\lib\os2tiff.lib
+EXTRALIBS=$(WXDIR)\lib\os2png.lib $(WXDIR)\lib\os2zlib.lib $(WXDIR)\lib\os2jpeg.lib $(WXDIR)\lib\os2tiff.lib
 LIBS=$(WXLIB) $(LINKLIBS) $(EXTRALIBS)
 !endif
 
diff --git a/src/makevc.env b/src/makevc.env
index b085f2fa8c..387ef57a73 100644
--- a/src/makevc.env
+++ b/src/makevc.env
@@ -12,7 +12,9 @@
 RM= erase
 !endif
 
-WXVERSION=233
+WXVERSION=234
+
+# WIN95 means "all systems newer than Win95", i.e. Win9x and NT 4+
 WIN95=1
 
 !if "$(WIN95)" == "0"
@@ -22,7 +24,7 @@ WIN95=1
 APPVER=3.50
 WINVERSION=-DWINVER=0x0350 # Generic WIN32
 !else
-APPVER=3.50 # 4.0
+APPVER=4.0
 # This means 'enable Windows 95 features' (in wxWindows and in VC++ 4.0).
 WINVERSION=-DWINVER=0x0400 /D__WIN95__
 !endif
diff --git a/src/mgl/files.lst b/src/mgl/files.lst
index ff689b82fe..083c26b21f 100644
--- a/src/mgl/files.lst
+++ b/src/mgl/files.lst
@@ -227,7 +227,6 @@ ALL_SOURCES = \
 		html/m_layout.cpp \
 		html/m_links.cpp \
 		html/m_list.cpp \
-		html/m_meta.cpp \
 		html/m_pre.cpp \
 		html/m_style.cpp \
 		html/m_tables.cpp \
@@ -474,6 +473,27 @@ ALL_HEADERS = \
 		xpmdecod.h \
 		zipstrm.h \
 		zstream.h \
+		mgl/app.h \
+		mgl/bitmap.h \
+		mgl/brush.h \
+		mgl/clipbrd.h \
+		mgl/colour.h \
+		mgl/cursor.h \
+		mgl/dc.h \
+		mgl/dcclient.h \
+		mgl/dcmemory.h \
+		mgl/dcscreen.h \
+		mgl/font.h \
+		mgl/fontutil.h \
+		mgl/gdiobj.h \
+		mgl/icon.h \
+		mgl/palette.h \
+		mgl/pen.h \
+		mgl/popupwin.h \
+		mgl/private.h \
+		mgl/region.h \
+		mgl/toplevel.h \
+		mgl/window.h \
 		generic/accel.h \
 		generic/calctrl.h \
 		generic/caret.h \
@@ -494,7 +514,7 @@ ALL_HEADERS = \
 		generic/imaglist.h \
 		generic/laywin.h \
 		generic/listctrl.h \
-		generic/mdig.cpp \
+		generic/mdig.h \
 		generic/msgdlgg.h \
 		generic/notebook.h \
 		generic/paletteg.h \
@@ -538,7 +558,6 @@ ALL_HEADERS = \
 		protocol/protocol.h
 
 COMMONOBJS = \
-		parser.o \
 		appcmn.o \
 		artprov.o \
 		artstd.o \
@@ -773,7 +792,6 @@ HTMLOBJS = \
 		m_layout.o \
 		m_links.o \
 		m_list.o \
-		m_meta.o \
 		m_pre.o \
 		m_style.o \
 		m_tables.o \
diff --git a/src/mgl/makefile.wat b/src/mgl/makefile.wat
index 08f8c4e1ff..cbac28a96f 100644
--- a/src/mgl/makefile.wat
+++ b/src/mgl/makefile.wat
@@ -303,7 +303,6 @@ HTMLOBJS = helpctrl.obj &
 	m_layout.obj &
 	m_links.obj &
 	m_list.obj &
-	m_meta.obj &
 	m_pre.obj &
 	m_style.obj &
 	m_tables.obj &
@@ -1140,9 +1139,6 @@ m_links.obj:     $(HTMLDIR)\m_links.cpp
 m_list.obj:     $(HTMLDIR)\m_list.cpp
   *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
 
-m_meta.obj:     $(HTMLDIR)\m_meta.cpp
-  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
-
 m_pre.obj:     $(HTMLDIR)\m_pre.cpp
   *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
 
diff --git a/src/mgl/window.cpp b/src/mgl/window.cpp
index 1b6606e260..562756b248 100644
--- a/src/mgl/window.cpp
+++ b/src/mgl/window.cpp
@@ -129,7 +129,8 @@ static void wxCaptureScreenshot(bool activeWindowOnly)
     g_displayDC->savePNGFromDC(screenshot.mb_str(), 
                                r.x, r. y, r.x+r.width, r.y+r.height);
     
-    wxMessageBox(_("Screenshot captured: ") + wxString(screenshot));
+    wxMessageBox(wxString::Format(_T("Screenshot captured: %s"),
+                                  screenshot.c_str()));
 }
 
 // ---------------------------------------------------------------------------
diff --git a/src/microwin/files.lst b/src/microwin/files.lst
index aeb212d346..15a375c000 100644
--- a/src/microwin/files.lst
+++ b/src/microwin/files.lst
@@ -227,7 +227,6 @@ ALL_SOURCES = \
 		html/m_layout.cpp \
 		html/m_links.cpp \
 		html/m_list.cpp \
-		html/m_meta.cpp \
 		html/m_pre.cpp \
 		html/m_style.cpp \
 		html/m_tables.cpp \
@@ -589,7 +588,7 @@ ALL_HEADERS = \
 		generic/imaglist.h \
 		generic/laywin.h \
 		generic/listctrl.h \
-		generic/mdig.cpp \
+		generic/mdig.h \
 		generic/msgdlgg.h \
 		generic/notebook.h \
 		generic/paletteg.h \
@@ -868,7 +867,6 @@ HTMLOBJS = \
 		m_layout.o \
 		m_links.o \
 		m_list.o \
-		m_meta.o \
 		m_pre.o \
 		m_style.o \
 		m_tables.o \
diff --git a/src/motif/checklst.cpp b/src/motif/checklst.cpp
index 54e230848e..7546ec3927 100644
--- a/src/motif/checklst.cpp
+++ b/src/motif/checklst.cpp
@@ -57,16 +57,6 @@ static void CopyStringsAddingPrefix(const wxArrayString& orig,
         copy.Add( Prefix(FALSE) + orig[i] );
 }
 
-static wxString* CopyStringsAddingPrefix(size_t n, const wxString choices[])
-{
-    wxString* copy = new wxString[n];
-
-    for(size_t i = 0; i < n; ++i )
-        copy[i] = Prefix(FALSE) + choices[i];
-
-    return copy;
-}
-
 // def ctor: use Create() to really create the control
 wxCheckListBox::wxCheckListBox() : wxCheckListBoxBase()
 {
@@ -92,10 +82,9 @@ bool wxCheckListBox::Create(wxWindow *parent, wxWindowID id,
                             const wxValidator& validator,
                             const wxString& name)
 {
-    wxString* chs = CopyStringsAddingPrefix(n, choices);
-    bool retVal = wxListBox::Create(parent, id, pos, size, n, chs,
+    // wxListBox::Create calls set, which adds the prefixes
+    bool retVal = wxListBox::Create(parent, id, pos, size, n, choices,
                                     style, validator, name);
-    delete[] chs;
     return retVal;
 }   
 
diff --git a/src/motif/combobox.cpp b/src/motif/combobox.cpp
index d1c470999e..e8e5fd66c7 100644
--- a/src/motif/combobox.cpp
+++ b/src/motif/combobox.cpp
@@ -44,8 +44,8 @@ bool wxComboBox::Create(wxWindow *parent, wxWindowID id,
     SetValidator(validator);
     m_noStrings = n;
     m_windowStyle = style;
-    //    m_backgroundColour = parent->GetBackgroundColour();
-    m_backgroundColour = * wxWHITE;
+    m_backgroundColour = parent->GetBackgroundColour();
+    // m_backgroundColour = * wxWHITE;
     m_foregroundColour = parent->GetForegroundColour();
 
     if (parent) parent->AddChild(this);
diff --git a/src/motif/files.lst b/src/motif/files.lst
index 4e74793472..fe5504cee1 100644
--- a/src/motif/files.lst
+++ b/src/motif/files.lst
@@ -257,7 +257,6 @@ ALL_SOURCES = \
 		html/m_layout.cpp \
 		html/m_links.cpp \
 		html/m_list.cpp \
-		html/m_meta.cpp \
 		html/m_pre.cpp \
 		html/m_style.cpp \
 		html/m_tables.cpp \
@@ -583,7 +582,7 @@ ALL_HEADERS = \
 		generic/imaglist.h \
 		generic/laywin.h \
 		generic/listctrl.h \
-		generic/mdig.cpp \
+		generic/mdig.h \
 		generic/msgdlgg.h \
 		generic/notebook.h \
 		generic/paletteg.h \
@@ -627,7 +626,6 @@ ALL_HEADERS = \
 		protocol/protocol.h
 
 COMMONOBJS = \
-		parser.o \
 		appcmn.o \
 		artprov.o \
 		artstd.o \
@@ -893,7 +891,6 @@ HTMLOBJS = \
 		m_layout.o \
 		m_links.o \
 		m_list.o \
-		m_meta.o \
 		m_pre.o \
 		m_style.o \
 		m_tables.o \
diff --git a/src/motif/frame.cpp b/src/motif/frame.cpp
index 5092f9fa1a..2d07cc18c0 100644
--- a/src/motif/frame.cpp
+++ b/src/motif/frame.cpp
@@ -383,6 +383,12 @@ wxFrame::~wxFrame()
         m_frameStatusBar = NULL;
     }
 
+    if (m_frameToolBar)
+    {
+        delete m_frameToolBar;
+        m_frameToolBar = NULL;
+    }
+
     DestroyChildren();
 
     if (m_workArea)
@@ -392,6 +398,11 @@ wxFrame::~wxFrame()
         XtDestroyWidget ((Widget) m_workArea);
     }
 
+    // We need to destroy the base class icons here before we stop
+    // the event loop. This is a hack until we have a real top level
+    // window (which would be responsible for killing the event loop).
+    m_icons.m_icons.Empty();
+
     if (m_frameWidget)
     {
         wxDeleteWindowFromTable((Widget) m_frameWidget);
diff --git a/src/motif/listbox.cpp b/src/motif/listbox.cpp
index 2107f2e894..d8b12adf8a 100644
--- a/src/motif/listbox.cpp
+++ b/src/motif/listbox.cpp
@@ -617,7 +617,7 @@ void wxListBoxCallback (Widget WXUNUSED(w), XtPointer clientData,
     event.SetString( item->GetString( n ) );
 
     int x = -1;
-    if( cbs->event->type == ButtonRelease )
+    if( NULL != cbs->event && cbs->event->type == ButtonRelease )
     {
         XButtonEvent* evt = (XButtonEvent*)cbs->event;
 
diff --git a/src/motif/menu.cpp b/src/motif/menu.cpp
index dbb71ac00c..b7e9194893 100644
--- a/src/motif/menu.cpp
+++ b/src/motif/menu.cpp
@@ -139,10 +139,10 @@ wxMenuItem *wxMenu::DoRemove(wxMenuItem *item)
 
 bool wxMenu::DoInsert(size_t pos, wxMenuItem *item)
 {
-    if ( !wxMenuBase::DoInsert(pos, item) )
-        return FALSE;
+    if ( wxMenuBase::DoInsert(pos, item) )
+        return TRUE;
 
-    wxFAIL_MSG(wxT("not implemented"));
+    wxFAIL_MSG(wxT("DoInsert not implemented; or error in wxMenuBase::DoInsert"));
 
     return FALSE;
 }
diff --git a/src/motif/radiobox.cpp b/src/motif/radiobox.cpp
index 8598837d8d..9076292ca0 100644
--- a/src/motif/radiobox.cpp
+++ b/src/motif/radiobox.cpp
@@ -119,6 +119,8 @@ bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title,
 // TODO: check this still looks OK for Motif 1.2.
 #if (XmVersion > 1200)
                                              XmNframeChildType, XmFRAME_TITLE_CHILD,
+#else
+                                             XmNchildType, XmFRAME_TITLE_CHILD,
 #endif
                                              XmNchildVerticalAlignment, XmALIGNMENT_CENTER,
                                              NULL);
diff --git a/src/motif/statbox.cpp b/src/motif/statbox.cpp
index 4258f52c1c..46f69f1189 100644
--- a/src/motif/statbox.cpp
+++ b/src/motif/statbox.cpp
@@ -48,7 +48,6 @@ END_EVENT_TABLE()
 
 wxStaticBox::wxStaticBox()
 {
-    m_formWidget = (WXWidget) 0;
     m_labelWidget = (WXWidget) 0;
 }
 
@@ -59,8 +58,6 @@ bool wxStaticBox::Create(wxWindow *parent, wxWindowID id,
            long style,
            const wxString& name)
 {
-    m_formWidget = (WXWidget) 0;
-    m_labelWidget = (WXWidget) 0;
     m_backgroundColour = parent->GetBackgroundColour();
     m_foregroundColour = parent->GetForegroundColour();
     m_font = parent->GetFont();
@@ -76,59 +73,35 @@ bool wxStaticBox::Create(wxWindow *parent, wxWindowID id,
 
     m_windowStyle = style;
 
-    bool hasLabel = (!label.IsNull() && !label.IsEmpty()) ;
-
     Widget parentWidget = (Widget) parent->GetClientWidget();
 
-    Widget formWidget = XtVaCreateManagedWidget ((char*) (const char*) name,
-            xmFormWidgetClass, parentWidget,
-            XmNmarginHeight, 0,
-            XmNmarginWidth, 0,
+    m_mainWidget = XtVaCreateManagedWidget ("staticboxframe",
+            xmFrameWidgetClass, parentWidget,
+            XmNshadowType, XmSHADOW_IN,
+            //XmNmarginHeight, 0,
+            //XmNmarginWidth, 0,
             NULL);
 
-
+    bool hasLabel = (!label.IsNull() && !label.IsEmpty()) ;
     if (hasLabel)
     {
         XmFontList fontList = (XmFontList) m_font.GetFontList(1.0, XtDisplay(parentWidget));
-
         wxString label1(wxStripMenuCodes(label));
-        XmString text = XmStringCreateSimple ((char*) (const char*) label1);
-        m_labelWidget = (WXWidget) XtVaCreateManagedWidget ((char*) (const char*) label1,
-                xmLabelWidgetClass, formWidget,
+        wxXmString text(label1);
+        m_labelWidget = (WXWidget) XtVaCreateManagedWidget (label1.c_str(),
+                xmLabelWidgetClass, (Widget)m_mainWidget,
                 XmNfontList, fontList,
-                XmNlabelString, text,
+                XmNlabelString, text(),
+#if (XmVersion > 1200)
+                XmNframeChildType, XmFRAME_TITLE_CHILD,
+#else
+                XmNchildType, XmFRAME_TITLE_CHILD,          
+#endif
                 NULL);
-        XmStringFree (text);
     }
-
-    Widget frameWidget = XtVaCreateManagedWidget ("frame",
-            xmFrameWidgetClass, formWidget,
-            XmNshadowType, XmSHADOW_IN,
-            //XmNmarginHeight, 0,
-            //XmNmarginWidth, 0,
-            NULL);
-
-    if (hasLabel)
-        XtVaSetValues ((Widget) m_labelWidget,
-                XmNtopAttachment, XmATTACH_FORM,
-                XmNleftAttachment, XmATTACH_FORM,
-                XmNrightAttachment, XmATTACH_FORM,
-                XmNalignment, XmALIGNMENT_BEGINNING,
-                NULL);
-
-    XtVaSetValues (frameWidget,
-            XmNtopAttachment, hasLabel ? XmATTACH_WIDGET : XmATTACH_FORM,
-            XmNtopWidget, hasLabel ? (Widget) m_labelWidget : formWidget,
-            XmNbottomAttachment, XmATTACH_FORM,
-            XmNleftAttachment, XmATTACH_FORM,
-            XmNrightAttachment, XmATTACH_FORM,
-            NULL);
-
-    m_mainWidget = (WXWidget) frameWidget;
-    m_formWidget = (WXWidget) formWidget;
-
+    
     SetCanAddEventHandler(TRUE);
-    AttachWidget (parent, (WXWidget) frameWidget, (WXWidget) formWidget, pos.x, pos.y, size.x, size.y);
+    AttachWidget (parent, m_mainWidget, NULL, pos.x, pos.y, size.x, size.y);
     ChangeBackgroundColour();
 
     return TRUE;
@@ -136,16 +109,11 @@ bool wxStaticBox::Create(wxWindow *parent, wxWindowID id,
 
 wxStaticBox::~wxStaticBox()
 {
-   DetachWidget(m_formWidget);
    DetachWidget(m_mainWidget);
    XtDestroyWidget((Widget) m_mainWidget);
-   if (m_labelWidget)
-     XtDestroyWidget((Widget) m_labelWidget);
-   XtDestroyWidget((Widget) m_formWidget);
 
    m_mainWidget = (WXWidget) 0;
    m_labelWidget = (WXWidget) 0;
-   m_formWidget = (WXWidget) 0;
 }
 
 void wxStaticBox::SetLabel(const wxString& label)
@@ -157,12 +125,11 @@ void wxStaticBox::SetLabel(const wxString& label)
     {
         wxString label1(wxStripMenuCodes(label));
 
-        XmString text = XmStringCreateSimple ((char*) (const char*) label1);
+        wxXmString text(label1);
         XtVaSetValues ((Widget) m_labelWidget,
-                XmNlabelString, text,
+                XmNlabelString, text(),
                 XmNlabelType, XmSTRING,
                 NULL);
-        XmStringFree (text);
     }
 }
 
@@ -192,40 +159,9 @@ wxString wxStaticBox::GetLabel() const
     }
 }
 
-void wxStaticBox::DoSetSize(int x, int y, int width, int height, int sizeFlags)
-{
-    wxControl::DoSetSize (x, y, width, height, sizeFlags);
-
-    if (m_labelWidget)
-    {
-        Dimension xx, yy;
-        XtVaGetValues ((Widget) m_labelWidget, XmNwidth, &xx, XmNheight, &yy, NULL);
-
-        if (width > -1)
-            XtVaSetValues ((Widget) m_mainWidget, XmNwidth, width,
-                    NULL);
-        if (height > -1)
-            XtVaSetValues ((Widget) m_mainWidget, XmNheight, height - yy,
-                    NULL);
-    }
-}
-
 void wxStaticBox::ChangeFont(bool keepOriginalSize)
 {
     wxWindow::ChangeFont(keepOriginalSize);
 }
 
-void wxStaticBox::ChangeBackgroundColour()
-{
-    wxWindow::ChangeBackgroundColour();
-    if (m_labelWidget)
-        DoChangeBackgroundColour(m_labelWidget, m_backgroundColour);
-}
-
-void wxStaticBox::ChangeForegroundColour()
-{
-    wxWindow::ChangeForegroundColour();
-    if (m_labelWidget)
-        DoChangeForegroundColour(m_labelWidget, m_foregroundColour);
-}
 
diff --git a/src/motif/toolbar.cpp b/src/motif/toolbar.cpp
index f62b739ad0..5f920cc7a1 100644
--- a/src/motif/toolbar.cpp
+++ b/src/motif/toolbar.cpp
@@ -164,9 +164,8 @@ wxToolBarTool::~wxToolBarTool()
 {
     if ( m_widget )
         XtDestroyWidget(m_widget);
-    if ( m_pixmap )
-        XmDestroyPixmap(DefaultScreenOfDisplay((Display*)wxGetDisplay()),
-                        m_pixmap);
+    // note: do not delete m_pixmap here because it will be deleted
+    //       by the base class when the bitmap is destroyed.
 }
 
 // ----------------------------------------------------------------------------
diff --git a/src/motif/utils.cpp b/src/motif/utils.cpp
index bf93a2a23f..179a3a43d6 100644
--- a/src/motif/utils.cpp
+++ b/src/motif/utils.cpp
@@ -17,14 +17,1241 @@
 // headers
 // ----------------------------------------------------------------------------
 
-#include "wx/setup.h"
-
 #ifdef __VMS
 #define XtDisplay XTDISPLAY
-#include "[-.x11]utils.cpp"
+#endif
+#include "wx/setup.h"
+#include "wx/utils.h"
+#include "wx/app.h"
+#include "wx/msgdlg.h"
+#include "wx/cursor.h"
+#include "wx/window.h" // for wxTopLevelWindows
+
+#include <ctype.h>
+#include <stdarg.h>
+#include <dirent.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <sys/wait.h>
+#include <pwd.h>
+#include <errno.h>
+// #include <netdb.h>
+#include <signal.h>
+
+#if (defined(__SUNCC__) || defined(__CLCC__))
+    #include <sysent.h>
+#endif
+
+#ifdef __VMS__
+#pragma message disable nosimpint
+#endif
+
+#include "wx/unix/execute.h"
+
+#ifdef __WXMOTIF__
+#include <Xm/Xm.h>
+#include "wx/motif/private.h"
+#endif
+
+#ifdef __WXX11__
+#include "wx/x11/private.h"
+#endif
+
+#if wxUSE_RESOURCES
+#include "X11/Xresource.h"
+#endif
+
+#include "X11/Xutil.h"
+
+#ifdef __VMS__
+#pragma message enable nosimpint
+#endif
+
+// ----------------------------------------------------------------------------
+// private functions
+// ----------------------------------------------------------------------------
+
+// Yuck this is really BOTH site and platform dependent
+// so we should use some other strategy!
+#ifdef sun
+    #define DEFAULT_XRESOURCE_DIR "/usr/openwin/lib/app-defaults"
 #else
+    #define DEFAULT_XRESOURCE_DIR "/usr/lib/X11/app-defaults"
+#endif
+
+static char *GetIniFile (char *dest, const char *filename);
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// async event processing
+// ----------------------------------------------------------------------------
+
+// Consume all events until no more left
+void wxFlushEvents()
+{
+    Display *display = (Display*) wxGetDisplay();
+
+    XSync (display, FALSE);
+
+#ifdef __WXMOTIF__   
+    // XtAppPending returns availability of events AND timers/inputs, which
+    // are processed via callbacks, so XtAppNextEvent will not return if
+    // there are no events. So added '& XtIMXEvent' - Sergey.
+    while (XtAppPending ((XtAppContext) wxTheApp->GetAppContext()) & XtIMXEvent)
+    {
+        XFlush (XtDisplay ((Widget) wxTheApp->GetTopLevelWidget()));
+        // Jan Lessner: works better when events are non-X events
+        XtAppProcessEvent((XtAppContext) wxTheApp->GetAppContext(), XtIMXEvent);
+    }
+#endif
+#ifdef __WXX11__
+    // TODO for X11
+    // ??
+#endif
+}
+
+// Check whether this window wants to process messages, e.g. Stop button
+// in long calculations.
+bool wxCheckForInterrupt(wxWindow *wnd)
+{
+#ifdef __WXMOTIF__
+    wxCHECK_MSG( wnd, FALSE, "NULL window in wxCheckForInterrupt" );
+
+    Display *dpy=(Display*) wnd->GetXDisplay();
+    Window win=(Window) wnd->GetXWindow();
+    XEvent event;
+    XFlush(dpy);
+    if (wnd->GetMainWidget())
+    {
+        XmUpdateDisplay((Widget)(wnd->GetMainWidget()));
+    }
+
+    bool hadEvents = FALSE;
+    while( XCheckMaskEvent(dpy,
+                           ButtonPressMask|ButtonReleaseMask|ButtonMotionMask|
+                           PointerMotionMask|KeyPressMask|KeyReleaseMask,
+                           &event) )
+    {
+        if ( event.xany.window == win )
+        {
+            hadEvents = TRUE;
+
+            XtDispatchEvent(&event);
+        }
+    }
+
+    return hadEvents;
+#else
+    wxASSERT_MSG(FALSE, "wxCheckForInterrupt not yet implemented.");
+    return FALSE;
+#endif
+}
+
+// ----------------------------------------------------------------------------
+// wxExecute stuff
+// ----------------------------------------------------------------------------
+#ifdef __WXMOTIF__
+static void xt_notify_end_process(XtPointer data, int *WXUNUSED(fid),
+                                  XtInputId *id)
+{
+    wxEndProcessData *proc_data = (wxEndProcessData *)data;
+
+    wxHandleProcessTermination(proc_data);
+
+    // VZ: I think they should be the same...
+    wxASSERT( (int)*id == proc_data->tag );
+
+    XtRemoveInput(*id);
+}
+#endif
+
+int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
+{
+#ifdef __WXMOTIF__
+    XtInputId id = XtAppAddInput((XtAppContext) wxTheApp->GetAppContext(),
+                                 fd,
+                                 (XtPointer *) XtInputReadMask,
+                                 (XtInputCallbackProc) xt_notify_end_process,
+                                 (XtPointer) proc_data);
 
-#include "../src/x11/utils.cpp"
+    return (int)id;
 #endif
-//#error no longer needed - wxX11 utils.cpp used instead
+#ifdef __WXX11__
+    // TODO
+    return 0;
+#endif
+}
+
+// ----------------------------------------------------------------------------
+// misc
+// ----------------------------------------------------------------------------
+
+// Emit a beeeeeep
+void wxBell()
+{
+    // Use current setting for the bell
+    XBell ((Display*) wxGetDisplay(), 0);
+}
+
+int wxGetOsVersion(int *majorVsn, int *minorVsn)
+{
+#ifdef __WXMOTIF__
+    // FIXME TODO
+    // This code is WRONG!! Does NOT return the
+    // Motif version of the libs but the X protocol
+    // version!
+    Display *display = XtDisplay ((Widget) wxTheApp->GetTopLevelWidget());
+    if (majorVsn)
+        *majorVsn = ProtocolVersion (display);
+    if (minorVsn)
+        *minorVsn = ProtocolRevision (display);
+
+    return wxMOTIF_X;
+#endif
+#ifdef __WXX11__
+    if (majorVsn)
+        *majorVsn = 0;
+    if (minorVsn)
+        *minorVsn = 0;
+    return wxX11;
+#endif
+}
+
+// ----------------------------------------------------------------------------
+// Reading and writing resources (eg WIN.INI, .Xdefaults)
+// ----------------------------------------------------------------------------
+
+// Read $HOME for what it says is home, if not
+// read $USER or $LOGNAME for user name else determine
+// the Real User, then determine the Real home dir.
+static char * GetIniFile (char *dest, const char *filename)
+{
+    char *home = NULL;
+    if (filename && wxIsAbsolutePath(filename))
+    {
+        strcpy(dest, filename);
+    }
+    else if ((home = wxGetUserHome("")) != NULL)
+    {
+        strcpy(dest, home);
+        if (dest[strlen(dest) - 1] != '/')
+            strcat (dest, "/");
+        if (filename == NULL)
+        {
+            if ((filename = getenv ("XENVIRONMENT")) == NULL)
+                filename = ".Xdefaults";
+        }
+        else if (*filename != '.')
+            strcat (dest, ".");
+        strcat (dest, filename);
+    } else
+    {
+        dest[0] = '\0';
+    }
+    return dest;
+}
+
+#if wxUSE_RESOURCES
+
+static char *GetResourcePath(char *buf, const char *name, bool create = FALSE)
+{
+    if (create && wxFileExists (name) ) {
+        strcpy(buf, name);
+        return buf; // Exists so ...
+    }
+
+    if (*name == '/')
+        strcpy(buf, name);
+    else {
+        // Put in standard place for resource files if not absolute
+        strcpy (buf, DEFAULT_XRESOURCE_DIR);
+        strcat (buf, "/");
+        strcat (buf, (const char*) wxFileNameFromPath (name));
+    }
+
+    if (create) {
+        // Touch the file to create it
+        FILE *fd = fopen (buf, "w");
+        if (fd) fclose (fd);
+    }
+    return buf;
+}
+
+/*
+* We have a cache for writing different resource files,
+* which will only get flushed when we call wxFlushResources().
+* Build up a list of resource databases waiting to be written.
+*
+*/
+
+wxList wxResourceCache (wxKEY_STRING);
+
+void
+wxFlushResources (void)
+{
+    char nameBuffer[512];
+
+    wxNode *node = wxResourceCache.First ();
+    while (node)
+    {
+        const char *file = node->GetKeyString();
+        // If file doesn't exist, create it first.
+        (void)GetResourcePath(nameBuffer, file, TRUE);
+
+        XrmDatabase database = (XrmDatabase) node->Data ();
+        XrmPutFileDatabase (database, nameBuffer);
+        XrmDestroyDatabase (database);
+        wxNode *next = node->Next ();
+        delete node;
+        node = next;
+    }
+}
+
+static XrmDatabase wxResourceDatabase = 0;
+
+void wxXMergeDatabases (wxApp * theApp, Display * display);
+
+bool wxWriteResource(const wxString& section, const wxString& entry, const wxString& value, const wxString& file)
+{
+    char buffer[500];
+
+    (void) GetIniFile (buffer, file);
+
+    XrmDatabase database;
+    wxNode *node = wxResourceCache.Find (buffer);
+    if (node)
+        database = (XrmDatabase) node->Data ();
+    else
+    {
+        database = XrmGetFileDatabase (buffer);
+        wxResourceCache.Append (buffer, (wxObject *) database);
+    }
+
+    char resName[300];
+    strcpy (resName, (const char*) section);
+    strcat (resName, ".");
+    strcat (resName, (const char*) entry);
+
+    XrmPutStringResource (&database, resName, value);
+    return TRUE;
+}
+
+bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file)
+{
+    char buf[50];
+    sprintf(buf, "%.4f", value);
+    return wxWriteResource(section, entry, buf, file);
+}
+
+bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file)
+{
+    char buf[50];
+    sprintf(buf, "%ld", value);
+    return wxWriteResource(section, entry, buf, file);
+}
+
+bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file)
+{
+    char buf[50];
+    sprintf(buf, "%d", value);
+    return wxWriteResource(section, entry, buf, file);
+}
+
+bool wxGetResource(const wxString& section, const wxString& entry, char **value, const wxString& file)
+{
+    if (!wxResourceDatabase)
+    {
+        Display *display = (Display*) wxGetDisplay();
+        wxXMergeDatabases (wxTheApp, display);
+    }
+
+    XrmDatabase database;
+
+    if (file != "")
+    {
+        char buffer[500];
+
+        // Is this right? Trying to get it to look in the user's
+        // home directory instead of current directory -- JACS
+        (void) GetIniFile (buffer, file);
+
+        wxNode *node = wxResourceCache.Find (buffer);
+        if (node)
+            database = (XrmDatabase) node->Data ();
+        else
+        {
+            database = XrmGetFileDatabase (buffer);
+            wxResourceCache.Append (buffer, (wxObject *) database);
+        }
+    }
+    else
+        database = wxResourceDatabase;
+
+    XrmValue xvalue;
+    char *str_type[20];
+    char buf[150];
+    strcpy (buf, section);
+    strcat (buf, ".");
+    strcat (buf, entry);
+
+    Bool success = XrmGetResource (database, buf, "*", str_type,
+        &xvalue);
+    // Try different combinations of upper/lower case, just in case...
+    if (!success)
+    {
+        buf[0] = (isupper (buf[0]) ? tolower (buf[0]) : toupper (buf[0]));
+        success = XrmGetResource (database, buf, "*", str_type,
+            &xvalue);
+    }
+    if (success)
+    {
+        if (*value)
+            delete[] *value;
+
+        *value = new char[xvalue.size + 1];
+        strncpy (*value, xvalue.addr, (int) xvalue.size);
+        return TRUE;
+    }
+    return FALSE;
+}
+
+bool wxGetResource(const wxString& section, const wxString& entry, float *value, const wxString& file)
+{
+    char *s = NULL;
+    bool succ = wxGetResource(section, entry, (char **)&s, file);
+    if (succ)
+    {
+        *value = (float)strtod(s, NULL);
+        delete[] s;
+        return TRUE;
+    }
+    else return FALSE;
+}
+
+bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file)
+{
+    char *s = NULL;
+    bool succ = wxGetResource(section, entry, (char **)&s, file);
+    if (succ)
+    {
+        *value = strtol(s, NULL, 10);
+        delete[] s;
+        return TRUE;
+    }
+    else return FALSE;
+}
+
+bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file)
+{
+    char *s = NULL;
+    bool succ = wxGetResource(section, entry, (char **)&s, file);
+    if (succ)
+    {
+        // Handle True, False here
+        // True, Yes, Enables, Set or  Activated
+        if (*s == 'T' || *s == 'Y' || *s == 'E' || *s == 'S' || *s == 'A')
+            *value = TRUE;
+        // False, No, Disabled, Reset, Cleared, Deactivated
+        else if (*s == 'F' || *s == 'N' || *s == 'D' || *s == 'R' || *s == 'C')
+            *value = FALSE;
+        // Handle as Integer
+        else
+            *value = (int) strtol (s, NULL, 10);
+        delete[] s;
+        return TRUE;
+    }
+    else
+        return FALSE;
+}
+
+void wxXMergeDatabases (wxApp * theApp, Display * display)
+{
+    XrmDatabase homeDB, serverDB, applicationDB;
+    char filenamebuf[1024];
+
+    char *filename = &filenamebuf[0];
+    char *environment;
+    wxString classname = theApp->GetClassName();
+    char name[256];
+    (void) strcpy (name, "/usr/lib/X11/app-defaults/");
+    (void) strcat (name, (const char*) classname);
+
+    /* Get application defaults file, if any */
+    applicationDB = XrmGetFileDatabase (name);
+    (void) XrmMergeDatabases (applicationDB, &wxResourceDatabase);
+
+    /* Merge server defaults, created by xrdb, loaded as a property of the root
+    * window when the server initializes and loaded into the display
+    * structure on XOpenDisplay;
+    * if not defined, use .Xdefaults
+    */
+
+    if (XResourceManagerString (display) != NULL)
+    {
+        serverDB = XrmGetStringDatabase (XResourceManagerString (display));
+    }
+    else
+    {
+        (void) GetIniFile (filename, NULL);
+        serverDB = XrmGetFileDatabase (filename);
+    }
+    XrmMergeDatabases (serverDB, &wxResourceDatabase);
+
+    /* Open XENVIRONMENT file, or if not defined, the .Xdefaults,
+    * and merge into existing database
+    */
+
+    if ((environment = getenv ("XENVIRONMENT")) == NULL)
+    {
+        size_t len;
+        environment = GetIniFile (filename, NULL);
+        len = strlen (environment);
+        wxString hostname = wxGetHostName();
+        if ( !!hostname )
+            strncat(environment, hostname, 1024 - len);
+    }
+    homeDB = XrmGetFileDatabase (environment);
+    XrmMergeDatabases (homeDB, &wxResourceDatabase);
+}
+
+#if 0
+
+/*
+* Not yet used but may be useful.
+*
+*/
+void
+wxSetDefaultResources (const Widget w, const char **resourceSpec, const char *name)
+{
+    int i;
+    Display *dpy = XtDisplay (w);    // Retrieve the display pointer
+
+    XrmDatabase rdb = NULL;    // A resource data base
+
+    // Create an empty resource database
+    rdb = XrmGetStringDatabase ("");
+
+    // Add the Component resources, prepending the name of the component
+
+    i = 0;
+    while (resourceSpec[i] != NULL)
+    {
+        char buf[1000];
+
+        sprintf (buf, "*%s%s", name, resourceSpec[i++]);
+        XrmPutLineResource (&rdb, buf);
+    }
+
+    // Merge them into the Xt database, with lowest precendence
+
+    if (rdb)
+    {
+#if (XlibSpecificationRelease>=5)
+        XrmDatabase db = XtDatabase (dpy);
+        XrmCombineDatabase (rdb, &db, FALSE);
+#else
+        XrmMergeDatabases (dpy->db, &rdb);
+        dpy->db = rdb;
+#endif
+    }
+}
+#endif
+// 0
+
+#endif // wxUSE_RESOURCES
+
+// ----------------------------------------------------------------------------
+// display info
+// ----------------------------------------------------------------------------
+
+void wxGetMousePosition( int* x, int* y )
+{
+#if wxUSE_NANOX
+    // TODO
+    *x = 0;
+    *y = 0;
+#else
+    XMotionEvent xev;
+    Window root, child;
+    XQueryPointer((Display*) wxGetDisplay(),
+                  DefaultRootWindow((Display*) wxGetDisplay()),
+                  &root, &child,
+                  &(xev.x_root), &(xev.y_root),
+                  &(xev.x),      &(xev.y),
+                  &(xev.state));
+    *x = xev.x_root;
+    *y = xev.y_root;
+#endif
+};
+
+// Return TRUE if we have a colour display
+bool wxColourDisplay()
+{
+    return wxDisplayDepth() > 1;
+}
+
+// Returns depth of screen
+int wxDisplayDepth()
+{
+    Display *dpy = (Display*) wxGetDisplay();
+
+    return DefaultDepth (dpy, DefaultScreen (dpy));
+}
+
+// Get size of display
+void wxDisplaySize(int *width, int *height)
+{
+    Display *dpy = (Display*) wxGetDisplay();
+
+    if ( width )
+        *width = DisplayWidth (dpy, DefaultScreen (dpy));
+    if ( height )
+        *height = DisplayHeight (dpy, DefaultScreen (dpy));
+}
+
+void wxDisplaySizeMM(int *width, int *height)
+{
+    Display *dpy = (Display*) wxGetDisplay();
+
+    if ( width )
+        *width = DisplayWidthMM(dpy, DefaultScreen (dpy));
+    if ( height )
+        *height = DisplayHeightMM(dpy, DefaultScreen (dpy));
+}
+
+void wxClientDisplayRect(int *x, int *y, int *width, int *height)
+{
+    // This is supposed to return desktop dimensions minus any window
+    // manager panels, menus, taskbars, etc.  If there is a way to do that
+    // for this platform please fix this function, otherwise it defaults
+    // to the entire desktop.
+    if (x) *x = 0;
+    if (y) *y = 0;
+    wxDisplaySize(width, height);
+}
+
+
+// Configurable display in wxX11 and wxMotif
+static WXDisplay *gs_currentDisplay = NULL;
+static wxString gs_displayName;
+
+WXDisplay *wxGetDisplay()
+{
+    if (gs_currentDisplay)
+        return gs_currentDisplay;
+#ifdef __WXMOTIF__
+    if (wxTheApp && wxTheApp->GetTopLevelWidget())
+        return XtDisplay ((Widget) wxTheApp->GetTopLevelWidget());
+    else if (wxTheApp)
+        return wxTheApp->GetInitialDisplay();
+    return NULL;
+#endif
+#ifdef __WXX11__
+    return wxApp::GetDisplay();
+#endif
+}
+
+bool wxSetDisplay(const wxString& display_name)
+{
+    gs_displayName = display_name;
+
+    if ( display_name.IsEmpty() )
+    {
+        gs_currentDisplay = NULL;
+
+        return TRUE;
+    }
+    else
+    {
+#ifdef __WXMOTIF__
+        Cardinal argc = 0;
+
+        Display *display = XtOpenDisplay((XtAppContext) wxTheApp->GetAppContext(),
+            (const char*) display_name,
+            (const char*) wxTheApp->GetAppName(),
+            (const char*) wxTheApp->GetClassName(),
+            NULL,
+#if XtSpecificationRelease < 5
+            0, &argc,
+#else
+            0, (int *)&argc,
+#endif
+            NULL);
+
+        if (display)
+        {
+            gs_currentDisplay = (WXDisplay*) display;
+            return TRUE;
+        }
+        else
+            return FALSE;
+#endif
+#ifdef __WXX11__
+        Display* display = XOpenDisplay((char*) display_name.c_str());
+
+        if (display)
+        {
+            gs_currentDisplay = (WXDisplay*) display;
+            return TRUE;
+        }
+        else
+            return FALSE;
+#endif
+    }
+}
+
+wxString wxGetDisplayName()
+{
+    return gs_displayName;
+}
+
+wxWindow* wxFindWindowAtPoint(const wxPoint& pt)
+{
+    return wxGenericFindWindowAtPoint(pt);
+}
+
+// ----------------------------------------------------------------------------
+// keycode translations
+// ----------------------------------------------------------------------------
+
+#include <X11/keysym.h>
+
+// FIXME what about tables??
+
+int wxCharCodeXToWX(KeySym keySym)
+{
+    int id;
+    switch (keySym)
+    {
+        case XK_Shift_L:
+        case XK_Shift_R:
+            id = WXK_SHIFT; break;
+        case XK_Control_L:
+        case XK_Control_R:
+            id = WXK_CONTROL; break;
+        case XK_BackSpace:
+            id = WXK_BACK; break;
+        case XK_Delete:
+            id = WXK_DELETE; break;
+        case XK_Clear:
+            id = WXK_CLEAR; break;
+        case XK_Tab:
+            id = WXK_TAB; break;
+        case XK_numbersign:
+            id = '#'; break;
+        case XK_Return:
+            id = WXK_RETURN; break;
+        case XK_Escape:
+            id = WXK_ESCAPE; break;
+        case XK_Pause:
+        case XK_Break:
+            id = WXK_PAUSE; break;
+        case XK_Num_Lock:
+            id = WXK_NUMLOCK; break;
+        case XK_Scroll_Lock:
+            id = WXK_SCROLL; break;
+
+        case XK_Home:
+            id = WXK_HOME; break;
+        case XK_End:
+            id = WXK_END; break;
+        case XK_Left:
+            id = WXK_LEFT; break;
+        case XK_Right:
+            id = WXK_RIGHT; break;
+        case XK_Up:
+            id = WXK_UP; break;
+        case XK_Down:
+            id = WXK_DOWN; break;
+        case XK_Next:
+            id = WXK_NEXT; break;
+        case XK_Prior:
+            id = WXK_PRIOR; break;
+        case XK_Menu:
+            id = WXK_MENU; break;
+        case XK_Select:
+            id = WXK_SELECT; break;
+        case XK_Cancel:
+            id = WXK_CANCEL; break;
+        case XK_Print:
+            id = WXK_PRINT; break;
+        case XK_Execute:
+            id = WXK_EXECUTE; break;
+        case XK_Insert:
+            id = WXK_INSERT; break;
+        case XK_Help:
+            id = WXK_HELP; break;
+
+        case XK_KP_Multiply:
+            id = WXK_MULTIPLY; break;
+        case XK_KP_Add:
+            id = WXK_ADD; break;
+        case XK_KP_Subtract:
+            id = WXK_SUBTRACT; break;
+        case XK_KP_Divide:
+            id = WXK_DIVIDE; break;
+        case XK_KP_Decimal:
+            id = WXK_DECIMAL; break;
+        case XK_KP_Equal:
+            id = '='; break;
+        case XK_KP_Space:
+            id = ' '; break;
+        case XK_KP_Tab:
+            id = WXK_TAB; break;
+        case XK_KP_Enter:
+            id = WXK_RETURN; break;
+        case XK_KP_0:
+            id = WXK_NUMPAD0; break;
+        case XK_KP_1:
+            id = WXK_NUMPAD1; break;
+        case XK_KP_2:
+            id = WXK_NUMPAD2; break;
+        case XK_KP_3:
+            id = WXK_NUMPAD3; break;
+        case XK_KP_4:
+            id = WXK_NUMPAD4; break;
+        case XK_KP_5:
+            id = WXK_NUMPAD5; break;
+        case XK_KP_6:
+            id = WXK_NUMPAD6; break;
+        case XK_KP_7:
+            id = WXK_NUMPAD7; break;
+        case XK_KP_8:
+            id = WXK_NUMPAD8; break;
+        case XK_KP_9:
+            id = WXK_NUMPAD9; break;
+        case XK_F1:
+            id = WXK_F1; break;
+        case XK_F2:
+            id = WXK_F2; break;
+        case XK_F3:
+            id = WXK_F3; break;
+        case XK_F4:
+            id = WXK_F4; break;
+        case XK_F5:
+            id = WXK_F5; break;
+        case XK_F6:
+            id = WXK_F6; break;
+        case XK_F7:
+            id = WXK_F7; break;
+        case XK_F8:
+            id = WXK_F8; break;
+        case XK_F9:
+            id = WXK_F9; break;
+        case XK_F10:
+            id = WXK_F10; break;
+        case XK_F11:
+            id = WXK_F11; break;
+        case XK_F12:
+            id = WXK_F12; break;
+        case XK_F13:
+            id = WXK_F13; break;
+        case XK_F14:
+            id = WXK_F14; break;
+        case XK_F15:
+            id = WXK_F15; break;
+        case XK_F16:
+            id = WXK_F16; break;
+        case XK_F17:
+            id = WXK_F17; break;
+        case XK_F18:
+            id = WXK_F18; break;
+        case XK_F19:
+            id = WXK_F19; break;
+        case XK_F20:
+            id = WXK_F20; break;
+        case XK_F21:
+            id = WXK_F21; break;
+        case XK_F22:
+            id = WXK_F22; break;
+        case XK_F23:
+            id = WXK_F23; break;
+        case XK_F24:
+            id = WXK_F24; break;
+        default:
+            id = (keySym <= 255) ? (int)keySym : -1;
+    }
+
+    return id;
+}
+
+KeySym wxCharCodeWXToX(int id)
+{
+    KeySym keySym;
+
+    switch (id)
+    {
+        case WXK_CANCEL:            keySym = XK_Cancel; break;
+        case WXK_BACK:              keySym = XK_BackSpace; break;
+        case WXK_TAB:            keySym = XK_Tab; break;
+        case WXK_CLEAR:        keySym = XK_Clear; break;
+        case WXK_RETURN:        keySym = XK_Return; break;
+        case WXK_SHIFT:        keySym = XK_Shift_L; break;
+        case WXK_CONTROL:        keySym = XK_Control_L; break;
+        case WXK_MENU :        keySym = XK_Menu; break;
+        case WXK_PAUSE:        keySym = XK_Pause; break;
+        case WXK_ESCAPE:        keySym = XK_Escape; break;
+        case WXK_SPACE:        keySym = ' '; break;
+        case WXK_PRIOR:        keySym = XK_Prior; break;
+        case WXK_NEXT :        keySym = XK_Next; break;
+        case WXK_END:        keySym = XK_End; break;
+        case WXK_HOME :        keySym = XK_Home; break;
+        case WXK_LEFT :        keySym = XK_Left; break;
+        case WXK_UP:        keySym = XK_Up; break;
+        case WXK_RIGHT:        keySym = XK_Right; break;
+        case WXK_DOWN :        keySym = XK_Down; break;
+        case WXK_SELECT:        keySym = XK_Select; break;
+        case WXK_PRINT:        keySym = XK_Print; break;
+        case WXK_EXECUTE:        keySym = XK_Execute; break;
+        case WXK_INSERT:        keySym = XK_Insert; break;
+        case WXK_DELETE:        keySym = XK_Delete; break;
+        case WXK_HELP :        keySym = XK_Help; break;
+        case WXK_NUMPAD0:        keySym = XK_KP_0; break;
+        case WXK_NUMPAD1:        keySym = XK_KP_1; break;
+        case WXK_NUMPAD2:        keySym = XK_KP_2; break;
+        case WXK_NUMPAD3:        keySym = XK_KP_3; break;
+        case WXK_NUMPAD4:        keySym = XK_KP_4; break;
+        case WXK_NUMPAD5:        keySym = XK_KP_5; break;
+        case WXK_NUMPAD6:        keySym = XK_KP_6; break;
+        case WXK_NUMPAD7:        keySym = XK_KP_7; break;
+        case WXK_NUMPAD8:        keySym = XK_KP_8; break;
+        case WXK_NUMPAD9:        keySym = XK_KP_9; break;
+        case WXK_MULTIPLY:        keySym = XK_KP_Multiply; break;
+        case WXK_ADD:        keySym = XK_KP_Add; break;
+        case WXK_SUBTRACT:        keySym = XK_KP_Subtract; break;
+        case WXK_DECIMAL:        keySym = XK_KP_Decimal; break;
+        case WXK_DIVIDE:        keySym = XK_KP_Divide; break;
+        case WXK_F1:        keySym = XK_F1; break;
+        case WXK_F2:        keySym = XK_F2; break;
+        case WXK_F3:        keySym = XK_F3; break;
+        case WXK_F4:        keySym = XK_F4; break;
+        case WXK_F5:        keySym = XK_F5; break;
+        case WXK_F6:        keySym = XK_F6; break;
+        case WXK_F7:        keySym = XK_F7; break;
+        case WXK_F8:        keySym = XK_F8; break;
+        case WXK_F9:        keySym = XK_F9; break;
+        case WXK_F10:        keySym = XK_F10; break;
+        case WXK_F11:        keySym = XK_F11; break;
+        case WXK_F12:        keySym = XK_F12; break;
+        case WXK_F13:        keySym = XK_F13; break;
+        case WXK_F14:        keySym = XK_F14; break;
+        case WXK_F15:        keySym = XK_F15; break;
+        case WXK_F16:        keySym = XK_F16; break;
+        case WXK_F17:        keySym = XK_F17; break;
+        case WXK_F18:        keySym = XK_F18; break;
+        case WXK_F19:        keySym = XK_F19; break;
+        case WXK_F20:        keySym = XK_F20; break;
+        case WXK_F21:        keySym = XK_F21; break;
+        case WXK_F22:        keySym = XK_F22; break;
+        case WXK_F23:        keySym = XK_F23; break;
+        case WXK_F24:        keySym = XK_F24; break;
+        case WXK_NUMLOCK:    keySym = XK_Num_Lock; break;
+        case WXK_SCROLL:     keySym = XK_Scroll_Lock; break;
+        default:             keySym = id <= 255 ? (KeySym)id : 0;
+    }
+
+    return keySym;
+}
+
+// ----------------------------------------------------------------------------
+// Some colour manipulation routines
+// ----------------------------------------------------------------------------
+
+void wxHSVToXColor(wxHSV *hsv,XColor *rgb)
+{
+    int h = hsv->h;
+    int s = hsv->s;
+    int v = hsv->v;
+    int r = 0, g = 0, b = 0;
+    int i, f;
+    int p, q, t;
+    s = (s * wxMAX_RGB) / wxMAX_SV;
+    v = (v * wxMAX_RGB) / wxMAX_SV;
+    if (h == 360) h = 0;
+    if (s == 0) { h = 0; r = g = b = v; }
+    i = h / 60;
+    f = h % 60;
+    p = v * (wxMAX_RGB - s) / wxMAX_RGB;
+    q = v * (wxMAX_RGB - s * f / 60) / wxMAX_RGB;
+    t = v * (wxMAX_RGB - s * (60 - f) / 60) / wxMAX_RGB;
+    switch (i)
+    {
+    case 0: r = v, g = t, b = p; break;
+    case 1: r = q, g = v, b = p; break;
+    case 2: r = p, g = v, b = t; break;
+    case 3: r = p, g = q, b = v; break;
+    case 4: r = t, g = p, b = v; break;
+    case 5: r = v, g = p, b = q; break;
+    }
+    rgb->red = r << 8;
+    rgb->green = g << 8;
+    rgb->blue = b << 8;
+}
+
+void wxXColorToHSV(wxHSV *hsv,XColor *rgb)
+{
+    int r = rgb->red >> 8;
+    int g = rgb->green >> 8;
+    int b = rgb->blue >> 8;
+    int maxv = wxMax3(r, g, b);
+    int minv = wxMin3(r, g, b);
+    int h = 0, s, v;
+    v = maxv;
+    if (maxv) s = (maxv - minv) * wxMAX_RGB / maxv;
+    else s = 0;
+    if (s == 0) h = 0;
+    else
+    {
+        int rc, gc, bc, hex = 0;
+        rc = (maxv - r) * wxMAX_RGB / (maxv - minv);
+        gc = (maxv - g) * wxMAX_RGB / (maxv - minv);
+        bc = (maxv - b) * wxMAX_RGB / (maxv - minv);
+        if (r == maxv) { h = bc - gc, hex = 0; }
+        else if (g == maxv) { h = rc - bc, hex = 2; }
+        else if (b == maxv) { h = gc - rc, hex = 4; }
+        h = hex * 60 + (h * 60 / wxMAX_RGB);
+        if (h < 0) h += 360;
+    }
+    hsv->h = h;
+    hsv->s = (s * wxMAX_SV) / wxMAX_RGB;
+    hsv->v = (v * wxMAX_SV) / wxMAX_RGB;
+}
+
+void wxAllocNearestColor(Display *d,Colormap cmp,XColor *xc)
+{
+#if !wxUSE_NANOX
+    int llp;
+
+    int screen = DefaultScreen(d);
+    int num_colors = DisplayCells(d,screen);
+
+    XColor *color_defs = new XColor[num_colors];
+    for(llp = 0;llp < num_colors;llp++) color_defs[llp].pixel = llp;
+    XQueryColors(d,cmp,color_defs,num_colors);
+
+    wxHSV hsv_defs, hsv;
+    wxXColorToHSV(&hsv,xc);
+
+    int diff, min_diff = 0, pixel = 0;
+
+    for(llp = 0;llp < num_colors;llp++)
+    {
+        wxXColorToHSV(&hsv_defs,&color_defs[llp]);
+        diff = wxSIGN(wxH_WEIGHT * (hsv.h - hsv_defs.h)) +
+            wxSIGN(wxS_WEIGHT * (hsv.s - hsv_defs.s)) +
+            wxSIGN(wxV_WEIGHT * (hsv.v - hsv_defs.v));
+        if (llp == 0) min_diff = diff;
+        if (min_diff > diff) { min_diff = diff; pixel = llp; }
+        if (min_diff == 0) break;
+    }
+
+    xc -> red = color_defs[pixel].red;
+    xc -> green = color_defs[pixel].green;
+    xc -> blue = color_defs[pixel].blue;
+    xc -> flags = DoRed | DoGreen | DoBlue;
+
+/*  FIXME, TODO
+    if (!XAllocColor(d,cmp,xc))
+        cout << "wxAllocNearestColor : Warning : Cannot find nearest color !\n";
+*/
+
+    delete[] color_defs;
+#endif
+}
+
+void wxAllocColor(Display *d,Colormap cmp,XColor *xc)
+{
+    if (!XAllocColor(d,cmp,xc))
+    {
+        //          cout << "wxAllocColor : Warning : Can not allocate color, attempt find nearest !\n";
+        wxAllocNearestColor(d,cmp,xc);
+    }
+}
+
+#ifdef __WXDEBUG__
+wxString wxGetXEventName(XEvent& event)
+{
+#if wxUSE_NANOX
+    wxString str(wxT("(some event)"));
+    return str;
+#else
+    int type = event.xany.type;
+	    static char* event_name[] = {
+		"", "unknown(-)",                                         // 0-1
+		"KeyPress", "KeyRelease", "ButtonPress", "ButtonRelease", // 2-5
+		"MotionNotify", "EnterNotify", "LeaveNotify", "FocusIn",  // 6-9
+		"FocusOut", "KeymapNotify", "Expose", "GraphicsExpose",   // 10-13
+		"NoExpose", "VisibilityNotify", "CreateNotify",           // 14-16
+		"DestroyNotify", "UnmapNotify", "MapNotify", "MapRequest",// 17-20
+		"ReparentNotify", "ConfigureNotify", "ConfigureRequest",  // 21-23
+		"GravityNotify", "ResizeRequest", "CirculateNotify",      // 24-26
+		"CirculateRequest", "PropertyNotify", "SelectionClear",   // 27-29
+		"SelectionRequest", "SelectionNotify", "ColormapNotify",  // 30-32
+		"ClientMessage", "MappingNotify",                         // 33-34
+		"unknown(+)"};                                            // 35
+	    type = wxMin(35, type); type = wxMax(1, type);
+        wxString str(event_name[type]);
+        return str;
+#endif
+}
+#endif
+
+#ifdef __WXMOTIF__
+// ----------------------------------------------------------------------------
+// accelerators
+// ----------------------------------------------------------------------------
+
+// Find the letter corresponding to the mnemonic, for Motif
+char wxFindMnemonic (const char *s)
+{
+    char mnem = 0;
+    int len = strlen (s);
+    int i;
+    for (i = 0; i < len; i++)
+    {
+        if (s[i] == '&')
+        {
+            // Carefully handle &&
+            if ((i + 1) <= len && s[i + 1] == '&')
+                i++;
+            else
+            {
+                mnem = s[i + 1];
+                break;
+            }
+        }
+    }
+    return mnem;
+}
+
+char * wxFindAccelerator (const char *s)
+{
+    // VZ: this function returns incorrect keysym which completely breaks kbd
+    //     handling
+    return NULL;
+
+#if 0
+   // The accelerator text is after the \t char.
+    while (*s && *s != '\t')
+        s++;
+    if (*s == '\0')
+        return (NULL);
+    s++;
+    /*
+    Now we need to format it as X standard:
+
+      input            output
+
+        F7           --> <Key>F7
+        Ctrl+N       --> Ctrl<Key>N
+        Alt+k        --> Meta<Key>k
+        Ctrl+Shift+A --> Ctrl Shift<Key>A
+
+    */
+
+    static char buf[256];
+    buf[0] = '\0';
+    char *tmp = copystring (s);
+    s = tmp;
+    char *p = tmp;
+
+    while (1)
+    {
+        while (*p && *p != '+')
+            p++;
+        if (*p)
+        {
+            *p = '\0';
+            if (buf[0])
+                strcat (buf, " ");
+            if (strcmp (s, "Alt"))
+                strcat (buf, s);
+            else
+                strcat (buf, "Meta");
+            s = p++;
+        }
+        else
+        {
+            strcat (buf, "<Key>");
+            strcat (buf, s);
+            break;
+        }
+    }
+    delete[]tmp;
+    return buf;
+#endif
+}
+
+XmString wxFindAcceleratorText (const char *s)
+{
+    // VZ: this function returns incorrect keysym which completely breaks kbd
+    //     handling
+    return NULL;
+
+#if 0
+   // The accelerator text is after the \t char.
+    while (*s && *s != '\t')
+        s++;
+    if (*s == '\0')
+        return (NULL);
+    s++;
+    XmString text = XmStringCreateSimple ((char *)s);
+    return text;
+#endif
+}
+
+
+// These functions duplicate those in wxWindow, but are needed
+// for use outside of wxWindow (e.g. wxMenu, wxMenuBar).
+
+// Change a widget's foreground and background colours.
+
+void wxDoChangeForegroundColour(WXWidget widget, wxColour& foregroundColour)
+{
+    // When should we specify the foreground, if it's calculated
+    // by wxComputeColours?
+    // Solution: say we start with the default (computed) foreground colour.
+    // If we call SetForegroundColour explicitly for a control or window,
+    // then the foreground is changed.
+    // Therefore SetBackgroundColour computes the foreground colour, and
+    // SetForegroundColour changes the foreground colour. The ordering is
+    // important.
+
+    XtVaSetValues ((Widget) widget,
+        XmNforeground, foregroundColour.AllocColour(XtDisplay((Widget) widget)),
+        NULL);
+}
+
+void wxDoChangeBackgroundColour(WXWidget widget, wxColour& backgroundColour, bool changeArmColour)
+{
+    wxComputeColours (XtDisplay((Widget) widget), & backgroundColour,
+        (wxColour*) NULL);
+
+    XtVaSetValues ((Widget) widget,
+        XmNbackground, g_itemColors[wxBACK_INDEX].pixel,
+        XmNtopShadowColor, g_itemColors[wxTOPS_INDEX].pixel,
+        XmNbottomShadowColor, g_itemColors[wxBOTS_INDEX].pixel,
+        XmNforeground, g_itemColors[wxFORE_INDEX].pixel,
+        NULL);
+
+    if (changeArmColour)
+        XtVaSetValues ((Widget) widget,
+        XmNarmColor, g_itemColors[wxSELE_INDEX].pixel,
+        NULL);
+}
+
+#endif
+    // __WXMOTIF__
+
+bool wxWindowIsVisible(Window win)
+{
+    XWindowAttributes wa;
+    XGetWindowAttributes(wxGlobalDisplay(), win, &wa);
 
+    return (wa.map_state == IsViewable);
+}
diff --git a/src/motif/window.cpp b/src/motif/window.cpp
index 0314491eb7..15a5f5240f 100644
--- a/src/motif/window.cpp
+++ b/src/motif/window.cpp
@@ -404,7 +404,7 @@ bool wxWindow::Create(wxWindow *parent, wxWindowID id,
 wxWindow::~wxWindow()
 {
     if (g_captureWindow == this)
-	g_captureWindow = NULL;
+        g_captureWindow = NULL;
     
     m_isBeingDeleted = TRUE;
     
@@ -437,7 +437,7 @@ wxWindow::~wxWindow()
         if (w)
         {
             XtDestroyWidget(w);
-	    m_drawingArea = (WXWidget) 0;
+            m_drawingArea = (WXWidget) 0;
         }
 
         // Only if we're _really_ a canvas (not a dialog box/panel)
@@ -449,18 +449,18 @@ wxWindow::~wxWindow()
         if (m_hScrollBar)
         {
             wxDeleteWindowFromTable((Widget) m_hScrollBar);
-	    XtUnmanageChild((Widget) m_hScrollBar);
+            XtUnmanageChild((Widget) m_hScrollBar);
         }
         if (m_vScrollBar)
         {
             wxDeleteWindowFromTable((Widget) m_vScrollBar);
-	    XtUnmanageChild((Widget) m_vScrollBar);
+            XtUnmanageChild((Widget) m_vScrollBar);
         }
 
         if (m_hScrollBar)
-	    XtDestroyWidget((Widget) m_hScrollBar);
+            XtDestroyWidget((Widget) m_hScrollBar);
         if (m_vScrollBar)
-	    XtDestroyWidget((Widget) m_vScrollBar);
+            XtDestroyWidget((Widget) m_vScrollBar);
 
         UnmanageAndDestroy(m_scrolledWindow);
 
@@ -958,12 +958,12 @@ void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect)
     while (cnode)
     {
         wxWindow *child = (wxWindow*) cnode->Data();
-	int sx = 0;
-	int sy = 0;
-	child->GetSize( &sx, &sy );
+        int sx = 0;
+        int sy = 0;
+        child->GetSize( &sx, &sy );
         wxPoint pos( child->GetPosition() );
-	child->SetSize( pos.x + dx, pos.y + dy, sx, sy, wxSIZE_ALLOW_MINUS_ONE );
-	cnode = cnode->Next();
+        child->SetSize( pos.x + dx, pos.y + dy, sx, sy, wxSIZE_ALLOW_MINUS_ONE );
+        cnode = cnode->Next();
     }
 
     int x1 = (dx >= 0) ? x : x - dx;
@@ -1207,15 +1207,15 @@ bool wxWindow::DoPopupMenu(wxMenu *menu, int x, int y)
     XmMenuPosition (menuWidget, &event);
     XtManageChild (menuWidget);
 
-	XEvent x_event;
-	// The ID of a pop-up menu is 1 when active, and is set to 0 by the
+    XEvent x_event;
+    // The ID of a pop-up menu is 1 when active, and is set to 0 by the
     // idle-time destroy routine.
-	// Waiting until this ID changes causes this function to block until
+    // Waiting until this ID changes causes this function to block until
     // the menu has been dismissed and the widgets cleaned up.
     // In other words, once this routine returns, it is safe to delete
     // the menu object.
     // Ian Brown <ian.brown@printsoft.de>
-	while (menu->GetId() == 1)
+    while (menu->GetId() == 1)
     {
         XtAppNextEvent( (XtAppContext) wxTheApp->GetAppContext(), &x_event);
 
@@ -1732,7 +1732,7 @@ bool wxWindow::ProcessAccelerator(wxKeyEvent& event)
         if (entry->MatchesEvent(event))
         {
             // Bingo, we have a match. Now find a control that matches the
-	    // entry command id.
+            // entry command id.
 
             // Need to go up to the top of the window hierarchy, since it might
             // be e.g. a menu item
@@ -2201,33 +2201,8 @@ static void wxCanvasInputEvent(Widget drawingArea,
       }
     case KeyPress:
         {
-            KeySym keySym;
-            static char buf[100];
-#if 0
-            XComposeStatus compose;
-            (void) XLookupString ((XKeyEvent *) & local_event, buf, 20, &keySym, &compose);
-#endif // 0
-
-            (void) XLookupString ((XKeyEvent *) & local_event, buf, 20, &keySym, NULL);
-            int id = wxCharCodeXToWX (keySym);
-
-            wxEventType eventType = wxEVT_CHAR;
-
-            wxKeyEvent event (eventType);
-
-            if (local_event.xkey.state & ShiftMask)
-                event.m_shiftDown = TRUE;
-            if (local_event.xkey.state & ControlMask)
-                event.m_controlDown = TRUE;
-            if (local_event.xkey.state & Mod3Mask)
-                event.m_altDown = TRUE;
-            if (local_event.xkey.state & Mod1Mask)
-                event.m_metaDown = TRUE;
-            event.SetEventObject(canvas);
-            event.m_keyCode = id;
-            event.SetTimestamp(local_event.xkey.time);
-
-            if (id > -1)
+            wxKeyEvent event (wxEVT_CHAR);
+            if (wxTranslateKeyEvent (event, canvas, (Widget) 0, &local_event))
             {
                 // Implement wxFrame::OnCharHook by checking ancestor.
                 wxWindow *parent = canvas->GetParent();
@@ -2256,26 +2231,8 @@ static void wxCanvasInputEvent(Widget drawingArea,
         }
     case KeyRelease:
         {
-            static char buf[100];
-            KeySym keySym;
-            (void) XLookupString ((XKeyEvent *) & local_event, buf, 20, &keySym, NULL);
-            int id = wxCharCodeXToWX (keySym);
-
             wxKeyEvent event (wxEVT_KEY_UP);
-
-            if (local_event.xkey.state & ShiftMask)
-                event.m_shiftDown = TRUE;
-            if (local_event.xkey.state & ControlMask)
-                event.m_controlDown = TRUE;
-            if (local_event.xkey.state & Mod3Mask)
-                event.m_altDown = TRUE;
-            if (local_event.xkey.state & Mod1Mask)
-                event.m_metaDown = TRUE;
-            event.SetEventObject(canvas);
-            event.m_keyCode = id;
-            event.SetTimestamp(local_event.xkey.time);
-
-            if (id > -1)
+            if (wxTranslateKeyEvent (event, canvas, (Widget) 0, &local_event))
             {
                 canvas->GetEventHandler()->ProcessEvent (event);
             }
@@ -2828,6 +2785,10 @@ bool wxTranslateKeyEvent(wxKeyEvent& wxevent, wxWindow *win, Widget WXUNUSED(wid
 #endif // 0
             (void) XLookupString ((XKeyEvent *) xevent, buf, 20, &keySym, NULL);
             int id = wxCharCodeXToWX (keySym);
+            // id may be WXK_xxx code - these are outside ASCII range, so we
+            // can't just use toupper() on id
+            if (id >= 'a' && id <= 'z')
+                id = toupper(id);
 
             if (xevent->xkey.state & ShiftMask)
                 wxevent.m_shiftDown = TRUE;
@@ -3075,8 +3036,8 @@ wxPoint wxGetMousePosition()
     unsigned int maskReturn;
 
     XQueryPointer (display,
-		   rootWindow,
-		   &rootReturn,
+                   rootWindow,
+                   &rootReturn,
                    &childReturn,
                    &rootX, &rootY, &winX, &winY, &maskReturn);
     return wxPoint(rootX, rootY);
diff --git a/src/motif/xmcombo/xmcombo.c b/src/motif/xmcombo/xmcombo.c
index b5e148b629..6519996ac5 100644
--- a/src/motif/xmcombo/xmcombo.c
+++ b/src/motif/xmcombo/xmcombo.c
@@ -1268,24 +1268,32 @@ static struct { String Resource; int Flag; }
 
 static int UpdateColors(XmComboBoxWidget w, int flags)
 {
-    Pixel  Color;
+    Pixel  Color, White, Black, EditCol;
     int    i, size = XtNumber(ColorResources);
     Widget ScrolledWin, ScrollBar;
     
     ScrolledWin = XtParent(w->combobox.ListCtrl);
     XtVaGetValues(ScrolledWin, XmNverticalScrollBar, &ScrollBar, NULL);
+    White = WhitePixel(XtDisplay(w), WidgetToScreen((Widget) w));
+    Black = BlackPixel(XtDisplay(w), WidgetToScreen((Widget) w));
     for ( i=0; i<size; i++ )
 	if ( flags & ColorResources[i].Flag ) {
+            if ( ColorResources[i].Flag == BACKGROUND )
+                EditCol = White;
+            else if ( ColorResources[i].Flag == FOREGROUND )
+                EditCol = Black;
+            else
+                EditCol = Color;
 	    XtVaGetValues((Widget) w, ColorResources[i].Resource, &Color,
 	                  NULL);
-	    XtVaSetValues(w->combobox.ListCtrl, 
-	                  ColorResources[i].Resource, Color, NULL);
-	    XtVaSetValues(ScrolledWin, 
-	                  ColorResources[i].Resource, Color, NULL);
 	    XtVaSetValues(ScrollBar, 
 	                  ColorResources[i].Resource, Color, NULL);
-	    XtVaSetValues(w->combobox.EditCtrl, 
-	                  ColorResources[i].Resource, Color, NULL);
+            XtVaSetValues(w->combobox.ListCtrl, 
+                          ColorResources[i].Resource, EditCol, NULL);
+            XtVaSetValues(w->combobox.EditCtrl, 
+                          ColorResources[i].Resource, EditCol, NULL);
+            XtVaSetValues(ScrolledWin, 
+                          ColorResources[i].Resource, Color, NULL);
 	    XtVaSetValues(w->combobox.LabelCtrl, 
 	                  ColorResources[i].Resource, Color, NULL);
 	    XtVaSetValues(w->combobox.ArrowCtrl, 
diff --git a/src/msw/app.cpp b/src/msw/app.cpp
index cfaf7b34e9..dbdba5bbe8 100644
--- a/src/msw/app.cpp
+++ b/src/msw/app.cpp
@@ -712,7 +712,7 @@ int wxEntry(WXHINSTANCE hInstance,
             if ( enterLoop )
             {
                 // run the main loop
-                retValue = wxTheApp->OnRun();
+                wxTheApp->OnRun();
             }
             else
             {
@@ -739,7 +739,7 @@ int wxEntry(WXHINSTANCE hInstance,
             }
         }
 
-        wxTheApp->OnExit();
+        retValue = wxTheApp->OnExit();
 
         wxEntryCleanup();
 
@@ -1066,15 +1066,21 @@ bool wxApp::ProcessMessage(WXMSG *wxmsg)
     return FALSE;
 }
 
+// this is a temporary hack and will be replaced by using wxEventLoop in the
+// future
+//
+// it is needed to allow other event loops (currently only one: the modal
+// dialog one) to reset the OnIdle() semaphore because otherwise OnIdle()
+// wouldn't do anything while a modal dialog shown from OnIdle() call is shown.
+bool wxIsInOnIdleFlag = FALSE;
+
 void wxApp::OnIdle(wxIdleEvent& event)
 {
-    static bool s_inOnIdle = FALSE;
-
     // Avoid recursion (via ProcessEvent default case)
-    if ( s_inOnIdle )
+    if ( wxIsInOnIdleFlag )
         return;
 
-    s_inOnIdle = TRUE;
+    wxIsInOnIdleFlag = TRUE;
 
     // If there are pending events, we must process them: pending events
     // are either events to the threads other than main or events posted
@@ -1109,7 +1115,7 @@ void wxApp::OnIdle(wxIdleEvent& event)
         event.RequestMore(TRUE);
     }
 
-    s_inOnIdle = FALSE;
+    wxIsInOnIdleFlag = FALSE;
 }
 
 // Send idle event to all top-level windows
diff --git a/src/msw/brush.cpp b/src/msw/brush.cpp
index c201a55748..e47a77f3b1 100644
--- a/src/msw/brush.cpp
+++ b/src/msw/brush.cpp
@@ -293,11 +293,11 @@ wxBitmap *wxBrush::GetStipple() const
     return M_BRUSHDATA->GetStipple();
 }
 
-WXHBRUSH wxBrush::GetResourceHandle() const
+WXHANDLE wxBrush::GetResourceHandle() const
 {
     wxCHECK_MSG( Ok(), FALSE, _T("invalid brush") );
 
-    return (WXHBRUSH)M_BRUSHDATA->GetHBRUSH();
+    return (WXHANDLE)M_BRUSHDATA->GetHBRUSH();
 }
 
 // ----------------------------------------------------------------------------
diff --git a/src/msw/checkbox.cpp b/src/msw/checkbox.cpp
index bc4e9e8393..f1e29a2395 100644
--- a/src/msw/checkbox.cpp
+++ b/src/msw/checkbox.cpp
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        checkbox.cpp
+// Name:        msw/checkbox.cpp
 // Purpose:     wxCheckBox
 // Author:      Julian Smart
 // Modified by:
@@ -39,17 +39,16 @@
 
 #include "wx/msw/private.h"
 
-// ----------------------------------------------------------------------------
-// macros
-// ----------------------------------------------------------------------------
-
-IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl)
-IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox)
+#ifndef BST_CHECKED
+    #define BST_CHECKED 0x0001
+#endif
 
 // ============================================================================
 // implementation
 // ============================================================================
 
+IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl)
+
 // ----------------------------------------------------------------------------
 // wxCheckBox
 // ----------------------------------------------------------------------------
@@ -123,87 +122,15 @@ void wxCheckBox::SetValue(bool val)
     SendMessage(GetHwnd(), BM_SETCHECK, val, 0);
 }
 
-#ifndef BST_CHECKED
-#define BST_CHECKED 0x0001
-#endif
-
 bool wxCheckBox::GetValue() const
 {
-#ifdef __WIN32__
-  return (SendMessage(GetHwnd(), BM_GETCHECK, 0, 0) == BST_CHECKED);
-#else
-  return ((0x001 & SendMessage(GetHwnd(), BM_GETCHECK, 0, 0)) == 0x001);
-#endif
-}
-
-void wxCheckBox::Command (wxCommandEvent & event)
-{
-  SetValue ((event.GetInt() != 0));
-  ProcessCommand (event);
-}
-
-// ----------------------------------------------------------------------------
-// wxBitmapCheckBox
-// ----------------------------------------------------------------------------
-
-bool wxBitmapCheckBox::Create(wxWindow *parent, wxWindowID id, const wxBitmap *WXUNUSED(label),
-           const wxPoint& pos,
-           const wxSize& size, long style,
-           const wxValidator& validator,
-           const wxString& name)
-{
-  SetName(name);
-#if wxUSE_VALIDATORS
-  SetValidator(validator);
-#endif // wxUSE_VALIDATORS
-  if (parent) parent->AddChild(this);
-
-  SetBackgroundColour(parent->GetBackgroundColour()) ;
-  SetForegroundColour(parent->GetForegroundColour()) ;
-  m_windowStyle = style;
-
-  if ( id == -1 )
-      m_windowId = NewControlId();
-  else
-      m_windowId = id;
-
-  int x = pos.x;
-  int y = pos.y;
-  int width = size.x;
-  int height = size.y;
-
-  checkWidth = -1 ;
-  checkHeight = -1 ;
-  long msStyle = CHECK_FLAGS;
-
-  HWND wx_button = CreateWindowEx(MakeExtendedStyle(m_windowStyle), CHECK_CLASS, wxT("toggle"),
-                    msStyle,
-                    0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId,
-                    wxGetInstance(), NULL);
-
-#if wxUSE_CTL3D
-  if (!(GetParent()->GetWindowStyleFlag() & wxUSER_COLOURS))
-  {
-    Ctl3dSubclassCtl(wx_button);
-    m_useCtl3D = TRUE;
-  }
-#endif
-
-  m_hWnd = (WXHWND)wx_button;
-
-  // Subclass again for purposes of dialog editing mode
-  SubclassWin((WXHWND)wx_button);
-
-  SetSize(x, y, width, height);
-
-  ShowWindow(wx_button, SW_SHOW);
-
-  return TRUE;
+    return (SendMessage(GetHwnd(), BM_GETCHECK, 0, 0) & BST_CHECKED) != 0;
 }
 
-void wxBitmapCheckBox::SetLabel(const wxBitmap& WXUNUSED(bitmap))
+void wxCheckBox::Command(wxCommandEvent& event)
 {
-    wxFAIL_MSG(wxT("not implemented"));
+    SetValue(event.GetInt() != 0);
+    ProcessCommand(event);
 }
 
 #endif // wxUSE_CHECKBOX
diff --git a/src/msw/checklst.cpp b/src/msw/checklst.cpp
index d72f1c609e..42ffa063a1 100644
--- a/src/msw/checklst.cpp
+++ b/src/msw/checklst.cpp
@@ -73,7 +73,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxCheckListBox, wxListBox)
 
 class wxCheckListBoxItem : public wxOwnerDrawn
 {
-friend class wxCheckListBox;
+friend class WXDLLEXPORT wxCheckListBox;
 public:
   // ctor
   wxCheckListBoxItem(wxCheckListBox *pParent, size_t nIndex);
@@ -93,7 +93,7 @@ private:
 };
 
 wxCheckListBoxItem::wxCheckListBoxItem(wxCheckListBox *pParent, size_t nIndex)
-                  : wxOwnerDrawn("", TRUE)   // checkable
+                  : wxOwnerDrawn(wxEmptyString, TRUE)   // checkable
 {
   m_bChecked = FALSE;
   m_pParent  = pParent;
@@ -329,7 +329,7 @@ bool wxCheckListBox::SetFont( const wxFont &font )
 // --------------------
 
 // create a check list box item
-wxOwnerDrawn *wxCheckListBox::CreateItem(size_t nIndex)
+wxOwnerDrawn *wxCheckListBox::CreateLboxItem(size_t nIndex)
 {
   wxCheckListBoxItem *pItem = new wxCheckListBoxItem(this, nIndex);
   return pItem;
diff --git a/src/msw/choice.cpp b/src/msw/choice.cpp
index f57a180cac..58a2f6a17d 100644
--- a/src/msw/choice.cpp
+++ b/src/msw/choice.cpp
@@ -193,9 +193,31 @@ int wxChoice::FindString(const wxString& s) const
 
 void wxChoice::SetString(int n, const wxString& s)
 {
-    wxCHECK_RET( (n>=0)&&(n<GetCount()), wxT("invalid item index in wxChoice::SetString") );
-    SendMessage(GetHwnd(), CB_DELETESTRING, n, 0);
-    SendMessage(GetHwnd(), CB_INSERTSTRING, n, (LONG)s.c_str() );
+    wxCHECK_RET( n >= 0 && n < GetCount(),
+                 wxT("invalid item index in wxChoice::SetString") );
+
+    // we have to delete and add back the string as there is no way to change a
+    // string in place
+
+    // we need to preserve the client data
+    void *data;
+    if ( m_clientDataItemsType != wxClientData_None )
+    {
+        data = DoGetItemClientData(n);
+    }
+    else // no client data
+    {
+        data = NULL;
+    }
+
+    ::SendMessage(GetHwnd(), CB_DELETESTRING, n, 0);
+    ::SendMessage(GetHwnd(), CB_INSERTSTRING, n, (LPARAM)s.c_str() );
+
+    if ( data )
+    {
+        DoSetItemClientData(n, data);
+    }
+    //else: it's already NULL by default
 }
 
 wxString wxChoice::GetString(int n) const
@@ -228,7 +250,8 @@ wxString wxChoice::GetString(int n) const
 
 void wxChoice::DoSetItemClientData( int n, void* clientData )
 {
-    if ( SendMessage(GetHwnd(), CB_SETITEMDATA, n, (LPARAM)clientData) == CB_ERR )
+    if ( ::SendMessage(GetHwnd(), CB_SETITEMDATA,
+                       n, (LPARAM)clientData) == CB_ERR )
     {
         wxLogLastError(wxT("CB_SETITEMDATA"));
     }
diff --git a/src/msw/combobox.cpp b/src/msw/combobox.cpp
index 283eab16ac..4acd9c73bd 100644
--- a/src/msw/combobox.cpp
+++ b/src/msw/combobox.cpp
@@ -33,6 +33,8 @@
 #ifndef WX_PRECOMP
     #include "wx/settings.h"
     #include "wx/log.h"
+    // for wxEVT_COMMAND_TEXT_ENTER
+    #include "wx/textctrl.h"
 #endif
 
 #include "wx/combobox.h"
@@ -133,7 +135,7 @@ LRESULT APIENTRY _EXPORT wxComboEditWndProc(HWND hWnd,
                 wxCHECK_MSG( win, 0, _T("should have a parent") );
 
                 NMHDR* hdr = (NMHDR *)lParam;
-                if ( (int)hdr->code == TTN_NEEDTEXT )
+                if ( hdr->code == TTN_NEEDTEXT )
                 {
                     wxToolTip *tooltip = win->GetToolTip();
                     if ( tooltip )
@@ -201,6 +203,17 @@ bool wxComboBox::MSWProcessEditMsg(WXUINT msg, WXWPARAM wParam, WXLPARAM lParam)
     switch ( msg )
     {
         case WM_CHAR:
+            // for compatibility with wxTextCtrl, generate a special message
+            // when Enter is pressed
+            if ( wParam == VK_RETURN )
+            {
+                wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId);
+                InitCommandEvent(event);
+                event.SetString(GetValue());
+                event.SetInt(GetSelection());
+                ProcessCommand(event);
+            }
+
             return HandleChar(wParam, lParam, TRUE /* isASCII */);
 
         case WM_KEYDOWN:
@@ -371,63 +384,28 @@ bool wxComboBox::Create(wxWindow *parent, wxWindowID id,
     return TRUE;
 }
 
-// TODO: update and clear all this horrible mess (VZ)
-
 void wxComboBox::SetValue(const wxString& value)
 {
-  // If newlines are denoted by just 10, must stick 13 in front.
-  size_t singletons = 0;
-  size_t len = value.Length();
-  size_t i;
-  for (i = 0; i < len; i ++)
-  {
-    if ((i > 0) && (value[i] == 10) && (value[i-1] != 13))
-      singletons ++;
-  }
-  if (singletons > 0)
-  {
-    wxString tmp;
-    tmp.Alloc(len + singletons);
-    size_t j = 0;
-    for (i = 0; i < len; i ++)
-    {
-      if ((i > 0) && (value[i] == 10) && (value[i-1] != 13))
-      {
-        tmp[j] = 13;
-        j ++;
-      }
-      tmp[j] = value[i];
-      j ++;
-    }
-    if (GetWindowStyle() & wxCB_READONLY)
-        SetStringSelection(tmp);
-    else
-        SetWindowText(GetHwnd(), tmp.c_str());
-  }
-  else
-    if (GetWindowStyle() & wxCB_READONLY)
-      SetStringSelection(value);
+    if ( HasFlag(wxCB_READONLY) )
+        SetStringSelection(value);
     else
-      SetWindowText(GetHwnd(), value.c_str());
+        SetWindowText(GetHwnd(), value.c_str());
 }
 
 // Clipboard operations
 void wxComboBox::Copy()
 {
-  HWND hWnd = GetHwnd();
-  SendMessage(hWnd, WM_COPY, 0, 0L);
+  SendMessage(GetHwnd(), WM_COPY, 0, 0L);
 }
 
 void wxComboBox::Cut()
 {
-  HWND hWnd = GetHwnd();
-  SendMessage(hWnd, WM_CUT, 0, 0L);
+  SendMessage(GetHwnd(), WM_CUT, 0, 0L);
 }
 
 void wxComboBox::Paste()
 {
-  HWND hWnd = GetHwnd();
-  SendMessage(hWnd, WM_PASTE, 0, 0L);
+  SendMessage(GetHwnd(), WM_PASTE, 0, 0L);
 }
 
 void wxComboBox::SetEditable(bool WXUNUSED(editable))
diff --git a/src/msw/dcprint.cpp b/src/msw/dcprint.cpp
index ed38d9fe64..e04d74c88d 100644
--- a/src/msw/dcprint.cpp
+++ b/src/msw/dcprint.cpp
@@ -435,7 +435,7 @@ void wxPrinterDC::DoDrawBitmap(const wxBitmap &bmp,
         memset( info, 0, sizeof( BITMAPINFOHEADER ) );
 
 #if wxUSE_DRAWBITMAP_24BITS
-        int iBitsSize = ((width + 3 ) & ~3 ) * height * 3;
+        int iBitsSize = (((width * 3) + 3 ) & ~3 ) * height;
 #else
         int iBitsSize = ((width + 3 ) & ~3 ) * height ;
 #endif
diff --git a/src/msw/dialog.cpp b/src/msw/dialog.cpp
index 748ef0595f..214bfb1dd4 100644
--- a/src/msw/dialog.cpp
+++ b/src/msw/dialog.cpp
@@ -247,6 +247,12 @@ void wxDialog::DoShowModal()
 
     m_windowDisabler = new wxWindowDisabler(this);
 
+    // before entering the modal loop, reset the "is in OnIdle()" flag (see
+    // comment in app.cpp)
+    extern bool wxIsInOnIdleFlag;
+    bool wasInOnIdle = wxIsInOnIdleFlag;
+    wxIsInOnIdleFlag = FALSE;
+
     // enter the modal loop
     while ( IsModalShowing() )
     {
@@ -261,6 +267,8 @@ void wxDialog::DoShowModal()
         wxTheApp->DoMessage();
     }
 
+    wxIsInOnIdleFlag = wasInOnIdle;
+
     // and restore focus
     // Note that this code MUST NOT access the dialog object's data
     // in case the object has been deleted (which will be the case
@@ -296,6 +304,14 @@ bool wxDialog::Show(bool show)
 
     if ( show )
     {
+        // dialogs don't get WM_SIZE message after creation unlike most (all?)
+        // other windows and so could start their life non laid out correctly
+        // if we didn't call Layout() from here
+        //
+        // NB: normally we should call it just the first time but doing it
+        //     every time is simpler than keeping a flag
+        Layout();
+
         // usually will result in TransferDataToWindow() being called
         InitDialog();
     }
diff --git a/src/msw/dir.cpp b/src/msw/dir.cpp
index 7d505e56bc..6e51506f8b 100644
--- a/src/msw/dir.cpp
+++ b/src/msw/dir.cpp
@@ -458,3 +458,36 @@ bool wxDir::GetNext(wxString *filename) const
 
     return M_DIR->Read(filename);
 }
+
+// ----------------------------------------------------------------------------
+// wxGetDirectoryTimes: used by wxFileName::GetTimes()
+// ----------------------------------------------------------------------------
+
+#ifdef __WIN32__
+
+extern bool
+wxGetDirectoryTimes(const wxString& dirname,
+                    FILETIME *ftAccess, FILETIME *ftCreate, FILETIME *ftMod)
+{
+    // FindFirst() is going to fail
+    wxASSERT_MSG( !dirname.empty() && dirname.Last() != _T('\\'),
+                  _T("incorrect directory name format in wxGetDirectoryTimes") );
+
+    FIND_STRUCT fs;
+    FIND_DATA fd = FindFirst(dirname, &fs);
+    if ( !IsFindDataOk(fd) )
+    {
+        return FALSE;
+    }
+
+    *ftAccess = fs.ftLastAccessTime;
+    *ftCreate = fs.ftCreationTime;
+    *ftMod = fs.ftLastWriteTime;
+
+    FindClose(fd);
+
+    return TRUE;
+}
+
+#endif // __WIN32__
+
diff --git a/src/msw/dragimag.cpp b/src/msw/dragimag.cpp
index b80fac16b7..ae349c83fd 100644
--- a/src/msw/dragimag.cpp
+++ b/src/msw/dragimag.cpp
@@ -129,8 +129,12 @@ bool wxDragImage::Create(const wxBitmap& image, const wxCursor& cursor)
         flags = ILC_COLOR32;
 
     bool mask = (image.GetMask() != 0);
-    if ( mask )
-        flags |= ILC_MASK;
+
+    // Curiously, even if the image doesn't have a mask,
+    // we still have to use ILC_MASK or the image won't show
+    // up when dragged.
+//    if ( mask )
+    flags |= ILC_MASK;
 
     m_hImageList = (WXHIMAGELIST) ImageList_Create(image.GetWidth(), image.GetHeight(), flags, 1, 1);
 
diff --git a/src/msw/filedlg.cpp b/src/msw/filedlg.cpp
index 94a4e60b58..7df3db8961 100644
--- a/src/msw/filedlg.cpp
+++ b/src/msw/filedlg.cpp
@@ -35,6 +35,7 @@
     #include "wx/msgdlg.h"
     #include "wx/dialog.h"
     #include "wx/filedlg.h"
+    #include "wx/filefn.h"
     #include "wx/intl.h"
     #include "wx/log.h"
     #include "wx/app.h"
@@ -61,7 +62,7 @@
 // ----------------------------------------------------------------------------
 
 #ifdef __WIN32__
-# define wxMAXPATH   4096
+# define wxMAXPATH   65534
 #else
 # define wxMAXPATH   1024
 #endif
@@ -197,9 +198,13 @@ wxString wxFileSelectorEx(const wxChar *title,
     return filename;
 }
 
-wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
-        const wxString& defaultDir, const wxString& defaultFileName, const wxString& wildCard,
-        long style, const wxPoint& WXUNUSED(pos))
+wxFileDialog::wxFileDialog(wxWindow *parent,
+                           const wxString& message,
+                           const wxString& defaultDir,
+                           const wxString& defaultFileName,
+                           const wxString& wildCard,
+                           long style,
+                           const wxPoint& WXUNUSED(pos))
 {
     m_message = message;
     m_dialogStyle = style;
@@ -228,6 +233,14 @@ void wxFileDialog::GetPaths(wxArrayString& paths) const
     }
 }
 
+void wxFileDialog::SetPath(const wxString& path)
+{
+    wxString ext;
+    wxSplitPath(path, &m_dir, &m_fileName, &ext);
+    if ( !ext.empty() )
+        m_fileName << _T('.') << ext;
+}
+
 int wxFileDialog::ShowModal()
 {
     HWND hWnd = 0;
diff --git a/src/msw/files.lst b/src/msw/files.lst
index a4d6e527bf..345e849ab0 100644
--- a/src/msw/files.lst
+++ b/src/msw/files.lst
@@ -288,7 +288,6 @@ ALL_SOURCES = \
 		html/m_layout.cpp \
 		html/m_links.cpp \
 		html/m_list.cpp \
-		html/m_meta.cpp \
 		html/m_pre.cpp \
 		html/m_style.cpp \
 		html/m_tables.cpp \
@@ -658,7 +657,7 @@ ALL_HEADERS = \
 		generic/imaglist.h \
 		generic/laywin.h \
 		generic/listctrl.h \
-		generic/mdig.cpp \
+		generic/mdig.h \
 		generic/msgdlgg.h \
 		generic/notebook.h \
 		generic/paletteg.h \
@@ -702,7 +701,6 @@ ALL_HEADERS = \
 		protocol/protocol.h
 
 COMMONOBJS = \
-		parser.o \
 		appcmn.o \
 		artprov.o \
 		artstd.o \
@@ -996,7 +994,6 @@ GUI_LOWLEVEL_OBJS = \
 		gdiimage.o \
 		gdiobj.o \
 		icon.o \
-		imaglist.o \
 		main.o \
 		palette.o \
 		pen.o \
@@ -1030,7 +1027,6 @@ HTMLOBJS = \
 		m_layout.o \
 		m_links.o \
 		m_list.o \
-		m_meta.o \
 		m_pre.o \
 		m_style.o \
 		m_tables.o \
diff --git a/src/msw/font.cpp b/src/msw/font.cpp
index 4cd6532a0c..dc601f5af8 100644
--- a/src/msw/font.cpp
+++ b/src/msw/font.cpp
@@ -742,9 +742,9 @@ bool wxFont::FreeResource(bool WXUNUSED(force))
     return FALSE;
 }
 
-WXHANDLE wxFont::GetResourceHandle()
+WXHANDLE wxFont::GetResourceHandle() const
 {
-    return GetHFONT();
+    return (WXHANDLE)GetHFONT();
 }
 
 WXHFONT wxFont::GetHFONT() const
diff --git a/src/msw/gdiimage.cpp b/src/msw/gdiimage.cpp
index 6f904e43d7..1b5000fa5e 100644
--- a/src/msw/gdiimage.cpp
+++ b/src/msw/gdiimage.cpp
@@ -208,7 +208,7 @@ bool wxGDIImage::FreeResource(bool WXUNUSED(force))
     return TRUE;
 }
 
-WXHANDLE wxGDIImage::GetResourceHandle()
+WXHANDLE wxGDIImage::GetResourceHandle() const
 {
     return GetHandle();
 }
@@ -424,6 +424,27 @@ bool wxICOFileHandler::LoadIcon(wxIcon *icon,
         nameReal = name.BeforeLast(wxT(';'));
     }
 
+#if 0
+    // If we don't know what size icon we're looking for,
+    // try to find out what's there.
+    // Unfortunately this doesn't work, because ExtractIconEx
+    // will scale the icon to the 'desired' size, even if that
+    // size of icon isn't explicitly stored. So we would have
+    // to parse the icon file outselves.
+    if ( desiredWidth == -1 &&
+         desiredHeight == -1)
+    {
+        // Try loading a large icon first
+        if ( ::ExtractIconEx(nameReal, iconIndex, &hicon, NULL, 1) == 1)
+        {
+        }
+        // Then try loading a small icon
+        else if ( ::ExtractIconEx(nameReal, iconIndex, NULL, &hicon, 1) == 1)
+        {
+        }
+    }
+    else
+#endif
     // were we asked for a large icon?
     if ( desiredWidth == ::GetSystemMetrics(SM_CXICON) &&
          desiredHeight == ::GetSystemMetrics(SM_CYICON) )
diff --git a/src/msw/glcanvas.cpp b/src/msw/glcanvas.cpp
index 5cbfd68cfb..44ac48b0b9 100644
--- a/src/msw/glcanvas.cpp
+++ b/src/msw/glcanvas.cpp
@@ -104,7 +104,7 @@ void wxGLContext::SetCurrent()
   */
 }
 
-void wxGLContext::SetColour(const char *colour)
+void wxGLContext::SetColour(const wxChar *colour)
 {
   float r = 0.0;
   float g = 0.0;
@@ -522,7 +522,7 @@ void wxGLCanvas::SetCurrent()
   }
 }
 
-void wxGLCanvas::SetColour(const char *colour)
+void wxGLCanvas::SetColour(const wxChar *colour)
 {
   if (m_glContext)
     m_glContext->SetColour(colour);
diff --git a/src/msw/helpbest.cpp b/src/msw/helpbest.cpp
index 0efbdded53..6fb956a0d7 100644
--- a/src/msw/helpbest.cpp
+++ b/src/msw/helpbest.cpp
@@ -76,18 +76,18 @@ wxString wxBestHelpController::GetValidFilename( const wxString& filename ) cons
     switch( m_helpControllerType )
     {
         case wxUseChmHelp:
-            if( ::wxFileExists( tmp + ".chm" ) )
-                return tmp + ".chm";
+            if( ::wxFileExists( tmp + wxT(".chm") ) )
+                return tmp + wxT(".chm");
 
             return filename;
 
         case wxUseHtmlHelp:
-            if( ::wxFileExists( tmp + ".htb" ) )
-                return tmp + ".htb";
-            if( ::wxFileExists( tmp + ".zip" ) )
-                return tmp + ".zip";
-            if( ::wxFileExists( tmp + ".hhp" ) )
-                return tmp + ".hhp";
+            if( ::wxFileExists( tmp + wxT(".htb") ) )
+                return tmp + wxT(".htb");
+            if( ::wxFileExists( tmp + wxT(".zip") ) )
+                return tmp + wxT(".zip");
+            if( ::wxFileExists( tmp + wxT(".hhp") ) )
+                return tmp + wxT(".hhp");
 
             return filename;
 
diff --git a/src/msw/helpchm.cpp b/src/msw/helpchm.cpp
index 20e0bbc27e..2871a9f782 100644
--- a/src/msw/helpchm.cpp
+++ b/src/msw/helpchm.cpp
@@ -42,10 +42,10 @@
 
 #ifndef UNICODE
     typedef HWND ( WINAPI * HTMLHELP )( HWND, LPCSTR, UINT, DWORD );
-    #define HTMLHELP_NAME "HtmlHelpA"
+    #define HTMLHELP_NAME wxT("HtmlHelpA")
 #else // ANSI
     typedef HWND ( WINAPI * HTMLHELP )( HWND, LPCWSTR, UINT, DWORD );
-    #define HTMLHELP_NAME "HtmlHelpW"
+    #define HTMLHELP_NAME wxT("HtmlHelpW")
 #endif
 
 // dll symbol handle
diff --git a/src/msw/joystick.cpp b/src/msw/joystick.cpp
index 1faaa0caf6..1cfed85842 100644
--- a/src/msw/joystick.cpp
+++ b/src/msw/joystick.cpp
@@ -306,7 +306,7 @@ wxString wxJoystick::GetProductName() const
 {
     JOYCAPS joyCaps;
     if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR)
-        return wxString("");
+        return wxEmptyString;
     else
         return wxString(joyCaps.szPname);
 }
diff --git a/src/msw/listbox.cpp b/src/msw/listbox.cpp
index 2eeafd8a78..d74a1e4acb 100644
--- a/src/msw/listbox.cpp
+++ b/src/msw/listbox.cpp
@@ -93,7 +93,7 @@
 class wxListBoxItem : public wxOwnerDrawn
 {
 public:
-    wxListBoxItem(const wxString& str = "");
+    wxListBoxItem(const wxString& str = wxEmptyString);
 };
 
 wxListBoxItem::wxListBoxItem(const wxString& str) : wxOwnerDrawn(str, FALSE)
@@ -102,7 +102,7 @@ wxListBoxItem::wxListBoxItem(const wxString& str) : wxOwnerDrawn(str, FALSE)
     SetMarginWidth(0);
 }
 
-wxOwnerDrawn *wxListBox::CreateItem(size_t WXUNUSED(n))
+wxOwnerDrawn *wxListBox::CreateLboxItem(size_t WXUNUSED(n))
 {
     return new wxListBoxItem();
 }
@@ -272,7 +272,7 @@ void wxListBox::Delete(int N)
     SendMessage(GetHwnd(), LB_DELETESTRING, N, 0);
     m_noItems--;
 
-    SetHorizontalExtent("");
+    SetHorizontalExtent(wxEmptyString);
 }
 
 int wxListBox::DoAppend(const wxString& item)
@@ -282,7 +282,7 @@ int wxListBox::DoAppend(const wxString& item)
 
 #if wxUSE_OWNER_DRAWN
     if ( m_windowStyle & wxLB_OWNERDRAW ) {
-        wxOwnerDrawn *pNewItem = CreateItem(index); // dummy argument
+        wxOwnerDrawn *pNewItem = CreateLboxItem(index); // dummy argument
         pNewItem->SetName(item);
         m_aItems.Insert(pNewItem, index);
         ListBox_SetItemData(GetHwnd(), index, pNewItem);
@@ -313,16 +313,7 @@ void wxListBox::DoSetItems(const wxArrayString& choices, void** clientData)
         ListBox_AddString(GetHwnd(), choices[i]);
         if ( clientData )
         {
-#if wxUSE_OWNER_DRAWN
-            if ( m_windowStyle & wxLB_OWNERDRAW )
-            {
-                wxASSERT_MSG(clientData[i] == NULL,
-                             wxT("Can't use client data with owner-drawn listboxes"));
-            }
-            ListBox_SetItemData(GetHwnd(), i, clientData[i]);
-#else // !wxUSE_OWNER_DRAWN
-            ListBox_SetItemData(GetHwnd(), i, clientData[i]);
-#endif // wxUSE_OWNER_DRAWN/!wxUSE_OWNER_DRAWN
+            SetClientData(i, clientData[i]);
         }
     }
 
@@ -333,7 +324,7 @@ void wxListBox::DoSetItems(const wxArrayString& choices, void** clientData)
 
         // then create new ones
         for ( size_t ui = 0; ui < (size_t)m_noItems; ui++ ) {
-            wxOwnerDrawn *pNewItem = CreateItem(ui);
+            wxOwnerDrawn *pNewItem = CreateLboxItem(ui);
             pNewItem->SetName(choices[ui]);
             m_aItems.Add(pNewItem);
             ListBox_SetItemData(GetHwnd(), ui, pNewItem);
@@ -502,7 +493,7 @@ int wxListBox::GetSelection() const
 // Find string for position
 wxString wxListBox::GetString(int N) const
 {
-    wxCHECK_MSG( N >= 0 && N < m_noItems, "",
+    wxCHECK_MSG( N >= 0 && N < m_noItems, wxEmptyString,
                  wxT("invalid index in wxListBox::GetClientData") );
 
     int len = ListBox_GetTextLen(GetHwnd(), N);
@@ -529,7 +520,7 @@ wxListBox::DoInsertItems(const wxArrayString& items, int pos)
 #if wxUSE_OWNER_DRAWN
         if ( m_windowStyle & wxLB_OWNERDRAW )
         {
-            wxOwnerDrawn *pNewItem = CreateItem(idx);
+            wxOwnerDrawn *pNewItem = CreateLboxItem(idx);
             pNewItem->SetName(items[i]);
             pNewItem->SetFont(GetFont());
             m_aItems.Insert(pNewItem, idx);
diff --git a/src/msw/listctrl.cpp b/src/msw/listctrl.cpp
index 524a9413f4..4b6191aa84 100644
--- a/src/msw/listctrl.cpp
+++ b/src/msw/listctrl.cpp
@@ -104,10 +104,19 @@ public:
 private:
     wxMB2WXbuf *m_buf;
 
-#else
+#else // !wxUSE_UNICODE
     wxLV_ITEM(LV_ITEMW &item)
     {
         m_item = new LV_ITEM((LV_ITEM&)item);
+
+        // the code below doesn't compile without wxUSE_WCHAR_T and as I don't
+        // know if it's useful to have it at all (do we ever get Unicode
+        // notifications in ANSI mode? I don't think so...) I'm not going to
+        // write alternative implementation right now
+        //
+        // but if it is indeed used, we should simply directly use
+        // ::WideCharToMultiByte() here
+#if wxUSE_WCHAR_T
         if ( (item.mask & LVIF_TEXT) && item.pszText )
         {
 #ifdef __WXWINE__
@@ -119,12 +128,13 @@ private:
             m_item->pszText = (wxChar*)m_buf->data();
         }
         else
+#endif // wxUSE_WCHAR_T
             m_buf = NULL;
     }
     wxLV_ITEM(LV_ITEMA &item) : m_buf(NULL), m_item(&item) {}
 private:
     wxWC2WXbuf *m_buf;
-#endif
+#endif // wxUSE_UNICODE/!wxUSE_UNICODE
 
     LV_ITEM *m_item;
 };
@@ -915,7 +925,7 @@ wxString wxListCtrl::GetItemText(long item) const
     info.m_itemId = item;
 
     if (!GetItem(info))
-        return wxString("");
+        return wxEmptyString;
     return info.m_text;
 }
 
@@ -1270,20 +1280,33 @@ wxTextCtrl* wxListCtrl::EditLabel(long item, wxClassInfo* textControlClass)
 
     // ListView_EditLabel requires that the list has focus.
     SetFocus();
+
     WXHWND hWnd = (WXHWND) ListView_EditLabel(GetHwnd(), item);
+    if ( !hWnd )
+    {
+        // failed to start editing
+        return NULL;
+    }
 
-    if (m_textCtrl)
+    // [re]create the text control wrapping the HWND we got
+    if ( m_textCtrl )
     {
         m_textCtrl->SetHWND(0);
         m_textCtrl->UnsubclassWin();
         delete m_textCtrl;
     }
 
-    m_textCtrl = (wxTextCtrl*) textControlClass->CreateObject();
+    m_textCtrl = (wxTextCtrl *)textControlClass->CreateObject();
     m_textCtrl->SetHWND(hWnd);
     m_textCtrl->SubclassWin(hWnd);
     m_textCtrl->SetParent(this);
 
+    // we must disallow TABbing away from the control while the edit contol is
+    // shown because this leaves it in some strange state (just try removing
+    // this line and then pressing TAB while editing an item in  listctrl
+    // inside a panel)
+    m_textCtrl->SetWindowStyle(m_textCtrl->GetWindowStyle() | wxTE_PROCESS_TAB);
+
     return m_textCtrl;
 }
 
@@ -1522,14 +1545,18 @@ long wxListCtrl::InsertColumn(long col,
     return InsertColumn(col, item);
 }
 
-// Scrolls the list control. If in icon, small icon or report view mode,
-// x specifies the number of pixels to scroll. If in list view mode, x
-// specifies the number of columns to scroll.
-// If in icon, small icon or list view mode, y specifies the number of pixels
-// to scroll. If in report view mode, y specifies the number of lines to scroll.
+// scroll the control by the given number of pixels (exception: in list view,
+// dx is interpreted as number of columns)
 bool wxListCtrl::ScrollList(int dx, int dy)
 {
-    return (ListView_Scroll(GetHwnd(), dx, dy) != 0);
+    if ( !ListView_Scroll(GetHwnd(), dx, dy) )
+    {
+        wxLogDebug(_T("ListView_Scroll(%d, %d) failed"), dx, dy);
+
+        return FALSE;
+    }
+
+    return TRUE;
 }
 
 // Sort items.
@@ -1649,6 +1676,11 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
             // work around is to simply catch both versions and hope that it
             // works (why should this message exist in ANSI and Unicode is
             // beyond me as it doesn't deal with strings at all...)
+            //
+            // note that fr HDN_TRACK another possibility could be to use
+            // HDN_ITEMCHANGING but it is sent even after HDN_ENDTRACK and when
+            // something other than the item width changes so we'd have to
+            // filter out the unwanted events then
             case HDN_BEGINTRACKA:
             case HDN_BEGINTRACKW:
                 eventType = wxEVT_COMMAND_LIST_COL_BEGIN_DRAG;
@@ -1664,6 +1696,8 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
             case HDN_ENDTRACKW:
                 if ( eventType == wxEVT_NULL )
                     eventType = wxEVT_COMMAND_LIST_COL_END_DRAG;
+
+                event.m_item.m_width = nmHDR->pitem->cxy;
                 event.m_col = nmHDR->iItem;
                 break;
 
@@ -1708,6 +1742,22 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
                 }
                 break;
 
+            case HDN_GETDISPINFOW:
+                {
+                    LPNMHDDISPINFOW info = (LPNMHDDISPINFOW) lParam;
+                    // This is a fix for a strange bug under XP.
+                    // Normally, info->iItem is a valid index, but
+                    // sometimes this is a silly (large) number
+                    // and when we return FALSE via wxControl::MSWOnNotify
+                    // to indicate that it hasn't yet been processed,
+                    // there's a GPF in Windows.
+                    // By returning TRUE here, we avoid further processing
+                    // of this strange message.
+                    if (info->iItem > GetColumnCount())
+                        return TRUE;
+                }
+                // fall through
+
             default:
                 return wxControl::MSWOnNotify(idCtrl, lParam, result);
         }
@@ -1719,8 +1769,30 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
         // almost all messages use NM_LISTVIEW
         NM_LISTVIEW *nmLV = (NM_LISTVIEW *)nmhdr;
 
-        // this is true for almost all events
-        event.m_item.m_data = nmLV->lParam;
+        const int iItem = nmLV->iItem;
+
+        // set the data event field for all messages for which the system gives
+        // us a valid NM_LISTVIEW::lParam
+        switch ( nmLV->hdr.code )
+        {
+            case LVN_BEGINDRAG:
+            case LVN_BEGINRDRAG:
+            case LVN_COLUMNCLICK:
+            case LVN_ITEMCHANGED:
+            case LVN_ITEMCHANGING:
+                if ( iItem != -1 )
+                {
+                    wxListItemInternalData *internaldata =
+                        (wxListItemInternalData *) nmLV->lParam;
+
+                    if ( internaldata )
+                        event.m_item.m_data = internaldata->lParam;
+                }
+
+            default:
+                // fall through
+                ;
+        }
 
         switch ( nmhdr->code )
         {
@@ -1734,7 +1806,7 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
                     eventType = wxEVT_COMMAND_LIST_BEGIN_DRAG;
                 }
 
-                event.m_itemIndex = nmLV->iItem;
+                event.m_itemIndex = iItem;
                 event.m_pointDrag.x = nmLV->ptAction.x;
                 event.m_pointDrag.y = nmLV->ptAction.y;
                 break;
@@ -1796,9 +1868,9 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
 
             case LVN_DELETEITEM:
                 eventType = wxEVT_COMMAND_LIST_DELETE_ITEM;
-                event.m_itemIndex = nmLV->iItem;
+                event.m_itemIndex = iItem;
                 // delete the assoicated internal data
-                wxDeleteInternalData(this, nmLV->iItem);
+                wxDeleteInternalData(this, iItem);
                 break;
 
             case LVN_SETDISPINFO:
@@ -1811,25 +1883,33 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
 
             case LVN_INSERTITEM:
                 eventType = wxEVT_COMMAND_LIST_INSERT_ITEM;
-                event.m_itemIndex = nmLV->iItem;
+                event.m_itemIndex = iItem;
                 break;
 
             case LVN_ITEMCHANGED:
                 // we translate this catch all message into more interesting
                 // (and more easy to process) wxWindows events
 
-                // first of all, we deal with the state change events only
-                if ( nmLV->uChanged & LVIF_STATE )
+                // first of all, we deal with the state change events only and
+                // only for valid items (item == -1 for the virtual list
+                // control)
+                if ( nmLV->uChanged & LVIF_STATE && iItem != -1 )
                 {
                     // temp vars for readability
                     const UINT stOld = nmLV->uOldState;
                     const UINT stNew = nmLV->uNewState;
 
+                    event.m_item.SetId(iItem);
+                    event.m_item.SetMask(wxLIST_MASK_TEXT |
+                                         wxLIST_MASK_IMAGE |
+                                         wxLIST_MASK_DATA);
+                    GetItem(event.m_item);
+
                     // has the focus changed?
                     if ( !(stOld & LVIS_FOCUSED) && (stNew & LVIS_FOCUSED) )
                     {
                         eventType = wxEVT_COMMAND_LIST_ITEM_FOCUSED;
-                        event.m_itemIndex = nmLV->iItem;
+                        event.m_itemIndex = iItem;
                     }
 
                     if ( (stNew & LVIS_SELECTED) != (stOld & LVIS_SELECTED) )
@@ -1846,7 +1926,7 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
                         {
                             // then need to set m_itemIndex as it wasn't done
                             // above
-                            event.m_itemIndex = nmLV->iItem;
+                            event.m_itemIndex = iItem;
                         }
 
                         eventType = stNew & LVIS_SELECTED
@@ -1914,16 +1994,16 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
 
                 // else translate it into wxEVT_COMMAND_LIST_ITEM_ACTIVATED event
                 // if it happened on an item (and not on empty place)
-                if ( nmLV->iItem == -1 )
+                if ( iItem == -1 )
                 {
                     // not on item
                     return FALSE;
                 }
 
                 eventType = wxEVT_COMMAND_LIST_ITEM_ACTIVATED;
-                event.m_itemIndex = nmLV->iItem;
-                event.m_item.m_text = GetItemText(nmLV->iItem);
-                event.m_item.m_data = GetItemData(nmLV->iItem);
+                event.m_itemIndex = iItem;
+                event.m_item.m_text = GetItemText(iItem);
+                event.m_item.m_data = GetItemData(iItem);
                 break;
 
             case NM_RCLICK:
@@ -2051,6 +2131,17 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
             // logic here is inversed compared to all the other messages
             *result = event.IsAllowed();
 
+            // don't keep a stale wxTextCtrl around
+            if ( m_textCtrl )
+            {
+                // EDIT control will be deleted by the list control itself so
+                // prevent us from deleting it as well
+                m_textCtrl->SetHWND(0);
+                m_textCtrl->UnsubclassWin();
+                delete m_textCtrl;
+                m_textCtrl = NULL;
+            }
+
             return TRUE;
     }
 
diff --git a/src/msw/makebase.b32 b/src/msw/makebase.b32
index a277518f99..5bbba8fbea 100644
--- a/src/msw/makebase.b32
+++ b/src/msw/makebase.b32
@@ -37,8 +37,8 @@ wxUSE_GUI=0
 !include $(WXDIR)\src\makeb32.env
 
 PERIPH_LIBS=
-PERIPH_TARGET=zlib png jpeg tiff regex $(PERIPH_TARGET)
-PERIPH_CLEAN_TARGET=clean_zlib clean_png clean_jpeg clean_tiff clean_regex $(PERIPH_CLEAN_TARGET)
+PERIPH_TARGET=zlib regex $(PERIPH_TARGET)
+PERIPH_CLEAN_TARGET=clean_zlib clean_regex $(PERIPH_CLEAN_TARGET)
 
 !if "$(DLL)" == "0"
 DUMMY=dummy
@@ -58,7 +58,6 @@ MSWDIR=.
 DOCDIR = $(WXDIR)\docs
 
 COMMONOBJS = \
-    $(MSWDIR)\y_tab.obj \
     $(MSWDIR)\appcmn.obj \
 		$(MSWDIR)\clntdata.obj \
 		$(MSWDIR)\cmdline.obj \
@@ -193,19 +192,6 @@ dummydll.obj: dummydll.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\includ
 version.res:
     brc32 -r -i$(WXDIR)\include\ $(MSWDIR)\version.rc
 
-$(MSWDIR)\y_tab.obj:     $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c
-
-#        cl @<<
-# $(CPPFLAGS2) /c $*.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@
-# <<
-
-$(COMMDIR)\y_tab.c:     $(COMMDIR)\dosyacc.c
-        copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c
-
-$(COMMDIR)\lex_yy.c:    $(COMMDIR)\doslex.c
-    copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c
-
-
 $(MSWDIR)\dde.obj: $(MSWDIR)\dde.$(SRCSUFF)
 
 $(MSWDIR)\dir.obj: $(MSWDIR)\dir.$(SRCSUFF)
@@ -472,8 +458,6 @@ clean: $(PERIPH_CLEAN_TARGET)
     -erase *.pch
     -erase *.csm
     -erase "wx32.#??"
-    -erase ..\common\y_tab.c
-    -erase ..\common\lex_yy.c
 
 cleanall: clean
 
diff --git a/src/msw/makefile.b32 b/src/msw/makefile.b32
index f8164b3a3f..c8e4e9116b 100644
--- a/src/msw/makefile.b32
+++ b/src/msw/makefile.b32
@@ -24,6 +24,7 @@
 WXDIR = $(WXWIN)
 THISDIR = $(WXDIR)\src\msw
 
+
 # Set all these to 1 if you want to build a dynamic library
 !if "$(DLL)" == "1"
 WXMAKINGDLL=1
@@ -65,6 +66,8 @@ GENDIR=..\generic
 COMMDIR=..\common
 HTMLDIR=..\html
 OLEDIR=.\ole
+UNIVDIR=..\univ
+UNIVTHEMEDIR=..\univ\themes
 MSWDIR=.
 
 DOCDIR = $(WXDIR)\docs
@@ -101,149 +104,6 @@ GENERICOBJS= $(MSWDIR)\busyinfo.obj \
 		$(MSWDIR)\treelay.obj \
 		$(MSWDIR)\wizard.obj
 
-# Not needed:
-#  $(MSWDIR)\colrdlgg.obj \
-#  $(MSWDIR)\fontdlgg.obj \
-#  $(MSWDIR)\msgdlgg.obj \
-#  $(MSWDIR)\printps.obj \
-#  $(MSWDIR)\prntdlgg.obj \
-#  $(MSWDIR)\listctrl.obj \
-#  $(MSWDIR)\notebook.obj \
-#  $(MSWDIR)\treectrl.obj
-
-COMMONOBJS = \
-        $(MSWDIR)\y_tab.obj \
-        $(MSWDIR)\appcmn.obj \
-		$(MSWDIR)\artprov.obj \
-		$(MSWDIR)\artstd.obj \
-		$(MSWDIR)\choiccmn.obj \
-		$(MSWDIR)\clipcmn.obj \
-		$(MSWDIR)\clntdata.obj \
-		$(MSWDIR)\cmdline.obj \
-		$(MSWDIR)\cmdproc.obj \
-		$(MSWDIR)\cmndata.obj \
-		$(MSWDIR)\config.obj \
-		$(MSWDIR)\containr.obj \
-		$(MSWDIR)\cshelp.obj \
-		$(MSWDIR)\ctrlcmn.obj \
-		$(MSWDIR)\ctrlsub.obj \
-		$(MSWDIR)\datetime.obj \
-		$(MSWDIR)\datstrm.obj \
-		$(MSWDIR)\db.obj \
-		$(MSWDIR)\dbgrid.obj \
-		$(MSWDIR)\dbtable.obj \
-		$(MSWDIR)\dcbase.obj \
-		$(MSWDIR)\dircmn.obj \
-		$(MSWDIR)\dlgcmn.obj \
-		$(MSWDIR)\dndcmn.obj \
-		$(MSWDIR)\dobjcmn.obj \
-		$(MSWDIR)\docmdi.obj \
-		$(MSWDIR)\docview.obj \
-		$(MSWDIR)\dseldlg.obj \
-		$(MSWDIR)\dynarray.obj \
-		$(MSWDIR)\dynlib.obj \
-		$(MSWDIR)\dynload.obj \
-		$(MSWDIR)\effects.obj \
-		$(MSWDIR)\encconv.obj \
-		$(MSWDIR)\event.obj \
-		$(MSWDIR)\extended.obj \
-		$(MSWDIR)\fddlgcmn.obj \
-		$(MSWDIR)\ffile.obj \
-		$(MSWDIR)\file.obj \
-		$(MSWDIR)\fileconf.obj \
-		$(MSWDIR)\filefn.obj \
-		$(MSWDIR)\filename.obj \
-		$(MSWDIR)\filesys.obj \
-		$(MSWDIR)\fontcmn.obj \
-		$(MSWDIR)\fontmap.obj \
-		$(MSWDIR)\framecmn.obj \
-		$(MSWDIR)\fs_inet.obj \
-		$(MSWDIR)\fs_mem.obj \
-		$(MSWDIR)\fs_zip.obj \
-		$(MSWDIR)\ftp.obj \
-		$(MSWDIR)\gaugecmn.obj \
-		$(MSWDIR)\gdicmn.obj \
-		$(MSWDIR)\geometry.obj \
-		$(MSWDIR)\gifdecod.obj \
-		$(MSWDIR)\hash.obj \
-		$(MSWDIR)\hashmap.obj \
-		$(MSWDIR)\helpbase.obj \
-		$(MSWDIR)\http.obj \
-		$(MSWDIR)\iconbndl.obj \
-		$(MSWDIR)\imagall.obj \
-		$(MSWDIR)\imagbmp.obj \
-		$(MSWDIR)\image.obj \
-		$(MSWDIR)\imagfill.obj \
-		$(MSWDIR)\imaggif.obj \
-		$(MSWDIR)\imagiff.obj \
-		$(MSWDIR)\imagjpeg.obj \
-		$(MSWDIR)\imagpcx.obj \
-		$(MSWDIR)\imagpng.obj \
-		$(MSWDIR)\imagpnm.obj \
-		$(MSWDIR)\imagtiff.obj \
-		$(MSWDIR)\imagxpm.obj \
-		$(MSWDIR)\intl.obj \
-		$(MSWDIR)\ipcbase.obj \
-		$(MSWDIR)\layout.obj \
-		$(MSWDIR)\lboxcmn.obj \
-		$(MSWDIR)\list.obj \
-		$(MSWDIR)\log.obj \
-		$(MSWDIR)\longlong.obj \
-		$(MSWDIR)\matrix.obj \
-		$(MSWDIR)\memory.obj \
-		$(MSWDIR)\menucmn.obj \
-		$(MSWDIR)\mimecmn.obj \
-		$(MSWDIR)\module.obj \
-		$(MSWDIR)\msgout.obj \
-		$(MSWDIR)\mstream.obj \
-		$(MSWDIR)\nbkbase.obj \
-		$(MSWDIR)\object.obj \
-		$(MSWDIR)\odbc.obj \
-		$(MSWDIR)\paper.obj \
-		$(MSWDIR)\popupcmn.obj \
-		$(MSWDIR)\prntbase.obj \
-		$(MSWDIR)\process.obj \
-		$(MSWDIR)\protocol.obj \
-		$(MSWDIR)\quantize.obj \
-		$(MSWDIR)\radiocmn.obj \
-		$(MSWDIR)\regex.obj \
-		$(MSWDIR)\resource.obj \
-		$(MSWDIR)\sckaddr.obj \
-		$(MSWDIR)\sckfile.obj \
-		$(MSWDIR)\sckipc.obj \
-		$(MSWDIR)\sckstrm.obj \
-		$(MSWDIR)\settcmn.obj \
-		$(MSWDIR)\sizer.obj \
-		$(MSWDIR)\socket.obj \
-		$(MSWDIR)\statbar.obj \
-		$(MSWDIR)\strconv.obj \
-		$(MSWDIR)\stream.obj \
-		$(MSWDIR)\string.obj \
-		$(MSWDIR)\sysopt.obj \
-		$(MSWDIR)\tbarbase.obj \
-		$(MSWDIR)\textbuf.obj \
-		$(MSWDIR)\textcmn.obj \
-		$(MSWDIR)\textfile.obj \
-		$(MSWDIR)\timercmn.obj \
-		$(MSWDIR)\tokenzr.obj \
-		$(MSWDIR)\toplvcmn.obj \
-		$(MSWDIR)\treebase.obj \
-		$(MSWDIR)\txtstrm.obj \
-		$(MSWDIR)\unzip.obj \
-		$(MSWDIR)\url.obj \
-		$(MSWDIR)\utilscmn.obj \
-		$(MSWDIR)\valgen.obj \
-		$(MSWDIR)\validate.obj \
-		$(MSWDIR)\valtext.obj \
-		$(MSWDIR)\variant.obj \
-		$(MSWDIR)\wfstream.obj \
-		$(MSWDIR)\wincmn.obj \
-		$(MSWDIR)\wxchar.obj \
-		$(MSWDIR)\wxexpr.obj \
-		$(MSWDIR)\xpmdecod.obj \
-		$(MSWDIR)\zipstrm.obj \
-		$(MSWDIR)\zstream.obj
-
 MSWOBJS = $(MSWDIR)\accel.obj \
 		$(MSWDIR)\app.obj \
 		$(MSWDIR)\automtn.obj \
@@ -355,6 +215,134 @@ MSWOBJS = $(MSWDIR)\accel.obj \
 		$(MSWDIR)\wave.obj \
 		$(MSWDIR)\window.obj
 
+GENERICUNIVOBJS= $(MSWDIR)\accel.obj \
+		$(MSWDIR)\busyinfo.obj \
+		$(MSWDIR)\calctrl.obj \
+		$(MSWDIR)\choicdgg.obj \
+		$(MSWDIR)\colrdlgg.obj \
+		$(MSWDIR)\dcbuffer.obj \
+		$(MSWDIR)\dcpsg.obj \
+		$(MSWDIR)\dirctrlg.obj \
+		$(MSWDIR)\dirdlgg.obj \
+		$(MSWDIR)\dragimgg.obj \
+		$(MSWDIR)\fdrepdlg.obj \
+		$(MSWDIR)\filedlgg.obj \
+		$(MSWDIR)\fontdlgg.obj \
+		$(MSWDIR)\grid.obj \
+		$(MSWDIR)\gridctrl.obj \
+		$(MSWDIR)\gridsel.obj \
+		$(MSWDIR)\helpext.obj \
+		$(MSWDIR)\helphtml.obj \
+		$(MSWDIR)\imaglist.obj \
+		$(MSWDIR)\laywin.obj \
+		$(MSWDIR)\listctrl.obj \
+		$(MSWDIR)\logg.obj \
+		$(MSWDIR)\mdig.obj \
+		$(MSWDIR)\msgdlgg.obj \
+		$(MSWDIR)\numdlgg.obj \
+		$(MSWDIR)\panelg.obj \
+		$(MSWDIR)\printps.obj \
+		$(MSWDIR)\prntdlgg.obj \
+		$(MSWDIR)\progdlgg.obj \
+		$(MSWDIR)\prop.obj \
+		$(MSWDIR)\propform.obj \
+		$(MSWDIR)\proplist.obj \
+		$(MSWDIR)\sashwin.obj \
+		$(MSWDIR)\scrlwing.obj \
+		$(MSWDIR)\spinctlg.obj \
+		$(MSWDIR)\splash.obj \
+		$(MSWDIR)\splitter.obj \
+		$(MSWDIR)\tabg.obj \
+		$(MSWDIR)\tbarsmpl.obj \
+		$(MSWDIR)\textdlgg.obj \
+		$(MSWDIR)\tipdlg.obj \
+		$(MSWDIR)\tipwin.obj \
+		$(MSWDIR)\treectlg.obj \
+		$(MSWDIR)\treelay.obj \
+		$(MSWDIR)\wizard.obj
+
+MSWUNIVOBJS = $(MSWDIR)\app.obj \
+		$(MSWDIR)\bitmap.obj \
+		$(MSWDIR)\brush.obj \
+		$(MSWDIR)\caret.obj \
+		$(MSWDIR)\clipbrd.obj \
+		$(MSWDIR)\colour.obj \
+		$(MSWDIR)\cursor.obj \
+		$(MSWDIR)\data.obj \
+		$(MSWDIR)\dc.obj \
+		$(MSWDIR)\dcclient.obj \
+		$(MSWDIR)\dcmemory.obj \
+		$(MSWDIR)\dcprint.obj \
+		$(MSWDIR)\dcscreen.obj \
+		$(MSWDIR)\dde.obj \
+		$(MSWDIR)\dib.obj \
+		$(MSWDIR)\dir.obj \
+		$(MSWDIR)\evtloop.obj \
+		$(MSWDIR)\font.obj \
+		$(MSWDIR)\fontenum.obj \
+		$(MSWDIR)\fontutil.obj \
+		$(MSWDIR)\gdiimage.obj \
+		$(MSWDIR)\gdiobj.obj \
+		$(MSWDIR)\gsocket.obj \
+		$(MSWDIR)\gsockmsw.obj \
+		$(MSWDIR)\icon.obj \
+		$(MSWDIR)\main.obj \
+		$(MSWDIR)\mimetype.obj \
+		$(MSWDIR)\palette.obj \
+		$(MSWDIR)\pen.obj \
+		$(MSWDIR)\popupwin.obj \
+		$(MSWDIR)\regconf.obj \
+		$(MSWDIR)\region.obj \
+		$(MSWDIR)\registry.obj \
+		$(MSWDIR)\settings.obj \
+		$(MSWDIR)\snglinst.obj \
+		$(MSWDIR)\thread.obj \
+		$(MSWDIR)\timer.obj \
+		$(MSWDIR)\toplevel.obj \
+		$(MSWDIR)\utils.obj \
+		$(MSWDIR)\utilsexc.obj \
+		$(MSWDIR)\volume.obj \
+		$(MSWDIR)\window.obj
+
+UNIVOBJS = $(MSWDIR)\bmpbuttn.obj \
+		$(MSWDIR)\button.obj \
+		$(MSWDIR)\checkbox.obj \
+		$(MSWDIR)\checklst.obj \
+		$(MSWDIR)\choice.obj \
+		$(MSWDIR)\colschem.obj \
+		$(MSWDIR)\combobox.obj \
+		$(MSWDIR)\control.obj \
+		$(MSWDIR)\dialog.obj \
+		$(MSWDIR)\framuniv.obj \
+		$(MSWDIR)\gauge.obj \
+		$(MSWDIR)\inpcons.obj \
+		$(MSWDIR)\inphand.obj \
+		$(MSWDIR)\listbox.obj \
+		$(MSWDIR)\menu.obj \
+		$(MSWDIR)\notebook.obj \
+		$(MSWDIR)\radiobox.obj \
+		$(MSWDIR)\radiobut.obj \
+		$(MSWDIR)\renderer.obj \
+		$(MSWDIR)\scrarrow.obj \
+		$(MSWDIR)\scrolbar.obj \
+		$(MSWDIR)\scrthumb.obj \
+		$(MSWDIR)\slider.obj \
+		$(MSWDIR)\spinbutt.obj \
+		$(MSWDIR)\statbmp.obj \
+		$(MSWDIR)\statbox.obj \
+		$(MSWDIR)\statline.obj \
+		$(MSWDIR)\stattext.obj \
+		$(MSWDIR)\statusbr.obj \
+		$(MSWDIR)\textctrl.obj \
+		$(MSWDIR)\theme.obj \
+		$(MSWDIR)\toolbar.obj \
+		$(MSWDIR)\topluniv.obj \
+		$(MSWDIR)\winuniv.obj
+
+UNIVTHEMEOBJS = $(MSWDIR)\gtk.obj \
+		$(MSWDIR)\metal.obj \
+		$(MSWDIR)\win32.obj
+
 HTMLOBJS = $(MSWDIR)\helpctrl.obj \
 		$(MSWDIR)\helpdata.obj \
 		$(MSWDIR)\helpfrm.obj \
@@ -371,13 +359,149 @@ HTMLOBJS = $(MSWDIR)\helpctrl.obj \
 		$(MSWDIR)\m_layout.obj \
 		$(MSWDIR)\m_links.obj \
 		$(MSWDIR)\m_list.obj \
-		$(MSWDIR)\m_meta.obj \
 		$(MSWDIR)\m_pre.obj \
 		$(MSWDIR)\m_style.obj \
 		$(MSWDIR)\m_tables.obj \
 		$(MSWDIR)\winpars.obj
 
+COMMONOBJS = \
+        $(MSWDIR)\y_tab.obj \
+        $(MSWDIR)\appcmn.obj \
+		$(MSWDIR)\artprov.obj \
+		$(MSWDIR)\artstd.obj \
+		$(MSWDIR)\choiccmn.obj \
+		$(MSWDIR)\clipcmn.obj \
+		$(MSWDIR)\clntdata.obj \
+		$(MSWDIR)\cmdline.obj \
+		$(MSWDIR)\cmdproc.obj \
+		$(MSWDIR)\cmndata.obj \
+		$(MSWDIR)\config.obj \
+		$(MSWDIR)\containr.obj \
+		$(MSWDIR)\cshelp.obj \
+		$(MSWDIR)\ctrlcmn.obj \
+		$(MSWDIR)\ctrlsub.obj \
+		$(MSWDIR)\datetime.obj \
+		$(MSWDIR)\datstrm.obj \
+		$(MSWDIR)\db.obj \
+		$(MSWDIR)\dbgrid.obj \
+		$(MSWDIR)\dbtable.obj \
+		$(MSWDIR)\dcbase.obj \
+		$(MSWDIR)\dircmn.obj \
+		$(MSWDIR)\dlgcmn.obj \
+		$(MSWDIR)\dndcmn.obj \
+		$(MSWDIR)\dobjcmn.obj \
+		$(MSWDIR)\docmdi.obj \
+		$(MSWDIR)\docview.obj \
+		$(MSWDIR)\dseldlg.obj \
+		$(MSWDIR)\dynarray.obj \
+		$(MSWDIR)\dynlib.obj \
+		$(MSWDIR)\dynload.obj \
+		$(MSWDIR)\effects.obj \
+		$(MSWDIR)\encconv.obj \
+		$(MSWDIR)\event.obj \
+		$(MSWDIR)\extended.obj \
+		$(MSWDIR)\fddlgcmn.obj \
+		$(MSWDIR)\ffile.obj \
+		$(MSWDIR)\file.obj \
+		$(MSWDIR)\fileconf.obj \
+		$(MSWDIR)\filefn.obj \
+		$(MSWDIR)\filename.obj \
+		$(MSWDIR)\filesys.obj \
+		$(MSWDIR)\fontcmn.obj \
+		$(MSWDIR)\fontmap.obj \
+		$(MSWDIR)\framecmn.obj \
+		$(MSWDIR)\fs_inet.obj \
+		$(MSWDIR)\fs_mem.obj \
+		$(MSWDIR)\fs_zip.obj \
+		$(MSWDIR)\ftp.obj \
+		$(MSWDIR)\gaugecmn.obj \
+		$(MSWDIR)\gdicmn.obj \
+		$(MSWDIR)\geometry.obj \
+		$(MSWDIR)\gifdecod.obj \
+		$(MSWDIR)\hash.obj \
+		$(MSWDIR)\hashmap.obj \
+		$(MSWDIR)\helpbase.obj \
+		$(MSWDIR)\http.obj \
+		$(MSWDIR)\iconbndl.obj \
+		$(MSWDIR)\imagall.obj \
+		$(MSWDIR)\imagbmp.obj \
+		$(MSWDIR)\image.obj \
+		$(MSWDIR)\imagfill.obj \
+		$(MSWDIR)\imaggif.obj \
+		$(MSWDIR)\imagiff.obj \
+		$(MSWDIR)\imagjpeg.obj \
+		$(MSWDIR)\imagpcx.obj \
+		$(MSWDIR)\imagpng.obj \
+		$(MSWDIR)\imagpnm.obj \
+		$(MSWDIR)\imagtiff.obj \
+		$(MSWDIR)\imagxpm.obj \
+		$(MSWDIR)\intl.obj \
+		$(MSWDIR)\ipcbase.obj \
+		$(MSWDIR)\layout.obj \
+		$(MSWDIR)\lboxcmn.obj \
+		$(MSWDIR)\list.obj \
+		$(MSWDIR)\log.obj \
+		$(MSWDIR)\longlong.obj \
+		$(MSWDIR)\matrix.obj \
+		$(MSWDIR)\memory.obj \
+		$(MSWDIR)\menucmn.obj \
+		$(MSWDIR)\mimecmn.obj \
+		$(MSWDIR)\module.obj \
+		$(MSWDIR)\msgout.obj \
+		$(MSWDIR)\mstream.obj \
+		$(MSWDIR)\nbkbase.obj \
+		$(MSWDIR)\object.obj \
+		$(MSWDIR)\odbc.obj \
+		$(MSWDIR)\paper.obj \
+		$(MSWDIR)\popupcmn.obj \
+		$(MSWDIR)\prntbase.obj \
+		$(MSWDIR)\process.obj \
+		$(MSWDIR)\protocol.obj \
+		$(MSWDIR)\quantize.obj \
+		$(MSWDIR)\radiocmn.obj \
+		$(MSWDIR)\regex.obj \
+		$(MSWDIR)\resource.obj \
+		$(MSWDIR)\sckaddr.obj \
+		$(MSWDIR)\sckfile.obj \
+		$(MSWDIR)\sckipc.obj \
+		$(MSWDIR)\sckstrm.obj \
+		$(MSWDIR)\settcmn.obj \
+		$(MSWDIR)\sizer.obj \
+		$(MSWDIR)\socket.obj \
+		$(MSWDIR)\statbar.obj \
+		$(MSWDIR)\strconv.obj \
+		$(MSWDIR)\stream.obj \
+		$(MSWDIR)\string.obj \
+		$(MSWDIR)\sysopt.obj \
+		$(MSWDIR)\tbarbase.obj \
+		$(MSWDIR)\textbuf.obj \
+		$(MSWDIR)\textcmn.obj \
+		$(MSWDIR)\textfile.obj \
+		$(MSWDIR)\timercmn.obj \
+		$(MSWDIR)\tokenzr.obj \
+		$(MSWDIR)\toplvcmn.obj \
+		$(MSWDIR)\treebase.obj \
+		$(MSWDIR)\txtstrm.obj \
+		$(MSWDIR)\unzip.obj \
+		$(MSWDIR)\url.obj \
+		$(MSWDIR)\utilscmn.obj \
+		$(MSWDIR)\valgen.obj \
+		$(MSWDIR)\validate.obj \
+		$(MSWDIR)\valtext.obj \
+		$(MSWDIR)\variant.obj \
+		$(MSWDIR)\wfstream.obj \
+		$(MSWDIR)\wincmn.obj \
+		$(MSWDIR)\wxchar.obj \
+		$(MSWDIR)\wxexpr.obj \
+		$(MSWDIR)\xpmdecod.obj \
+		$(MSWDIR)\zipstrm.obj \
+		$(MSWDIR)\zstream.obj
+
+!if "$(WXUSINGUNIV)" == "1"
+OBJECTS = $(COMMONOBJS) $(GENERICUNIVOBJS) $(MSWUNIVOBJS) $(HTMLOBJS) $(UNIVOBJS) $(UNIVTHEMEOBJS)
+!else
 OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) $(HTMLOBJS)
+!endif
 
 default:    wx
 
@@ -393,7 +517,7 @@ makesetuph:
 
 # Copy include\wx\msw\setup.h to the architecture-specific location
 makearchsetuph:
-     copy $(WXDIR)\include\wx\msw\setup.h $(ARCHSETUPH)
+     copy $(SETUPSRCDIR)\setup.h $(ARCHSETUPH)
      cd $(WXDIR)\src\msw
 
 $(ARCHINCDIR)\wx:
@@ -444,6 +568,101 @@ $(COMMDIR)\lex_yy.c:    $(COMMDIR)\doslex.c
 
 # $(OBJECTS):   $(WXDIR)\include\wx\setup.h
 
+!if "$(WXUSINGUNIV)" == "1"
+########################################################
+# MSW objects (compile Native or UNIV) - UNIV
+
+$(MSWDIR)\app.obj: $(MSWDIR)\app.$(SRCSUFF)
+
+$(MSWDIR)\bitmap.obj: $(MSWDIR)\bitmap.$(SRCSUFF)
+
+$(MSWDIR)\brush.obj: $(MSWDIR)\brush.$(SRCSUFF)
+
+$(MSWDIR)\caret.obj: $(MSWDIR)\caret.$(SRCSUFF)
+
+$(MSWDIR)\clipbrd.obj: $(MSWDIR)\clipbrd.$(SRCSUFF)
+
+$(MSWDIR)\colour.obj: $(MSWDIR)\colour.$(SRCSUFF)
+
+$(MSWDIR)\cursor.obj: $(MSWDIR)\cursor.$(SRCSUFF)
+
+$(MSWDIR)\data.obj: $(MSWDIR)\data.$(SRCSUFF)
+
+$(MSWDIR)\dc.obj: $(MSWDIR)\dc.$(SRCSUFF)
+
+$(MSWDIR)\dcclient.obj: $(MSWDIR)\dcclient.$(SRCSUFF)
+
+$(MSWDIR)\dcmemory.obj: $(MSWDIR)\dcmemory.$(SRCSUFF)
+
+$(MSWDIR)\dcprint.obj: $(MSWDIR)\dcprint.$(SRCSUFF)
+
+$(MSWDIR)\dcscreen.obj: $(MSWDIR)\dcscreen.$(SRCSUFF)
+
+$(MSWDIR)\dde.obj: $(MSWDIR)\dde.$(SRCSUFF)
+
+$(MSWDIR)\dib.obj: $(MSWDIR)\dib.$(SRCSUFF)
+
+$(MSWDIR)\dir.obj: $(MSWDIR)\dir.$(SRCSUFF)
+
+$(MSWDIR)\evtloop.obj: $(MSWDIR)\evtloop.$(SRCSUFF)
+
+$(MSWDIR)\font.obj: $(MSWDIR)\font.$(SRCSUFF)
+
+$(MSWDIR)\fontenum.obj: $(MSWDIR)\fontenum.$(SRCSUFF)
+
+$(MSWDIR)\fontutil.obj: $(MSWDIR)\fontutil.$(SRCSUFF)
+
+$(MSWDIR)\gdiimage.obj: $(MSWDIR)\gdiimage.$(SRCSUFF)
+
+$(MSWDIR)\gdiobj.obj: $(MSWDIR)\gdiobj.$(SRCSUFF)
+
+$(MSWDIR)\gsocket.obj: $(MSWDIR)\gsocket.c
+
+$(MSWDIR)\gsockmsw.obj: $(MSWDIR)\gsockmsw.c
+
+$(MSWDIR)\icon.obj: $(MSWDIR)\icon.$(SRCSUFF)
+
+$(MSWDIR)\main.obj: $(MSWDIR)\main.$(SRCSUFF)
+
+$(MSWDIR)\mimetype.obj: $(MSWDIR)\mimetype.$(SRCSUFF)
+
+$(MSWDIR)\palette.obj: $(MSWDIR)\palette.$(SRCSUFF)
+
+$(MSWDIR)\pen.obj: $(MSWDIR)\pen.$(SRCSUFF)
+
+$(MSWDIR)\popupwin.obj: $(MSWDIR)\popupwin.$(SRCSUFF)
+
+$(MSWDIR)\regconf.obj: $(MSWDIR)\regconf.$(SRCSUFF)
+
+$(MSWDIR)\region.obj: $(MSWDIR)\region.$(SRCSUFF)
+
+$(MSWDIR)\registry.obj: $(MSWDIR)\registry.$(SRCSUFF)
+
+$(MSWDIR)\settings.obj: $(MSWDIR)\settings.$(SRCSUFF)
+
+$(MSWDIR)\snglinst.obj: $(MSWDIR)\snglinst.$(SRCSUFF)
+
+$(MSWDIR)\thread.obj: $(MSWDIR)\thread.$(SRCSUFF)
+
+$(MSWDIR)\timer.obj: $(MSWDIR)\timer.$(SRCSUFF)
+
+$(MSWDIR)\toplevel.obj: $(MSWDIR)\toplevel.$(SRCSUFF)
+
+$(MSWDIR)\utils.obj: $(MSWDIR)\utils.$(SRCSUFF)
+
+$(MSWDIR)\utilsexc.obj: $(MSWDIR)\utilsexc.$(SRCSUFF)
+
+$(MSWDIR)\volume.obj: $(MSWDIR)\volume.$(SRCSUFF)
+
+$(MSWDIR)\window.obj: $(MSWDIR)\window.$(SRCSUFF)
+
+
+
+
+!else
+########################################################
+# MSW objects (compile Native or UNIV) - Native
+
 $(MSWDIR)\accel.obj: $(MSWDIR)\accel.$(SRCSUFF)
 
 $(MSWDIR)\app.obj: $(MSWDIR)\app.$(SRCSUFF)
@@ -665,6 +884,94 @@ $(MSWDIR)\wave.obj: $(MSWDIR)\wave.$(SRCSUFF)
 $(MSWDIR)\window.obj: $(MSWDIR)\window.$(SRCSUFF)
 
 
+!endif
+
+!if "$(WXUSINGUNIV)" == "1"
+########################################################
+# UNIV objects 
+$(MSWDIR)\bmpbuttn.obj: $(UNIVDIR)\bmpbuttn.$(SRCSUFF)
+
+$(MSWDIR)\button.obj: $(UNIVDIR)\button.$(SRCSUFF)
+
+$(MSWDIR)\checkbox.obj: $(UNIVDIR)\checkbox.$(SRCSUFF)
+
+$(MSWDIR)\checklst.obj: $(UNIVDIR)\checklst.$(SRCSUFF)
+
+$(MSWDIR)\choice.obj: $(UNIVDIR)\choice.$(SRCSUFF)
+
+$(MSWDIR)\colschem.obj: $(UNIVDIR)\colschem.$(SRCSUFF)
+
+$(MSWDIR)\combobox.obj: $(UNIVDIR)\combobox.$(SRCSUFF)
+
+$(MSWDIR)\control.obj: $(UNIVDIR)\control.$(SRCSUFF)
+
+$(MSWDIR)\dialog.obj: $(UNIVDIR)\dialog.$(SRCSUFF)
+
+$(MSWDIR)\framuniv.obj: $(UNIVDIR)\framuniv.$(SRCSUFF)
+
+$(MSWDIR)\gauge.obj: $(UNIVDIR)\gauge.$(SRCSUFF)
+
+$(MSWDIR)\inpcons.obj: $(UNIVDIR)\inpcons.$(SRCSUFF)
+
+$(MSWDIR)\inphand.obj: $(UNIVDIR)\inphand.$(SRCSUFF)
+
+$(MSWDIR)\listbox.obj: $(UNIVDIR)\listbox.$(SRCSUFF)
+
+$(MSWDIR)\menu.obj: $(UNIVDIR)\menu.$(SRCSUFF)
+
+$(MSWDIR)\notebook.obj: $(UNIVDIR)\notebook.$(SRCSUFF)
+
+$(MSWDIR)\radiobox.obj: $(UNIVDIR)\radiobox.$(SRCSUFF)
+
+$(MSWDIR)\radiobut.obj: $(UNIVDIR)\radiobut.$(SRCSUFF)
+
+$(MSWDIR)\renderer.obj: $(UNIVDIR)\renderer.$(SRCSUFF)
+
+$(MSWDIR)\scrarrow.obj: $(UNIVDIR)\scrarrow.$(SRCSUFF)
+
+$(MSWDIR)\scrolbar.obj: $(UNIVDIR)\scrolbar.$(SRCSUFF)
+
+$(MSWDIR)\scrthumb.obj: $(UNIVDIR)\scrthumb.$(SRCSUFF)
+
+$(MSWDIR)\slider.obj: $(UNIVDIR)\slider.$(SRCSUFF)
+
+$(MSWDIR)\spinbutt.obj: $(UNIVDIR)\spinbutt.$(SRCSUFF)
+
+$(MSWDIR)\statbmp.obj: $(UNIVDIR)\statbmp.$(SRCSUFF)
+
+$(MSWDIR)\statbox.obj: $(UNIVDIR)\statbox.$(SRCSUFF)
+
+$(MSWDIR)\statline.obj: $(UNIVDIR)\statline.$(SRCSUFF)
+
+$(MSWDIR)\stattext.obj: $(UNIVDIR)\stattext.$(SRCSUFF)
+
+$(MSWDIR)\statusbr.obj: $(UNIVDIR)\statusbr.$(SRCSUFF)
+
+$(MSWDIR)\textctrl.obj: $(UNIVDIR)\textctrl.$(SRCSUFF)
+
+$(MSWDIR)\theme.obj: $(UNIVDIR)\theme.$(SRCSUFF)
+
+$(MSWDIR)\toolbar.obj: $(UNIVDIR)\toolbar.$(SRCSUFF)
+
+$(MSWDIR)\topluniv.obj: $(UNIVDIR)\topluniv.$(SRCSUFF)
+
+$(MSWDIR)\winuniv.obj: $(UNIVDIR)\winuniv.$(SRCSUFF)
+
+
+
+
+########################################################
+# UNIV THEME objects 
+
+$(MSWDIR)\gtk.obj: $(UNIVTHEMEDIR)\gtk.$(SRCSUFF)
+
+$(MSWDIR)\metal.obj: $(UNIVTHEMEDIR)\metal.$(SRCSUFF)
+
+$(MSWDIR)\win32.obj: $(UNIVTHEMEDIR)\win32.$(SRCSUFF)
+
+
+
+!endif
 
 ########################################################
 # Common objects (always compiled)
@@ -931,9 +1238,110 @@ $(MSWDIR)\zstream.obj: $(COMMDIR)\zstream.$(SRCSUFF)
 
 
 
+!if "$(WXUSINGUNIV)" == "1"
+########################################################
+# Generic objects (not always compiled, depending on
+# whether platforms have native implementations)
+# Native
+
+
+$(MSWDIR)\accel.obj: $(GENDIR)\accel.$(SRCSUFF)
+
+$(MSWDIR)\busyinfo.obj: $(GENDIR)\busyinfo.$(SRCSUFF)
+
+$(MSWDIR)\calctrl.obj: $(GENDIR)\calctrl.$(SRCSUFF)
+
+$(MSWDIR)\choicdgg.obj: $(GENDIR)\choicdgg.$(SRCSUFF)
+
+$(MSWDIR)\colrdlgg.obj: $(GENDIR)\colrdlgg.$(SRCSUFF)
+
+$(MSWDIR)\dcbuffer.obj: $(GENDIR)\dcbuffer.$(SRCSUFF)
+
+$(MSWDIR)\dcpsg.obj: $(GENDIR)\dcpsg.$(SRCSUFF)
+
+$(MSWDIR)\dirctrlg.obj: $(GENDIR)\dirctrlg.$(SRCSUFF)
+
+$(MSWDIR)\dirdlgg.obj: $(GENDIR)\dirdlgg.$(SRCSUFF)
+
+$(MSWDIR)\dragimgg.obj: $(GENDIR)\dragimgg.$(SRCSUFF)
+
+$(MSWDIR)\fdrepdlg.obj: $(GENDIR)\fdrepdlg.$(SRCSUFF)
+
+$(MSWDIR)\filedlgg.obj: $(GENDIR)\filedlgg.$(SRCSUFF)
+
+$(MSWDIR)\fontdlgg.obj: $(GENDIR)\fontdlgg.$(SRCSUFF)
+
+$(MSWDIR)\grid.obj: $(GENDIR)\grid.$(SRCSUFF)
+
+$(MSWDIR)\gridctrl.obj: $(GENDIR)\gridctrl.$(SRCSUFF)
+
+$(MSWDIR)\gridsel.obj: $(GENDIR)\gridsel.$(SRCSUFF)
+
+$(MSWDIR)\helpext.obj: $(GENDIR)\helpext.$(SRCSUFF)
+
+$(MSWDIR)\helphtml.obj: $(GENDIR)\helphtml.$(SRCSUFF)
+
+$(MSWDIR)\imaglist.obj: $(GENDIR)\imaglist.$(SRCSUFF)
+
+$(MSWDIR)\laywin.obj: $(GENDIR)\laywin.$(SRCSUFF)
+
+$(MSWDIR)\listctrl.obj: $(GENDIR)\listctrl.$(SRCSUFF)
+
+$(MSWDIR)\logg.obj: $(GENDIR)\logg.$(SRCSUFF)
+
+$(MSWDIR)\mdig.obj: $(GENDIR)\mdig.$(SRCSUFF)
+
+$(MSWDIR)\msgdlgg.obj: $(GENDIR)\msgdlgg.$(SRCSUFF)
+
+$(MSWDIR)\numdlgg.obj: $(GENDIR)\numdlgg.$(SRCSUFF)
+
+$(MSWDIR)\panelg.obj: $(GENDIR)\panelg.$(SRCSUFF)
+
+$(MSWDIR)\printps.obj: $(GENDIR)\printps.$(SRCSUFF)
+
+$(MSWDIR)\prntdlgg.obj: $(GENDIR)\prntdlgg.$(SRCSUFF)
+
+$(MSWDIR)\progdlgg.obj: $(GENDIR)\progdlgg.$(SRCSUFF)
+
+$(MSWDIR)\prop.obj: $(GENDIR)\prop.$(SRCSUFF)
+
+$(MSWDIR)\propform.obj: $(GENDIR)\propform.$(SRCSUFF)
+
+$(MSWDIR)\proplist.obj: $(GENDIR)\proplist.$(SRCSUFF)
+
+$(MSWDIR)\sashwin.obj: $(GENDIR)\sashwin.$(SRCSUFF)
+
+$(MSWDIR)\scrlwing.obj: $(GENDIR)\scrlwing.$(SRCSUFF)
+
+$(MSWDIR)\spinctlg.obj: $(GENDIR)\spinctlg.$(SRCSUFF)
+
+$(MSWDIR)\splash.obj: $(GENDIR)\splash.$(SRCSUFF)
+
+$(MSWDIR)\splitter.obj: $(GENDIR)\splitter.$(SRCSUFF)
+
+$(MSWDIR)\tabg.obj: $(GENDIR)\tabg.$(SRCSUFF)
+
+$(MSWDIR)\tbarsmpl.obj: $(GENDIR)\tbarsmpl.$(SRCSUFF)
+
+$(MSWDIR)\textdlgg.obj: $(GENDIR)\textdlgg.$(SRCSUFF)
+
+$(MSWDIR)\tipdlg.obj: $(GENDIR)\tipdlg.$(SRCSUFF)
+
+$(MSWDIR)\tipwin.obj: $(GENDIR)\tipwin.$(SRCSUFF)
+
+$(MSWDIR)\treectlg.obj: $(GENDIR)\treectlg.$(SRCSUFF)
+
+$(MSWDIR)\treelay.obj: $(GENDIR)\treelay.$(SRCSUFF)
+
+$(MSWDIR)\wizard.obj: $(GENDIR)\wizard.$(SRCSUFF)
+
+
+
+!else
 ########################################################
 # Generic objects (not always compiled, depending on
 # whether platforms have native implementations)
+# Native
 
 $(MSWDIR)\busyinfo.obj: $(GENDIR)\busyinfo.$(SRCSUFF)
 
@@ -998,6 +1406,7 @@ $(MSWDIR)\treelay.obj: $(GENDIR)\treelay.$(SRCSUFF)
 $(MSWDIR)\wizard.obj: $(GENDIR)\wizard.$(SRCSUFF)
 
 
+!endif
 
 ########################################################
 # HTML objects (always compiled)
@@ -1034,8 +1443,6 @@ $(MSWDIR)\m_links.obj: $(HTMLDIR)\m_links.$(SRCSUFF)
 
 $(MSWDIR)\m_list.obj: $(HTMLDIR)\m_list.$(SRCSUFF)
 
-$(MSWDIR)\m_meta.obj: $(HTMLDIR)\m_meta.$(SRCSUFF)
-
 $(MSWDIR)\m_pre.obj: $(HTMLDIR)\m_pre.$(SRCSUFF)
 
 $(MSWDIR)\m_style.obj: $(HTMLDIR)\m_style.$(SRCSUFF)
@@ -1064,7 +1471,7 @@ all_execs:
 
 png:    $(CFG)
         cd $(WXDIR)\src\png
-        ${MAKE} -f makefile.b32
+        ${MAKE} -f makefile.b32 FINAL=$(FINAL)
         cd $(WXDIR)\src\msw
 
 clean_png:
@@ -1074,7 +1481,7 @@ clean_png:
 
 zlib:   $(CFG)
         cd $(WXDIR)\src\zlib
-        ${MAKE} -f makefile.b32 lib
+        ${MAKE} -f makefile.b32 FINAL=$(FINAL) lib
         cd $(WXDIR)\src\msw
 
 clean_zlib:
@@ -1084,7 +1491,7 @@ clean_zlib:
 
 jpeg:    $(CFG)
         cd $(WXDIR)\src\jpeg
-        ${MAKE} -f makefile.b32
+        ${MAKE} -f makefile.b32 FINAL=$(FINAL)
         cd $(WXDIR)\src\msw
 
 clean_jpeg:
@@ -1094,7 +1501,7 @@ clean_jpeg:
 
 regex:   $(CFG)
         cd $(WXDIR)\src\regex
-        ${MAKE} -f makefile.b32 lib
+        ${MAKE} -f makefile.b32 FINAL=$(FINAL) lib
         cd $(WXDIR)\src\msw
 
 clean_regex:
@@ -1104,7 +1511,7 @@ clean_regex:
 
 tiff:   $(CFG)
         cd $(WXDIR)\src\tiff
-        ${MAKE} -f makefile.b32 lib
+        ${MAKE} -f makefile.b32 FINAL=$(FINAL) lib
         cd $(WXDIR)\src\msw
 
 clean_tiff:
@@ -1131,7 +1538,7 @@ $(CFG): makefile.b32
 
 -L$(BCCDIR)\lib;$(BCCDIR)\lib\psdk
 -D__WXWIN__
--D__WXMSW__
+-D$(PORT)
 -D__WINDOWS__
 -DWIN32
 $(OPT)
diff --git a/src/msw/makefile.g95 b/src/msw/makefile.g95
index 1043e14499..381a3c760f 100644
--- a/src/msw/makefile.g95
+++ b/src/msw/makefile.g95
@@ -266,7 +266,6 @@ HTMLOBJS = \
 		$(HTMLDIR)/m_layout.$(OBJSUFF) \
 		$(HTMLDIR)/m_links.$(OBJSUFF) \
 		$(HTMLDIR)/m_list.$(OBJSUFF) \
-		$(HTMLDIR)/m_meta.$(OBJSUFF) \
 		$(HTMLDIR)/m_pre.$(OBJSUFF) \
 		$(HTMLDIR)/m_style.$(OBJSUFF) \
 		$(HTMLDIR)/m_tables.$(OBJSUFF) \
@@ -546,9 +545,12 @@ $(ARCHINCDIR)/wx:
 	mkdir $(subst $(PATH_SUBST),$(PATH_SEPARATOR),$(ARCHINCDIR))
 	mkdir $(subst $(PATH_SUBST),$(PATH_SEPARATOR),$(ARCHINCDIR)/wx)
 
+# Copy ALWAYS uses forward slashes now.
+
 $(SETUP_H): $(ARCHINCDIR)/wx
-	$(COPY) $(WXDIR)/include/wx/msw/setup.h $@
+	$(COPY) $(WXDIR)/include/wx/msw/setup.h $(subst $(BACKSLASH),/,$@)
 
+#	$(COPY) $(WXDIR)/include/wx/msw/setup.h $@
 #	$(COPY) $(subst $(PATH_SUBST),$(PATH_SEPARATOR),$(WXDIR)/include/wx/msw/setup.h) $(subst $(PATH_SUBST),$(PATH_SEPARATOR),$@)
 
 ifndef WXMAKINGDLL
diff --git a/src/msw/makefile.vc b/src/msw/makefile.vc
index dfca461644..b7aa85acca 100644
--- a/src/msw/makefile.vc
+++ b/src/msw/makefile.vc
@@ -394,7 +394,6 @@ HTMLOBJS = $(HTMLDIR)\$D\helpctrl.obj \
 		$(HTMLDIR)\$D\m_layout.obj \
 		$(HTMLDIR)\$D\m_links.obj \
 		$(HTMLDIR)\$D\m_list.obj \
-		$(HTMLDIR)\$D\m_meta.obj \
 		$(HTMLDIR)\$D\m_pre.obj \
 		$(HTMLDIR)\$D\m_style.obj \
 		$(HTMLDIR)\$D\m_tables.obj \
@@ -830,19 +829,26 @@ $(DOCDIR)/pdf/wx.rtf:         $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/
         -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/wx/manual.tex $(DOCDIR)/pdf/wx.rtf -twice -rtf
         cd $(THISDIR)
 
+# This target does two sets of HTML: one using a style sheet, for
+# the purposes of the CHM file, and one without.
 $(DOCDIR)\html\wx\wx.htm:         $(DOCDIR)\latex\wx\classes.tex $(DOCDIR)\latex\wx\body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)\latex\wx\manual.tex
         cd $(DOCDIR)\latex\wx
         -mkdir $(DOCDIR)\html\wx
         copy *.gif $(DOCDIR)\html\wx
         -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\wx\manual.tex $(DOCDIR)\html\wx\wx.htm -twice -html
+        -mkdir $(DOCDIR)\mshtml
+        -mkdir $(DOCDIR)\mshtml\wx
+        copy *.gif $(DOCDIR)\mshtml\wx
+        -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\wx\manual.tex $(DOCDIR)\mshtml\wx\wx.htm -twice -html -macros $(DOCDIR)\latex\wx\tex2rtf_css.ini
         -erase $(DOCDIR)\html\wx\*.con
         -erase $(DOCDIR)\html\wx\*.ref
         -erase $(DOCDIR)\latex\wx\*.con
         -erase $(DOCDIR)\latex\wx\*.ref
          cd $(THISDIR)
 
-$(DOCDIR)\htmlhelp\wx.chm : $(DOCDIR)\html\wx\wx.htm $(DOCDIR)\html\wx\wx.hhp
-	cd $(DOCDIR)\html\wx
+$(DOCDIR)\htmlhelp\wx.chm : $(DOCDIR)\html\wx\wx.htm $(DOCDIR)\mshtml\wx\wx.htm $(DOCDIR)\mshtml\wx\wx.hhp
+	cd $(DOCDIR)\mshtml\wx
+    copy $(DOCDIR)\latex\wx\wx.css .
 	-hhc wx.hhp
     -mkdir ..\..\htmlhelp
     -erase $(DOCDIR)\htmlhelp\wx.chm
diff --git a/src/msw/makefile.wat b/src/msw/makefile.wat
index d3ccc4b0e0..c752958bfe 100644
--- a/src/msw/makefile.wat
+++ b/src/msw/makefile.wat
@@ -359,7 +359,6 @@ HTMLOBJS = helpctrl.obj &
 	m_layout.obj &
 	m_links.obj &
 	m_list.obj &
-	m_meta.obj &
 	m_pre.obj &
 	m_style.obj &
 	m_tables.obj &
@@ -1298,9 +1297,6 @@ m_links.obj:     $(HTMLDIR)\m_links.cpp
 m_list.obj:     $(HTMLDIR)\m_list.cpp
   *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
 
-m_meta.obj:     $(HTMLDIR)\m_meta.cpp
-  *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
-
 m_pre.obj:     $(HTMLDIR)\m_pre.cpp
   *$(CCC) $(CPPFLAGS) $(IFLAGS) $<
 
diff --git a/src/msw/makeuniv.b32 b/src/msw/makeuniv.b32
deleted file mode 100644
index 5fb75864a3..0000000000
--- a/src/msw/makeuniv.b32
+++ /dev/null
@@ -1,1397 +0,0 @@
-
-
-# This file was automatically generated by tmake 
-# DO NOT CHANGE THIS FILE, YOUR CHANGES WILL BE LOST! CHANGE B32.T!
-
-#
-# File:     makefile.b32
-# Author:   Julian Smart
-# Created:  1998
-# Updated:
-# Copyright:
-#
-# "%W% %G%"
-#
-# Makefile : Builds wxWindows library wx.lib for MS Windows,
-# and Borland C++ (32-bit).
-
-# BCCDIR now defined in ../makeb32.env
-
-!if "$(WXWIN)" == ""
-!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx
-!endif
-
-WXDIR = $(WXWIN)
-THISDIR = $(WXDIR)\src\msw
-
-# Set all these to 1 if you want to build a dynamic library
-!if "$(DLL)" == "1"
-WXMAKINGDLL=1
-WXBUILDDLL=1
-!endif
-
-!include $(WXDIR)\src\makeb32.env
-
-# Please set these according to the settings in wx_setup.h, so we can include
-# the appropriate libraries in wx.lib
-USE_CTL3D=0
-
-PERIPH_LIBS=
-PERIPH_TARGET=
-PERIPH_CLEAN_TARGET=
-
-!if "$(USE_CTL3D)" == "1"
-#Use WIN32S/WIN95 32 bit version ctl3d32.dll under win95 (Andre Beltman)
-PERIPH_LIBS=$(WXDIR)\lib\ctl3d32.lib $(PERIPH_LIBS)
-PERIPH_TARGET=ctl3d $(PERIPH_TARGET)
-PERIPH_CLEAN_TARGET=clean_ctl3d $(PERIPH_CLEAN_TARGET)
-!endif
-
-#PERIPH_LIBS=$(WXDIR)\lib\zlib.lib $(WXDIR)\lib\winpng.lib $(WXDIR)\lib\jpeg.lib $(WXDIR)\lib\tiff.lib $(PERIPH_LIBS)
-PERIPH_LIBS=
-PERIPH_TARGET=zlib png jpeg tiff regex $(PERIPH_TARGET)
-PERIPH_CLEAN_TARGET=clean_zlib clean_png clean_jpeg clean_tiff clean_regex $(PERIPH_CLEAN_TARGET)
-
-!if "$(DLL)" == "0"
-DUMMY=dummy
-!else
-DUMMY=dummydll
-LIBS= cw32mti import32 ole2w32 odbc32 zlib winpng jpeg tiff regex
-!endif
-
-LIBTARGET=$(WXLIB)
-
-GENDIR=..\generic
-COMMDIR=..\common
-HTMLDIR=..\html
-OLEDIR=.\ole
-UNIVDIR=..\univ
-UNIVTHEMEDIR=..\univ\themes
-MSWDIR=.
-
-DOCDIR = $(WXDIR)\docs
-
-GENERICOBJS= $(MSWDIR)\accel.obj \
-		$(MSWDIR)\busyinfo.obj \
-		$(MSWDIR)\calctrl.obj \
-		$(MSWDIR)\choicdgg.obj \
-		$(MSWDIR)\colrdlgg.obj \
-		$(MSWDIR)\dcbuffer.obj \
-		$(MSWDIR)\dcpsg.obj \
-		$(MSWDIR)\dirctrlg.obj \
-		$(MSWDIR)\dirdlgg.obj \
-		$(MSWDIR)\dragimgg.obj \
-		$(MSWDIR)\fdrepdlg.obj \
-		$(MSWDIR)\filedlgg.obj \
-		$(MSWDIR)\fontdlgg.obj \
-		$(MSWDIR)\grid.obj \
-		$(MSWDIR)\gridctrl.obj \
-		$(MSWDIR)\gridsel.obj \
-		$(MSWDIR)\helpext.obj \
-		$(MSWDIR)\helphtml.obj \
-		$(MSWDIR)\laywin.obj \
-		$(MSWDIR)\listctrl.obj \
-		$(MSWDIR)\logg.obj \
-		$(MSWDIR)\mdig.obj \
-		$(MSWDIR)\msgdlgg.obj \
-		$(MSWDIR)\numdlgg.obj \
-		$(MSWDIR)\panelg.obj \
-		$(MSWDIR)\printps.obj \
-		$(MSWDIR)\prntdlgg.obj \
-		$(MSWDIR)\progdlgg.obj \
-		$(MSWDIR)\prop.obj \
-		$(MSWDIR)\propform.obj \
-		$(MSWDIR)\proplist.obj \
-		$(MSWDIR)\sashwin.obj \
-		$(MSWDIR)\scrlwing.obj \
-		$(MSWDIR)\spinctlg.obj \
-		$(MSWDIR)\splash.obj \
-		$(MSWDIR)\splitter.obj \
-		$(MSWDIR)\tabg.obj \
-		$(MSWDIR)\tbarsmpl.obj \
-		$(MSWDIR)\textdlgg.obj \
-		$(MSWDIR)\tipdlg.obj \
-		$(MSWDIR)\tipwin.obj \
-		$(MSWDIR)\treectlg.obj \
-		$(MSWDIR)\treelay.obj \
-		$(MSWDIR)\wizard.obj
-
-# Not needed:
-#  $(MSWDIR)\colrdlgg.obj \
-#  $(MSWDIR)\fontdlgg.obj \
-#  $(MSWDIR)\msgdlgg.obj \
-#  $(MSWDIR)\printps.obj \
-#  $(MSWDIR)\prntdlgg.obj \
-#  $(MSWDIR)\listctrl.obj \
-#  $(MSWDIR)\notebook.obj \
-#  $(MSWDIR)\treectrl.obj
-
-COMMONOBJS = \
-		$(MSWDIR)\y_tab.obj \
-		$(MSWDIR)\appcmn.obj \
-		$(MSWDIR)\artprov.obj \
-		$(MSWDIR)\artstd.obj \
-		$(MSWDIR)\choiccmn.obj \
-		$(MSWDIR)\clipcmn.obj \
-		$(MSWDIR)\clntdata.obj \
-		$(MSWDIR)\cmdline.obj \
-		$(MSWDIR)\cmdproc.obj \
-		$(MSWDIR)\cmndata.obj \
-		$(MSWDIR)\config.obj \
-		$(MSWDIR)\containr.obj \
-		$(MSWDIR)\cshelp.obj \
-		$(MSWDIR)\ctrlcmn.obj \
-		$(MSWDIR)\ctrlsub.obj \
-		$(MSWDIR)\datetime.obj \
-		$(MSWDIR)\datstrm.obj \
-		$(MSWDIR)\db.obj \
-		$(MSWDIR)\dbgrid.obj \
-		$(MSWDIR)\dbtable.obj \
-		$(MSWDIR)\dcbase.obj \
-		$(MSWDIR)\dircmn.obj \
-		$(MSWDIR)\dlgcmn.obj \
-		$(MSWDIR)\dndcmn.obj \
-		$(MSWDIR)\dobjcmn.obj \
-		$(MSWDIR)\docmdi.obj \
-		$(MSWDIR)\docview.obj \
-		$(MSWDIR)\dseldlg.obj \
-		$(MSWDIR)\dynarray.obj \
-		$(MSWDIR)\dynlib.obj \
-		$(MSWDIR)\dynload.obj \
-		$(MSWDIR)\effects.obj \
-		$(MSWDIR)\encconv.obj \
-		$(MSWDIR)\event.obj \
-		$(MSWDIR)\extended.obj \
-		$(MSWDIR)\fddlgcmn.obj \
-		$(MSWDIR)\ffile.obj \
-		$(MSWDIR)\file.obj \
-		$(MSWDIR)\fileconf.obj \
-		$(MSWDIR)\filefn.obj \
-		$(MSWDIR)\filename.obj \
-		$(MSWDIR)\filesys.obj \
-		$(MSWDIR)\fontcmn.obj \
-		$(MSWDIR)\fontmap.obj \
-		$(MSWDIR)\framecmn.obj \
-		$(MSWDIR)\fs_inet.obj \
-		$(MSWDIR)\fs_mem.obj \
-		$(MSWDIR)\fs_zip.obj \
-		$(MSWDIR)\ftp.obj \
-		$(MSWDIR)\gaugecmn.obj \
-		$(MSWDIR)\gdicmn.obj \
-		$(MSWDIR)\geometry.obj \
-		$(MSWDIR)\gifdecod.obj \
-		$(MSWDIR)\hash.obj \
-		$(MSWDIR)\hashmap.obj \
-		$(MSWDIR)\helpbase.obj \
-		$(MSWDIR)\http.obj \
-		$(MSWDIR)\iconbndl.obj \
-		$(MSWDIR)\imagall.obj \
-		$(MSWDIR)\imagbmp.obj \
-		$(MSWDIR)\image.obj \
-		$(MSWDIR)\imagfill.obj \
-		$(MSWDIR)\imaggif.obj \
-		$(MSWDIR)\imagiff.obj \
-		$(MSWDIR)\imagjpeg.obj \
-		$(MSWDIR)\imagpcx.obj \
-		$(MSWDIR)\imagpng.obj \
-		$(MSWDIR)\imagpnm.obj \
-		$(MSWDIR)\imagtiff.obj \
-		$(MSWDIR)\imagxpm.obj \
-		$(MSWDIR)\intl.obj \
-		$(MSWDIR)\ipcbase.obj \
-		$(MSWDIR)\layout.obj \
-		$(MSWDIR)\lboxcmn.obj \
-		$(MSWDIR)\list.obj \
-		$(MSWDIR)\log.obj \
-		$(MSWDIR)\longlong.obj \
-		$(MSWDIR)\matrix.obj \
-		$(MSWDIR)\memory.obj \
-		$(MSWDIR)\menucmn.obj \
-		$(MSWDIR)\mimecmn.obj \
-		$(MSWDIR)\module.obj \
-		$(MSWDIR)\msgout.obj \
-		$(MSWDIR)\mstream.obj \
-		$(MSWDIR)\nbkbase.obj \
-		$(MSWDIR)\object.obj \
-		$(MSWDIR)\odbc.obj \
-		$(MSWDIR)\paper.obj \
-		$(MSWDIR)\popupcmn.obj \
-		$(MSWDIR)\prntbase.obj \
-		$(MSWDIR)\process.obj \
-		$(MSWDIR)\protocol.obj \
-		$(MSWDIR)\quantize.obj \
-		$(MSWDIR)\radiocmn.obj \
-		$(MSWDIR)\regex.obj \
-		$(MSWDIR)\resource.obj \
-		$(MSWDIR)\sckaddr.obj \
-		$(MSWDIR)\sckfile.obj \
-		$(MSWDIR)\sckipc.obj \
-		$(MSWDIR)\sckstrm.obj \
-		$(MSWDIR)\settcmn.obj \
-		$(MSWDIR)\sizer.obj \
-		$(MSWDIR)\socket.obj \
-		$(MSWDIR)\statbar.obj \
-		$(MSWDIR)\strconv.obj \
-		$(MSWDIR)\stream.obj \
-		$(MSWDIR)\string.obj \
-		$(MSWDIR)\sysopt.obj \
-		$(MSWDIR)\tbarbase.obj \
-		$(MSWDIR)\textbuf.obj \
-		$(MSWDIR)\textcmn.obj \
-		$(MSWDIR)\textfile.obj \
-		$(MSWDIR)\timercmn.obj \
-		$(MSWDIR)\tokenzr.obj \
-		$(MSWDIR)\toplvcmn.obj \
-		$(MSWDIR)\treebase.obj \
-		$(MSWDIR)\txtstrm.obj \
-		$(MSWDIR)\unzip.obj \
-		$(MSWDIR)\url.obj \
-		$(MSWDIR)\utilscmn.obj \
-		$(MSWDIR)\valgen.obj \
-		$(MSWDIR)\validate.obj \
-		$(MSWDIR)\valtext.obj \
-		$(MSWDIR)\variant.obj \
-		$(MSWDIR)\wfstream.obj \
-		$(MSWDIR)\wincmn.obj \
-		$(MSWDIR)\wxchar.obj \
-		$(MSWDIR)\wxexpr.obj \
-		$(MSWDIR)\xpmdecod.obj \
-		$(MSWDIR)\zipstrm.obj \
-		$(MSWDIR)\zstream.obj
-
-MSWOBJS = $(MSWDIR)\app.obj \
-		$(MSWDIR)\bitmap.obj \
-		$(MSWDIR)\brush.obj \
-		$(MSWDIR)\caret.obj \
-		$(MSWDIR)\clipbrd.obj \
-		$(MSWDIR)\colour.obj \
-		$(MSWDIR)\cursor.obj \
-		$(MSWDIR)\data.obj \
-		$(MSWDIR)\dc.obj \
-		$(MSWDIR)\dcclient.obj \
-		$(MSWDIR)\dcmemory.obj \
-		$(MSWDIR)\dcprint.obj \
-		$(MSWDIR)\dcscreen.obj \
-		$(MSWDIR)\dde.obj \
-		$(MSWDIR)\dib.obj \
-		$(MSWDIR)\dir.obj \
-		$(MSWDIR)\evtloop.obj \
-		$(MSWDIR)\font.obj \
-		$(MSWDIR)\fontenum.obj \
-		$(MSWDIR)\fontutil.obj \
-		$(MSWDIR)\gdiimage.obj \
-		$(MSWDIR)\gdiobj.obj \
-		$(MSWDIR)\gsocket.obj \
-		$(MSWDIR)\gsockmsw.obj \
-		$(MSWDIR)\icon.obj \
-		$(MSWDIR)\imaglist.obj \
-		$(MSWDIR)\main.obj \
-		$(MSWDIR)\mimetype.obj \
-		$(MSWDIR)\palette.obj \
-		$(MSWDIR)\pen.obj \
-		$(MSWDIR)\popupwin.obj \
-		$(MSWDIR)\regconf.obj \
-		$(MSWDIR)\region.obj \
-		$(MSWDIR)\registry.obj \
-		$(MSWDIR)\settings.obj \
-		$(MSWDIR)\snglinst.obj \
-		$(MSWDIR)\thread.obj \
-		$(MSWDIR)\timer.obj \
-		$(MSWDIR)\toplevel.obj \
-		$(MSWDIR)\utils.obj \
-		$(MSWDIR)\utilsexc.obj \
-		$(MSWDIR)\volume.obj \
-		$(MSWDIR)\window.obj
-
-HTMLOBJS = $(MSWDIR)\helpctrl.obj \
-		$(MSWDIR)\helpdata.obj \
-		$(MSWDIR)\helpfrm.obj \
-		$(MSWDIR)\htmlcell.obj \
-		$(MSWDIR)\htmlfilt.obj \
-		$(MSWDIR)\htmlpars.obj \
-		$(MSWDIR)\htmltag.obj \
-		$(MSWDIR)\htmlwin.obj \
-		$(MSWDIR)\htmprint.obj \
-		$(MSWDIR)\m_dflist.obj \
-		$(MSWDIR)\m_fonts.obj \
-		$(MSWDIR)\m_hline.obj \
-		$(MSWDIR)\m_image.obj \
-		$(MSWDIR)\m_layout.obj \
-		$(MSWDIR)\m_links.obj \
-		$(MSWDIR)\m_list.obj \
-		$(MSWDIR)\m_meta.obj \
-		$(MSWDIR)\m_pre.obj \
-		$(MSWDIR)\m_style.obj \
-		$(MSWDIR)\m_tables.obj \
-		$(MSWDIR)\winpars.obj
-
-UNIVOBJS = $(MSWDIR)\bmpbuttn.obj \
-		$(MSWDIR)\button.obj \
-		$(MSWDIR)\checkbox.obj \
-		$(MSWDIR)\checklst.obj \
-		$(MSWDIR)\choice.obj \
-		$(MSWDIR)\colschem.obj \
-		$(MSWDIR)\combobox.obj \
-		$(MSWDIR)\control.obj \
-		$(MSWDIR)\dialog.obj \
-		$(MSWDIR)\framuniv.obj \
-		$(MSWDIR)\gauge.obj \
-		$(MSWDIR)\inpcons.obj \
-		$(MSWDIR)\inphand.obj \
-		$(MSWDIR)\listbox.obj \
-		$(MSWDIR)\menu.obj \
-		$(MSWDIR)\notebook.obj \
-		$(MSWDIR)\radiobox.obj \
-		$(MSWDIR)\radiobut.obj \
-		$(MSWDIR)\renderer.obj \
-		$(MSWDIR)\scrarrow.obj \
-		$(MSWDIR)\scrolbar.obj \
-		$(MSWDIR)\scrthumb.obj \
-		$(MSWDIR)\slider.obj \
-		$(MSWDIR)\spinbutt.obj \
-		$(MSWDIR)\statbmp.obj \
-		$(MSWDIR)\statbox.obj \
-		$(MSWDIR)\statline.obj \
-		$(MSWDIR)\stattext.obj \
-		$(MSWDIR)\statusbr.obj \
-		$(MSWDIR)\textctrl.obj \
-		$(MSWDIR)\theme.obj \
-		$(MSWDIR)\toolbar.obj \
-		$(MSWDIR)\topluniv.obj \
-		$(MSWDIR)\winuniv.obj
-
-UNIVTHEMEOBJS = $(MSWDIR)\gtk.obj \
-		$(MSWDIR)\metal.obj \
-		$(MSWDIR)\win32.obj
-
-OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) $(HTMLOBJS) $(UNIVOBJS) $(UNIVTHEMEOBJS)
-
-default:	wx
-
-wx:    $(ARCHINCDIR)\wx makesetuph makearchsetuph $(CFG) $(DUMMY).obj $(OBJECTS) $(PERIPH_TARGET) $(LIBTARGET)
-
-all:	wx
-
-# Copy the in-CVS setup0.h to setup.h if necessary
-makesetuph:
-     cd $(WXDIR)\include\wx\msw
-     if not exist setup.h copy setup0.h setup.h
-     cd $(WXDIR)\src\msw
-
-# Copy include\wx\univ\setup.h to the architecture-specific location
-makearchsetuph:
-     copy $(WXDIR)\include\wx\univ\setup.h $(ARCHSETUPH)
-     cd $(WXDIR)\src\msw
-
-$(ARCHINCDIR)\wx:
-    -mkdir $(ARCHINCDIR)
-    -mkdir $(ARCHINCDIR)\wx
-
-!if "$(DLL)" == "0"
-
-$(LIBTARGET): $(DUMMY).obj $(OBJECTS)
-        -erase $(LIBTARGET)
-	tlib "$(LIBTARGET)" /P1024 @&&!
-+$(OBJECTS:.obj =.obj +) +$(PERIPH_LIBS:.lib =.lib +)
-!
-
-!else
-
-$(LIBTARGET): $(DUMMY).obj $(OBJECTS)
-	-erase $(LIBTARGET)
-	-erase $(WXLIBDIR)\wx.dll
-        $(LINK) $(LINK_FLAGS) /L$(WXLIBDIR);$(BCCDIR)\lib;$(BCCDIR)\lib\psdk /v @&&!
-c0d32.obj $(OBJECTS)
-$(WXLIBDIR)\wx
-nul
-$(PERIPH_LIBS) $(LIBS)
-wxb32
-!
-	-erase $(WXLIBDIR)\version.res
-        brc32 -r -i$(WXDIR)\include\ $(MSWDIR)\version.rc
-        implib -c $(LIBTARGET) $(WXLIBDIR)\wx.dll
-
-!endif
-
-dummy.obj: dummy.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h
-dummydll.obj: dummydll.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h version.res
-
-$(MSWDIR)\y_tab.obj:     $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c
-
-#        cl @<<
-# $(CPPFLAGS2) /c $*.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@
-# <<
-
-$(COMMDIR)\y_tab.c:     $(COMMDIR)\dosyacc.c
-        copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c
-
-$(COMMDIR)\lex_yy.c:    $(COMMDIR)\doslex.c
-    copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c
-
-# $(OBJECTS):	$(WXDIR)\include\wx\setup.h
-
-$(MSWDIR)\app.obj: $(MSWDIR)\app.$(SRCSUFF)
-
-$(MSWDIR)\bitmap.obj: $(MSWDIR)\bitmap.$(SRCSUFF)
-
-$(MSWDIR)\brush.obj: $(MSWDIR)\brush.$(SRCSUFF)
-
-$(MSWDIR)\caret.obj: $(MSWDIR)\caret.$(SRCSUFF)
-
-$(MSWDIR)\clipbrd.obj: $(MSWDIR)\clipbrd.$(SRCSUFF)
-
-$(MSWDIR)\colour.obj: $(MSWDIR)\colour.$(SRCSUFF)
-
-$(MSWDIR)\cursor.obj: $(MSWDIR)\cursor.$(SRCSUFF)
-
-$(MSWDIR)\data.obj: $(MSWDIR)\data.$(SRCSUFF)
-
-$(MSWDIR)\dc.obj: $(MSWDIR)\dc.$(SRCSUFF)
-
-$(MSWDIR)\dcclient.obj: $(MSWDIR)\dcclient.$(SRCSUFF)
-
-$(MSWDIR)\dcmemory.obj: $(MSWDIR)\dcmemory.$(SRCSUFF)
-
-$(MSWDIR)\dcprint.obj: $(MSWDIR)\dcprint.$(SRCSUFF)
-
-$(MSWDIR)\dcscreen.obj: $(MSWDIR)\dcscreen.$(SRCSUFF)
-
-$(MSWDIR)\dde.obj: $(MSWDIR)\dde.$(SRCSUFF)
-
-$(MSWDIR)\dib.obj: $(MSWDIR)\dib.$(SRCSUFF)
-
-$(MSWDIR)\dir.obj: $(MSWDIR)\dir.$(SRCSUFF)
-
-$(MSWDIR)\evtloop.obj: $(MSWDIR)\evtloop.$(SRCSUFF)
-
-$(MSWDIR)\font.obj: $(MSWDIR)\font.$(SRCSUFF)
-
-$(MSWDIR)\fontenum.obj: $(MSWDIR)\fontenum.$(SRCSUFF)
-
-$(MSWDIR)\fontutil.obj: $(MSWDIR)\fontutil.$(SRCSUFF)
-
-$(MSWDIR)\gdiimage.obj: $(MSWDIR)\gdiimage.$(SRCSUFF)
-
-$(MSWDIR)\gdiobj.obj: $(MSWDIR)\gdiobj.$(SRCSUFF)
-
-$(MSWDIR)\gsocket.obj: $(MSWDIR)\gsocket.c
-
-$(MSWDIR)\gsockmsw.obj: $(MSWDIR)\gsockmsw.c
-
-$(MSWDIR)\icon.obj: $(MSWDIR)\icon.$(SRCSUFF)
-
-$(MSWDIR)\imaglist.obj: $(MSWDIR)\imaglist.$(SRCSUFF)
-
-$(MSWDIR)\main.obj: $(MSWDIR)\main.$(SRCSUFF)
-
-$(MSWDIR)\mimetype.obj: $(MSWDIR)\mimetype.$(SRCSUFF)
-
-$(MSWDIR)\palette.obj: $(MSWDIR)\palette.$(SRCSUFF)
-
-$(MSWDIR)\pen.obj: $(MSWDIR)\pen.$(SRCSUFF)
-
-$(MSWDIR)\popupwin.obj: $(MSWDIR)\popupwin.$(SRCSUFF)
-
-$(MSWDIR)\regconf.obj: $(MSWDIR)\regconf.$(SRCSUFF)
-
-$(MSWDIR)\region.obj: $(MSWDIR)\region.$(SRCSUFF)
-
-$(MSWDIR)\registry.obj: $(MSWDIR)\registry.$(SRCSUFF)
-
-$(MSWDIR)\settings.obj: $(MSWDIR)\settings.$(SRCSUFF)
-
-$(MSWDIR)\snglinst.obj: $(MSWDIR)\snglinst.$(SRCSUFF)
-
-$(MSWDIR)\thread.obj: $(MSWDIR)\thread.$(SRCSUFF)
-
-$(MSWDIR)\timer.obj: $(MSWDIR)\timer.$(SRCSUFF)
-
-$(MSWDIR)\toplevel.obj: $(MSWDIR)\toplevel.$(SRCSUFF)
-
-$(MSWDIR)\utils.obj: $(MSWDIR)\utils.$(SRCSUFF)
-
-$(MSWDIR)\utilsexc.obj: $(MSWDIR)\utilsexc.$(SRCSUFF)
-
-$(MSWDIR)\volume.obj: $(MSWDIR)\volume.$(SRCSUFF)
-
-$(MSWDIR)\window.obj: $(MSWDIR)\window.$(SRCSUFF)
-
-
-
-########################################################
-# Common objects (always compiled)
-
-$(MSWDIR)\appcmn.obj: $(COMMDIR)\appcmn.$(SRCSUFF)
-
-$(MSWDIR)\artprov.obj: $(COMMDIR)\artprov.$(SRCSUFF)
-
-$(MSWDIR)\artstd.obj: $(COMMDIR)\artstd.$(SRCSUFF)
-
-$(MSWDIR)\choiccmn.obj: $(COMMDIR)\choiccmn.$(SRCSUFF)
-
-$(MSWDIR)\clipcmn.obj: $(COMMDIR)\clipcmn.$(SRCSUFF)
-
-$(MSWDIR)\clntdata.obj: $(COMMDIR)\clntdata.$(SRCSUFF)
-
-$(MSWDIR)\cmdline.obj: $(COMMDIR)\cmdline.$(SRCSUFF)
-
-$(MSWDIR)\cmdproc.obj: $(COMMDIR)\cmdproc.$(SRCSUFF)
-
-$(MSWDIR)\cmndata.obj: $(COMMDIR)\cmndata.$(SRCSUFF)
-
-$(MSWDIR)\config.obj: $(COMMDIR)\config.$(SRCSUFF)
-
-$(MSWDIR)\containr.obj: $(COMMDIR)\containr.$(SRCSUFF)
-
-$(MSWDIR)\cshelp.obj: $(COMMDIR)\cshelp.$(SRCSUFF)
-
-$(MSWDIR)\ctrlcmn.obj: $(COMMDIR)\ctrlcmn.$(SRCSUFF)
-
-$(MSWDIR)\ctrlsub.obj: $(COMMDIR)\ctrlsub.$(SRCSUFF)
-
-$(MSWDIR)\datetime.obj: $(COMMDIR)\datetime.$(SRCSUFF)
-
-$(MSWDIR)\datstrm.obj: $(COMMDIR)\datstrm.$(SRCSUFF)
-
-$(MSWDIR)\db.obj: $(COMMDIR)\db.$(SRCSUFF)
-
-$(MSWDIR)\dbgrid.obj: $(COMMDIR)\dbgrid.$(SRCSUFF)
-
-$(MSWDIR)\dbtable.obj: $(COMMDIR)\dbtable.$(SRCSUFF)
-
-$(MSWDIR)\dcbase.obj: $(COMMDIR)\dcbase.$(SRCSUFF)
-
-$(MSWDIR)\dircmn.obj: $(COMMDIR)\dircmn.$(SRCSUFF)
-
-$(MSWDIR)\dlgcmn.obj: $(COMMDIR)\dlgcmn.$(SRCSUFF)
-
-$(MSWDIR)\dndcmn.obj: $(COMMDIR)\dndcmn.$(SRCSUFF)
-
-$(MSWDIR)\dobjcmn.obj: $(COMMDIR)\dobjcmn.$(SRCSUFF)
-
-$(MSWDIR)\docmdi.obj: $(COMMDIR)\docmdi.$(SRCSUFF)
-
-$(MSWDIR)\docview.obj: $(COMMDIR)\docview.$(SRCSUFF)
-
-$(MSWDIR)\dseldlg.obj: $(COMMDIR)\dseldlg.$(SRCSUFF)
-
-$(MSWDIR)\dynarray.obj: $(COMMDIR)\dynarray.$(SRCSUFF)
-
-$(MSWDIR)\dynlib.obj: $(COMMDIR)\dynlib.$(SRCSUFF)
-
-$(MSWDIR)\dynload.obj: $(COMMDIR)\dynload.$(SRCSUFF)
-
-$(MSWDIR)\effects.obj: $(COMMDIR)\effects.$(SRCSUFF)
-
-$(MSWDIR)\encconv.obj: $(COMMDIR)\encconv.$(SRCSUFF)
-
-$(MSWDIR)\event.obj: $(COMMDIR)\event.$(SRCSUFF)
-
-$(MSWDIR)\extended.obj: $(COMMDIR)\extended.c
-
-$(MSWDIR)\fddlgcmn.obj: $(COMMDIR)\fddlgcmn.$(SRCSUFF)
-
-$(MSWDIR)\ffile.obj: $(COMMDIR)\ffile.$(SRCSUFF)
-
-$(MSWDIR)\file.obj: $(COMMDIR)\file.$(SRCSUFF)
-
-$(MSWDIR)\fileconf.obj: $(COMMDIR)\fileconf.$(SRCSUFF)
-
-$(MSWDIR)\filefn.obj: $(COMMDIR)\filefn.$(SRCSUFF)
-
-$(MSWDIR)\filename.obj: $(COMMDIR)\filename.$(SRCSUFF)
-
-$(MSWDIR)\filesys.obj: $(COMMDIR)\filesys.$(SRCSUFF)
-
-$(MSWDIR)\fontcmn.obj: $(COMMDIR)\fontcmn.$(SRCSUFF)
-
-$(MSWDIR)\fontmap.obj: $(COMMDIR)\fontmap.$(SRCSUFF)
-
-$(MSWDIR)\framecmn.obj: $(COMMDIR)\framecmn.$(SRCSUFF)
-
-$(MSWDIR)\fs_inet.obj: $(COMMDIR)\fs_inet.$(SRCSUFF)
-
-$(MSWDIR)\fs_mem.obj: $(COMMDIR)\fs_mem.$(SRCSUFF)
-
-$(MSWDIR)\fs_zip.obj: $(COMMDIR)\fs_zip.$(SRCSUFF)
-
-$(MSWDIR)\ftp.obj: $(COMMDIR)\ftp.$(SRCSUFF)
-
-$(MSWDIR)\gaugecmn.obj: $(COMMDIR)\gaugecmn.$(SRCSUFF)
-
-$(MSWDIR)\gdicmn.obj: $(COMMDIR)\gdicmn.$(SRCSUFF)
-
-$(MSWDIR)\geometry.obj: $(COMMDIR)\geometry.$(SRCSUFF)
-
-$(MSWDIR)\gifdecod.obj: $(COMMDIR)\gifdecod.$(SRCSUFF)
-
-$(MSWDIR)\hash.obj: $(COMMDIR)\hash.$(SRCSUFF)
-
-$(MSWDIR)\hashmap.obj: $(COMMDIR)\hashmap.$(SRCSUFF)
-
-$(MSWDIR)\helpbase.obj: $(COMMDIR)\helpbase.$(SRCSUFF)
-
-$(MSWDIR)\http.obj: $(COMMDIR)\http.$(SRCSUFF)
-
-$(MSWDIR)\iconbndl.obj: $(COMMDIR)\iconbndl.$(SRCSUFF)
-
-$(MSWDIR)\imagall.obj: $(COMMDIR)\imagall.$(SRCSUFF)
-
-$(MSWDIR)\imagbmp.obj: $(COMMDIR)\imagbmp.$(SRCSUFF)
-
-$(MSWDIR)\image.obj: $(COMMDIR)\image.$(SRCSUFF)
-
-$(MSWDIR)\imagfill.obj: $(COMMDIR)\imagfill.$(SRCSUFF)
-
-$(MSWDIR)\imaggif.obj: $(COMMDIR)\imaggif.$(SRCSUFF)
-
-$(MSWDIR)\imagiff.obj: $(COMMDIR)\imagiff.$(SRCSUFF)
-
-$(MSWDIR)\imagjpeg.obj: $(COMMDIR)\imagjpeg.$(SRCSUFF)
-
-$(MSWDIR)\imagpcx.obj: $(COMMDIR)\imagpcx.$(SRCSUFF)
-
-$(MSWDIR)\imagpng.obj: $(COMMDIR)\imagpng.$(SRCSUFF)
-
-$(MSWDIR)\imagpnm.obj: $(COMMDIR)\imagpnm.$(SRCSUFF)
-
-$(MSWDIR)\imagtiff.obj: $(COMMDIR)\imagtiff.$(SRCSUFF)
-
-$(MSWDIR)\imagxpm.obj: $(COMMDIR)\imagxpm.$(SRCSUFF)
-
-$(MSWDIR)\intl.obj: $(COMMDIR)\intl.$(SRCSUFF)
-
-$(MSWDIR)\ipcbase.obj: $(COMMDIR)\ipcbase.$(SRCSUFF)
-
-$(MSWDIR)\layout.obj: $(COMMDIR)\layout.$(SRCSUFF)
-
-$(MSWDIR)\lboxcmn.obj: $(COMMDIR)\lboxcmn.$(SRCSUFF)
-
-$(MSWDIR)\list.obj: $(COMMDIR)\list.$(SRCSUFF)
-
-$(MSWDIR)\log.obj: $(COMMDIR)\log.$(SRCSUFF)
-
-$(MSWDIR)\longlong.obj: $(COMMDIR)\longlong.$(SRCSUFF)
-
-$(MSWDIR)\matrix.obj: $(COMMDIR)\matrix.$(SRCSUFF)
-
-$(MSWDIR)\memory.obj: $(COMMDIR)\memory.$(SRCSUFF)
-
-$(MSWDIR)\menucmn.obj: $(COMMDIR)\menucmn.$(SRCSUFF)
-
-$(MSWDIR)\mimecmn.obj: $(COMMDIR)\mimecmn.$(SRCSUFF)
-
-$(MSWDIR)\module.obj: $(COMMDIR)\module.$(SRCSUFF)
-
-$(MSWDIR)\msgout.obj: $(COMMDIR)\msgout.$(SRCSUFF)
-
-$(MSWDIR)\mstream.obj: $(COMMDIR)\mstream.$(SRCSUFF)
-
-$(MSWDIR)\nbkbase.obj: $(COMMDIR)\nbkbase.$(SRCSUFF)
-
-$(MSWDIR)\object.obj: $(COMMDIR)\object.$(SRCSUFF)
-
-$(MSWDIR)\odbc.obj: $(COMMDIR)\odbc.$(SRCSUFF)
-
-$(MSWDIR)\paper.obj: $(COMMDIR)\paper.$(SRCSUFF)
-
-$(MSWDIR)\popupcmn.obj: $(COMMDIR)\popupcmn.$(SRCSUFF)
-
-$(MSWDIR)\prntbase.obj: $(COMMDIR)\prntbase.$(SRCSUFF)
-
-$(MSWDIR)\process.obj: $(COMMDIR)\process.$(SRCSUFF)
-
-$(MSWDIR)\protocol.obj: $(COMMDIR)\protocol.$(SRCSUFF)
-
-$(MSWDIR)\quantize.obj: $(COMMDIR)\quantize.$(SRCSUFF)
-
-$(MSWDIR)\radiocmn.obj: $(COMMDIR)\radiocmn.$(SRCSUFF)
-
-$(MSWDIR)\regex.obj: $(COMMDIR)\regex.$(SRCSUFF)
-
-$(MSWDIR)\resource.obj: $(COMMDIR)\resource.$(SRCSUFF)
-
-$(MSWDIR)\sckaddr.obj: $(COMMDIR)\sckaddr.$(SRCSUFF)
-
-$(MSWDIR)\sckfile.obj: $(COMMDIR)\sckfile.$(SRCSUFF)
-
-$(MSWDIR)\sckipc.obj: $(COMMDIR)\sckipc.$(SRCSUFF)
-
-$(MSWDIR)\sckstrm.obj: $(COMMDIR)\sckstrm.$(SRCSUFF)
-
-$(MSWDIR)\settcmn.obj: $(COMMDIR)\settcmn.$(SRCSUFF)
-
-$(MSWDIR)\sizer.obj: $(COMMDIR)\sizer.$(SRCSUFF)
-
-$(MSWDIR)\socket.obj: $(COMMDIR)\socket.$(SRCSUFF)
-
-$(MSWDIR)\statbar.obj: $(COMMDIR)\statbar.$(SRCSUFF)
-
-$(MSWDIR)\strconv.obj: $(COMMDIR)\strconv.$(SRCSUFF)
-
-$(MSWDIR)\stream.obj: $(COMMDIR)\stream.$(SRCSUFF)
-
-$(MSWDIR)\string.obj: $(COMMDIR)\string.$(SRCSUFF)
-
-$(MSWDIR)\sysopt.obj: $(COMMDIR)\sysopt.$(SRCSUFF)
-
-$(MSWDIR)\tbarbase.obj: $(COMMDIR)\tbarbase.$(SRCSUFF)
-
-$(MSWDIR)\textbuf.obj: $(COMMDIR)\textbuf.$(SRCSUFF)
-
-$(MSWDIR)\textcmn.obj: $(COMMDIR)\textcmn.$(SRCSUFF)
-
-$(MSWDIR)\textfile.obj: $(COMMDIR)\textfile.$(SRCSUFF)
-
-$(MSWDIR)\timercmn.obj: $(COMMDIR)\timercmn.$(SRCSUFF)
-
-$(MSWDIR)\tokenzr.obj: $(COMMDIR)\tokenzr.$(SRCSUFF)
-
-$(MSWDIR)\toplvcmn.obj: $(COMMDIR)\toplvcmn.$(SRCSUFF)
-
-$(MSWDIR)\treebase.obj: $(COMMDIR)\treebase.$(SRCSUFF)
-
-$(MSWDIR)\txtstrm.obj: $(COMMDIR)\txtstrm.$(SRCSUFF)
-
-$(MSWDIR)\unzip.obj: $(COMMDIR)\unzip.c
-
-$(MSWDIR)\url.obj: $(COMMDIR)\url.$(SRCSUFF)
-
-$(MSWDIR)\utilscmn.obj: $(COMMDIR)\utilscmn.$(SRCSUFF)
-
-$(MSWDIR)\valgen.obj: $(COMMDIR)\valgen.$(SRCSUFF)
-
-$(MSWDIR)\validate.obj: $(COMMDIR)\validate.$(SRCSUFF)
-
-$(MSWDIR)\valtext.obj: $(COMMDIR)\valtext.$(SRCSUFF)
-
-$(MSWDIR)\variant.obj: $(COMMDIR)\variant.$(SRCSUFF)
-
-$(MSWDIR)\wfstream.obj: $(COMMDIR)\wfstream.$(SRCSUFF)
-
-$(MSWDIR)\wincmn.obj: $(COMMDIR)\wincmn.$(SRCSUFF)
-
-$(MSWDIR)\wxchar.obj: $(COMMDIR)\wxchar.$(SRCSUFF)
-
-$(MSWDIR)\wxexpr.obj: $(COMMDIR)\wxexpr.$(SRCSUFF)
-
-$(MSWDIR)\xpmdecod.obj: $(COMMDIR)\xpmdecod.$(SRCSUFF)
-
-$(MSWDIR)\zipstrm.obj: $(COMMDIR)\zipstrm.$(SRCSUFF)
-
-$(MSWDIR)\zstream.obj: $(COMMDIR)\zstream.$(SRCSUFF)
-
-
-
-########################################################
-# Generic objects (not always compiled, depending on
-# whether platforms have native implementations)
-
-$(MSWDIR)\accel.obj: $(GENDIR)\accel.$(SRCSUFF)
-
-$(MSWDIR)\busyinfo.obj: $(GENDIR)\busyinfo.$(SRCSUFF)
-
-$(MSWDIR)\calctrl.obj: $(GENDIR)\calctrl.$(SRCSUFF)
-
-$(MSWDIR)\choicdgg.obj: $(GENDIR)\choicdgg.$(SRCSUFF)
-
-$(MSWDIR)\colrdlgg.obj: $(GENDIR)\colrdlgg.$(SRCSUFF)
-
-$(MSWDIR)\dcbuffer.obj: $(GENDIR)\dcbuffer.$(SRCSUFF)
-
-$(MSWDIR)\dcpsg.obj: $(GENDIR)\dcpsg.$(SRCSUFF)
-
-$(MSWDIR)\dirctrlg.obj: $(GENDIR)\dirctrlg.$(SRCSUFF)
-
-$(MSWDIR)\dirdlgg.obj: $(GENDIR)\dirdlgg.$(SRCSUFF)
-
-$(MSWDIR)\dragimgg.obj: $(GENDIR)\dragimgg.$(SRCSUFF)
-
-$(MSWDIR)\fdrepdlg.obj: $(GENDIR)\fdrepdlg.$(SRCSUFF)
-
-$(MSWDIR)\filedlgg.obj: $(GENDIR)\filedlgg.$(SRCSUFF)
-
-$(MSWDIR)\fontdlgg.obj: $(GENDIR)\fontdlgg.$(SRCSUFF)
-
-$(MSWDIR)\grid.obj: $(GENDIR)\grid.$(SRCSUFF)
-
-$(MSWDIR)\gridctrl.obj: $(GENDIR)\gridctrl.$(SRCSUFF)
-
-$(MSWDIR)\gridsel.obj: $(GENDIR)\gridsel.$(SRCSUFF)
-
-$(MSWDIR)\helpext.obj: $(GENDIR)\helpext.$(SRCSUFF)
-
-$(MSWDIR)\helphtml.obj: $(GENDIR)\helphtml.$(SRCSUFF)
-
-$(MSWDIR)\laywin.obj: $(GENDIR)\laywin.$(SRCSUFF)
-
-$(MSWDIR)\listctrl.obj: $(GENDIR)\listctrl.$(SRCSUFF)
-
-$(MSWDIR)\logg.obj: $(GENDIR)\logg.$(SRCSUFF)
-
-$(MSWDIR)\mdig.obj: $(GENDIR)\mdig.$(SRCSUFF)
-
-$(MSWDIR)\msgdlgg.obj: $(GENDIR)\msgdlgg.$(SRCSUFF)
-
-$(MSWDIR)\numdlgg.obj: $(GENDIR)\numdlgg.$(SRCSUFF)
-
-$(MSWDIR)\panelg.obj: $(GENDIR)\panelg.$(SRCSUFF)
-
-$(MSWDIR)\printps.obj: $(GENDIR)\printps.$(SRCSUFF)
-
-$(MSWDIR)\prntdlgg.obj: $(GENDIR)\prntdlgg.$(SRCSUFF)
-
-$(MSWDIR)\progdlgg.obj: $(GENDIR)\progdlgg.$(SRCSUFF)
-
-$(MSWDIR)\prop.obj: $(GENDIR)\prop.$(SRCSUFF)
-
-$(MSWDIR)\propform.obj: $(GENDIR)\propform.$(SRCSUFF)
-
-$(MSWDIR)\proplist.obj: $(GENDIR)\proplist.$(SRCSUFF)
-
-$(MSWDIR)\sashwin.obj: $(GENDIR)\sashwin.$(SRCSUFF)
-
-$(MSWDIR)\scrlwing.obj: $(GENDIR)\scrlwing.$(SRCSUFF)
-
-$(MSWDIR)\spinctlg.obj: $(GENDIR)\spinctlg.$(SRCSUFF)
-
-$(MSWDIR)\splash.obj: $(GENDIR)\splash.$(SRCSUFF)
-
-$(MSWDIR)\splitter.obj: $(GENDIR)\splitter.$(SRCSUFF)
-
-$(MSWDIR)\tabg.obj: $(GENDIR)\tabg.$(SRCSUFF)
-
-$(MSWDIR)\tbarsmpl.obj: $(GENDIR)\tbarsmpl.$(SRCSUFF)
-
-$(MSWDIR)\textdlgg.obj: $(GENDIR)\textdlgg.$(SRCSUFF)
-
-$(MSWDIR)\tipdlg.obj: $(GENDIR)\tipdlg.$(SRCSUFF)
-
-$(MSWDIR)\tipwin.obj: $(GENDIR)\tipwin.$(SRCSUFF)
-
-$(MSWDIR)\treectlg.obj: $(GENDIR)\treectlg.$(SRCSUFF)
-
-$(MSWDIR)\treelay.obj: $(GENDIR)\treelay.$(SRCSUFF)
-
-$(MSWDIR)\wizard.obj: $(GENDIR)\wizard.$(SRCSUFF)
-
-
-
-########################################################
-# HTML objects (always compiled)
-
-$(MSWDIR)\helpctrl.obj: $(HTMLDIR)\helpctrl.$(SRCSUFF)
-
-$(MSWDIR)\helpdata.obj: $(HTMLDIR)\helpdata.$(SRCSUFF)
-
-$(MSWDIR)\helpfrm.obj: $(HTMLDIR)\helpfrm.$(SRCSUFF)
-
-$(MSWDIR)\htmlcell.obj: $(HTMLDIR)\htmlcell.$(SRCSUFF)
-
-$(MSWDIR)\htmlfilt.obj: $(HTMLDIR)\htmlfilt.$(SRCSUFF)
-
-$(MSWDIR)\htmlpars.obj: $(HTMLDIR)\htmlpars.$(SRCSUFF)
-
-$(MSWDIR)\htmltag.obj: $(HTMLDIR)\htmltag.$(SRCSUFF)
-
-$(MSWDIR)\htmlwin.obj: $(HTMLDIR)\htmlwin.$(SRCSUFF)
-
-$(MSWDIR)\htmprint.obj: $(HTMLDIR)\htmprint.$(SRCSUFF)
-
-$(MSWDIR)\m_dflist.obj: $(HTMLDIR)\m_dflist.$(SRCSUFF)
-
-$(MSWDIR)\m_fonts.obj: $(HTMLDIR)\m_fonts.$(SRCSUFF)
-
-$(MSWDIR)\m_hline.obj: $(HTMLDIR)\m_hline.$(SRCSUFF)
-
-$(MSWDIR)\m_image.obj: $(HTMLDIR)\m_image.$(SRCSUFF)
-
-$(MSWDIR)\m_layout.obj: $(HTMLDIR)\m_layout.$(SRCSUFF)
-
-$(MSWDIR)\m_links.obj: $(HTMLDIR)\m_links.$(SRCSUFF)
-
-$(MSWDIR)\m_list.obj: $(HTMLDIR)\m_list.$(SRCSUFF)
-
-$(MSWDIR)\m_meta.obj: $(HTMLDIR)\m_meta.$(SRCSUFF)
-
-$(MSWDIR)\m_pre.obj: $(HTMLDIR)\m_pre.$(SRCSUFF)
-
-$(MSWDIR)\m_style.obj: $(HTMLDIR)\m_style.$(SRCSUFF)
-
-$(MSWDIR)\m_tables.obj: $(HTMLDIR)\m_tables.$(SRCSUFF)
-
-$(MSWDIR)\winpars.obj: $(HTMLDIR)\winpars.$(SRCSUFF)
-
-
-
-
-########################################################
-# UNIV objects (always compiled)
-
-$(MSWDIR)\bmpbuttn.obj: $(UNIVDIR)\bmpbuttn.$(SRCSUFF)
-
-$(MSWDIR)\button.obj: $(UNIVDIR)\button.$(SRCSUFF)
-
-$(MSWDIR)\checkbox.obj: $(UNIVDIR)\checkbox.$(SRCSUFF)
-
-$(MSWDIR)\checklst.obj: $(UNIVDIR)\checklst.$(SRCSUFF)
-
-$(MSWDIR)\choice.obj: $(UNIVDIR)\choice.$(SRCSUFF)
-
-$(MSWDIR)\colschem.obj: $(UNIVDIR)\colschem.$(SRCSUFF)
-
-$(MSWDIR)\combobox.obj: $(UNIVDIR)\combobox.$(SRCSUFF)
-
-$(MSWDIR)\control.obj: $(UNIVDIR)\control.$(SRCSUFF)
-
-$(MSWDIR)\dialog.obj: $(UNIVDIR)\dialog.$(SRCSUFF)
-
-$(MSWDIR)\framuniv.obj: $(UNIVDIR)\framuniv.$(SRCSUFF)
-
-$(MSWDIR)\gauge.obj: $(UNIVDIR)\gauge.$(SRCSUFF)
-
-$(MSWDIR)\inpcons.obj: $(UNIVDIR)\inpcons.$(SRCSUFF)
-
-$(MSWDIR)\inphand.obj: $(UNIVDIR)\inphand.$(SRCSUFF)
-
-$(MSWDIR)\listbox.obj: $(UNIVDIR)\listbox.$(SRCSUFF)
-
-$(MSWDIR)\menu.obj: $(UNIVDIR)\menu.$(SRCSUFF)
-
-$(MSWDIR)\notebook.obj: $(UNIVDIR)\notebook.$(SRCSUFF)
-
-$(MSWDIR)\radiobox.obj: $(UNIVDIR)\radiobox.$(SRCSUFF)
-
-$(MSWDIR)\radiobut.obj: $(UNIVDIR)\radiobut.$(SRCSUFF)
-
-$(MSWDIR)\renderer.obj: $(UNIVDIR)\renderer.$(SRCSUFF)
-
-$(MSWDIR)\scrarrow.obj: $(UNIVDIR)\scrarrow.$(SRCSUFF)
-
-$(MSWDIR)\scrolbar.obj: $(UNIVDIR)\scrolbar.$(SRCSUFF)
-
-$(MSWDIR)\scrthumb.obj: $(UNIVDIR)\scrthumb.$(SRCSUFF)
-
-$(MSWDIR)\slider.obj: $(UNIVDIR)\slider.$(SRCSUFF)
-
-$(MSWDIR)\spinbutt.obj: $(UNIVDIR)\spinbutt.$(SRCSUFF)
-
-$(MSWDIR)\statbmp.obj: $(UNIVDIR)\statbmp.$(SRCSUFF)
-
-$(MSWDIR)\statbox.obj: $(UNIVDIR)\statbox.$(SRCSUFF)
-
-$(MSWDIR)\statline.obj: $(UNIVDIR)\statline.$(SRCSUFF)
-
-$(MSWDIR)\stattext.obj: $(UNIVDIR)\stattext.$(SRCSUFF)
-
-$(MSWDIR)\statusbr.obj: $(UNIVDIR)\statusbr.$(SRCSUFF)
-
-$(MSWDIR)\textctrl.obj: $(UNIVDIR)\textctrl.$(SRCSUFF)
-
-$(MSWDIR)\theme.obj: $(UNIVDIR)\theme.$(SRCSUFF)
-
-$(MSWDIR)\toolbar.obj: $(UNIVDIR)\toolbar.$(SRCSUFF)
-
-$(MSWDIR)\topluniv.obj: $(UNIVDIR)\topluniv.$(SRCSUFF)
-
-$(MSWDIR)\winuniv.obj: $(UNIVDIR)\winuniv.$(SRCSUFF)
-
-
-
-
-########################################################
-# UNIV THEME objects (always compiled)
-
-$(MSWDIR)\gtk.obj: $(UNIVTHEMEDIR)\gtk.$(SRCSUFF)
-
-$(MSWDIR)\metal.obj: $(UNIVTHEMEDIR)\metal.$(SRCSUFF)
-
-$(MSWDIR)\win32.obj: $(UNIVTHEMEDIR)\win32.$(SRCSUFF)
-
-
-
-
-all_utils:
-    cd $(WXDIR)\utils
-    make -f makefile.b32
-    cd $(WXDIR)\src\msw
-
-all_samples:
-    cd $(WXDIR)\samples
-    make -f makefile.b32
-    cd $(WXDIR)\src\msw
-
-all_execs:
-    cd $(WXDIR)\utils
-    make -f makefile.b32 all_execs
-    cd $(WXDIR)\src\msw
-
-png:    $(CFG)
-        cd $(WXDIR)\src\png
-        make -f makefile.b32
-        cd $(WXDIR)\src\msw
-
-clean_png:
-        cd $(WXDIR)\src\png
-        make -f makefile.b32 clean
-        cd $(WXDIR)\src\msw
-
-zlib:   $(CFG)
-        cd $(WXDIR)\src\zlib
-        make -f makefile.b32 lib
-        cd $(WXDIR)\src\msw
-
-clean_zlib:
-        cd $(WXDIR)\src\zlib
-        make -f makefile.b32 clean
-        cd $(WXDIR)\src\msw
-
-jpeg:    $(CFG)
-        cd $(WXDIR)\src\jpeg
-        make -f makefile.b32
-        cd $(WXDIR)\src\msw
-
-clean_jpeg:
-        cd $(WXDIR)\src\jpeg
-        make -f makefile.b32 clean
-        cd $(WXDIR)\src\msw
-
-regex:   $(CFG)
-        cd $(WXDIR)\src\regex
-        make -f makefile.b32 lib
-        cd $(WXDIR)\src\msw
-
-clean_regex:
-        cd $(WXDIR)\src\regex
-        make -f makefile.b32 clean
-        cd $(WXDIR)\src\msw
-
-tiff:   $(CFG)
-        cd $(WXDIR)\src\tiff
-        make -f makefile.b32 lib
-        cd $(WXDIR)\src\msw
-
-clean_tiff:
-        cd $(WXDIR)\src\tiff
-        make -f makefile.b32 clean
-        cd $(WXDIR)\src\msw
-
-$(CFG): makeuniv.b32
-	copy &&!
--Hc
--H=$(WXDIR)\src\msw\wx32.csm
--3
--d
--a1 # byte alignment
--R-
--X
--w-par
--w-aus
--w-hid # virtual function A hides virtual function B
--tWM
-
--I$(ARCHINCDIR);$(WXINC);$(BCCDIR)\include;$(WXDIR)/src/generic;$(WXDIR)/src/png;$(WXDIR)/src/jpeg;$(WXDIR)/src/zlib;$(WXDIR)/src/tiff
--I$(WXDIR)\include\wx\msw\gnuwin32
-
--L$(BCCDIR)\lib;$(BCCDIR)\lib\psdk
--D__WXWIN__
--D__WINDOWS__
--D__WXUNIVERSAL__
--D_WIN32
--DWIN32
-$(OPT)
-$(DEBUG_FLAGS)
-$(WIN95FLAG)
-! $(CFG)
-
-clean: $(PERIPH_CLEAN_TARGET)
-    -erase $(LIBTARGET)
-    -erase $(WXLIBDIR)\wx.dll
-    -erase $(WXLIBDIR)\wx.tds
-    -erase $(WXLIBDIR)\wx.il?
-    -erase *.obj
-    -erase *.pch
-    -erase *.csm
-    -erase *.cfg
-    -erase "wx32.#??"
-    -erase ..\common\y_tab.c
-    -erase ..\common\lex_yy.c
-
-cleanall: clean
-
-
-# Making documents
-docs:   allhlp allhtml allpdfrtf
-alldocs: docs
-hlp:    wxhlp portinghlp
-wxhlp:  $(DOCDIR)/winhelp/wx.hlp
-prophlp: $(DOCDIR)/winhelp/prop.hlp
-refhlp: $(DOCDIR)/winhelp/techref.hlp
-rtf:    $(DOCDIR)/winhelp/wx.rtf
-proprtf: $(DOCDIR)/winhelp/prop.rtf
-pdfrtf:    $(DOCDIR)/pdf/wx.rtf
-proppdfrtf: $(DOCDIR)/pdf/prop.rtf
-refpdfrtf: $(DOCDIR)/pdf/techref.rtf
-html:	wxhtml portinghtml
-wxhtml:	$(DOCDIR)\html\wx\wx.htm
-htmlhelp: $(DOCDIR)\html\wx\wx.chm
-prophtml: $(DOCDIR)\html\proplist\prop.htm
-ps:     wxps referencps
-wxps:	$(WXDIR)\docs\ps\wx.ps
-propps:	$(WXDIR)\docs\ps\prop.ps
-referencps:	$(WXDIR)\docs\ps\referenc.ps
-
-portinghtml: $(DOCDIR)\html\porting\port.htm
-portingrtf: $(DOCDIR)/winhelp/porting.rtf
-portinghlp: $(DOCDIR)/winhelp/porting.hlp
-portingpdfrtf: $(DOCDIR)/pdf/porting.rtf
-portingps:	$(WXDIR)\docs\ps\porting.ps
-
-allhlp: wxhlp portinghlp prophlp
-        cd $(WXDIR)\utils\dialoged\src
-        make -f makefile.b32 hlp
-        cd $(THISDIR)
-
-#        cd $(WXDIR)\utils\wxhelp\src
-#        make -f makefile.b32 hlp
-#        cd $(WXDIR)\utils\tex2rtf\src
-#        make -f makefile.b32 hlp
-#        cd $(WXDIR)\utils\wxgraph\src
-#        make -f makefile.b32 hlp
-#        cd $(WXDIR)\utils\wxchart\src
-#        make -f makefile.b32 hlp
-#        cd $(WXDIR)\utils\wxtree\src
-#        make -f makefile.b32 hlp
-#        cd $(WXDIR)\utils\wxbuild\src
-#        make -f makefile.b32 hlp
-#        cd $(WXDIR)\utils\wxgrid\src
-#        make -f makefile.b32 hlp
-
-allhtml: wxhtml portinghtml prophtml
-        cd $(WXDIR)\utils\dialoged\src
-        make -f makefile.b32 html
-        cd $(THISDIR)
-
-#        make -f makefile.b32 html
-#        cd $(WXDIR)\utils\dialoged\src
-#        make -f makefile.b32 html
-#        cd $(WXDIR)\utils\hytext\src
-#        make -f makefile.b32 html
-#        cd $(WXDIR)\utils\wxhelp\src
-#        make -f makefile.b32 html
-#        cd $(WXDIR)\utils\tex2rtf\src
-#        make -f makefile.b32 html
-#        cd $(WXDIR)\utils\wxgraph\src
-#        make -f makefile.b32 html
-#        cd $(WXDIR)\utils\wxchart\src
-#        make -f makefile.b32 html
-#        cd $(WXDIR)\utils\wxtree\src
-#        make -f makefile.b32 html
-
-allps: wxps referencps portingps propps
-        cd $(WXDIR)\utils\dialoged\src
-        make -f makefile.b32 ps
-        cd $(THISDIR)
-
-allpdfrtf: pdfrtf portingpdfrtf proppdfrtf
-        cd $(WXDIR)\utils\dialoged\src
-        make -f makefile.b32 pdfrtf
-        cd $(THISDIR)
-
-#        cd $(WXDIR)\utils\wxhelp\src
-#        make -f makefile.b32 ps
-#        cd $(WXDIR)\utils\tex2rtf\src
-#        make -f makefile.b32 ps
-#        cd $(WXDIR)\utils\wxgraph\src
-#        make -f makefile.b32 ps
-#        cd $(WXDIR)\utils\wxchart\src
-#        make -f makefile.b32 ps
-#        cd $(WXDIR)\utils\wxtree\src
-#        make -f makefile.b32 ps
-#        cd $(THISDIR)
-
-$(DOCDIR)/winhelp/wx.hlp:         $(DOCDIR)/latex/wx/wx.rtf $(DOCDIR)/latex/wx/wx.hpj
-        cd $(DOCDIR)/latex/wx
-        -erase wx.ph
-        hc wx
-        move wx.hlp $(DOCDIR)\winhelp\wx.hlp
-        move wx.cnt $(DOCDIR)\winhelp\wx.cnt
-        cd $(THISDIR)
-
-$(DOCDIR)/winhelp/porting.hlp:         $(DOCDIR)/latex/porting/porting.rtf $(DOCDIR)/latex/porting/porting.hpj
-        cd $(DOCDIR)/latex/porting
-        -erase porting.ph
-        hc porting
-        move porting.hlp $(DOCDIR)\winhelp\porting.hlp
-        move porting.cnt $(DOCDIR)\winhelp\porting.cnt
-        cd $(THISDIR)
-
-$(DOCDIR)/winhelp/prop.hlp:         $(DOCDIR)/latex/proplist/prop.rtf $(DOCDIR)/latex/proplist/prop.hpj
-        cd $(DOCDIR)/latex/proplist
-        -erase prop.ph
-        hc prop
-        move prop.hlp $(DOCDIR)\winhelp\prop.hlp
-        move prop.cnt $(DOCDIR)\winhelp\prop.cnt
-        cd $(THISDIR)
-
-$(DOCDIR)/winhelp/techref.hlp:         $(DOCDIR)/latex/techref/techref.rtf $(DOCDIR)/latex/techref/techref.hpj
-        cd $(DOCDIR)/latex/techref
-        -erase techref.ph
-        hc techref
-        move techref.hlp $(DOCDIR)\winhelp\techref.hlp
-        move techref.cnt $(DOCDIR)\winhelp\techref.cnt
-        cd $(THISDIR)
-
-$(DOCDIR)/latex/wx/wx.rtf:         $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/manual.tex
-        cd $(DOCDIR)\latex\wx
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/wx/manual.tex $(DOCDIR)/latex/wx/wx.rtf -twice -winhelp
-        cd $(THISDIR)
-
-$(DOCDIR)/latex/porting/porting.rtf:         $(DOCDIR)/latex/porting/porting.tex
-        cd $(DOCDIR)\latex\porting
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/porting/porting.tex $(DOCDIR)/latex/porting/porting.rtf -twice -winhelp
-        cd $(THISDIR)
-
-$(DOCDIR)/latex/proplist/prop.rtf:         $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/body.tex $(DOCDIR)/latex/proplist/classes.tex $(DOCDIR)/latex/proplist/changes.tex
-        cd $(DOCDIR)\latex\proplist
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/prop.rtf -twice -winhelp
-        cd $(THISDIR)
-
-$(DOCDIR)/latex/techref/techref.rtf:         $(DOCDIR)/latex/techref/techref.tex
-        cd $(DOCDIR)\latex\techref
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/latex/techref/techref.rtf -twice -winhelp
-        cd $(THISDIR)
-
-$(DOCDIR)/pdf/wx.rtf:         $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/manual.tex
-        cd $(DOCDIR)\latex\wx
-        -copy *.wmf $(DOCDIR)\pdf
-        -copy *.bmp $(DOCDIR)\pdf
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/wx/manual.tex $(DOCDIR)/pdf/wx.rtf -twice -rtf
-        cd $(THISDIR)
-
-$(DOCDIR)/pdf/porting.rtf:         $(DOCDIR)/latex/porting/porting.tex
-        cd $(DOCDIR)\latex\porting
-        -copy *.wmf $(DOCDIR)\pdf
-        -copy *.bmp $(DOCDIR)\pdf
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/porting/porting.tex $(DOCDIR)/pdf/porting.rtf -twice -rtf
-        cd $(THISDIR)
-
-$(DOCDIR)/pdf/prop.rtf:         $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/body.tex $(DOCDIR)/latex/proplist/classes.tex $(DOCDIR)/latex/proplist/changes.tex
-        cd $(DOCDIR)\latex\proplist
-        -copy *.wmf $(DOCDIR)\pdf
-        -copy *.bmp $(DOCDIR)\pdf
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/pdf/prop.rtf -twice -rtf
-        cd $(THISDIR)
-
-$(DOCDIR)/pdf/techref.rtf:         $(DOCDIR)/latex/techref/techref.tex
-        cd $(DOCDIR)\latex\techref
-        -copy *.wmf $(DOCDIR)\pdf
-        -copy *.bmp $(DOCDIR)\pdf
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/pdf/techref.rtf -twice -rtf
-        cd $(THISDIR)
-
-$(DOCDIR)\html\wx\wx.htm:         $(DOCDIR)\latex\wx\classes.tex $(DOCDIR)\latex\wx\body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)\latex\wx\manual.tex
-        cd $(DOCDIR)\latex\wx
-        -mkdir $(DOCDIR)\html\wx
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\wx\manual.tex $(DOCDIR)\html\wx\wx.htm -twice -html
-        -erase $(DOCDIR)\html\wx\*.con
-        -erase $(DOCDIR)\html\wx\*.ref
-        -erase $(DOCDIR)\latex\wx\*.con
-        -erase $(DOCDIR)\latex\wx\*.ref
-         cd $(THISDIR)
-
-$(DOCDIR)\html\wx\wx.chm : $(DOCDIR)\html\wx\wx.htm $(DOCDIR)\html\wx\wx.hhp
-	cd $(DOCDIR)\html\wx
-	-hhc wx.hhp
-	cd $(THISDIR)
-
-
-$(DOCDIR)\html\porting\port.htm:         $(DOCDIR)\latex\porting\porting.tex
-        cd $(DOCDIR)\latex\porting
-        -mkdir $(DOCDIR)\html\porting
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\porting\porting.tex $(DOCDIR)\html\porting\port.htm -twice -html
-        -erase $(DOCDIR)\html\porting\*.con
-        -erase $(DOCDIR)\html\porting\*.ref
-        -erase $(DOCDIR)\latex\porting\*.con
-        -erase $(DOCDIR)\latex\porting\*.ref
-        cd $(THISDIR)
-
-$(DOCDIR)\html\proplist\prop.htm:         $(DOCDIR)\latex\proplist\prop.tex $(DOCDIR)\latex\proplist\body.tex $(DOCDIR)\latex\proplist\classes.tex $(DOCDIR)\latex\proplist\changes.tex
-        cd $(DOCDIR)\latex\proplist
-        -mkdir $(DOCDIR)\html\proplist
-        -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\proplist\prop.tex $(DOCDIR)\html\proplist\prop.htm -twice -html
-        -erase $(DOCDIR)\html\proplist\*.con
-        -erase $(DOCDIR)\html\proplist\*.ref
-        -erase $(DOCDIR)\latex\proplist\*.con
-        -erase $(DOCDIR)\latex\proplist\*.ref
-        cd $(THISDIR)
-
-$(WXDIR)\docs\latex\wx\manual.dvi:	$(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/manual.tex
-	cd $(WXDIR)\docs\latex\wx
-        -latex manual
-        -latex manual
-        -makeindx manual
-        -bibtex manual
-        -latex manual
-        -latex manual
-        cd $(THISDIR)
-
-$(WXDIR)\docs\latex\porting\porting.dvi:	$(DOCDIR)/latex/porting/porting.tex
-	cd $(WXDIR)\docs\latex\porting
-        -latex porting
-        -latex porting
-        -makeindx porting
-        -bibtex porting
-        -latex porting
-        -latex porting
-        cd $(THISDIR)
-
-$(WXDIR)\docs\ps\wx.ps:	$(WXDIR)\docs\latex\wx\manual.dvi
-	cd $(WXDIR)\docs\latex\wx
-        -dvips32 -o wx.ps manual
-        move wx.ps $(WXDIR)\docs\ps\wx.ps
-        cd $(THISDIR)
-
-$(WXDIR)\docs\ps\porting.ps:	$(WXDIR)\docs\latex\porting\porting.dvi
-	cd $(WXDIR)\docs\latex\porting
-        -dvips32 -o porting.ps porting
-        move porting.ps $(WXDIR)\docs\ps\porting.ps
-        cd $(THISDIR)
-
-$(WXDIR)\docs\latex\wx\referenc.dvi:	$(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/referenc.tex
-	cd $(WXDIR)\docs\latex\wx
-        -latex referenc
-        -latex referenc
-        -makeindx referenc
-        -bibtex referenc
-        -latex referenc
-        -latex referenc
-        cd $(THISDIR)
-
-$(WXDIR)\docs\ps\referenc.ps:	$(WXDIR)\docs\latex\wx\referenc.dvi
-	cd $(WXDIR)\docs\latex\wx
-        -dvips32 -o referenc.ps referenc
-        move referenc.ps $(WXDIR)\docs\ps\referenc.ps
-        cd $(THISDIR)
-
-# In order to force document reprocessing
-touchmanual:
-    -touch $(WXDIR)\docs\latex\wx\manual.tex
-
-updatedocs: touchmanual alldocs
-
-# Start Word, running the GeneratePDF macro. MakeManual.dot should be in the
-# Office StartUp folder, and PDFMaker should be installed.
-updatepdf:  # touchmanual pdfrtf
-    start $(WAITFLAG) "winword d:\wx2\wxWindows\docs\latex\pdf\wx.rtf /mGeneratePDF"
-
-
-MFTYPE=b32
-# Can't use this or we'll have to distribute all tmake files with wxWindows
-# makefile.$(MFTYPE) : $(WXWIN)\distrib\msw\tmake\filelist.txt $(WXWIN)\distrib\msw\tmake\$(MFTYPE).t
-
-self:
-	cd $(WXWIN)\distrib\msw\tmake
-	tmake -t $(MFTYPE) wxwin.pro -o makefile.$(MFTYPE)
-	copy makefile.$(MFTYPE) $(WXWIN)\src\msw
-
diff --git a/src/msw/mimetype.cpp b/src/msw/mimetype.cpp
index c5d5039212..a453c99079 100644
--- a/src/msw/mimetype.cpp
+++ b/src/msw/mimetype.cpp
@@ -88,7 +88,7 @@ void wxFileTypeImpl::Init(const wxString& strFileType, const wxString& ext)
 
     m_strFileType = strFileType;
     if ( !strFileType ) {
-        m_strFileType = m_ext.AfterFirst('.') + "_auto_file";
+        m_strFileType = m_ext.AfterFirst('.') + _T("_auto_file");
     }
 }
 
@@ -237,6 +237,9 @@ wxString wxFileTypeImpl::GetCommand(const wxChar *verb) const
                 wxRegKey(wxRegKey::HKCR, strKey + _T("\\Topic")).
                     QueryValue(_T(""), ddeTopic);
 
+                if (ddeTopic.IsEmpty())
+                    ddeTopic = wxT("System");
+
                 // HACK: we use a special feature of wxExecute which exists
                 //       just because we need it here: it will establish DDE
                 //       conversation with the program it just launched
diff --git a/src/msw/mslu.cpp b/src/msw/mslu.cpp
index 6975dc0ded..be480f683f 100644
--- a/src/msw/mslu.cpp
+++ b/src/msw/mslu.cpp
@@ -46,10 +46,6 @@
 #include <io.h>
 #include <sys/stat.h>
 
-#ifdef __GNUWIN32__
-    #include <wchar.h>
-#endif
-
 #ifdef __VISUALC__
     #include <direct.h>
 #endif
@@ -76,7 +72,7 @@ WXDLLEXPORT int  wxMSLU_DrawStateW(WXHDC dc, WXHBRUSH br, WXFARPROC outputFunc,
 
     if ( wxUsingUnicowsDll() )
     {
-		return DrawStateA((HDC)dc, (HBRUSH)br, (DRAWSTATEPROC)outputFunc,
+        return DrawStateA((HDC)dc, (HBRUSH)br, (DRAWSTATEPROC)outputFunc,
                           (LPARAM)(const char*)
                                 wxConvLocal.cWX2MB((const wxChar*)lData),
                           wData, x, y, cx, cy, flags);
diff --git a/src/msw/notebook.cpp b/src/msw/notebook.cpp
index d8a82f4809..d492f461cb 100644
--- a/src/msw/notebook.cpp
+++ b/src/msw/notebook.cpp
@@ -161,7 +161,7 @@ WXDWORD wxNotebook::MSWGetStyle(long style, WXDWORD *exstyle) const
 
     tabStyle |= WS_TABSTOP | TCS_TABS;
 
-    if ( style & wxTC_MULTILINE )
+    if ( style & wxNB_MULTILINE )
         tabStyle |= TCS_MULTILINE;
     if ( style & wxNB_FIXEDWIDTH )
         tabStyle |= TCS_FIXEDWIDTH;
@@ -205,9 +205,23 @@ int wxNotebook::SetSelection(int nPage)
 {
   wxCHECK_MSG( IS_VALID_PAGE(nPage), -1, wxT("notebook page out of range") );
 
-  ChangePage(m_nSelection, nPage);
+  if ( nPage != m_nSelection )
+  {
+    wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, m_windowId);
+    event.SetSelection(nPage);
+    event.SetOldSelection(m_nSelection);
+    event.SetEventObject(this);
+    if ( !GetEventHandler()->ProcessEvent(event) || event.IsAllowed() )
+    {
+      // program allows the page change
+      event.SetEventType(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED);
+      (void)GetEventHandler()->ProcessEvent(event);
+
+      TabCtrl_SetCurSel(m_hwnd, nPage);
+    }
+  }
 
-  return TabCtrl_SetCurSel(m_hwnd, nPage);
+  return m_nSelection;
 }
 
 bool wxNotebook::SetPageText(int nPage, const wxString& strText)
@@ -631,44 +645,4 @@ bool wxNotebook::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM* result)
   return processed;
 }
 
-// ----------------------------------------------------------------------------
-// wxNotebook helper functions
-// ----------------------------------------------------------------------------
-
-// generate the page changing and changed events, hide the currently active
-// panel and show the new one
-void wxNotebook::ChangePage(int nOldSel, int nSel)
-{
-  // MT-FIXME should use a real semaphore
-  static bool s_bInsideChangePage = FALSE;
-
-  // when we call ProcessEvent(), our own OnSelChange() is called which calls
-  // this function - break the infinite loop
-  if ( s_bInsideChangePage )
-    return;
-
-  // it's not an error (the message may be generated by the tab control itself)
-  // and it may happen - just do nothing
-  if ( nSel == nOldSel )
-    return;
-
-  s_bInsideChangePage = TRUE;
-
-  wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, m_windowId);
-  event.SetSelection(nSel);
-  event.SetOldSelection(nOldSel);
-  event.SetEventObject(this);
-  if ( GetEventHandler()->ProcessEvent(event) && !event.IsAllowed() )
-  {
-    // program doesn't allow the page change
-    s_bInsideChangePage = FALSE;
-    return;
-  }
-
-  event.SetEventType(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED);
-  GetEventHandler()->ProcessEvent(event);
-
-  s_bInsideChangePage = FALSE;
-}
-
 #endif // wxUSE_NOTEBOOK
diff --git a/src/msw/ole/automtn.cpp b/src/msw/ole/automtn.cpp
index 826bfe2cb3..3870d96263 100644
--- a/src/msw/ole/automtn.cpp
+++ b/src/msw/ole/automtn.cpp
@@ -833,12 +833,15 @@ static BSTR ConvertStringToOle(const wxString& str)
 
 static wxString ConvertStringFromOle(BSTR bStr)
 {
+#if wxUSE_UNICODE
+    wxString str(bStr);
+#else
 	int len = SysStringLen(bStr) + 1;
 	char    *buf = new char[len];
 	(void)wcstombs( buf, bStr, len);
-
-	wxString str(buf);
+	wxString str(buf); 
 	delete[] buf;
+#endif
 	return str;
 }
 
diff --git a/src/msw/ole/dataobj.cpp b/src/msw/ole/dataobj.cpp
index a909b3e85e..3c66ba49e0 100644
--- a/src/msw/ole/dataobj.cpp
+++ b/src/msw/ole/dataobj.cpp
@@ -1098,7 +1098,7 @@ protected:
         // CFSTR_SHELLURL is _always_ ANSI!
         wxCharBuffer char_buffer( GetDataSize() );
         wxCustomDataObject::GetDataHere( (void*)char_buffer.data() );
-        wxString unicode_buffer( char_buffer );
+        wxString unicode_buffer( char_buffer, wxConvLibc );
         memcpy( buffer, unicode_buffer.c_str(),
                 ( unicode_buffer.length() + 1 ) * sizeof(wxChar) );
 
diff --git a/src/msw/ownerdrw.cpp b/src/msw/ownerdrw.cpp
index 40aad406ba..03519026bc 100644
--- a/src/msw/ownerdrw.cpp
+++ b/src/msw/ownerdrw.cpp
@@ -241,8 +241,6 @@ bool wxOwnerDrawn::OnDrawItem(wxDC& dc,
 
     FillRect(hdc, &rectFill, hbr);
 
-    DeleteObject(hbr);
-
     // use default font if no font set
     HFONT hfont;
     if ( m_font.Ok() ) {
@@ -278,6 +276,8 @@ bool wxOwnerDrawn::OnDrawItem(wxDC& dc,
     (void)SelectObject(hdc, hPrevBrush);
     (void)SelectObject(hdc, hPrevFont);
     (void)SetBkMode(hdc, nPrevMode);
+
+    DeleteObject(hbr);
   #else
     dc.SetFont(GetFont());
     dc.DrawText(wxStripMenuCodes(m_strName), x, rc.y);
diff --git a/src/msw/pen.cpp b/src/msw/pen.cpp
index 599d747603..993af83b62 100644
--- a/src/msw/pen.cpp
+++ b/src/msw/pen.cpp
@@ -278,7 +278,7 @@ bool wxPen::RealizeResource()
     return FALSE;
 }
 
-WXHANDLE wxPen::GetResourceHandle()
+WXHANDLE wxPen::GetResourceHandle() const
 {
         if ( !M_PENDATA )
                 return 0;
diff --git a/src/msw/radiobox.cpp b/src/msw/radiobox.cpp
index e125e57e59..f5bc5e6c6f 100644
--- a/src/msw/radiobox.cpp
+++ b/src/msw/radiobox.cpp
@@ -884,7 +884,7 @@ LRESULT APIENTRY _EXPORT wxRadioBtnWndProc(HWND hwnd,
         case WM_NOTIFY:
             {
                 NMHDR* hdr = (NMHDR *)lParam;
-                if ( (int)hdr->code == TTN_NEEDTEXT )
+                if ( hdr->code == TTN_NEEDTEXT )
                 {
                     wxRadioBox *radiobox = (wxRadioBox *)
                         ::GetWindowLong(hwnd, GWL_USERDATA);
diff --git a/src/msw/radiobut.cpp b/src/msw/radiobut.cpp
index f038fd099a..d3729c2951 100644
--- a/src/msw/radiobut.cpp
+++ b/src/msw/radiobut.cpp
@@ -66,9 +66,22 @@ bool wxRadioButton::Create(wxWindow *parent,
     if ( !CreateControl(parent, id, pos, size, style, validator, name) )
         return FALSE;
 
-    long msStyle = HasFlag(wxRB_GROUP) ? WS_GROUP : 0;
+    long msStyle = WS_TABSTOP;
+    if ( HasFlag(wxRB_GROUP) )
+        msStyle |= WS_GROUP;
+
+    /*
+       wxRB_SINGLE is a temporary workaround for the following problem: if you
+       have 2 radiobuttons in the same group but which are not consecutive in
+       the dialog, Windows can enter an infinite loop! The simplest way to
+       reproduce it is to create radio button, then a panel and then another
+       radio button: then checking the last button hangs the app.
 
-    msStyle |= BS_AUTORADIOBUTTON;
+       Ideally, we'd detect (and avoid) such situation automatically but for
+       now, as I don't know how to do it, just allow the user to create
+       BS_RADIOBUTTON buttons for such situations.
+     */
+    msStyle |= HasFlag(wxRB_SINGLE) ? BS_RADIOBUTTON : BS_AUTORADIOBUTTON;
 
     if ( HasFlag(wxCLIP_SIBLINGS) )
         msStyle |= WS_CLIPSIBLINGS;
@@ -93,8 +106,58 @@ bool wxRadioButton::Create(wxWindow *parent,
 void wxRadioButton::SetValue(bool value)
 {
     // BST_CHECKED is defined as 1, BST_UNCHECKED as 0, so we can just pass
-    // value as is (we don't sue BST_XXX here as they're not defined for Win16)
+    // value as is (we don't use BST_XXX here as they're not defined for Win16)
     (void)::SendMessage(GetHwnd(), BM_SETCHECK, (WPARAM)value, 0L);
+
+    // if we set the value of one radio button we also must clear all the other
+    // buttons in the same group: Windows doesn't do it automatically
+    if ( value )
+    {
+        const wxWindowList& siblings = GetParent()->GetChildren();
+        wxWindowList::Node *nodeThis = siblings.Find(this);
+        wxCHECK_RET( nodeThis, _T("radio button not a child of its parent?") );
+
+        // turn off all radio buttons before this one
+        for ( wxWindowList::Node *nodeBefore = nodeThis->GetPrevious();
+              nodeBefore;
+              nodeBefore = nodeBefore->GetPrevious() )
+        {
+            wxRadioButton *btn = wxDynamicCast(nodeBefore->GetData(),
+                                               wxRadioButton);
+            if ( !btn )
+            {
+                // the radio buttons in a group must be consecutive, so there
+                // are no more of them
+                break;
+            }
+
+            btn->SetValue(FALSE);
+
+            if ( btn->HasFlag(wxRB_GROUP) )
+            {
+                // even if there are other radio buttons before this one,
+                // they're not in the same group with us
+                break;
+            }
+        }
+
+        // ... and all after this one
+        for ( wxWindowList::Node *nodeAfter = nodeThis->GetNext();
+              nodeAfter;
+              nodeAfter = nodeAfter->GetNext() )
+        {
+            wxRadioButton *btn = wxDynamicCast(nodeAfter->GetData(),
+                                               wxRadioButton);
+
+            if ( !btn || btn->HasFlag(wxRB_GROUP) )
+            {
+                // no more buttons or the first button of the next group
+                break;
+            }
+
+            btn->SetValue(FALSE);
+        }
+    }
 }
 
 bool wxRadioButton::GetValue() const
@@ -123,7 +186,7 @@ void wxRadioButton::SetFocus()
     // generates BN_CLICKED which leads to showing another dialog and so on
     // without end!
     //
-    // to aviod this, we drop the pseudo BN_CLICKED events generated when the
+    // to avoid this, we drop the pseudo BN_CLICKED events generated when the
     // button gains focus
     m_focusJustSet = TRUE;
 
@@ -142,9 +205,20 @@ bool wxRadioButton::MSWCommand(WXUINT param, WXWORD WXUNUSED(id))
     }
     else // a real clicked event
     {
+        bool isChecked = GetValue();
+
+        if ( HasFlag(wxRB_SINGLE) )
+        {
+            // when we use a "manual" radio button, we have to check the button
+            // ourselves -- but it's reset to unchecked state by the user code
+            // (presumably when another button is pressed)
+            if ( !isChecked )
+                SetValue(TRUE);
+        }
+
         wxCommandEvent event(wxEVT_COMMAND_RADIOBUTTON_SELECTED, GetId());
         event.SetEventObject( this );
-        event.SetInt( GetValue() );
+        event.SetInt(isChecked);
 
         ProcessCommand(event);
     }
@@ -200,7 +274,7 @@ long wxRadioButton::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
 
         return ret;
     }
-    return wxControl::MSWWindowProc(nMsg, wParam, lParam);    
+    return wxControl::MSWWindowProc(nMsg, wParam, lParam);
 }
 
 #endif // wxUSE_RADIOBTN
diff --git a/src/msw/regconf.cpp b/src/msw/regconf.cpp
index 6494b321f7..d9c5fd5aae 100644
--- a/src/msw/regconf.cpp
+++ b/src/msw/regconf.cpp
@@ -43,7 +43,7 @@
 // ----------------------------------------------------------------------------
 
 // we put our data in HKLM\SOFTWARE_KEY\appname
-#define SOFTWARE_KEY    wxString("Software\\")
+#define SOFTWARE_KEY    wxString(wxT("Software\\"))
 
 // ----------------------------------------------------------------------------
 // global functions
@@ -696,7 +696,7 @@ bool wxRegConfig::DeleteEntry(const wxString& value, bool WXUNUSED(bGroupIfEmpty
 
     if ( m_keyLocal.IsEmpty() ) {
       wxString strKey = GetPath().AfterLast(wxCONFIG_PATH_SEPARATOR);
-      SetPath("..");  // changes m_keyLocal
+      SetPath(_T(".."));  // changes m_keyLocal
       return LocalKey().DeleteKey(strKey);
     }
   }
diff --git a/src/msw/region.cpp b/src/msw/region.cpp
index dc33bc15a2..4da2054b10 100644
--- a/src/msw/region.cpp
+++ b/src/msw/region.cpp
@@ -1,16 +1,24 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:      msw/region.cpp
-// Purpose:   Region handling for wxWindows/X11
-// Author:    Markus Holzem
+// Purpose:   wxRegion implementation using Win32 API
+// Author:    Markus Holzem, Vadim Zeitlin
 // Modified by:
 // Created:   Fri Oct 24 10:46:34 MET 1997
 // RCS-ID:    $Id$
-// Copyright: (c) 1997 Julian Smart and Markus Holzem
+// Copyright: (c) 1997-2002 wxWindows team
 // Licence:   wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
 #ifdef __GNUG__
-#pragma implementation "region.h"
+    #pragma implementation "region.h"
 #endif
 
 // For compilers that support precompilation, includes "wx.h".
@@ -20,18 +28,17 @@
 #pragma hdrstop
 #endif
 
-#include "wx/msw/region.h"
+#include "wx/region.h"
 #include "wx/gdicmn.h"
 
-#include "wx/window.h"
 #include "wx/msw/private.h"
 
 IMPLEMENT_DYNAMIC_CLASS(wxRegion, wxGDIObject)
 IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator, wxObject)
 
-//-----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
 // wxRegionRefData implementation
-//-----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
 
 class WXDLLEXPORT wxRegionRefData : public wxGDIRefData
 {
@@ -56,7 +63,7 @@ public:
 #endif
     }
 
-    ~wxRegionRefData()
+    virtual ~wxRegionRefData()
     {
         ::DeleteObject(m_region);
         m_region = 0;
@@ -68,13 +75,14 @@ public:
 #define M_REGION (((wxRegionRefData*)m_refData)->m_region)
 #define M_REGION_OF(rgn) (((wxRegionRefData*)(rgn.m_refData))->m_region)
 
-//-----------------------------------------------------------------------------
-// wxRegion
-//-----------------------------------------------------------------------------
+// ============================================================================
+// wxRegion implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// ctors and dtor
+// ----------------------------------------------------------------------------
 
-/*
- * Create an empty region.
- */
 wxRegion::wxRegion()
 {
     m_refData = (wxRegionRefData *)NULL;
@@ -135,9 +143,9 @@ wxObjectRefData *wxRegion::CloneRefData(const wxObjectRefData *data) const
     return new wxRegionRefData(*(wxRegionRefData *)data);
 }
 
-//-----------------------------------------------------------------------------
-// Modify region
-//-----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+// wxRegion operations
+// ----------------------------------------------------------------------------
 
 // Clear current region
 void wxRegion::Clear()
@@ -195,6 +203,8 @@ bool wxRegion::Combine(const wxRegion& rgn, wxRegionOp op)
     }
     else // we have a valid region
     {
+        AllocExclusive();
+
         int mode;
         switch ( op )
         {
@@ -248,9 +258,9 @@ bool wxRegion::Combine(const wxRect& rect, wxRegionOp op)
                    rect.GetWidth(), rect.GetHeight(), op);
 }
 
-//-----------------------------------------------------------------------------
-// Information on region
-//-----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+// wxRegion bounding box
+// ----------------------------------------------------------------------------
 
 // Outer bounds of region
 void wxRegion::GetBox(wxCoord& x, wxCoord& y, wxCoord&w, wxCoord &h) const
@@ -286,9 +296,9 @@ bool wxRegion::Empty() const
     return (w == 0) && (h == 0);
 }
 
-//-----------------------------------------------------------------------------
-// Tests
-//-----------------------------------------------------------------------------
+// ----------------------------------------------------------------------------
+// wxRegion hit testing
+// ----------------------------------------------------------------------------
 
 // Does the region contain the point (x,y)?
 wxRegionContain wxRegion::Contains(wxCoord x, wxCoord y) const
@@ -296,26 +306,18 @@ wxRegionContain wxRegion::Contains(wxCoord x, wxCoord y) const
     if (!m_refData)
         return wxOutRegion;
 
-    if (::PtInRegion(M_REGION, (int) x, (int) y))
-        return wxInRegion;
-    else
-        return wxOutRegion;
+    return ::PtInRegion(M_REGION, (int) x, (int) y) ? wxInRegion : wxOutRegion;
 }
 
 // Does the region contain the point pt?
 wxRegionContain wxRegion::Contains(const wxPoint& pt) const
 {
-    if (!m_refData)
-        return wxOutRegion;
-
-    if (::PtInRegion(M_REGION, (int) pt.x, (int) pt.y))
-        return wxInRegion;
-    else
-        return wxOutRegion;
+    return Contains(pt.x, pt.y);
 }
 
 // Does the region contain the rectangle (x, y, w, h)?
-wxRegionContain wxRegion::Contains(wxCoord x, wxCoord y, wxCoord w, wxCoord h) const
+wxRegionContain wxRegion::Contains(wxCoord x, wxCoord y,
+                                   wxCoord w, wxCoord h) const
 {
     if (!m_refData)
         return wxOutRegion;
@@ -326,56 +328,43 @@ wxRegionContain wxRegion::Contains(wxCoord x, wxCoord y, wxCoord w, wxCoord h) c
     rect.right = x + w;
     rect.bottom = y + h;
 
-    if (::RectInRegion(M_REGION, & rect))
-        return wxInRegion;
-    else
-        return wxOutRegion;
+    return ::RectInRegion(M_REGION, &rect) ? wxInRegion : wxOutRegion;
 }
 
 // Does the region contain the rectangle rect
 wxRegionContain wxRegion::Contains(const wxRect& rect) const
 {
-    if (!m_refData)
-        return wxOutRegion;
-
-    wxCoord x, y, w, h;
-    x = rect.x;
-    y = rect.y;
-    w = rect.GetWidth();
-    h = rect.GetHeight();
-    return Contains(x, y, w, h);
+    return Contains(rect.x, rect.y, rect.width, rect.height);
 }
 
 // Get internal region handle
 WXHRGN wxRegion::GetHRGN() const
 {
-    if (!m_refData)
-        return (WXHRGN) 0;
-    return (WXHRGN) M_REGION;
+    return (WXHRGN)(m_refData ? M_REGION : 0);
 }
 
-///////////////////////////////////////////////////////////////////////////////
-//                                                                             //
-//                               wxRegionIterator                                 //
-//                                                                             //
-///////////////////////////////////////////////////////////////////////////////
+// ============================================================================
+// wxRegionIterator implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxRegionIterator ctors/dtor
+// ----------------------------------------------------------------------------
 
-/*
- * Initialize empty iterator
- */
-wxRegionIterator::wxRegionIterator() : m_current(0), m_numRects(0), m_rects(NULL)
+void wxRegionIterator::Init()
 {
+    m_current =
+    m_numRects = 0;
+
+    m_rects = NULL;
 }
 
 wxRegionIterator::~wxRegionIterator()
 {
-    if (m_rects)
-        delete[] m_rects;
+    delete [] m_rects;
 }
 
-/*
- * Initialize iterator for region
- */
+// Initialize iterator for region
 wxRegionIterator::wxRegionIterator(const wxRegion& region)
 {
     m_rects = NULL;
@@ -383,18 +372,42 @@ wxRegionIterator::wxRegionIterator(const wxRegion& region)
     Reset(region);
 }
 
-/*
- * Reset iterator for a new /e region.
- */
+wxRegionIterator& wxRegionIterator::operator=(const wxRegionIterator& ri)
+{
+    delete [] m_rects;
+
+    m_current = ri.m_current;
+    m_numRects = ri.m_numRects;
+    if ( m_numRects )
+    {
+        m_rects = new wxRect[m_numRects];
+        for ( long n = 0; n < m_numRects; n++ )
+            m_rects[n] = ri.m_rects[n];
+    }
+    else
+    {
+        m_rects = NULL;
+    }
+
+    return *this;
+}
+
+// ----------------------------------------------------------------------------
+// wxRegionIterator operations
+// ----------------------------------------------------------------------------
+
+// Reset iterator for a new region.
 void wxRegionIterator::Reset(const wxRegion& region)
 {
     m_current = 0;
     m_region = region;
 
     if (m_rects)
+    {
         delete[] m_rects;
 
-    m_rects = NULL;
+        m_rects = NULL;
+    }
 
     if (m_region.Empty())
         m_numRects = 0;
@@ -421,7 +434,7 @@ void wxRegionIterator::Reset(const wxRegion& region)
         m_numRects = header->nCount;
 
         delete[] (char*) rgnData;
-#else
+#else // Win16
         RECT rect;
         ::GetRgnBox(((wxRegionRefData*)region.m_refData)->m_region, &rect);
         m_rects = new wxRect[1];
@@ -431,55 +444,56 @@ void wxRegionIterator::Reset(const wxRegion& region)
         m_rects[0].height = rect.bottom - rect.top;
 
         m_numRects = 1;
-#endif
+#endif // Win32/16
     }
 }
 
-/*
- * Increment iterator. The rectangle returned is the one after the
- * incrementation.
- */
-void wxRegionIterator::operator ++ ()
+wxRegionIterator& wxRegionIterator::operator++()
 {
     if (m_current < m_numRects)
         ++m_current;
+
+    return *this;
 }
 
-/*
- * Increment iterator. The rectangle returned is the one before the
- * incrementation.
- */
-void wxRegionIterator::operator ++ (int)
+wxRegionIterator wxRegionIterator::operator ++ (int)
 {
+    wxRegionIterator tmp = *this;
     if (m_current < m_numRects)
         ++m_current;
+
+    return tmp;
 }
 
+// ----------------------------------------------------------------------------
+// wxRegionIterator accessors
+// ----------------------------------------------------------------------------
+
 wxCoord wxRegionIterator::GetX() const
 {
-    if (m_current < m_numRects)
-        return m_rects[m_current].x;
-    return 0;
+    wxCHECK_MSG( m_current < m_numRects, 0, _T("invalid wxRegionIterator") );
+
+    return m_rects[m_current].x;
 }
 
 wxCoord wxRegionIterator::GetY() const
 {
-    if (m_current < m_numRects)
-        return m_rects[m_current].y;
-    return 0;
+    wxCHECK_MSG( m_current < m_numRects, 0, _T("invalid wxRegionIterator") );
+
+    return m_rects[m_current].y;
 }
 
 wxCoord wxRegionIterator::GetW() const
 {
-    if (m_current < m_numRects)
-        return m_rects[m_current].width;
-    return 0;
+    wxCHECK_MSG( m_current < m_numRects, 0, _T("invalid wxRegionIterator") );
+
+    return m_rects[m_current].width;
 }
 
 wxCoord wxRegionIterator::GetH() const
 {
-    if (m_current < m_numRects)
-        return m_rects[m_current].height;
-    return 0;
+    wxCHECK_MSG( m_current < m_numRects, 0, _T("invalid wxRegionIterator") );
+
+    return m_rects[m_current].height;
 }
 
diff --git a/src/msw/registry.cpp b/src/msw/registry.cpp
index ca0f62ace8..75fb41f4aa 100644
--- a/src/msw/registry.cpp
+++ b/src/msw/registry.cpp
@@ -303,7 +303,7 @@ wxString wxRegKey::GetName(bool bShortPrefix) const
   wxString str = bShortPrefix ? aStdKeys[key].szShortName
                               : aStdKeys[key].szName;
   if ( !m_strKey.IsEmpty() )
-    str << "\\" << m_strKey;
+    str << _T("\\") << m_strKey;
 
   return str;
 }
diff --git a/src/msw/scrolbar.cpp b/src/msw/scrolbar.cpp
index 7c32db671e..d10d08daad 100644
--- a/src/msw/scrolbar.cpp
+++ b/src/msw/scrolbar.cpp
@@ -122,9 +122,40 @@ wxScrollBar::~wxScrollBar(void)
 bool wxScrollBar::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam,
                               WXWORD pos, WXHWND control)
 {
-    int position = ::GetScrollPos((HWND) control, SB_CTL);
-    int minPos, maxPos;
-    ::GetScrollRange((HWND) control, SB_CTL, &minPos, &maxPos);
+    // current and max positions
+    int position,
+        maxPos, trackPos = pos;
+
+#ifdef __WIN32__
+    // when we're dragging the scrollbar we can't use pos parameter because it
+    // is limited to 16 bits
+    if ( wParam == SB_THUMBPOSITION || wParam == SB_THUMBTRACK )
+    {
+        SCROLLINFO scrollInfo;
+        wxZeroMemory(scrollInfo);
+        scrollInfo.cbSize = sizeof(SCROLLINFO);
+
+        // also get the range if we call GetScrollInfo() anyhow -- this is less
+        // expensive than call it once here and then call GetScrollRange()
+        // below
+        scrollInfo.fMask = SIF_RANGE | SIF_POS | SIF_TRACKPOS;
+
+        if ( !::GetScrollInfo(GetHwnd(), SB_CTL, &scrollInfo) )
+        {
+            wxLogLastError(_T("GetScrollInfo"));
+        }
+
+        trackPos = scrollInfo.nTrackPos;
+        position = scrollInfo.nPos;
+        maxPos = scrollInfo.nMax;
+    }
+    else
+#endif // Win32
+    {
+        position = ::GetScrollPos((HWND) control, SB_CTL);
+        int minPos;
+        ::GetScrollRange((HWND) control, SB_CTL, &minPos, &maxPos);
+    }
 
 #if defined(__WIN95__)
     // A page size greater than one has the effect of reducing the effective
@@ -170,12 +201,12 @@ bool wxScrollBar::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam,
             break;
 
         case SB_THUMBPOSITION:
-            nScrollInc = pos - position;
+            nScrollInc = trackPos - position;
             scrollEvent = wxEVT_SCROLL_THUMBRELEASE;
             break;
 
         case SB_THUMBTRACK:
-            nScrollInc = pos - position;
+            nScrollInc = trackPos - position;
             scrollEvent = wxEVT_SCROLL_THUMBTRACK;
             break;
 
@@ -217,16 +248,16 @@ bool wxScrollBar::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam,
 void wxScrollBar::SetThumbPosition(int viewStart)
 {
 #if defined(__WIN95__)
-  SCROLLINFO info;
-  info.cbSize = sizeof(SCROLLINFO);
-  info.nPage = 0;
-  info.nMin = 0;
-  info.nPos = viewStart;
-  info.fMask = SIF_POS ;
-
-  ::SetScrollInfo((HWND) GetHWND(), SB_CTL, &info, TRUE);
+    SCROLLINFO info;
+    info.cbSize = sizeof(SCROLLINFO);
+    info.nPage = 0;
+    info.nMin = 0;
+    info.nPos = viewStart;
+    info.fMask = SIF_POS ;
+
+    ::SetScrollInfo((HWND) GetHWND(), SB_CTL, &info, TRUE);
 #else
-  ::SetScrollPos((HWND) GetHWND(), SB_CTL, viewStart, TRUE);
+    ::SetScrollPos((HWND) GetHWND(), SB_CTL, viewStart, TRUE);
 #endif
 }
 
diff --git a/src/msw/slider95.cpp b/src/msw/slider95.cpp
index 213f6b0b67..61eb07927b 100644
--- a/src/msw/slider95.cpp
+++ b/src/msw/slider95.cpp
@@ -109,13 +109,14 @@ bool wxSlider95::Create(wxWindow *parent, wxWindowID id,
             );
 
         // Now create min static control
-        wxSprintf(wxBuffer, wxT("%d"), minValue);
+        wxString minLabel;
+        minLabel.Printf(wxT("%d"), minValue);
         wstyle = STATIC_FLAGS;
         if ( m_windowStyle & wxCLIP_SIBLINGS )
             msStyle |= WS_CLIPSIBLINGS;
         m_staticMin = (WXHWND) CreateWindowEx
             (
-                0, wxT("STATIC"), wxBuffer,
+                0, wxT("STATIC"), minLabel,
                 wstyle,
                 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(),
                 wxGetInstance(), NULL
@@ -153,7 +154,7 @@ bool wxSlider95::Create(wxWindow *parent, wxWindowID id,
 
     HWND scroll_bar = CreateWindowEx
         (
-            MakeExtendedStyle(m_windowStyle), TRACKBAR_CLASS, wxBuffer,
+            MakeExtendedStyle(m_windowStyle), TRACKBAR_CLASS, wxT(""),
             msStyle,
             0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId,
             wxGetInstance(), NULL
@@ -179,7 +180,8 @@ bool wxSlider95::Create(wxWindow *parent, wxWindowID id,
     if ( m_windowStyle & wxSL_LABELS )
     {
         // Finally, create max value static item
-        wxSprintf(wxBuffer, wxT("%d"), maxValue);
+        wxString maxLabel;
+        maxLabel.Printf(wxT("%d"), maxValue);
         wstyle = STATIC_FLAGS;
 
         if ( m_windowStyle & wxCLIP_SIBLINGS )
@@ -187,7 +189,7 @@ bool wxSlider95::Create(wxWindow *parent, wxWindowID id,
 
         m_staticMax = (WXHWND) CreateWindowEx
             (
-                0, wxT("STATIC"), wxBuffer,
+                0, wxT("STATIC"), maxLabel,
                 wstyle,
                 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(),
                 wxGetInstance(), NULL
@@ -319,8 +321,9 @@ void wxSlider95::SetValue(int value)
 
     if (m_staticValue)
     {
-        wxSprintf(wxBuffer, wxT("%d"), value);
-        ::SetWindowText((HWND) m_staticValue, wxBuffer);
+        wxString str;
+        str.Printf(wxT("%d"), value);
+        ::SetWindowText((HWND) m_staticValue, str);
     }
 }
 
diff --git a/src/msw/slidrmsw.cpp b/src/msw/slidrmsw.cpp
index 9824dafd2a..af096e87f3 100644
--- a/src/msw/slidrmsw.cpp
+++ b/src/msw/slidrmsw.cpp
@@ -92,11 +92,12 @@ bool wxSliderMSW::Create(wxWindow *parent, wxWindowID id,
                            wxGetInstance(), NULL);
 
   // Now create min static control
-  wxSprintf(wxBuffer, wxT("%d"), minValue);
+  wxString buf;
+  buf.Printf(wxT("%d"), minValue);
   DWORD wstyle = STATIC_FLAGS;
   if ( m_windowStyle & wxCLIP_SIBLINGS )
         wstyle |= WS_CLIPSIBLINGS;
-  m_staticMin = (WXHWND) CreateWindowEx(0, wxT("STATIC"), wxBuffer,
+  m_staticMin = (WXHWND) CreateWindowEx(0, wxT("STATIC"), buf,
                          wstyle,
                          0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(),
                          wxGetInstance(), NULL);
@@ -107,7 +108,7 @@ bool wxSliderMSW::Create(wxWindow *parent, wxWindowID id,
   else
     msStyle = SBS_HORZ | WS_CHILD | WS_VISIBLE | WS_TABSTOP ;
 
-  HWND scroll_bar = CreateWindowEx(MakeExtendedStyle(m_windowStyle), wxT("SCROLLBAR"), wxBuffer,
+  HWND scroll_bar = CreateWindowEx(MakeExtendedStyle(m_windowStyle), wxT("SCROLLBAR"), wxT(""),
                          msStyle,
                          0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId,
                          wxGetInstance(), NULL);
@@ -126,11 +127,11 @@ bool wxSliderMSW::Create(wxWindow *parent, wxWindowID id,
   SubclassWin(GetHWND());
 
   // Finally, create max value static item
-  wxSprintf(wxBuffer, wxT("%d"), maxValue);
+  buf.Printf(wxT("%d"), maxValue);
   wstyle = STATIC_FLAGS;
   if ( m_windowStyle & wxCLIP_SIBLINGS )
         wstyle |= WS_CLIPSIBLINGS;
-  m_staticMax = (WXHWND) CreateWindowEx(0, wxT("STATIC"), wxBuffer,
+  m_staticMax = (WXHWND) CreateWindowEx(0, wxT("STATIC"), buf,
                          wstyle,
                          0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(),
                          wxGetInstance(), NULL);
@@ -261,8 +262,9 @@ void wxSliderMSW::SetValue(int value)
   ::SetScrollPos(GetHwnd(), SB_CTL, value, TRUE);
   if (m_staticValue)
   {
-    wxSprintf(wxBuffer, wxT("%d"), value);
-    SetWindowText((HWND) m_staticValue, wxBuffer);
+    wxString buf;
+    buf.Printf(wxT("%d"), value);
+    SetWindowText((HWND) m_staticValue, buf);
   }
 }
 
diff --git a/src/msw/stattext.cpp b/src/msw/stattext.cpp
index 4b33ade2c9..1c0810694c 100644
--- a/src/msw/stattext.cpp
+++ b/src/msw/stattext.cpp
@@ -170,16 +170,4 @@ bool wxStaticText::SetFont(const wxFont& font)
     return ret;
 }
 
-long wxStaticText::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
-{
-    // Ensure that static items get messages. Some controls don't like this
-    // message to be intercepted (e.g. RichEdit), hence the tests.
-    // Messes up display with Windows XP, apparently, so have to
-    // do explicit hit-testing in wxWindowMSW.
-#if 0
-    if (nMsg == WM_NCHITTEST)
-        return (long)HTCLIENT;
-#endif
-    return wxWindow::MSWWindowProc(nMsg, wParam, lParam);
-}
 #endif // wxUSE_STATTEXT
diff --git a/src/msw/tabctrl.cpp b/src/msw/tabctrl.cpp
index 1e4e378ac0..c2553f2f2f 100644
--- a/src/msw/tabctrl.cpp
+++ b/src/msw/tabctrl.cpp
@@ -45,6 +45,7 @@
 #include "wx/msw/imaglist.h"
 
 IMPLEMENT_DYNAMIC_CLASS(wxTabCtrl, wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxTabEvent, wxNotifyEvent)
 
 DEFINE_EVENT_TYPE(wxEVT_COMMAND_TAB_SEL_CHANGED)
 DEFINE_EVENT_TYPE(wxEVT_COMMAND_TAB_SEL_CHANGING)
@@ -76,15 +77,8 @@ bool wxTabCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, cons
 
   m_windowStyle = style;
 
-  SetFont(* (wxTheFontList->FindOrCreateFont(11, wxSWISS, wxNORMAL, wxNORMAL)));
-
   SetParent(parent);
 
-  DWORD msflags = 0;
-  if (style & wxBORDER)
-    msflags |= WS_BORDER;
-  msflags |= WS_CHILD | WS_VISIBLE;
-  
   if (width <= 0)
     width = 100;
   if (height <= 0)
@@ -105,6 +99,8 @@ bool wxTabCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, cons
     tabStyle |= TCS_FIXEDWIDTH;
   if (m_windowStyle & wxTC_OWNERDRAW)
     tabStyle |= TCS_OWNERDRAWFIXED;
+  if (m_windowStyle & wxBORDER)
+    tabStyle |= WS_BORDER;
 
   tabStyle |= TCS_TOOLTIPS;
 
@@ -112,7 +108,7 @@ bool wxTabCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, cons
   HWND hWndTabCtrl = CreateWindowEx(0L,     // No extended styles.
     WC_TABCONTROL,                          // Class name for the tab control
     wxT(""),                                 // No default text.
-    WS_CHILD | WS_BORDER | WS_VISIBLE | tabStyle,    // Styles and defaults.
+    tabStyle,    // Styles and defaults.
     x, y, width, height,                    // Standard size and position.
     (HWND) parent->GetHWND(),               // Parent window
     (HMENU)m_windowId,                      // ID.
@@ -124,6 +120,8 @@ bool wxTabCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, cons
   
   SubclassWin((WXHWND) hWndTabCtrl);
 
+  SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
+
   return TRUE;
 }
 
@@ -161,6 +159,7 @@ bool wxTabCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
     event.SetEventObject( this );
     event.SetEventType(eventType);
     event.SetInt(idCtrl) ;
+    event.SetSelection(idCtrl);
 
     return ProcessEvent(event);
 }
@@ -442,14 +441,5 @@ void wxMapBitmap(HBITMAP hBitmap, int width, int height)
 }
 #endif
 
-// Tab event
-IMPLEMENT_DYNAMIC_CLASS(wxTabEvent, wxCommandEvent)
-
-wxTabEvent::wxTabEvent(wxEventType commandType, int id):
-  wxCommandEvent(commandType, id)
-{
-}
-
-
 #endif
     // __WIN95__
diff --git a/src/msw/taskbar.cpp b/src/msw/taskbar.cpp
index f17654653b..d422b3c214 100644
--- a/src/msw/taskbar.cpp
+++ b/src/msw/taskbar.cpp
@@ -180,7 +180,7 @@ bool wxTaskBarIcon::PopupMenu(wxMenu *menu) //, int x, int y);
     wxGetMousePosition(&x, &y);
 
     // is wxFrame the best window type to use???
-    win = new wxFrame(NULL, -1, "", wxPoint(x,y), wxSize(-1,-1), 0);
+    win = new wxFrame(NULL, -1, wxEmptyString, wxPoint(x,y), wxSize(-1,-1), 0);
     win->PushEventHandler(this);
 
     // Remove from record of top-level windows, or will confuse wxWindows
diff --git a/src/msw/tbar95.cpp b/src/msw/tbar95.cpp
index 8777634b70..9fd39ade69 100644
--- a/src/msw/tbar95.cpp
+++ b/src/msw/tbar95.cpp
@@ -472,6 +472,15 @@ bool wxToolBar::Realize()
 
     const bool isVertical = HasFlag(wxTB_VERTICAL);
 
+    // delete all old buttons, if any
+    for ( size_t pos = 0; pos < m_nButtons; pos++ )
+    {
+        if ( !::SendMessage(GetHwnd(), TB_DELETEBUTTON, 0, 0) )
+        {
+            wxLogDebug(wxT("TB_DELETEBUTTON failed"));
+        }
+    }
+
     // First, add the bitmap: we use one bitmap for all toolbar buttons
     // ----------------------------------------------------------------
 
@@ -612,15 +621,6 @@ bool wxToolBar::Realize()
 
                 bitmapId = m_nButtons;
             }
-
-            // Now delete all the buttons
-            for ( size_t pos = 0; pos < m_nButtons; pos++ )
-            {
-                if ( !::SendMessage(GetHwnd(), TB_DELETEBUTTON, 0, 0) )
-                {
-                    wxLogDebug(wxT("TB_DELETEBUTTON failed"));
-                }
-            }
         }
 
         if ( addBitmap ) // no old bitmap or we can't replace it
diff --git a/src/msw/textctrl.cpp b/src/msw/textctrl.cpp
index 9cb0a4f03a..34956b23ae 100644
--- a/src/msw/textctrl.cpp
+++ b/src/msw/textctrl.cpp
@@ -38,6 +38,7 @@
     #include "wx/intl.h"
     #include "wx/log.h"
     #include "wx/app.h"
+    #include "wx/menu.h"
 #endif
 
 #include "wx/module.h"
@@ -149,17 +150,25 @@ BEGIN_EVENT_TABLE(wxTextCtrl, wxControl)
     EVT_CHAR(wxTextCtrl::OnChar)
     EVT_DROP_FILES(wxTextCtrl::OnDropFiles)
 
+#if wxUSE_RICHEDIT
+    EVT_RIGHT_UP(wxTextCtrl::OnRightClick)
+#endif
+
     EVT_MENU(wxID_CUT, wxTextCtrl::OnCut)
     EVT_MENU(wxID_COPY, wxTextCtrl::OnCopy)
     EVT_MENU(wxID_PASTE, wxTextCtrl::OnPaste)
     EVT_MENU(wxID_UNDO, wxTextCtrl::OnUndo)
     EVT_MENU(wxID_REDO, wxTextCtrl::OnRedo)
+    EVT_MENU(wxID_CLEAR, wxTextCtrl::OnDelete)
+    EVT_MENU(wxID_SELECTALL, wxTextCtrl::OnSelectAll)
 
     EVT_UPDATE_UI(wxID_CUT, wxTextCtrl::OnUpdateCut)
     EVT_UPDATE_UI(wxID_COPY, wxTextCtrl::OnUpdateCopy)
     EVT_UPDATE_UI(wxID_PASTE, wxTextCtrl::OnUpdatePaste)
     EVT_UPDATE_UI(wxID_UNDO, wxTextCtrl::OnUpdateUndo)
     EVT_UPDATE_UI(wxID_REDO, wxTextCtrl::OnUpdateRedo)
+    EVT_UPDATE_UI(wxID_CLEAR, wxTextCtrl::OnUpdateDelete)
+    EVT_UPDATE_UI(wxID_SELECTALL, wxTextCtrl::OnUpdateSelectAll)
 #ifdef __WIN16__
     EVT_ERASE_BACKGROUND(wxTextCtrl::OnEraseBackground)
 #endif
@@ -177,9 +186,19 @@ void wxTextCtrl::Init()
 {
 #if wxUSE_RICHEDIT
     m_verRichEdit = 0;
+#endif // wxUSE_RICHEDIT
 
+    m_privateContextMenu = NULL;
     m_suppressNextUpdate = FALSE;
-#endif // wxUSE_RICHEDIT
+}
+
+wxTextCtrl::~wxTextCtrl()
+{
+    if (m_privateContextMenu)
+    {
+        delete m_privateContextMenu;
+        m_privateContextMenu = NULL;
+    }
 }
 
 bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
@@ -570,7 +589,7 @@ bool wxTextCtrl::StreamIn(const wxString& value,
 {
     return FALSE;
 }
-#else
+#else // !__WXWINE__
 
 #if wxUSE_UNICODE_MSLU
 bool wxTextCtrl::StreamIn(const wxString& value,
@@ -584,7 +603,7 @@ bool wxTextCtrl::StreamIn(const wxString& value,
                           bool selectionOnly)
 {
     // we have to use EM_STREAMIN to force richedit control 2.0+ to show any
-    // text in the non default charset - otherwise it thinks it knows better
+    // text in the non default charset -- otherwise it thinks it knows better
     // than we do and always shows it in the default one
 
     // first get the Windows code page for this encoding
@@ -620,6 +639,14 @@ bool wxTextCtrl::StreamIn(const wxString& value,
     // the cast below is needed for broken (very) old mingw32 headers
     eds.pfnCallback = (EDITSTREAMCALLBACK)wxRichEditStreamIn;
 
+    // we're going to receive 2 EN_CHANGE notifications if we got any selection
+    // (same problem as in DoWriteText())
+    if ( selectionOnly && HasSelection() )
+    {
+        // so suppress one of them
+        m_suppressNextUpdate = TRUE;
+    }
+
     if ( !::SendMessage(GetHwnd(), EM_STREAMIN,
                         SF_TEXT |
                         SF_UNICODE |
@@ -636,8 +663,7 @@ bool wxTextCtrl::StreamIn(const wxString& value,
     return TRUE;
 }
 
-#endif
-    // __WXWINE__
+#endif // __WXWINE__/!__WXWINE__
  
 #endif // wxUSE_RICHEDIT
 
@@ -700,18 +726,35 @@ void wxTextCtrl::DoWriteText(const wxString& value, bool selectionOnly)
     if ( !done )
 #endif // wxUSE_RICHEDIT
     {
+        // in some cases we get 2 EN_CHANGE notifications after the SendMessage
+        // call below which is confusing for the client code and so should be
+        // avoided
+        //
+        // these cases are: (a) plain EDIT controls if EM_REPLACESEL is used
+        // and there is a non empty selection currently and (b) rich text
+        // controls in any case
+        if (
 #if wxUSE_RICHEDIT
-        // rich edit text control sends us 2 EN_CHANGE events when we send
-        // WM_SETTEXT to it, we have to suppress one of them to make wxTextCtrl
-        // behaviour consistent
-        if ( IsRich() )
+            IsRich() ||
+#endif // wxUSE_RICHEDIT
+            (selectionOnly && HasSelection()) )
         {
             m_suppressNextUpdate = TRUE;
         }
-#endif // wxUSE_RICHEDIT
 
         ::SendMessage(GetHwnd(), selectionOnly ? EM_REPLACESEL : WM_SETTEXT,
                       0, (LPARAM)valueDos.c_str());
+
+        // OTOH, non rich text controls don't generate any events at all when
+        // we use WM_SETTEXT -- have to emulate them here
+        if ( !selectionOnly
+#if wxUSE_RICHEDIT
+                && !IsRich()
+#endif // wxUSE_RICHEDIT
+           )
+        {
+            SendUpdateEvent();
+        }
     }
 
     AdjustSpaceLimit();
@@ -722,6 +765,15 @@ void wxTextCtrl::AppendText(const wxString& text)
     SetInsertionPointEnd();
 
     WriteText(text);
+
+#if wxUSE_RICHEDIT
+    if ( IsMultiLine() && GetRichVersion() > 1 )
+    {
+        // setting the caret to the end and showing it simply doesn't work for
+        // RichEdit 2.0 -- force it to still do what we want
+        ::SendMessage(GetHwnd(), EM_LINESCROLL, 0, GetNumberOfLines());
+    }
+#endif // wxUSE_RICHEDIT
 }
 
 void wxTextCtrl::Clear()
@@ -786,14 +838,19 @@ void wxTextCtrl::Paste()
     }
 }
 
-bool wxTextCtrl::CanCopy() const
+bool wxTextCtrl::HasSelection() const
 {
-    // Can copy if there's a selection
     long from, to;
     GetSelection(&from, &to);
     return from != to;
 }
 
+bool wxTextCtrl::CanCopy() const
+{
+    // Can copy if there's a selection
+    return HasSelection();
+}
+
 bool wxTextCtrl::CanCut() const
 {
     return CanCopy() && IsEditable();
@@ -1286,11 +1343,13 @@ long wxTextCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
 
     if ( nMsg == WM_GETDLGCODE )
     {
+        // we always want the chars and the arrows: the arrows for navigation
+        // and the chars because we want Ctrl-C to work even in a read only
+        // control
+        long lDlgCode = DLGC_WANTCHARS | DLGC_WANTARROWS;
+
         if ( IsEditable() )
         {
-            // we always want the chars and the arrows
-            long lDlgCode = DLGC_WANTCHARS | DLGC_WANTARROWS;
-
             // we may have several different cases:
             // 1. normal case: both TAB and ENTER are used for dlg navigation
             // 2. ctrl which wants TAB for itself: ENTER is used to pass to the
@@ -1311,15 +1370,11 @@ long wxTextCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
         }
         else // !editable
         {
-            // when the control can't be edited by user, it doesn't need any
-            // extra keys changing its contents at all -- but it still needs
-            // the arrows to allow navigating in it
-            //
             // NB: use "=", not "|=" as the base class version returns the
             //     same flags is this state as usual (i.e. including
             //     DLGC_WANTMESSAGE). This is strange (how does it work in the
             //     native Win32 apps?) but for now live with it.
-            lRc = DLGC_WANTARROWS;
+            lRc = lDlgCode;
         }
     }
 
@@ -1559,6 +1614,19 @@ void wxTextCtrl::OnRedo(wxCommandEvent& WXUNUSED(event))
     Redo();
 }
 
+void wxTextCtrl::OnDelete(wxCommandEvent& event)
+{
+    long from, to;
+    GetSelection(& from, & to);
+    if (from != -1 && to != -1)
+        Remove(from, to);
+}
+
+void wxTextCtrl::OnSelectAll(wxCommandEvent& event)
+{
+    SetSelection(-1, -1);
+}
+
 void wxTextCtrl::OnUpdateCut(wxUpdateUIEvent& event)
 {
     event.Enable( CanCut() );
@@ -1584,6 +1652,44 @@ void wxTextCtrl::OnUpdateRedo(wxUpdateUIEvent& event)
     event.Enable( CanRedo() );
 }
 
+void wxTextCtrl::OnUpdateDelete(wxUpdateUIEvent& event)
+{
+    long from, to;
+    GetSelection(& from, & to);
+    event.Enable(from != -1 && to != -1 && from != to && IsEditable()) ;
+}
+
+void wxTextCtrl::OnUpdateSelectAll(wxUpdateUIEvent& event)
+{
+    event.Enable(GetLastPosition() > 0);
+}
+
+void wxTextCtrl::OnRightClick(wxMouseEvent& event)
+{
+#if wxUSE_RICHEDIT
+    if (IsRich())
+    {
+        if (!m_privateContextMenu)
+        {
+            m_privateContextMenu = new wxMenu;
+            m_privateContextMenu->Append(wxID_UNDO, _("&Undo"));
+            m_privateContextMenu->Append(wxID_REDO, _("&Redo"));
+            m_privateContextMenu->AppendSeparator();
+            m_privateContextMenu->Append(wxID_CUT, _("Cu&t"));
+            m_privateContextMenu->Append(wxID_COPY, _("&Copy"));
+            m_privateContextMenu->Append(wxID_PASTE, _("&Paste"));
+            m_privateContextMenu->Append(wxID_CLEAR, _("&Delete"));
+            m_privateContextMenu->AppendSeparator();
+            m_privateContextMenu->Append(wxID_SELECTALL, _("Select &All"));
+        }
+        PopupMenu(m_privateContextMenu, event.GetPosition());
+        return;
+    }
+    else
+#endif
+    event.Skip();
+}
+
 // the rest of the file only deals with the rich edit controls
 #if wxUSE_RICHEDIT
 
diff --git a/src/msw/thread.cpp b/src/msw/thread.cpp
index d93d017704..4cbf5710d5 100644
--- a/src/msw/thread.cpp
+++ b/src/msw/thread.cpp
@@ -243,7 +243,7 @@ wxMutexError wxMutexInternal::Unlock()
 {
     if ( !::ReleaseMutex(m_mutex) )
     {
-        wxLogLastError(_("ReleaseMutex()"));
+        wxLogLastError(_T("ReleaseMutex()"));
 
         return wxMUTEX_MISC_ERROR;
     }
diff --git a/src/msw/tooltip.cpp b/src/msw/tooltip.cpp
index 930748cdbf..7ed9b614e1 100644
--- a/src/msw/tooltip.cpp
+++ b/src/msw/tooltip.cpp
@@ -77,7 +77,7 @@ static WNDPROC gs_wndprocToolTip = (WNDPROC)NULL;
 class wxToolInfo : public TOOLINFO
 {
 public:
-    wxToolInfo(HWND hwnd)
+    wxToolInfo(HWND hwndOwner)
     {
         // initialize all members
         ::ZeroMemory(this, sizeof(TOOLINFO));
@@ -95,8 +95,9 @@ public:
         cbSize = sizeof(TOOLINFO);
 #endif // compile-time comctl32.dll version
 
+        hwnd = hwndOwner;
         uFlags = TTF_IDISHWND;
-        uId = (UINT)hwnd;
+        uId = (UINT)hwndOwner;
     }
 };
 
@@ -274,12 +275,14 @@ void wxToolTip::Add(WXHWND hWnd)
 
     wxToolInfo ti(hwnd);
 
-    // as we store our text anyhow, it seems useless to waste system memory
-    // by asking the tooltip ctrl to remember it too - instead it will send
-    // us TTN_NEEDTEXT (via WM_NOTIFY) when it is about to be shown
+    // another possibility would be to specify LPSTR_TEXTCALLBACK here as we
+    // store the tooltip text ourselves anyhow, and provide it in response to
+    // TTN_NEEDTEXT (sent via WM_NOTIFY), but then we would be limited to 79
+    // character tooltips as this is the size of the szText buffer in
+    // NMTTDISPINFO struct -- and setting the tooltip here we can have tooltips
+    // of any length
     ti.hwnd = hwnd;
-    ti.lpszText = LPSTR_TEXTCALLBACK;
-    // instead of: ti.lpszText = (char *)m_text.c_str();
+    ti.lpszText = (wxChar *)m_text.c_str(); // const_cast
 
     if ( !SendTooltipMessage(GetToolTipCtrl(), TTM_ADDTOOL, 0, &ti) )
     {
@@ -309,7 +312,7 @@ void wxToolTip::Add(WXHWND hWnd)
                     }
                 }
 
-                HDC hdc = CreateCompatibleDC(NULL);
+                MemoryHDC hdc;
                 if ( !hdc )
                 {
                     wxLogLastError(wxT("CreateCompatibleDC(NULL)"));
@@ -326,8 +329,6 @@ void wxToolTip::Add(WXHWND hWnd)
                     wxLogLastError(wxT("GetTextExtentPoint"));
                 }
 
-                DeleteDC(hdc);
-
                 SendTooltipMessage(GetToolTipCtrl(), TTM_SETMAXTIPWIDTH,
                                    0, (void *)sz.cx);
             }
@@ -400,7 +401,7 @@ void wxToolTip::SetTip(const wxString& tip)
 
     if ( m_window )
     {
-        // update it immediately
+        // update the tip text shown by the control
         wxToolInfo ti(GetHwndOf(m_window));
         ti.lpszText = (wxChar *)m_text.c_str();
 
diff --git a/src/msw/toplevel.cpp b/src/msw/toplevel.cpp
index 6d5605551f..bd65405e7f 100644
--- a/src/msw/toplevel.cpp
+++ b/src/msw/toplevel.cpp
@@ -38,6 +38,8 @@
     #include "wx/containr.h"        // wxSetFocusToChild()
 #endif //WX_PRECOMP
 
+#include "wx/module.h"
+
 #include "wx/msw/private.h"
 
 #include "wx/popupwin.h"
@@ -76,8 +78,32 @@ wxWindowList wxModelessWindows;
 // the name of the default wxWindows class
 extern const wxChar *wxCanvasClassName;
 
-// the hidden parent for wxFRAME_NO_TASKBAR unowned frames
-wxWindow *wxTopLevelWindowMSW::ms_hiddenParent = NULL;
+// ----------------------------------------------------------------------------
+// wxTLWHiddenParentModule: used to manage the hidden parent window (we need a
+// module to ensure that the window is always deleted)
+// ----------------------------------------------------------------------------
+
+class wxTLWHiddenParentModule : public wxModule
+{
+public:
+    // module init/finalize
+    virtual bool OnInit();
+    virtual void OnExit();
+
+    // get the hidden window (creates on demand)
+    static HWND GetHWND();
+
+private:
+    // the HWND of the hidden parent
+    static HWND ms_hwnd;
+
+    // the class used to create it
+    static const wxChar *ms_className;
+
+    DECLARE_DYNAMIC_CLASS(wxTLWHiddenParentModule)
+};
+
+IMPLEMENT_DYNAMIC_CLASS(wxTLWHiddenParentModule, wxModule)
 
 // ============================================================================
 // wxTopLevelWindowMSW implementation
@@ -213,38 +239,32 @@ WXHWND wxTopLevelWindowMSW::MSWGetParent() const
     // parent HWND or it would be always on top of its parent which is not what
     // we usually want (in fact, we only want it for frames with the
     // wxFRAME_FLOAT_ON_PARENT flag)
-    wxWindow *parent;
+    HWND hwndParent = NULL;
     if ( HasFlag(wxFRAME_FLOAT_ON_PARENT) )
     {
-        parent = GetParent();
+        const wxWindow *parent = GetParent();
 
-        // this flag doesn't make sense then and will be ignored
-        wxASSERT_MSG( parent,
-                      _T("wxFRAME_FLOAT_ON_PARENT but no parent?") );
-    }
-    else // don't float on parent, must not be owned
-    {
-        parent = NULL;
+        if ( !parent )
+        {
+            // this flag doesn't make sense then and will be ignored
+            wxFAIL_MSG( _T("wxFRAME_FLOAT_ON_PARENT but no parent?") );
+        }
+        else
+        {
+            hwndParent = GetHwndOf(parent);
+        }
     }
+    //else: don't float on parent, must not be owned
 
     // now deal with the 2nd taskbar-related problem (see comments above in
     // MSWGetStyle())
-    if ( HasFlag(wxFRAME_NO_TASKBAR) && !parent )
+    if ( HasFlag(wxFRAME_NO_TASKBAR) && !hwndParent )
     {
-        if ( !ms_hiddenParent )
-        {
-            ms_hiddenParent = new wxTopLevelWindowMSW(NULL, -1, _T(""));
-
-            // we shouldn't leave it in wxTopLevelWindows or we wouldn't
-            // terminate the app when the last user-created frame is deleted --
-            // see ~wxTopLevelWindowMSW
-            wxTopLevelWindows.DeleteObject(ms_hiddenParent);
-        }
-
-        parent = ms_hiddenParent;
+        // use hidden parent
+        hwndParent = wxTLWHiddenParentModule::GetHWND();
     }
 
-    return parent ? parent->GetHWND() : WXHWND(NULL);
+    return (WXHWND)hwndParent;
 }
 
 bool wxTopLevelWindowMSW::CreateDialog(const void *dlgTemplate,
@@ -451,15 +471,6 @@ bool wxTopLevelWindowMSW::Create(wxWindow *parent,
 
 wxTopLevelWindowMSW::~wxTopLevelWindowMSW()
 {
-    if ( this == ms_hiddenParent )
-    {
-        // stop [infinite] recursion which would otherwise happen when we do
-        // "delete ms_hiddenParent" below -- and we're not interested in doing
-        // anything of the rest below for that window because the rest of
-        // wxWindows doesn't even know about it
-        return;
-    }
-
     if ( wxModelessWindows.Find(this) )
         wxModelessWindows.DeleteObject(this);
 
@@ -475,17 +486,6 @@ wxTopLevelWindowMSW::~wxTopLevelWindowMSW()
             ::BringWindowToTop(GetHwndOf(parent));
         }
     }
-
-    // if this is the last top-level window, we're going to exit and we should
-    // delete ms_hiddenParent now to avoid leaking it
-    if ( IsLastBeforeExit() )
-    {
-        if ( ms_hiddenParent )
-        {
-            delete ms_hiddenParent;
-            ms_hiddenParent = NULL;
-        }
-    }
 }
 
 // ----------------------------------------------------------------------------
@@ -796,3 +796,79 @@ wxDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
     }
 }
 
+// ============================================================================
+// wxTLWHiddenParentModule implementation
+// ============================================================================
+
+HWND wxTLWHiddenParentModule::ms_hwnd = NULL;
+
+const wxChar *wxTLWHiddenParentModule::ms_className = NULL;
+
+bool wxTLWHiddenParentModule::OnInit()
+{
+    ms_hwnd = NULL;
+    ms_className = NULL;
+
+    return TRUE;
+}
+
+void wxTLWHiddenParentModule::OnExit()
+{
+    if ( ms_hwnd )
+    {
+        if ( !::DestroyWindow(ms_hwnd) )
+        {
+            wxLogLastError(_T("DestroyWindow(hidden TLW parent)"));
+        }
+
+        ms_hwnd = NULL;
+    }
+
+    if ( ms_className )
+    {
+        if ( !::UnregisterClass(ms_className, wxGetInstance()) )
+        {
+            wxLogLastError(_T("UnregisterClass(\"wxTLWHiddenParent\")"));
+        }
+
+        ms_className = NULL;
+    }
+}
+
+/* static */
+HWND wxTLWHiddenParentModule::GetHWND()
+{
+    if ( !ms_hwnd )
+    {
+        if ( !ms_className )
+        {
+            static const wxChar *HIDDEN_PARENT_CLASS = _T("wxTLWHiddenParent");
+
+            WNDCLASS wndclass;
+            wxZeroMemory(wndclass);
+
+            wndclass.lpfnWndProc   = DefWindowProc;
+            wndclass.hInstance     = wxGetInstance();
+            wndclass.lpszClassName = HIDDEN_PARENT_CLASS;
+
+            if ( !::RegisterClass(&wndclass) )
+            {
+                wxLogLastError(_T("RegisterClass(\"wxTLWHiddenParent\")"));
+            }
+            else
+            {
+                ms_className = HIDDEN_PARENT_CLASS;
+            }
+        }
+
+        ms_hwnd = ::CreateWindow(ms_className, _T(""), 0, 0, 0, 0, 0, NULL,
+                                 (HMENU)NULL, wxGetInstance(), NULL);
+        if ( !ms_hwnd )
+        {
+            wxLogLastError(_T("CreateWindow(hidden TLW parent)"));
+        }
+    }
+
+    return ms_hwnd;
+}
+
diff --git a/src/msw/treectrl.cpp b/src/msw/treectrl.cpp
index 97348c58ff..75813b5bfb 100644
--- a/src/msw/treectrl.cpp
+++ b/src/msw/treectrl.cpp
@@ -1181,6 +1181,42 @@ void wxTreeCtrl::RefreshItem(const wxTreeItemId& item)
     }
 }
 
+wxColour wxTreeCtrl::GetItemTextColour(const wxTreeItemId& item) const
+{
+    long id = (long)(WXHTREEITEM)item;
+    wxTreeItemAttr *attr = (wxTreeItemAttr *)m_attrs.Get(id);
+    if ( !attr )
+    {
+        return wxNullColour;
+    }
+
+    return attr->GetTextColour();
+}
+
+wxColour wxTreeCtrl::GetItemBackgroundColour(const wxTreeItemId& item) const
+{
+    long id = (long)(WXHTREEITEM)item;
+    wxTreeItemAttr *attr = (wxTreeItemAttr *)m_attrs.Get(id);
+    if ( !attr )
+    {
+        return wxNullColour;
+    }
+
+    return attr->GetBackgroundColour();
+}
+
+wxFont wxTreeCtrl::GetItemFont(const wxTreeItemId& item) const
+{
+    long id = (long)(WXHTREEITEM)item;
+    wxTreeItemAttr *attr = (wxTreeItemAttr *)m_attrs.Get(id);
+    if ( !attr )
+    {
+        return wxNullFont;
+    }
+
+    return attr->GetFont();
+}
+
 void wxTreeCtrl::SetItemTextColour(const wxTreeItemId& item,
                                    const wxColour& col)
 {
@@ -1240,6 +1276,12 @@ void wxTreeCtrl::SetItemFont(const wxTreeItemId& item, const wxFont& font)
 
 bool wxTreeCtrl::IsVisible(const wxTreeItemId& item) const
 {
+    if ( item == wxTreeItemId(TVI_ROOT) )
+    {
+        // virtual (hidden) root is never visible
+        return FALSE;
+    }
+
     // Bug in Gnu-Win32 headers, so don't use the macro TreeView_GetItemRect
     RECT rect;
 
@@ -2302,8 +2344,8 @@ bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
                         break;
                 }
 
-                int how = (int)hdr->code == TVN_ITEMEXPANDING ? IDX_DOING
-                                                              : IDX_DONE;
+                int how = hdr->code == TVN_ITEMEXPANDING ? IDX_DOING
+                                                         : IDX_DONE;
 
                 eventType = gs_expandEvents[what][how];
 
diff --git a/src/msw/utils.cpp b/src/msw/utils.cpp
index 047ef9a22e..4556f6fa97 100644
--- a/src/msw/utils.cpp
+++ b/src/msw/utils.cpp
@@ -199,7 +199,7 @@ bool wxGetFullHostName(wxChar *buf, int maxSize)
 
                 if ( pHostEnt )
                 {
-                    host = pHostEnt->h_name;
+                    host = wxString::FromAscii(pHostEnt->h_name);
                 }
             }
         }
diff --git a/src/msw/utilsexc.cpp b/src/msw/utilsexc.cpp
index 58b26f2c07..ae26542774 100644
--- a/src/msw/utilsexc.cpp
+++ b/src/msw/utilsexc.cpp
@@ -139,7 +139,7 @@ public:
     bool IsOpened() const { return m_hInput != INVALID_HANDLE_VALUE; }
 
     // returns TRUE if there is any data to be read from the pipe
-    bool IsAvailable() const;
+    virtual bool CanRead() const;
 
 protected:
     size_t OnSysRead(void *buffer, size_t len);
@@ -341,12 +341,12 @@ wxPipeInputStream::~wxPipeInputStream()
         ::CloseHandle(m_hInput);
 }
 
-bool wxPipeInputStream::IsAvailable() const
+bool wxPipeInputStream::CanRead() const
 {
     // FIXME
 #ifdef __WXWINE__
     return FALSE;
-#else
+#else // !Wine
     if ( !IsOpened() )
         return FALSE;
 
@@ -374,37 +374,36 @@ bool wxPipeInputStream::IsAvailable() const
         // it had been closed
         ::CloseHandle(m_hInput);
 
-        wxConstCast(this, wxPipeInputStream)->m_hInput = INVALID_HANDLE_VALUE;
+        wxPipeInputStream *self = wxConstCast(this, wxPipeInputStream);
 
-        return FALSE;
+        self->m_hInput = INVALID_HANDLE_VALUE;
+        self->m_lasterror = wxSTREAM_EOF;
+
+        nAvailable = 0;
     }
 
     return nAvailable != 0;
-#endif
+#endif // Wine/!Wine
 }
 
 size_t wxPipeInputStream::OnSysRead(void *buffer, size_t len)
 {
-    // reading from a pipe may block if there is no more data, always check for
-    // EOF first
-    if ( !IsAvailable() )
+    if ( !IsOpened() )
     {
         m_lasterror = wxSTREAM_EOF;
 
         return 0;
     }
 
-    m_lasterror = wxSTREAM_NOERROR;
-
     DWORD bytesRead;
     if ( !::ReadFile(m_hInput, buffer, len, &bytesRead, NULL) )
     {
-        if ( ::GetLastError() == ERROR_BROKEN_PIPE )
-            m_lasterror = wxSTREAM_EOF;
-        else
-            m_lasterror = wxSTREAM_READ_ERROR;
+        m_lasterror = ::GetLastError() == ERROR_BROKEN_PIPE
+                        ? wxSTREAM_EOF
+                        : wxSTREAM_READ_ERROR;
     }
 
+    // bytesRead is set to 0, as desired, if an error occured
     return bytesRead;
 }
 
@@ -424,18 +423,17 @@ wxPipeOutputStream::~wxPipeOutputStream()
 
 size_t wxPipeOutputStream::OnSysWrite(const void *buffer, size_t len)
 {
-    DWORD bytesRead;
+    DWORD bytesWritten;
 
-    m_lasterror = wxSTREAM_NOERROR;
-    if ( !::WriteFile(m_hOutput, buffer, len, &bytesRead, NULL) )
+    m_lasterror = wxSTREAM_NO_ERROR;
+    if ( !::WriteFile(m_hOutput, buffer, len, &bytesWritten, NULL) )
     {
-        if ( ::GetLastError() == ERROR_BROKEN_PIPE )
-            m_lasterror = wxSTREAM_EOF;
-        else
-            m_lasterror = wxSTREAM_READ_ERROR;
+        m_lasterror = ::GetLastError() == ERROR_BROKEN_PIPE
+                            ? wxSTREAM_EOF
+                            : wxSTREAM_WRITE_ERROR;
     }
 
-    return bytesRead;
+    return bytesWritten;
 }
 
 #endif // wxUSE_STREAMS
@@ -453,7 +451,7 @@ static bool wxExecuteDDE(const wxString& ddeServer,
                          const wxString& ddeTopic,
                          const wxString& ddeCommand)
 {
-    bool ok;
+    bool ok = FALSE;
 
     wxDDEClient client;
     wxConnectionBase *conn = client.MakeConnection(_T(""),
@@ -470,17 +468,17 @@ static bool wxExecuteDDE(const wxString& ddeServer,
         // important ones - like IE and other MS stuff - use
         // XTYP_REQUEST!
         //
-        // so we try it first and then the other one if it
+        // so we try one first and then the other one if it
         // failed
         {
             wxLogNull noErrors;
-            ok = conn->Request(ddeCommand) != NULL;
+            ok = conn->Execute(ddeCommand);
         }
 
         if ( !ok )
         {
-            // now try execute - but show the errors
-            ok = conn->Execute(ddeCommand);
+            // now try request - but show the errors
+            ok = conn->Request(ddeCommand) != NULL;
         }
     }
 
diff --git a/src/msw/volume.cpp b/src/msw/volume.cpp
index e1b4db737d..6f4ada640d 100644
--- a/src/msw/volume.cpp
+++ b/src/msw/volume.cpp
@@ -422,7 +422,7 @@ wxArrayString wxFSVolume::GetVolumes(int flagsSet, int flagsUnset)
     {
 #ifdef UNICODE
         s_pWNetOpenEnum = (WNetOpenEnumPtr)s_mprLib.GetSymbol(_T("WNetOpenEnumW"));
-        s_pWNetEnumResource = (WNetEnumResourcePtr)s_mprLib.GetSymbol("WNetEnumResourceW");
+        s_pWNetEnumResource = (WNetEnumResourcePtr)s_mprLib.GetSymbol(_T("WNetEnumResourceW"));
 #else
         s_pWNetOpenEnum = (WNetOpenEnumPtr)s_mprLib.GetSymbol(_T("WNetOpenEnumA"));
         s_pWNetEnumResource = (WNetEnumResourcePtr)s_mprLib.GetSymbol(_T("WNetEnumResourceA"));
diff --git a/src/msw/window.cpp b/src/msw/window.cpp
index 07d4a17190..890bd089c3 100644
--- a/src/msw/window.cpp
+++ b/src/msw/window.cpp
@@ -1471,7 +1471,7 @@ void wxWindowMSW::Update()
         wxLogLastError(_T("UpdateWindow"));
     }
 #endif
-    
+
 #if defined(__WIN32__) && !defined(__WXMICROWIN__)
     // just calling UpdateWindow() is not enough, what we did in our WM_PAINT
     // handler needs to be really drawn right now
@@ -1891,6 +1891,10 @@ static void wxYieldForCommandsOnly()
     {
         wxTheApp->DoMessage((WXMSG *)&msg);
     }
+    
+    // If we retrieved a WM_QUIT, insert back into the message queue.
+    if (msg.message == WM_QUIT)
+        ::PostQuitMessage(0);
 }
 
 bool wxWindowMSW::DoPopupMenu(wxMenu *menu, int x, int y)
@@ -1961,6 +1965,14 @@ bool wxWindowMSW::MSWProcessMessage(WXMSG* pMsg)
             if ( !bCtrlDown )
             {
                 lDlgCode = ::SendMessage(msg->hwnd, WM_GETDLGCODE, 0, 0);
+
+                // surprizingly, DLGC_WANTALLKEYS bit mask doesn't contain the
+                // DLGC_WANTTAB nor DLGC_WANTARROWS bits although, logically,
+                // it, of course, implies them
+                if ( lDlgCode & DLGC_WANTALLKEYS )
+                {
+                    lDlgCode |= DLGC_WANTTAB | DLGC_WANTARROWS;
+                }
             }
 
             bool bForward = TRUE,
@@ -2050,6 +2062,12 @@ bool wxWindowMSW::MSWProcessMessage(WXMSG* pMsg)
                                     // eat the Enter events sometimes
                                     return FALSE;
                                 }
+                                else if (!IsTopLevel())
+                                {
+                                    // if not a top level window, let parent
+                                    // handle it
+                                    return FALSE;
+                                }
                                 //else: treat Enter as TAB: pass to the next
                                 //      control as this is the best thing to do
                                 //      if the text doesn't handle Enter itself
@@ -2483,14 +2501,6 @@ long wxWindowMSW::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam
                     break;
 
 #endif // __WXMICROWIN__
-                // VZ: if you find a situation when this is needed, tell
-                //     me about it, do *not* uncomment this code as it
-                //     causes other strange problems
-#if 0
-                if ( message == WM_LBUTTONDOWN && AcceptsFocus() )
-                    SetFocus();
-#endif // 0
-
                 int x = GET_X_LPARAM(lParam),
                     y = GET_Y_LPARAM(lParam);
 
@@ -2506,6 +2516,20 @@ long wxWindowMSW::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam
                 else
                 {
                     win = FindWindowForMouseEvent(this, &x, &y);
+
+                    // this should never happen
+                    wxCHECK_MSG( win, 0,
+                                 _T("FindWindowForMouseEvent() returned NULL") );
+
+                    // for the standard classes their WndProc sets the focus to
+                    // them anyhow and doing it from here results in some weird
+                    // problems, but for our windows we want them to acquire
+                    // focus when clicked
+                    if ( !win->IsOfStandardClass() )
+                    {
+                        if ( message == WM_LBUTTONDOWN && win->AcceptsFocus() )
+                            win->SetFocus();
+                    }
                 }
 
                 processed = win->HandleMouseEvent(message, x, y, wParam);
@@ -2598,71 +2622,73 @@ long wxWindowMSW::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam
             if ( m_lastKeydownProcessed )
             {
                 processed = TRUE;
-                break;
             }
 
-            switch ( wParam )
+            if ( !processed )
             {
-                // we consider these message "not interesting" to OnChar, so
-                // just don't do anything more with them
-                case VK_SHIFT:
-                case VK_CONTROL:
-                case VK_MENU:
-                case VK_CAPITAL:
-                case VK_NUMLOCK:
-                case VK_SCROLL:
-                    processed = TRUE;
-                    break;
-
-                // avoid duplicate messages to OnChar for these ASCII keys:
-                // they will be translated by TranslateMessage() and received
-                // in WM_CHAR
-                case VK_ESCAPE:
-                case VK_SPACE:
-                case VK_RETURN:
-                case VK_BACK:
-                case VK_TAB:
-                case VK_ADD:
-                case VK_SUBTRACT:
-                case VK_MULTIPLY:
-                case VK_DIVIDE:
-                case VK_OEM_1:
-                case VK_OEM_2:
-                case VK_OEM_3:
-                case VK_OEM_4:
-                case VK_OEM_5:
-                case VK_OEM_6:
-                case VK_OEM_7:
-                case VK_OEM_PLUS:
-                case VK_OEM_COMMA:
-                case VK_OEM_MINUS:
-                case VK_OEM_PERIOD:
-                    // but set processed to FALSE, not TRUE to still pass them
-                    // to the control's default window proc - otherwise
-                    // built-in keyboard handling won't work
-                    processed = FALSE;
+                switch ( wParam )
+                {
+                    // we consider these message "not interesting" to OnChar, so
+                    // just don't do anything more with them
+                    case VK_SHIFT:
+                    case VK_CONTROL:
+                    case VK_MENU:
+                    case VK_CAPITAL:
+                    case VK_NUMLOCK:
+                    case VK_SCROLL:
+                        processed = TRUE;
+                        break;
 
-                    break;
+                    // avoid duplicate messages to OnChar for these ASCII keys:
+                    // they will be translated by TranslateMessage() and received
+                    // in WM_CHAR
+                    case VK_ESCAPE:
+                    case VK_SPACE:
+                    case VK_RETURN:
+                    case VK_BACK:
+                    case VK_TAB:
+                    case VK_ADD:
+                    case VK_SUBTRACT:
+                    case VK_MULTIPLY:
+                    case VK_DIVIDE:
+                    case VK_OEM_1:
+                    case VK_OEM_2:
+                    case VK_OEM_3:
+                    case VK_OEM_4:
+                    case VK_OEM_5:
+                    case VK_OEM_6:
+                    case VK_OEM_7:
+                    case VK_OEM_PLUS:
+                    case VK_OEM_COMMA:
+                    case VK_OEM_MINUS:
+                    case VK_OEM_PERIOD:
+                        // but set processed to FALSE, not TRUE to still pass them
+                        // to the control's default window proc - otherwise
+                        // built-in keyboard handling won't work
+                        processed = FALSE;
+                        break;
 
 #ifdef VK_APPS
-                // special case of VK_APPS: treat it the same as right mouse
-                // click because both usually pop up a context menu
-                case VK_APPS:
-                    {
-                        WPARAM flags;
-                        int x, y;
+                    // special case of VK_APPS: treat it the same as right mouse
+                    // click because both usually pop up a context menu
+                    case VK_APPS:
+                        {
+                            WPARAM flags;
+                            int x, y;
 
-                        TranslateKbdEventToMouse(this, &x, &y, &flags);
-                        processed = HandleMouseEvent(WM_RBUTTONDOWN, x, y, flags);
-                    }
-                    break;
+                            TranslateKbdEventToMouse(this, &x, &y, &flags);
+                            processed = HandleMouseEvent(WM_RBUTTONDOWN, x, y, flags);
+                        }
+                        break;
 #endif // VK_APPS
 
-                default:
-                    // do generate a CHAR event
-                    processed = HandleChar((WORD)wParam, lParam);
-
+                    default:
+                        // do generate a CHAR event
+                        processed = HandleChar((WORD)wParam, lParam);
+                }
             }
+            if (message == WM_SYSKEYDOWN)  // Let Windows still handle the SYSKEYs
+                processed = FALSE;
             break;
 
         case WM_SYSKEYUP:
@@ -3116,16 +3142,22 @@ bool wxWindowMSW::HandleTooltipNotify(WXUINT code,
 
     LPTOOLTIPTEXT ttText = (LPTOOLTIPTEXT)lParam;
 
+#if !wxUSE_UNICODE
     if ( code == (WXUINT) TTN_NEEDTEXTA )
     {
-        ttText->lpszText = (wxChar *)ttip.c_str();
+        // we pass just the pointer as we store the string internally anyhow
+        ttText->lpszText = (char *)ttip.c_str();
     }
-    else
+    else // TTN_NEEDTEXTW
+#endif // !Unicode
     {
 #if wxUSE_UNICODE
+        // in Unicode mode this is just what we need
         ttText->lpszText = (wxChar *)ttip.c_str();
 #else // !Unicode
-        size_t lenAnsi = ttip.length();
+        // in ANSI mode we have to convert the string and put it into the
+        // provided buffer: be careful not to overrun it
+        const size_t lenAnsi = ttip.length();
 
         // some compilers (MetroWerks and Cygwin) don't like calling mbstowcs
         // with NULL argument
@@ -3140,6 +3172,13 @@ bool wxWindowMSW::HandleTooltipNotify(WXUINT code,
         wchar_t *dst = (wchar_t *)ttText->szText,
                 *pwz = new wchar_t[lenUnicode + 1];
         mbstowcs(pwz, ttip, lenAnsi + 1);
+
+        // stay inside the buffer (-1 because it must be NUL-terminated)
+        if ( lenUnicode > WXSIZEOF(ttText->szText) - 1 )
+        {
+            lenUnicode = WXSIZEOF(ttText->szText) - 1;
+        }
+
         memcpy(dst, pwz, lenUnicode*sizeof(wchar_t));
 
         // put the terminating wide NUL
@@ -3499,6 +3538,8 @@ bool wxWindowMSW::HandleSetCursor(WXHWND WXUNUSED(hWnd),
 
     if ( hcursor )
     {
+//        wxLogDebug("HandleSetCursor: Setting cursor %ld", (long) hcursor);
+
         ::SetCursor(hcursor);
 
         // cursor set, stop here
@@ -4378,9 +4419,18 @@ bool wxWindowMSW::HandleChar(WXWPARAM wParam, WXLPARAM lParam, bool isASCII)
     }
 
     wxKeyEvent event(CreateKeyEvent(wxEVT_CHAR, id, lParam, wParam));
-    if ( ctrlDown )
+
+    // the alphanumeric keys produced by pressing AltGr+something on European
+    // keyboards have both Ctrl and Alt modifiers which may confuse the user
+    // code as, normally, keys with Ctrl and/or Alt don't result in anything
+    // alphanumeric, so pretend that there are no modifiers at all (the
+    // KEY_DOWN event would still have the correct modifiers if they're really
+    // needed)
+    if ( event.m_controlDown && event.m_altDown &&
+            (id >= 32 && id < 256) )
     {
-        event.m_controlDown = TRUE;
+        event.m_controlDown =
+        event.m_altDown = FALSE;
     }
 
     return GetEventHandler()->ProcessEvent(event);
@@ -5434,9 +5484,10 @@ static TEXTMETRIC wxGetTextMetrics(const wxWindowMSW *win)
 
 // Find the wxWindow at the current mouse position, returning the mouse
 // position.
-wxWindow* wxFindWindowAtPointer(wxPoint& WXUNUSED(pt))
+wxWindow* wxFindWindowAtPointer(wxPoint& pt)
 {
-    return wxFindWindowAtPoint(wxGetMousePosition());
+    pt = wxGetMousePosition();
+    return wxFindWindowAtPoint(pt);
 }
 
 wxWindow* wxFindWindowAtPoint(const wxPoint& pt)
diff --git a/src/os2/app.cpp b/src/os2/app.cpp
index 31c1d49629..4d47ed1550 100644
--- a/src/os2/app.cpp
+++ b/src/os2/app.cpp
@@ -613,7 +613,7 @@ int wxEntry(
     {
         if (wxTheApp->OnInit())
         {
-            nRetValue = wxTheApp->OnRun();
+            wxTheApp->OnRun();
         }
         // Normal exit
         wxWindow*                   pTopWindow = wxTheApp->GetTopWindow();
@@ -641,7 +641,7 @@ int wxEntry(
     printf("wxTheApp->OnExit ");
     fflush(stdout);
 #endif
-    wxTheApp->OnExit();
+    nRetValue = wxTheApp->OnExit();
 #if wxUSE_CONSOLEDEBUG
     printf("wxApp::CleanUp ");
     fflush(stdout);
@@ -965,19 +965,20 @@ bool wxApp::ProcessMessage(
     return FALSE;
 } // end of wxApp::ProcessMessage
 
+bool                                gbInOnIdle = FALSE;
+
 void wxApp::OnIdle(
   wxIdleEvent&                      rEvent
 )
 {
-    static bool                     sbInOnIdle = FALSE;
 
     //
     // Avoid recursion (via ProcessEvent default case)
     //
-    if (sbInOnIdle)
+    if (gbInOnIdle)
         return;
 
-    sbInOnIdle = TRUE;
+    gbInOnIdle = TRUE;
 
     //
     // If there are pending events, we must process them: pending events
@@ -1019,7 +1020,7 @@ void wxApp::OnIdle(
         //
         rEvent.RequestMore(TRUE);
     }
-    sbInOnIdle = FALSE;
+    gbInOnIdle = FALSE;
 } // end of wxApp::OnIdle
 
 // Send idle event to all top-level windows
diff --git a/src/os2/bitmap.cpp b/src/os2/bitmap.cpp
index 8727225de8..76b31572f2 100644
--- a/src/os2/bitmap.cpp
+++ b/src/os2/bitmap.cpp
@@ -508,7 +508,7 @@ bool wxBitmap::SaveFile(
 
 
 // ----------------------------------------------------------------------------
-// wxImage-wxBitmap convertion
+// wxImage-wxBitmap conversion
 // ----------------------------------------------------------------------------
 
 bool wxBitmap::CreateFromImage (
diff --git a/src/os2/combobox.cpp b/src/os2/combobox.cpp
index 038fa35ec5..867815ccdf 100644
--- a/src/os2/combobox.cpp
+++ b/src/os2/combobox.cpp
@@ -173,37 +173,8 @@ void wxComboBox::SetValue(
   const wxString&                   rsValue
 )
 {
-    //
-    // If newlines are denoted by just 10, must stick 13 in front.
-    //
-    int                             nSingletons = 0;
-    int                             nLen = rsValue.Length();
-    int                             i;
-
-    for (i = 0; i < nLen; i ++)
-    {
-        if ((i > 0) && (rsValue[i] == 10) && (rsValue[i - 1] != 13))
-            nSingletons ++;
-    }
-    if (nSingletons > 0)
-    {
-        wxChar*                     zTmp = new wxChar[nLen + nSingletons + 1];
-        int                         j = 0;
-
-        for (i = 0; i < nLen; i ++)
-        {
-            if ((i > 0) && (rsValue[i] == 10) && (rsValue[i - 1] != 13))
-            {
-                zTmp[j] = 13;
-                j++;
-            }
-            zTmp[j] = rsValue[i];
-            j++;
-        }
-        zTmp[j] = 0;
-        ::WinSetWindowText(GetHwnd(), zTmp);
-        delete[] zTmp;
-    }
+    if ( HasFlag(wxCB_READONLY) )
+        SetStringSelection(rsValue);
     else
         ::WinSetWindowText(GetHwnd(), rsValue.c_str());
 } // end of wxComboBox::SetValue
diff --git a/src/os2/dialog.cpp b/src/os2/dialog.cpp
index eb635379c9..1ab046a28e 100644
--- a/src/os2/dialog.cpp
+++ b/src/os2/dialog.cpp
@@ -206,6 +206,15 @@ void wxDialog::DoShowModal()
     //
     ::WinProcessDlg((HWND)GetHwnd());
 
+    //
+    // Before entering the modal loop, reset the "is in OnIdle()" flag (see
+    // comment in app.cpp)
+    //
+    extern bool                     gbInOnIdle;
+    bool                            bWasInOnIdle = gbInOnIdle;
+
+    gbInOnIdle = FALSE;
+
     //
     // Enter the modal loop
     //
@@ -221,6 +230,7 @@ void wxDialog::DoShowModal()
         // a message came or no more idle processing to do
         wxTheApp->DoMessage();
     }
+    gbInOnIdle = bWasInOnIdle;
 
     //
     // Snd restore focus
diff --git a/src/os2/files.lst b/src/os2/files.lst
index 475e44ca76..53eb780483 100644
--- a/src/os2/files.lst
+++ b/src/os2/files.lst
@@ -20,6 +20,7 @@ ALL_SOURCES = \
 		generic/laywin.cpp \
 		generic/listctrl.cpp \
 		generic/logg.cpp \
+		generic/mdig.cpp \
 		generic/msgdlgg.cpp \
 		generic/numdlgg.cpp \
 		generic/panelg.cpp \
@@ -212,12 +213,10 @@ ALL_SOURCES = \
 		os2/joystick.cpp \
 		os2/listbox.cpp \
 		os2/main.cpp \
-		os2/mdi.cpp \
 		os2/menu.cpp \
 		os2/menuitem.cpp \
 		os2/metafile.cpp \
 		os2/mimetype.cpp \
-		os2/minifram.cpp \
 		os2/msgdlg.cpp \
 		os2/nativdlg.cpp \
 		os2/notebook.cpp \
@@ -265,7 +264,6 @@ ALL_SOURCES = \
 		html/m_layout.cpp \
 		html/m_links.cpp \
 		html/m_list.cpp \
-		html/m_meta.cpp \
 		html/m_pre.cpp \
 		html/m_style.cpp \
 		html/m_tables.cpp \
@@ -336,6 +334,7 @@ ALL_HEADERS = \
 		dynarray.h \
 		dynlib.h \
 		dynload.h \
+		effects.h \
 		encconv.h \
 		event.h \
 		expr.h \
@@ -548,7 +547,6 @@ ALL_HEADERS = \
 		os2/iniconf.h \
 		os2/joystick.h \
 		os2/listbox.h \
-		os2/mdi.h \
 		os2/menu.h \
 		os2/menuitem.h \
 		os2/metafile.h \
@@ -603,7 +601,7 @@ ALL_HEADERS = \
 		generic/imaglist.h \
 		generic/laywin.h \
 		generic/listctrl.h \
-		generic/mdig.cpp \
+		generic/mdig.h \
 		generic/msgdlgg.h \
 		generic/notebook.h \
 		generic/paletteg.h \
@@ -793,6 +791,7 @@ GENERICOBJS = \
 		laywin.o \
 		listctrl.o \
 		logg.o \
+		mdig.o \
 		msgdlgg.o \
 		numdlgg.o \
 		panelg.o \
@@ -858,12 +857,10 @@ GUIOBJS = \
 		joystick.o \
 		listbox.o \
 		main.o \
-		mdi.o \
 		menu.o \
 		menuitem.o \
 		metafile.o \
 		mimetype.o \
-		minifram.o \
 		msgdlg.o \
 		nativdlg.o \
 		notebook.o \
@@ -915,7 +912,6 @@ HTMLOBJS = \
 		m_layout.o \
 		m_links.o \
 		m_list.o \
-		m_meta.o \
 		m_pre.o \
 		m_style.o \
 		m_tables.o \
diff --git a/src/os2/makefile.va b/src/os2/makefile.va
index 514668cd37..e5001f5cfc 100644
--- a/src/os2/makefile.va
+++ b/src/os2/makefile.va
@@ -646,7 +646,6 @@ HTMLOBJS = \
   ..\html\$D\m_layout.obj \
   ..\html\$D\m_links.obj \
   ..\html\$D\m_list.obj \
-  ..\html\$D\m_meta.obj \
   ..\html\$D\m_pre.obj \
   ..\html\$D\m_style.obj \
   ..\html\$D\m_tables.obj \
@@ -669,7 +668,6 @@ HTMLLIBOBJS = \
   m_layout.obj \
   m_links.obj \
   m_list.obj \
-  m_meta.obj \
   m_pre.obj \
   m_style.obj \
   m_tables.obj \
@@ -900,7 +898,6 @@ $(HTMLLIBOBJS):
   copy ..\html\$D\m_layout.obj
   copy ..\html\$D\m_links.obj
   copy ..\html\$D\m_list.obj
-  copy ..\html\$D\m_meta.obj
   copy ..\html\$D\m_pre.obj
   copy ..\html\$D\m_style.obj
   copy ..\html\$D\m_tables.obj
diff --git a/src/os2/notebook.cpp b/src/os2/notebook.cpp
index dbf582f6d4..fe64de1281 100644
--- a/src/os2/notebook.cpp
+++ b/src/os2/notebook.cpp
@@ -212,19 +212,34 @@ int wxNotebook::SetSelection(
 )
 {
     wxCHECK_MSG( IS_VALID_PAGE(nPage), -1, wxT("notebook page out of range") );
-    int                             nOldPage = GetSelection();
 
-    ChangePage( m_nSelection
-               ,nPage
-              );
+    if (nPage != m_nSelection)
+    {
+        wxNotebookEvent             vEvent( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING
+                                           ,m_windowId
+                                          );
 
-    ULONG                           ulPageId = (ULONG)m_alPageId[nPage];
+        vEvent.SetSelection(nPage);
+        vEvent.SetOldSelection(m_nSelection);
+        vEvent.SetEventObject(this);
+        if (!GetEventHandler()->ProcessEvent(vEvent) || vEvent.IsAllowed())
+        {
 
-    ::WinSendMsg( GetHWND()
-                 ,BKM_TURNTOPAGE
-                 ,MPFROMLONG((ULONG)m_alPageId[nPage])
-                 ,(MPARAM)0
-                );
+            //
+            // Program allows the page change
+            //
+            vEvent.SetEventType(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED);
+            GetEventHandler()->ProcessEvent(vEvent);
+
+            ULONG                   ulPageId = (ULONG)m_alPageId[nPage];
+
+            ::WinSendMsg( GetHWND()
+                         ,BKM_TURNTOPAGE
+                         ,MPFROMLONG((ULONG)m_alPageId[nPage])
+                         ,(MPARAM)0
+                        );
+        }
+    }
     m_nSelection = nPage;
     return nPage;
 } // end of wxNotebook::SetSelection
@@ -891,56 +906,5 @@ bool wxNotebook::OS2OnScroll (
                                       );
 } // end of wxNotebook::OS2OnScroll
 
-// ----------------------------------------------------------------------------
-// wxNotebook helper functions
-// ----------------------------------------------------------------------------
-
-//
-// Generate the page changing and changed events, hide the currently active
-// panel and show the new one
-//
-void wxNotebook::ChangePage (
-  int                               nOldSel
-, int                               nSel
-)
-{
-    static bool                     sbInsideChangePage = FALSE;
-
-    //
-    // When we call ProcessEvent(), our own OnSelChange() is called which calls
-    // this function - break the infinite loop
-    //
-    if (sbInsideChangePage)
-        return;
-
-    //
-    // It's not an error (the message may be generated by the tab control itself)
-    // and it may happen - just do nothing
-    //
-    if (nSel == nOldSel)
-        return;
-
-    sbInsideChangePage = TRUE;
-
-    wxNotebookEvent                 rEvent( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING
-                                           ,m_windowId
-                                          );
-
-    rEvent.SetSelection(nSel);
-    rEvent.SetOldSelection(nOldSel);
-    rEvent.SetEventObject(this);
-    if (GetEventHandler()->ProcessEvent(rEvent) && !rEvent.IsAllowed())
-    {
-        //
-        // Program doesn't allow the page change
-        //
-        sbInsideChangePage = FALSE;
-        return;
-    }
-    rEvent.SetEventType(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED);
-    GetEventHandler()->ProcessEvent(rEvent);
-    sbInsideChangePage = FALSE;
-} // end of wxNotebook::ChangePage
-
 #endif // wxUSE_NOTEBOOK
 
diff --git a/src/os2/os2jpeg.def b/src/os2/os2jpeg.def
index e8a935a8ad..6a6f7aa7cc 100644
--- a/src/os2/os2jpeg.def
+++ b/src/os2/os2jpeg.def
@@ -4,7 +4,7 @@ DATA MULTIPLE NONSHARED READWRITE LOADONCALL
 CODE LOADONCALL
 
 EXPORTS
-;From library:  H:\DEV\WX24\WXWINDOWS\LIB\os2jpeg.lib
+;From library:  H:\Dev\wx24\WxWindows\lib\os2jpeg.lib
   ;From object file:  ..\jpeg\jcomapi.c
     ;PUBDEFs (Symbols available from object file):
       jpeg_destroy
diff --git a/src/os2/os2png.def b/src/os2/os2png.def
index 396c76832b..fee334e465 100644
--- a/src/os2/os2png.def
+++ b/src/os2/os2png.def
@@ -4,7 +4,7 @@ DATA MULTIPLE NONSHARED READWRITE LOADONCALL
 CODE LOADONCALL
 
 EXPORTS
-;From library:  H:\DEV\WX24\WXWINDOWS\LIB\os2png.lib
+;From library:  H:\Dev\wx24\WxWindows\lib\os2png.lib
   ;From object file:  ..\png\png.c
     ;PUBDEFs (Symbols available from object file):
       png_free_data
@@ -20,7 +20,6 @@ EXPORTS
       png_info_init
       png_destroy_info_struct
       png_get_io_ptr
-      png_libpng_ver
       png_get_libpng_ver
       png_set_sig_bytes
       png_check_sig
diff --git a/src/os2/ownerdrw.cpp b/src/os2/ownerdrw.cpp
index 9e9dd6568d..2cfddaec1b 100644
--- a/src/os2/ownerdrw.cpp
+++ b/src/os2/ownerdrw.cpp
@@ -18,7 +18,7 @@
 
 #ifndef WX_PRECOMP
   #include "wx/window.h"
-  #include "wx/msw/private.h"
+  #include "wx/os2/private.h"
   #include "wx/font.h"
   #include "wx/bitmap.h"
   #include "wx/dcmemory.h"
diff --git a/src/os2/radiobut.cpp b/src/os2/radiobut.cpp
index 0b8784621c..76e9a65dde 100644
--- a/src/os2/radiobut.cpp
+++ b/src/os2/radiobut.cpp
@@ -70,9 +70,23 @@ bool wxRadioButton::Create(
                         ,rsName))
         return FALSE;
 
-    long                            lSstyle = HasFlag(wxRB_GROUP) ? WS_GROUP : 0;
+    long                            lSstyle = WS_TABSTOP;
 
-    lSstyle |= BS_AUTORADIOBUTTON;
+    if (HasFlag(wxRB_GROUP))
+        lSstyle |= WS_GROUP;
+
+    //
+    // wxRB_SINGLE is a temporary workaround for the following problem: if you
+    // have 2 radiobuttons in the same group but which are not consecutive in
+    // the dialog, Windows can enter an infinite loop! The simplest way to
+    // reproduce it is to create radio button, then a panel and then another
+    // radio button: then checking the last button hangs the app.
+    //
+    // Ideally, we'd detect (and avoid) such situation automatically but for
+    // now, as I don't know how to do it, just allow the user to create
+    // BS_RADIOBUTTON buttons for such situations.
+    //
+    lSstyle |= HasFlag(wxRB_SINGLE) ? BS_RADIOBUTTON : BS_AUTORADIOBUTTON;
 
     if (HasFlag(wxCLIP_SIBLINGS))
         lSstyle |= WS_CLIPSIBLINGS;
@@ -148,18 +162,38 @@ bool wxRadioButton::OS2Command(
 , WXWORD                            wId
 )
 {
-    if (wParam == BN_CLICKED)
+    if (wParam != BN_CLICKED)
+        return FALSE;
+
+    if (m_bFocusJustSet)
+    {
+        //
+        // See above: we want to ignore this event
+        //
+        m_bFocusJustSet = FALSE;
+    }
+    else
     {
+        bool                        bIsChecked = GetValue();
+
+        if (HasFlag(wxRB_SINGLE))
+        {
+            //
+            // When we use a "manual" radio button, we have to check the button
+            // ourselves -- but it's reset to unchecked state by the user code
+            // (presumably when another button is pressed)
+            //
+            if (!bIsChecked )
+                SetValue(TRUE);
+        }
         wxCommandEvent              rEvent( wxEVT_COMMAND_RADIOBUTTON_SELECTED
                                            ,m_windowId
                                           );
 
         rEvent.SetEventObject(this);
         ProcessCommand(rEvent);
-        return TRUE;
     }
-    else
-        return FALSE;
+    return TRUE;
 } // end of wxRadioButton::OS2Command
 
 void wxRadioButton::SetFocus()
@@ -190,6 +224,63 @@ void wxRadioButton::SetValue(
 )
 {
     ::WinSendMsg((HWND)GetHWND(), BM_SETCHECK, (MPARAM)bValue, (MPARAM)0);
+    if (bValue)
+    {
+        const wxWindowList&         rSiblings = GetParent()->GetChildren();
+        wxWindowList::Node*         pNodeThis = rSiblings.Find(this);
+
+        wxCHECK_RET(pNodeThis, _T("radio button not a child of its parent?"));
+
+        // 
+        // Turn off all radio buttons before this one
+        //
+        for ( wxWindowList::Node* pNodeBefore = pNodeThis->GetPrevious();
+              pNodeBefore;
+              pNodeBefore = pNodeBefore->GetPrevious() )
+        {
+            wxRadioButton*          pBtn = wxDynamicCast( pNodeBefore->GetData()
+                                                         ,wxRadioButton
+                                                        );
+            if (!pBtn)
+            {
+                // 
+                // The radio buttons in a group must be consecutive, so there
+                // are no more of them
+                //
+                break;
+            }
+            pBtn->SetValue(FALSE);
+            if (pBtn->HasFlag(wxRB_GROUP))
+            {
+                // 
+                // Even if there are other radio buttons before this one,
+                // they're not in the same group with us
+                //
+                break;
+            }
+        }
+
+        // 
+        // ... and all after this one
+        //
+        for (wxWindowList::Node* pNodeAfter = pNodeThis->GetNext();
+             pNodeAfter;
+             pNodeAfter = pNodeAfter->GetNext())
+        {
+            wxRadioButton*          pBtn = wxDynamicCast( pNodeAfter->GetData()
+                                                         ,wxRadioButton
+                                                        );
+
+            if (!pBtn || pBtn->HasFlag(wxRB_GROUP) )
+            {
+                // 
+                // No more buttons or the first button of the next group
+                //
+                break;
+            }
+            pBtn->SetValue(FALSE);
+        }
+    }
 } // end of wxRadioButton::SetValue
 
 MRESULT wxRadioButton::OS2WindowProc(
diff --git a/src/os2/textctrl.cpp b/src/os2/textctrl.cpp
index 9d38365087..c567806c24 100644
--- a/src/os2/textctrl.cpp
+++ b/src/os2/textctrl.cpp
@@ -86,6 +86,10 @@ wxTextCtrl::wxTextCtrl()
 {
 }
 
+wxTextCtrl::~wxTextCtrl()
+{
+}
+
 bool wxTextCtrl::Create(
   wxWindow*                         pParent
 , wxWindowID                        vId
@@ -1233,6 +1237,29 @@ void wxTextCtrl::OnRedo(
     Redo();
 } // end of wxTextCtrl::OnRedo
 
+void wxTextCtrl::OnDelete(
+  wxCommandEvent&                   rEvent
+)
+{
+    long                            lFrom;
+    long                            lTo;
+
+    GetSelection( &lFrom
+                 ,&lTo
+                );
+    if (lFrom != -1 && lTo != -1)
+        Remove( lFrom
+               ,lTo
+              );
+} // end of wxTextCtrl::OnDelete
+
+void wxTextCtrl::OnSelectAll(
+  wxCommandEvent&                   rEvent
+)
+{
+    SetSelection(-1, -1);
+} // end of wxTextCtrl::OnSelectAll
+
 void wxTextCtrl::OnUpdateCut(
   wxUpdateUIEvent&                  rEvent
 )
@@ -1268,6 +1295,26 @@ void wxTextCtrl::OnUpdateRedo(
     rEvent.Enable(CanRedo());
 } // end of wxTextCtrl::OnUpdateRedo
 
+void wxTextCtrl::OnUpdateDelete(
+  wxUpdateUIEvent&                  rEvent
+)
+{
+    long                            lFrom;
+    long                            lTo;
+
+    GetSelection( &lFrom
+                 ,&lTo
+                );
+    rEvent.Enable( lFrom != -1L && lTo != -1L && lFrom != lTo && IsEditable()) ;
+} // end of wxTextCtrl::OnUpdateDelete
+
+void wxTextCtrl::OnUpdateSelectAll(
+  wxUpdateUIEvent&                  rEvent
+)
+{
+    rEvent.Enable(GetLastPosition() > 0);
+} // end of wxTextCtrl::OnUpdateSelectAll
+
 bool wxTextCtrl::SetBackgroundColour(
   const wxColour&                   rColour
 )
diff --git a/src/os2/thread.cpp b/src/os2/thread.cpp
index db6ba06510..ad67a34b11 100644
--- a/src/os2/thread.cpp
+++ b/src/os2/thread.cpp
@@ -9,6 +9,10 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
+#ifdef __GNUG__
+    #pragma implementation "thread.h"
+#endif
+
 // ----------------------------------------------------------------------------
 // headers
 // ----------------------------------------------------------------------------
@@ -30,8 +34,9 @@
 #define INCL_DOSPROCESS
 #define INCL_ERRORS
 #include <os2.h>
+#ifndef __EMX__
 #include <bseerr.h>
-
+#endif
 // the possible states of the thread ("=>" shows all possible transitions from
 // this state)
 enum wxThreadState
diff --git a/src/os2/toplevel.cpp b/src/os2/toplevel.cpp
index 3f5d41eeba..252b601bd0 100644
--- a/src/os2/toplevel.cpp
+++ b/src/os2/toplevel.cpp
@@ -37,6 +37,7 @@
     #include "wx/frame.h"
     #include "wx/control.h"
     #include "wx/containr.h"        // wxSetFocusToChild()
+    #include "wx/module.h"        // wxSetFocusToChild()
 #endif //WX_PRECOMP
 
 #include "wx/os2/private.h"
diff --git a/src/os2/utils.cpp b/src/os2/utils.cpp
index 4ff213b9de..c60c92419b 100644
--- a/src/os2/utils.cpp
+++ b/src/os2/utils.cpp
@@ -710,7 +710,7 @@ wxChar* wxGetUserHome (
         if ((zHome = wxGetenv(_T("HOME"))) != NULL)
         {
             wxStrcpy(wxBuffer, zHome);
-            Unix2DosFilename(wxBuffer);
+            wxUnix2DosFilename(wxBuffer);
             wxStrcpy(zHome, wxBuffer);
             delete[] wxBuffer;
             return zHome;
diff --git a/src/os2/window.cpp b/src/os2/window.cpp
index d88927fcae..4ab8890da9 100644
--- a/src/os2/window.cpp
+++ b/src/os2/window.cpp
@@ -2427,6 +2427,14 @@ bool wxWindowOS2::OS2ProcessMessage(
                                 pBtn->OS2Command(BN_CLICKED, 0 /* unused */);
                                 return TRUE;
                             }
+                            else if (!IsTopLevel())
+                            {
+                                //
+                                // if not a top level window, let parent
+                                // handle it
+                                //
+                                return FALSE;
+                            }
                             // else: but if it does not it makes sense to make
                             //       it work like a TAB - and that's what we do.
                             //       Note that Ctrl-Enter always works this way.
diff --git a/src/os2/wx23.def b/src/os2/wx23.def
index 1c249fb752..fa63bc9b47 100644
--- a/src/os2/wx23.def
+++ b/src/os2/wx23.def
@@ -4,7 +4,7 @@ DATA MULTIPLE NONSHARED READWRITE LOADONCALL
 CODE LOADONCALL
 
 EXPORTS
-;From library:  H:\DEV\WX24\WXWINDOWS\LIB\wx.lib
+;From library:  H:\Dev\Wx24\WxWindows\lib\wx.lib
   ;From object file:  dummy.cpp
     ;PUBDEFs (Symbols available from object file):
       wxDummyChar
@@ -44,13 +44,11 @@ EXPORTS
   ;From object file:  ..\common\artstd.cpp
     ;PUBDEFs (Symbols available from object file):
       g_ArtProviderModule
-      ;wxDefaultArtProviderModule::sm_classwxDefaultArtProviderModule
-      sm_classwxDefaultArtProviderModule__26wxDefaultArtProviderModule
       __vft20wxDefaultArtProvider8wxObject
       ;wxDefaultArtProvider::CreateBitmap(const wxString&,const wxString&,const wxSize&)
       CreateBitmap__20wxDefaultArtProviderFRC8wxStringT1RC6wxSize
-      ;wxConstructorForwxDefaultArtProviderModule()
-      wxConstructorForwxDefaultArtProviderModule__Fv
+      ;wxArtProvider::InitStdProvider()
+      InitStdProvider__13wxArtProviderFv
   ;From object file:  ..\common\appcmn.cpp
     ;PUBDEFs (Symbols available from object file):
       ;wxAssert(int,const char*,int,const char*,const char*)
@@ -608,10 +606,12 @@ EXPORTS
       DoEmpty__15wxDateTimeArrayFv
       ;wxDateTime::Add(const wxTimeSpan&) const
       Add__10wxDateTimeCFRC10wxTimeSpan
-      ;wxDateTime::SetMinute(unsigned short)
-      SetMinute__10wxDateTimeFUs
+      ;wxDateTime::SetToWeekDayInSameWeek(wxDateTime::WeekDay,wxDateTime::WeekFlags)
+      SetToWeekDayInSameWeek__10wxDateTimeFQ2_10wxDateTime7WeekDayQ2_10wxDateTime9WeekFlags
       ;wxDateTime::SetSecond(unsigned short)
       SetSecond__10wxDateTimeFUs
+      ;wxDateTime::SetMinute(unsigned short)
+      SetMinute__10wxDateTimeFUs
       ;wxDateTime::MakeTimezone(const wxDateTime::TimeZone&,unsigned long)
       MakeTimezone__10wxDateTimeFRCQ2_10wxDateTime8TimeZoneUl
       ;wxTimeSpan::wxTimeSpan(long,long,long,long)
@@ -648,10 +648,12 @@ EXPORTS
       GetCurrentYear__10wxDateTimeFQ2_10wxDateTime8Calendar
       ;wxDateSpan::Add(const wxDateSpan&)
       Add__10wxDateSpanFRC10wxDateSpan
-      ;wxDateTime::SetDay(unsigned short)
-      SetDay__10wxDateTimeFUs
+      ;wxDateTime::SetToTheWeek(unsigned short,wxDateTime::WeekDay,wxDateTime::WeekFlags)
+      SetToTheWeek__10wxDateTimeFUsQ2_10wxDateTime7WeekDayQ2_10wxDateTime9WeekFlags
       ;wxDateTime::SetHour(unsigned short)
       SetHour__10wxDateTimeFUs
+      ;wxDateTime::SetDay(unsigned short)
+      SetDay__10wxDateTimeFUs
       ;wxDateTime::wxDateTime(long)
       __ct__10wxDateTimeFl
       ;wxDateTime::Set(double)
@@ -684,8 +686,6 @@ EXPORTS
       IsEqualTo__10wxDateTimeCFRC10wxDateTime
       ;wxDateTime::IsBetween(const wxDateTime&,const wxDateTime&) const
       IsBetween__10wxDateTimeCFRC10wxDateTimeT1
-      ;wxDateTime::GetWeek(unsigned short,wxDateTime::WeekDay) const
-      GetWeek__10wxDateTimeCFUsQ2_10wxDateTime7WeekDay
       ;wxDateTime::GetLastWeekDay(wxDateTime::WeekDay,wxDateTime::Month,int)
       GetLastWeekDay__10wxDateTimeFQ2_10wxDateTime7WeekDayQ2_10wxDateTime5Monthi
       ;wxDateTime::GetEndDST(int,wxDateTime::Country)
@@ -733,10 +733,6 @@ EXPORTS
       TIME_T_FACTOR__10wxDateTime
       ;wxDateTime::Subtract(const wxDateTime&) const
       Subtract__10wxDateTimeCFRC10wxDateTime
-      ;wxDateTime::SetToWeekDayInSameWeek(wxDateTime::WeekDay)
-      SetToWeekDayInSameWeek__10wxDateTimeFQ2_10wxDateTime7WeekDay
-      ;wxDateTime::SetToTheWeek(unsigned short,wxDateTime::WeekDay)
-      SetToTheWeek__10wxDateTimeFUsQ2_10wxDateTime7WeekDay
       ;wxDateTime::SetToPrevWeekDay(wxDateTime::WeekDay)
       SetToPrevWeekDay__10wxDateTimeFQ2_10wxDateTime7WeekDay
       ;wxDateTime::IsSameTime(const wxDateTime&) const
@@ -777,8 +773,8 @@ EXPORTS
       Add__10wxDateTimeFRC10wxTimeSpan
       ;wxDateTime::Add(const wxDateSpan&) const
       Add__10wxDateTimeCFRC10wxDateSpan
-      ;wxDateTime::GetMonthName(wxDateTime::Month,wxDateTime::NameFlags)
-      GetMonthName__10wxDateTimeFQ2_10wxDateTime5MonthQ2_10wxDateTime9NameFlags
+      ;wxDateTime::GetWeek(unsigned short,wxDateTime::WeekDay,wxDateTime::WeekFlags) const
+      GetWeek__10wxDateTimeCFUsQ2_10wxDateTime7WeekDayQ2_10wxDateTime9WeekFlags
       ;wxDateTime::SetMillisecond(unsigned short)
       SetMillisecond__10wxDateTimeFUs
       ;wxDateTime::ParseDate(const char*)
@@ -787,10 +783,14 @@ EXPORTS
       ParseDateTime__10wxDateTimeFPCc
       ;wxDateTime::GetWeekDayName(wxDateTime::WeekDay,wxDateTime::NameFlags)
       GetWeekDayName__10wxDateTimeFQ2_10wxDateTime7WeekDayQ2_10wxDateTime9NameFlags
+      ;wxDateTime::GetMonthName(wxDateTime::Month,wxDateTime::NameFlags)
+      GetMonthName__10wxDateTimeFQ2_10wxDateTime5MonthQ2_10wxDateTime9NameFlags
       ;wxDateTime::Set(long)
       Set__10wxDateTimeFl
       ;wxDateTime::ToTimezone(const wxDateTime::TimeZone&,unsigned long) const
       ToTimezone__10wxDateTimeCFRCQ2_10wxDateTime8TimeZoneUl
+      ;wxDateTime::SetFromDOS(unsigned long)
+      SetFromDOS__10wxDateTimeFUl
       ;wxDateTimeArray::Index(const wxDateTime&,unsigned long) const
       Index__15wxDateTimeArrayCFRC10wxDateTimeUl
       ;wxDateTime::wxDateTime(unsigned short,wxDateTime::Month,int,unsigned short,unsigned short,unsigned short,unsigned short)
@@ -810,8 +810,6 @@ EXPORTS
       IsEarlierThan__10wxDateTimeCFRC10wxDateTime
       ;wxDateTime::GetWeekOfMonth(wxDateTime::WeekFlags,const wxDateTime::TimeZone&) const
       GetWeekOfMonth__10wxDateTimeCFQ2_10wxDateTime9WeekFlagsRCQ2_10wxDateTime8TimeZone
-      ;wxDateTime::GetWeekDayInSameWeek(wxDateTime::WeekDay) const
-      GetWeekDayInSameWeek__10wxDateTimeCFQ2_10wxDateTime7WeekDay
       ;wxDateTimeArray::DoCopy(const wxDateTimeArray&)
       DoCopy__15wxDateTimeArrayFRC15wxDateTimeArray
       ;wxDateTime::IsInStdRange() const
@@ -838,16 +836,20 @@ EXPORTS
       GetValue__10wxDateTimeCFv
       ;wxDateTime::GetRataDie() const
       GetRataDie__10wxDateTimeCFv
+      ;wxDateTime::GetAsDOS() const
+      GetAsDOS__10wxDateTimeCFv
       ;wxTimeSpan::Add(const wxTimeSpan&) const
       Add__10wxTimeSpanCFRC10wxTimeSpan
       ;wxDateTime::Add(const wxDateSpan&)
       Add__10wxDateTimeFRC10wxDateSpan
       ;wxTimeSpan::Abs() const
       Abs__10wxTimeSpanCFv
-      ;wxDateTime::GetYearDay(unsigned short) const
-      GetYearDay__10wxDateTimeCFUs
+      ;wxDateTime::GetWeekDayInSameWeek(wxDateTime::WeekDay,wxDateTime::WeekFlags) const
+      GetWeekDayInSameWeek__10wxDateTimeCFQ2_10wxDateTime7WeekDayQ2_10wxDateTime9WeekFlags
       ;wxDateTime::SetToYearDay(unsigned short)
       SetToYearDay__10wxDateTimeFUs
+      ;wxDateTime::GetYearDay(unsigned short) const
+      GetYearDay__10wxDateTimeCFUs
       ;wxTimeSpan::Format(const char*) const
       Format__10wxTimeSpanCFPCc
   ;From object file:  ..\common\datstrm.cpp
@@ -1848,6 +1850,8 @@ EXPORTS
       sm_classwxEvent__7wxEvent
       ;wxEraseEvent::sm_classwxEraseEvent
       sm_classwxEraseEvent__12wxEraseEvent
+      ;wxKeyEvent::wxKeyEvent(const wxKeyEvent&)
+      __ct__10wxKeyEventFRC10wxKeyEvent
       ;wxEvtHandler::SearchEventTable(wxEventTable&,wxEvent&)
       SearchEventTable__12wxEvtHandlerFR12wxEventTableR7wxEvent
       ;wxEvtHandler::ProcessEvent(wxEvent&)
@@ -2256,10 +2260,10 @@ EXPORTS
       GetTimes__10wxFileNameCFP10wxDateTimeN21
       ;wxFileName::Clear()
       Clear__10wxFileNameFv
-      ;wxFileName::wxFileExists()
-      wxFileExists__10wxFileNameFv
       ;wxFileName::GetFullName() const
       GetFullName__10wxFileNameCFv
+      ;wxFileName::DirExists()
+      DirExists__10wxFileNameFv
       ;wxFileName::AssignHomeDir()
       AssignHomeDir__10wxFileNameFv
       ;wxFileName::PrependDir(const wxString&)
@@ -2276,26 +2280,26 @@ EXPORTS
       Touch__10wxFileNameFv
       ;wxFileName::FileName(const wxString&)
       FileName__10wxFileNameFRC8wxString
-      ;wxFileName::wxPathExists(const wxString&)
-      wxPathExists__10wxFileNameFRC8wxString
       ;wxFileName::SetFullName(const wxString&)
       SetFullName__10wxFileNameFRC8wxString
       ;wxFileName::GetCwd(const wxString&)
       GetCwd__10wxFileNameFRC8wxString
+      ;wxFileName::DirExists(const wxString&)
+      DirExists__10wxFileNameFRC8wxString
       ;wxFileName::AssignCwd(const wxString&)
       AssignCwd__10wxFileNameFRC8wxString
       ;wxFileName::Assign(const wxString&,const wxString&,const wxString&,const wxString&,wxPathFormat)
       Assign__10wxFileNameFRC8wxStringN3112wxPathFormat
-      ;wxFileName::SameAs(const wxFileName&,wxPathFormat)
-      SameAs__10wxFileNameFRC10wxFileName12wxPathFormat
+      ;wxFileName::SameAs(const wxFileName&,wxPathFormat) const
+      SameAs__10wxFileNameCFRC10wxFileName12wxPathFormat
       ;wxFileName::IsAbsolute(wxPathFormat) const
       IsAbsolute__10wxFileNameCF12wxPathFormat
       ;wxFileName::GetVolumeSeparator(wxPathFormat)
       GetVolumeSeparator__10wxFileNameF12wxPathFormat
       ;wxFileName::RemoveDir(int)
       RemoveDir__10wxFileNameFi
-      ;wxFileName::wxPathExists()
-      wxPathExists__10wxFileNameFv
+      ;wxFileName::FileExists()
+      FileExists__10wxFileNameFv
       ;wxFileName::SetCwd()
       SetCwd__10wxFileNameFv
       ;wxFileName::GetShortPath() const
@@ -2320,8 +2324,6 @@ EXPORTS
       Rmdir__10wxFileNameFv
       ;wxFileName::GetLongPath() const
       GetLongPath__10wxFileNameCFv
-      ;wxFileName::wxFileExists(const wxString&)
-      wxFileExists__10wxFileNameFRC8wxString
       ;wxFileName::InsertDir(int,const wxString&)
       InsertDir__10wxFileNameFiRC8wxString
       ;wxFileName::Assign(const wxString&,const wxString&,wxPathFormat)
@@ -2346,6 +2348,8 @@ EXPORTS
       SetCwd__10wxFileNameFRC8wxString
       ;wxFileName::Rmdir(const wxString&)
       Rmdir__10wxFileNameFRC8wxString
+      ;wxFileName::FileExists(const wxString&)
+      FileExists__10wxFileNameFRC8wxString
   ;From object file:  ..\common\filesys.cpp
     ;PUBDEFs (Symbols available from object file):
       __vft19wxFileSystemHandler8wxObject
@@ -2623,8 +2627,8 @@ EXPORTS
       Close__5wxFTPFv
       ;wxFTP::MkDir(const wxString&)
       MkDir__5wxFTPFRC8wxString
-      ;wxFTP::wxFileExists(const wxString&)
-      wxFileExists__5wxFTPFRC8wxString
+      ;wxFTP::FileExists(const wxString&)
+      FileExists__5wxFTPFRC8wxString
       ;wxFTP::Rename(const wxString&,const wxString&)
       Rename__5wxFTPFRC8wxStringT1
       ;wxFTP::wxFTP()
@@ -2813,6 +2817,8 @@ EXPORTS
       Union__14wxRect2DDoubleFRC14wxRect2DDoubleT1P14wxRect2DDouble
       ;wxRect2DDouble::Intersects(const wxRect2DDouble&) const
       Intersects__14wxRect2DDoubleCFRC14wxRect2DDouble
+      ;wxPoint2DInt::GetVectorAngle() const
+      GetVectorAngle__12wxPoint2DIntCFv
       ;wxRect2DInt::Union(const wxRect2DInt&,const wxRect2DInt&,wxRect2DInt*)
       Union__11wxRect2DIntFRC11wxRect2DIntT1P11wxRect2DInt
       ;wxPoint2DInt::SetVectorAngle(double)
@@ -2827,8 +2833,6 @@ EXPORTS
       Intersects__11wxRect2DIntCFRC11wxRect2DInt
       ;wxPoint2DInt::WriteTo(wxDataOutputStream&) const
       WriteTo__12wxPoint2DIntCFR18wxDataOutputStream
-      ;wxPoint2DInt::GetVectorAngle()
-      GetVectorAngle__12wxPoint2DIntFv
   ;From object file:  ..\common\gifdecod.cpp
     ;PUBDEFs (Symbols available from object file):
       ;wxGIFDecoder::wxGIFDecoder(wxInputStream*,unsigned long)
@@ -5125,9 +5129,11 @@ EXPORTS
       SetScreenType__16wxSystemSettingsF18wxSystemScreenType
   ;From object file:  ..\common\sizer.cpp
     ;PUBDEFs (Symbols available from object file):
+      ;wxSizer::Show(wxSizer*,unsigned long)
+      Show__7wxSizerFP7wxSizerUl
+      __vft11wxGridSizer8wxObject
       ;wxSizerItem::wxSizerItem(int,int,int,int,int,wxObject*)
       __ct__11wxSizerItemFiN41P8wxObject
-      __vft11wxGridSizer8wxObject
       ;wxSizerItem::wxSizerItem(wxSizer*,int,int,int,wxObject*)
       __ct__11wxSizerItemFP7wxSizeriN22P8wxObject
       ;wxSizer::Insert(int,wxSizer*,int,int,int,wxObject*)
@@ -5198,6 +5204,8 @@ EXPORTS
       RecalcSizes__16wxStaticBoxSizerFv
       ;wxSizerItem::IsWindow()
       IsWindow__11wxSizerItemFv
+      ;wxSizer::IsShown(wxSizer*)
+      IsShown__7wxSizerFP7wxSizer
       ;wxSizerItem::GetSize()
       GetSize__11wxSizerItemFv
       ;wxNotebookSizer::CalcMin()
@@ -5208,10 +5216,14 @@ EXPORTS
       Remove__7wxSizerFP8wxWindow
       ;wxSizer::FitSize(wxWindow*)
       FitSize__7wxSizerFP8wxWindow
-      ;wxSizer::Clear(unsigned long)
-      Clear__7wxSizerFUl
+      ;wxSizer::Show(wxWindow*,unsigned long)
+      Show__7wxSizerFP8wxWindowUl
       __vft7wxSizer8wxObject
       __vft15wxNotebookSizer8wxObject
+      ;wxSizer::ShowItems(unsigned long)
+      ShowItems__7wxSizerFUl
+      ;wxSizer::Clear(unsigned long)
+      Clear__7wxSizerFUl
       ;wxSizer::Remove(int)
       Remove__7wxSizerFi
       ;wxSizer::GetMinSize()
@@ -5258,6 +5270,8 @@ EXPORTS
       DeleteWindows__11wxSizerItemFv
       ;wxSizer::GetMinClientSize(wxWindow*)
       GetMinClientSize__7wxSizerFP8wxWindow
+      ;wxSizer::IsShown(wxWindow*)
+      IsShown__7wxSizerFP8wxWindow
       ;wxSizer::GetMaxClientSize(wxWindow*)
       GetMaxClientSize__7wxSizerFP8wxWindow
       ;wxSizerItem::wxSizerItem(wxWindow*,int,int,int,wxObject*)
@@ -5453,12 +5467,15 @@ EXPORTS
       SetName__8wxCSConvFPCc
       ;wxMBConvUTF7::MB2WC(wchar_t*,const char*,unsigned int) const
       MB2WC__12wxMBConvUTF7CFPwPCcUi
+      wxConvISO8859_1
       ;wxStrConvModule::sm_classwxStrConvModule
       sm_classwxStrConvModule__15wxStrConvModule
       ;wxMBConvUTF8::WC2MB(char*,const wchar_t*,unsigned int) const
       WC2MB__12wxMBConvUTF8CFPcPCwUi
       ;wxMBConvUTF8::MB2WC(wchar_t*,const char*,unsigned int) const
       MB2WC__12wxMBConvUTF8CFPwPCcUi
+      ;wxMBConv::~wxMBConv()
+      __dt__8wxMBConvFv
       __vft12wxMBConvUTF88wxMBConv
       wxConvCurrent
       ;wxMBConv::WC2MB(char*,const wchar_t*,unsigned int) const
@@ -5494,22 +5511,20 @@ EXPORTS
     ;PUBDEFs (Symbols available from object file):
       ;wxStreamBuffer::SetBufferIO(void*,unsigned int,unsigned long)
       SetBufferIO__14wxStreamBufferFPvUiUl
-      ;wxStreamBuffer::wxStreamBuffer(wxStreamBase&,wxStreamBuffer::BufMode)
-      __ct__14wxStreamBufferFR12wxStreamBaseQ2_14wxStreamBuffer7BufMode
+      ;wxStreamBuffer::wxStreamBuffer(wxStreamBuffer::BufMode)
+      __ct__14wxStreamBufferFQ2_14wxStreamBuffer7BufMode
       ;wxEndL(wxOutputStream&)
       wxEndL__FR14wxOutputStream
       __vft22wxBufferedOutputStream12wxStreamBase
       __vft14wxOutputStream12wxStreamBase
-      ;wxStreamBuffer::wxStreamBuffer(wxStreamBuffer::BufMode)
-      __ct__14wxStreamBufferFQ2_14wxStreamBuffer7BufMode
+      ;wxStreamBuffer::wxStreamBuffer(wxStreamBase&,wxStreamBuffer::BufMode)
+      __ct__14wxStreamBufferFR12wxStreamBaseQ2_14wxStreamBuffer7BufMode
       ;wxStreamBuffer::Write(const void*,unsigned int)
       Write__14wxStreamBufferFPCvUi
       ;wxInputStream::SeekI(long,wxSeekMode)
       SeekI__13wxInputStreamFl10wxSeekMode
       ;wxBufferedInputStream::OnSysRead(void*,unsigned int)
       OnSysRead__21wxBufferedInputStreamFPvUi
-      ;wxInputStream::OnSysRead(void*,unsigned int)
-      OnSysRead__13wxInputStreamFPvUi
       ;wxOutputStream::~wxOutputStream()
       __dt__14wxOutputStreamFv
       ;wxInputStream::~wxInputStream()
@@ -5636,6 +5651,8 @@ EXPORTS
       Init__14wxStreamBufferFv
       ;wxStreamBuffer::GetInputStream() const
       GetInputStream__14wxStreamBufferCFv
+      ;wxInputStream::CanRead() const
+      CanRead__13wxInputStreamCFv
       ;wxStreamBuffer::PutChar(char)
       PutChar__14wxStreamBufferFc
       ;wxInputStream::Read(wxOutputStream&)
@@ -5657,14 +5674,14 @@ EXPORTS
       GetFromBuffer__14wxStreamBufferFPvUi
       ;wxInputStream::AllocSpaceWBack(unsigned int)
       AllocSpaceWBack__13wxInputStreamFUi
+      ;wxStreamBuffer::ResetBuffer()
+      ResetBuffer__14wxStreamBufferFv
       ;wxOutputStream::wxOutputStream()
       __ct__14wxOutputStreamFv
       ;wxBufferedInputStream::TellI() const
       TellI__21wxBufferedInputStreamCFv
       ;wxBufferedOutputStream::Sync()
       Sync__22wxBufferedOutputStreamFv
-      ;wxStreamBuffer::ResetBuffer()
-      ResetBuffer__14wxStreamBufferFv
       ;wxStreamBuffer::Read(wxStreamBuffer*)
       Read__14wxStreamBufferFP14wxStreamBuffer
       ;wxBufferedInputStream::Peek()
@@ -6405,8 +6422,6 @@ EXPORTS
       wxStripMenuCodes__FPCcPc
       ;wxSafeYield(wxWindow*)
       wxSafeYield__FP8wxWindow
-      ;StringMatch(const char*,const char*,unsigned long,unsigned long)
-      StringMatch__FPCcT1UlT3
       ;wxFindMenuItemId(wxFrame*,const wxString&,const wxString&)
       wxFindMenuItemId__FP7wxFrameRC8wxStringT2
       ;wxGetUserName()
@@ -7167,8 +7182,8 @@ EXPORTS
       DoSetVirtualSize__12wxWindowBaseFiT1
       ;wxWindowBase::DoHitTest(int,int) const
       DoHitTest__12wxWindowBaseCFiT1
-      ;wxWindowBase::DoGetBestSize() const
-      DoGetBestSize__12wxWindowBaseCFv
+      ;wxWindowBase::FitInside()
+      FitInside__12wxWindowBaseFv
       ;wxWindowBase::TransferDataFromWindow()
       TransferDataFromWindow__12wxWindowBaseFv
       ;wxWindowBase::IsTopLevel() const
@@ -7179,6 +7194,8 @@ EXPORTS
       GetHelpText__12wxWindowBaseCFv
       ;wxWindowBase::GetAncestorWithCustomPalette() const
       GetAncestorWithCustomPalette__12wxWindowBaseCFv
+      ;wxWindowBase::DoGetBestSize() const
+      DoGetBestSize__12wxWindowBaseCFv
       ;wxWindowBase::FindWindowByLabel(const wxString&,const wxWindow*)
       FindWindowByLabel__12wxWindowBaseFRC8wxStringPC8wxWindow
       ;wxWindowBase::FindWindowByName(const wxString&,const wxWindow*)
@@ -7531,6 +7548,8 @@ EXPORTS
       HitTest__14wxCalendarCtrlFRC7wxPointP10wxDateTimePQ2_10wxDateTime7WeekDay
       ;wxCalendarCtrl::DoGetPosition(int*,int*) const
       DoGetPosition__14wxCalendarCtrlCFPiT1
+      ;wxCalendarCtrl::wxCalendarCtrl(wxWindow*,int,const wxDateTime&,const wxPoint&,const wxSize&,long,const wxString&)
+      __ct__14wxCalendarCtrlFP8wxWindowiRC10wxDateTimeRC7wxPointRC6wxSizelRC8wxString
       ;wxCalendarCtrl::Enable(unsigned long)
       Enable__14wxCalendarCtrlFUl
       wxEVT_CALENDAR_WEEKDAY_CLICKED
@@ -7903,13 +7922,13 @@ EXPORTS
       ;wxGenericDirCtrl::OnEndEditItem(wxTreeEvent&)
       OnEndEditItem__16wxGenericDirCtrlFR11wxTreeEvent
       __vft13wxDirItemData12wxClientData
-      ;wxGenericDirCtrl::Init()
-      Init__16wxGenericDirCtrlFv
-      __vft19wxDirFilterListCtrl15wxItemContainer
       ;wxDirItemData::~wxDirItemData()
       __dt__13wxDirItemDataFv
+      __vft19wxDirFilterListCtrl15wxItemContainer
       ;wxGenericDirCtrl::ParseFilter(const wxString&,wxArrayString&,wxArrayString&)
       ParseFilter__16wxGenericDirCtrlFRC8wxStringR13wxArrayStringT2
+      ;wxGenericDirCtrl::Init()
+      Init__16wxGenericDirCtrlFv
       ;wxDirFilterListCtrl::GetEventTable() const
       GetEventTable__19wxDirFilterListCtrlCFv
       ;wxGenericDirCtrl::ExpandDir(wxTreeItemId)
@@ -7918,14 +7937,14 @@ EXPORTS
       sm_eventTableEntries__19wxDirFilterListCtrl
       ;wxDirFilterListCtrl::OnSelFilter(wxCommandEvent&)
       OnSelFilter__19wxDirFilterListCtrlFR14wxCommandEvent
-      ;wxGenericDirCtrl::SetFilterIndex(int)
-      SetFilterIndex__16wxGenericDirCtrlFi
       ;wxDirFilterListCtrl::FillFilterList(const wxString&,int)
       FillFilterList__19wxDirFilterListCtrlFRC8wxStringi
-      ;wxGenericDirCtrl::ReCreateTree()
-      ReCreateTree__16wxGenericDirCtrlFv
+      ;wxGenericDirCtrl::SetFilterIndex(int)
+      SetFilterIndex__16wxGenericDirCtrlFi
       ;wxGenericDirCtrl::SetupSections()
       SetupSections__16wxGenericDirCtrlFv
+      ;wxGenericDirCtrl::ReCreateTree()
+      ReCreateTree__16wxGenericDirCtrlFv
       ;wxGenericDirCtrl::ShowHidden(unsigned long)
       ShowHidden__16wxGenericDirCtrlFUl
       ;wxGenericDirCtrl::OnCollapseItem(wxTreeEvent&)
@@ -9144,9 +9163,9 @@ EXPORTS
       LayoutFrame__17wxLayoutAlgorithmFP7wxFrameP8wxWindow
       ;wxSashLayoutWindow::sm_classwxSashLayoutWindow
       sm_classwxSashLayoutWindow__18wxSashLayoutWindow
+      wxEVT_CALCULATE_LAYOUT
       ;wxCalculateLayoutEvent::sm_classwxCalculateLayoutEvent
       sm_classwxCalculateLayoutEvent__22wxCalculateLayoutEvent
-      wxEVT_CALCULATE_LAYOUT
       ;wxConstructorForwxQueryLayoutInfoEvent()
       wxConstructorForwxQueryLayoutInfoEvent__Fv
       wxEVT_QUERY_LAYOUT_INFO
@@ -9366,6 +9385,8 @@ EXPORTS
       __ct__17wxListRenameTimerFP16wxListMainWindow
       ;wxGenericListCtrl::InsertColumn(long,const wxString&,int,int)
       InsertColumn__17wxGenericListCtrlFlRC8wxStringiT3
+      ;wxListLineData::DrawTextFormatted(wxDC*,const wxString&,int,int,int,int)
+      DrawTextFormatted__14wxListLineDataFP4wxDCRC8wxStringiN33
       ;wxListLineDataArray::Index(const wxListLineData&,unsigned long) const
       Index__19wxListLineDataArrayCFRC14wxListLineDataUl
       ;wxGenericListCtrl::sm_eventTableEntries
@@ -9670,8 +9691,6 @@ EXPORTS
       GetColumnWidth__16wxListMainWindowCFi
       ;wxListLineDataArray::Add(const wxListLineData&,unsigned int)
       Add__19wxListLineDataArrayFRC14wxListLineDataUi
-      ;wxListLineDataArray::DoEmpty()
-      DoEmpty__19wxListLineDataArrayFv
       ;wxConstructorForwxListView()
       wxConstructorForwxListView__Fv
       ;wxConstructorForwxListHeaderWindow()
@@ -9700,6 +9719,8 @@ EXPORTS
       GetCountPerPage__16wxListMainWindowCFv
       ;wxListHeaderWindow::DrawCurrent()
       DrawCurrent__18wxListHeaderWindowFv
+      ;wxListLineDataArray::DoEmpty()
+      DoEmpty__19wxListLineDataArrayFv
       ;wxListItemData::wxListItemData(wxListMainWindow*)
       __ct__14wxListItemDataFP16wxListMainWindow
       wxEVT_COMMAND_LIST_COL_END_DRAG
@@ -10193,6 +10214,8 @@ EXPORTS
       GetScrollPixelsPerUnit__14wxScrollHelperCFPiT1
       ;wxScrollHelper::Scroll(int,int)
       Scroll__14wxScrollHelperFiT1
+      ;wxGenericScrolledWindow::DoSetVirtualSize(int,int)
+      DoSetVirtualSize__23wxGenericScrolledWindowFiT1
       ;wxScrollHelper::~wxScrollHelper()
       __dt__14wxScrollHelperFv
       ;wxConstructorForwxGenericScrolledWindow()
@@ -10352,8 +10375,12 @@ EXPORTS
       OnUnsplit__16wxSplitterWindowFP8wxWindow
   ;From object file:  ..\generic\statusbr.cpp
     ;PUBDEFs (Symbols available from object file):
+      ;wxStatusBar::OnRightDown(wxMouseEvent&)
+      OnRightDown__11wxStatusBarFR12wxMouseEvent
       ;wxStatusBar::GetFieldRect(int,wxRect&) const
       GetFieldRect__11wxStatusBarCFiR6wxRect
+      ;wxStatusBar::OnLeftDown(wxMouseEvent&)
+      OnLeftDown__11wxStatusBarFR12wxMouseEvent
       ;wxStatusBar::SetStatusWidths(int,const int*)
       SetStatusWidths__11wxStatusBarFiPCi
       ;wxStatusBar::DrawField(wxDC&,int)
@@ -10368,8 +10395,6 @@ EXPORTS
       Create__11wxStatusBarFP8wxWindowilRC8wxString
       ;wxStatusBar::OnPaint(wxPaintEvent&)
       OnPaint__11wxStatusBarFR12wxPaintEvent
-      ;wxStatusBar::OnSize(wxSizeEvent&)
-      OnSize__11wxStatusBarFR11wxSizeEvent
       ;wxStatusBar::GetStatusText(int) const
       GetStatusText__11wxStatusBarCFi
       ;wxStatusBar::SetFieldsCount(int,const int*)
@@ -10711,6 +10736,8 @@ EXPORTS
       GetNextChild__17wxGenericTreeCtrlCFRC12wxTreeItemIdRl
       ;wxGenericTreeCtrl::GetItemText(const wxTreeItemId&) const
       GetItemText__17wxGenericTreeCtrlCFRC12wxTreeItemId
+      ;wxGenericTreeCtrl::GetItemBackgroundColour(const wxTreeItemId&) const
+      GetItemBackgroundColour__17wxGenericTreeCtrlCFRC12wxTreeItemId
       ;wxGenericTreeCtrl::GetFirstChild(const wxTreeItemId&,long&) const
       GetFirstChild__17wxGenericTreeCtrlCFRC12wxTreeItemIdRl
       ;wxGenericTreeCtrl::GetChildrenCount(const wxTreeItemId&,unsigned long)
@@ -10772,6 +10799,8 @@ EXPORTS
       GetPrevSibling__17wxGenericTreeCtrlCFRC12wxTreeItemId
       ;wxGenericTreeCtrl::GetLastChild(const wxTreeItemId&) const
       GetLastChild__17wxGenericTreeCtrlCFRC12wxTreeItemId
+      ;wxGenericTreeCtrl::GetItemTextColour(const wxTreeItemId&) const
+      GetItemTextColour__17wxGenericTreeCtrlCFRC12wxTreeItemId
       ;wxGenericTreeCtrl::Expand(const wxTreeItemId&)
       Expand__17wxGenericTreeCtrlFRC12wxTreeItemId
       ;wxGenericTreeItem::DeleteChildren(wxGenericTreeCtrl*)
@@ -10821,6 +10850,8 @@ EXPORTS
       SetWindowStyle__17wxGenericTreeCtrlFCl
       ;wxGenericTreeCtrl::GetNextVisible(const wxTreeItemId&) const
       GetNextVisible__17wxGenericTreeCtrlCFRC12wxTreeItemId
+      ;wxGenericTreeCtrl::GetItemFont(const wxTreeItemId&) const
+      GetItemFont__17wxGenericTreeCtrlCFRC12wxTreeItemId
       ;wxGenericTreeCtrl::GetItemData(const wxTreeItemId&) const
       GetItemData__17wxGenericTreeCtrlCFRC12wxTreeItemId
       ;wxGenericTreeCtrl::EnsureVisible(const wxTreeItemId&)
@@ -10911,14 +10942,15 @@ EXPORTS
       LoadFile__20wxHtmlHelpControllerFRC8wxString
   ;From object file:  ..\html\helpdata.cpp
     ;PUBDEFs (Symbols available from object file):
+      __vft18wxHtmlSearchEngine8wxObject
       ;wxHtmlBookRecArray::Add(const wxHtmlBookRecord&,unsigned int)
       Add__18wxHtmlBookRecArrayFRC16wxHtmlBookRecordUi
       ;wxHtmlBookRecArray::RemoveAt(unsigned int,unsigned int)
       RemoveAt__18wxHtmlBookRecArrayFUiT1
       ;wxHtmlHelpData::wxHtmlHelpData()
       __ct__14wxHtmlHelpDataFv
-      ;wxSearchEngine::LookFor(const wxString&,unsigned long,unsigned long)
-      LookFor__14wxSearchEngineFRC8wxStringUlT2
+      ;wxHtmlSearchEngine::LookFor(const wxString&,unsigned long,unsigned long)
+      LookFor__18wxHtmlSearchEngineFRC8wxStringUlT2
       ;HP_TagHandler::HandleTag(const wxHtmlTag&)
       HandleTag__13HP_TagHandlerFRC9wxHtmlTag
       ;wxHtmlBookRecArray::Index(const wxHtmlBookRecord&,unsigned long) const
@@ -10933,14 +10965,14 @@ EXPORTS
       __ct__18wxHtmlBookRecArrayFRC18wxHtmlBookRecArray
       ;HP_TagHandler::WriteOut(wxHtmlContentsItem*&,int&)
       WriteOut__13HP_TagHandlerFRP18wxHtmlContentsItemRi
+      ;wxHtmlSearchEngine::Scan(const wxFSFile&)
+      Scan__18wxHtmlSearchEngineFRC8wxFSFile
       ;wxHtmlBookRecArray::DoEmpty()
       DoEmpty__18wxHtmlBookRecArrayFv
       ;wxHtmlBookRecArray::Insert(const wxHtmlBookRecord&,unsigned int,unsigned int)
       Insert__18wxHtmlBookRecArrayFRC16wxHtmlBookRecordUiT2
       ;wxHtmlHelpData::SaveCachedBook(wxHtmlBookRecord*,wxOutputStream*)
       SaveCachedBook__14wxHtmlHelpDataFP16wxHtmlBookRecordP14wxOutputStream
-      ;wxSearchEngine::Scan(wxInputStream*)
-      Scan__14wxSearchEngineFP13wxInputStream
       ;wxHtmlHelpData::FindPageById(int)
       FindPageById__14wxHtmlHelpDataFi
       ;wxConstructorForwxHtmlHelpData()
@@ -10951,7 +10983,6 @@ EXPORTS
       GetFullPath__16wxHtmlBookRecordCFRC8wxString
       ;wxHtmlHelpData::LoadMSProject(wxHtmlBookRecord*,wxFileSystem&,const wxString&,const wxString&)
       LoadMSProject__14wxHtmlHelpDataFP16wxHtmlBookRecordR12wxFileSystemRC8wxStringT3
-      __vft14wxSearchEngine8wxObject
       ;wxHtmlBookRecArray::DoCopy(const wxHtmlBookRecArray&)
       DoCopy__18wxHtmlBookRecArrayFRC18wxHtmlBookRecArray
       ;wxHtmlBookRecArray::~wxHtmlBookRecArray()
@@ -11099,6 +11130,8 @@ EXPORTS
       FindCellByPos__10wxHtmlCellCFiT1
       ;wxHtmlWordCell::Draw(wxDC&,int,int,int,int)
       Draw__14wxHtmlWordCellFR4wxDCiN32
+      ;wxHtmlContainerCell::GetBackgroundColour()
+      GetBackgroundColour__19wxHtmlContainerCellFv
       ;wxHtmlContainerCell::Draw(wxDC&,int,int,int,int)
       Draw__19wxHtmlContainerCellFR4wxDCiN32
       ;wxHtmlWidgetCell::Draw(wxDC&,int,int,int,int)
@@ -11146,8 +11179,6 @@ EXPORTS
       wxConstructorForwxHtmlFilterHTML__Fv
       ;wxHtmlFilterHTML::sm_classwxHtmlFilterHTML
       sm_classwxHtmlFilterHTML__16wxHtmlFilterHTML
-      ;wxPrivate_ReadString(wxString&,wxInputStream*)
-      wxPrivate_ReadString__FR8wxStringP13wxInputStream
       ;wxHtmlFilterPlainText::ReadFile(const wxFSFile&) const
       ReadFile__21wxHtmlFilterPlainTextCFRC8wxFSFile
       ;wxHtmlFilterHTML::ReadFile(const wxFSFile&) const
@@ -11182,9 +11213,12 @@ EXPORTS
       DoCopy__16wxHtmlTextPiecesFRC16wxHtmlTextPieces
       ;wxHtmlEntitiesParser::GetEntityChar(const wxString&)
       GetEntityChar__20wxHtmlEntitiesParserFRC8wxString
+      ;wxHtmlParser::ExtractCharsetInformation(const wxString&)
+      ExtractCharsetInformation__12wxHtmlParserFRC8wxString
       ;wxHtmlTextPieces::Index(const wxHtmlTextPiece&,unsigned long) const
       Index__16wxHtmlTextPiecesCFRC15wxHtmlTextPieceUl
       __vft20wxHtmlEntitiesParser8wxObject
+      __vft16wxMetaTagHandler8wxObject
       ;wxHtmlParser::DoParsing()
       DoParsing__12wxHtmlParserFv
       ;wxHtmlParser::RestoreState()
@@ -11195,6 +11229,8 @@ EXPORTS
       __ct__16wxHtmlTextPiecesFRC16wxHtmlTextPieces
       ;wxHtmlParser::SetSource(const wxString&)
       SetSource__12wxHtmlParserFRC8wxString
+      ;wxMetaTagHandler::HandleTag(const wxHtmlTag&)
+      HandleTag__16wxMetaTagHandlerFRC9wxHtmlTag
       ;wxHtmlTextPieces::RemoveAt(unsigned int,unsigned int)
       RemoveAt__16wxHtmlTextPiecesFUiT1
       ;wxHtmlTextPieces::DoEmpty()
@@ -11573,14 +11609,6 @@ EXPORTS
       __ct__18wxHtmlListmarkCellFP4wxDCRC8wxColour
       ;wxHtmlListmarkCell::Draw(wxDC&,int,int,int,int)
       Draw__18wxHtmlListmarkCellFR4wxDCiN32
-  ;From object file:  ..\html\m_meta.cpp
-    ;PUBDEFs (Symbols available from object file):
-      ;wxConstructorForHTML_ModuleMetaTag()
-      wxConstructorForHTML_ModuleMetaTag__Fv
-      ;HTML_ModuleMetaTag::sm_classHTML_ModuleMetaTag
-      sm_classHTML_ModuleMetaTag__18HTML_ModuleMetaTag
-      ;_link_dummy_func_m_meta()
-      _link_dummy_func_m_meta__Fv
   ;From object file:  ..\html\m_pre.cpp
     ;PUBDEFs (Symbols available from object file):
       ;HTML_ModulePre::sm_classHTML_ModulePre
@@ -11730,6 +11758,7 @@ EXPORTS
       sm_classwxApp__5wxApp
       ;wxAppRemoveSocketHandler(int)
       wxAppRemoveSocketHandler__Fi
+      gbInOnIdle
       ;wxAppAddSocketHandler(int,int,void(*)(void*),void*)
       wxAppAddSocketHandler__FiT1PFPv_vPv
       ;wxWakeUpIdle()
@@ -13733,12 +13762,10 @@ EXPORTS
       ;wxNotebook::SetPageText(int,const wxString&)
       SetPageText__10wxNotebookFiRC8wxString
       wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED
-      ;wxNotebook::ChangePage(int,int)
-      ChangePage__10wxNotebookFiT1
-      ;wxNotebook::SetTabSize(const wxSize&)
-      SetTabSize__10wxNotebookFRC6wxSize
       ;wxNotebook::SetPageSize(const wxSize&)
       SetPageSize__10wxNotebookFRC6wxSize
+      ;wxNotebook::SetTabSize(const wxSize&)
+      SetTabSize__10wxNotebookFRC6wxSize
       ;wxNotebook::AddPage(wxWindow*,const wxString&,unsigned long,int)
       AddPage__10wxNotebookFP8wxWindowRC8wxStringUli
       ;wxNotebook::OS2GetStyle(long,unsigned long*) const
@@ -14537,6 +14564,8 @@ EXPORTS
       OnRedo__10wxTextCtrlFR14wxCommandEvent
       ;wxTextCtrl::OnPaste(wxCommandEvent&)
       OnPaste__10wxTextCtrlFR14wxCommandEvent
+      ;wxTextCtrl::OnDelete(wxCommandEvent&)
+      OnDelete__10wxTextCtrlFR14wxCommandEvent
       ;wxTextCtrl::OnChar(wxKeyEvent&)
       OnChar__10wxTextCtrlFR10wxKeyEvent
       ;wxTextCtrl::Remove(long,long)
@@ -14553,13 +14582,14 @@ EXPORTS
       OS2GetStyle__10wxTextCtrlCFlPUl
       ;wxTextCtrl::sm_classwxTextCtrl
       sm_classwxTextCtrl__10wxTextCtrl
-      __vft10wxTextCtrl8wxObject
       ;wxTextCtrl::ShowPosition(long)
       ShowPosition__10wxTextCtrlFl
       ;wxTextCtrl::SetWindowStyleFlag(long)
       SetWindowStyleFlag__10wxTextCtrlFl
       ;wxTextCtrl::SetEditable(unsigned long)
       SetEditable__10wxTextCtrlFUl
+      ;wxTextCtrl::OnUpdateSelectAll(wxUpdateUIEvent&)
+      OnUpdateSelectAll__10wxTextCtrlFR15wxUpdateUIEvent
       ;wxTextCtrl::OnUpdateCopy(wxUpdateUIEvent&)
       OnUpdateCopy__10wxTextCtrlFR15wxUpdateUIEvent
       ;wxTextCtrl::OnCut(wxCommandEvent&)
@@ -14592,6 +14622,8 @@ EXPORTS
       Create__10wxTextCtrlFP8wxWindowiRC8wxStringRC7wxPointRC6wxSizelRC11wxValidatorT3
       ;wxTextCtrl::SetInsertionPoint(long)
       SetInsertionPoint__10wxTextCtrlFl
+      ;wxTextCtrl::OnUpdateDelete(wxUpdateUIEvent&)
+      OnUpdateDelete__10wxTextCtrlFR15wxUpdateUIEvent
       ;wxTextCtrl::GetLineLength(long) const
       GetLineLength__10wxTextCtrlCFl
       ;wxTextCtrl::Cut()
@@ -14622,6 +14654,8 @@ EXPORTS
       sm_eventTableEntries__10wxTextCtrl
       ;wxTextCtrl::OnUpdateRedo(wxUpdateUIEvent&)
       OnUpdateRedo__10wxTextCtrlFR15wxUpdateUIEvent
+      ;wxTextCtrl::OnSelectAll(wxCommandEvent&)
+      OnSelectAll__10wxTextCtrlFR14wxCommandEvent
       ;wxTextCtrl::OnDropFiles(wxDropFilesEvent&)
       OnDropFiles__10wxTextCtrlFR16wxDropFilesEvent
       ;wxTextCtrl::OnCtlColor(unsigned long,unsigned long,unsigned int,unsigned int,void*,void*)
diff --git a/src/png/ANNOUNCE b/src/png/ANNOUNCE
index 425cdeed6b..91c7ab01be 100644
--- a/src/png/ANNOUNCE
+++ b/src/png/ANNOUNCE
@@ -1,28 +1,35 @@
 
-Libpng 1.2.4 - July 8, 2002
+Libpng 1.2.5rc3 - September 18, 2002
 
-This is a public release of libpng, intended for use in production codes.
+This is not intended to be a public release.  It will be replaced
+within a few weeks by a public version or by another test version.
 
-Changes since the last public release (1.2.3):
+Changes since the last public release (1.2.4):
 
-  Added libpng.pc and libpng-config to "all:" target in 16 makefiles.
-  Fixed bug in 16 makefiles: $(DESTDIR)/$(LIBPATH) to $(DESTDIR)$(LIBPATH)
-  Added missing "\" before closing double quote in makefile.gcmmx.
-  Plugged various memory leaks; added png_malloc_warn() and png_set_text_2()
-    functions.
-  Plugged memory leak of png_ptr->current_text (Matt Holgate).
-  Check for buffer overflow before reading CRC in pngpread.c (Warwick Allison)
-  Added -soname to the loader flags in makefile.dec, makefile.sgi, and
-    makefile.sggcc.
-  Added "test-installed" targets to makefile.linux, makefile.gcmmx,
-    makefile.sgi, makefile.sggcc, makefile.32sunu, makefile.64sunu,
-    makefile.beos, makefile.darwin, makefile.dec, makefile.macosx, 
-    makefile.solaris, makefile.sco, makefile.cygwin, makefile.hpux,
-    makefile.hpgcc, and makefile.so9.
-  Plugged memory leak of row_buf in pngtest.c when there is a png_error().
-  Detect buffer overflow in pngpread.c when IDAT is corrupted with extra data.
-  Revised pnggccrd.c to be able to back out version 1.0.x via PNG_1_0_X macro.
-  Changed png_warning() to png_error() when width is too large to process.
+version 1.2.4patch01 [July 20, 2002]
+  Revised makefile.cygwin to use DLL number 12 instead of 13.
+version 1.2.5beta1 [August 6, 2002]
+  Added code to contrib/gregbook/readpng2.c to ignore unused chunks.
+  Replaced toucan.png in contrib/gregbook (it has been corrupt since 1.0.11)
+  Removed some stray *.o files from contrib/gregbook.
+  Changed png_error() to png_warning() about "Too much data" in pngpread.c
+    and about "Extra compressed data" in pngrutil.c.
+  Prevent png_ptr->pass from exceeding 7 in png_push_finish_row().
+  Updated makefile.hggcc
+  Updated png.c and pnggccrd.c handling of return from png_mmx_support()
+version 1.2.5beta2 [August 15, 2002]
+  Only issue png_warning() about "Too much data" in pngpread.c when avail_in
+    is nonzero.
+  Updated makefiles to install a separate libpng.so.3 with its own rpath.
+version 1.2.5rc1 and 1.0.15rc1 [August 24, 2002]
+  Revised makefiles to not remove previous minor versions of shared libraries.
+version 1.2.5rc2 and 1.0.15rc2 [September 16, 2002]
+  Revised 13 makefiles to remove "-lz" and "-L$(ZLIBLIB)", etc., from shared
+    library loader directive.
+  Added missing "$OBJSDLL" line to makefile.gcmmx.
+  Added missing "; fi" to makefile.32sunu.
+version 1.2.5rc3 and 1.0.15rc3 [September 18, 2002]
+  Revised libpng-config script.
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/src/png/CHANGES b/src/png/CHANGES
index 7cebe0e803..d526aee119 100644
--- a/src/png/CHANGES
+++ b/src/png/CHANGES
@@ -1144,11 +1144,35 @@ version 1.2.4beta3 [June 28, 2002]
   Added "test-installed" target to makefile.32sunu, makefile.64sunu,
     makefile.beos, makefile.darwin, makefile.dec, makefile.macosx, 
     makefile.solaris, makefile.hpux, makefile.hpgcc, and makefile.so9.
-version 1.2.4rc1 [July 2, 2002]
+version 1.2.4rc1 and 1.0.14rc1 [July 2, 2002]
   Added "test-installed" target to makefile.cygwin and makefile.sco.
   Revised pnggccrd.c to be able to back out version 1.0.x via PNG_1_0_X macro.
-version 1.2.4 [July 8, 2002]
+version 1.2.4 and 1.0.14 [July 8, 2002]
   Changed png_warning() to png_error() when width is too large to process.
+version 1.2.4patch01 [July 20, 2002]
+  Revised makefile.cygwin to use DLL number 12 instead of 13.
+version 1.2.5beta1 [August 6, 2002]
+  Added code to contrib/gregbook/readpng2.c to ignore unused chunks.
+  Replaced toucan.png in contrib/gregbook (it has been corrupt since 1.0.11)
+  Removed some stray *.o files from contrib/gregbook.
+  Changed png_error() to png_warning() about "Too much data" in pngpread.c
+    and about "Extra compressed data" in pngrutil.c.
+  Prevent png_ptr->pass from exceeding 7 in png_push_finish_row().
+  Updated makefile.hpgcc
+  Updated png.c and pnggccrd.c handling of return from png_mmx_support()
+version 1.2.5beta2 [August 15, 2002]
+  Only issue png_warning() about "Too much data" in pngpread.c when avail_in
+    is nonzero.
+  Updated makefiles to install a separate libpng.so.3 with its own rpath.
+version 1.2.5rc1 and 1.0.15rc1 [August 24, 2002]
+  Revised makefiles to not remove previous minor versions of shared libraries.
+version 1.2.5rc2 and 1.0.15rc2 [September 16, 2002]
+  Revised 13 makefiles to remove "-lz" and "-L$(ZLIBLIB)", etc., from shared
+    library loader directive.
+  Added missing "$OBJSDLL" line to makefile.gcmmx.
+  Added missing "; fi" to makefile.32sunu.
+version 1.2.5rc3 and 1.0.15rc3 [September 18, 2002]
+  Revised libpng-config script.
 
 Send comments/corrections/commendations to
 png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
diff --git a/src/png/INSTALL b/src/png/INSTALL
index 9dde2fe7b1..08e54b133d 100644
--- a/src/png/INSTALL
+++ b/src/png/INSTALL
@@ -1,5 +1,5 @@
 
-Installing libpng version 1.2.4 - July 8, 2002
+Installing libpng version 1.2.5rc3 - September 18, 2002
 
 Before installing libpng, you must first install zlib.  zlib
 can usually be found wherever you got libpng.  zlib can be
@@ -10,7 +10,7 @@ zlib.h and zconf.h include files that correspond to the
 version of zlib that's installed.
 
 You can rename the directories that you downloaded (they
-might be called "libpng-1.2.4" or "lpng109" and "zlib-1.1.4"
+might be called "libpng-1.2.5rc3" or "lpng109" and "zlib-1.1.4"
 or "zlib114") so that you have directories called "zlib" and "libpng".
 
 Your directory structure should look like this:
@@ -68,8 +68,8 @@ The files that are presently available in the scripts directory
 include
 
  makefile.std      =>  Generic UNIX makefile (cc, creates static libpng.a)
- makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.4)
- makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.4,
+ makefile.linux    =>  Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.5rc3)
+ makefile.gcmmx    =>  Linux/ELF makefile (gcc, creates libpng12.so.0.1.2.5rc3,
                        uses assembler code tuned for Intel MMX platform)
  makefile.gcc      =>  Generic makefile (gcc, creates static libpng.a)
  makefile.knr      =>  Archaic UNIX Makefile that converts files with
@@ -90,10 +90,10 @@ include
  makefile.ne0bsd  =>  NetBSD/cc makefile, uses PNGGCCRD, makes libpng0.so
  makefile.openbsd  =>  OpenBSD makefile
  makefile.sgi      =>  Silicon Graphics IRIX makefile (cc, creates static lib)
- makefile.sggcc    =>  Silicon Graphics (gcc, creates libpng12.so.0.1.2.4)
+ makefile.sggcc    =>  Silicon Graphics (gcc, creates libpng12.so.0.1.2.5rc3)
  makefile.sunos    =>  Sun makefile
- makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng12.so.0.1.2.4)
- makefile.so9      =>  Solaris 9 makefile (gcc, creates libpng12.so.0.1.2.4)
+ makefile.solaris  =>  Solaris 2.X makefile (gcc, creates libpng12.so.0.1.2.5rc3)
+ makefile.so9      =>  Solaris 9 makefile (gcc, creates libpng12.so.0.1.2.5rc3)
  makefile.32sunu   =>  Sun Ultra 32-bit makefile
  makefile.64sunu   =>  Sun Ultra 64-bit makefile
  makefile.sco      =>  For SCO OSr5  ELF and Unixware 7 with Native cc
@@ -158,9 +158,9 @@ in the scripts directory when you run "make", "make install", or
  mangle.in        =>  Function-decoration macros added to png.h by the
                       makefiles.
  makefile.linux   =>  Linux/ELF makefile
-                      (gcc, creates libpng12m.so.0.1.2.4)
+                      (gcc, creates libpng12m.so.0.1.2.5rc3)
  makefile.gcmmx   =>  Linux/ELF makefile (gcc, creates
-                      libpng12.so.0m.1.2.4, uses assembler code
+                      libpng12.so.0m.1.2.5rc3, uses assembler code
                       tuned for Intel MMX platform)
  makefile.sgi     =>  Silicon Graphics (cc, creates libpng12m.so)
  makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng12m.so)
diff --git a/src/png/KNOWNBUG b/src/png/KNOWNBUG
index e5b7510287..1bce9c9c05 100644
--- a/src/png/KNOWNBUG
+++ b/src/png/KNOWNBUG
@@ -1,5 +1,5 @@
 
-Known bugs in libpng version 1.2.4
+Known bugs in libpng version 1.2.5rc3
 
 1. April 22, 2001: pnggccrd.c has been reported to crash on NetBSD when
    reading interlaced PNG files, when assembler code is enabled but running
diff --git a/src/png/LICENSE b/src/png/LICENSE
index 84e459435b..1f3a2537e4 100644
--- a/src/png/LICENSE
+++ b/src/png/LICENSE
@@ -8,7 +8,7 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
 If you modify libpng you may insert additional notices immediately following
 this sentence.
 
-libpng versions 1.0.7, July 1, 2000, through 1.2.4, July 8, 2002, are
+libpng versions 1.0.7, July 1, 2000, through 1.2.5rc3, September 18, 2002, are
 Copyright (c) 2000-2002 Glenn Randers-Pehrson
 and are distributed according to the same disclaimer and license as libpng-1.0.6
 with the following individuals added to the list of Contributing Authors
@@ -99,4 +99,4 @@ certification mark of the Open Source Initiative.
 
 Glenn Randers-Pehrson
 randeg@alum.rpi.edu
-July 8, 2002
+September 18, 2002
diff --git a/src/png/README b/src/png/README
index 56f2d5e2bd..101a75a4af 100644
--- a/src/png/README
+++ b/src/png/README
@@ -1,4 +1,4 @@
-README for libpng 1.2.4 - July 8, 2002 (shared library 12.0)
+README for libpng 1.2.5rc3 - September 18, 2002 (shared library 12.0)
 See the note about version numbers near the top of png.h
 
 See INSTALL for instructions on how to install libpng.
@@ -187,9 +187,9 @@ Files in this distribution:
        descrip.mms      =>  VMS makefile for MMS or MMK
        makefile.std     =>  Generic UNIX makefile (cc, creates static libpng.a)
        makefile.linux   =>  Linux/ELF makefile
-                            (gcc, creates libpng12.so.0.1.2.4)
+                            (gcc, creates libpng12.so.0.1.2.5rc3)
        makefile.gcmmx   =>  Linux/ELF makefile (gcc, creates
-                            libpng12.so.0.1.2.4, uses assembler code
+                            libpng12.so.0.1.2.5rc3, uses assembler code
                             tuned for Intel MMX platform)
        makefile.gcc     =>  Generic makefile (gcc, creates static libpng.a)
        makefile.knr     =>  Archaic UNIX Makefile that converts files with
@@ -210,12 +210,12 @@ Files in this distribution:
        makefile.ne0bsd =>  NetBSD/cc makefile, PNGGCCRD, makes libpng0.so
        makefile.openbsd =>  OpenBSD makefile
        makefile.sgi     =>  Silicon Graphics IRIX (cc, creates static lib)
-       makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng12.so.0.1.2.4)
+       makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng12.so.0.1.2.5rc3)
        makefile.sunos   =>  Sun makefile
        makefile.solaris =>  Solaris 2.X makefile
-                            (gcc, creates libpng12.so.0.1.2.4)
+                            (gcc, creates libpng12.so.0.1.2.5rc3)
        makefile.so9     =>  Solaris 9 makefile
-                            (gcc, creates libpng12.so.0.1.2.4)
+                            (gcc, creates libpng12.so.0.1.2.5rc3)
        makefile.32sunu  =>  Sun Ultra 32-bit makefile
        makefile.64sunu  =>  Sun Ultra 64-bit makefile
        makefile.sco     =>  For SCO OSr5  ELF and Unixware 7 with Native cc
@@ -248,9 +248,9 @@ Files in this distribution:
        mangle.in        =>  Function-decoration macros added to png.h by the
                             makefiles.
        makefile.linux   =>  Linux/ELF makefile
-                            (gcc, creates libpng12m.so.0.1.2.4)
+                            (gcc, creates libpng12m.so.0.1.2.5rc3)
        makefile.gcmmx   =>  Linux/ELF makefile (gcc, creates
-                            libpng12.so.0m.1.2.4, uses assembler code
+                            libpng12.so.0m.1.2.5rc3, uses assembler code
                             tuned for Intel MMX platform)
        makefile.sgi     =>  Silicon Graphics (cc, creates libpng12m.so)
        makefile.sggcc   =>  Silicon Graphics (gcc, creates libpng12m.so)
diff --git a/src/png/Y2KINFO b/src/png/Y2KINFO
index f550bc09b7..0615d559b0 100644
--- a/src/png/Y2KINFO
+++ b/src/png/Y2KINFO
@@ -1,13 +1,13 @@
    Y2K compliance in libpng:
    =========================
 
-      July 8, 2002
+      September 18, 2002
 
       Since the PNG Development group is an ad-hoc body, we can't make
       an official declaration.
 
       This is your unofficial assurance that libpng from version 0.71 and
-      upward through 1.2.4 are Y2K compliant.  It is my belief that earlier
+      upward through 1.2.5rc3 are Y2K compliant.  It is my belief that earlier
       versions were also Y2K compliant.
 
       Libpng only has three year fields.  One is a 2-byte unsigned integer
diff --git a/src/png/configure b/src/png/configure
index ac209826a4..4621afffdc 100755
--- a/src/png/configure
+++ b/src/png/configure
@@ -1,5 +1,5 @@
 echo "
-  There is no \"configure\" script for Libpng-1.2.4.  Instead, please
+  There is no \"configure\" script for Libpng-1.2.5rc3.  Instead, please
   copy the appropriate makefile for your system from the \"scripts\"
   directory.  Read the INSTALL file for more details.
 "
diff --git a/src/png/example.c b/src/png/example.c
index 1cc450f80e..7956cf7abd 100644
--- a/src/png/example.c
+++ b/src/png/example.c
@@ -282,7 +282,7 @@ void read_png(FILE *fp, unsigned int sig_read)  /* file is already open */
       /* This reduces the image to the palette supplied in the file */
       else if (png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette))
       {
-         png_uint_16p histogram;
+         png_uint_16p histogram = NULL;
 
          png_get_hIST(png_ptr, info_ptr, &histogram);
 
diff --git a/src/png/libpng.3 b/src/png/libpng.3
index 3451612f4b..c9e96ab6a4 100644
--- a/src/png/libpng.3
+++ b/src/png/libpng.3
@@ -1,6 +1,6 @@
-.TH LIBPNG 3 "July 8, 2002"
+.TH LIBPNG 3 "September 18, 2002"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.4
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.5rc3
 .SH SYNOPSIS
 \fI\fB
 
@@ -791,7 +791,7 @@ Following is a copy of the libpng.txt file that accompanies libpng.
 .SH LIBPNG.TXT
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.2.4 - July 8, 2002
+ libpng version 1.2.5rc3 - September 18, 2002
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998-2002 Glenn Randers-Pehrson
@@ -1774,7 +1774,7 @@ histogram, it may not do as good a job.
       if (png_get_valid(png_ptr, info_ptr,
          PNG_INFO_PLTE))
       {
-         png_uint_16p histogram;
+         png_uint_16p histogram = NULL;
 
          png_get_hIST(png_ptr, info_ptr,
             &histogram);
@@ -3641,13 +3641,13 @@ application:
 
 .SH IX. Y2K Compliance in libpng
 
-July 8, 2002
+September 18, 2002
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
 
 This is your unofficial assurance that libpng from version 0.71 and
-upward through 1.2.4 are Y2K compliant.  It is my belief that earlier
+upward through 1.2.5rc3 are Y2K compliant.  It is my belief that earlier
 versions were also Y2K compliant.
 
 Libpng only has three year fields.  One is a 2-byte unsigned integer that
@@ -3782,6 +3782,9 @@ the first widely used release:
  1.2.4rc1            13    10204  12.so.0.1.2.4rc1
  1.0.14              10    10014  10.so.0.1.0.14
  1.2.4               13    10204  12.so.0.1.2.4
+ 1.2.5beta1,2        13    10205  12.so.0.1.2.5beta1,2
+ 1.2.5rc1,3          13    10205  12.so.0.1.2.5rc1,3
+ 1.0.15rc1,3         10    10015  10.so.0.1.0.15rc1,3
 
 Henceforth the source version will match the shared-library minor
 and patch numbers; the shared-library major version number will be
@@ -3839,7 +3842,7 @@ possible without all of you.
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
 
-Libpng version 1.2.4 - July 8, 2002:
+Libpng version 1.2.5rc3 - September 18, 2002:
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (randeg@alum.rpi.edu).
 
@@ -3856,7 +3859,7 @@ included in the libpng distribution, the latter shall prevail.)
 If you modify libpng you may insert additional notices immediately following
 this sentence.
 
-libpng versions 1.0.7, July 1, 2000, through 1.2.4, July 8, 2002, are
+libpng versions 1.0.7, July 1, 2000, through 1.2.5rc3, September 18, 2002, are
 Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are
 distributed according to the same disclaimer and license as libpng-1.0.6
 with the following individuals added to the list of Contributing Authors
@@ -3948,7 +3951,7 @@ certification mark of the Open Source Initiative.
 
 Glenn Randers-Pehrson
 randeg@alum.rpi.edu
-July 8, 2002
+September 18, 2002
 
 .\" end of man page
 
diff --git a/src/png/libpng.txt b/src/png/libpng.txt
index 66c89dc51d..07fc3cd287 100644
--- a/src/png/libpng.txt
+++ b/src/png/libpng.txt
@@ -1,6 +1,6 @@
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.2.4 - July 8, 2002
+ libpng version 1.2.5rc3 - September 18, 2002
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alum.rpi.edu>
  Copyright (c) 1998-2002 Glenn Randers-Pehrson
@@ -983,7 +983,7 @@ histogram, it may not do as good a job.
       if (png_get_valid(png_ptr, info_ptr,
          PNG_INFO_PLTE))
       {
-         png_uint_16p histogram;
+         png_uint_16p histogram = NULL;
 
          png_get_hIST(png_ptr, info_ptr,
             &histogram);
@@ -2850,13 +2850,13 @@ application:
 
 IX. Y2K Compliance in libpng
 
-July 8, 2002
+September 18, 2002
 
 Since the PNG Development group is an ad-hoc body, we can't make
 an official declaration.
 
 This is your unofficial assurance that libpng from version 0.71 and
-upward through 1.2.4 are Y2K compliant.  It is my belief that earlier
+upward through 1.2.5rc3 are Y2K compliant.  It is my belief that earlier
 versions were also Y2K compliant.
 
 Libpng only has three year fields.  One is a 2-byte unsigned integer that
diff --git a/src/png/libpngpf.3 b/src/png/libpngpf.3
index d4037d596e..4f6d3d6ed6 100644
--- a/src/png/libpngpf.3
+++ b/src/png/libpngpf.3
@@ -1,6 +1,6 @@
-.TH LIBPNGPF 3 "July 8, 2002"
+.TH LIBPNGPF 3 "September 18, 2002"
 .SH NAME
-libpng \- Portable Network Graphics (PNG) Reference Library 1.2.4
+libpng \- Portable Network Graphics (PNG) Reference Library 1.2.5rc3
 (private functions)
 .SH SYNOPSIS
 \fB#include <png.h>\fP
diff --git a/src/png/png.5 b/src/png/png.5
index 70e8cd0865..c5bb09c5ff 100644
--- a/src/png/png.5
+++ b/src/png/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "July 8, 2002"
+.TH PNG 5 "September 18, 2002"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/src/png/png.c b/src/png/png.c
index 68c7d1adb8..74b3032d7d 100644
--- a/src/png/png.c
+++ b/src/png/png.c
@@ -1,7 +1,7 @@
 
 /* png.c - location for general purpose libpng functions
  *
- * libpng version 1.2.4 - July 8, 2002
+ * libpng version 1.2.5rc3 - September 18, 2002
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
@@ -13,14 +13,14 @@
 #include "png.h"
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_2_4 Your_png_h_is_not_version_1_2_4;
+typedef version_1_2_5rc3 Your_png_h_is_not_version_1_2_5rc3;
 
 /* Version information for C files.  This had better match the version
  * string defined in png.h.  */
 
 #ifdef PNG_USE_GLOBAL_ARRAYS
 /* png_libpng_ver was changed to a function in version 1.0.5c */
-const char png_libpng_ver[18] = "1.2.4";
+const char png_libpng_ver[18] = "1.2.5rc3";
 
 /* png_sig was changed to a function in version 1.0.5c */
 /* Place to hold the signature string for a PNG file. */
@@ -82,10 +82,6 @@ const int FARDATA png_pass_dsp_mask[]
 
 #endif
 
-#ifdef __VISAGECPP__
-const char png_libpng_ver[18] = "1.2.4";
-#endif
-
 /* Tells libpng that we have already handled the first "num_bytes" bytes
  * of the PNG file signature.  If the PNG data is embedded into another
  * stream we can set num_bytes = 8 so that libpng will not attempt to read
@@ -140,7 +136,7 @@ png_check_sig(png_bytep sig, int num)
 
 /* Function to allocate memory for zlib and clear it to 0. */
 #ifdef PNG_1_0_X
-void PNGAPI
+voidpf PNGAPI
 #else
 voidpf /* private */
 #endif
@@ -148,7 +144,7 @@ png_zalloc(voidpf png_ptr, uInt items, uInt size)
 {
    png_uint_32 num_bytes = (png_uint_32)items * size;
    png_voidp ptr;
-   png_structp p=(png_structp)png_ptr;
+   png_structp p=(png_struct*)png_ptr;
    png_uint_32 save_flags=p->flags;
 
    p->flags|=PNG_FLAG_MALLOC_NULL_MEM_OK;
@@ -675,7 +671,7 @@ png_charp PNGAPI
 png_get_copyright(png_structp png_ptr)
 {
    if (png_ptr != NULL || png_ptr == NULL)  /* silence compiler warning */
-   return ((png_charp) "\n libpng version 1.2.4 - July 8, 2002\n\
+   return ((png_charp) "\n libpng version 1.2.5rc3 - September 18, 2002\n\
    Copyright (c) 1998-2002 Glenn Randers-Pehrson\n\
    Copyright (c) 1996-1997 Andreas Dilger\n\
    Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n");
@@ -693,8 +689,8 @@ png_get_libpng_ver(png_structp png_ptr)
 {
    /* Version of *.c files used when building libpng */
    if(png_ptr != NULL) /* silence compiler warning about unused png_ptr */
-      return((png_charp) "1.2.4");
-   return((png_charp) "1.2.4");
+      return((png_charp) "1.2.5rc3");
+   return((png_charp) "1.2.5rc3");
 }
 
 png_charp PNGAPI
@@ -744,7 +740,7 @@ png_uint_32 PNGAPI
 png_access_version_number(void)
 {
    /* Version of *.c files used when building libpng */
-   return((png_uint_32) 10204L);
+   return((png_uint_32) 10205L);
 }
 
 
@@ -762,7 +758,7 @@ png_init_mmx_flags (png_structp png_ptr)
 
     png_ptr->asm_flags |= PNG_ASM_FLAG_MMX_SUPPORT_COMPILED;
 
-    if (png_mmx_support()) {
+    if (png_mmx_support() > 0) {
         png_ptr->asm_flags |= PNG_ASM_FLAG_MMX_SUPPORT_IN_CPU
 #    ifdef PNG_HAVE_ASSEMBLER_COMBINE_ROW
                               | PNG_ASM_FLAG_MMX_READ_COMBINE_ROW
diff --git a/src/png/png.h b/src/png/png.h
index 365c80b392..a570d9a29a 100644
--- a/src/png/png.h
+++ b/src/png/png.h
@@ -1,6 +1,6 @@
 /* png.h - header file for PNG reference library
  *
- * libpng version 1.2.4 - July 8, 2002
+ * libpng version 1.2.5rc3 - September 18, 2002
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
  * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
@@ -8,7 +8,7 @@
  * Authors and maintainers:
  *  libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
  *  libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
- *  libpng versions 0.97, January 1998, through 1.2.4 - July 8, 2002: Glenn
+ *  libpng versions 0.97, January 1998, through 1.2.5rc3 - September 18, 2002: Glenn
  *  See also "Contributing Authors", below.
  *
  * Note about libpng version numbers:
@@ -93,6 +93,9 @@
  *    1.2.4rc1                13    10204  12.so.0.1.2.4rc1
  *    1.0.14                  10    10014  10.so.0.1.0.14
  *    1.2.4                   13    10204  12.so.0.1.2.4
+ *    1.2.5beta1-2            13    10205  12.so.0.1.2.5beta1-2
+ *    1.2.5rc1-3              13    10205  12.so.0.1.2.5rc1-3
+ *    1.0.15rc1-3             10    10015  10.so.0.1.0.15rc1-3
  *
  *    Henceforth the source version will match the shared-library major
  *    and minor numbers; the shared-library major version number will be
@@ -122,7 +125,7 @@
  * If you modify libpng you may insert additional notices immediately following
  * this sentence.
  *
- * libpng versions 1.0.7, July 1, 2000, through 1.2.4, July 8, 2002, are
+ * libpng versions 1.0.7, July 1, 2000, through 1.2.5rc3, September 18, 2002, are
  * Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are
  * distributed according to the same disclaimer and license as libpng-1.0.6
  * with the following individuals added to the list of Contributing Authors
@@ -227,13 +230,13 @@
  * Y2K compliance in libpng:
  * =========================
  *
- *    July 8, 2002
+ *    September 18, 2002
  *
  *    Since the PNG Development group is an ad-hoc body, we can't make
  *    an official declaration.
  *
  *    This is your unofficial assurance that libpng from version 0.71 and
- *    upward through 1.2.4 are Y2K compliant.  It is my belief that earlier
+ *    upward through 1.2.5rc3 are Y2K compliant.  It is my belief that earlier
  *    versions were also Y2K compliant.
  *
  *    Libpng only has three year fields.  One is a 2-byte unsigned integer
@@ -289,7 +292,7 @@
  */
 
 /* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.2.4"
+#define PNG_LIBPNG_VER_STRING "1.2.5rc3"
 
 #define PNG_LIBPNG_VER_SONUM   0
 #define PNG_LIBPNG_VER_DLLNUM  %DLLNUM%
@@ -297,11 +300,11 @@
 /* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
 #define PNG_LIBPNG_VER_MAJOR   1
 #define PNG_LIBPNG_VER_MINOR   2
-#define PNG_LIBPNG_VER_RELEASE 4
+#define PNG_LIBPNG_VER_RELEASE 5
 /* This should match the numeric part of the final component of
  * PNG_LIBPNG_VER_STRING, omitting any leading zero: */
 
-#define PNG_LIBPNG_VER_BUILD  0
+#define PNG_LIBPNG_VER_BUILD  3
 
 #define PNG_LIBPNG_BUILD_ALPHA    1
 #define PNG_LIBPNG_BUILD_BETA     2
@@ -309,14 +312,14 @@
 #define PNG_LIBPNG_BUILD_STABLE   4
 #define PNG_LIBPNG_BUILD_TYPEMASK 7
 #define PNG_LIBPNG_BUILD_PATCH    8 /* Can be OR'ed with STABLE only */
-#define PNG_LIBPNG_BUILD_TYPE 4
+#define PNG_LIBPNG_BUILD_TYPE 3
 
 /* Careful here.  At one time, Guy wanted to use 082, but that would be octal.
  * We must not include leading zeros.
  * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only
  * version 1.0.0 was mis-numbered 100 instead of 10000).  From
  * version 1.0.1 it's    xxyyzz, where x=major, y=minor, z=release */
-#define PNG_LIBPNG_VER 10204 /* 1.2.4 */
+#define PNG_LIBPNG_VER 10205 /* 1.2.5 */
 
 #ifndef PNG_VERSION_INFO_ONLY
 
@@ -1279,9 +1282,9 @@ struct png_struct_def
 
 
 /* This prevents a compiler error in png.c if png.c and png.h are both at
-   version 1.2.4
+   version 1.2.5rc3
  */
-typedef png_structp version_1_2_4;
+typedef png_structp version_1_2_5rc3;
 
 typedef png_struct FAR * FAR * png_structpp;
 
@@ -2421,7 +2424,7 @@ extern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp
 /* Maintainer: Put new public prototypes here ^, in libpng.3, and project defs */
 
 #define PNG_HEADER_VERSION_STRING \
-   " libpng version 1.2.4 - July 8, 2002 (header)\n"
+   " libpng version 1.2.5rc3 - September 18, 2002 (header)\n"
 
 #ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
 /* With these routines we avoid an integer divide, which will be slower on
diff --git a/src/png/pngasmrd.h b/src/png/pngasmrd.h
index a19d4ae5ac..a2bf8f29ca 100644
--- a/src/png/pngasmrd.h
+++ b/src/png/pngasmrd.h
@@ -1,6 +1,6 @@
 /* pngasmrd.h - assembler version of utilities to read a PNG file
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 2002 Glenn Randers-Pehrson
  *
diff --git a/src/png/pngconf.h b/src/png/pngconf.h
index 46fc4d8114..738a43a44c 100644
--- a/src/png/pngconf.h
+++ b/src/png/pngconf.h
@@ -1,6 +1,6 @@
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -1228,7 +1228,7 @@ typedef z_stream FAR *  png_zstreamp;
 #     endif
 #  endif  /* PNG_IMPEXP */
 #else /* !(DLL || non-cygwin WINDOWS) */
-#    if (defined(__IBMC__) || defined(__IBMCPP__)) && defined(__OS2__)
+#    if (defined(__IBMC__) || defined(IBMCPP__)) && defined(__OS2__)
 #      define PNGAPI _System
 #      define PNG_IMPEXP
 #    else
@@ -1242,7 +1242,7 @@ typedef z_stream FAR *  png_zstreamp;
 #endif
 
 #if defined(__VISAGECPP__)
-/* I don't compile with _System linkage, ever! */
+/* I don't compile with this _System linkage for wxWindows */
 #  ifdef PNGAPI
 #    undef PNGAPI
 #  endif
diff --git a/src/png/pngerror.c b/src/png/pngerror.c
index e6c197357f..38938a66d8 100644
--- a/src/png/pngerror.c
+++ b/src/png/pngerror.c
@@ -1,7 +1,7 @@
 
 /* pngerror.c - stub functions for i/o and memory allocation
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/src/png/pnggccrd.c b/src/png/pnggccrd.c
index 2d1d1d3b36..5dbe52568e 100644
--- a/src/png/pnggccrd.c
+++ b/src/png/pnggccrd.c
@@ -6,7 +6,7 @@
  *     and http://www.intel.com/drg/pentiumII/appnotes/923/923.htm
  *     for Intel's performance analysis of the MMX vs. non-MMX code.
  *
- * libpng version 1.2.4 - July 8, 2002
+ * libpng version 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * Copyright (c) 1998, Intel Corporation
@@ -5075,7 +5075,9 @@ png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep
 
    if (_mmx_supported == 2) {
        /* this should have happened in png_init_mmx_flags() already */
+#if !defined(PNG_1_0_X)
        png_warning(png_ptr, "asm_flags may not have been initialized");
+#endif
        png_mmx_support();
    }
 #endif /* PNG_ASSEMBLER_CODE_SUPPORTED */
@@ -5345,13 +5347,13 @@ png_mmx_support(void)
         "pushl %%ecx          \n\t"  // save original Eflag to stack
         "popfl                \n\t"  // restore original Eflag
         "xorl %%ecx, %%eax    \n\t"  // compare new Eflag with original Eflag
-        "jz .NOT_SUPPORTED    \n\t"  // if same, CPUID instr. is not supported
+        "jz 0f                \n\t"  // if same, CPUID instr. is not supported
 
         "xorl %%eax, %%eax    \n\t"  // set eax to zero
 //      ".byte  0x0f, 0xa2    \n\t"  // CPUID instruction (two-byte opcode)
         "cpuid                \n\t"  // get the CPU identification info
         "cmpl $1, %%eax       \n\t"  // make sure eax return non-zero value
-        "jl .NOT_SUPPORTED    \n\t"  // if eax is zero, MMX is not supported
+        "jl 0f                \n\t"  // if eax is zero, MMX is not supported
 
         "xorl %%eax, %%eax    \n\t"  // set eax to zero and...
         "incl %%eax           \n\t"  // ...increment eax to 1.  This pair is
@@ -5359,14 +5361,14 @@ png_mmx_support(void)
         "cpuid                \n\t"  // get the CPU identification info again
         "andl $0x800000, %%edx \n\t" // mask out all bits but MMX bit (23)
         "cmpl $0, %%edx       \n\t"  // 0 = MMX not supported
-        "jz .NOT_SUPPORTED    \n\t"  // non-zero = yes, MMX IS supported
+        "jz 0f                \n\t"  // non-zero = yes, MMX IS supported
 
         "movl $1, %%eax       \n\t"  // set return value to 1
-        "jmp  .RETURN         \n\t"  // DONE:  have MMX support
+        "jmp  1f              \n\t"  // DONE:  have MMX support
 
-    ".NOT_SUPPORTED:          \n\t"  // target label for jump instructions
+    "0:                       \n\t"  // .NOT_SUPPORTED: target label for jump instructions
         "movl $0, %%eax       \n\t"  // set return value to 0
-    ".RETURN:          \n\t"  // target label for jump instructions
+    "1:                       \n\t"  // .RETURN: target label for jump instructions
         "movl %%eax, _mmx_supported \n\t" // save in global static variable, too
         "popl %%edx           \n\t"  // restore edx
         "popl %%ecx           \n\t"  // restore ecx
diff --git a/src/png/pngget.c b/src/png/pngget.c
index d3805a6e06..46ca030e69 100644
--- a/src/png/pngget.c
+++ b/src/png/pngget.c
@@ -1,7 +1,7 @@
 
 /* pngget.c - retrieval of values from info struct
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/src/png/pngmem.c b/src/png/pngmem.c
index feb8a5dfc5..02a8e337d1 100644
--- a/src/png/pngmem.c
+++ b/src/png/pngmem.c
@@ -1,7 +1,7 @@
 
 /* pngmem.c - stub functions for memory allocation
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/src/png/pngpread.c b/src/png/pngpread.c
index 9a5b54dfb0..cadbc922d4 100644
--- a/src/png/pngpread.c
+++ b/src/png/pngpread.c
@@ -1,7 +1,7 @@
 
 /* pngpread.c - read a png file in push mode
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -668,8 +668,8 @@ png_push_read_IDAT(png_structp png_ptr)
          save_size = png_ptr->save_buffer_size;
 
       png_calculate_crc(png_ptr, png_ptr->save_buffer_ptr, save_size);
-      png_process_IDAT_data(png_ptr, png_ptr->save_buffer_ptr, save_size);
-
+      if (!(png_ptr->flags & PNG_FLAG_ZLIB_FINISHED))
+         png_process_IDAT_data(png_ptr, png_ptr->save_buffer_ptr, save_size);
       png_ptr->idat_size -= save_size;
       png_ptr->buffer_size -= save_size;
       png_ptr->save_buffer_size -= save_size;
@@ -690,7 +690,8 @@ png_push_read_IDAT(png_structp png_ptr)
          save_size = png_ptr->current_buffer_size;
 
       png_calculate_crc(png_ptr, png_ptr->current_buffer_ptr, save_size);
-      png_process_IDAT_data(png_ptr, png_ptr->current_buffer_ptr, save_size);
+      if (!(png_ptr->flags & PNG_FLAG_ZLIB_FINISHED))
+        png_process_IDAT_data(png_ptr, png_ptr->current_buffer_ptr, save_size);
 
       png_ptr->idat_size -= save_size;
       png_ptr->buffer_size -= save_size;
@@ -707,6 +708,7 @@ png_push_read_IDAT(png_structp png_ptr)
 
       png_crc_finish(png_ptr, 0);
       png_ptr->mode &= ~PNG_HAVE_CHUNK_HEADER;
+      png_ptr->mode |= PNG_AFTER_IDAT;
    }
 }
 
@@ -752,7 +754,12 @@ png_process_IDAT_data(png_structp png_ptr, png_bytep buffer,
              (!png_ptr->interlaced &&
 #endif
              png_ptr->row_number == png_ptr->num_rows-1))
-           png_error(png_ptr, "Too much data in IDAT chunks");
+         {
+           if (png_ptr->zstream.avail_in)
+             png_warning(png_ptr, "Too much data in IDAT chunks");
+           png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
+           break;
+         }
          png_push_process_row(png_ptr);
          png_ptr->zstream.avail_out = (uInt)png_ptr->irowbytes;
          png_ptr->zstream.next_out = png_ptr->row_buf;
@@ -987,6 +994,8 @@ png_read_push_finish_row(png_structp png_ptr)
              (png_ptr->pass == 5 && png_ptr->width < 2))
            png_ptr->pass++;
 
+         if (png_ptr->pass > 7)
+            png_ptr->pass--;
          if (png_ptr->pass >= 7)
             break;
 
diff --git a/src/png/pngread.c b/src/png/pngread.c
index 24ddeb5c7b..31019304c0 100644
--- a/src/png/pngread.c
+++ b/src/png/pngread.c
@@ -1,7 +1,7 @@
 
 /* pngread.c - read a PNG file
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -789,7 +789,7 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
  * not called png_set_interlace_handling(), the display_row buffer will
  * be ignored, so pass NULL to it.
  *
- * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.4
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.5rc3
  */
 
 void PNGAPI
@@ -837,7 +837,7 @@ png_read_rows(png_structp png_ptr, png_bytepp row,
  * only call this function once.  If you desire to have an image for
  * each pass of a interlaced image, use png_read_rows() instead.
  *
- * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.4
+ * [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.5rc3
  */
 void PNGAPI
 png_read_image(png_structp png_ptr, png_bytepp image)
diff --git a/src/png/pngrio.c b/src/png/pngrio.c
index bb4197d2ba..d88324a49b 100644
--- a/src/png/pngrio.c
+++ b/src/png/pngrio.c
@@ -1,7 +1,7 @@
 
 /* pngrio.c - functions for data input
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/src/png/pngrtran.c b/src/png/pngrtran.c
index 5ec3ee524a..ed02e10fe5 100644
--- a/src/png/pngrtran.c
+++ b/src/png/pngrtran.c
@@ -1,7 +1,7 @@
 
 /* pngrtran.c - transforms the data in a row for PNG readers
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -16,15 +16,6 @@
 #define PNG_INTERNAL
 #include "png.h"
 
-#if defined(_MSC_VER) && !defined(__MWERKS__)
-#define __VISUALC__ _MSC_VER
-#endif
-#ifdef __VISUALC__
-#ifndef WIN32
-#pragma warning(disable:4135)
-#endif
-#endif
-
 /* Set the action on getting a CRC error for an ancillary or critical chunk. */
 void PNGAPI
 png_set_crc_action(png_structp png_ptr, int crit_action, int ancil_action)
diff --git a/src/png/pngrutil.c b/src/png/pngrutil.c
index 9740063112..d0a4964cd1 100644
--- a/src/png/pngrutil.c
+++ b/src/png/pngrutil.c
@@ -1,7 +1,7 @@
 
 /* pngrutil.c - utilities to read a PNG file
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -2883,7 +2883,7 @@ png_read_finish_row(png_structp png_ptr)
          {
             if (!(png_ptr->zstream.avail_out) || png_ptr->zstream.avail_in ||
                png_ptr->idat_size)
-               png_error(png_ptr, "Extra compressed data");
+               png_warning(png_ptr, "Extra compressed data");
             png_ptr->mode |= PNG_AFTER_IDAT;
             png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
             break;
@@ -2893,14 +2893,19 @@ png_read_finish_row(png_structp png_ptr)
                       "Decompression Error");
 
          if (!(png_ptr->zstream.avail_out))
-            png_error(png_ptr, "Extra compressed data");
+         {
+            png_warning(png_ptr, "Extra compressed data.");
+            png_ptr->mode |= PNG_AFTER_IDAT;
+            png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED;
+            break;
+         }
 
       }
       png_ptr->zstream.avail_out = 0;
    }
 
    if (png_ptr->idat_size || png_ptr->zstream.avail_in)
-      png_error(png_ptr, "Extra compression data");
+      png_warning(png_ptr, "Extra compression data");
 
    inflateReset(&png_ptr->zstream);
 
diff --git a/src/png/pngset.c b/src/png/pngset.c
index c691f9e60f..bc3465ed5d 100644
--- a/src/png/pngset.c
+++ b/src/png/pngset.c
@@ -1,7 +1,7 @@
 
 /* pngset.c - storage of image information into info struct
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/src/png/pngtest.c b/src/png/pngtest.c
index 3b0519ab40..1430f0f395 100644
--- a/src/png/pngtest.c
+++ b/src/png/pngtest.c
@@ -1,7 +1,7 @@
 
 /* pngtest.c - a simple test program to test libpng
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@@ -1538,4 +1538,4 @@ main(int argc, char *argv[])
 }
 
 /* Generate a compiler error if there is an old png.h in the search path. */
-typedef version_1_2_4 your_png_h_is_not_version_1_2_4;
+typedef version_1_2_5rc3 your_png_h_is_not_version_1_2_5rc3;
diff --git a/src/png/pngtrans.c b/src/png/pngtrans.c
index d850ee7ac2..59bd606b3b 100644
--- a/src/png/pngtrans.c
+++ b/src/png/pngtrans.c
@@ -1,7 +1,7 @@
 
 /* pngtrans.c - transforms the data in a row (used by both readers and writers)
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/src/png/pngvcrd.c b/src/png/pngvcrd.c
index 72c4412131..cab9aa4791 100644
--- a/src/png/pngvcrd.c
+++ b/src/png/pngvcrd.c
@@ -2,7 +2,7 @@
  *
  * For Intel x86 CPU and Microsoft Visual C++ compiler
  *
- * libpng version 1.2.4 - July 8, 2002
+ * libpng version 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * Copyright (c) 1998, Intel Corporation
diff --git a/src/png/pngwio.c b/src/png/pngwio.c
index f356b7d4a7..e4f5e11336 100644
--- a/src/png/pngwio.c
+++ b/src/png/pngwio.c
@@ -1,7 +1,7 @@
 
 /* pngwio.c - functions for data output
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/src/png/pngwrite.c b/src/png/pngwrite.c
index ff62395cf4..17444bbe3e 100644
--- a/src/png/pngwrite.c
+++ b/src/png/pngwrite.c
@@ -1,7 +1,7 @@
 
 /* pngwrite.c - general routines to write a PNG file
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/src/png/pngwtran.c b/src/png/pngwtran.c
index d15c0c55ca..1ce2a6d447 100644
--- a/src/png/pngwtran.c
+++ b/src/png/pngwtran.c
@@ -1,7 +1,7 @@
 
 /* pngwtran.c - transforms the data in a row for PNG writers
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/src/png/pngwutil.c b/src/png/pngwutil.c
index 22155e93f9..0ecaae5a23 100644
--- a/src/png/pngwutil.c
+++ b/src/png/pngwutil.c
@@ -1,7 +1,7 @@
 
 /* pngwutil.c - utilities to write a PNG file
  *
- * libpng 1.2.4 - July 8, 2002
+ * libpng 1.2.5rc3 - September 18, 2002
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1998-2002 Glenn Randers-Pehrson
  * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
diff --git a/src/stc/Makefile.in b/src/stc/Makefile.in
index 01b2877cb8..042da17f87 100644
--- a/src/stc/Makefile.in
+++ b/src/stc/Makefile.in
@@ -9,13 +9,13 @@ top_srcdir = @top_srcdir@/..
 top_builddir = ../../..
 
 scintilla_dir = $(top_srcdir)/contrib/src/stc/scintilla
-libsrc_dir = contrib/src/stc@PATH_IFS@$(scintilla_dir)/src
+libsrc_dir = contrib/src/stc/scintilla/src:$(top_srcdir)/contrib/src/stc
 
-TARGET_LIBNAME=libstc
+TARGET_LIBNAME=lib@WX_LIBRARY_BASENAME@_stc-@WX_RELEASE@
 
-LIBVERSION_CURRENT=1
-LIBVERSION_REVISION=0
-LIBVERSION_AGE=0
+LIBVERSION_CURRENT=@WX_CURRENT@
+LIBVERSION_REVISION=@WX_REVISION@
+LIBVERSION_AGE=@WX_AGE@
 
 HEADER_PATH=$(top_srcdir)/contrib/include/wx
 HEADER_SUBDIR=stc
diff --git a/src/stc/PlatWX.cpp b/src/stc/PlatWX.cpp
index 8abff4b97d..eaf9899f03 100644
--- a/src/stc/PlatWX.cpp
+++ b/src/stc/PlatWX.cpp
@@ -804,7 +804,7 @@ void ListBox::Clear() {
 }
 
 void ListBox::Append(char *s) {
-    GETLB(id)->Append(s);
+    GETLB(id)->Append(stc2wx(s));
 }
 
 int ListBox::Length() {
diff --git a/src/stc/ScintillaWX.cpp b/src/stc/ScintillaWX.cpp
index f1c0e43a0a..e389534c80 100644
--- a/src/stc/ScintillaWX.cpp
+++ b/src/stc/ScintillaWX.cpp
@@ -338,7 +338,7 @@ void ScintillaWX::Copy() {
         SelectionText st;
         CopySelectionRange(&st);
         if (wxTheClipboard->Open()) {
-            wxTheClipboard->UsePrimarySelection();
+            wxTheClipboard->UsePrimarySelection(FALSE);
             wxString text = stc2wx(st.s, st.len);
             wxTheClipboard->SetData(new wxTextDataObject(text));
             wxTheClipboard->Close();
@@ -355,7 +355,7 @@ void ScintillaWX::Paste() {
     bool gotData = FALSE;
 
     if (wxTheClipboard->Open()) {
-        wxTheClipboard->UsePrimarySelection();
+        wxTheClipboard->UsePrimarySelection(FALSE);
         gotData = wxTheClipboard->GetData(data);
         wxTheClipboard->Close();
     }
@@ -380,7 +380,7 @@ bool ScintillaWX::CanPaste() {
         wxTheClipboard->Open();
 
     if (wxTheClipboard->IsOpened()) {
-        wxTheClipboard->UsePrimarySelection();
+        wxTheClipboard->UsePrimarySelection(FALSE);
         canPaste = wxTheClipboard->IsSupported(wxUSE_UNICODE ? wxDF_UNICODETEXT : wxDF_TEXT);
         if (didOpen)
             wxTheClipboard->Close();
@@ -405,8 +405,22 @@ void ScintillaWX::AddToPopUp(const char *label, int cmd, bool enabled) {
 }
 
 
+// This is called by the Editor base class whenever something is selected
 void ScintillaWX::ClaimSelection() {
-
+#ifdef __WXGTK__
+    // Put the selected text in the PRIMARY selection
+    if (currentPos != anchor) {
+        SelectionText st;
+        CopySelectionRange(&st);
+        if (wxTheClipboard->Open()) {
+            wxTheClipboard->UsePrimarySelection(TRUE);
+            wxString text = stc2wx(st.s, st.len);
+            wxTheClipboard->SetData(new wxTextDataObject(text));
+            wxTheClipboard->UsePrimarySelection(FALSE);
+            wxTheClipboard->Close();
+        }
+    }
+#endif
 }
 
 
@@ -547,23 +561,64 @@ void ScintillaWX::DoSysColourChange() {
     InvalidateStyleData();
 }
 
-void ScintillaWX::DoButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt) {
+void ScintillaWX::DoLeftButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt) {
     ButtonDown(pt, curTime, shift, ctrl, alt);
 }
 
-void ScintillaWX::DoButtonUp(Point pt, unsigned int curTime, bool ctrl) {
+void ScintillaWX::DoLeftButtonUp(Point pt, unsigned int curTime, bool ctrl) {
     ButtonUp(pt, curTime, ctrl);
 }
 
-void ScintillaWX::DoButtonMove(Point pt) {
+void ScintillaWX::DoLeftButtonMove(Point pt) {
     ButtonMove(pt);
 }
 
+void ScintillaWX::DoMiddleButtonUp(Point pt) {
+#ifdef __WXGTK__
+    // Set the current position to the mouse click point and
+    // then paste in the PRIMARY selection, if any.  wxGTK only.
+    int newPos = PositionFromLocation(pt);
+    MovePositionTo(newPos, 0, 1);
+
+    pdoc->BeginUndoAction();
+    wxTextDataObject data;
+    bool gotData = FALSE;
+    if (wxTheClipboard->Open()) {
+        wxTheClipboard->UsePrimarySelection(TRUE);
+        gotData = wxTheClipboard->GetData(data);
+        wxTheClipboard->UsePrimarySelection(FALSE);
+        wxTheClipboard->Close();
+    }
+    if (gotData) {
+        wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(data.GetText());
+        int        len = strlen(buf);
+        pdoc->InsertString(currentPos, buf, len);
+        SetEmptySelection(currentPos + len);
+    }
+    pdoc->EndUndoAction();
+    NotifyChange();
+    Redraw();
+
+    ShowCaretAtCurrentPosition();
+    EnsureCaretVisible();
+#endif
+}
+
 
 void ScintillaWX::DoAddChar(int key) {
+#if wxUSE_UNICODE
+    char ansiChars[3];
+    ansiChars[0] = key;
+    ansiChars[1] = 0;
+    wxString uniChar(ansiChars, wxConvLocal);
+    wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(uniChar);
+    AddCharUTF((char*)buf.data(), strlen(buf));
+#else
     AddChar(key);
+#endif
 }
 
+
 int  ScintillaWX::DoKeyDown(int key, bool shift, bool ctrl, bool alt, bool* consumed) {
 #if defined(__WXGTK__) || defined(__WXMAC__)
     // Ctrl chars (A-Z) end up with the wrong keycode on wxGTK...
diff --git a/src/stc/ScintillaWX.h b/src/stc/ScintillaWX.h
index 5f87911952..d904fc3c18 100644
--- a/src/stc/ScintillaWX.h
+++ b/src/stc/ScintillaWX.h
@@ -122,9 +122,10 @@ public:
     void DoLoseFocus();
     void DoGainFocus();
     void DoSysColourChange();
-    void DoButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt);
-    void DoButtonUp(Point pt, unsigned int curTime, bool ctrl);
-    void DoButtonMove(Point pt);
+    void DoLeftButtonDown(Point pt, unsigned int curTime, bool shift, bool ctrl, bool alt);
+    void DoLeftButtonUp(Point pt, unsigned int curTime, bool ctrl);
+    void DoLeftButtonMove(Point pt);
+    void DoMiddleButtonUp(Point pt);
     void DoMouseWheel(int rotation, int delta, int linesPerAction, int ctrlDown, bool isPageScroll);
     void DoAddChar(int key);
     int  DoKeyDown(int key, bool shift, bool ctrl, bool alt, bool* consumed);
diff --git a/src/stc/gen_iface.py b/src/stc/gen_iface.py
index b5342b73e6..6689380466 100644
--- a/src/stc/gen_iface.py
+++ b/src/stc/gen_iface.py
@@ -36,7 +36,13 @@ valPrefixes = [('SCI_', ''),
 ]
 
 # Message function values that should have a CMD_ constant as well
-cmdValues = [ (2300, 2350), 2011, 2013, (2176, 2180) ]
+cmdValues = [ (2300, 2349),
+              2011,
+              2013,
+              (2176, 2180),
+              (2390, 2393),
+              (2395, 2396),
+            ]
 
 
 # Map some generic typenames to wx types, using return value syntax
@@ -420,6 +426,54 @@ methodOverrideMap = {
                        0),
 
 
+    'GetDocPointer' : (0,
+                       'void* %s();',
+                       '''void* %s() {
+                           return (void*)SendMsg(%s);''',
+                       0),
+
+    'SetDocPointer' : (0,
+                       'void %s(void* docPointer);',
+                       '''void %s(void* docPointer) {
+                           SendMsg(%s, 0, (long)docPointer);''',
+                       0),
+
+    'CreateDocument' : (0,
+                       'void* %s();',
+                       '''void* %s() {
+                           return (void*)SendMsg(%s);''',
+                        0),
+
+    'AddRefDocument' : (0,
+                       'void %s(void* docPointer);',
+                       '''void %s(void* docPointer) {
+                           SendMsg(%s, 0, (long)docPointer);''',
+                        0),
+
+    'ReleaseDocument' : (0,
+                       'void %s(void* docPointer);',
+                       '''void %s(void* docPointer) {
+                           SendMsg(%s, 0, (long)docPointer);''',
+                         0),
+    'SetCodePage' : (0,
+                     0,
+                     '''void %s(int codePage) {
+#if wxUSE_UNICODE
+    wxASSERT_MSG(codePage == wxSTC_CP_UTF8,
+                 wxT("Only wxSTC_CP_UTF8 may be used when wxUSE_UNICODE is on."));
+#else
+    wxASSERT_MSG(codePage != wxSTC_CP_UTF8,
+                 wxT("wxSTC_CP_UTF8 may not be used when wxUSE_UNICODE is off."));
+#endif
+                 SendMsg(%s, codePage);''',
+                         ("Set the code page used to interpret the bytes of the document as characters.",) ),
+
+
+    'GrabFocus' : (None, 0, 0, 0),
+    'SetFocus'  : ('SetSTCFocus', 0, 0, 0),
+    'GetFocus'  : ('GetSTCFocus', 0, 0, 0),
+
+
 
     # Remove all methods that are key commands since they can be
     # executed with CmdKeyExecute
@@ -470,53 +524,6 @@ methodOverrideMap = {
     'DeleteBackNotLine' : (None, 0, 0, 0),
 
 
-    'GetDocPointer' : (0,
-                       'void* %s();',
-                       '''void* %s() {
-                           return (void*)SendMsg(%s);''',
-                       0),
-
-    'SetDocPointer' : (0,
-                       'void %s(void* docPointer);',
-                       '''void %s(void* docPointer) {
-                           SendMsg(%s, 0, (long)docPointer);''',
-                       0),
-
-    'CreateDocument' : (0,
-                       'void* %s();',
-                       '''void* %s() {
-                           return (void*)SendMsg(%s);''',
-                        0),
-
-    'AddRefDocument' : (0,
-                       'void %s(void* docPointer);',
-                       '''void %s(void* docPointer) {
-                           SendMsg(%s, 0, (long)docPointer);''',
-                        0),
-
-    'ReleaseDocument' : (0,
-                       'void %s(void* docPointer);',
-                       '''void %s(void* docPointer) {
-                           SendMsg(%s, 0, (long)docPointer);''',
-                         0),
-    'SetCodePage' : (0,
-                     0,
-                     '''void %s(int codePage) {
-#if wxUSE_UNICODE
-    wxASSERT_MSG(codePage == wxSTC_CP_UTF8,
-                 wxT("Only wxSTC_CP_UTF8 may be used when wxUSE_UNICODE is on."));
-#else
-    wxASSERT_MSG(codePage != wxSTC_CP_UTF8,
-                 wxT("wxSTC_CP_UTF8 may not be used when wxUSE_UNICODE is off."));
-#endif
-                 SendMsg(%s, codePage);''',
-                         ("Set the code page used to interpret the bytes of the document as characters.",) ),
-
-
-    'GrabFocus' : (None, 0, 0, 0),
-    'SetFocus'  : ('SetSTCFocus', 0, 0, 0),
-    'GetFocus'  : ('GetSTCFocus', 0, 0, 0),
-
 
 
     '' : ('', 0, 0, 0),
@@ -529,6 +536,7 @@ def processIface(iface, h_tmplt, cpp_tmplt, h_dest, cpp_dest):
     curDocStrings = []
     values = []
     methods = []
+    cmds = []
 
     # parse iface file
     fi = FileInput(iface)
@@ -547,7 +555,7 @@ def processIface(iface, h_tmplt, cpp_tmplt, h_dest, cpp_dest):
             curDocStrings = []
 
         elif op == 'fun ' or op == 'set ' or op == 'get ':
-            parseFun(line[4:], methods, curDocStrings, values)
+            parseFun(line[4:], methods, curDocStrings, cmds)
             curDocStrings = []
 
         elif op == 'cat ':
@@ -570,6 +578,7 @@ def processIface(iface, h_tmplt, cpp_tmplt, h_dest, cpp_dest):
     # process templates
     data = {}
     data['VALUES'] = processVals(values)
+    data['CMDS']   = processVals(cmds)
     defs, imps = processMethods(methods)
     data['METHOD_DEFS'] = defs
     data['METHOD_IMPS'] = imps
@@ -747,10 +756,10 @@ def parseFun(line, methods, docs, values):
     param1 = parseParam(param1)
     param2 = parseParam(param2)
 
-    # Special case.  For the key command functionss we want a value defined too
+    # Special case.  For the key command functions we want a value defined too
     num = string.atoi(number)
     for v in cmdValues:
-        if (type(v) == type(()) and v[0] <= num < v[1]) or v == num:
+        if (type(v) == type(()) and v[0] <= num <= v[1]) or v == num:
             parseVal('CMD_%s=%s' % (string.upper(name), number), values, docs)
 
     #if retType == 'void' and not param1 and not param2:
diff --git a/src/stc/scintilla/include/SString.h b/src/stc/scintilla/include/SString.h
index 6bfe50fccd..3c7ccc33a5 100644
--- a/src/stc/scintilla/include/SString.h
+++ b/src/stc/scintilla/include/SString.h
@@ -369,7 +369,11 @@ public:
  */
 inline char *StringDup(
 	const char *s,			///< The string to duplicate
-	SString::lenpos_t len=SString::measure_length)	///< The length of memory to allocate. Optional.
+        /* gcc 2.96 doesn't seem to like this syntax: gives
+           'non-local function uses anonymous type'
+           SString::lenpos_t len=SString::measure_length)	///< The length of memory to allocate. Optional.
+        */
+        SString::lenpos_t len=0xffffffffU)	///< The length of memory to allocate. Optional.
 {
 	return SString::StringAllocate(s, len);
 }
diff --git a/src/stc/scintilla/include/Scintilla.iface b/src/stc/scintilla/include/Scintilla.iface
index 776fe8f2b7..d6383b103b 100644
--- a/src/stc/scintilla/include/Scintilla.iface
+++ b/src/stc/scintilla/include/Scintilla.iface
@@ -1130,14 +1130,14 @@ fun void DeleteBackNotLine=2344(,)
 # Move caret to first position on display line.
 fun void HomeDisplay=2345(,)
 
-# Move caret to first position on display line extending selection to 
+# Move caret to first position on display line extending selection to
 # new caret position.
 fun void HomeDisplayExtend=2346(,)
 
 # Move caret to last position on display line.
 fun void LineEndDisplay=2347(,)
 
-# Move caret to last position on display line extending selection to new 
+# Move caret to last position on display line extending selection to new
 # caret position.
 fun void LineEndDisplayExtend=2348(,)
 
diff --git a/src/stc/scintilla/src/ScintillaBase.cxx b/src/stc/scintilla/src/ScintillaBase.cxx
index a5e5a065d1..ab6e9a19b4 100644
--- a/src/stc/scintilla/src/ScintillaBase.cxx
+++ b/src/stc/scintilla/src/ScintillaBase.cxx
@@ -70,7 +70,7 @@ void ScintillaBase::AddCharUTF(char *s, unsigned int len, bool treatAsDBCS) {
 	}
 	if (ac.Active()) {
 		AutoCompleteCharacterAdded(s[0]);
-		// For fill ups add the character after the autocompletion has 
+		// For fill ups add the character after the autocompletion has
 		// triggered so containers see the key so can display a calltip.
 		if (isFillUp) {
 			Editor::AddCharUTF(s, len, treatAsDBCS);
@@ -317,6 +317,7 @@ void ScintillaBase::AutoCompleteCompleted() {
 		scn.nmhdr.code = SCN_USERLISTSELECTION;
 		scn.message = 0;
 		scn.wParam = listType;
+		scn.listType = listType;
 		scn.lParam = 0;
 		scn.text = userListSelected.c_str();
 		NotifyParent(scn);
diff --git a/src/stc/stc.cpp b/src/stc/stc.cpp
index d675e8da9d..17cf6ee406 100644
--- a/src/stc/stc.cpp
+++ b/src/stc/stc.cpp
@@ -90,10 +90,8 @@ BEGIN_EVENT_TABLE(wxStyledTextCtrl, wxControl)
     EVT_SCROLL                  (wxStyledTextCtrl::OnScroll)
     EVT_SIZE                    (wxStyledTextCtrl::OnSize)
     EVT_LEFT_DOWN               (wxStyledTextCtrl::OnMouseLeftDown)
-#if defined(__WXMSW__) || defined(__WXMAC__)
     // Let Scintilla see the double click as a second click
     EVT_LEFT_DCLICK             (wxStyledTextCtrl::OnMouseLeftDown)
-#endif
     EVT_MOTION                  (wxStyledTextCtrl::OnMouseMove)
     EVT_LEFT_UP                 (wxStyledTextCtrl::OnMouseLeftUp)
 #if defined(__WXGTK__) || defined(__WXMAC__)
@@ -102,6 +100,7 @@ BEGIN_EVENT_TABLE(wxStyledTextCtrl, wxControl)
     EVT_CONTEXT_MENU            (wxStyledTextCtrl::OnContextMenu)
 #endif
     EVT_MOUSEWHEEL              (wxStyledTextCtrl::OnMouseWheel)
+    EVT_MIDDLE_UP               (wxStyledTextCtrl::OnMouseMiddleUp)
     EVT_CHAR                    (wxStyledTextCtrl::OnChar)
     EVT_KEY_DOWN                (wxStyledTextCtrl::OnKeyDown)
     EVT_KILL_FOCUS              (wxStyledTextCtrl::OnLoseFocus)
@@ -1478,7 +1477,7 @@ void wxStyledTextCtrl::HomeDisplay() {
     SendMsg(2345, 0, 0);
 }
 
-// Move caret to first position on display line extending selection to 
+// Move caret to first position on display line extending selection to
 // new caret position.
 void wxStyledTextCtrl::HomeDisplayExtend() {
     SendMsg(2346, 0, 0);
@@ -1489,7 +1488,7 @@ void wxStyledTextCtrl::LineEndDisplay() {
     SendMsg(2347, 0, 0);
 }
 
-// Move caret to last position on display line extending selection to new 
+// Move caret to last position on display line extending selection to new
 // caret position.
 void wxStyledTextCtrl::LineEndDisplayExtend() {
     SendMsg(2348, 0, 0);
@@ -1959,18 +1958,18 @@ void wxStyledTextCtrl::OnSize(wxSizeEvent& evt) {
 void wxStyledTextCtrl::OnMouseLeftDown(wxMouseEvent& evt) {
     SetFocus();
     wxPoint pt = evt.GetPosition();
-    m_swx->DoButtonDown(Point(pt.x, pt.y), m_stopWatch.Time(),
+    m_swx->DoLeftButtonDown(Point(pt.x, pt.y), m_stopWatch.Time(),
                       evt.ShiftDown(), evt.ControlDown(), evt.AltDown());
 }
 
 void wxStyledTextCtrl::OnMouseMove(wxMouseEvent& evt) {
     wxPoint pt = evt.GetPosition();
-    m_swx->DoButtonMove(Point(pt.x, pt.y));
+    m_swx->DoLeftButtonMove(Point(pt.x, pt.y));
 }
 
 void wxStyledTextCtrl::OnMouseLeftUp(wxMouseEvent& evt) {
     wxPoint pt = evt.GetPosition();
-    m_swx->DoButtonUp(Point(pt.x, pt.y), m_stopWatch.Time(),
+    m_swx->DoLeftButtonUp(Point(pt.x, pt.y), m_stopWatch.Time(),
                       evt.ControlDown());
 }
 
@@ -1981,6 +1980,11 @@ void wxStyledTextCtrl::OnMouseRightUp(wxMouseEvent& evt) {
 }
 
 
+void wxStyledTextCtrl::OnMouseMiddleUp(wxMouseEvent& evt) {
+    wxPoint pt = evt.GetPosition();
+    m_swx->DoMiddleButtonUp(Point(pt.x, pt.y));
+}
+
 void wxStyledTextCtrl::OnContextMenu(wxContextMenuEvent& evt) {
     wxPoint pt = evt.GetPosition();
     ScreenToClient(&pt.x, &pt.y);
@@ -1998,8 +2002,6 @@ void wxStyledTextCtrl::OnMouseWheel(wxMouseEvent& evt) {
 
 
 void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) {
-    int key = evt.GetKeyCode();
-
     // On (some?) non-US keyboards the AltGr key is required to enter some
     // common characters.  It comes to us as both Alt and Ctrl down so we need
     // to let the char through in that case, otherwise if only ctrl or only
@@ -2008,10 +2010,13 @@ void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) {
     bool alt  = evt.AltDown();
     bool skip = ((ctrl || alt) && ! (ctrl && alt));
 
+    int key = evt.GetKeyCode();
+
 //     printf("OnChar key:%d  consumed:%d  ctrl:%d  alt:%d  skip:%d\n",
 //            key, m_lastKeyDownConsumed, ctrl, alt, skip);
 
-    if (key <= WXK_START && /*key >= 32 &&*/ !m_lastKeyDownConsumed && !skip) {
+    if ( (key <= WXK_START || key > WXK_NUMPAD_DIVIDE) &&
+         !m_lastKeyDownConsumed && !skip) {
         m_swx->DoAddChar(key);
         return;
     }
@@ -2076,6 +2081,20 @@ void wxStyledTextCtrl::NotifyChange() {
     GetEventHandler()->ProcessEvent(evt);
 }
 
+
+static void SetEventText(wxStyledTextEvent& evt, const char* text,
+                         size_t length) {
+    if(!text) return;
+
+    // The unicode conversion MUST have a null byte to terminate the
+    // string so move it into a buffer first and give it one.
+    wxMemoryBuffer buf(length+1);
+    buf.AppendData((void*)text, length);
+    buf.AppendByte(0);
+    evt.SetText(stc2wx(buf));
+}
+
+
 void wxStyledTextCtrl::NotifyParent(SCNotification* _scn) {
     SCNotification& scn = *_scn;
     wxStyledTextEvent evt(0, GetId());
@@ -2121,14 +2140,7 @@ void wxStyledTextCtrl::NotifyParent(SCNotification* _scn) {
     case SCN_MODIFIED:
         evt.SetEventType(wxEVT_STC_MODIFIED);
         evt.SetModificationType(scn.modificationType);
-        if (scn.text) {
-            // The unicode conversion MUST have a null byte to terminate the
-            // string so move it into a buffer first and give it one.
-            wxMemoryBuffer buf(scn.length+1);
-            buf.AppendData((void*)scn.text, scn.length);
-            buf.AppendByte(0);
-            evt.SetText(stc2wx(buf));
-        }
+        SetEventText(evt, scn.text, scn.length);
         evt.SetLength(scn.length);
         evt.SetLinesAdded(scn.linesAdded);
         evt.SetLine(scn.line);
@@ -2160,12 +2172,12 @@ void wxStyledTextCtrl::NotifyParent(SCNotification* _scn) {
     case SCN_USERLISTSELECTION:
         evt.SetEventType(wxEVT_STC_USERLISTSELECTION);
         evt.SetListType(scn.listType);
-        evt.SetText(scn.text);
+        SetEventText(evt, scn.text, strlen(scn.text));
         break;
 
     case SCN_URIDROPPED:
         evt.SetEventType(wxEVT_STC_URIDROPPED);
-        evt.SetText(scn.text);
+        SetEventText(evt, scn.text, strlen(scn.text));
         break;
 
     case SCN_DWELLSTART:
diff --git a/src/stc/stc.cpp.in b/src/stc/stc.cpp.in
index 3e1b761faf..0ab9afdc5e 100644
--- a/src/stc/stc.cpp.in
+++ b/src/stc/stc.cpp.in
@@ -90,10 +90,8 @@ BEGIN_EVENT_TABLE(wxStyledTextCtrl, wxControl)
     EVT_SCROLL                  (wxStyledTextCtrl::OnScroll)
     EVT_SIZE                    (wxStyledTextCtrl::OnSize)
     EVT_LEFT_DOWN               (wxStyledTextCtrl::OnMouseLeftDown)
-#if defined(__WXMSW__) || defined(__WXMAC__)
     // Let Scintilla see the double click as a second click
     EVT_LEFT_DCLICK             (wxStyledTextCtrl::OnMouseLeftDown)
-#endif
     EVT_MOTION                  (wxStyledTextCtrl::OnMouseMove)
     EVT_LEFT_UP                 (wxStyledTextCtrl::OnMouseLeftUp)
 #if defined(__WXGTK__) || defined(__WXMAC__)
@@ -102,6 +100,7 @@ BEGIN_EVENT_TABLE(wxStyledTextCtrl, wxControl)
     EVT_CONTEXT_MENU            (wxStyledTextCtrl::OnContextMenu)
 #endif
     EVT_MOUSEWHEEL              (wxStyledTextCtrl::OnMouseWheel)
+    EVT_MIDDLE_UP               (wxStyledTextCtrl::OnMouseMiddleUp)
     EVT_CHAR                    (wxStyledTextCtrl::OnChar)
     EVT_KEY_DOWN                (wxStyledTextCtrl::OnKeyDown)
     EVT_KILL_FOCUS              (wxStyledTextCtrl::OnLoseFocus)
@@ -337,18 +336,18 @@ void wxStyledTextCtrl::OnSize(wxSizeEvent& evt) {
 void wxStyledTextCtrl::OnMouseLeftDown(wxMouseEvent& evt) {
     SetFocus();
     wxPoint pt = evt.GetPosition();
-    m_swx->DoButtonDown(Point(pt.x, pt.y), m_stopWatch.Time(),
+    m_swx->DoLeftButtonDown(Point(pt.x, pt.y), m_stopWatch.Time(),
                       evt.ShiftDown(), evt.ControlDown(), evt.AltDown());
 }
 
 void wxStyledTextCtrl::OnMouseMove(wxMouseEvent& evt) {
     wxPoint pt = evt.GetPosition();
-    m_swx->DoButtonMove(Point(pt.x, pt.y));
+    m_swx->DoLeftButtonMove(Point(pt.x, pt.y));
 }
 
 void wxStyledTextCtrl::OnMouseLeftUp(wxMouseEvent& evt) {
     wxPoint pt = evt.GetPosition();
-    m_swx->DoButtonUp(Point(pt.x, pt.y), m_stopWatch.Time(),
+    m_swx->DoLeftButtonUp(Point(pt.x, pt.y), m_stopWatch.Time(),
                       evt.ControlDown());
 }
 
@@ -359,6 +358,11 @@ void wxStyledTextCtrl::OnMouseRightUp(wxMouseEvent& evt) {
 }
 
 
+void wxStyledTextCtrl::OnMouseMiddleUp(wxMouseEvent& evt) {
+    wxPoint pt = evt.GetPosition();
+    m_swx->DoMiddleButtonUp(Point(pt.x, pt.y));
+}
+
 void wxStyledTextCtrl::OnContextMenu(wxContextMenuEvent& evt) {
     wxPoint pt = evt.GetPosition();
     ScreenToClient(&pt.x, &pt.y);
@@ -376,8 +380,6 @@ void wxStyledTextCtrl::OnMouseWheel(wxMouseEvent& evt) {
 
 
 void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) {
-    int key = evt.GetKeyCode();
-
     // On (some?) non-US keyboards the AltGr key is required to enter some
     // common characters.  It comes to us as both Alt and Ctrl down so we need
     // to let the char through in that case, otherwise if only ctrl or only
@@ -386,10 +388,13 @@ void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) {
     bool alt  = evt.AltDown();
     bool skip = ((ctrl || alt) && ! (ctrl && alt));
 
+    int key = evt.GetKeyCode();
+
 //     printf("OnChar key:%%d  consumed:%%d  ctrl:%%d  alt:%%d  skip:%%d\n",
 //            key, m_lastKeyDownConsumed, ctrl, alt, skip);
 
-    if (key <= WXK_START && /*key >= 32 &&*/ !m_lastKeyDownConsumed && !skip) {
+    if ( (key <= WXK_START || key > WXK_NUMPAD_DIVIDE) &&
+         !m_lastKeyDownConsumed && !skip) {
         m_swx->DoAddChar(key);
         return;
     }
@@ -454,6 +459,20 @@ void wxStyledTextCtrl::NotifyChange() {
     GetEventHandler()->ProcessEvent(evt);
 }
 
+
+static void SetEventText(wxStyledTextEvent& evt, const char* text,
+                         size_t length) {
+    if(!text) return;
+
+    // The unicode conversion MUST have a null byte to terminate the
+    // string so move it into a buffer first and give it one.
+    wxMemoryBuffer buf(length+1);
+    buf.AppendData((void*)text, length);
+    buf.AppendByte(0);
+    evt.SetText(stc2wx(buf));
+}
+
+
 void wxStyledTextCtrl::NotifyParent(SCNotification* _scn) {
     SCNotification& scn = *_scn;
     wxStyledTextEvent evt(0, GetId());
@@ -499,14 +518,7 @@ void wxStyledTextCtrl::NotifyParent(SCNotification* _scn) {
     case SCN_MODIFIED:
         evt.SetEventType(wxEVT_STC_MODIFIED);
         evt.SetModificationType(scn.modificationType);
-        if (scn.text) {
-            // The unicode conversion MUST have a null byte to terminate the
-            // string so move it into a buffer first and give it one.
-            wxMemoryBuffer buf(scn.length+1);
-            buf.AppendData((void*)scn.text, scn.length);
-            buf.AppendByte(0);
-            evt.SetText(stc2wx(buf));
-        }
+        SetEventText(evt, scn.text, scn.length);
         evt.SetLength(scn.length);
         evt.SetLinesAdded(scn.linesAdded);
         evt.SetLine(scn.line);
@@ -538,12 +550,12 @@ void wxStyledTextCtrl::NotifyParent(SCNotification* _scn) {
     case SCN_USERLISTSELECTION:
         evt.SetEventType(wxEVT_STC_USERLISTSELECTION);
         evt.SetListType(scn.listType);
-        evt.SetText(scn.text);
+        SetEventText(evt, scn.text, strlen(scn.text));
         break;
 
     case SCN_URIDROPPED:
         evt.SetEventType(wxEVT_STC_URIDROPPED);
-        evt.SetText(scn.text);
+        SetEventText(evt, scn.text, strlen(scn.text));
         break;
 
     case SCN_DWELLSTART:
diff --git a/src/stc/stc.h.in b/src/stc/stc.h.in
index 157a7bfc23..0a3360359e 100644
--- a/src/stc/stc.h.in
+++ b/src/stc/stc.h.in
@@ -24,6 +24,12 @@
 #include <wx/wx.h>
 #include <wx/dnd.h>
 
+#ifdef STCISDLL
+#define STCDLLEXPORT WXDLLEXPORT
+#else
+#define STCDLLEXPORT
+#endif
+
 //----------------------------------------------------------------------
 
 // Should a wxPopupWindow be used for the call tips and autocomplete windows?
@@ -38,6 +44,12 @@
 
 %(VALUES)s
 
+
+//-----------------------------------------
+// Commands that can be bound to keystrokes
+%(CMDS)s
+
+
 // END of generated section
 //----------------------------------------------------------------------
 
@@ -45,8 +57,11 @@ class  ScintillaWX;                      // forward declare
 class  WordList;
 struct SCNotification;
 
-
-extern const wxChar* wxSTCNameStr;
+#ifndef SWIG
+extern STCDLLEXPORT const wxChar* wxSTCNameStr;
+class STCDLLEXPORT wxStyledTextCtrl;
+class STCDLLEXPORT wxStyledTextEvent;
+#endif
 
 //----------------------------------------------------------------------
 
@@ -175,6 +190,7 @@ private:
     void OnMouseMove(wxMouseEvent& evt);
     void OnMouseLeftUp(wxMouseEvent& evt);
     void OnMouseRightUp(wxMouseEvent& evt);
+    void OnMouseMiddleUp(wxMouseEvent& evt);
     void OnContextMenu(wxContextMenuEvent& evt);
     void OnMouseWheel(wxMouseEvent& evt);
     void OnChar(wxKeyEvent& evt);
@@ -210,7 +226,7 @@ private:
 
 //----------------------------------------------------------------------
 
-// SWIG can't handle "#if" type of conditionals, onlu "#ifdef"
+// SWIG can't handle "#if" type of conditionals, only "#ifdef"
 #ifdef SWIG
 #define STC_USE_DND 1
 #else
diff --git a/src/univ/listbox.cpp b/src/univ/listbox.cpp
index 725eafa5ec..f0f783992a 100644
--- a/src/univ/listbox.cpp
+++ b/src/univ/listbox.cpp
@@ -1007,7 +1007,7 @@ void wxListBox::ExtendSelection(int itemTo)
     }
 }
 
-void wxListBox::Select(bool sel, int item)
+void wxListBox::DoSelect(int item, bool sel)
 {
     if ( item != -1 )
     {
@@ -1027,7 +1027,7 @@ void wxListBox::Select(bool sel, int item)
 
 void wxListBox::SelectAndNotify(int item)
 {
-    Select(TRUE, item);
+    DoSelect(item);
 
     SendEvent(wxEVT_COMMAND_LISTBOX_SELECTED);
 }
@@ -1046,7 +1046,7 @@ void wxListBox::Activate(int item)
 
     if ( item != -1 )
     {
-        Select(TRUE, item);
+        DoSelect(item);
 
         SendEvent(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED);
     }
@@ -1089,7 +1089,7 @@ bool wxListBox::PerformAction(const wxControlAction& action,
             item = m_current;
 
         if ( IsSelected(item) )
-            Unselect(item);
+            DoUnselect(item);
         else
             SelectAndNotify(item);
     }
@@ -1100,12 +1100,12 @@ bool wxListBox::PerformAction(const wxControlAction& action,
         if ( strArg.empty() )
             SelectAndNotify(item);
         else
-            Select(TRUE, item);
+            DoSelect(item);
     }
     else if ( action == wxACTION_LISTBOX_SELECTADD )
-        Select(TRUE, item);
+        DoSelect(item);
     else if ( action == wxACTION_LISTBOX_UNSELECT )
-        Select(FALSE, item);
+        DoUnselect(item);
     else if ( action == wxACTION_LISTBOX_MOVEDOWN )
         ChangeCurrent(1);
     else if ( action == wxACTION_LISTBOX_MOVEUP )
diff --git a/src/univ/notebook.cpp b/src/univ/notebook.cpp
index 4c19121069..da6d4b486f 100644
--- a/src/univ/notebook.cpp
+++ b/src/univ/notebook.cpp
@@ -330,6 +330,7 @@ bool wxNotebook::InsertPage(int nPage,
         bSelect = TRUE;
 
         Relayout();
+        Refresh();
     }
     else // not the first tab
     {
@@ -518,10 +519,20 @@ void wxNotebook::DoDraw(wxControlRenderer *renderer)
         wxSize sizeSpinBtn = m_spinbtn->GetSize();
 
         if ( IsVertical() )
+        {
             rectTabs.height -= sizeSpinBtn.y;
+
+            // Allow for erasing the line under selected tab
+            rectTabs.width += 2;
+        }
         else
+        {
             rectTabs.width -= sizeSpinBtn.x;
 
+            // Allow for erasing the line under selected tab
+            rectTabs.height += 2;
+        }
+
         dc.SetClippingRegion(rectTabs);
     }
 
@@ -566,6 +577,8 @@ void wxNotebook::DoDraw(wxControlRenderer *renderer)
     {
         DoDrawTab(dc, rectSel, m_sel);
     }
+
+    dc.DestroyClippingRegion();
 }
 
 // ----------------------------------------------------------------------------
diff --git a/src/univ/slider.cpp b/src/univ/slider.cpp
index 8361ab7d54..8381f531a6 100644
--- a/src/univ/slider.cpp
+++ b/src/univ/slider.cpp
@@ -787,14 +787,15 @@ bool wxSlider::PerformAction(const wxControlAction& action,
 wxScrollThumb::Shaft wxSlider::HitTest(const wxPoint& pt) const
 {
     wxRect rectShaft = GetShaftRect();
-    if ( !rectShaft.Inside(pt) )
+    wxRect rectThumb;
+    CalcThumbRect(&rectShaft, &rectThumb, NULL);
+
+	// check for possible shaft or thumb hit
+    if (!rectShaft.Inside(pt) && !rectThumb.Inside(pt))
     {
         return wxScrollThumb::Shaft_None;
     }
 
-    // inside the shaft, where is it relatively to the thumb?
-    wxRect rectThumb;
-    CalcThumbRect(&rectShaft, &rectThumb, NULL);
 
     // the position to test and the start and end of the thumb
     wxCoord x, x1, x2;
diff --git a/src/univ/themes/gtk.cpp b/src/univ/themes/gtk.cpp
index ab9a0db5b4..5c4f87e74c 100644
--- a/src/univ/themes/gtk.cpp
+++ b/src/univ/themes/gtk.cpp
@@ -2810,7 +2810,7 @@ int wxGTKRenderer::HitTestFrame(const wxRect& rect, const wxPoint& pt, int flags
 // standard icons
 // ----------------------------------------------------------------------------
 
-static char *error_xpm[] = {
+static const char *error_xpm[] = {
 /* columns rows colors chars-per-pixel */
 "48 48 537 2",
 "   c Gray0",
@@ -3401,7 +3401,7 @@ static char *error_xpm[] = {
 "W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+"
 };
 
-static char *info_xpm[] = {
+static const char *info_xpm[] = {
 /* columns rows colors chars-per-pixel */
 "48 48 478 2",
 "   c Gray0",
@@ -3934,7 +3934,7 @@ static char *info_xpm[] = {
 };
 
 /* XPM */
-static char *warning_xpm[] = {
+static const char *warning_xpm[] = {
 /* columns rows colors chars-per-pixel */
 "48 48 270 2",
 "   c Gray0",
@@ -4259,7 +4259,7 @@ static char *warning_xpm[] = {
 };
 
 /* XPM */
-static char *question_xpm[] = {
+static const char *question_xpm[] = {
 /* columns rows colors chars-per-pixel */
 "48 48 101 2",
 "   c Gray0",
diff --git a/src/univ/themes/metal.cpp b/src/univ/themes/metal.cpp
index dc580faaf0..3e78e38391 100644
--- a/src/univ/themes/metal.cpp
+++ b/src/univ/themes/metal.cpp
@@ -157,7 +157,7 @@ private:
     bool GetOrCreateTheme()
     {
         if ( !m_win32Theme )
-            m_win32Theme = wxTheme::Create("win32");
+            m_win32Theme = wxTheme::Create( wxT("win32") );
         return m_win32Theme != NULL;
     }
 private:
diff --git a/src/univ/toolbar.cpp b/src/univ/toolbar.cpp
index 1d68c60857..1745a900fd 100644
--- a/src/univ/toolbar.cpp
+++ b/src/univ/toolbar.cpp
@@ -663,10 +663,13 @@ bool wxStdToolbarInputHandler::HandleMouse(wxInputConsumer *consumer,
                 m_winCapture = NULL;
             }
 
-            if ( tool == m_toolCapture )
-                consumer->PerformAction( wxACTION_BUTTON_TOGGLE, m_toolCapture->GetId() );
-            else
-                consumer->PerformAction( wxACTION_TOOLBAR_LEAVE, m_toolCapture->GetId() );
+            if (m_toolCapture)
+            {
+                if ( tool == m_toolCapture )
+                    consumer->PerformAction( wxACTION_BUTTON_TOGGLE, m_toolCapture->GetId() );
+                else
+                    consumer->PerformAction( wxACTION_TOOLBAR_LEAVE, m_toolCapture->GetId() );
+            }
             
             m_toolCapture = NULL;
                 
diff --git a/src/univ/winuniv.cpp b/src/univ/winuniv.cpp
index 3b0a025004..afc1a6efbd 100644
--- a/src/univ/winuniv.cpp
+++ b/src/univ/winuniv.cpp
@@ -109,7 +109,7 @@ void wxWindow::Init()
     m_isCurrent = FALSE;
 
     m_renderer = wxTheme::Get()->GetRenderer();
-    
+
     m_oldSize.x = -1;
     m_oldSize.y = -1;
 }
@@ -240,7 +240,7 @@ void wxWindow::OnErase(wxEraseEvent& event)
 
         return;
     }
-    
+
     DoDrawBackground(*event.GetDC());
 
     // if we have both scrollbars, we also have a square in the corner between
@@ -267,41 +267,42 @@ void wxWindow::OnErase(wxEraseEvent& event)
 bool wxWindow::DoDrawBackground(wxDC& dc)
 {
     wxRect rect;
-    
+
     wxSize size = GetSize();  // Why not GetClientSize() ?
     rect.x = 0;
     rect.y = 0;
     rect.width = size.x;
     rect.height = size.y;
-    
-    if (HasTransparentBackground() && GetParent() && GetParent()->ProvidesBackground())
+
+    wxWindow * const parent = GetParent();
+    if ( HasTransparentBackground() && parent && parent->ProvidesBackground() )
     {
         wxASSERT( !IsTopLevel() );
-    
+
         wxPoint pos = GetPosition();
-        
+
         AdjustForParentClientOrigin( pos.x, pos.y, 0 );
-        
+
         // Adjust DC logical origin
         wxCoord x,y;
         dc.GetLogicalOrigin( &x, &y );
         x += pos.x;
         y += pos.y;
         dc.SetLogicalOrigin( x, y );
-        
+
         // Adjust draw rect
         rect.x = pos.x;
         rect.y = pos.y;
-        
+
         // Let parent draw the background
-        GetParent()->EraseBackground( dc, rect );
+        parent->EraseBackground( dc, rect );
     }
     else
     {
         // Draw background ouselves
-         EraseBackground( dc, rect );
+        EraseBackground( dc, rect );
     }
-    
+
     return TRUE;
 }
 
@@ -315,10 +316,10 @@ void wxWindow::EraseBackground(wxDC& dc, const wxRect& rect)
         wxBitmap bmp = GetBackgroundBitmap(&alignment, &stretch);
         wxControlRenderer::DrawBitmap(dc, bmp, rect, alignment, stretch);
     }
-    else 
+    else
     {
         // Just fill it with bg colour if no bitmap
-    
+
         m_renderer->DrawBackground(dc, wxTHEME_BG_COLOUR(this),
                                    rect, GetStateFlags());
     }
@@ -478,28 +479,28 @@ int wxWindow::GetStateFlags() const
 void wxWindow::OnSize(wxSizeEvent& event)
 {
     event.Skip();
-    
+
     if ( m_scrollbarVert || m_scrollbarHorz )
     {
         PositionScrollbars();
     }
-    
+
 #if 0   // ndef __WXMSW__
     // Refresh the area (strip) previously occupied by the border
-    
+
     if (HasFlag( wxNO_FULL_REPAINT_ON_RESIZE ) && IsShown())
     {
         // This code assumes that wxSizeEvent.GetSize() returns
         // the area of the entire window, not just the client
         // area.
         wxSize newSize = event.GetSize();
-        
+
         if (m_oldSize.x == -1 && m_oldSize.y == -1)
         {
             m_oldSize = newSize;
             return;
         }
-        
+
         if (HasFlag( wxSIMPLE_BORDER ))
         {
             if (newSize.y > m_oldSize.y)
@@ -520,7 +521,7 @@ void wxWindow::OnSize(wxSizeEvent& event)
                 rect.width = newSize.x;
                 wxWindowNative::Refresh( TRUE, &rect );
             }
-            
+
             if (newSize.x > m_oldSize.x)
             {
                 wxRect rect;
@@ -561,7 +562,7 @@ void wxWindow::OnSize(wxSizeEvent& event)
                 rect.width = newSize.x;
                 wxWindowNative::Refresh( TRUE, &rect );
             }
-            
+
             if (newSize.x > m_oldSize.x)
             {
                 wxRect rect;
@@ -581,7 +582,7 @@ void wxWindow::OnSize(wxSizeEvent& event)
                 wxWindowNative::Refresh( TRUE, &rect );
             }
         }
-        
+
         m_oldSize = newSize;
     }
 #endif
@@ -915,7 +916,7 @@ void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect)
 
     wxWindowNative::ScrollWindow(dx, dy, rect);
 
-#else
+#else // !wxX11
 
     // before scrolling it, ensure that we don't have any unpainted areas
     Update();
@@ -933,11 +934,11 @@ void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect)
         r = ScrollNoRefresh(0, dy, rect);
         Refresh(TRUE /* erase bkgnd */, &r);
     }
-    
-    // scroll children accordingly:    
+
+    // scroll children accordingly:
     wxPoint offset(dx, dy);
-    
-    for (wxWindowList::Node *node = GetChildren().GetFirst(); 
+
+    for (wxWindowList::Node *node = GetChildren().GetFirst();
          node; node = node->GetNext())
     {
         wxWindow *child = node->GetData();
@@ -945,13 +946,13 @@ void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect)
             continue;
 
         // VS: Scrolling children has non-trivial semantics. If rect=NULL then
-        //     it is easy: we scroll all children. Otherwise it gets 
+        //     it is easy: we scroll all children. Otherwise it gets
         //     complicated:
         //       1. if scrolling in one direction only, scroll only
         //          those children that intersect shaft defined by the rectangle
         //          and scrolling direction
         //       2. if scrolling in both axes, scroll all children
-        
+
         if ( rect && (dx * dy == 0 /* moving in only one of x, y axis */) )
         {
             wxRect childRect = child->GetRect();
@@ -970,8 +971,8 @@ void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect)
         {
             child->Move(child->GetPosition() + offset);
         }
-    }    
-#endif
+    }
+#endif // wxX11/!wxX11
 }
 
 wxRect wxWindow::ScrollNoRefresh(int dx, int dy, const wxRect *rectTotal)
diff --git a/src/unix/dialup.cpp b/src/unix/dialup.cpp
index 8d6a76058e..f0bb49e961 100644
--- a/src/unix/dialup.cpp
+++ b/src/unix/dialup.cpp
@@ -676,26 +676,26 @@ wxDialUpManagerImpl::CheckIfconfig()
         wxASSERT_MSG( m_IfconfigPath.length(),
                       _T("can't use ifconfig if it wasn't found") );
 
-        wxString tmpfile = wxGetTempFileName("_wxdialuptest");
-        wxString cmd = "/bin/sh -c \'";
+        wxString tmpfile = wxGetTempFileName( wxT("_wxdialuptest") );
+        wxString cmd = wxT("/bin/sh -c \'");
         cmd << m_IfconfigPath;
 #if defined(__SOLARIS__) || defined (__SUNOS__)
         // need to add -a flag
-        cmd << " -a";
+        cmd << wxT(" -a");
 #elif defined(__LINUX__) || defined(__SGI__)
         // nothing to be added to ifconfig
 #elif defined(__FREEBSD__) || defined(__DARWIN__)
         // add -l flag
-        cmd << " -l";
+        cmd << wxT(" -l");
 #elif defined(__HPUX__)
         // VZ: a wild guess (but without it, ifconfig fails completely)
-        cmd << _T(" ppp0");
+        cmd << wxT(" ppp0");
 #else
 # pragma warning "No ifconfig information for this OS."
        m_CanUseIfconfig = 0;
         return -1;
 #endif
-       cmd << " >" << tmpfile <<  '\'';
+       cmd << wxT(" >") << tmpfile <<  wxT('\'');
         /* I tried to add an option to wxExecute() to not close stdout,
            so we could let ifconfig write directly to the tmpfile, but
            this does not work. That should be faster, as it doesn´t call
@@ -754,41 +754,41 @@ wxDialUpManagerImpl::CheckIfconfig()
 
 wxDialUpManagerImpl::NetConnection wxDialUpManagerImpl::CheckPing()
 {
-   // First time check for ping location. We only use the variant
-   // which does not take arguments, a la GNU.
-   if(m_CanUsePing == -1) // unknown
-   {
+    // First time check for ping location. We only use the variant
+    // which does not take arguments, a la GNU.
+    if(m_CanUsePing == -1) // unknown
+    {
 #ifdef __VMS
-      if(wxFileExists("SYS$SYSTEM:TCPIP$PING.EXE"))
-         m_PingPath = "$SYS$SYSTEM:TCPIP$PING";
+        if (wxFileExists( wxT("SYS$SYSTEM:TCPIP$PING.EXE") ))
+            m_PingPath = wxT("$SYS$SYSTEM:TCPIP$PING");
 #else
-      if(wxFileExists("/bin/ping"))
-         m_PingPath = "/bin/ping";
-      else if(wxFileExists("/usr/sbin/ping"))
-         m_PingPath = "/usr/sbin/ping";
+        if (wxFileExists( wxT("/bin/ping") ))
+            m_PingPath = wxT("/bin/ping");
+        else if (wxFileExists( wxT("/usr/sbin/ping") ))
+            m_PingPath = wxT("/usr/sbin/ping");
 #endif
-      if(! m_PingPath)
-      {
-         m_CanUsePing = 0;
-      }
-   }
+        if (!m_PingPath)
+        {
+            m_CanUsePing = 0;
+        }
+    }
 
-   if(! m_CanUsePing)
-   {
+    if(! m_CanUsePing)
+    {
        // we didn't find ping
        return Net_Unknown;
-   }
+    }
 
    wxLogNull ln; // suppress all error messages
    wxASSERT(m_PingPath.length());
    wxString cmd;
-   cmd << m_PingPath << ' ';
+   cmd << m_PingPath << wxT(' ');
 #if defined(__SOLARIS__) || defined (__SUNOS__)
    // nothing to add to ping command
-#elif defined(__LINUX__) || defined ( __FREEBSD__) || defined(__DARWIN__) || defined( __VMS )
-   cmd << "-c 1 "; // only ping once
+#elif defined(__LINUX__) || defined (__BSD__) || defined( __VMS )
+   cmd << wxT("-c 1 "); // only ping once
 #elif defined(__HPUX__)
-   cmd << "64 1 "; // only ping once (need also specify the packet size)
+   cmd << wxT("64 1 "); // only ping once (need also specify the packet size)
 #else
 #   pragma warning "No Ping information for this OS."
    m_CanUsePing = 0;
diff --git a/src/unix/dir.cpp b/src/unix/dir.cpp
index 4680a338ce..2e283dfc4d 100644
--- a/src/unix/dir.cpp
+++ b/src/unix/dir.cpp
@@ -172,13 +172,9 @@ bool wxDirData::Read(wxString *filename)
         }
         else
         {
-#if wxUSE_UNICODE
-            matches = TRUE;  // FIXME
-#else
             // test against the pattern
             matches = wxMatchWild(m_filespec, de_d_name,
                                   !(m_flags & wxDIR_HIDDEN));
-#endif
         }
     }
 
diff --git a/src/unix/fontenum.cpp b/src/unix/fontenum.cpp
index 5ce2b4e93d..f1181a4aa7 100644
--- a/src/unix/fontenum.cpp
+++ b/src/unix/fontenum.cpp
@@ -26,20 +26,23 @@
 #include "wx/string.h"
 #include "wx/regex.h"
 #include "wx/utils.h"
-
+#include "wx/app.h"
 #include "wx/fontmap.h"
 #include "wx/fontenum.h"
 #include "wx/fontutil.h"
 
 // ----------------------------------------------------------------------------
-// GTK 2.0
+// Pango
 // ----------------------------------------------------------------------------
 
-#ifdef __WXGTK20__
+#if wxUSE_PANGO
 
-#include "wx/gtk/private.h"
+#include "pango/pango.h"
 
+#ifdef __WXGTK20__
+#include "gtk/gtk.h"
 extern GtkWidget *wxGetRootWindow();
+#endif
 
 static int
 cmp_families (const void *a, const void *b)
@@ -63,7 +66,11 @@ bool wxFontEnumerator::EnumerateFacenames(wxFontEncoding encoding,
         PangoFontFamily **families = NULL;
         gint n_families = 0;
         pango_context_list_families ( 
+#ifdef __WXGTK20__
             gtk_widget_get_pango_context( wxGetRootWindow() ),
+#else
+            wxTheApp->GetPangoContext(),
+#endif
             &families, &n_families );
         qsort (families, n_families, sizeof (PangoFontFamily *), cmp_families);
 
@@ -86,7 +93,7 @@ bool wxFontEnumerator::EnumerateEncodings(const wxString& family)
 
 
 #else
-  // GTK 2.0
+  // Pango
 
 #ifdef __VMS__ // Xlib.h for VMS is not (yet) compatible with C++
                // The resulting warnings are switched off here
diff --git a/src/unix/fontutil.cpp b/src/unix/fontutil.cpp
index e826a295a2..5cb5e28a95 100644
--- a/src/unix/fontutil.cpp
+++ b/src/unix/fontutil.cpp
@@ -37,9 +37,15 @@
 #include "wx/hash.h"
 #include "wx/module.h"
 
-#ifdef __WXGTK20__
+#if wxUSE_PANGO
+
+#include "pango/pango.h"
 
+#ifdef __WXGTK20__
 #include "wx/gtk/private.h"
+#else
+#include "wx/x11/private.h"
+#endif
 
 // ----------------------------------------------------------------------------
 // wxNativeFontInfo
@@ -71,7 +77,7 @@ wxFontStyle wxNativeFontInfo::GetStyle() const
             m_style = wxFONTSTYLE_SLANT;
             break;
     }
-    
+
     return m_style;
 }
 
@@ -100,7 +106,7 @@ wxFontWeight wxNativeFontInfo::GetWeight() const
             m_weight = wxFONTWEIGHT_BOLD;
             break;
     }
-    
+
     return m_weight;
 }
 
@@ -112,7 +118,7 @@ bool wxNativeFontInfo::GetUnderlined() const
 wxString wxNativeFontInfo::GetFaceName() const
 {
     wxString tmp = wxGTK_CONV_BACK( pango_font_description_get_family( description ) );
-    
+
     return tmp;
 }
 
@@ -178,8 +184,7 @@ bool wxGetNativeFontEncoding(wxFontEncoding encoding,
     return FALSE;
 }
 
-#else 
-   // __WXGTK20__
+#else // GTK+ 1.x
 
 #ifdef __X__
     #ifdef __VMS__
@@ -452,6 +457,164 @@ void wxNativeFontInfo::SetXFontName(const wxString& xFontName_)
     m_isDefault = FALSE;
 }
 
+int wxNativeFontInfo::GetPointSize() const
+{
+    const wxString s = GetXFontComponent(wxXLFD_POINTSIZE);
+
+    // return -1 to indicate that the size is unknown
+    long l;
+    return s.ToLong(&l) ? l : -1;
+}
+
+wxFontStyle wxNativeFontInfo::GetStyle() const
+{
+    const wxString s = GetXFontComponent(wxXLFD_SLANT);
+
+    if ( s.length() != 1 )
+    {
+        // it is really unknown but we don't have any way to return it from
+        // here
+        return wxFONTSTYLE_NORMAL;
+    }
+
+    switch ( s[0] )
+    {
+        default:
+            // again, unknown but consider normal by default
+
+        case _T('r'):
+            return wxFONTSTYLE_NORMAL;
+
+        case _T('i'):
+            return wxFONTSTYLE_ITALIC;
+
+        case _T('o'):
+            return wxFONTSTYLE_SLANT;
+    }
+}
+
+wxFontWeight wxNativeFontInfo::GetWeight() const
+{
+    const wxString s = GetXFontComponent(wxXLFD_WEIGHT).MakeLower();
+    if ( s.find(_T("bold")) != wxString::npos || s == _T("black") )
+        return wxFONTWEIGHT_BOLD;
+    else if ( s == _T("light") )
+        return wxFONTWEIGHT_LIGHT;
+
+    return wxFONTWEIGHT_NORMAL;
+}
+
+bool wxNativeFontInfo::GetUnderlined() const
+{
+    // X fonts are never underlined
+    return FALSE;
+}
+
+wxString wxNativeFontInfo::GetFaceName() const
+{
+    // wxWindows facename probably more accurately corresponds to X family
+    return GetXFontComponent(wxXLFD_FAMILY);
+}
+
+wxFontFamily wxNativeFontInfo::GetFamily() const
+{
+    // and wxWindows family -- to X foundry, but we have to translate it to
+    // wxFontFamily somehow...
+    wxFAIL_MSG(_T("not implemented")); // GetXFontComponent(wxXLFD_FOUNDRY);
+
+    return wxFONTFAMILY_DEFAULT;
+}
+
+wxFontEncoding wxNativeFontInfo::GetEncoding() const
+{
+    // we already have the code for this but need to refactor it first
+    wxFAIL_MSG( _T("not implemented") );
+
+    return wxFONTENCODING_MAX;
+}
+
+void wxNativeFontInfo::SetPointSize(int pointsize)
+{
+    SetXFontComponent(wxXLFD_POINTSIZE, wxString::Format(_T("%d"), pointsize));
+}
+
+void wxNativeFontInfo::SetStyle(wxFontStyle style)
+{
+    wxString s;
+    switch ( style )
+    {
+        case wxFONTSTYLE_ITALIC:
+            s = _T('i');
+            break;
+
+        case wxFONTSTYLE_SLANT:
+            s = _T('o');
+            break;
+
+        case wxFONTSTYLE_NORMAL:
+            s = _T('r');
+
+        default:
+            wxFAIL_MSG( _T("unknown wxFontStyle in wxNativeFontInfo::SetStyle") );
+            return;
+    }
+
+    SetXFontComponent(wxXLFD_SLANT, s);
+}
+
+void wxNativeFontInfo::SetWeight(wxFontWeight weight)
+{
+    wxString s;
+    switch ( weight )
+    {
+        case wxFONTWEIGHT_BOLD:
+            s = _T("bold");
+            break;
+
+        case wxFONTWEIGHT_LIGHT:
+            s = _T("light");
+            break;
+
+        case wxFONTWEIGHT_NORMAL:
+            s = _T("medium");
+            break;
+
+        default:
+            wxFAIL_MSG( _T("unknown wxFontWeight in wxNativeFontInfo::SetWeight") );
+            return;
+    }
+
+    SetXFontComponent(wxXLFD_WEIGHT, s);
+}
+
+void wxNativeFontInfo::SetUnderlined(bool WXUNUSED(underlined))
+{
+    // can't do this under X
+}
+
+void wxNativeFontInfo::SetFaceName(wxString facename)
+{
+    SetXFontComponent(wxXLFD_FAMILY, facename);
+}
+
+void wxNativeFontInfo::SetFamily(wxFontFamily family)
+{
+    // wxFontFamily -> X foundry, anyone?
+    wxFAIL_MSG( _T("not implemented") );
+
+    // SetXFontComponent(wxXLFD_FOUNDRY, ...);
+}
+
+void wxNativeFontInfo::SetEncoding(wxFontEncoding encoding)
+{
+    wxNativeEncodingInfo info;
+    if ( wxGetNativeFontEncoding(encoding, &info) )
+    {
+        SetXFontComponent(wxXLFD_ENCODING, info.xencoding);
+        SetXFontComponent(wxXLFD_REGISTRY, info.xregistry);
+    }
+}
+
 // ----------------------------------------------------------------------------
 // common functions
 // ----------------------------------------------------------------------------
@@ -495,6 +658,11 @@ bool wxGetNativeFontEncoding(wxFontEncoding encoding,
             info->xencoding = wxT("*");
             break;
 
+        case wxFONTENCODING_GB2312:
+            info->xregistry = wxT("GB2312");   // or the otherway round? 
+            info->xencoding = wxT("*");
+            break;
+
         case wxFONTENCODING_KOI8:
             info->xregistry = wxT("koi8");
 
@@ -806,7 +974,7 @@ static wxNativeFont wxLoadQueryFont(int pointSize,
     // An alternative: assume that the screen is 72 dpi.
     //int pixelHeight = (int) (((float)pointSize / 720.0) * 72.0) ;
     //int pixelHeight = (int) ((float)pointSize / 10.0) ;
-    
+
     GR_LOGFONT logFont;
     logFont.lfHeight = pixelHeight;
     logFont.lfWidth = 0;
@@ -833,7 +1001,7 @@ static wxNativeFont wxLoadQueryFont(int pointSize,
     fontInfo->fid = GrCreateFont((GR_CHAR*) facename.c_str(), pixelHeight, & logFont);
     GrGetFontInfo(fontInfo->fid, & fontInfo->info);
     return (wxNativeFont) fontInfo;
-    
+
 #else
     wxString fontSpec;
     if (!facename.IsEmpty())
@@ -1044,5 +1212,5 @@ void wxFontModule::OnExit()
     g_fontHash = (wxHashTable *)NULL;
 }
 
-#endif
-  // not GTK 2.0
+#endif // GTK 2.0/1.x
+
diff --git a/src/unix/mimetype.cpp b/src/unix/mimetype.cpp
index faf0bd2d6c..23c23a983e 100644
--- a/src/unix/mimetype.cpp
+++ b/src/unix/mimetype.cpp
@@ -364,21 +364,21 @@ bool wxMimeTypesManagerImpl::CheckGnomeDirsExist ()
     wxString gnomedir;
     wxGetHomeDir( &gnomedir );
     wxString sTmp = gnomedir;
-    sTmp = sTmp + "/.gnome";
+    sTmp = sTmp + wxT("/.gnome");
     if (! wxDir::Exists ( sTmp ) )
     {
         if (!wxMkdir ( sTmp ))
         {
-            wxFAIL_MSG (wxString ("Failed to create directory\n.gnome in \nCheckGnomeDirsExist") + sTmp );
+            wxLogError(_("Failed to create directory %s/.gnome."), sTmp.c_str());
             return FALSE;
         }
     }
-    sTmp = sTmp + "/mime-info";
+    sTmp = sTmp + wxT("/mime-info");
     if (! wxDir::Exists ( sTmp ) )
     {
         if (!wxMkdir ( sTmp ))
         {
-            wxFAIL_MSG (wxString ("Failed to create directory\nmime-info in \nCheckGnomeDirsExist") + sTmp );
+            wxLogError(_("Failed to create directory %s/mime-info."), sTmp.c_str());
             return FALSE;
         }
     }
@@ -393,11 +393,15 @@ bool wxMimeTypesManagerImpl::WriteGnomeKeyFile(int index, bool delete_index)
     wxString gnomedir;
     wxGetHomeDir( &gnomedir );
 
-    wxMimeTextFile outfile ( gnomedir + "/.gnome/mime-info/user.keys");
+    wxMimeTextFile outfile ( gnomedir + wxT("/.gnome/mime-info/user.keys"));
     // if this fails probably Gnome is not installed ??
     // create it anyway as a private mime store
 
+#if defined(__WXGTK20__) && wxUSE_UNICODE
+    if (! outfile.Open ( wxConvUTF8) )
+#else
     if (! outfile.Open () )
+#endif
     {
         if (delete_index) return FALSE;
         if (!CheckGnomeDirsExist() ) return FALSE;
@@ -462,13 +466,13 @@ bool wxMimeTypesManagerImpl::WriteGnomeKeyFile(int index, bool delete_index)
             }
             //sOld should also contain the icon
             if ( !m_aIcons[index].empty() )
-                sOld.AddOrReplaceVerb ( wxT( "icon-filename"), m_aIcons[index] );
+                sOld.AddOrReplaceVerb ( wxT("icon-filename"), m_aIcons[index] );
 
             for (i=0; i < sOld.GetCount(); i++)
             {
                 sTmp = sOld.GetVerbCmd(i);
                 sTmp.Replace( wxT("%s"), wxT("%f") );
-                sTmp = wxT ( "\t") + sTmp;
+                sTmp = wxT("\t") + sTmp;
                 nIndex ++;
                 outfile.InsertLine ( sTmp, nIndex );
             }
@@ -484,7 +488,7 @@ bool wxMimeTypesManagerImpl::WriteGnomeMimeFile(int index, bool delete_index)
     wxString gnomedir;
     wxGetHomeDir( &gnomedir );
 
-    wxMimeTextFile outfile ( gnomedir + "/.gnome/mime-info/user.mime");
+    wxMimeTextFile outfile ( gnomedir + wxT("/.gnome/mime-info/user.mime"));
     // if this fails probably Gnome is not installed ??
     // create it anyway as a private mime store
     if (! outfile.Open () )
@@ -498,7 +502,7 @@ bool wxMimeTypesManagerImpl::WriteGnomeMimeFile(int index, bool delete_index)
     if ( nIndex == wxNOT_FOUND )
     {
         outfile.AddLine ( strType );
-        outfile.AddLine ( wxT( "\text:") + m_aExtensions.Item(index) );
+        outfile.AddLine ( wxT("\text:") + m_aExtensions.Item(index) );
     }
     else
     {
@@ -510,13 +514,13 @@ bool wxMimeTypesManagerImpl::WriteGnomeMimeFile(int index, bool delete_index)
         else
         {// check for next line being the right one to replace ??
             wxString sOld = outfile.GetLine(nIndex+1);
-            if (sOld.Contains(wxT("\text: ")))
+            if (sOld.Contains( wxT("\text: ")))
             {
-                outfile.GetLine(nIndex+1) = wxT( "\text: ") + m_aExtensions.Item(index);
+                outfile.GetLine(nIndex+1) = wxT("\text: ") + m_aExtensions.Item(index);
             }
             else
             {
-                outfile.InsertLine(wxT( "\text: ") + m_aExtensions.Item(index), nIndex + 1 );
+                outfile.InsertLine( wxT("\text: ") + m_aExtensions.Item(index), nIndex + 1 );
             }
         }
     }
@@ -528,7 +532,11 @@ bool wxMimeTypesManagerImpl::WriteGnomeMimeFile(int index, bool delete_index)
 void wxMimeTypesManagerImpl::LoadGnomeDataFromKeyFile(const wxString& filename)
 {
     wxTextFile textfile(filename);
+#if defined(__WXGTK20__) && wxUSE_UNICODE
+    if ( !textfile.Open( wxConvUTF8) )
+#else
     if ( !textfile.Open() )
+#endif
         return;
     wxLogTrace(TRACE_MIME, wxT("--- Opened Gnome file %s  ---"),
             filename.c_str());
@@ -615,7 +623,11 @@ void wxMimeTypesManagerImpl::LoadGnomeDataFromKeyFile(const wxString& filename)
 void wxMimeTypesManagerImpl::LoadGnomeMimeTypesFromMimeFile(const wxString& filename)
 {
     wxTextFile textfile(filename);
+#if defined(__WXGTK20__) && wxUSE_UNICODE
+    if ( !textfile.Open( wxConvUTF8) )
+#else
     if ( !textfile.Open() )
+#endif
         return;
     wxLogTrace(TRACE_MIME, wxT("--- Opened Gnome file %s  ---"),
                  filename.c_str());
@@ -630,7 +642,7 @@ void wxMimeTypesManagerImpl::LoadGnomeMimeTypesFromMimeFile(const wxString& file
         if ( nLine < nLineCount )
         {
             pc = textfile[nLine].c_str();
-            if ( *pc == _T('#') )
+            if ( *pc == wxT('#') )
             {
                 // skip comments
                 continue;
@@ -665,13 +677,13 @@ void wxMimeTypesManagerImpl::LoadGnomeMimeTypesFromMimeFile(const wxString& file
         }
 
         // what do we have here?
-        if ( *pc == _T('\t') )
+        if ( *pc == wxT('\t') )
         {
             // this is a field=value ling
             pc++; // skip leading TAB
 
             static const int lenField = 4; // strlen("ext:")
-            if ( wxStrncmp(pc, _T("ext:"), lenField) == 0 )
+            if ( wxStrncmp(pc, wxT("ext:"), lenField) == 0 )
             {
                 // skip ' ' which follows and take everything left until the end
                 // of line
@@ -690,7 +702,7 @@ void wxMimeTypesManagerImpl::LoadGnomeMimeTypesFromMimeFile(const wxString& file
 
             curMimeType.Empty();
 
-            while ( *pc != _T(':') && *pc != _T('\0') )
+            while ( *pc != wxT(':') && *pc != wxT('\0') )
             {
                 curMimeType += *pc++;
             }
@@ -705,7 +717,7 @@ void wxMimeTypesManagerImpl::LoadGnomeMimeFilesFromDir(const wxString& dirbase)
                   _T("base directory shouldn't end with a slash") );
 
     wxString dirname = dirbase;
-    dirname << _T("/mime-info");
+    dirname << wxT("/mime-info");
 
     if ( !wxDir::Exists(dirname) )
         return;
@@ -715,7 +727,7 @@ void wxMimeTypesManagerImpl::LoadGnomeMimeFilesFromDir(const wxString& dirbase)
         return;
 
     // we will concatenate it with filename to get the full path below
-    dirname += _T('/');
+    dirname += wxT('/');
 
     wxString filename;
     bool cont = dir.GetFirst(&filename, _T("*.mime"), wxDIR_FILES);
@@ -742,12 +754,12 @@ void wxMimeTypesManagerImpl::GetGnomeMimeInfo(const wxString& sExtraDir)
 {
 
     wxArrayString dirs;
-    dirs.Add(_T("/usr/share"));
-    dirs.Add(_T("/usr/local/share"));
+    dirs.Add(wxT("/usr/share"));
+    dirs.Add(wxT("/usr/local/share"));
 
     wxString gnomedir;
     wxGetHomeDir( &gnomedir );
-    gnomedir += _T("/.gnome");
+    gnomedir += wxT("/.gnome");
     dirs.Add( gnomedir );
     if (!sExtraDir.empty()) dirs.Add( sExtraDir );
 
@@ -913,12 +925,12 @@ void wxMimeTypesManagerImpl::LoadKDELinksForMimeSubtype(const wxString& dirbase,
     wxArrayString sExts;
     wxString mimetype, mime_desc, strIcon;
 
-    int nIndex = file.pIndexOf ("MimeType=");
+    int nIndex = file.pIndexOf( wxT("MimeType=") );
     if (nIndex == wxNOT_FOUND)
     {
         // construct mimetype from the directory name and the basename of the
         // file (it always has .kdelnk extension)
-        mimetype << subdir << _T('/') << filename.BeforeLast(_T('.'));
+        mimetype << subdir << wxT('/') << filename.BeforeLast( wxT('.') );
     }
     else mimetype = file.GetCmd (nIndex);
 
@@ -1085,15 +1097,15 @@ void wxMimeTypesManagerImpl::GetKDEMimeInfo(const wxString& sExtraDir)
     wxArrayString icondirs;
 
     // settings in ~/.kde have maximal priority
-    dirs.Add(wxGetHomeDir() + _T("/.kde/share"));
-    icondirs.Add(wxGetHomeDir() + _T("/.kde/share/icons/"));
+    dirs.Add(wxGetHomeDir() + wxT("/.kde/share"));
+    icondirs.Add(wxGetHomeDir() + wxT("/.kde/share/icons/"));
 
     // the variable KDEDIR is set when KDE is running
-    const char *kdedir = getenv("KDEDIR");
+    const wxChar *kdedir = wxGetenv( wxT("KDEDIR") );
     if ( kdedir )
     {
-        dirs.Add(wxString(kdedir) + _T("/share"));
-        icondirs.Add(wxString(kdedir) + _T("/share/icons/"));
+        dirs.Add( wxString(kdedir) + wxT("/share") );
+        icondirs.Add( wxString(kdedir) + wxT("/share/icons/") );
     }
     else
     {
@@ -1346,6 +1358,7 @@ void wxMimeTypesManagerImpl::ClearData()
     m_aExtensions.Clear ();
     m_aDescriptions.Clear ();
 
+    WX_CLEAR_ARRAY(m_aEntries);
     m_aEntries.Empty();
 
     m_mailcapStylesInited = 0;
@@ -1354,8 +1367,6 @@ void wxMimeTypesManagerImpl::ClearData()
 wxMimeTypesManagerImpl::~wxMimeTypesManagerImpl()
 {
     ClearData();
-
-    WX_CLEAR_ARRAY(m_aEntries);
 }
 
 
@@ -2033,7 +2044,11 @@ bool wxMimeTypesManagerImpl::ReadMimeTypes(const wxString& strFileName)
                strFileName.c_str());
 
     wxTextFile file(strFileName);
+#if defined(__WXGTK20__) && wxUSE_UNICODE
+    if ( !file.Open( wxConvUTF8) )
+#else
     if ( !file.Open() )
+#endif
         return FALSE;
 
     // the information we extract
@@ -2041,7 +2056,8 @@ bool wxMimeTypesManagerImpl::ReadMimeTypes(const wxString& strFileName)
 
     size_t nLineCount = file.GetLineCount();
     const wxChar *pc = NULL;
-    for ( size_t nLine = 0; nLine < nLineCount; nLine++ ) {
+    for ( size_t nLine = 0; nLine < nLineCount; nLine++ )
+    {
         if ( pc == NULL ) {
             // now we're at the start of the line
             pc = file[nLine].c_str();
@@ -2307,7 +2323,11 @@ bool wxMimeTypesManagerImpl::ReadMailcap(const wxString& strFileName,
                strFileName.c_str());
 
     wxTextFile file(strFileName);
+#if defined(__WXGTK20__) && wxUSE_UNICODE
+    if ( !file.Open( wxConvUTF8) )
+#else
     if ( !file.Open() )
+#endif
         return FALSE;
 
     // indices of MIME types (in m_aTypes) we already found in this file
@@ -2367,11 +2387,11 @@ bool wxMimeTypesManagerImpl::ReadMailcap(const wxString& strFileName,
                             // something is wrong, bail out
                             cont = FALSE;
 
-                            wxLogDebug(wxT("Mailcap file %s, line %d: "
+                            wxLogDebug(wxT("Mailcap file %s, line %lu: "
                                            "'\\' on the end of the last line "
                                            "ignored."),
                                        strFileName.c_str(),
-                                       nLine + 1);
+                                       (unsigned long)nLine + 1);
                         }
                         else
                         {
@@ -2433,11 +2453,11 @@ bool wxMimeTypesManagerImpl::ReadMailcap(const wxString& strFileName,
                                 // this might be useful for the programmer
                                 wxLogDebug
                                 (
-                                    wxT("Mailcap file %s, line %d: "
+                                    wxT("Mailcap file %s, line %lu: "
                                         "unknown field '%s' for the "
                                         "MIME type '%s' ignored."),
                                     strFileName.c_str(),
-                                    nLine + 1,
+                                    (unsigned long)nLine + 1,
                                     curField.c_str(),
                                     data.type.c_str()
                                 );
@@ -2504,7 +2524,8 @@ bool wxMimeTypesManagerImpl::ReadMailcap(const wxString& strFileName,
 
         if ( data.needsterminal )
         {
-            data.cmdOpen.Printf(_T("xterm -e sh -c '%s'"), data.cmdOpen.c_str());
+            data.cmdOpen = wxString::Format(_T("xterm -e sh -c '%s'"),
+                                            data.cmdOpen.c_str());
         }
 
         if ( !data.cmdOpen.empty() )
diff --git a/src/unix/threadpsx.cpp b/src/unix/threadpsx.cpp
index 47e9a41e62..b4b91685b9 100644
--- a/src/unix/threadpsx.cpp
+++ b/src/unix/threadpsx.cpp
@@ -495,8 +495,8 @@ wxSemaError wxSemaphoreInternal::Wait()
             return wxSEMA_MISC_ERROR;
 
         wxLogTrace(TRACE_SEMA,
-                   "Thread %ld finished waiting for semaphore, count = %u",
-                   wxThread::GetCurrentId(), m_count);
+                   "Thread %ld finished waiting for semaphore, count = %lu",
+                   wxThread::GetCurrentId(), (unsigned long)m_count);
     }
 
     m_count--;
@@ -553,9 +553,9 @@ wxSemaError wxSemaphoreInternal::Post()
     m_count++;
 
     wxLogTrace(TRACE_SEMA,
-               "Thread %ld about to signal semaphore, count = %u",
-               wxThread::GetCurrentId(), m_count);
-    
+               "Thread %ld about to signal semaphore, count = %lu",
+               wxThread::GetCurrentId(), (unsigned long)m_count);
+
     return m_cond.Signal() == wxCOND_NO_ERROR ? wxSEMA_NO_ERROR
                                               : wxSEMA_MISC_ERROR;
 }
@@ -620,7 +620,7 @@ public:
         };
 
         wxLogTrace(TRACE_THREADS, _T("Thread %ld: %s => %s."),
-                   GetId(), stateNames[m_state], stateNames[state]);
+                   (long)GetId(), stateNames[m_state], stateNames[state]);
 #endif // __WXDEBUG__
 
         m_state = state;
@@ -696,8 +696,12 @@ void *wxThreadInternal::PthreadStart(wxThread *thread)
 {
     wxThreadInternal *pthread = thread->m_internal;
 
-    wxLogTrace(TRACE_THREADS, _T("Thread %ld started."), pthread->GetId());
-
+#ifdef __VMS
+   wxLogTrace(TRACE_THREADS, _T("Thread %ld started."), (long long)pthread->GetId());
+#else
+   wxLogTrace(TRACE_THREADS, _T("Thread %ld started."), (long)pthread->GetId());
+#endif
+   
     // associate the thread pointer with the newly created thread so that
     // wxThread::This() will work
     int rc = pthread_setspecific(gs_keySelf, thread);
@@ -734,13 +738,21 @@ void *wxThreadInternal::PthreadStart(wxThread *thread)
     {
         // call the main entry
         wxLogTrace(TRACE_THREADS, _T("Thread %ld about to enter its Entry()."),
-                   pthread->GetId());
-
+#ifdef __VMS
+                   (long long)pthread->GetId());
+#else
+                   (long)pthread->GetId());
+#endif
+       
         pthread->m_exitcode = thread->Entry();
 
         wxLogTrace(TRACE_THREADS, _T("Thread %ld Entry() returned %lu."),
-                   pthread->GetId(), (unsigned long)pthread->m_exitcode);
-
+#ifdef __VMS
+                   (long long)pthread->GetId(), (unsigned long)pthread->m_exitcode);
+#else
+                   (long)pthread->GetId(), (unsigned long)pthread->m_exitcode);
+#endif
+       
         {
             wxCriticalSectionLocker lock(thread->m_critsect);
 
@@ -849,8 +861,12 @@ void wxThreadInternal::Wait()
         wxMutexGuiLeave();
 
     wxLogTrace(TRACE_THREADS,
-               _T("Starting to wait for thread %ld to exit."), GetId());
-
+#ifdef __VMS
+               _T("Starting to wait for thread %ld to exit."), (long long)GetId());
+#else
+               _T("Starting to wait for thread %ld to exit."), (long)GetId());
+#endif
+   
     // to avoid memory leaks we should call pthread_join(), but it must only be
     // done once so use a critical section to serialize the code below
     {
@@ -862,7 +878,7 @@ void wxThreadInternal::Wait()
             //       we're cancelled inside pthread_join(), things will almost
             //       certainly break - but if we disable the cancellation, we
             //       might deadlock
-            if ( pthread_join((pthread_t)GetId(), &m_exitcode) != 0 )
+            if ( pthread_join(GetId(), &m_exitcode) != 0 )
             {
                 // this is a serious problem, so use wxLogError and not
                 // wxLogDebug: it is possible to bring the system to its knees
@@ -888,8 +904,12 @@ void wxThreadInternal::Pause()
     wxCHECK_RET( m_state == STATE_PAUSED,
                  wxT("thread must first be paused with wxThread::Pause().") );
 
-    wxLogTrace(TRACE_THREADS, _T("Thread %ld goes to sleep."), GetId());
-
+#ifdef __VMS
+   wxLogTrace(TRACE_THREADS, _T("Thread %ld goes to sleep."), (long long)GetId());
+#else
+   wxLogTrace(TRACE_THREADS, _T("Thread %ld goes to sleep."), (long)GetId());
+#endif
+   
     // wait until the semaphore is Post()ed from Resume()
     m_semSuspend.Wait();
 }
@@ -903,8 +923,12 @@ void wxThreadInternal::Resume()
     // TestDestroy() since the last call to Pause() for example
     if ( IsReallyPaused() )
     {
-        wxLogTrace(TRACE_THREADS, _T("Waking up thread %ld"), GetId());
-
+#ifdef __VMS
+       wxLogTrace(TRACE_THREADS, _T("Waking up thread %ld"), (long long)GetId());
+#else
+       wxLogTrace(TRACE_THREADS, _T("Waking up thread %ld"), (long)GetId());
+#endif
+       
         // wake up Pause()
         m_semSuspend.Post();
 
@@ -914,7 +938,11 @@ void wxThreadInternal::Resume()
     else
     {
         wxLogTrace(TRACE_THREADS, _T("Thread %ld is not yet really paused"),
-                   GetId());
+#ifdef __VMS
+                   (long long)GetId());
+#else
+                   (long)GetId());
+#endif
     }
 
     SetState(STATE_RUNNING);
@@ -1598,8 +1626,9 @@ void wxThreadModule::OnExit()
 
         if ( nThreadsBeingDeleted > 0 )
         {
-            wxLogTrace(TRACE_THREADS, _T("Waiting for %u threads to disappear"),
-                       nThreadsBeingDeleted);
+            wxLogTrace(TRACE_THREADS,
+                       _T("Waiting for %lu threads to disappear"),
+                       (unsigned long)nThreadsBeingDeleted);
 
             // have to wait until all of them disappear
             gs_condAllDeleted->Wait();
@@ -1610,8 +1639,8 @@ void wxThreadModule::OnExit()
     size_t count = gs_allThreads.GetCount();
     if ( count != 0u )
     {
-        wxLogDebug(wxT("%u threads were not terminated by the application."),
-                   count);
+        wxLogDebug(wxT("%lu threads were not terminated by the application."),
+                   (unsigned long)count);
     }
 
     for ( size_t n = 0u; n < count; n++ )
@@ -1645,8 +1674,8 @@ static void ScheduleThreadForDeletion()
 
     gs_nThreadsBeingDeleted++;
 
-    wxLogTrace(TRACE_THREADS, _T("%u thread%s waiting to be deleted"),
-               gs_nThreadsBeingDeleted,
+    wxLogTrace(TRACE_THREADS, _T("%lu thread%s waiting to be deleted"),
+               (unsigned long)gs_nThreadsBeingDeleted,
                gs_nThreadsBeingDeleted == 1 ? "" : "s");
 }
 
@@ -1663,8 +1692,8 @@ static void DeleteThread(wxThread *This)
     wxCHECK_RET( gs_nThreadsBeingDeleted > 0,
                  _T("no threads scheduled for deletion, yet we delete one?") );
 
-    wxLogTrace(TRACE_THREADS, _T("%u scheduled for deletion threads left."),
-               gs_nThreadsBeingDeleted - 1);
+    wxLogTrace(TRACE_THREADS, _T("%lu scheduled for deletion threads left."),
+               (unsigned long)gs_nThreadsBeingDeleted - 1);
 
     if ( !--gs_nThreadsBeingDeleted )
     {
diff --git a/src/unix/utilsunx.cpp b/src/unix/utilsunx.cpp
index 445f88b9fa..59fb259624 100644
--- a/src/unix/utilsunx.cpp
+++ b/src/unix/utilsunx.cpp
@@ -44,7 +44,11 @@
     #include <sys/statvfs.h>
 
     #define statfs statvfs
+# ifdef __HPUX__
+    #define wxStatFs struct statvfs
+# else
     #define wxStatFs statvfs_t
+# endif
 #elif HAVE_STATFS
     #define wxStatFs struct statfs
 #endif // HAVE_STAT[V]FS
@@ -362,10 +366,10 @@ public:
     bool IsOpened() const { return !Eof(); }
 
     // return TRUE if we have anything to read, don't block
-    bool IsAvailable() const;
+    virtual bool CanRead() const;
 };
 
-bool wxPipeInputStream::IsAvailable() const
+bool wxPipeInputStream::CanRead() const
 {
     if ( m_lasterror == wxSTREAM_EOF )
         return FALSE;
@@ -800,7 +804,12 @@ char *wxGetUserHome( const wxString &user )
 
         if ((ptr = wxGetenv(wxT("HOME"))) != NULL)
         {
+#if wxUSE_UNICODE
+            wxWCharBuffer buffer( ptr );
+            return buffer;
+#else
             return ptr;
+#endif
         }
         if ((ptr = wxGetenv(wxT("USER"))) != NULL || (ptr = wxGetenv(wxT("LOGNAME"))) != NULL)
         {
@@ -947,7 +956,7 @@ wxString wxGetOsDescription()
 #ifndef WXWIN_OS_DESCRIPTION
     #error WXWIN_OS_DESCRIPTION should be defined in config.h by configure
 #else
-    return WXWIN_OS_DESCRIPTION;
+    return wxString::FromAscii( WXWIN_OS_DESCRIPTION );
 #endif
 }
 #endif
diff --git a/src/wxBase.dsp b/src/wxBase.dsp
index bcc38cda8e..63e859cd9c 100644
--- a/src/wxBase.dsp
+++ b/src/wxBase.dsp
@@ -2,8 +2,8 @@
 # Microsoft Developer Studio Generated Build File, Format Version 6.00
 # ** DO NOT EDIT **
 
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
 # TARGTYPE "Win32 (x86) Static Library" 0x0104
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
 
 CFG=wxBase - Win32 Debug
 !MESSAGE This is not a valid makefile. To build this project using NMAKE,
@@ -32,6 +32,8 @@ CFG=wxBase - Win32 Debug
 # PROP AllowPerConfigDependencies 0
 # PROP Scc_ProjName ""
 # PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
 
 !IF  "$(CFG)" == "wxBase - Win32 Release Unicode DLL"
 
@@ -46,13 +48,10 @@ CFG=wxBase - Win32 Debug
 # PROP Intermediate_Dir "../BaseReleaseUnicodeDll"
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
-CPP=cl.exe
 # ADD BASE CPP /nologo /MD /W4 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "WXBASEDLL_EXPORTS" /YX /FD /c
 # ADD CPP /nologo /MD /W4 /O2 /I "../lib/basedllu" /I "../include" /I "./regex" /I "./zlib" /D "NDEBUG" /D wxUSE_GUI=0 /D "WIN32" /D WINVER=0x400 /D "WXMAKINGDLL" /D "_UNICODE" /D "UNICODE" /Yu"wx/wxprec.h" /FD /c
-MTL=midl.exe
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
 # ADD RSC /l 0x409 /i "../include" /d "NDEBUG"
 BSC32=bscmake.exe
@@ -60,7 +59,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"../lib/wxbase233u.dll"
-# ADD LINK32 ../lib/zlib.lib ../lib/regex.lib kernel32.lib user32.lib advapi32.lib wsock32.lib shell32.lib /nologo /version:2.3 /dll /machine:I386 /out:"../lib/wxbase233u.dll"
+# ADD LINK32 kernel32.lib user32.lib advapi32.lib shell32.lib wsock32.lib ../lib/zlib.lib ../lib/regex.lib /nologo /version:2.3 /dll /machine:I386 /out:"../lib/wxbase233u.dll"
 
 !ELSEIF  "$(CFG)" == "wxBase - Win32 Debug Unicode DLL"
 
@@ -75,21 +74,18 @@ LINK32=link.exe
 # PROP Intermediate_Dir "../BaseDebugUnicodeDll"
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
-CPP=cl.exe
 # ADD BASE CPP /nologo /MDd /W4 /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "WXBASEDLL_EXPORTS" /YX /FD /c
 # ADD CPP /nologo /MDd /W4 /Zi /Od /I "../lib/basedllud" /I "../include" /I "./regex" /I "./zlib" /D "_DEBUG" /D wxUSE_GUI=0 /D "WIN32" /D WINVER=0x400 /D "WXMAKINGDLL" /D "_UNICODE" /D "UNICODE" /Yu"wx/wxprec.h" /FD /c
-MTL=midl.exe
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
 # ADD RSC /l 0x409 /i "../include" /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"../lib/wxbase233ud.dll" /pdbtype:sept
-# ADD LINK32 ../lib/zlibd.lib ../lib/regexd.lib kernel32.lib user32.lib advapi32.lib wsock32.lib shell32.lib /nologo /version:2.2 /dll /debug /machine:I386 /out:"../lib/wxbase233ud.dll" /pdbtype:sept
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /out:"../lib/wxbase233ud.dll"
+# ADD LINK32 kernel32.lib user32.lib advapi32.lib shell32.lib wsock32.lib ../lib/zlibd.lib ../lib/regexd.lib /nologo /version:2.2 /dll /debug /machine:I386 /pdbtype:sept /out:"../lib/wxbase233ud.dll"
 
 !ELSEIF  "$(CFG)" == "wxBase - Win32 Release Unicode"
 
@@ -103,10 +99,8 @@ LINK32=link.exe
 # PROP Output_Dir "..\lib"
 # PROP Intermediate_Dir "..\BaseReleaseUnicode"
 # PROP Target_Dir ""
-CPP=cl.exe
 # ADD BASE CPP /nologo /MD /W4 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
 # ADD CPP /nologo /MD /W4 /O2 /I "../lib/baseu" /I "../include" /I "./regex" /I "./zlib" /D "NDEBUG" /D wxUSE_GUI=0 /D "WIN32" /D WINVER=0x400 /D "_UNICODE" /D "UNICODE" /Yu"wx/wxprec.h" /FD /c
-RSC=rc.exe
 # ADD BASE RSC /l 0x409
 # ADD RSC /l 0x409
 BSC32=bscmake.exe
@@ -128,15 +122,13 @@ LIB32=link.exe -lib
 # PROP Output_Dir "..\lib"
 # PROP Intermediate_Dir "..\BaseDebugUnicode"
 # PROP Target_Dir ""
-CPP=cl.exe
 # ADD BASE CPP /nologo /MDd /W4 /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
 # ADD CPP /nologo /MDd /W4 /Zi /Od /I "../lib/baseud" /I "../include" /I "./regex" /I "./zlib" /D "_DEBUG" /D wxUSE_GUI=0 /D "WIN32" /D "__WXDEBUG__" /D WINVER=0x400 /D "_UNICODE" /D "UNICODE" /Yu"wx/wxprec.h" /FD /c
-RSC=rc.exe
 # ADD BASE RSC /l 0x409
 # ADD RSC /l 0x409
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
+# ADD BSC32 /nologo /o"../lib/wxbase.bsc"
 LIB32=link.exe -lib
 # ADD BASE LIB32 /nologo
 # ADD LIB32 /nologo /out:"..\lib\wxbaseud.lib"
@@ -154,13 +146,10 @@ LIB32=link.exe -lib
 # PROP Intermediate_Dir "../BaseReleaseDll"
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
-CPP=cl.exe
 # ADD BASE CPP /nologo /MD /W4 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "WXBASEDLL_EXPORTS" /YX /FD /c
 # ADD CPP /nologo /MD /W4 /O2 /I "../lib/basedll" /I "../include" /I "./regex" /I "./zlib" /D "NDEBUG" /D wxUSE_GUI=0 /D "WIN32" /D WINVER=0x400 /D "WXMAKINGDLL" /Yu"wx/wxprec.h" /FD /c
-MTL=midl.exe
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-RSC=rc.exe
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
 # ADD RSC /l 0x409 /i "../include" /d "NDEBUG"
 BSC32=bscmake.exe
@@ -168,7 +157,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"../lib/wxbase233.dll"
-# ADD LINK32 ../lib/zlib.lib ../lib/regex.lib kernel32.lib user32.lib advapi32.lib wsock32.lib shell32.lib /nologo /version:2.3 /dll /machine:I386 /out:"../lib/wxbase233.dll"
+# ADD LINK32 kernel32.lib user32.lib advapi32.lib shell32.lib wsock32.lib ../lib/zlib.lib ../lib/regex.lib /nologo /version:2.3 /dll /machine:I386 /out:"../lib/wxbase233.dll"
 
 !ELSEIF  "$(CFG)" == "wxBase - Win32 Debug DLL"
 
@@ -183,21 +172,18 @@ LINK32=link.exe
 # PROP Intermediate_Dir "../BaseDebugDll"
 # PROP Ignore_Export_Lib 0
 # PROP Target_Dir ""
-CPP=cl.exe
 # ADD BASE CPP /nologo /MDd /W4 /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "WXBASEDLL_EXPORTS" /YX /FD /c
 # ADD CPP /nologo /MDd /W4 /Zi /Od /I "../lib/basedlld" /I "../include" /I "./regex" /I "./zlib" /D "_DEBUG" /D wxUSE_GUI=0 /D "WIN32" /D WINVER=0x400 /D "WXMAKINGDLL" /Yu"wx/wxprec.h" /FD /c
-MTL=midl.exe
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-RSC=rc.exe
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
 # ADD RSC /l 0x409 /i "../include" /d "_DEBUG"
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"../lib/wxbase233d.dll" /pdbtype:sept
-# ADD LINK32 ../lib/zlibd.lib ../lib/regexd.lib kernel32.lib user32.lib advapi32.lib wsock32.lib shell32.lib /nologo /version:2.2 /dll /debug /machine:I386 /out:"../lib/wxbase233d.dll" /pdbtype:sept
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept /out:"../lib/wxbase233d.dll"
+# ADD LINK32 kernel32.lib user32.lib advapi32.lib shell32.lib wsock32.lib ../lib/zlibd.lib ../lib/regexd.lib /nologo /version:2.2 /dll /debug /machine:I386 /pdbtype:sept /out:"../lib/wxbase233d.dll"
 
 !ELSEIF  "$(CFG)" == "wxBase - Win32 Release"
 
@@ -211,10 +197,8 @@ LINK32=link.exe
 # PROP Output_Dir "..\lib"
 # PROP Intermediate_Dir "..\BaseRelease"
 # PROP Target_Dir ""
-CPP=cl.exe
 # ADD BASE CPP /nologo /MD /W4 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
 # ADD CPP /nologo /MD /W4 /O2 /I "../lib/base" /I "../include" /I "./regex" /I "./zlib" /D "NDEBUG" /D wxUSE_GUI=0 /D "WIN32" /D WINVER=0x400 /Yu"wx/wxprec.h" /FD /c
-RSC=rc.exe
 # ADD BASE RSC /l 0x409
 # ADD RSC /l 0x409
 BSC32=bscmake.exe
@@ -222,7 +206,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LIB32=link.exe -lib
 # ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
+# ADD LIB32 /nologo /out:"..\lib\wxbase.lib"
 
 !ELSEIF  "$(CFG)" == "wxBase - Win32 Debug"
 
@@ -236,15 +220,13 @@ LIB32=link.exe -lib
 # PROP Output_Dir "..\lib"
 # PROP Intermediate_Dir "..\BaseDebug"
 # PROP Target_Dir ""
-CPP=cl.exe
 # ADD BASE CPP /nologo /MDd /W4 /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
 # ADD CPP /nologo /MDd /W4 /Zi /Od /I "../lib/based" /I "../include" /I "./regex" /I "./zlib" /D "_DEBUG" /D wxUSE_GUI=0 /D "WIN32" /D "__WXDEBUG__" /D WINVER=0x400 /Yu"wx/wxprec.h" /FD /c
-RSC=rc.exe
 # ADD BASE RSC /l 0x409
 # ADD RSC /l 0x409
 BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
+# ADD BSC32 /nologo /o"../lib/wxbase.bsc"
 LIB32=link.exe -lib
 # ADD BASE LIB32 /nologo
 # ADD LIB32 /nologo /out:"..\lib\wxbased.lib"
@@ -261,6 +243,7 @@ LIB32=link.exe -lib
 # Name "wxBase - Win32 Debug DLL"
 # Name "wxBase - Win32 Release"
 # Name "wxBase - Win32 Debug"
+
 # Begin Group "Common Files"
 
 # PROP Default_Filter ""
@@ -322,11 +305,6 @@ SOURCE=.\common\event.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\common\extended.c
-# SUBTRACT CPP /YX /Yc /Yu
-# End Source File
-# Begin Source File
-
 SOURCE=.\common\ffile.cpp
 # End Source File
 # Begin Source File
@@ -383,10 +361,6 @@ SOURCE=.\common\http.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\common\init.cpp
-# End Source File
-# Begin Source File
-
 SOURCE=.\common\intl.cpp
 # End Source File
 # Begin Source File
@@ -499,11 +473,6 @@ SOURCE=.\common\txtstrm.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\common\unzip.c
-# SUBTRACT CPP /YX /Yc /Yu
-# End Source File
-# Begin Source File
-
 SOURCE=.\common\url.cpp
 # End Source File
 # Begin Source File
@@ -530,18 +499,26 @@ SOURCE=.\common\zipstrm.cpp
 
 SOURCE=.\common\zstream.cpp
 # End Source File
-# End Group
-# Begin Group "MSW Files"
+# Begin Source File
+
+SOURCE=.\common\init.cpp
+# End Source File
 
-# PROP Default_Filter ""
 # Begin Source File
 
-SOURCE=.\msw\dde.cpp
+SOURCE=.\common\extended.c
+# SUBTRACT CPP /YX /Yc /Yu
 # End Source File
 # Begin Source File
 
-SOURCE=.\msw\dir.cpp
+SOURCE=.\common\unzip.c
+# SUBTRACT CPP /YX /Yc /Yu
 # End Source File
+
+# End Group
+# Begin Group "MSW Files"
+
+# PROP Default_Filter ""
 # Begin Source File
 
 SOURCE=.\msw\dummy.cpp
@@ -549,13 +526,11 @@ SOURCE=.\msw\dummy.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\msw\gsocket.c
-# SUBTRACT CPP /YX /Yc /Yu
+SOURCE=.\msw\dde.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\msw\gsockmsw.c
-# SUBTRACT CPP /YX /Yc /Yu
+SOURCE=.\msw\dir.cpp
 # End Source File
 # Begin Source File
 
@@ -593,6 +568,18 @@ SOURCE=.\msw\utilsexc.cpp
 
 SOURCE=.\msw\volume.cpp
 # End Source File
+
+# Begin Source File
+
+SOURCE=.\msw\gsocket.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=.\msw\gsockmsw.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+
 # End Group
 # Begin Group "Headers"
 
@@ -603,9 +590,7 @@ SOURCE=.\msw\volume.cpp
 # Begin Source File
 
 SOURCE=..\include\wx\msw\setup.h
-
 !IF  "$(CFG)" == "wxBase - Win32 Release Unicode DLL"
-
 # Begin Custom Build - Copying $(InputPath) to $(TargetDir)
 InputPath=..\include\wx\msw\setup.h
 
@@ -613,19 +598,14 @@ InputPath=..\include\wx\msw\setup.h
 	copy "$(InputPath)" ..\lib\basedllu\wx\setup.h
 
 # End Custom Build
-
 !ELSEIF  "$(CFG)" == "wxBase - Win32 Debug Unicode DLL"
-
 # Begin Custom Build - Copying $(InputPath) to $(TargetDir)
 InputPath=..\include\wx\msw\setup.h
 
 "../lib/basedllud/wx/setup.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
 	copy "$(InputPath)" ..\lib\basedllud\wx\setup.h
-
 # End Custom Build
-
 !ELSEIF  "$(CFG)" == "wxBase - Win32 Release Unicode"
-
 # Begin Custom Build - Copying $(InputPath) to $(TargetDir)
 InputPath=..\include\wx\msw\setup.h
 
@@ -633,9 +613,7 @@ InputPath=..\include\wx\msw\setup.h
 	copy "$(InputPath)" ..\lib\baseu\wx\setup.h
 
 # End Custom Build
-
 !ELSEIF  "$(CFG)" == "wxBase - Win32 Debug Unicode"
-
 # Begin Custom Build - Copying $(InputPath) to $(TargetDir)
 InputPath=..\include\wx\msw\setup.h
 
@@ -643,9 +621,7 @@ InputPath=..\include\wx\msw\setup.h
 	copy "$(InputPath)" ..\lib\baseud\wx\setup.h
 
 # End Custom Build
-
 !ELSEIF  "$(CFG)" == "wxBase - Win32 Release DLL"
-
 # Begin Custom Build - Copying $(InputPath) to $(TargetDir)
 InputPath=..\include\wx\msw\setup.h
 
@@ -653,19 +629,14 @@ InputPath=..\include\wx\msw\setup.h
 	copy "$(InputPath)" ..\lib\basedll\wx\setup.h
 
 # End Custom Build
-
 !ELSEIF  "$(CFG)" == "wxBase - Win32 Debug DLL"
-
 # Begin Custom Build - Copying $(InputPath) to $(TargetDir)
 InputPath=..\include\wx\msw\setup.h
 
 "../lib/basedlld/wx/setup.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
 	copy "$(InputPath)" ..\lib\basedlld\wx\setup.h
-
 # End Custom Build
-
 !ELSEIF  "$(CFG)" == "wxBase - Win32 Release"
-
 # Begin Custom Build - Copying $(InputPath) to $(TargetDir)
 InputPath=..\include\wx\msw\setup.h
 
@@ -673,9 +644,7 @@ InputPath=..\include\wx\msw\setup.h
 	copy "$(InputPath)" ..\lib\base\wx\setup.h
 
 # End Custom Build
-
 !ELSEIF  "$(CFG)" == "wxBase - Win32 Debug"
-
 # Begin Custom Build - Copying $(InputPath) to $(TargetDir)
 InputPath=..\include\wx\msw\setup.h
 
@@ -683,7 +652,6 @@ InputPath=..\include\wx\msw\setup.h
 	copy "$(InputPath)" ..\lib\based\wx\setup.h
 
 # End Custom Build
-
 !ENDIF 
 
 # End Source File
@@ -1035,6 +1003,7 @@ SOURCE=..\include\wx\zipstrm.h
 
 SOURCE=..\include\wx\zstream.h
 # End Source File
+
 # End Group
 # Begin Group "MSW"
 
@@ -1051,6 +1020,7 @@ SOURCE=..\include\wx\msw\mimetype.h
 
 SOURCE=..\include\wx\msw\winundef.h
 # End Source File
+
 # End Group
 # End Group
 # End Target
diff --git a/src/wxUniv.dsp b/src/wxUniv.dsp
index b168384a27..3852dba726 100644
--- a/src/wxUniv.dsp
+++ b/src/wxUniv.dsp
@@ -49,7 +49,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LIB32=link.exe -lib
 # ADD BASE LIB32 /nologo
-# ADD LIB32 /nologo
+# ADD LIB32 /nologo /out:"..\lib\wxuniv.lib"
 
 !ELSEIF  "$(CFG)" == "wxUniv - Win32 Debug"
 
@@ -221,11 +221,6 @@ SOURCE=.\common\event.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\common\extended.c
-# SUBTRACT CPP /YX /Yc /Yu
-# End Source File
-# Begin Source File
-
 SOURCE=.\common\fddlgcmn.cpp
 # End Source File
 # Begin Source File
@@ -554,11 +549,6 @@ SOURCE=.\common\txtstrm.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\common\unzip.c
-# SUBTRACT CPP /YX /Yc /Yu
-# End Source File
-# Begin Source File
-
 SOURCE=.\common\url.cpp
 # End Source File
 # Begin Source File
@@ -609,6 +599,18 @@ SOURCE=.\common\zipstrm.cpp
 
 SOURCE=.\common\zstream.cpp
 # End Source File
+
+# Begin Source File
+
+SOURCE=.\common\extended.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=.\common\unzip.c
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+
 # End Group
 # Begin Group "Generic Files"
 
@@ -659,10 +661,6 @@ SOURCE=.\generic\fdrepdlg.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\generic\filedlgg.cpp
-# End Source File
-# Begin Source File
-
 SOURCE=.\generic\fontdlgg.cpp
 # End Source File
 # Begin Source File
@@ -793,6 +791,7 @@ SOURCE=.\generic\treelay.cpp
 
 SOURCE=.\generic\wizard.cpp
 # End Source File
+
 # End Group
 # Begin Group "wxHTML Files"
 
@@ -863,10 +862,6 @@ SOURCE=.\html\m_list.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\html\m_meta.cpp
-# End Source File
-# Begin Source File
-
 SOURCE=.\html\m_pre.cpp
 # End Source File
 # Begin Source File
@@ -881,12 +876,18 @@ SOURCE=.\html\m_tables.cpp
 
 SOURCE=.\html\winpars.cpp
 # End Source File
+
 # End Group
 # Begin Group "MSW Files"
 
 # PROP Default_Filter ""
 # Begin Source File
 
+SOURCE=.\msw\dummy.cpp
+# ADD CPP /Yc"wx/wxprec.h"
+# End Source File
+# Begin Source File
+
 SOURCE=.\msw\app.cpp
 # End Source File
 # Begin Source File
@@ -951,12 +952,11 @@ SOURCE=.\msw\dir.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\msw\dummy.cpp
-# ADD CPP /Yc"wx/wxprec.h"
+SOURCE=.\msw\evtloop.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\msw\evtloop.cpp
+SOURCE=.\msw\filedlg.cpp
 # End Source File
 # Begin Source File
 
@@ -980,16 +980,6 @@ SOURCE=.\msw\gdiobj.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\msw\gsocket.c
-# SUBTRACT CPP /YX /Yc /Yu
-# End Source File
-# Begin Source File
-
-SOURCE=.\msw\gsockmsw.c
-# SUBTRACT CPP /YX /Yc /Yu
-# End Source File
-# Begin Source File
-
 SOURCE=.\msw\icon.cpp
 # End Source File
 # Begin Source File
@@ -1060,26 +1050,22 @@ SOURCE=.\msw\volume.cpp
 
 SOURCE=.\msw\window.cpp
 # End Source File
-# End Group
-# Begin Group "Universal Files"
-
-# PROP Default_Filter ""
-# Begin Group "Theme Files"
 
-# PROP Default_Filter ""
 # Begin Source File
 
-SOURCE=.\univ\themes\gtk.cpp
+SOURCE=.\msw\gsocket.c
+# SUBTRACT CPP /YX /Yc /Yu
 # End Source File
 # Begin Source File
 
-SOURCE=.\univ\themes\metal.cpp
+SOURCE=.\msw\gsockmsw.c
+# SUBTRACT CPP /YX /Yc /Yu
 # End Source File
-# Begin Source File
 
-SOURCE=.\univ\themes\win32.cpp
-# End Source File
 # End Group
+# Begin Group "Universal Files"
+
+# PROP Default_Filter ""
 # Begin Source File
 
 SOURCE=.\univ\bmpbuttn.cpp
@@ -1216,6 +1202,24 @@ SOURCE=.\univ\topluniv.cpp
 
 SOURCE=.\univ\winuniv.cpp
 # End Source File
+
+# Begin Group "Theme Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\univ\themes\gtk.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\univ\themes\metal.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\univ\themes\win32.cpp
+# End Source File
+
+# End Group
 # End Group
 # Begin Group "Headers"
 
@@ -1226,9 +1230,7 @@ SOURCE=.\univ\winuniv.cpp
 # Begin Source File
 
 SOURCE=..\include\wx\univ\setup.h
-
 !IF  "$(CFG)" == "wxUniv - Win32 Release"
-
 # Begin Custom Build - Creating lib\univ\wx\setup.h from $(InputPath)
 InputPath=..\include\wx\univ\setup.h
 
@@ -1236,9 +1238,7 @@ InputPath=..\include\wx\univ\setup.h
 	copy "$(InputPath)" ..\lib\univ\wx\setup.h
 
 # End Custom Build
-
 !ELSEIF  "$(CFG)" == "wxUniv - Win32 Debug"
-
 # Begin Custom Build - Creating lib\univd\wx\setup.h from $(InputPath)
 InputPath=..\include\wx\univ\setup.h
 
@@ -1246,9 +1246,7 @@ InputPath=..\include\wx\univ\setup.h
 	copy "$(InputPath)" ..\lib\univd\wx\setup.h
 
 # End Custom Build
-
 !ENDIF 
-
 # End Source File
 # End Group
 # Begin Group "Common"
@@ -2202,6 +2200,7 @@ SOURCE=..\include\wx\zipstrm.h
 
 SOURCE=..\include\wx\zstream.h
 # End Source File
+
 # End Group
 # Begin Group "MSW"
 
@@ -2292,6 +2291,10 @@ SOURCE=..\include\wx\generic\listctrl.h
 # End Source File
 # Begin Source File
 
+SOURCE=..\include\wx\generic\mdig.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\include\wx\generic\msgdlgg.h
 # End Source File
 # Begin Source File
@@ -2366,6 +2369,7 @@ SOURCE=..\include\wx\generic\treectlg.h
 
 SOURCE=..\include\wx\generic\wizard.h
 # End Source File
+
 # End Group
 # Begin Group "HTML"
 
@@ -2422,6 +2426,7 @@ SOURCE=..\include\wx\html\m_templ.h
 
 SOURCE=..\include\wx\html\winpars.h
 # End Source File
+
 # End Group
 # Begin Group "Universal"
 
diff --git a/src/wxWindows.dsp b/src/wxWindows.dsp
index c4c81f4046..163db8eb74 100644
--- a/src/wxWindows.dsp
+++ b/src/wxWindows.dsp
@@ -58,8 +58,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib ..\lib\jpeg.lib ..\lib\tiff.lib ..\lib\png.lib ..\lib\regex.lib ..\lib\zlib.lib /nologo /dll /machine:I386 /out:"../lib/wxmsw233u.dll"
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib odbc32.lib uuid.lib rpcrt4.lib comctl32.lib wsock32.lib winmm.lib ..\lib\jpeg.lib ..\lib\tiff.lib ..\lib\png.lib ..\lib\regex.lib ..\lib\zlib.lib /nologo /version:2.3 /dll /machine:I386 /out:"../lib/wxmsw233u.dll"
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib ..\lib\jpeg.lib ..\lib\tiff.lib ..\lib\png.lib ..\lib\regex.lib ..\lib\zlib.lib /nologo /dll /machine:I386 /out:"../lib/wxmsw234u.dll"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib odbc32.lib uuid.lib rpcrt4.lib comctl32.lib wsock32.lib winmm.lib ..\lib\jpeg.lib ..\lib\tiff.lib ..\lib\png.lib ..\lib\regex.lib ..\lib\zlib.lib /nologo /version:2.3 /dll /machine:I386 /out:"../lib/wxmsw234u.dll"
 
 !ELSEIF  "$(CFG)" == "wxWindows - Win32 Debug Unicode DLL"
 
@@ -84,8 +84,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib ..\lib\jpegd.lib ..\lib\tiffd.lib ..\lib\pngd.lib ..\lib\regexd.lib ..\lib\zlibd.lib /dll /debug /machine:I386 /pdbtype:sept /out:"../lib/wxmsw233ud.dll"
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib odbc32.lib uuid.lib rpcrt4.lib comctl32.lib wsock32.lib winmm.lib ..\lib\jpegd.lib ..\lib\tiffd.lib ..\lib\pngd.lib ..\lib\regexd.lib ..\lib\zlibd.lib /nologo /version:2.3 /dll /debug /machine:I386 /pdbtype:sept /out:"../lib/wxmsw233ud.dll"
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib ..\lib\jpegd.lib ..\lib\tiffd.lib ..\lib\pngd.lib ..\lib\regexd.lib ..\lib\zlibd.lib /dll /debug /machine:I386 /pdbtype:sept /out:"../lib/wxmsw234ud.dll"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib odbc32.lib uuid.lib rpcrt4.lib comctl32.lib wsock32.lib winmm.lib ..\lib\jpegd.lib ..\lib\tiffd.lib ..\lib\pngd.lib ..\lib\regexd.lib ..\lib\zlibd.lib /nologo /version:2.3 /dll /debug /machine:I386 /pdbtype:sept /out:"../lib/wxmsw234ud.dll"
 
 !ELSEIF  "$(CFG)" == "wxWindows - Win32 Release Unicode"
 
@@ -156,8 +156,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib ..\lib\jpeg.lib ..\lib\tiff.lib ..\lib\png.lib ..\lib\regex.lib ..\lib\zlib.lib /nologo /dll /machine:I386 /out:"../lib/wxmsw233.dll"
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib odbc32.lib uuid.lib rpcrt4.lib comctl32.lib wsock32.lib winmm.lib ..\lib\jpeg.lib ..\lib\tiff.lib ..\lib\png.lib ..\lib\regex.lib ..\lib\zlib.lib /nologo /version:2.3 /dll /machine:I386 /out:"../lib/wxmsw233.dll"
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib ..\lib\jpeg.lib ..\lib\tiff.lib ..\lib\png.lib ..\lib\regex.lib ..\lib\zlib.lib /nologo /dll /machine:I386 /out:"../lib/wxmsw234.dll"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib odbc32.lib uuid.lib rpcrt4.lib comctl32.lib wsock32.lib winmm.lib ..\lib\jpeg.lib ..\lib\tiff.lib ..\lib\png.lib ..\lib\regex.lib ..\lib\zlib.lib /nologo /version:2.3 /dll /machine:I386 /out:"../lib/wxmsw234.dll"
 
 !ELSEIF  "$(CFG)" == "wxWindows - Win32 Debug DLL"
 
@@ -182,8 +182,8 @@ BSC32=bscmake.exe
 # ADD BASE BSC32 /nologo
 # ADD BSC32 /nologo
 LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib ..\lib\jpegd.lib ..\lib\tiffd.lib ..\lib\pngd.lib ..\lib\regexd.lib ..\lib\zlibd.lib /dll /debug /machine:I386 /pdbtype:sept /out:"../lib/wxmsw233d.dll"
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib odbc32.lib uuid.lib rpcrt4.lib comctl32.lib wsock32.lib winmm.lib ..\lib\jpegd.lib ..\lib\tiffd.lib ..\lib\pngd.lib ..\lib\regexd.lib ..\lib\zlibd.lib /nologo /version:2.3 /dll /debug /machine:I386 /pdbtype:sept /out:"../lib/wxmsw233d.dll"
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib winmm.lib ..\lib\jpegd.lib ..\lib\tiffd.lib ..\lib\pngd.lib ..\lib\regexd.lib ..\lib\zlibd.lib /dll /debug /machine:I386 /pdbtype:sept /out:"../lib/wxmsw234d.dll"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib odbc32.lib uuid.lib rpcrt4.lib comctl32.lib wsock32.lib winmm.lib ..\lib\jpegd.lib ..\lib\tiffd.lib ..\lib\pngd.lib ..\lib\regexd.lib ..\lib\zlibd.lib /nologo /version:2.3 /dll /debug /machine:I386 /pdbtype:sept /out:"../lib/wxmsw234d.dll"
 
 !ELSEIF  "$(CFG)" == "wxWindows - Win32 Release"
 
@@ -975,10 +975,6 @@ SOURCE=.\html\m_list.cpp
 # End Source File
 # Begin Source File
 
-SOURCE=.\html\m_meta.cpp
-# End Source File
-# Begin Source File
-
 SOURCE=.\html\m_pre.cpp
 # End Source File
 # Begin Source File
@@ -2948,6 +2944,10 @@ SOURCE=..\include\wx\generic\listctrl.h
 # End Source File
 # Begin Source File
 
+SOURCE=..\include\wx\generic\mdig.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\include\wx\generic\msgdlgg.h
 # End Source File
 # Begin Source File
diff --git a/src/wxWindows.pbproj/project.pbxproj b/src/wxWindows.pbproj/project.pbxproj
index 203a80f71b..0af29a650c 100644
--- a/src/wxWindows.pbproj/project.pbxproj
+++ b/src/wxWindows.pbproj/project.pbxproj
@@ -147,8 +147,9 @@
 			isa = PBXShellScriptBuildPhase;
 			neededFileNames = (
 			);
+			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
-			shellScript = "# Create wx include directory if necessary\nif [ ! -d \"$SYMROOT/include/wx\" ]; then\n    mkdir -p \"$SYMROOT/include/wx\" ||Â exit 1\nfi\n# Copy setup0.h to setup.h\nif [ ! -f \"$SYMROOT/include/wx/setup.h\" ]; then\n    cp \"$SRCROOT/../include/wx/mac/setup0.h\" \"$SYMROOT/include/wx/setup.h\" ||Â exit 1\nfi\n# Generate lexer\nif [ ! -f \"$SYMROOT/lexer.c\" -o \"$SYMROOT/lexer.c\" -ot \"$SRCROOT/common/lexer.l\" ]; then\n    flex \"$SRCROOT/common/lexer.l\" ||Â exit 1\n    sed -e \"s;$SRCROOT/common/lex.yy.c;lexer.l;g\" < lex.yy.c | \\\n    sed -e \"s/yy/PROIO_yy/g\"            | \\\n    sed -e \"s/input/PROIO_input/g\"      | \\\n    sed -e \"s/unput/PROIO_unput/g\"      > \"$SYMROOT/lexer.c\" ||Â exit 1\n    rm -f lex.yy.c\nfi\n# Generate parser\nif [ ! -f \"$SYMROOT/parser.c\" -o \"$SYMROOT/parser.c\" -ot \"$SRCROOT/common/parser.y\" ]; then\n    bison -y \"$SRCROOT/common/parser.y\" ||Â exit 1\n    sed -e \"s;$SRCROOT/common/y.tab.c;parser.y;g\" < y.tab.c | \\\n    sed -e \"s/BUFSIZ/5000/g\"            | \\\n    sed -e \"s/YYLMAX 200/YYLMAX 5000/g\" | \\\n    sed -e \"s/yy/PROIO_yy/g\"            | \\\n    sed -e \"s/input/PROIO_input/g\"      | \\\n    sed -e \"s/unput/PROIO_unput/g\"      > \"$SYMROOT/parser.c\" ||Â exit 1\n    rm -f y.tab.c\nfi";
+			shellScript = "# Create wx include directory if necessary\nif [ ! -d \"$SYMROOT/include/wx\" ]; then\n    mkdir -p \"$SYMROOT/include/wx\" || exit 1\nfi\n# Copy setup0.h to setup.h\nif [ ! -f \"$SYMROOT/include/wx/setup.h\" ]; then\n    cp \"$SRCROOT/../include/wx/mac/setup0.h\" \"$SYMROOT/include/wx/setup.h\" || exit 1\nfi\n# Generate lexer\nif [ ! -f \"$SYMROOT/lexer.c\" -o \"$SYMROOT/lexer.c\" -ot \"$SRCROOT/common/lexer.l\" ]; then\n    flex \"$SRCROOT/common/lexer.l\" || exit 1\n    sed -e \"s;$SRCROOT/common/lex.yy.c;lexer.l;g\" < lex.yy.c | \\\n    sed -e \"s/yy/PROIO_yy/g\"            | \\\n    sed -e \"s/input/PROIO_input/g\"      | \\\n    sed -e \"s/unput/PROIO_unput/g\"      > \"$SYMROOT/lexer.c\" || exit 1\n    rm -f lex.yy.c\nfi\n# Generate parser\nif [ ! -f \"$SYMROOT/parser.c\" -o \"$SYMROOT/parser.c\" -ot \"$SRCROOT/common/parser.y\" ]; then\n    bison -y \"$SRCROOT/common/parser.y\" || exit 1\n    sed -e \"s;$SRCROOT/common/y.tab.c;parser.y;g\" < y.tab.c | \\\n    sed -e \"s/BUFSIZ/5000/g\"            | \\\n    sed -e \"s/YYLMAX 200/YYLMAX 5000/g\" | \\\n    sed -e \"s/yy/PROIO_yy/g\"            | \\\n    sed -e \"s/input/PROIO_input/g\"      | \\\n    sed -e \"s/unput/PROIO_unput/g\"      > \"$SYMROOT/parser.c\" || exit 1\n    rm -f y.tab.c\nfi";
 		};
 		F5955E9D02CBA8B501000133 = {
 			fileRef = F5A8619E01FA022C0175ACA7;
@@ -1248,12 +1249,6 @@
 			settings = {
 			};
 		};
-		F5955F5D02CBAB2701000133 = {
-			fileRef = F5A8611401FA022C0175ACA7;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
 		F5955F5E02CBAB2701000133 = {
 			fileRef = F5A8611301FA022C0175ACA7;
 			isa = PBXBuildFile;
@@ -3534,12 +3529,6 @@
 			settings = {
 			};
 		};
-		F5A0C5E802CF70D701000133 = {
-			fileRef = F5A8611401FA022C0175ACA7;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
 		F5A0C5E902CF70D701000133 = {
 			fileRef = F5A8611301FA022C0175ACA7;
 			isa = PBXBuildFile;
@@ -4666,10 +4655,12 @@
 				F5A85C1E01FA022A0175ACA7,
 				F5A85C1F01FA022A0175ACA7,
 				F5A85C2001FA022A0175ACA7,
+				F5CC83D90379C17C01000133,
 				F5A85C2101FA022A0175ACA7,
 				F5A85C2201FA022A0175ACA7,
 				F5A85C2301FA022A0175ACA7,
 				F5A85C2401FA022A0175ACA7,
+				F5CC83DA0379C17C01000133,
 				F5A85C2501FA022A0175ACA7,
 				F5A85C2601FA022A0175ACA7,
 				F5A85C2701FA022A0175ACA7,
@@ -4703,6 +4694,7 @@
 				F5A85C4401FA022A0175ACA7,
 				F5A85C4501FA022A0175ACA7,
 				F5A85C4601FA022A0175ACA7,
+				F5CC83DF0379C20901000133,
 				F5A85C4701FA022A0175ACA7,
 				F5A85C4801FA022A0175ACA7,
 				F5A85C4901FA022A0175ACA7,
@@ -4716,6 +4708,7 @@
 				F5A85C5101FA022A0175ACA7,
 				F5A85C5201FA022A0175ACA7,
 				F5A85C5301FA022A0175ACA7,
+				F5CC83E00379C20901000133,
 				F5A85C5401FA022A0175ACA7,
 				F5A85C5501FA022A0175ACA7,
 				F5A85C5601FA022A0175ACA7,
@@ -4729,6 +4722,7 @@
 				F5A85C5E01FA022A0175ACA7,
 				F5A85C5F01FA022A0175ACA7,
 				F5A85C6001FA022A0175ACA7,
+				F5CC83E10379C20901000133,
 				F5A85C6101FA022A0175ACA7,
 				F5A85C6201FA022A0175ACA7,
 				F5A85C6301FA022A0175ACA7,
@@ -4756,12 +4750,14 @@
 				F5A85CB301FA022A0175ACA7,
 				F5A85CB401FA022A0175ACA7,
 				F5A85CF901FA022B0175ACA7,
+				F5CC83E20379C20901000133,
 				F5A85CFA01FA022B0175ACA7,
 				F5A85CFB01FA022B0175ACA7,
 				F5A85CFC01FA022B0175ACA7,
 				F5A85CFD01FA022B0175ACA7,
 				F5A85CFF01FA022B0175ACA7,
 				F5A85D2101FA022B0175ACA7,
+				F5CC83E30379C20901000133,
 				F5A85D2201FA022B0175ACA7,
 				F5A85D2301FA022B0175ACA7,
 				F5A85D2401FA022B0175ACA7,
@@ -4775,6 +4771,7 @@
 				F5A85D2C01FA022B0175ACA7,
 				F5A85D2D01FA022B0175ACA7,
 				F5A85D2E01FA022B0175ACA7,
+				F5CC83E40379C20901000133,
 				F5A85D2F01FA022B0175ACA7,
 				F5A85D3001FA022B0175ACA7,
 				F5A85D3101FA022B0175ACA7,
@@ -4782,6 +4779,7 @@
 				F5A85D3301FA022B0175ACA7,
 				F5A85D3401FA022B0175ACA7,
 				F5A85D3501FA022B0175ACA7,
+				F5CC83E50379C20901000133,
 				F5A85D3601FA022B0175ACA7,
 				F5A85D3701FA022B0175ACA7,
 				F5A8703A01FA0B7F0175ACA7,
@@ -4800,6 +4798,7 @@
 				F5A85DAE01FA022B0175ACA7,
 				F5A85DAF01FA022B0175ACA7,
 				F5A85DF101FA022B0175ACA7,
+				F5CC83E60379C20901000133,
 				F5A85DF201FA022B0175ACA7,
 				F5A85E9701FA022B0175ACA7,
 				F5A85E9801FA022B0175ACA7,
@@ -4820,6 +4819,7 @@
 				F5A85F0C01FA022B0175ACA7,
 				F5A85F0D01FA022B0175ACA7,
 				F5A85F0E01FA022B0175ACA7,
+				F5CC83E70379C20901000133,
 				F5A85F1401FA022B0175ACA7,
 				F5A85F1501FA022B0175ACA7,
 				F5A85F1601FA022B0175ACA7,
@@ -4863,6 +4863,7 @@
 				F5A85F3D01FA022B0175ACA7,
 				F5A85F3E01FA022B0175ACA7,
 				F5A85F3F01FA022B0175ACA7,
+				F5CC83E80379C20901000133,
 				F5A85F4001FA022B0175ACA7,
 				F5A85F4101FA022B0175ACA7,
 				F5A85F4201FA022B0175ACA7,
@@ -4885,6 +4886,7 @@
 				F5A85F7E01FA022B0175ACA7,
 				F5A85F7F01FA022B0175ACA7,
 				F5A85F8001FA022B0175ACA7,
+				F5CC83E90379C20901000133,
 				F5A85F8201FA022B0175ACA7,
 				F5A85F8301FA022B0175ACA7,
 				F5A85F8401FA022B0175ACA7,
@@ -7004,6 +7006,7 @@
 				F5A8600201FA022B0175ACA7,
 				F5A8600301FA022B0175ACA7,
 				F5A8600401FA022B0175ACA7,
+				F5AC2EDC03803A3601000133,
 				F5A8600501FA022B0175ACA7,
 				F5A8600601FA022B0175ACA7,
 				F5A8600701FA022B0175ACA7,
@@ -7063,12 +7066,14 @@
 				F5A8603F01FA022C0175ACA7,
 				F5A8604001FA022C0175ACA7,
 				F5A8604101FA022C0175ACA7,
+				F5AC2EDD03803A3601000133,
 				F5A8604301FA022C0175ACA7,
 				F5A8604501FA022C0175ACA7,
 				F5A8604601FA022C0175ACA7,
 				F5A8604701FA022C0175ACA7,
 				F5A8604801FA022C0175ACA7,
 				F5A8604901FA022C0175ACA7,
+				F5AC2EDE03803A3601000133,
 				F5A8604A01FA022C0175ACA7,
 				F5A8604B01FA022C0175ACA7,
 				F5A8604C01FA022C0175ACA7,
@@ -8102,7 +8107,6 @@
 				F5A8611101FA022C0175ACA7,
 				F5A8611201FA022C0175ACA7,
 				F5A8611301FA022C0175ACA7,
-				F5A8611401FA022C0175ACA7,
 				F5A8611501FA022C0175ACA7,
 				F5A8611601FA022C0175ACA7,
 				F5A8611701FA022C0175ACA7,
@@ -8191,11 +8195,6 @@
 			path = m_list.cpp;
 			refType = 4;
 		};
-		F5A8611401FA022C0175ACA7 = {
-			isa = PBXFileReference;
-			path = m_meta.cpp;
-			refType = 4;
-		};
 		F5A8611501FA022C0175ACA7 = {
 			isa = PBXFileReference;
 			path = m_pre.cpp;
@@ -9388,6 +9387,51 @@
 			path = ../include/wx/listimpl.cpp;
 			refType = 2;
 		};
+		F5AC2EDC03803A3601000133 = {
+			isa = PBXFileReference;
+			path = execcmn.cpp;
+			refType = 4;
+		};
+		F5AC2EDD03803A3601000133 = {
+			isa = PBXFileReference;
+			path = radiocmn.cpp;
+			refType = 4;
+		};
+		F5AC2EDE03803A3601000133 = {
+			isa = PBXFileReference;
+			path = settcmn.cpp;
+			refType = 4;
+		};
+		F5AC2EE003803A3601000133 = {
+			fileRef = F5AC2EDD03803A3601000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5AC2EE103803A3601000133 = {
+			fileRef = F5AC2EDE03803A3601000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5AC2EE203803A3601000133 = {
+			fileRef = F5AC2EDC03803A3601000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5AC2EE303803A3601000133 = {
+			fileRef = F5AC2EDD03803A3601000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5AC2EE403803A3601000133 = {
+			fileRef = F5AC2EDE03803A3601000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
 		F5C5D3DF01FA2D0A01D0F0BA = {
 			isa = PBXFrameworkReference;
 			name = System.framework;
@@ -9417,7 +9461,6 @@
 				OTHER_LDFLAGS = "";
 				OTHER_LIBTOOL_FLAGS = "";
 				OTHER_REZFLAGS = "-d __UNIX__";
-				PRECOMPILE_PREFIX_HEADER = YES;
 				PREFIX_HEADER = ../include/wx_pb.h;
 				PRODUCT_NAME = libwx_macd.a;
 				REZ_EXECUTABLE = NO;
@@ -9438,6 +9481,7 @@
 				F5FD822202CCECE601000133,
 			);
 			isa = PBXHeadersBuildPhase;
+			runOnlyForDeploymentPostprocessing = 0;
 		};
 		F5C6AC4A020C2B1001000133 = {
 			buildActionMask = 2147483647;
@@ -9622,7 +9666,6 @@
 				F5955F5A02CBAB2501000133,
 				F5955F5B02CBAB2601000133,
 				F5955F5C02CBAB2601000133,
-				F5955F5D02CBAB2701000133,
 				F5955F5E02CBAB2701000133,
 				F5955F5F02CBAB2801000133,
 				F5955F6002CBAB2801000133,
@@ -9810,7 +9853,6 @@
 				F595601602CBAB9801000133,
 				F595601702CBAB9801000133,
 				F595601802CBAB9901000133,
-				F5D0E30A02CCEA1D01000133,
 				F5F5A6A002CDB27401000133,
 				F5F5A6A502CDB6CA01000133,
 				F5F5A6A602CDB6CA01000133,
@@ -9819,14 +9861,18 @@
 				F5F5A6A902CDB91E01000133,
 				F5F5A6AA02CDB92001000133,
 				F58E04FE02F11FA701A8020C,
+				F5AC2EE003803A3601000133,
+				F5AC2EE103803A3601000133,
 			);
 			isa = PBXSourcesBuildPhase;
+			runOnlyForDeploymentPostprocessing = 0;
 		};
 		F5C6AC4B020C2B1001000133 = {
 			buildActionMask = 2147483647;
 			files = (
 			);
 			isa = PBXFrameworksBuildPhase;
+			runOnlyForDeploymentPostprocessing = 0;
 		};
 		F5C6AC4C020C2B1001000133 = {
 			buildActionMask = 2147483647;
@@ -9836,6 +9882,178 @@
 				F5955E9F02CBA8B901000133,
 			);
 			isa = PBXRezBuildPhase;
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F5CC83C20379B1A901000133 = {
+			buildActionMask = 2147483647;
+			files = (
+			);
+			generatedFileNames = (
+			);
+			isa = PBXShellScriptBuildPhase;
+			neededFileNames = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "# Create wx include directory if necessary\nif [ ! -d \"$SYMROOT/include/wx\" ]; then\n    mkdir -p \"$SYMROOT/include/wx\" || exit 1\nfi\n# Copy setup0.h to setup.h\nif [ ! -f \"$SYMROOT/include/wx/setup.h\" ]; then\n    cp \"$SRCROOT/../include/wx/mac/setup0.h\" \"$SYMROOT/include/wx/setup.h\" || exit 1\nfi\n# Generate lexer\nif [ ! -f \"$SYMROOT/lexer.c\" -o \"$SYMROOT/lexer.c\" -ot \"$SRCROOT/common/lexer.l\" ]; then\n    flex \"$SRCROOT/common/lexer.l\" || exit 1\n    sed -e \"s;$SRCROOT/common/lex.yy.c;lexer.l;g\" < lex.yy.c | \\\n    sed -e \"s/yy/PROIO_yy/g\"            | \\\n    sed -e \"s/input/PROIO_input/g\"      | \\\n    sed -e \"s/unput/PROIO_unput/g\"      > \"$SYMROOT/lexer.c\" || exit 1\n    rm -f lex.yy.c\nfi\n# Generate parser\nif [ ! -f \"$SYMROOT/parser.c\" -o \"$SYMROOT/parser.c\" -ot \"$SRCROOT/common/parser.y\" ]; then\n    bison -y \"$SRCROOT/common/parser.y\" || exit 1\n    sed -e \"s;$SRCROOT/common/y.tab.c;parser.y;g\" < y.tab.c | \\\n    sed -e \"s/BUFSIZ/5000/g\"            | \\\n    sed -e \"s/YYLMAX 200/YYLMAX 5000/g\" | \\\n    sed -e \"s/yy/PROIO_yy/g\"            | \\\n    sed -e \"s/input/PROIO_input/g\"      | \\\n    sed -e \"s/unput/PROIO_unput/g\"      > \"$SYMROOT/parser.c\" || exit 1\n    rm -f y.tab.c\nfi";
+		};
+		F5CC83C30379B20901000133 = {
+			fileRef = F5A8604501FA022C0175ACA7;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5CC83D90379C17C01000133 = {
+			isa = PBXFileReference;
+			path = artprov.h;
+			refType = 4;
+		};
+		F5CC83DA0379C17C01000133 = {
+			isa = PBXFileReference;
+			path = build.h;
+			refType = 4;
+		};
+		F5CC83DD0379C17C01000133 = {
+			fileRef = F5CC83D90379C17C01000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5CC83DE0379C17C01000133 = {
+			fileRef = F5CC83DA0379C17C01000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5CC83DF0379C20901000133 = {
+			isa = PBXFileReference;
+			name = dcbuffer.h;
+			path = /Volumes/Users/gilles/cvs/wxWindows/include/wx/dcbuffer.h;
+			refType = 0;
+		};
+		F5CC83E00379C20901000133 = {
+			isa = PBXFileReference;
+			name = display.h;
+			path = /Volumes/Users/gilles/cvs/wxWindows/include/wx/display.h;
+			refType = 0;
+		};
+		F5CC83E10379C20901000133 = {
+			isa = PBXFileReference;
+			name = features.h;
+			path = /Volumes/Users/gilles/cvs/wxWindows/include/wx/features.h;
+			refType = 0;
+		};
+		F5CC83E20379C20901000133 = {
+			isa = PBXFileReference;
+			name = hashmap.h;
+			path = /Volumes/Users/gilles/cvs/wxWindows/include/wx/hashmap.h;
+			refType = 0;
+		};
+		F5CC83E30379C20901000133 = {
+			isa = PBXFileReference;
+			name = iconbndl.h;
+			path = /Volumes/Users/gilles/cvs/wxWindows/include/wx/iconbndl.h;
+			refType = 0;
+		};
+		F5CC83E40379C20901000133 = {
+			isa = PBXFileReference;
+			name = ipc.h;
+			path = /Volumes/Users/gilles/cvs/wxWindows/include/wx/ipc.h;
+			refType = 0;
+		};
+		F5CC83E50379C20901000133 = {
+			isa = PBXFileReference;
+			name = listbase.h;
+			path = /Volumes/Users/gilles/cvs/wxWindows/include/wx/listbase.h;
+			refType = 0;
+		};
+		F5CC83E60379C20901000133 = {
+			isa = PBXFileReference;
+			name = msgout.h;
+			path = /Volumes/Users/gilles/cvs/wxWindows/include/wx/msgout.h;
+			refType = 0;
+		};
+		F5CC83E70379C20901000133 = {
+			isa = PBXFileReference;
+			name = ptr_scpd.h;
+			path = /Volumes/Users/gilles/cvs/wxWindows/include/wx/ptr_scpd.h;
+			refType = 0;
+		};
+		F5CC83E80379C20901000133 = {
+			isa = PBXFileReference;
+			path = thrimpl.cpp;
+			refType = 4;
+		};
+		F5CC83E90379C20901000133 = {
+			isa = PBXFileReference;
+			path = volume.h;
+			refType = 4;
+		};
+		F5CC83F50379C20901000133 = {
+			fileRef = F5CC83DF0379C20901000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5CC83F60379C20901000133 = {
+			fileRef = F5CC83E00379C20901000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5CC83F70379C20901000133 = {
+			fileRef = F5CC83E10379C20901000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5CC83F80379C20901000133 = {
+			fileRef = F5CC83E20379C20901000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5CC83F90379C20901000133 = {
+			fileRef = F5CC83E30379C20901000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5CC83FA0379C20901000133 = {
+			fileRef = F5CC83E40379C20901000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5CC83FB0379C20901000133 = {
+			fileRef = F5CC83E50379C20901000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5CC83FC0379C20901000133 = {
+			fileRef = F5CC83E60379C20901000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5CC83FD0379C20901000133 = {
+			fileRef = F5CC83E70379C20901000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5CC83FE0379C20901000133 = {
+			fileRef = F5CC83E80379C20901000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		F5CC83FF0379C20901000133 = {
+			fileRef = F5CC83E90379C20901000133;
+			isa = PBXBuildFile;
+			settings = {
+			};
 		};
 		F5D00F2901FDFB8401000133 = {
 			isa = PBXFileReference;
@@ -9854,12 +10072,6 @@
 			path = build/parser.c;
 			refType = 2;
 		};
-		F5D0E30A02CCEA1D01000133 = {
-			fileRef = F5D0E30802CCEA1D01000133;
-			isa = PBXBuildFile;
-			settings = {
-			};
-		};
 		F5F5A69F02CDB27401000133 = {
 			isa = PBXFileReference;
 			name = hashmap.cpp;
@@ -9935,8 +10147,21 @@
 		F5F5A6B602CDD62501000133 = {
 			buildActionMask = 2147483647;
 			files = (
+				F5CC83DD0379C17C01000133,
+				F5CC83DE0379C17C01000133,
+				F5CC83F50379C20901000133,
+				F5CC83F60379C20901000133,
+				F5CC83F70379C20901000133,
+				F5CC83F80379C20901000133,
+				F5CC83F90379C20901000133,
+				F5CC83FA0379C20901000133,
+				F5CC83FB0379C20901000133,
+				F5CC83FC0379C20901000133,
+				F5CC83FD0379C20901000133,
+				F5CC83FF0379C20901000133,
 			);
 			isa = PBXHeadersBuildPhase;
+			runOnlyForDeploymentPostprocessing = 0;
 		};
 		F5F5A6B702CDD62501000133 = {
 			buildActionMask = 2147483647;
@@ -10134,7 +10359,6 @@
 				F5A0C5E502CF70D501000133,
 				F5A0C5E602CF70D601000133,
 				F5A0C5E702CF70D601000133,
-				F5A0C5E802CF70D701000133,
 				F5A0C5E902CF70D701000133,
 				F5A0C5EA02CF70D701000133,
 				F5A0C5EB02CF70D801000133,
@@ -10318,14 +10542,21 @@
 				F5A0C6A102CF714801000133,
 				F5A0C6A202CF714801000133,
 				F58E04FF02F11FA701A8020C,
+				F5CC83C30379B20901000133,
+				F5CC83FE0379C20901000133,
+				F5AC2EE203803A3601000133,
+				F5AC2EE303803A3601000133,
+				F5AC2EE403803A3601000133,
 			);
 			isa = PBXSourcesBuildPhase;
+			runOnlyForDeploymentPostprocessing = 0;
 		};
 		F5F5A6B802CDD62501000133 = {
 			buildActionMask = 2147483647;
 			files = (
 			);
 			isa = PBXFrameworksBuildPhase;
+			runOnlyForDeploymentPostprocessing = 0;
 		};
 		F5F5A6B902CDD62501000133 = {
 			buildActionMask = 2147483647;
@@ -10335,9 +10566,11 @@
 				F5A0C69F02CF714701000133,
 			);
 			isa = PBXRezBuildPhase;
+			runOnlyForDeploymentPostprocessing = 0;
 		};
 		F5F5A6BA02CDD62501000133 = {
 			buildPhases = (
+				F5CC83C20379B1A901000133,
 				F5F5A6B602CDD62501000133,
 				F5F5A6B702CDD62501000133,
 				F5F5A6B802CDD62501000133,
@@ -10354,7 +10587,6 @@
 				OTHER_LDFLAGS = "";
 				OTHER_LIBTOOL_FLAGS = "";
 				OTHER_REZFLAGS = "-d __UNIX__";
-				PRECOMPILE_PREFIX_HEADER = YES;
 				PREFIX_HEADER = ../include/wx_pb.h;
 				PRODUCT_NAME = libwx_mac.a;
 				REZ_EXECUTABLE = NO;
diff --git a/src/wxWindowsM7.mcp b/src/wxWindowsM7.mcp
index c88d91f436a5cdbabc3e14a3e21389e7c1435e4c..7e0453d73d5b556c4a2401c02c281e104f80ee3e 100644
GIT binary patch
delta 12522
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

delta 13416
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

diff --git a/src/wxWindowsW7.xml b/src/wxWindowsW7.xml
index c18136deb3..bb7a6a2cc9 100644
--- a/src/wxWindowsW7.xml
+++ b/src/wxWindowsW7.xml
@@ -2484,15 +2484,6 @@
                     <FILEKIND>Text</FILEKIND>
                     <FILEFLAGS>Debug</FILEFLAGS>
                 </FILE>
-                <FILE>
-                    <PATHTYPE>PathRelative</PATHTYPE>
-                    <PATHROOT>Project</PATHROOT>
-                    <ACCESSPATH>html</ACCESSPATH>
-                    <PATH>m_meta.cpp</PATH>
-                    <PATHFORMAT>Windows</PATHFORMAT>
-                    <FILEKIND>Text</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
                 <FILE>
                     <PATHTYPE>PathRelative</PATHTYPE>
                     <PATHROOT>Project</PATHROOT>
@@ -3560,6 +3551,15 @@
                     <FILEKIND>Text</FILEKIND>
                     <FILEFLAGS>Debug</FILEFLAGS>
                 </FILE>
+                <FILE>
+                    <PATHTYPE>PathRelative</PATHTYPE>
+                    <PATHROOT>Project</PATHROOT>
+                    <ACCESSPATH>common</ACCESSPATH>
+                    <PATH>settcmn.cpp</PATH>
+                    <PATHFORMAT>Windows</PATHFORMAT>
+                    <FILEKIND>Text</FILEKIND>
+                    <FILEFLAGS>Debug</FILEFLAGS>
+                </FILE>
             </FILELIST>
             <LINKORDER>
                 <FILEREF>
@@ -4269,6 +4269,13 @@
                     <PATH>sckstrm.cpp</PATH>
                     <PATHFORMAT>Windows</PATHFORMAT>
                 </FILEREF>
+                <FILEREF>
+                    <PATHTYPE>PathRelative</PATHTYPE>
+                    <PATHROOT>Project</PATHROOT>
+                    <ACCESSPATH>common</ACCESSPATH>
+                    <PATH>settcmn.cpp</PATH>
+                    <PATHFORMAT>Windows</PATHFORMAT>
+                </FILEREF>
                 <FILEREF>
                     <PATHTYPE>PathRelative</PATHTYPE>
                     <PATHROOT>Project</PATHROOT>
@@ -4815,13 +4822,6 @@
                     <PATH>m_list.cpp</PATH>
                     <PATHFORMAT>Windows</PATHFORMAT>
                 </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>PathRelative</PATHTYPE>
-                    <PATHROOT>Project</PATHROOT>
-                    <ACCESSPATH>html</ACCESSPATH>
-                    <PATH>m_meta.cpp</PATH>
-                    <PATHFORMAT>Windows</PATHFORMAT>
-                </FILEREF>
                 <FILEREF>
                     <PATHTYPE>PathRelative</PATHTYPE>
                     <PATHROOT>Project</PATHROOT>
@@ -12795,15 +12795,6 @@
                     <FILEKIND>Text</FILEKIND>
                     <FILEFLAGS>Debug</FILEFLAGS>
                 </FILE>
-                <FILE>
-                    <PATHTYPE>PathRelative</PATHTYPE>
-                    <PATHROOT>Project</PATHROOT>
-                    <ACCESSPATH>html</ACCESSPATH>
-                    <PATH>m_meta.cpp</PATH>
-                    <PATHFORMAT>Windows</PATHFORMAT>
-                    <FILEKIND>Text</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
                 <FILE>
                     <PATHTYPE>PathRelative</PATHTYPE>
                     <PATHROOT>Project</PATHROOT>
@@ -13889,6 +13880,15 @@
                     <FILEKIND>Text</FILEKIND>
                     <FILEFLAGS>Debug</FILEFLAGS>
                 </FILE>
+                <FILE>
+                    <PATHTYPE>PathRelative</PATHTYPE>
+                    <PATHROOT>Project</PATHROOT>
+                    <ACCESSPATH>common</ACCESSPATH>
+                    <PATH>settcmn.cpp</PATH>
+                    <PATHFORMAT>Windows</PATHFORMAT>
+                    <FILEKIND>Text</FILEKIND>
+                    <FILEFLAGS>Debug</FILEFLAGS>
+                </FILE>
             </FILELIST>
             <LINKORDER>
                 <FILEREF>
@@ -14598,6 +14598,13 @@
                     <PATH>sckstrm.cpp</PATH>
                     <PATHFORMAT>Windows</PATHFORMAT>
                 </FILEREF>
+                <FILEREF>
+                    <PATHTYPE>PathRelative</PATHTYPE>
+                    <PATHROOT>Project</PATHROOT>
+                    <ACCESSPATH>common</ACCESSPATH>
+                    <PATH>settcmn.cpp</PATH>
+                    <PATHFORMAT>Windows</PATHFORMAT>
+                </FILEREF>
                 <FILEREF>
                     <PATHTYPE>PathRelative</PATHTYPE>
                     <PATHROOT>Project</PATHROOT>
@@ -15144,13 +15151,6 @@
                     <PATH>m_list.cpp</PATH>
                     <PATHFORMAT>Windows</PATHFORMAT>
                 </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>PathRelative</PATHTYPE>
-                    <PATHROOT>Project</PATHROOT>
-                    <ACCESSPATH>html</ACCESSPATH>
-                    <PATH>m_meta.cpp</PATH>
-                    <PATHFORMAT>Windows</PATHFORMAT>
-                </FILEREF>
                 <FILEREF>
                     <PATHTYPE>PathRelative</PATHTYPE>
                     <PATHROOT>Project</PATHROOT>
@@ -17900,6 +17900,14 @@
                 <PATH>sckstrm.cpp</PATH>
                 <PATHFORMAT>Windows</PATHFORMAT>
             </FILEREF>
+            <FILEREF>
+                <TARGETNAME>wxlib Win32 debug</TARGETNAME>
+                <PATHTYPE>PathRelative</PATHTYPE>
+                <PATHROOT>Project</PATHROOT>
+                <ACCESSPATH>common</ACCESSPATH>
+                <PATH>settcmn.cpp</PATH>
+                <PATHFORMAT>Windows</PATHFORMAT>
+            </FILEREF>
             <FILEREF>
                 <TARGETNAME>wxlib Win32 debug</TARGETNAME>
                 <PATHTYPE>PathRelative</PATHTYPE>
@@ -18563,14 +18571,6 @@
                     <PATH>m_list.cpp</PATH>
                     <PATHFORMAT>Windows</PATHFORMAT>
                 </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>wxlib Win32 debug</TARGETNAME>
-                    <PATHTYPE>PathRelative</PATHTYPE>
-                    <PATHROOT>Project</PATHROOT>
-                    <ACCESSPATH>html</ACCESSPATH>
-                    <PATH>m_meta.cpp</PATH>
-                    <PATHFORMAT>Windows</PATHFORMAT>
-                </FILEREF>
                 <FILEREF>
                     <TARGETNAME>wxlib Win32 debug</TARGETNAME>
                     <PATHTYPE>PathRelative</PATHTYPE>
diff --git a/src/wxwindowsM5.xml b/src/wxwindowsM5.xml
index 84e65c1e06..b8ed6d1d98 100644
--- a/src/wxwindowsM5.xml
+++ b/src/wxwindowsM5.xml
@@ -153,6 +153,15 @@
                         <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
                         <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
                     </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:regex:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
                     <SETTING>
                         <SETTING><NAME>SearchPath</NAME>
                             <SETTING><NAME>Path</NAME><VALUE>:tiff:</VALUE></SETTING>
@@ -606,9 +615,9 @@
                 <SETTING><NAME>MWMerge_MacOS_copyResources</NAME><VALUE>1</VALUE></SETTING>
                 <SETTING><NAME>MWMerge_MacOS_skipResources</NAME>
                     <SETTING><VALUE></VALUE></SETTING>
-                    <SETTING><VALUE>þÀ</VALUE></SETTING>
-                    <SETTING><VALUE>%#H</VALUE></SETTING>
-                    <SETTING><VALUE>%8*</VALUE></SETTING>
+                    <SETTING><VALUE></VALUE></SETTING>
+                    <SETTING><VALUE>	ñ</VALUE></SETTING>
+                    <SETTING><VALUE></VALUE></SETTING>
                 </SETTING>
 
                 <!-- Settings for "PPC CodeGen" panel -->
@@ -2643,15 +2652,6 @@
                     <FILEKIND>Text</FILEKIND>
                     <FILEFLAGS>Debug</FILEFLAGS>
                 </FILE>
-                <FILE>
-                    <PATHTYPE>PathRelative</PATHTYPE>
-                    <PATHROOT>Project</PATHROOT>
-                    <ACCESSPATH>:html:</ACCESSPATH>
-                    <PATH>:m_meta.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Text</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
                 <FILE>
                     <PATHTYPE>PathRelative</PATHTYPE>
                     <PATHROOT>Project</PATHROOT>
@@ -4806,13 +4806,6 @@
                     <PATH>:treectlg.cpp</PATH>
                     <PATHFORMAT>MacOS</PATHFORMAT>
                 </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>PathRelative</PATHTYPE>
-                    <PATHROOT>Project</PATHROOT>
-                    <ACCESSPATH>:html:</ACCESSPATH>
-                    <PATH>:m_meta.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
                 <FILEREF>
                     <PATHTYPE>PathRelative</PATHTYPE>
                     <PATHROOT>Project</PATHROOT>
@@ -5440,6 +5433,15 @@
                         <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
                         <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
                     </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:regex:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
                     <SETTING>
                         <SETTING><NAME>SearchPath</NAME>
                             <SETTING><NAME>Path</NAME><VALUE>:tiff:</VALUE></SETTING>
@@ -5875,9 +5877,9 @@
                 <SETTING><NAME>MWMerge_MacOS_copyResources</NAME><VALUE>1</VALUE></SETTING>
                 <SETTING><NAME>MWMerge_MacOS_skipResources</NAME>
                     <SETTING><VALUE></VALUE></SETTING>
-                    <SETTING><VALUE>þÀ</VALUE></SETTING>
-                    <SETTING><VALUE>%#H</VALUE></SETTING>
-                    <SETTING><VALUE>%8*</VALUE></SETTING>
+                    <SETTING><VALUE></VALUE></SETTING>
+                    <SETTING><VALUE>	ñ</VALUE></SETTING>
+                    <SETTING><VALUE></VALUE></SETTING>
                 </SETTING>
 
                 <!-- Settings for "PPC CodeGen" panel -->
@@ -8303,13 +8305,6 @@
                     <FILEKIND>Text</FILEKIND>
                     <FILEFLAGS>Debug</FILEFLAGS>
                 </FILE>
-                <FILE>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>m_meta.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Text</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
                 <FILE>
                     <PATHTYPE>Name</PATHTYPE>
                     <PATH>m_pre.cpp</PATH>
@@ -10332,11 +10327,6 @@
                     <PATH>m_list.cpp</PATH>
                     <PATHFORMAT>MacOS</PATHFORMAT>
                 </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>Name</PATHTYPE>
-                    <PATH>m_meta.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
                 <FILEREF>
                     <PATHTYPE>Name</PATHTYPE>
                     <PATH>m_pre.cpp</PATH>
@@ -10700,9 +10690,9 @@
                 <SETTING><NAME>MWMerge_MacOS_copyResources</NAME><VALUE>1</VALUE></SETTING>
                 <SETTING><NAME>MWMerge_MacOS_skipResources</NAME>
                     <SETTING><VALUE></VALUE></SETTING>
-                    <SETTING><VALUE>þÀ</VALUE></SETTING>
-                    <SETTING><VALUE>%#H</VALUE></SETTING>
-                    <SETTING><VALUE>%8*</VALUE></SETTING>
+                    <SETTING><VALUE></VALUE></SETTING>
+                    <SETTING><VALUE>	ñ</VALUE></SETTING>
+                    <SETTING><VALUE></VALUE></SETTING>
                 </SETTING>
 
                 <!-- Settings for "PPC CodeGen" panel -->
@@ -11332,6 +11322,15 @@
                         <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
                         <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
                     </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:regex:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
                     <SETTING>
                         <SETTING><NAME>SearchPath</NAME>
                             <SETTING><NAME>Path</NAME><VALUE>:tiff:</VALUE></SETTING>
@@ -11776,9 +11775,9 @@
                 <SETTING><NAME>MWMerge_MacOS_copyResources</NAME><VALUE>1</VALUE></SETTING>
                 <SETTING><NAME>MWMerge_MacOS_skipResources</NAME>
                     <SETTING><VALUE></VALUE></SETTING>
-                    <SETTING><VALUE>þÀ</VALUE></SETTING>
-                    <SETTING><VALUE>%#H</VALUE></SETTING>
-                    <SETTING><VALUE>%8*</VALUE></SETTING>
+                    <SETTING><VALUE></VALUE></SETTING>
+                    <SETTING><VALUE>	ñ</VALUE></SETTING>
+                    <SETTING><VALUE></VALUE></SETTING>
                 </SETTING>
 
                 <!-- Settings for "PPC CodeGen" panel -->
@@ -13804,15 +13803,6 @@
                     <FILEKIND>Text</FILEKIND>
                     <FILEFLAGS>Debug</FILEFLAGS>
                 </FILE>
-                <FILE>
-                    <PATHTYPE>PathRelative</PATHTYPE>
-                    <PATHROOT>Project</PATHROOT>
-                    <ACCESSPATH>:html:</ACCESSPATH>
-                    <PATH>:m_meta.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Text</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
                 <FILE>
                     <PATHTYPE>PathRelative</PATHTYPE>
                     <PATHROOT>Project</PATHROOT>
@@ -15967,13 +15957,6 @@
                     <PATH>:treectlg.cpp</PATH>
                     <PATHFORMAT>MacOS</PATHFORMAT>
                 </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>PathRelative</PATHTYPE>
-                    <PATHROOT>Project</PATHROOT>
-                    <ACCESSPATH>:html:</ACCESSPATH>
-                    <PATH>:m_meta.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
                 <FILEREF>
                     <PATHTYPE>PathRelative</PATHTYPE>
                     <PATHROOT>Project</PATHROOT>
@@ -16597,6 +16580,15 @@
                         <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
                         <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
                     </SETTING>
+                    <SETTING>
+                        <SETTING><NAME>SearchPath</NAME>
+                            <SETTING><NAME>Path</NAME><VALUE>:regex:</VALUE></SETTING>
+                            <SETTING><NAME>PathFormat</NAME><VALUE>MacOS</VALUE></SETTING>
+                            <SETTING><NAME>PathRoot</NAME><VALUE>Project</VALUE></SETTING>
+                        </SETTING>
+                        <SETTING><NAME>Recursive</NAME><VALUE>true</VALUE></SETTING>
+                        <SETTING><NAME>HostFlags</NAME><VALUE>All</VALUE></SETTING>
+                    </SETTING>
                     <SETTING>
                         <SETTING><NAME>SearchPath</NAME>
                             <SETTING><NAME>Path</NAME><VALUE>:tiff:</VALUE></SETTING>
@@ -17041,9 +17033,9 @@
                 <SETTING><NAME>MWMerge_MacOS_copyResources</NAME><VALUE>1</VALUE></SETTING>
                 <SETTING><NAME>MWMerge_MacOS_skipResources</NAME>
                     <SETTING><VALUE></VALUE></SETTING>
-                    <SETTING><VALUE>þÀ</VALUE></SETTING>
-                    <SETTING><VALUE>%#H</VALUE></SETTING>
-                    <SETTING><VALUE>%8*</VALUE></SETTING>
+                    <SETTING><VALUE></VALUE></SETTING>
+                    <SETTING><VALUE>	ñ</VALUE></SETTING>
+                    <SETTING><VALUE></VALUE></SETTING>
                 </SETTING>
 
                 <!-- Settings for "PPC CodeGen" panel -->
@@ -19073,15 +19065,6 @@
                     <FILEKIND>Text</FILEKIND>
                     <FILEFLAGS>Debug</FILEFLAGS>
                 </FILE>
-                <FILE>
-                    <PATHTYPE>PathRelative</PATHTYPE>
-                    <PATHROOT>Project</PATHROOT>
-                    <ACCESSPATH>:html:</ACCESSPATH>
-                    <PATH>:m_meta.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                    <FILEKIND>Text</FILEKIND>
-                    <FILEFLAGS>Debug</FILEFLAGS>
-                </FILE>
                 <FILE>
                     <PATHTYPE>PathRelative</PATHTYPE>
                     <PATHROOT>Project</PATHROOT>
@@ -21238,13 +21221,6 @@
                     <PATH>:treectlg.cpp</PATH>
                     <PATHFORMAT>MacOS</PATHFORMAT>
                 </FILEREF>
-                <FILEREF>
-                    <PATHTYPE>PathRelative</PATHTYPE>
-                    <PATHROOT>Project</PATHROOT>
-                    <ACCESSPATH>:html:</ACCESSPATH>
-                    <PATH>:m_meta.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
                 <FILEREF>
                     <PATHTYPE>PathRelative</PATHTYPE>
                     <PATHROOT>Project</PATHROOT>
@@ -23695,14 +23671,6 @@
                     <PATH>:m_list.cpp</PATH>
                     <PATHFORMAT>MacOS</PATHFORMAT>
                 </FILEREF>
-                <FILEREF>
-                    <TARGETNAME>Classic Debug</TARGETNAME>
-                    <PATHTYPE>PathRelative</PATHTYPE>
-                    <PATHROOT>Project</PATHROOT>
-                    <ACCESSPATH>:html:</ACCESSPATH>
-                    <PATH>:m_meta.cpp</PATH>
-                    <PATHFORMAT>MacOS</PATHFORMAT>
-                </FILEREF>
                 <FILEREF>
                     <TARGETNAME>Classic Debug</TARGETNAME>
                     <PATHTYPE>PathRelative</PATHTYPE>
diff --git a/src/x11/app.cpp b/src/x11/app.cpp
index 74fb19c9af..fbbbdd1d50 100644
--- a/src/x11/app.cpp
+++ b/src/x11/app.cpp
@@ -26,6 +26,7 @@
 #include "wx/intl.h"
 #include "wx/evtloop.h"
 #include "wx/timer.h"
+#include "wx/filename.h"
 
 #include "wx/univ/theme.h"
 #include "wx/univ/renderer.h"
@@ -57,8 +58,6 @@ wxApp *wxTheApp = NULL;
 
 // This is set within wxEntryStart -- too early on
 // to put these in wxTheApp
-static int g_newArgc = 0;
-static wxChar** g_newArgv = NULL;
 static bool g_showIconic = FALSE;
 static wxSize g_initialSize = wxDefaultSize;
 
@@ -136,10 +135,6 @@ bool wxApp::Initialize()
 
 void wxApp::CleanUp()
 {
-    if (g_newArgv)
-        delete[] g_newArgv;
-    g_newArgv = NULL;
-
     delete wxWidgetHashTable;
     wxWidgetHashTable = NULL;
     delete wxClientWidgetHashTable;
@@ -197,20 +192,13 @@ int wxEntryStart( int& argc, char *argv[] )
 #endif
 #endif // __WXDEBUG__
 
-    wxString displayName;
+    char *displayName = NULL;
     bool syncDisplay = FALSE;
 
-    // Parse the arguments.
-    // We can't use wxCmdLineParser or OnInitCmdLine and friends because
-    // we have to create the Display earlier. If we can find a way to
-    // use the wxAppBase API then I'll be quite happy to change it.
-    g_newArgv = new wxChar*[argc + 1];
-    g_newArgc = 0;
     int i;
     for (i = 0; i < argc; i++)
     {
-        wxString arg(argv[i]);
-        if (arg == wxT("-display"))
+        if (strcmp( argv[i], "-display") == 0)
         {
             if (i < (argc - 1))
             {
@@ -219,16 +207,15 @@ int wxEntryStart( int& argc, char *argv[] )
                 continue;
             }
         }
-        else if (arg == wxT("-geometry"))
+        else if (strcmp( argv[i], "-geometry") == 0)
         {
             if (i < (argc - 1))
             {
                 i ++;
-                wxString windowGeometry = argv[i];
                 int w, h;
-                if (wxSscanf(windowGeometry.c_str(), _T("%dx%d"), &w, &h) != 2)
+                if (sscanf(argv[i], "%dx%d", &w, &h) != 2)
                 {
-                    wxLogError(_("Invalid geometry specification '%s'"), windowGeometry.c_str());
+                    wxLogError( _("Invalid geometry specification '%s'"), wxString::FromAscii(argv[i]).c_str() );
                 }
                 else
                 {
@@ -237,30 +224,22 @@ int wxEntryStart( int& argc, char *argv[] )
                 continue;
             }
         }
-        else if (arg == wxT("-sync"))
+        else if (strcmp( argv[i], "-sync") == 0)
         {
             syncDisplay = TRUE;
             continue;
         }
-        else if (arg == wxT("-iconic"))
+        else if (strcmp( argv[i], "-iconic") == 0)
         {
             g_showIconic = TRUE;
 
             continue;
         }
 
-        // Not eaten by wxWindows, so pass through
-        g_newArgv[g_newArgc] = argv[i];
-        g_newArgc ++;
     }
-    g_newArgv[g_newArgc] = NULL;
-    
-    Display* xdisplay = NULL;
-    if (displayName.IsEmpty())
-        xdisplay = XOpenDisplay(NULL);
-    else
-        xdisplay = XOpenDisplay((char*) displayName.c_str());
 
+    // X11 display stuff    
+    Display* xdisplay = XOpenDisplay( displayName );
     if (!xdisplay)
     {
         wxLogError( _("wxWindows could not open display. Exiting.") );
@@ -268,16 +247,20 @@ int wxEntryStart( int& argc, char *argv[] )
     }
 
     if (syncDisplay)
-    {
         XSynchronize(xdisplay, True);
-    }
 
     wxApp::ms_display = (WXDisplay*) xdisplay;
-
+    
     XSelectInput( xdisplay, XDefaultRootWindow(xdisplay), PropertyChangeMask);
 
+    // Misc.
     wxSetDetectableAutoRepeat( TRUE );
 
+#if wxUSE_UNICODE
+    // Glib's type system required by Pango
+    g_type_init();
+#endif    
+
     if (!wxApp::Initialize())
         return -1;
 
@@ -316,32 +299,39 @@ int wxEntry( int argc, char *argv[] )
         {
             printf( "wxWindows error: No initializer - use IMPLEMENT_APP macro.\n" );
             return 0;
-        };
+        }
 
         wxTheApp = (wxApp*) (* wxApp::GetInitializerFunction()) ();
-    };
+    }
 
     if (!wxTheApp)
     {
         printf( "wxWindows error: wxTheApp == NULL\n" );
         return 0;
-    };
-
-    wxTheApp->SetClassName(wxFileNameFromPath(argv[0]));
-    wxTheApp->SetAppName(wxFileNameFromPath(argv[0]));
+    }
 
-    // The command line may have been changed
-    // by stripping out -display etc.
-    if (g_newArgc > 0)
+    // Command line argument stuff
+    wxTheApp->argc = argc;
+#if wxUSE_UNICODE
+    wxTheApp->argv = new wxChar*[argc+1];
+    int mb_argc = 0;
+    while (mb_argc < argc)
     {
-        wxTheApp->argc = g_newArgc;
-        wxTheApp->argv = g_newArgv;
+        wxString tmp = wxString::FromAscii( argv[mb_argc] );
+        wxTheApp->argv[mb_argc] = wxStrdup( tmp.c_str() );
+        mb_argc++;
     }
-    else
+    wxTheApp->argv[mb_argc] = (wxChar *)NULL;
+#else
+    wxTheApp->argv = argv;
+#endif
+
+    if (wxTheApp->argc > 0)
     {
-        wxTheApp->argc = argc;
-        wxTheApp->argv = argv;
+        wxFileName fname( wxTheApp->argv[0] );
+        wxTheApp->SetAppName( fname.GetName() );
     }
+
     wxTheApp->m_showIconic = g_showIconic;
     wxTheApp->m_initialSize = g_initialSize;
 
@@ -603,6 +593,9 @@ bool wxApp::ProcessXEvent(WXEvent* _event)
                 return TRUE;
 
             keyEvent.SetEventType(wxEVT_CHAR);
+            // Do the translation again, retaining the ASCII
+            // code.
+            wxTranslateKeyEvent(keyEvent, win, window, event, TRUE);
             if (win->GetEventHandler()->ProcessEvent( keyEvent ))
                 return TRUE;
 
@@ -1112,6 +1105,42 @@ bool wxApp::OnInitGui()
     return TRUE;
 }
 
+#if wxUSE_UNICODE
+
+#include <pango/pango.h>
+#include <pango/pangox.h>
+#include <pango/pangoxft.h>
+
+PangoContext* wxApp::GetPangoContext()
+{
+    static PangoContext *ret = NULL;
+    if (ret)
+        return ret;
+    
+    Display *xdisplay = (Display*) wxApp::GetDisplay();
+    
+#if 1
+    int xscreen = DefaultScreen(xdisplay);
+    static int use_xft = -1;
+    if (use_xft == -1)
+    {
+        wxString val = wxGetenv( L"GDK_USE_XFT" );
+        use_xft = (val == L"1");
+    }
+  
+    if (use_xft)
+        ret = pango_xft_get_context( xdisplay, xscreen );
+    else
+#endif
+        ret = pango_x_get_context( xdisplay );
+        
+    if (!PANGO_IS_CONTEXT(ret))
+        wxLogError( wxT("No pango context.") );
+        
+    return ret;
+}
+#endif
+
 WXColormap wxApp::GetMainColormap(WXDisplay* display)
 {
     if (!display) /* Must be called first with non-NULL display */
@@ -1205,6 +1234,10 @@ bool wxApp::Yield(bool onlyIfNeeded)
             wxEventLoop::SetActive(newEventLoop);
         }
 
+        // Call dispatch at least once so that sockets
+        // can be tested
+        wxTheApp->Dispatch();
+        
         while (wxTheApp && wxTheApp->Pending())
             wxTheApp->Dispatch();
 
diff --git a/src/x11/bitmap.cpp b/src/x11/bitmap.cpp
index 38f8aba90a..8663744e46 100644
--- a/src/x11/bitmap.cpp
+++ b/src/x11/bitmap.cpp
@@ -91,7 +91,7 @@ bool wxMask::Create( const wxBitmap& bitmap,
 
     m_display = bitmap.GetDisplay();
 
-    wxImage image( bitmap );
+    wxImage image = bitmap.ConvertToImage();
     if (!image.Ok()) return FALSE;
     
     m_display = bitmap.GetDisplay();
@@ -1022,7 +1022,7 @@ bool wxBitmap::SaveFile( const wxString &name, int type, wxPalette *WXUNUSED(pal
 
     // Try to save the bitmap via wxImage handlers:
     {
-        wxImage image( *this );
+        wxImage image(this->ConvertToImage()) ;
         if (image.Ok()) return image.SaveFile( name, type );
     }
 
@@ -1111,7 +1111,7 @@ bool wxBitmap::LoadFile( const wxString &name, int type )
     {
         wxImage image;
         if (!image.LoadFile( name, type )) return FALSE;
-        if (image.Ok()) *this = image.ConvertToBitmap();
+        if (image.Ok()) *this = wxBitmap(image);
         else return FALSE;
     }
 
diff --git a/src/x11/data.cpp b/src/x11/data.cpp
index 3cbdf91ef4..ffd29c7587 100644
--- a/src/x11/data.cpp
+++ b/src/x11/data.cpp
@@ -85,46 +85,46 @@ wxPalette wxNullPalette;
 wxFont   wxNullFont;
 wxColour wxNullColour;
 
-// Default window names
-const char *wxControlNameStr = "control";
-const char *wxButtonNameStr = "button";
-const char *wxCanvasNameStr = "canvas";
-const char *wxCheckBoxNameStr = "check";
-const char *wxChoiceNameStr = "choice";
-const char *wxComboBoxNameStr = "comboBox";
-const char *wxDialogNameStr = "dialog";
-const char *wxFrameNameStr = "frame";
-const char *wxGaugeNameStr = "gauge";
-const char *wxStaticBoxNameStr = "groupBox";
-const char *wxListBoxNameStr = "listBox";
-const char *wxStaticTextNameStr = "message";
-const char *wxStaticBitmapNameStr = "message";
-const char *wxMultiTextNameStr = "multitext";
-const char *wxPanelNameStr = "panel";
-const char *wxRadioBoxNameStr = "radioBox";
-const char *wxRadioButtonNameStr = "radioButton";
-const char *wxBitmapRadioButtonNameStr = "radioButton";
-const char *wxScrollBarNameStr = "scrollBar";
-const char *wxSliderNameStr = "slider";
-const char *wxStaticNameStr = "static";
-const char *wxTextCtrlWindowNameStr = "textWindow";
-const char *wxTextCtrlNameStr = "text";
-const char *wxVirtListBoxNameStr = "virtListBox";
-const char *wxButtonBarNameStr = "buttonbar";
-const char *wxEnhDialogNameStr = "Shell";
-const char *wxToolBarNameStr = "toolbar";
-const char *wxStatusLineNameStr = "status_line";
-const char *wxGetTextFromUserPromptStr = "Input Text";
-const char *wxMessageBoxCaptionStr = "Message";
-const char *wxFileSelectorPromptStr = "Select a file";
-const char *wxFileSelectorDefaultWildcardStr = "*.*";
-const char *wxDirDialogNameStr = "wxDirCtrl";
-const char *wxDirDialogDefaultFolderStr = "/";
+/* Default window names */
+const wxChar *wxControlNameStr = wxT("control");
+const wxChar *wxButtonNameStr = wxT("button");
+const wxChar *wxCanvasNameStr = wxT("canvas");
+const wxChar *wxCheckBoxNameStr = wxT("check");
+const wxChar *wxChoiceNameStr = wxT("choice");
+const wxChar *wxComboBoxNameStr = wxT("comboBox");
+const wxChar *wxDialogNameStr = wxT("dialog");
+const wxChar *wxFrameNameStr = wxT("frame");
+const wxChar *wxGaugeNameStr = wxT("gauge");
+const wxChar *wxStaticBoxNameStr = wxT("groupBox");
+const wxChar *wxListBoxNameStr = wxT("listBox");
+const wxChar *wxStaticTextNameStr = wxT("message");
+const wxChar *wxStaticBitmapNameStr = wxT("message");
+const wxChar *wxMultiTextNameStr = wxT("multitext");
+const wxChar *wxPanelNameStr = wxT("panel");
+const wxChar *wxRadioBoxNameStr = wxT("radioBox");
+const wxChar *wxRadioButtonNameStr = wxT("radioButton");
+const wxChar *wxBitmapRadioButtonNameStr = wxT("radioButton");
+const wxChar *wxScrollBarNameStr = wxT("scrollBar");
+const wxChar *wxSliderNameStr = wxT("slider");
+const wxChar *wxStaticNameStr = wxT("static");
+const wxChar *wxTextCtrlWindowNameStr = wxT("textWindow");
+const wxChar *wxTextCtrlNameStr = wxT("text");
+const wxChar *wxVirtListBoxNameStr = wxT("virtListBox");
+const wxChar *wxButtonBarNameStr = wxT("buttonbar");
+const wxChar *wxEnhDialogNameStr = wxT("Shell");
+const wxChar *wxToolBarNameStr = wxT("toolbar");
+const wxChar *wxStatusLineNameStr = wxT("status_line");
+const wxChar *wxGetTextFromUserPromptStr = wxT("Input Text");
+const wxChar *wxMessageBoxCaptionStr = wxT("Message");
+const wxChar *wxFileSelectorPromptStr = wxT("Select a file");
+const wxChar *wxFileSelectorDefaultWildcardStr = wxT("*");
+const wxChar *wxDirDialogNameStr = wxT("wxDirCtrl");
+const wxChar *wxDirDialogDefaultFolderStr = wxT("/");
 const wxChar *wxTreeCtrlNameStr = wxT("wxTreeCtrl");
 
-// See wx/utils.h
-const char *wxFloatToStringStr = "%.2f";
-const char *wxDoubleToStringStr = "%.2f";
+/* See wx/utils.h */
+const wxChar *wxFloatToStringStr = wxT("%.2f");
+const wxChar *wxDoubleToStringStr = wxT("%.2f");
 
 
 const wxSize wxDefaultSize(-1, -1);
diff --git a/src/x11/dataobj.cpp b/src/x11/dataobj.cpp
index 21e8776a29..548bbe151f 100644
--- a/src/x11/dataobj.cpp
+++ b/src/x11/dataobj.cpp
@@ -102,7 +102,7 @@ wxString wxDataFormat::GetId() const
     return wxEmptyString;
 #else
     char *t = XGetAtomName ((Display*) wxGetDisplay(), m_format);
-    wxString ret( t );  // this will convert from ascii to Unicode
+    wxString ret = wxString::FromAscii( t );
     if (t) 
         XFree( t );
     return ret;
@@ -132,7 +132,7 @@ void wxDataFormat::SetId( const wxChar *id )
     PrepareFormats();
     m_type = wxDF_PRIVATE;
     wxString tmp( id );
-    m_format = XInternAtom( (Display*) wxGetDisplay(), wxMBSTRINGCAST tmp.mbc_str(), FALSE );  // what is the string cast for?
+    m_format = XInternAtom( (Display*) wxGetDisplay(), tmp.ToAscii(), FALSE ); 
 #endif
 }
 
@@ -351,7 +351,7 @@ bool wxBitmapDataObject::SetData(size_t size, const void *buf)
         return FALSE;
     }
 
-    m_bitmap = image.ConvertToBitmap();
+    m_bitmap = image;
 
     return m_bitmap.Ok();
 #else
@@ -365,7 +365,7 @@ void wxBitmapDataObject::DoConvertToPng()
     if (!m_bitmap.Ok())
         return;
 
-    wxImage image( m_bitmap );
+    wxImage image = m_bitmap.ConvertToImage();
     wxPNGHandler handler;
 
     wxCountingOutputStream count;
diff --git a/src/x11/dcclient.cpp b/src/x11/dcclient.cpp
index 1eb072f8aa..162a8c7153 100644
--- a/src/x11/dcclient.cpp
+++ b/src/x11/dcclient.cpp
@@ -19,11 +19,20 @@
 #include "wx/app.h"
 #include "wx/image.h"
 #include "wx/module.h"
+#include "wx/fontutil.h"
 
 #include "wx/x11/private.h"
 
 #include <math.h>
 
+#if wxUSE_UNICODE
+#include "glib.h"
+#include "pango/pangox.h"
+#include "pango/pangoxft.h"
+
+#include "pango_x.cpp"
+#endif
+
 //-----------------------------------------------------------------------------
 // local defines
 //-----------------------------------------------------------------------------
@@ -163,6 +172,11 @@ wxWindowDC::wxWindowDC()
     m_isMemDC = FALSE;
     m_isScreenDC = FALSE;
     m_owner = (wxWindow *)NULL;
+    
+#if wxUSE_UNICODE
+    m_context = (PangoContext *)NULL;
+    m_fontdesc = (PangoFontDescription *)NULL;
+#endif
 }
 
 wxWindowDC::wxWindowDC( wxWindow *window )
@@ -193,6 +207,11 @@ wxWindowDC::wxWindowDC( wxWindow *window )
 
     m_display = (WXDisplay *) wxGlobalDisplay();
     
+#if wxUSE_UNICODE
+    m_context = wxTheApp->GetPangoContext();
+    m_fontdesc = window->GetFont().GetNativeFontInfo()->description;
+#endif
+
     int screen = DefaultScreen( (Display*) m_display );
     m_cmap = (WXColormap) DefaultColormap( (Display*) m_display, screen );
 
@@ -332,7 +351,7 @@ bool wxWindowDC::DoGetPixel( wxCoord x1, wxCoord y1, wxColour *col ) const
     memdc.SelectObject(bitmap);
     memdc.Blit(0, 0, 1, 1, (wxDC*) this, x1, y1);
     memdc.SelectObject(wxNullBitmap);
-    wxImage image(bitmap);
+    wxImage image(bitmap.ConvertToImage());
     col->Set(image.GetRed(0, 0), image.GetGreen(0, 0), image.GetBlue(0, 0));
     return TRUE;
 }
@@ -344,8 +363,19 @@ void wxWindowDC::DoDrawLine( wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2 )
     if (m_pen.GetStyle() != wxTRANSPARENT)
     {
         if (m_window)
-            XDrawLine( (Display*) m_display, (Window) m_window, 
-                (GC) m_penGC, XLOG2DEV(x1), YLOG2DEV(y1), XLOG2DEV(x2), YLOG2DEV(y2) );
+        {
+            // This hack is for the iPaq: XDrawLine draws
+            // nothing, whereas XDrawLines works...
+            wxPoint points[2];
+            points[0].x = x1;
+            points[0].y = y1;
+            points[1].x = x2;
+            points[1].y = y2;
+            DrawLines( 2, points, 0, 0 );
+            
+            // XDrawLine( (Display*) m_display, (Window) m_window, 
+            //    (GC) m_penGC, XLOG2DEV(x1), YLOG2DEV(y1), XLOG2DEV(x2), YLOG2DEV(y2) );
+        }
 
         CalcBoundingBox(x1, y1);
         CalcBoundingBox(x2, y2);
@@ -884,14 +914,14 @@ void wxWindowDC::DoDrawBitmap( const wxBitmap &bitmap,
     wxBitmap use_bitmap;
     if ((w != ww) || (h != hh))
     {
-        wxImage image( bitmap );
+        wxImage image( bitmap.ConvertToImage() );
         image.Rescale( ww, hh );
 #if 0
         if (is_mono)
             use_bitmap = image.ConvertToMonoBitmap(255,255,255);
         else
 #endif
-            use_bitmap = image.ConvertToBitmap();
+            use_bitmap = image;
     }
     else
     {
@@ -1003,14 +1033,14 @@ void wxWindowDC::DoDrawBitmap( const wxBitmap &bitmap,
     wxBitmap use_bitmap;
     if ((w != ww) || (h != hh))
     {
-        wxImage image( bitmap );
+        wxImage image( bitmap.ConvertToImage() );
         image.Rescale( ww, hh );
 #if 0
         if (is_mono)
             use_bitmap = image.ConvertToMonoBitmap(255,255,255);
         else
 #endif
-            use_bitmap = image.ConvertToBitmap();
+            use_bitmap = image;
     }
     else
     {
@@ -1206,7 +1236,7 @@ bool wxWindowDC::DoBlit( wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord he
 
         if ((bm_width != bm_ww) || (bm_height != bm_hh))
         {
-            wxImage image( memDC->m_selected );
+            wxImage image( memDC->m_selected.ConvertToImage() );
             image = image.Scale( bm_ww, bm_hh );
 
 #if 0
@@ -1214,7 +1244,7 @@ bool wxWindowDC::DoBlit( wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord he
                 use_bitmap = image.ConvertToMonoBitmap(255,255,255);
             else
 #endif
-                use_bitmap = image.ConvertToBitmap();
+                use_bitmap = image;
         }
         else
         {
@@ -1325,11 +1355,11 @@ bool wxWindowDC::DoBlit( wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord he
             XSetSubwindowMode( (Display*) m_display, (GC) m_penGC, ClipByChildren );
 
             // scale image
-            wxImage image( bitmap );
+            wxImage image( bitmap.ConvertToImage() );
             image = image.Scale( ww, hh );
 
             // convert to bitmap
-            bitmap = image.ConvertToBitmap();
+            bitmap = image;
 
             // draw scaled bitmap
             XCopyArea( (Display*) m_display, (Window) bitmap.GetPixmap(), (Window) m_window, 
@@ -1358,13 +1388,34 @@ void wxWindowDC::DoDrawText( const wxString &text, wxCoord x, wxCoord y )
 
     if (!m_window) return;
 
-    XFontStruct *xfont = (XFontStruct*) m_font.GetFontStruct( m_scaleY, m_display );
-
-    wxCHECK_RET( xfont, wxT("invalid font") );
-
     x = XLOG2DEV(x);
     y = YLOG2DEV(y);
 
+#if wxUSE_UNICODE
+    PangoLayout *layout = pango_layout_new(m_context);
+    pango_layout_set_font_description(layout, m_fontdesc);
+    
+    const wxCharBuffer data = wxConvUTF8.cWC2MB( text );
+    pango_layout_set_text(layout, (const char*) data, strlen( (const char*) data ));
+    
+    // Measure layout.
+    int w,h;
+    pango_layout_get_pixel_size(layout, &w, &h);
+    wxCoord width = w;
+    wxCoord height = h;
+    
+    // Draw layout.
+    x11_draw_layout( (Drawable) m_window, (GC) m_textGC, x, y, layout, m_textForegroundColour );
+    
+    g_object_unref( G_OBJECT( layout ) );
+    
+    CalcBoundingBox (x + width, y + height);
+    CalcBoundingBox (x, y);
+#else
+    XFontStruct *xfont = (XFontStruct*) m_font.GetFontStruct( m_scaleY, m_display );
+
+    wxCHECK_RET( xfont, wxT("invalid font") );
+    
     // First draw a rectangle representing the text background, if a text
     // background is specified
     if (m_textBackgroundColour.Ok () && (m_backgroundMode != wxTRANSPARENT))
@@ -1415,6 +1466,7 @@ void wxWindowDC::DoDrawText( const wxString &text, wxCoord x, wxCoord y )
     CalcBoundingBox (x + width, y + height);
     CalcBoundingBox (x, y);
 #endif
+#endif
 }
 
 void wxWindowDC::DoDrawRotatedText( const wxString &text, wxCoord x, wxCoord y, double angle )
@@ -1428,6 +1480,39 @@ void wxWindowDC::DoGetTextExtent( const wxString &string, wxCoord *width, wxCoor
 {
     wxCHECK_RET( Ok(), "invalid dc" );
 
+    if (string.IsEmpty())
+    {
+        if (width) (*width) = 0;
+        if (height) (*height) = 0;
+        return;
+    }
+    
+#if wxUSE_UNICODE
+    PangoLayout *layout = pango_layout_new( m_context );
+
+    if (font)
+        pango_layout_set_font_description( layout, font->GetNativeFontInfo()->description );
+    else
+        pango_layout_set_font_description(layout, m_fontdesc);
+        
+    const wxCharBuffer data = wxConvUTF8.cWC2MB( string );
+    pango_layout_set_text(layout, (const char*) data, strlen( (const char*) data ));
+ 
+    // Measure text.
+    int w,h;
+    pango_layout_get_pixel_size(layout, &w, &h);
+    
+    if (width) (*width) = (wxCoord) w; 
+    if (height) (*height) = (wxCoord) h;
+    if (descent)
+    {
+        // Do something about metrics here. TODO.
+        (*descent) = 0;
+    }
+    if (externalLeading) (*externalLeading) = 0;  // ??
+    
+    g_object_unref( G_OBJECT( layout ) );
+#else
     wxFont fontToUse = m_font;
     if (font) fontToUse = *font;
 
@@ -1451,12 +1536,30 @@ void wxWindowDC::DoGetTextExtent( const wxString &string, wxCoord *width, wxCoor
         *descent = (wxCoord)(descent2 / m_scaleY );
     if (externalLeading)
         *externalLeading = 0; // ??
+#endif
 }
 
 wxCoord wxWindowDC::GetCharWidth() const
 {
     wxCHECK_MSG( Ok(), 0, "invalid dc" );
     
+#if wxUSE_UNICODE
+    PangoLayout *layout = pango_layout_new( m_context );
+    
+    if (!m_fontdesc)
+    {
+        char *crash = NULL;
+        *crash = 0;
+    }
+    
+    pango_layout_set_font_description(layout, m_fontdesc);
+    pango_layout_set_text(layout, "H", 1 );
+    int w,h;
+    pango_layout_get_pixel_size(layout, &w, &h);
+    g_object_unref( G_OBJECT( layout ) );
+    
+    return w;
+#else
     wxCHECK_MSG( m_font.Ok(), 0, "invalid font" );
 
     XFontStruct *xfont = (XFontStruct*) m_font.GetFontStruct( m_scaleY, m_display );
@@ -1469,12 +1572,31 @@ wxCoord wxWindowDC::GetCharWidth() const
     XTextExtents( xfont, "H", 1, &direction, &ascent, &descent, &overall );
         
     return (wxCoord)(overall.width / m_scaleX);
+#endif
 }
 
 wxCoord wxWindowDC::GetCharHeight() const
 {
     wxCHECK_MSG( Ok(), 0, "invalid dc" );
     
+#if wxUSE_UNICODE
+    PangoLayout *layout = pango_layout_new( m_context );
+    
+    if (!m_fontdesc)
+    {
+        char *crash = NULL;
+        *crash = 0;
+    }
+    
+    pango_layout_set_font_description(layout, m_fontdesc);
+    
+    pango_layout_set_text(layout, "H", 1 );
+    int w,h;
+    pango_layout_get_pixel_size(layout, &w, &h);
+    g_object_unref( G_OBJECT( layout ) );
+    
+    return h;
+#else
     wxCHECK_MSG( m_font.Ok(), 0, "invalid font" );
 
     XFontStruct *xfont = (XFontStruct*) m_font.GetFontStruct( m_scaleY, m_display );
@@ -1487,6 +1609,7 @@ wxCoord wxWindowDC::GetCharHeight() const
     XTextExtents( xfont, "H", 1, &direction, &ascent, &descent, &overall );
         
     return (wxCoord)((ascent+descent) / m_scaleY);
+#endif
 }
 
 void wxWindowDC::Clear()
@@ -2047,7 +2170,7 @@ wxClientDC::wxClientDC( wxWindow *window )
     
     m_window = (WXWindow*) window->GetClientAreaWindow();
     
-    // Adjust the client area when the wxWindow is not using 2 X windows.
+    // Adjust the client area when the wxWindow is not using 2 X11 windows.
     if (m_window == (WXWindow*) window->GetMainWindow())
     {
         wxPoint ptOrigin = window->GetClientAreaOrigin();
diff --git a/src/x11/dcscreen.cpp b/src/x11/dcscreen.cpp
index 0efabc519c..58f24d50ca 100644
--- a/src/x11/dcscreen.cpp
+++ b/src/x11/dcscreen.cpp
@@ -17,6 +17,8 @@
 #include "wx/frame.h"
 #include "wx/dcscreen.h"
 #include "wx/utils.h"
+#include "wx/app.h"
+#include "wx/fontutil.h"
 
 #include "wx/x11/private.h"
 
@@ -47,6 +49,11 @@ wxScreenDC::wxScreenDC()
 
     m_isScreenDC = TRUE;
 
+#if wxUSE_UNICODE
+    m_context = wxTheApp->GetPangoContext();
+    m_fontdesc = wxNORMAL_FONT->GetNativeFontInfo()->description;
+#endif
+
     SetUpDC();
 
     XSetSubwindowMode( (Display*) m_display, (GC) m_penGC, IncludeInferiors );
@@ -86,24 +93,23 @@ bool wxScreenDC::StartDrawingOnTop( wxWindow *window )
     return StartDrawingOnTop( &rect );
 }
 
-bool wxScreenDC::StartDrawingOnTop( wxRect *rect )
+bool wxScreenDC::StartDrawingOnTop( wxRect *rectIn )
 {
-    int x = 0;
-    int y = 0;
+    // VZ: should we do the same thing that wxMotif wxScreenDC does here?
 #if 0
-    int width = gdk_screen_width();
-    int height = gdk_screen_height();
-#else
-    int width = 1024;
-    int height = 768;
-#endif
-    if (rect)
+    wxRect rect;
+    if ( rectIn )
+    {
+        rect = *rectIn;
+    }
+    else
     {
-        x = rect->x;
-        y = rect->y;
-        width = rect->width;
-        height = rect->height;
+        rect.x =
+        rect.y = 0;
+
+        DoGetSize(&rect.width, &rect.height);
     }
+#endif // 0
 
     return TRUE;
 }
diff --git a/src/x11/evtloop.cpp b/src/x11/evtloop.cpp
index f15fe04516..aaf03464a3 100644
--- a/src/x11/evtloop.cpp
+++ b/src/x11/evtloop.cpp
@@ -175,7 +175,7 @@ void wxSocketTable::FillSets(fd_set* readset, fd_set* writeset, int* highest)
     while (node)
     {
         wxSocketTableEntry* entry = (wxSocketTableEntry*) node->Data();
-
+        
         if (entry->m_fdInput != -1)
         {
             FD_SET(entry->m_fdInput, readset);
@@ -201,7 +201,7 @@ void wxSocketTable::ProcessEvents(fd_set* readset, fd_set* writeset)
     while (node)
     {
         wxSocketTableEntry* entry = (wxSocketTableEntry*) node->Data();
-
+        
         if (entry->m_fdInput != -1 && FD_ISSET(entry->m_fdInput, readset))
         {
             (entry->m_callbackInput) (entry->m_fdInput, entry->m_dataInput);
@@ -375,7 +375,7 @@ int wxEventLoop::Run()
     while ( m_impl->m_keepGoing )
     {
 #if 0 // wxUSE_THREADS
-	wxMutexGuiLeaveOrEnter();
+        wxMutexGuiLeaveOrEnter();
 #endif // wxUSE_THREADS
 
         // generate and process idle events for as long as we don't have
@@ -387,7 +387,7 @@ int wxEventLoop::Run()
 #endif
             if (!m_impl->SendIdleEvent())
             {
-#if wxUSE_THREADS
+#if 0 // wxUSE_THREADS
                 // leave the main loop to give other threads a chance to
                 // perform their GUI work
                 wxMutexGuiLeave();
@@ -430,8 +430,8 @@ void wxEventLoop::Exit(int rc)
 
 bool wxEventLoop::Pending() const
 {
-    XFlush((Display*) wxGetDisplay());
-    return (XPending((Display*) wxGetDisplay()) > 0);
+    XFlush( wxGlobalDisplay() );
+    return (XPending( wxGlobalDisplay() ) > 0);
 }
 
 bool wxEventLoop::Dispatch()
@@ -447,7 +447,7 @@ bool wxEventLoop::Dispatch()
     // often, so we should probably limit idle processing to
     // not be repeated more than every N milliseconds.
     
-    if (XPending((Display*) wxGetDisplay()) == 0)
+    if (XPending( wxGlobalDisplay() ) == 0)
     {
 #if wxUSE_NANOX
         GR_TIMEOUT timeout = 10; // Milliseconds
@@ -462,7 +462,8 @@ bool wxEventLoop::Dispatch()
         struct timeval tv;
         tv.tv_sec=0;
         tv.tv_usec=10000; // TODO make this configurable
-        int fd = ConnectionNumber((Display*) wxGetDisplay());
+        int fd = ConnectionNumber( wxGlobalDisplay() );
+        
         fd_set readset;
         fd_set writeset;
         int highest = fd;
@@ -473,10 +474,10 @@ bool wxEventLoop::Dispatch()
 
 #if wxUSE_SOCKETS
         if (wxTheSocketTable)
-            wxTheSocketTable->FillSets(& readset, & writeset, & highest);
+            wxTheSocketTable->FillSets( &readset, &writeset, &highest );
 #endif
         
-        if (select(highest+1, &readset, &writeset, NULL, & tv) == 0)
+        if (select( highest+1, &readset, &writeset, NULL, &tv ) == 0)
         {
             // Timed out, so no event to process
             return TRUE;
@@ -484,23 +485,25 @@ bool wxEventLoop::Dispatch()
         else
         {
             // An X11 event was pending, so get it
-            if (FD_ISSET(fd, & readset))
-                XNextEvent((Display*) wxGetDisplay(), & event);
+            if (FD_ISSET( fd, &readset ))
+                XNextEvent( wxGlobalDisplay(), &event );
 
 #if wxUSE_SOCKETS
             // Check if any socket events were pending,
             // and if so, call their callbacks
             if (wxTheSocketTable)
-                wxTheSocketTable->ProcessEvents(& readset, & writeset);
+                wxTheSocketTable->ProcessEvents( &readset, &writeset );
 #endif
         }
 #endif
-    } else
+    } 
+    else
     {
-       XNextEvent((Display*) wxGetDisplay(), & event);
+        XNextEvent( wxGlobalDisplay(), &event );
     }
     
-    (void) m_impl->ProcessEvent(& event);
+    
+    (void) m_impl->ProcessEvent( &event );
     return TRUE;
 }
 
diff --git a/src/x11/files.lst b/src/x11/files.lst
index b9d0947941..0db08379b8 100644
--- a/src/x11/files.lst
+++ b/src/x11/files.lst
@@ -236,7 +236,6 @@ ALL_SOURCES = \
 		html/m_layout.cpp \
 		html/m_links.cpp \
 		html/m_list.cpp \
-		html/m_meta.cpp \
 		html/m_pre.cpp \
 		html/m_style.cpp \
 		html/m_tables.cpp \
@@ -648,7 +647,6 @@ GUI_LOWLEVEL_OBJS = \
 		window.o
 
 COMMONOBJS = \
-		parser.o \
 		appcmn.o \
 		artprov.o \
 		artstd.o \
@@ -859,7 +857,6 @@ HTMLOBJS = \
 		m_layout.o \
 		m_links.o \
 		m_list.o \
-		m_meta.o \
 		m_pre.o \
 		m_style.o \
 		m_tables.o \
diff --git a/src/x11/font.cpp b/src/x11/font.cpp
index 6f6db81d0c..8cd3bba65c 100644
--- a/src/x11/font.cpp
+++ b/src/x11/font.cpp
@@ -38,12 +38,23 @@
 #include "wx/fontutil.h"    // for wxNativeFontInfo
 #include "wx/tokenzr.h"
 #include "wx/settings.h"
+
 #include "wx/x11/private.h"
 
 IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject)
 
 // ----------------------------------------------------------------------------
-// private classes
+// constants
+// ----------------------------------------------------------------------------
+
+// the default size (in points) for the fonts
+static const int wxDEFAULT_FONT_SIZE = 12;
+
+
+#if wxUSE_UNICODE
+#else
+// ----------------------------------------------------------------------------
+// wxXFont
 // ----------------------------------------------------------------------------
 
 // For every wxFont, there must be a font for each display and scale requested.
@@ -59,7 +70,27 @@ public:
     int                 m_scale;        // Scale * 100
 };
 
-class wxFontRefData: public wxGDIRefData
+wxXFont::wxXFont()
+{
+    m_fontStruct = (WXFontStructPtr) 0;
+    m_display = (WXDisplay*) 0;
+    m_scale = 100;
+}
+
+wxXFont::~wxXFont()
+{
+    // TODO: why does freeing the font produce a segv???
+    // Note that XFreeFont wasn't called in wxWin 1.68 either.
+    // XFontStruct* fontStruct = (XFontStruct*) m_fontStruct;
+    //        XFreeFont((Display*) m_display, fontStruct);
+}
+#endif
+
+// ----------------------------------------------------------------------------
+// wxFontRefData
+// ----------------------------------------------------------------------------
+
+class wxFontRefData: public wxObjectRefData
 {
 friend class wxFont;
 
@@ -70,19 +101,33 @@ public:
                   int weight = wxDEFAULT,
                   bool underlined = FALSE,
                   const wxString& faceName = wxEmptyString,
-                  wxFontEncoding encoding = wxFONTENCODING_DEFAULT)
-    {
-        Init(size, family, style, weight, underlined, faceName, encoding);
-    }
-
-    wxFontRefData(const wxFontRefData& data)
-    {
-        Init(data.m_pointSize, data.m_family, data.m_style, data.m_weight,
-             data.m_underlined, data.m_faceName, data.m_encoding);
-    }
-
-    ~wxFontRefData();
+                  wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
 
+    // copy cstr
+    wxFontRefData(const wxFontRefData& data);
+    
+    // from XFLD
+    wxFontRefData(const wxString& fontname);
+    
+    // dstr
+    virtual ~wxFontRefData();
+
+    // setters: all of them also take care to modify m_nativeFontInfo if we
+    // have it so as to not lose the information not carried by our fields
+    void SetPointSize(int pointSize);
+    void SetFamily(int family);
+    void SetStyle(int style);
+    void SetWeight(int weight);
+    void SetUnderlined(bool underlined);
+    void SetFaceName(const wxString& facename);
+    void SetEncoding(wxFontEncoding encoding);
+
+    void SetNoAntiAliasing( bool no = TRUE ) { m_noAA = no; }
+    bool GetNoAntiAliasing() { return m_noAA; }
+    
+    // and this one also modifies all the other font data fields
+    void SetNativeFontInfo(const wxNativeFontInfo& info);
+    
 protected:
     // common part of all ctors
     void Init(int size,
@@ -93,6 +138,9 @@ protected:
               const wxString& faceName,
               wxFontEncoding encoding);
 
+    // set all fields from (already initialized and valid) m_nativeFontInfo
+    void InitFromNative();
+    
     // font attributes
     int           m_pointSize;
     int           m_family;
@@ -100,37 +148,20 @@ protected:
     int           m_weight;
     bool          m_underlined;
     wxString      m_faceName;
-    wxFontEncoding m_encoding;
+    wxFontEncoding m_encoding;   // Unused in Unicode mode
+    bool            m_noAA;      // No anti-aliasing
 
     wxNativeFontInfo m_nativeFontInfo;
     
+    void ClearX11Fonts();
+
+#if wxUSE_UNICODE
+#else
     // A list of wxXFonts
     wxList        m_fonts;
+#endif
 };
 
-// ============================================================================
-// implementation
-// ============================================================================
-
-// ----------------------------------------------------------------------------
-// wxXFont
-// ----------------------------------------------------------------------------
-
-wxXFont::wxXFont()
-{
-    m_fontStruct = (WXFontStructPtr) 0;
-    m_display = (WXDisplay*) 0;
-    m_scale = 100;
-}
-
-wxXFont::~wxXFont()
-{
-    // TODO: why does freeing the font produce a segv???
-    // Note that XFreeFont wasn't called in wxWin 1.68 either.
-    // XFontStruct* fontStruct = (XFontStruct*) m_fontStruct;
-    //        XFreeFont((Display*) m_display, fontStruct);
-}
-
 // ----------------------------------------------------------------------------
 // wxFontRefData
 // ----------------------------------------------------------------------------
@@ -143,34 +174,256 @@ void wxFontRefData::Init(int pointSize,
                          const wxString& faceName,
                          wxFontEncoding encoding)
 {
-    if (family == wxDEFAULT)
-        m_family = wxSWISS;
-    else
-        m_family = family;
+    m_family = family == wxFONTFAMILY_DEFAULT ? wxFONTFAMILY_SWISS : family;
 
     m_faceName = faceName;
 
-    if (style == wxDEFAULT)
-        m_style = wxNORMAL;
-    else
-        m_style = style;
+    // we accept both wxDEFAULT and wxNORMAL here - should we?
+    m_style = style == wxDEFAULT ? wxFONTSTYLE_NORMAL : style;
+    m_weight = weight == wxDEFAULT ? wxFONTWEIGHT_NORMAL : weight;
+
+    // and here, do we really want to forbid creation of the font of the size
+    // 90 (the value of wxDEFAULT)??
+    m_pointSize = pointSize == wxDEFAULT || pointSize == -1
+                    ? wxDEFAULT_FONT_SIZE
+                    : pointSize;
+
+    m_underlined = underlined;
+    m_encoding = encoding;
+    
+#if wxUSE_UNICODE
+    // Create native font info
+    m_nativeFontInfo.description = pango_font_description_new();
+
+    // And set its values
+    switch (m_family)
+    {
+        case wxFONTFAMILY_MODERN:
+        case wxFONTFAMILY_TELETYPE:
+           pango_font_description_set_family( m_nativeFontInfo.description, "monospace" );
+           break;
+        case wxFONTFAMILY_SWISS:
+           pango_font_description_set_family( m_nativeFontInfo.description, "serif" );
+           break;
+        default:
+           pango_font_description_set_family( m_nativeFontInfo.description, "sans" );
+           break;
+    }
+    SetStyle( m_style );
+    SetPointSize( m_pointSize );
+    SetWeight( m_weight );
+#endif
+}
+
+void wxFontRefData::InitFromNative()
+{
+    m_noAA = FALSE;
+
+#if wxUSE_UNICODE
+    // Get native info
+    PangoFontDescription *desc = m_nativeFontInfo.description;
+
+    // init fields
+    m_faceName = wxGTK_CONV_BACK( pango_font_description_get_family( desc ) );
 
-    if (weight == wxDEFAULT)
-        m_weight = wxNORMAL;
+    m_pointSize = pango_font_description_get_size( desc ) / PANGO_SCALE;
+
+    switch (pango_font_description_get_style( desc ))
+    {
+        case PANGO_STYLE_NORMAL:
+            m_style = wxFONTSTYLE_NORMAL;
+            break;
+        case PANGO_STYLE_ITALIC:
+            m_style = wxFONTSTYLE_ITALIC;
+            break;
+        case PANGO_STYLE_OBLIQUE:
+            m_style = wxFONTSTYLE_SLANT;
+            break;
+    }
+
+    switch (pango_font_description_get_weight( desc ))
+    {
+        case PANGO_WEIGHT_ULTRALIGHT:
+            m_weight = wxFONTWEIGHT_LIGHT;
+            break;
+        case PANGO_WEIGHT_LIGHT:
+            m_weight = wxFONTWEIGHT_LIGHT;
+            break;
+        case PANGO_WEIGHT_NORMAL:
+            m_weight = wxFONTWEIGHT_NORMAL;
+            break;
+        case PANGO_WEIGHT_BOLD:
+            m_weight = wxFONTWEIGHT_BOLD;
+            break;
+        case PANGO_WEIGHT_ULTRABOLD:
+            m_weight = wxFONTWEIGHT_BOLD;
+            break;
+        case PANGO_WEIGHT_HEAVY:
+            m_weight = wxFONTWEIGHT_BOLD;
+            break;
+    }
+
+    if (m_faceName == wxT("monospace"))
+    {
+        m_family = wxFONTFAMILY_TELETYPE;
+    }
+    else if (m_faceName == wxT("sans"))
+    {
+        m_family = wxFONTFAMILY_SWISS;
+    }
     else
-        m_weight = weight;
+    {
+        m_family = wxFONTFAMILY_UNKNOWN;
+    }
+
+    // Pango description are never underlined (?)
+    m_underlined = FALSE;
+
+    // Cannot we choose that
+    m_encoding = wxFONTENCODING_SYSTEM;
+#else // X11
+    // get the font parameters from the XLFD
+    // -------------------------------------
+
+    m_faceName = m_nativeFontInfo.GetXFontComponent(wxXLFD_FAMILY);
+
+    m_weight = wxFONTWEIGHT_NORMAL;
+
+    wxString w = m_nativeFontInfo.GetXFontComponent(wxXLFD_WEIGHT).Upper();
+    if ( !w.empty() && w != _T('*') )
+    {
+        // the test below catches all of BOLD, EXTRABOLD, DEMIBOLD, ULTRABOLD
+        // and BLACK
+        if ( ((w[0u] == _T('B') && (!wxStrcmp(w.c_str() + 1, wxT("OLD")) ||
+                                   !wxStrcmp(w.c_str() + 1, wxT("LACK"))))) ||
+             wxStrstr(w.c_str() + 1, _T("BOLD")) )
+        {
+            m_weight = wxFONTWEIGHT_BOLD;
+        }
+        else if ( w == _T("LIGHT") || w == _T("THIN") )
+        {
+            m_weight = wxFONTWEIGHT_LIGHT;
+        }
+    }
+
+    switch ( wxToupper(*m_nativeFontInfo.
+                            GetXFontComponent(wxXLFD_SLANT).c_str()) )
+    {
+        case _T('I'):   // italique
+            m_style = wxFONTSTYLE_ITALIC;
+            break;
+
+        case _T('O'):   // oblique
+            m_style = wxFONTSTYLE_SLANT;
+            break;
 
-    if (pointSize == wxDEFAULT)
-        m_pointSize = 12;
+        default:
+            m_style = wxFONTSTYLE_NORMAL;
+    }
+
+    long ptSize;
+    if ( m_nativeFontInfo.GetXFontComponent(wxXLFD_POINTSIZE).ToLong(&ptSize) )
+    {
+        // size in XLFD is in 10 point units
+        m_pointSize = (int)(ptSize / 10);
+    }
     else
-        m_pointSize = pointSize;
+    {
+        m_pointSize = wxDEFAULT_FONT_SIZE;
+    }
 
-    m_underlined = underlined;
-    m_encoding = encoding;
+    // examine the spacing: if the font is monospaced, assume wxTELETYPE
+    // family for compatibility with the old code which used it instead of
+    // IsFixedWidth()
+    if ( m_nativeFontInfo.GetXFontComponent(wxXLFD_SPACING).Upper() == _T('M') )
+    {
+        m_family = wxFONTFAMILY_TELETYPE;
+    }
+    else // not monospaceed
+    {
+        // don't even try guessing it, it doesn't work for too many fonts
+        // anyhow
+        m_family = wxFONTFAMILY_UNKNOWN;
+    }
+
+    // X fonts are never underlined...
+    m_underlined = FALSE;
+
+    // deal with font encoding
+    wxString
+        registry = m_nativeFontInfo.GetXFontComponent(wxXLFD_REGISTRY).Upper(),
+        encoding = m_nativeFontInfo.GetXFontComponent(wxXLFD_ENCODING).Upper();
+
+    if ( registry == _T("ISO8859") )
+    {
+        int cp;
+        if ( wxSscanf(encoding, wxT("%d"), &cp) == 1 )
+        {
+            m_encoding = (wxFontEncoding)(wxFONTENCODING_ISO8859_1 + cp - 1);
+        }
+    }
+    else if ( registry == _T("MICROSOFT") )
+    {
+        int cp;
+        if ( wxSscanf(encoding, wxT("cp125%d"), &cp) == 1 )
+        {
+            m_encoding = (wxFontEncoding)(wxFONTENCODING_CP1250 + cp);
+        }
+    }
+    else if ( registry == _T("KOI8") )
+    {
+        m_encoding = wxFONTENCODING_KOI8;
+    }
+    else // unknown encoding
+    {
+        // may be give a warning here? or use wxFontMapper?
+        m_encoding = wxFONTENCODING_SYSTEM;
+    }
+#endif // Pango/X11
 }
 
-wxFontRefData::~wxFontRefData()
+wxFontRefData::wxFontRefData( const wxFontRefData& data )
+             : wxObjectRefData()
 {
+    m_pointSize = data.m_pointSize;
+    m_family = data.m_family;
+    m_style = data.m_style;
+    m_weight = data.m_weight;
+
+    m_underlined = data.m_underlined;
+
+    m_faceName = data.m_faceName;
+    m_encoding = data.m_encoding;
+
+    m_noAA = data.m_noAA;
+    
+    m_nativeFontInfo = data.m_nativeFontInfo;
+}
+
+wxFontRefData::wxFontRefData(int size, int family, int style,
+                             int weight, bool underlined,
+                             const wxString& faceName,
+                             wxFontEncoding encoding)
+{
+    Init(size, family, style, weight, underlined, faceName, encoding);
+}
+
+wxFontRefData::wxFontRefData(const wxString& fontname)
+{
+    // VZ: FromString() should really work in both cases, doesn't it?
+#if wxUSE_UNICODE
+    m_nativeFontInfo.FromString( fontname );
+#else
+    m_nativeFontInfo.SetXFontName(fontname);
+#endif
+
+    InitFromNative();
+}
+
+void wxFontRefData::ClearX11Fonts()
+{
+#if wxUSE_UNICODE
+#else
     wxNode* node = m_fonts.First();
     while (node)
     {
@@ -179,23 +432,121 @@ wxFontRefData::~wxFontRefData()
         node = node->Next();
     }
     m_fonts.Clear();
+#endif
+}
+
+wxFontRefData::~wxFontRefData()
+{
+    ClearX11Fonts();
 }
 
 // ----------------------------------------------------------------------------
-// wxFont
+// wxFontRefData SetXXX()
 // ----------------------------------------------------------------------------
 
-wxFont::wxFont(const wxNativeFontInfo& info)
+void wxFontRefData::SetPointSize(int pointSize)
 {
-    Init();
+    m_pointSize = pointSize;
+
+#if wxUSE_UNICODE
+    // Get native info
+    PangoFontDescription *desc = m_nativeFontInfo.description;
+
+    pango_font_description_set_size( desc, m_pointSize * PANGO_SCALE );
+#endif
+}
+
+void wxFontRefData::SetFamily(int family)
+{
+    m_family = family;
+
+    // TODO: what are we supposed to do with m_nativeFontInfo here?
+}
+
+void wxFontRefData::SetStyle(int style)
+{
+    m_style = style;
+
+#if wxUSE_UNICODE
+    // Get native info
+    PangoFontDescription *desc = m_nativeFontInfo.description;
+
+    switch ( style )
+    {
+        case wxFONTSTYLE_ITALIC:
+            pango_font_description_set_style( desc, PANGO_STYLE_ITALIC );
+            break;
+        case wxFONTSTYLE_SLANT:
+            pango_font_description_set_style( desc, PANGO_STYLE_OBLIQUE );
+            break;
+        default:
+            wxFAIL_MSG( _T("unknown font style") );
+            // fall through
+        case wxFONTSTYLE_NORMAL:
+            pango_font_description_set_style( desc, PANGO_STYLE_NORMAL );
+            break;
+    }
+#endif
+}
+
+void wxFontRefData::SetWeight(int weight)
+{
+    m_weight = weight;
+}
+
+void wxFontRefData::SetUnderlined(bool underlined)
+{
+    m_underlined = underlined;
 
-    (void)Create(info.GetXFontName());
+    // the XLFD doesn't have "underlined" field anyhow
 }
 
+void wxFontRefData::SetFaceName(const wxString& facename)
+{
+    m_faceName = facename;
+}
+
+void wxFontRefData::SetEncoding(wxFontEncoding encoding)
+{
+    m_encoding = encoding;
+}
+
+void wxFontRefData::SetNativeFontInfo(const wxNativeFontInfo& info)
+{
+    // previously cached fonts shouldn't be used
+    ClearX11Fonts();
+
+    m_nativeFontInfo = info;
+
+    // set all the other font parameters from the native font info
+    InitFromNative();
+}
+
+// ----------------------------------------------------------------------------
+// wxFont
+// ----------------------------------------------------------------------------
+
 void wxFont::Init()
 {
 }
 
+wxFont::wxFont(const wxNativeFontInfo& info)
+{
+    Init();
+
+#if wxUSE_UNICODE
+    Create( info.GetPointSize(),
+            info.GetFamily(),
+            info.GetStyle(),
+            info.GetWeight(),
+            info.GetUnderlined(),
+            info.GetFaceName(),
+            info.GetEncoding() );
+#else
+    (void) Create(info.GetXFontName());
+#endif
+}
+
 bool wxFont::Create(int pointSize,
                     int family,
                     int style,
@@ -205,14 +556,15 @@ bool wxFont::Create(int pointSize,
                     wxFontEncoding encoding)
 {
     UnRef();
+    
     m_refData = new wxFontRefData(pointSize, family, style, weight,
                                   underlined, faceName, encoding);
 
-    RealizeResource();
-
     return TRUE;
 }
 
+#if wxUSE_UNICODE
+#else
 bool wxFont::Create(const wxString& fontname, wxFontEncoding enc)
 {
     if( !fontname )
@@ -315,6 +667,7 @@ bool wxFont::Create(const wxString& fontname, wxFontEncoding enc)
     }
     return TRUE;    
 }
+#endif
 
 wxFont::~wxFont()
 {
@@ -339,147 +692,172 @@ void wxFont::Unshare()
     }
 }
 
-void wxFont::SetPointSize(int pointSize)
+// ----------------------------------------------------------------------------
+// accessors
+// ----------------------------------------------------------------------------
+
+int wxFont::GetPointSize() const
 {
-    Unshare();
+    wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
 
-    M_FONTDATA->m_pointSize = pointSize;
-    M_FONTDATA->m_nativeFontInfo.GetXFontName().Clear(); // invalid now
-    
-    RealizeResource();
+    return M_FONTDATA->m_pointSize;
 }
 
-void wxFont::SetFamily(int family)
+wxString wxFont::GetFaceName() const
 {
-    Unshare();
+    wxCHECK_MSG( Ok(), wxT(""), wxT("invalid font") );
 
-    M_FONTDATA->m_family = family;
-    M_FONTDATA->m_nativeFontInfo.GetXFontName().Clear(); // invalid now
-    
-    RealizeResource();
+    return M_FONTDATA->m_faceName;
 }
 
-void wxFont::SetStyle(int style)
+int wxFont::GetFamily() const
 {
-    Unshare();
+    wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
 
-    M_FONTDATA->m_style = style;
-    M_FONTDATA->m_nativeFontInfo.GetXFontName().Clear(); // invalid now
-    
-    RealizeResource();
+    return M_FONTDATA->m_family;
 }
 
-void wxFont::SetWeight(int weight)
+int wxFont::GetStyle() const
 {
-    Unshare();
+    wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
 
-    M_FONTDATA->m_weight = weight;
-    M_FONTDATA->m_nativeFontInfo.GetXFontName().Clear(); // invalid now
-    
-    RealizeResource();
+    return M_FONTDATA->m_style;
 }
 
-void wxFont::SetFaceName(const wxString& faceName)
+int wxFont::GetWeight() const
 {
-    Unshare();
+    wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
 
-    M_FONTDATA->m_faceName = faceName;
-    M_FONTDATA->m_nativeFontInfo.GetXFontName().Clear(); // invalid now
-    
-    RealizeResource();
+    return M_FONTDATA->m_weight;
 }
 
-void wxFont::SetUnderlined(bool underlined)
+bool wxFont::GetUnderlined() const
 {
-    Unshare();
+    wxCHECK_MSG( Ok(), FALSE, wxT("invalid font") );
 
-    M_FONTDATA->m_underlined = underlined;
-    
-    RealizeResource();
+    return M_FONTDATA->m_underlined;
 }
 
-void wxFont::SetEncoding(wxFontEncoding encoding)
+wxFontEncoding wxFont::GetEncoding() const
 {
-    Unshare();
+    wxCHECK_MSG( Ok(), wxFONTENCODING_DEFAULT, wxT("invalid font") );
 
-    M_FONTDATA->m_encoding = encoding;
-    M_FONTDATA->m_nativeFontInfo.GetXFontName().Clear(); // invalid now
-    
-    RealizeResource();
+    return M_FONTDATA->m_encoding;
 }
 
-void wxFont::SetNativeFontInfo(const wxNativeFontInfo& info)
+bool wxFont::GetNoAntiAliasing()
 {
-    Unshare();
+    wxCHECK_MSG( Ok(), wxFONTENCODING_DEFAULT, wxT("invalid font") );
+
+    return M_FONTDATA->m_noAA;
+}
+
+wxNativeFontInfo *wxFont::GetNativeFontInfo() const
+{
+    wxCHECK_MSG( Ok(), (wxNativeFontInfo *)NULL, wxT("invalid font") );
+
+#if wxUSE_UNICODE
+#else
+    if ( M_FONTDATA->m_nativeFontInfo.GetXFontName().empty() )
+        GetInternalFont();
+#endif
+
+    return new wxNativeFontInfo(M_FONTDATA->m_nativeFontInfo);
+}
+
+bool wxFont::IsFixedWidth() const
+{
+    wxCHECK_MSG( Ok(), FALSE, wxT("invalid font") );
+
+#if wxUSE_UNICODE
+#else
+    // Robert, is this right? HasNativeFont doesn't exist.
+    if ( TRUE )
+    //    if ( M_FONTDATA->HasNativeFont() )
+    {
+        // the monospace fonts are supposed to have "M" in the spacing field
+        wxString spacing = M_FONTDATA->
+                            m_nativeFontInfo.GetXFontComponent(wxXLFD_SPACING);
+
+        return spacing.Upper() == _T('M');
+    }
+#endif
 
-    M_FONTDATA->m_nativeFontInfo = info;
+    return wxFontBase::IsFixedWidth();
 }
 
 // ----------------------------------------------------------------------------
-// query font attributes
+// change font attributes
 // ----------------------------------------------------------------------------
 
-int wxFont::GetPointSize() const
+void wxFont::SetPointSize(int pointSize)
 {
-    wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
-    
-    return M_FONTDATA->m_pointSize;
+    Unshare();
+
+    M_FONTDATA->SetPointSize(pointSize);
 }
 
-wxString wxFont::GetFaceName() const
+void wxFont::SetFamily(int family)
 {
-    wxCHECK_MSG( Ok(), wxT(""), wxT("invalid font") );
+    Unshare();
 
-    return M_FONTDATA->m_faceName ;
+    M_FONTDATA->SetFamily(family);
 }
 
-int wxFont::GetFamily() const
+void wxFont::SetStyle(int style)
 {
-    wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
+    Unshare();
 
-    return M_FONTDATA->m_family;
+    M_FONTDATA->SetStyle(style);
 }
 
-int wxFont::GetStyle() const
+void wxFont::SetWeight(int weight)
 {
-    wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
+    Unshare();
 
-    return M_FONTDATA->m_style;
+    M_FONTDATA->SetWeight(weight);
 }
 
-int wxFont::GetWeight() const
+void wxFont::SetFaceName(const wxString& faceName)
 {
-    wxCHECK_MSG( Ok(), 0, wxT("invalid font") );
+    Unshare();
 
-    return M_FONTDATA->m_weight;
+    M_FONTDATA->SetFaceName(faceName);
 }
 
-bool wxFont::GetUnderlined() const
+void wxFont::SetUnderlined(bool underlined)
 {
-    wxCHECK_MSG( Ok(), FALSE, wxT("invalid font") );
+    Unshare();
 
-    return M_FONTDATA->m_underlined;
+    M_FONTDATA->SetUnderlined(underlined);
 }
 
-wxFontEncoding wxFont::GetEncoding() const
+void wxFont::SetEncoding(wxFontEncoding encoding)
 {
-    wxCHECK_MSG( Ok(), wxFONTENCODING_DEFAULT, wxT("invalid font") );
+    Unshare();
 
-    return M_FONTDATA->m_encoding;
+    M_FONTDATA->SetEncoding(encoding);
 }
 
-wxNativeFontInfo *wxFont::GetNativeFontInfo() const
+void wxFont::SetNativeFontInfo( const wxNativeFontInfo& info )
 {
-    wxCHECK_MSG( Ok(), (wxNativeFontInfo *)NULL, wxT("invalid font") );
+    Unshare();
 
-    if(M_FONTDATA->m_nativeFontInfo.GetXFontName().IsEmpty())
-        GetInternalFont();
+    M_FONTDATA->SetNativeFontInfo( info );
+}
 
-    return new wxNativeFontInfo(M_FONTDATA->m_nativeFontInfo);
+void wxFont::SetNoAntiAliasing( bool no )
+{
+    Unshare();
+
+    M_FONTDATA->SetNoAntiAliasing( no );
 }
 
+#if wxUSE_UNICODE
+#else
+
 // ----------------------------------------------------------------------------
-// real implementation
+// X11 implementation
 // ----------------------------------------------------------------------------
 
 // Find an existing, or create a new, XFontStruct
@@ -536,3 +914,4 @@ WXFontStructPtr wxFont::GetFontStruct(double scale, WXDisplay* display) const
     return (f ? f->m_fontStruct : (WXFontStructPtr) 0);
 }
 
+#endif
diff --git a/src/x11/glcanvas.cpp b/src/x11/glcanvas.cpp
index f45784eeab..cac1674d9f 100644
--- a/src/x11/glcanvas.cpp
+++ b/src/x11/glcanvas.cpp
@@ -238,8 +238,8 @@ bool wxGLCanvas::Create( wxWindow *parent,
 
     // Check for the presence of the GLX extension
     if(!glXQueryExtension(display, NULL, NULL)) {
-	wxDebugMsg("wxGLCanvas: GLX extension is missing\n");
-	return false;
+	wxLogDebug("wxGLCanvas: GLX extension is missing\n");
+	return FALSE;
     }
 
     if(attribList) {
@@ -287,7 +287,7 @@ bool wxGLCanvas::Create( wxWindow *parent,
       attribList = (int*) data;
       // Get an appropriate visual
       vi = glXChooseVisual(display, DefaultScreen(display), attribList);
-      if(!vi) return false;
+      if(!vi) return FALSE;
       
       // Here we should make sure that vi is the same visual as the
       // one used by the xwindow drawable in wxCanvas.  However,
@@ -298,9 +298,9 @@ bool wxGLCanvas::Create( wxWindow *parent,
 	XGetWindowAttributes(display, (Window) GetClientAreaWindow(), &xwa);
 	vi_templ.visualid = XVisualIDFromVisual(xwa.visual);
 	vi = XGetVisualInfo(display, VisualIDMask, &vi_templ, &n);
-	if(!vi) return false;
+	if(!vi) return FALSE;
 	glXGetConfig(display, vi, GLX_USE_GL, &val);
-	if(!val) return false;
+	if(!val) return FALSE;
 	// Basically, this is it.  It should be possible to use vi
 	// in glXCreateContext() below.  But this fails with Mesa.
 	// I notified the Mesa author about it; there may be a fix.
@@ -327,7 +327,7 @@ bool wxGLCanvas::Create( wxWindow *parent,
 	a_list[n] = None;
 	// XFree(vi);
 	vi = glXChooseVisual(display, DefaultScreen(display), a_list);
-	if(!vi) return false;
+	if(!vi) return FALSE;
 #endif /* OLD_MESA */
     }
 
@@ -348,7 +348,7 @@ bool wxGLCanvas::Create( wxWindow *parent,
 #endif
     SetCurrent();
 
-    return true;
+    return TRUE;
 }
 
 wxGLCanvas::~wxGLCanvas(void)
diff --git a/src/x11/gsockx11.c b/src/x11/gsockx11.c
index 1eabbedac9..6fc3464ec7 100644
--- a/src/x11/gsockx11.c
+++ b/src/x11/gsockx11.c
@@ -30,7 +30,7 @@ void wxUnregisterSocketCallback(int fd, wxSocketTableType socketType);
 static void _GSocket_X11_Input(int *fid, void* data)
 {
   GSocket *socket = (GSocket *)data;
-
+  
   _GSocket_Detected_Read(socket);
 }
 
@@ -76,8 +76,10 @@ void _GSocket_Install_Callback(GSocket *socket, GSocketEvent event)
     default: return;
   }
 
-  //  if (m_id[c] != -1)
-  //    XtRemoveInput(m_id[c]);
+#if 0
+  if (m_id[c] != -1)
+      XtRemoveInput(m_id[c]);
+#endif /* 0 */
 
   if (c == 0)
   {
diff --git a/src/x11/pango_x.cpp b/src/x11/pango_x.cpp
new file mode 100644
index 0000000000..e3e12e3dec
--- /dev/null
+++ b/src/x11/pango_x.cpp
@@ -0,0 +1,290 @@
+/**
+ * This file gets included from dcclient.cpp and implements 
+ * the X11 interface to Pango. 
+ * Copyright (C) Owen Taylor and Robert Roebling.
+ */
+
+/* Declaration */
+
+void
+x11_draw_glyphs( Drawable       drawable,
+		         GC             gc,
+		         PangoFont     *font,
+		         int            x,
+		         int            y,
+		         PangoGlyphString *glyphs,
+                 wxColour       &colour );
+                 
+void 
+x11_draw_layout_line_with_colors( Drawable         drawable,
+                                  GC               gc,
+                                  int              x, 
+                                  int              y,
+                                  PangoLayoutLine  *line,
+                                  wxColour       &colour );
+                                  
+void 
+x11_draw_layout_with_colors( Drawable      drawable,
+                             GC            gc,
+                             int           x, 
+                             int           y,
+                             PangoLayout  *layout,
+                             wxColour     &colour );
+                             
+void 
+x11_draw_layout( Drawable     drawable,
+                 GC           gc,
+                 int          x, 
+                 int          y,
+                 PangoLayout *layout,
+                 wxColour    &colour);
+                 
+void
+x11_pango_get_item_properties( PangoItem      *item,
+                               PangoUnderline *uline,
+                               gboolean       *strikethrough,
+                               gint           *rise,
+                               PangoColor     *fg_color,
+                               gboolean       *fg_set,
+                               PangoColor     *bg_color,
+                               gboolean       *bg_set,
+                               gboolean       *shape_set,
+                               PangoRectangle *ink_rect,
+                               PangoRectangle *logical_rect);
+
+/* Implementation */
+
+void
+x11_draw_glyphs( Drawable            drawable,
+		         GC                  gc,
+		         PangoFont          *font,
+		         int                 x,
+		         int                 y,
+		         PangoGlyphString   *glyphs,
+                 wxColour           &colour )
+{
+    if (PANGO_XFT_IS_FONT (font))
+    {
+        Display* xdisplay = wxGlobalDisplay();
+        int xscreen = DefaultScreen( xdisplay );
+        Visual* xvisual = DefaultVisual( xdisplay, xscreen );
+
+        Colormap xcolormap = DefaultColormapOfScreen( XScreenOfDisplay( xdisplay, xscreen ) );
+
+        XftDraw *draw = XftDrawCreate( xdisplay, drawable, xvisual, xcolormap );
+        XftColor color;
+        color.pixel = 0;
+        color.color.red = colour.Red() << 8;
+        color.color.green = colour.Green() << 8;
+        color.color.blue = colour.Blue() << 8;
+        color.color.alpha = 65000;
+        pango_xft_render( draw, &color, font, glyphs, x, y );
+        
+        XftDrawDestroy( draw );
+    }
+    else
+    {
+        pango_x_render( wxGlobalDisplay(), drawable, gc, font, glyphs, x, y );
+    }
+}
+
+void 
+x11_draw_layout_line_with_colors( Drawable         drawable,
+                                  GC               gc,
+                                  int              x, 
+                                  int              y,
+                                  PangoLayoutLine *line,
+                                  wxColour        &colour )
+{
+    PangoRectangle overall_rect;
+    PangoRectangle logical_rect;
+    PangoRectangle ink_rect;
+    PangoContext *context;
+    gint x_off = 0;
+    gint rise = 0;
+
+    context = pango_layout_get_context (line->layout);
+  
+    pango_layout_line_get_extents (line,NULL, &overall_rect);
+  
+    GSList *tmp_list = line->runs;
+    while (tmp_list)
+    {
+        PangoUnderline uline = PANGO_UNDERLINE_NONE;
+        PangoLayoutRun *run = (PangoLayoutRun *) tmp_list->data;
+        PangoColor fg_color, bg_color;
+        gboolean strike, fg_set, bg_set, shape_set;
+        gint risen_y;
+      
+        tmp_list = tmp_list->next;
+      
+        x11_pango_get_item_properties (run->item, &uline, 
+            &strike, &rise,  &fg_color, &fg_set, &bg_color, &bg_set, 
+            &shape_set, &ink_rect, &logical_rect);
+
+        /* we subtract the rise because X coordinates are upside down */
+        risen_y = y - rise / PANGO_SCALE;
+      
+        if (!shape_set)
+        {
+            if (uline == PANGO_UNDERLINE_NONE)
+                pango_glyph_string_extents (run->glyphs, run->item->analysis.font, NULL, &logical_rect);
+            else
+                pango_glyph_string_extents (run->glyphs, run->item->analysis.font, &ink_rect, &logical_rect);
+        }
+
+#if 0
+	    XDrawRectangle( drawable, gc, TRUE,
+			      x + (x_off + logical_rect.x) / PANGO_SCALE,
+			      risen_y + overall_rect.y / PANGO_SCALE,
+			      logical_rect.width / PANGO_SCALE,
+			      overall_rect.height / PANGO_SCALE);
+#endif
+
+        if (!shape_set)
+        {
+            int gx = x + x_off / PANGO_SCALE;
+            int gy = risen_y;
+          
+            x11_draw_glyphs( drawable, gc, run->item->analysis.font, gx, gy, run->glyphs, colour );
+        }
+      
+        if (uline ==  PANGO_UNDERLINE_SINGLE)
+        {  
+            XDrawLine( wxGlobalDisplay(), drawable, gc,
+			  x + (x_off + ink_rect.x) / PANGO_SCALE - 1,
+                          risen_y + 1,
+			  x + (x_off + ink_rect.x + ink_rect.width) / PANGO_SCALE,
+                         risen_y + 1);
+        }
+
+        x_off += logical_rect.width;
+    }
+}
+
+void 
+x11_draw_layout_with_colors( Drawable      drawable,
+                             GC            gc,
+                             int           x, 
+                             int           y,
+                             PangoLayout  *layout,
+                             wxColour       &colour )
+{
+    PangoLayoutIter *iter = pango_layout_get_iter (layout);
+  
+    do
+    {
+        PangoLayoutLine *line = pango_layout_iter_get_line (iter);
+      
+        PangoRectangle logical_rect;
+        pango_layout_iter_get_line_extents (iter, NULL, &logical_rect);
+        
+        int baseline = pango_layout_iter_get_baseline (iter);
+      
+        x11_draw_layout_line_with_colors( drawable, gc,
+                                          x + logical_rect.x / PANGO_SCALE,
+                                          y + baseline / PANGO_SCALE,
+                                          line,
+                                          colour );
+                                          
+    } while (pango_layout_iter_next_line (iter));
+
+    pango_layout_iter_free (iter);
+}
+
+void 
+x11_draw_layout( Drawable     drawable,
+                 GC           gc,
+                 int          x, 
+                 int          y,
+                 PangoLayout *layout,
+                 wxColour    &colour)
+{
+    wxCHECK_RET( layout, wxT("No layout") );
+
+    x11_draw_layout_with_colors (drawable, gc, x, y, layout, colour );
+}
+
+void
+x11_pango_get_item_properties( PangoItem      *item,
+                               PangoUnderline *uline,
+                               gboolean       *strikethrough,
+                               gint           *rise,
+                               PangoColor     *fg_color,
+                               gboolean       *fg_set,
+                               PangoColor     *bg_color,
+                               gboolean       *bg_set,
+                               gboolean       *shape_set,
+                               PangoRectangle *ink_rect,
+                               PangoRectangle *logical_rect)
+{
+  GSList *tmp_list = item->analysis.extra_attrs;
+
+  if (strikethrough)
+      *strikethrough = FALSE;
+  
+  if (fg_set)
+    *fg_set = FALSE;
+  
+  if (bg_set)
+    *bg_set = FALSE;
+
+  if (shape_set)
+    *shape_set = FALSE;
+
+  if (rise)
+    *rise = 0;
+
+  while (tmp_list)
+    {
+      PangoAttribute *attr = (PangoAttribute *) tmp_list->data;
+
+      switch (attr->klass->type)
+	{
+	case PANGO_ATTR_UNDERLINE:
+	  if (uline)
+	    *uline = (PangoUnderline) ((PangoAttrInt *)attr)->value;
+	  break;
+
+	case PANGO_ATTR_STRIKETHROUGH:
+	    if (strikethrough)
+		*strikethrough = ((PangoAttrInt *)attr)->value;
+	    break;
+	    
+	case PANGO_ATTR_FOREGROUND:
+	  if (fg_color)
+	    *fg_color = ((PangoAttrColor *)attr)->color;
+	  if (fg_set)
+	    *fg_set = TRUE;
+	  
+	  break;
+	  
+	case PANGO_ATTR_BACKGROUND:
+	  if (bg_color)
+	    *bg_color = ((PangoAttrColor *)attr)->color;
+	  if (bg_set)
+	    *bg_set = TRUE;
+	  
+	  break;
+
+	case PANGO_ATTR_SHAPE:
+	  if (shape_set)
+	    *shape_set = TRUE;
+	  if (logical_rect)
+	    *logical_rect = ((PangoAttrShape *)attr)->logical_rect;
+	  if (ink_rect)
+	    *ink_rect = ((PangoAttrShape *)attr)->ink_rect;
+	  break;
+
+        case PANGO_ATTR_RISE:
+          if (rise)
+            *rise = ((PangoAttrInt *)attr)->value;
+          break;
+          
+	default:
+	  break;
+	}
+      tmp_list = tmp_list->next;
+    }
+}
+
diff --git a/src/x11/pangox11.cpp b/src/x11/pangox11.cpp
new file mode 100644
index 0000000000..17108cf60b
--- /dev/null
+++ b/src/x11/pangox11.cpp
@@ -0,0 +1,276 @@
+/**
+ * This file gets included from dcclient.cpp and implements 
+ * the X11 interface to Pango. 
+ * Copyright (C) Owen Taylor and Robert Roebling.
+ */
+
+/* Declaration */
+
+void
+x11_draw_glyphs( Drawable       drawable,
+		         GC             gc,
+		         PangoFont     *font,
+		         int            x,
+		         int            y,
+		         PangoGlyphString *glyphs);
+                 
+void 
+x11_draw_layout_line_with_colors( Drawable         drawable,
+                                  GC               gc,
+                                  int              x, 
+                                  int              y,
+                                  PangoLayoutLine  *line,
+                                  XColor           *foreground,
+                                  XColor           *background);
+                                  
+void 
+x11_draw_layout_with_colors( Drawable      drawable,
+                             GC            gc,
+                             int           x, 
+                             int           y,
+                             PangoLayout  *layout,
+                             XColor       *foreground,
+                             XColor       *background);
+                             
+void 
+x11_draw_layout( Drawable     drawable,
+                 GC           gc,
+                 int          x, 
+                 int          y,
+                 PangoLayout *layout);
+                 
+void
+x11_pango_get_item_properties( PangoItem      *item,
+                               PangoUnderline *uline,
+                               gboolean       *strikethrough,
+                               gint           *rise,
+                               PangoColor     *fg_color,
+                               gboolean       *fg_set,
+                               PangoColor     *bg_color,
+                               gboolean       *bg_set,
+                               gboolean       *shape_set,
+                               PangoRectangle *ink_rect,
+                               PangoRectangle *logical_rect);
+
+/* Implementation */
+
+void
+x11_draw_glyphs( Drawable       drawable,
+		         GC             gc,
+		         PangoFont     *font,
+		         int            x,
+		         int            y,
+		         PangoGlyphString *glyphs)
+{
+    if (PANGO_XFT_IS_FONT (font))
+    {
+        pango_xft_picture_render( wxGlobalDisplay(), drawable, drawable, font, glyphs, x, y );
+    }
+    else
+    {
+        pango_x_render( wxGlobalDisplay(), drawable, gc, font, glyphs, x, y );
+    }
+}
+
+void 
+x11_draw_layout_line_with_colors( Drawable         drawable,
+                                  GC               gc,
+                                  int              x, 
+                                  int              y,
+                                  PangoLayoutLine  *line,
+                                  XColor           *foreground,
+                                  XColor           *background)
+{
+    PangoRectangle overall_rect;
+    PangoRectangle logical_rect;
+    PangoRectangle ink_rect;
+    PangoContext *context;
+    gint x_off = 0;
+    gint rise = 0;
+
+    context = pango_layout_get_context (line->layout);
+  
+    pango_layout_line_get_extents (line,NULL, &overall_rect);
+  
+    GSList *tmp_list = line->runs;
+    while (tmp_list)
+    {
+        PangoUnderline uline = PANGO_UNDERLINE_NONE;
+        PangoLayoutRun *run = (PangoLayoutRun *) tmp_list->data;
+        PangoColor fg_color, bg_color;
+        gboolean strike, fg_set, bg_set, shape_set;
+        gint risen_y;
+      
+        tmp_list = tmp_list->next;
+      
+        x11_pango_get_item_properties (run->item, &uline, 
+            &strike, &rise,  &fg_color, &fg_set, &bg_color, &bg_set, 
+            &shape_set, &ink_rect, &logical_rect);
+
+        /* we subtract the rise because X coordinates are upside down */
+        risen_y = y - rise / PANGO_SCALE;
+      
+        if (!shape_set)
+        {
+            if (uline == PANGO_UNDERLINE_NONE)
+                pango_glyph_string_extents (run->glyphs, run->item->analysis.font, NULL, &logical_rect);
+            else
+                pango_glyph_string_extents (run->glyphs, run->item->analysis.font, &ink_rect, &logical_rect);
+        }
+
+#if 0
+	    XDrawRectangle( drawable, gc, TRUE,
+			      x + (x_off + logical_rect.x) / PANGO_SCALE,
+			      risen_y + overall_rect.y / PANGO_SCALE,
+			      logical_rect.width / PANGO_SCALE,
+			      overall_rect.height / PANGO_SCALE);
+#endif
+
+        if (!shape_set)
+        {
+            int gx = x + x_off / PANGO_SCALE;
+            int gy = risen_y;
+          
+            x11_draw_glyphs( drawable, gc, run->item->analysis.font, gx, gy, run->glyphs);
+        }
+      
+        if (uline ==  PANGO_UNDERLINE_SINGLE)
+        {  
+            XDrawLine( wxGlobalDisplay(), drawable, gc,
+			  x + (x_off + ink_rect.x) / PANGO_SCALE - 1,
+                          risen_y + 1,
+			  x + (x_off + ink_rect.x + ink_rect.width) / PANGO_SCALE,
+                         risen_y + 1);
+        }
+
+        x_off += logical_rect.width;
+    }
+}
+
+void 
+x11_draw_layout_with_colors( Drawable      drawable,
+                             GC            gc,
+                             int           x, 
+                             int           y,
+                             PangoLayout  *layout,
+                             XColor       *foreground,
+                             XColor       *background)
+{
+    PangoLayoutIter *iter = pango_layout_get_iter (layout);
+  
+    do
+    {
+        PangoLayoutLine *line = pango_layout_iter_get_line (iter);
+      
+        PangoRectangle logical_rect;
+        pango_layout_iter_get_line_extents (iter, NULL, &logical_rect);
+        
+        int baseline = pango_layout_iter_get_baseline (iter);
+      
+        x11_draw_layout_line_with_colors( drawable, gc,
+                                          x + logical_rect.x / PANGO_SCALE,
+                                          y + baseline / PANGO_SCALE,
+                                          line,
+                                          foreground,
+                                          background);
+                                          
+    } while (pango_layout_iter_next_line (iter));
+
+    pango_layout_iter_free (iter);
+}
+
+void 
+x11_draw_layout( Drawable     drawable,
+                 GC           gc,
+                 int          x, 
+                 int          y,
+                 PangoLayout *layout)
+{
+    wxCHECK_RET( layout, wxT("No layout") );
+
+    x11_draw_layout_with_colors (drawable, gc, x, y, layout, NULL, NULL);
+}
+
+void
+x11_pango_get_item_properties( PangoItem      *item,
+                               PangoUnderline *uline,
+                               gboolean       *strikethrough,
+                               gint           *rise,
+                               PangoColor     *fg_color,
+                               gboolean       *fg_set,
+                               PangoColor     *bg_color,
+                               gboolean       *bg_set,
+                               gboolean       *shape_set,
+                               PangoRectangle *ink_rect,
+                               PangoRectangle *logical_rect)
+{
+  GSList *tmp_list = item->analysis.extra_attrs;
+
+  if (strikethrough)
+      *strikethrough = FALSE;
+  
+  if (fg_set)
+    *fg_set = FALSE;
+  
+  if (bg_set)
+    *bg_set = FALSE;
+
+  if (shape_set)
+    *shape_set = FALSE;
+
+  if (rise)
+    *rise = 0;
+
+  while (tmp_list)
+    {
+      PangoAttribute *attr = (PangoAttribute *) tmp_list->data;
+
+      switch (attr->klass->type)
+	{
+	case PANGO_ATTR_UNDERLINE:
+	  if (uline)
+	    *uline = (PangoUnderline) ((PangoAttrInt *)attr)->value;
+	  break;
+
+	case PANGO_ATTR_STRIKETHROUGH:
+	    if (strikethrough)
+		*strikethrough = ((PangoAttrInt *)attr)->value;
+	    break;
+	    
+	case PANGO_ATTR_FOREGROUND:
+	  if (fg_color)
+	    *fg_color = ((PangoAttrColor *)attr)->color;
+	  if (fg_set)
+	    *fg_set = TRUE;
+	  
+	  break;
+	  
+	case PANGO_ATTR_BACKGROUND:
+	  if (bg_color)
+	    *bg_color = ((PangoAttrColor *)attr)->color;
+	  if (bg_set)
+	    *bg_set = TRUE;
+	  
+	  break;
+
+	case PANGO_ATTR_SHAPE:
+	  if (shape_set)
+	    *shape_set = TRUE;
+	  if (logical_rect)
+	    *logical_rect = ((PangoAttrShape *)attr)->logical_rect;
+	  if (ink_rect)
+	    *ink_rect = ((PangoAttrShape *)attr)->ink_rect;
+	  break;
+
+        case PANGO_ATTR_RISE:
+          if (rise)
+            *rise = ((PangoAttrInt *)attr)->value;
+          break;
+          
+	default:
+	  break;
+	}
+      tmp_list = tmp_list->next;
+    }
+}
+
diff --git a/src/x11/popupwin.cpp b/src/x11/popupwin.cpp
index 2fbf352a72..89991df729 100644
--- a/src/x11/popupwin.cpp
+++ b/src/x11/popupwin.cpp
@@ -17,6 +17,7 @@
 
 #include "wx/popupwin.h"
 #include "wx/app.h"
+#include "wx/settings.h"
 
 #include "wx/x11/private.h"
 #include "X11/Xatom.h"
@@ -33,7 +34,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxPopupWindow, wxWindow)
 
 bool wxPopupWindow::Create( wxWindow *parent, int style )
 {
-    if (!CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, "popup" ))
+    if (!CreateBase( parent, -1, wxDefaultPosition, wxDefaultSize, style, wxDefaultValidator, wxT("popup") ))
     {
         wxFAIL_MSG( wxT("wxPopupWindow creation failed") );
         return FALSE;
diff --git a/src/x11/reparent.cpp b/src/x11/reparent.cpp
index bbeedaea5d..50eb66f560 100644
--- a/src/x11/reparent.cpp
+++ b/src/x11/reparent.cpp
@@ -21,10 +21,11 @@
     #pragma implementation "reparent.h"
 #endif
 
-#include "wx/x11/reparent.h"
+#include "wx/setup.h"
 
 #if !wxUSE_NANOX
 
+#include "wx/x11/reparent.h"
 #include "wx/evtloop.h"
 #include "wx/log.h"
 #include "wx/app.h"
@@ -295,13 +296,13 @@ WXWindow wxReparenter::FindAClientWindow(WXWindow window, const wxString& name)
       XFetchName((Display*) wxGetDisplay(), (Window) window, &clientName);
 
       wxString str1(name);
-      wxString str2(clientName);
+      wxString str2 = wxString::FromAscii(clientName);
       str1.Lower();
       str2.Lower();
 
       bool matches;
       if (sm_exactMatch)
-          matches = (name == clientName);
+          matches = (name == wxString::FromAscii(clientName));
       else
           matches = (str1.Contains(str2) || str2.Contains(str1));
       
@@ -315,7 +316,8 @@ WXWindow wxReparenter::FindAClientWindow(WXWindow window, const wxString& name)
 
   old = XSetErrorHandler(ErrorHandler);
   if (!XQueryTree((Display*) wxGetDisplay(), (Window) window, &returnroot, &returnparent,
-    &children, &numchildren) || Xerror) {
+    &children, &numchildren) || Xerror)
+  {
     XSetErrorHandler(old);
     return NULL;
   }
diff --git a/src/x11/settings.cpp b/src/x11/settings.cpp
index f7d484b3d6..6a4d646d8f 100644
--- a/src/x11/settings.cpp
+++ b/src/x11/settings.cpp
@@ -19,6 +19,7 @@
 
 #include "wx/settings.h"
 #include "wx/gdicmn.h"
+#include "wx/x11/private.h"
 
 wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
 {
@@ -49,7 +50,7 @@ wxFont wxSystemSettingsNative::GetFont(wxSystemFont index)
         case wxSYS_DEFAULT_GUI_FONT:
         default:
         {
-            return wxFont(12, wxSWISS, wxNORMAL, wxNORMAL, FALSE);
+            return wxFont(12, wxNORMAL, wxNORMAL, wxNORMAL, FALSE);
             break;
         }
     }
@@ -123,11 +124,11 @@ int wxSystemSettingsNative::GetMetric(wxSystemMetric index)
             // TODO
             return 0;
         case wxSYS_SCREEN_X:
-            // TODO
-            return 0;
+            return DisplayWidth( wxGlobalDisplay(), 0 );
+            
         case wxSYS_SCREEN_Y:
-            // TODO
-            return 0;
+            return DisplayHeight( wxGlobalDisplay(), 0 );
+            
         case wxSYS_FRAMESIZE_X:
             // TODO
             return 0;
diff --git a/src/x11/textctrl.cpp b/src/x11/textctrl.cpp
index c65341d997..c3b1b6411f 100644
--- a/src/x11/textctrl.cpp
+++ b/src/x11/textctrl.cpp
@@ -52,7 +52,7 @@ wxSourceUndoStep::wxSourceUndoStep( wxSourceUndo type, int y1, int y2, wxTextCtr
         for (int i = m_y1; i < m_y2+2; i++)
         {
             if (i >= (int)m_owner->m_lines.GetCount())
-                m_lines.Add( "" );
+                m_lines.Add( wxT("") );
             else
                 m_lines.Add( m_owner->m_lines[i].m_text );
         }
@@ -469,184 +469,6 @@ void wxTextCtrl::SetLanguage( wxSourceLanguage lang )
     m_lang = lang;
     
     m_keywords.Clear();
-
-    if (m_lang == wxSOURCE_LANG_PYTHON)
-    {
-        m_keywords.Add( "class" );
-        m_keywords.Add( "__init__" );
-        m_keywords.Add( "return" );
-        m_keywords.Add( "def" );
-        m_keywords.Add( "try" );
-        m_keywords.Add( "except" );
-        m_keywords.Add( "if" );
-        m_keywords.Add( "else" );
-        m_keywords.Add( "finally" );
-        m_keywords.Add( "for" );
-        m_keywords.Add( "if" );
-        m_keywords.Add( "elif" );
-        m_keywords.Add( "in" );
-        m_keywords.Add( "and" );
-        m_keywords.Add( "del" );
-        m_keywords.Add( "is" );
-        m_keywords.Add( "raise" );
-        m_keywords.Add( "assert" );
-        m_keywords.Add( "lambda" );
-        m_keywords.Add( "break" );
-        m_keywords.Add( "global" );
-        m_keywords.Add( "not" );
-        m_keywords.Add( "or" );
-        m_keywords.Add( "while" );
-        m_keywords.Add( "continue" );
-        m_keywords.Add( "exec" );
-        m_keywords.Add( "pass" );
-        m_keywords.Add( "print" );
-    } else
-    if (m_lang == wxSOURCE_LANG_PERL)
-    {
-        m_keywords.Add( "main" );
-        m_keywords.Add( "sub" );
-        m_keywords.Add( "shift" );
-        m_keywords.Add( "push" );
-        m_keywords.Add( "split" );
-        m_keywords.Add( "join" );
-        m_keywords.Add( "chop" );
-        m_keywords.Add( "grep" );
-        m_keywords.Add( "open" );
-        m_keywords.Add( "print" );
-        m_keywords.Add( "sprint" );
-        m_keywords.Add( "printf" );
-        m_keywords.Add( "sprintf" );
-        m_keywords.Add( "my" );
-        m_keywords.Add( "local" );
-        m_keywords.Add( "exit" );
-        m_keywords.Add( "die" );
-        m_keywords.Add( "return" );
-        m_keywords.Add( "for" );
-        m_keywords.Add( "foreach" );
-        m_keywords.Add( "while" );
-        m_keywords.Add( "unless" );
-        m_keywords.Add( "if" );
-        m_keywords.Add( "next" );
-        m_keywords.Add( "last" );
-        m_keywords.Add( "else" );
-        m_keywords.Add( "elsif" );
-        m_keywords.Add( "ne" );
-        m_keywords.Add( "qe" );
-    }
-    else
-    if (m_lang == wxSOURCE_LANG_CPP)
-    {
-        m_keywords.Add( "class" );
-        m_keywords.Add( "return" );
-        m_keywords.Add( "if" );
-        m_keywords.Add( "then" );
-        m_keywords.Add( "else" );
-        m_keywords.Add( "struct" );
-        m_keywords.Add( "enum" );
-        m_keywords.Add( "while" );
-        m_keywords.Add( "do" );
-        m_keywords.Add( "for" );
-        m_keywords.Add( "continue" );
-        m_keywords.Add( "break" );
-        m_keywords.Add( "switch" );
-        m_keywords.Add( "case" );
-        m_keywords.Add( "goto" );
-        m_keywords.Add( "label" );
-        m_keywords.Add( "inline" );
-        m_keywords.Add( "operator" );
-        m_keywords.Add( "virtual" );
-        m_keywords.Add( "private" );
-        m_keywords.Add( "public" );
-        m_keywords.Add( "protected" );
-        m_keywords.Add( "friend" );
-        m_keywords.Add( "exception" );
-        m_keywords.Add( "throw" );
-        m_keywords.Add( "catch" );
-        m_keywords.Add( "delete" );
-        m_keywords.Add( "new" );
-        m_keywords.Add( "default" );
-        m_keywords.Add( "overload" );
-        m_keywords.Add( "using" );
-        m_keywords.Add( "template" );
-        m_keywords.Add( "try" );
-        m_keywords.Add( "typedef" );
-        m_keywords.Add( "union" );
-        m_keywords.Add( "volatile" );
-        m_keywords.Add( "asm" );
-    }
-    
-    m_defines.Clear();
-
-    if (m_lang == wxSOURCE_LANG_PYTHON)
-    {
-        m_defines.Add( "from" );
-        m_defines.Add( "import" );
-    } else
-    if (m_lang == wxSOURCE_LANG_PERL)
-    {
-        m_defines.Add( "use" );
-        m_defines.Add( "do" );
-        m_defines.Add( "package" );
-        m_defines.Add( "defined" );
-    } else
-    if (m_lang == wxSOURCE_LANG_CPP)
-    {
-        m_defines.Add( "#define" );
-        m_defines.Add( "#if" );
-        m_defines.Add( "#ifndef" );
-        m_defines.Add( "#ifdef" );
-        m_defines.Add( "#else" );
-        m_defines.Add( "#elif" );
-        m_defines.Add( "#endif" );
-        m_defines.Add( "#pragma" );
-        m_defines.Add( "#include" );
-    }
-
-    m_variables.Clear();
-    
-    if (m_lang == wxSOURCE_LANG_PYTHON)
-    {
-        m_variables.Add( "nil" );
-        m_variables.Add( "None" );
-        m_variables.Add( "self" );
-        m_variables.Add( "false" );
-        m_variables.Add( "true" );
-    } else
-    if (m_lang == wxSOURCE_LANG_PERL)
-    {
-        m_variables.Add( "undef" );
-        m_variables.Add( "class" );
-        m_variables.Add( "this" );
-        m_variables.Add( "IN" );
-        m_variables.Add( "OUT" );
-        m_variables.Add( "STDIN" );
-        m_variables.Add( "STDOUT" );
-        m_variables.Add( "STDERR" );
-    } else
-    if (m_lang == wxSOURCE_LANG_CPP)
-    {
-        m_variables.Add( "int" );
-        m_variables.Add( "bool" );
-        m_variables.Add( "void" );
-        m_variables.Add( "long" );
-        m_variables.Add( "short" );
-        m_variables.Add( "const" );
-        m_variables.Add( "signed" );
-        m_variables.Add( "unsigned" );
-        m_variables.Add( "char" );
-        m_variables.Add( "size_t" );
-        m_variables.Add( "wchar_t" );
-        m_variables.Add( "NULL" );
-        m_variables.Add( "this" );
-        m_variables.Add( "TRUE" );
-        m_variables.Add( "FALSE" );
-        m_variables.Add( "float" );
-        m_variables.Add( "double" );
-        m_variables.Add( "register" );
-        m_variables.Add( "extern" );
-        m_variables.Add( "static" );
-        m_variables.Add( "sizeof" );
-    }
 }
 
 void wxTextCtrl::WriteText(const wxString& text2)
@@ -862,12 +684,12 @@ void wxTextCtrl::Copy()
         {
             tmp.Remove( 0, selStartX );
             sel = tmp;
-            sel.Append( "\n" );
+            sel.Append( wxT("\n") );
         }
         for (int i = selStartY+1; i < selEndY; i++)
         {
             sel.Append( m_lines[i].m_text );
-            sel.Append( "\n" );
+            sel.Append( wxT("\n") );
         }
         tmp = m_lines[selEndY].m_text;
         if (selEndX > (int)tmp.Len())
@@ -2169,7 +1991,7 @@ void wxTextCtrl::Indent()
     
     for (int i = startY; i <= endY; i++)
     {
-        m_lines[i].m_text.insert( 0u, "    " );
+        m_lines[i].m_text.insert( 0u, wxT("    ") );
         RefreshLine( i );
     }
 }
@@ -2196,7 +2018,7 @@ void wxTextCtrl::Unindent()
     {
         for (int n = 0; n < 4; n++)
         {
-            if (m_lines[i].m_text[0u] == ' ')
+            if (m_lines[i].m_text[0u] == wxT(' '))
                 m_lines[i].m_text.erase(0u,1u);
         }
         RefreshLine( i );
diff --git a/src/x11/toplevel.cpp b/src/x11/toplevel.cpp
index c9babe3825..fdcf28a869 100644
--- a/src/x11/toplevel.cpp
+++ b/src/x11/toplevel.cpp
@@ -410,10 +410,18 @@ void wxTopLevelWindowX11::SetTitle(const wxString& title)
     
     if (GetMainWindow())
     {
+#if wxUSE_UNICODE
+        //  I wonder of e.g. Metacity takes UTF-8 here
+        XStoreName(wxGlobalDisplay(), (Window) GetMainWindow(),
+            (const char*) title.ToAscii() );
+        XSetIconName(wxGlobalDisplay(), (Window) GetMainWindow(),
+            (const char*) title.ToAscii() );
+#else
         XStoreName(wxGlobalDisplay(), (Window) GetMainWindow(),
             (const char*) title);
         XSetIconName(wxGlobalDisplay(), (Window) GetMainWindow(),
             (const char*) title);
+#endif
     }
 }
 
diff --git a/src/x11/utils.cpp b/src/x11/utils.cpp
index fc15ff0ce1..d0360712e4 100644
--- a/src/x11/utils.cpp
+++ b/src/x11/utils.cpp
@@ -34,7 +34,7 @@
 #include <sys/wait.h>
 #include <pwd.h>
 #include <errno.h>
-#include <netdb.h>
+// #include <netdb.h>
 #include <signal.h>
 
 #if (defined(__SUNCC__) || defined(__CLCC__))
@@ -47,18 +47,7 @@
 
 #include "wx/unix/execute.h"
 
-#ifdef __WXMOTIF__
-#include <Xm/Xm.h>
-#include "wx/motif/private.h"
-#endif
-
-#ifdef __WXX11__
 #include "wx/x11/private.h"
-#endif
-
-#if wxUSE_RESOURCES
-#include "X11/Xresource.h"
-#endif
 
 #include "X11/Xutil.h"
 
@@ -66,24 +55,6 @@
 #pragma message enable nosimpint
 #endif
 
-// ----------------------------------------------------------------------------
-// private functions
-// ----------------------------------------------------------------------------
-
-// Yuck this is really BOTH site and platform dependent
-// so we should use some other strategy!
-#ifdef sun
-    #define DEFAULT_XRESOURCE_DIR "/usr/openwin/lib/app-defaults"
-#else
-    #define DEFAULT_XRESOURCE_DIR "/usr/lib/X11/app-defaults"
-#endif
-
-static char *GetIniFile (char *dest, const char *filename);
-
-// ============================================================================
-// implementation
-// ============================================================================
-
 // ----------------------------------------------------------------------------
 // async event processing
 // ----------------------------------------------------------------------------
@@ -112,8 +83,6 @@ void wxFlushEvents()
 #endif
 }
 
-// Check whether this window wants to process messages, e.g. Stop button
-// in long calculations.
 bool wxCheckForInterrupt(wxWindow *wnd)
 {
 #ifdef __WXMOTIF__
@@ -152,20 +121,6 @@ bool wxCheckForInterrupt(wxWindow *wnd)
 // ----------------------------------------------------------------------------
 // wxExecute stuff
 // ----------------------------------------------------------------------------
-#ifdef __WXMOTIF__
-static void xt_notify_end_process(XtPointer data, int *WXUNUSED(fid),
-                                  XtInputId *id)
-{
-    wxEndProcessData *proc_data = (wxEndProcessData *)data;
-
-    wxHandleProcessTermination(proc_data);
-
-    // VZ: I think they should be the same...
-    wxASSERT( (int)*id == proc_data->tag );
-
-    XtRemoveInput(*id);
-}
-#endif
 
 int wxAddProcessCallback(wxEndProcessData *proc_data, int fd)
 {
@@ -197,371 +152,17 @@ void wxBell()
 
 int wxGetOsVersion(int *majorVsn, int *minorVsn)
 {
-#ifdef __WXMOTIF__
-    // FIXME TODO
-    // This code is WRONG!! Does NOT return the
-    // Motif version of the libs but the X protocol
-    // version!
-    Display *display = XtDisplay ((Widget) wxTheApp->GetTopLevelWidget());
-    if (majorVsn)
-        *majorVsn = ProtocolVersion (display);
-    if (minorVsn)
-        *minorVsn = ProtocolRevision (display);
-
-    return wxMOTIF_X;
-#endif
 #ifdef __WXX11__
     if (majorVsn)
         *majorVsn = 0;
+        
     if (minorVsn)
         *minorVsn = 0;
+        
     return wxX11;
 #endif
 }
 
-// ----------------------------------------------------------------------------
-// Reading and writing resources (eg WIN.INI, .Xdefaults)
-// ----------------------------------------------------------------------------
-
-// Read $HOME for what it says is home, if not
-// read $USER or $LOGNAME for user name else determine
-// the Real User, then determine the Real home dir.
-static char * GetIniFile (char *dest, const char *filename)
-{
-    char *home = NULL;
-    if (filename && wxIsAbsolutePath(filename))
-    {
-        strcpy(dest, filename);
-    }
-    else if ((home = wxGetUserHome("")) != NULL)
-    {
-        strcpy(dest, home);
-        if (dest[strlen(dest) - 1] != '/')
-            strcat (dest, "/");
-        if (filename == NULL)
-        {
-            if ((filename = getenv ("XENVIRONMENT")) == NULL)
-                filename = ".Xdefaults";
-        }
-        else if (*filename != '.')
-            strcat (dest, ".");
-        strcat (dest, filename);
-    } else
-    {
-        dest[0] = '\0';
-    }
-    return dest;
-}
-
-#if wxUSE_RESOURCES
-
-static char *GetResourcePath(char *buf, const char *name, bool create = FALSE)
-{
-    if (create && wxFileExists (name) ) {
-        strcpy(buf, name);
-        return buf; // Exists so ...
-    }
-
-    if (*name == '/')
-        strcpy(buf, name);
-    else {
-        // Put in standard place for resource files if not absolute
-        strcpy (buf, DEFAULT_XRESOURCE_DIR);
-        strcat (buf, "/");
-        strcat (buf, (const char*) wxFileNameFromPath (name));
-    }
-
-    if (create) {
-        // Touch the file to create it
-        FILE *fd = fopen (buf, "w");
-        if (fd) fclose (fd);
-    }
-    return buf;
-}
-
-/*
-* We have a cache for writing different resource files,
-* which will only get flushed when we call wxFlushResources().
-* Build up a list of resource databases waiting to be written.
-*
-*/
-
-wxList wxResourceCache (wxKEY_STRING);
-
-void
-wxFlushResources (void)
-{
-    char nameBuffer[512];
-
-    wxNode *node = wxResourceCache.First ();
-    while (node)
-    {
-        const char *file = node->GetKeyString();
-        // If file doesn't exist, create it first.
-        (void)GetResourcePath(nameBuffer, file, TRUE);
-
-        XrmDatabase database = (XrmDatabase) node->Data ();
-        XrmPutFileDatabase (database, nameBuffer);
-        XrmDestroyDatabase (database);
-        wxNode *next = node->Next ();
-        delete node;
-        node = next;
-    }
-}
-
-static XrmDatabase wxResourceDatabase = 0;
-
-void wxXMergeDatabases (wxApp * theApp, Display * display);
-
-bool wxWriteResource(const wxString& section, const wxString& entry, const wxString& value, const wxString& file)
-{
-    char buffer[500];
-
-    (void) GetIniFile (buffer, file);
-
-    XrmDatabase database;
-    wxNode *node = wxResourceCache.Find (buffer);
-    if (node)
-        database = (XrmDatabase) node->Data ();
-    else
-    {
-        database = XrmGetFileDatabase (buffer);
-        wxResourceCache.Append (buffer, (wxObject *) database);
-    }
-
-    char resName[300];
-    strcpy (resName, (const char*) section);
-    strcat (resName, ".");
-    strcat (resName, (const char*) entry);
-
-    XrmPutStringResource (&database, resName, value);
-    return TRUE;
-}
-
-bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file)
-{
-    char buf[50];
-    sprintf(buf, "%.4f", value);
-    return wxWriteResource(section, entry, buf, file);
-}
-
-bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file)
-{
-    char buf[50];
-    sprintf(buf, "%ld", value);
-    return wxWriteResource(section, entry, buf, file);
-}
-
-bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file)
-{
-    char buf[50];
-    sprintf(buf, "%d", value);
-    return wxWriteResource(section, entry, buf, file);
-}
-
-bool wxGetResource(const wxString& section, const wxString& entry, char **value, const wxString& file)
-{
-    if (!wxResourceDatabase)
-    {
-        Display *display = (Display*) wxGetDisplay();
-        wxXMergeDatabases (wxTheApp, display);
-    }
-
-    XrmDatabase database;
-
-    if (file != "")
-    {
-        char buffer[500];
-
-        // Is this right? Trying to get it to look in the user's
-        // home directory instead of current directory -- JACS
-        (void) GetIniFile (buffer, file);
-
-        wxNode *node = wxResourceCache.Find (buffer);
-        if (node)
-            database = (XrmDatabase) node->Data ();
-        else
-        {
-            database = XrmGetFileDatabase (buffer);
-            wxResourceCache.Append (buffer, (wxObject *) database);
-        }
-    }
-    else
-        database = wxResourceDatabase;
-
-    XrmValue xvalue;
-    char *str_type[20];
-    char buf[150];
-    strcpy (buf, section);
-    strcat (buf, ".");
-    strcat (buf, entry);
-
-    Bool success = XrmGetResource (database, buf, "*", str_type,
-        &xvalue);
-    // Try different combinations of upper/lower case, just in case...
-    if (!success)
-    {
-        buf[0] = (isupper (buf[0]) ? tolower (buf[0]) : toupper (buf[0]));
-        success = XrmGetResource (database, buf, "*", str_type,
-            &xvalue);
-    }
-    if (success)
-    {
-        if (*value)
-            delete[] *value;
-
-        *value = new char[xvalue.size + 1];
-        strncpy (*value, xvalue.addr, (int) xvalue.size);
-        return TRUE;
-    }
-    return FALSE;
-}
-
-bool wxGetResource(const wxString& section, const wxString& entry, float *value, const wxString& file)
-{
-    char *s = NULL;
-    bool succ = wxGetResource(section, entry, (char **)&s, file);
-    if (succ)
-    {
-        *value = (float)strtod(s, NULL);
-        delete[] s;
-        return TRUE;
-    }
-    else return FALSE;
-}
-
-bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file)
-{
-    char *s = NULL;
-    bool succ = wxGetResource(section, entry, (char **)&s, file);
-    if (succ)
-    {
-        *value = strtol(s, NULL, 10);
-        delete[] s;
-        return TRUE;
-    }
-    else return FALSE;
-}
-
-bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file)
-{
-    char *s = NULL;
-    bool succ = wxGetResource(section, entry, (char **)&s, file);
-    if (succ)
-    {
-        // Handle True, False here
-        // True, Yes, Enables, Set or  Activated
-        if (*s == 'T' || *s == 'Y' || *s == 'E' || *s == 'S' || *s == 'A')
-            *value = TRUE;
-        // False, No, Disabled, Reset, Cleared, Deactivated
-        else if (*s == 'F' || *s == 'N' || *s == 'D' || *s == 'R' || *s == 'C')
-            *value = FALSE;
-        // Handle as Integer
-        else
-            *value = (int) strtol (s, NULL, 10);
-        delete[] s;
-        return TRUE;
-    }
-    else
-        return FALSE;
-}
-
-void wxXMergeDatabases (wxApp * theApp, Display * display)
-{
-    XrmDatabase homeDB, serverDB, applicationDB;
-    char filenamebuf[1024];
-
-    char *filename = &filenamebuf[0];
-    char *environment;
-    wxString classname = theApp->GetClassName();
-    char name[256];
-    (void) strcpy (name, "/usr/lib/X11/app-defaults/");
-    (void) strcat (name, (const char*) classname);
-
-    /* Get application defaults file, if any */
-    applicationDB = XrmGetFileDatabase (name);
-    (void) XrmMergeDatabases (applicationDB, &wxResourceDatabase);
-
-    /* Merge server defaults, created by xrdb, loaded as a property of the root
-    * window when the server initializes and loaded into the display
-    * structure on XOpenDisplay;
-    * if not defined, use .Xdefaults
-    */
-
-    if (XResourceManagerString (display) != NULL)
-    {
-        serverDB = XrmGetStringDatabase (XResourceManagerString (display));
-    }
-    else
-    {
-        (void) GetIniFile (filename, NULL);
-        serverDB = XrmGetFileDatabase (filename);
-    }
-    XrmMergeDatabases (serverDB, &wxResourceDatabase);
-
-    /* Open XENVIRONMENT file, or if not defined, the .Xdefaults,
-    * and merge into existing database
-    */
-
-    if ((environment = getenv ("XENVIRONMENT")) == NULL)
-    {
-        size_t len;
-        environment = GetIniFile (filename, NULL);
-        len = strlen (environment);
-        wxString hostname = wxGetHostName();
-        if ( !!hostname )
-            strncat(environment, hostname, 1024 - len);
-    }
-    homeDB = XrmGetFileDatabase (environment);
-    XrmMergeDatabases (homeDB, &wxResourceDatabase);
-}
-
-#if 0
-
-/*
-* Not yet used but may be useful.
-*
-*/
-void
-wxSetDefaultResources (const Widget w, const char **resourceSpec, const char *name)
-{
-    int i;
-    Display *dpy = XtDisplay (w);    // Retrieve the display pointer
-
-    XrmDatabase rdb = NULL;    // A resource data base
-
-    // Create an empty resource database
-    rdb = XrmGetStringDatabase ("");
-
-    // Add the Component resources, prepending the name of the component
-
-    i = 0;
-    while (resourceSpec[i] != NULL)
-    {
-        char buf[1000];
-
-        sprintf (buf, "*%s%s", name, resourceSpec[i++]);
-        XrmPutLineResource (&rdb, buf);
-    }
-
-    // Merge them into the Xt database, with lowest precendence
-
-    if (rdb)
-    {
-#if (XlibSpecificationRelease>=5)
-        XrmDatabase db = XtDatabase (dpy);
-        XrmCombineDatabase (rdb, &db, FALSE);
-#else
-        XrmMergeDatabases (dpy->db, &rdb);
-        dpy->db = rdb;
-#endif
-    }
-}
-#endif
-// 0
-
-#endif // wxUSE_RESOURCES
-
 // ----------------------------------------------------------------------------
 // display info
 // ----------------------------------------------------------------------------
@@ -665,30 +266,6 @@ bool wxSetDisplay(const wxString& display_name)
     }
     else
     {
-#ifdef __WXMOTIF__
-        Cardinal argc = 0;
-
-        Display *display = XtOpenDisplay((XtAppContext) wxTheApp->GetAppContext(),
-            (const char*) display_name,
-            (const char*) wxTheApp->GetAppName(),
-            (const char*) wxTheApp->GetClassName(),
-            NULL,
-#if XtSpecificationRelease < 5
-            0, &argc,
-#else
-            0, (int *)&argc,
-#endif
-            NULL);
-
-        if (display)
-        {
-            gs_currentDisplay = (WXDisplay*) display;
-            return TRUE;
-        }
-        else
-            return FALSE;
-#endif
-#ifdef __WXX11__
         Display* display = XOpenDisplay((char*) display_name.c_str());
 
         if (display)
@@ -698,7 +275,6 @@ bool wxSetDisplay(const wxString& display_name)
         }
         else
             return FALSE;
-#endif
     }
 }
 
@@ -1098,153 +674,6 @@ wxString wxGetXEventName(XEvent& event)
 }
 #endif
 
-#ifdef __WXMOTIF__
-// ----------------------------------------------------------------------------
-// accelerators
-// ----------------------------------------------------------------------------
-
-// Find the letter corresponding to the mnemonic, for Motif
-char wxFindMnemonic (const char *s)
-{
-    char mnem = 0;
-    int len = strlen (s);
-    int i;
-    for (i = 0; i < len; i++)
-    {
-        if (s[i] == '&')
-        {
-            // Carefully handle &&
-            if ((i + 1) <= len && s[i + 1] == '&')
-                i++;
-            else
-            {
-                mnem = s[i + 1];
-                break;
-            }
-        }
-    }
-    return mnem;
-}
-
-char * wxFindAccelerator (const char *s)
-{
-    // VZ: this function returns incorrect keysym which completely breaks kbd
-    //     handling
-    return NULL;
-
-#if 0
-   // The accelerator text is after the \t char.
-    while (*s && *s != '\t')
-        s++;
-    if (*s == '\0')
-        return (NULL);
-    s++;
-    /*
-    Now we need to format it as X standard:
-
-      input            output
-
-        F7           --> <Key>F7
-        Ctrl+N       --> Ctrl<Key>N
-        Alt+k        --> Meta<Key>k
-        Ctrl+Shift+A --> Ctrl Shift<Key>A
-
-    */
-
-    static char buf[256];
-    buf[0] = '\0';
-    char *tmp = copystring (s);
-    s = tmp;
-    char *p = tmp;
-
-    while (1)
-    {
-        while (*p && *p != '+')
-            p++;
-        if (*p)
-        {
-            *p = '\0';
-            if (buf[0])
-                strcat (buf, " ");
-            if (strcmp (s, "Alt"))
-                strcat (buf, s);
-            else
-                strcat (buf, "Meta");
-            s = p++;
-        }
-        else
-        {
-            strcat (buf, "<Key>");
-            strcat (buf, s);
-            break;
-        }
-    }
-    delete[]tmp;
-    return buf;
-#endif
-}
-
-XmString wxFindAcceleratorText (const char *s)
-{
-    // VZ: this function returns incorrect keysym which completely breaks kbd
-    //     handling
-    return NULL;
-
-#if 0
-   // The accelerator text is after the \t char.
-    while (*s && *s != '\t')
-        s++;
-    if (*s == '\0')
-        return (NULL);
-    s++;
-    XmString text = XmStringCreateSimple ((char *)s);
-    return text;
-#endif
-}
-
-
-// These functions duplicate those in wxWindow, but are needed
-// for use outside of wxWindow (e.g. wxMenu, wxMenuBar).
-
-// Change a widget's foreground and background colours.
-
-void wxDoChangeForegroundColour(WXWidget widget, wxColour& foregroundColour)
-{
-    // When should we specify the foreground, if it's calculated
-    // by wxComputeColours?
-    // Solution: say we start with the default (computed) foreground colour.
-    // If we call SetForegroundColour explicitly for a control or window,
-    // then the foreground is changed.
-    // Therefore SetBackgroundColour computes the foreground colour, and
-    // SetForegroundColour changes the foreground colour. The ordering is
-    // important.
-
-    XtVaSetValues ((Widget) widget,
-        XmNforeground, foregroundColour.AllocColour(XtDisplay((Widget) widget)),
-        NULL);
-}
-
-void wxDoChangeBackgroundColour(WXWidget widget, wxColour& backgroundColour, bool changeArmColour)
-{
-    wxComputeColours (XtDisplay((Widget) widget), & backgroundColour,
-        (wxColour*) NULL);
-
-    XtVaSetValues ((Widget) widget,
-        XmNbackground, g_itemColors[wxBACK_INDEX].pixel,
-        XmNtopShadowColor, g_itemColors[wxTOPS_INDEX].pixel,
-        XmNbottomShadowColor, g_itemColors[wxBOTS_INDEX].pixel,
-        XmNforeground, g_itemColors[wxFORE_INDEX].pixel,
-        NULL);
-
-    if (changeArmColour)
-        XtVaSetValues ((Widget) widget,
-        XmNarmColor, g_itemColors[wxSELE_INDEX].pixel,
-        NULL);
-}
-
-#endif
-    // __WXMOTIF__
-
 bool wxWindowIsVisible(Window win)
 {
     XWindowAttributes wa;
diff --git a/src/x11/window.cpp b/src/x11/window.cpp
index 1df4868f14..8ee15a5f5d 100644
--- a/src/x11/window.cpp
+++ b/src/x11/window.cpp
@@ -40,6 +40,7 @@
 #include "wx/module.h"
 #include "wx/menuitem.h"
 #include "wx/log.h"
+#include "wx/fontutil.h"
 #include "wx/univ/renderer.h"
 
 #if  wxUSE_DRAG_AND_DROP
@@ -151,18 +152,18 @@ bool wxWindowX11::Create(wxWindow *parent, wxWindowID id,
     // Note: The Xlib manual doesn't mention this restriction of XCreateWindow.
     wxSize size2(size);
     if (size2.x <= 0)
-	    size2.x = 20;
+        size2.x = 20;
     if (size2.y <= 0)
-	    size2.y = 20;
+        size2.y = 20;
 
     wxPoint pos2(pos);
     if (pos2.x == -1)
-	    pos2.x = 0;
+        pos2.x = 0;
     if (pos2.y == -1)
-	    pos2.y = 0;
-    
+        pos2.y = 0;
+        
 #if wxUSE_TWO_WINDOWS
-    bool need_two_windows = 
+    bool need_two_windows =
         ((( wxSUNKEN_BORDER | wxRAISED_BORDER | wxSIMPLE_BORDER | wxHSCROLL | wxVSCROLL ) & m_windowStyle) != 0);
 #else
     bool need_two_windows = FALSE;
@@ -307,7 +308,7 @@ bool wxWindowX11::Create(wxWindow *parent, wxWindowID id,
             xattributes_mask |= CWBitGravity;
             xattributes.bit_gravity = NorthWestGravity;
         }
-
+        
         Window xwindow = XCreateWindow( xdisplay, xparent, pos2.x, pos2.y, size2.x, size2.y, 
             0, DefaultDepth(xdisplay,xscreen), InputOutput, xvisual, xattributes_mask, &xattributes );
 #endif
@@ -340,7 +341,7 @@ bool wxWindowX11::Create(wxWindow *parent, wxWindowID id,
 wxWindowX11::~wxWindowX11()
 {
     if (g_captureWindow == this)
-	g_captureWindow = NULL;
+        g_captureWindow = NULL;
     
     m_isBeingDeleted = TRUE;
     
@@ -490,7 +491,7 @@ void wxWindowX11::DoCaptureMouse()
             FALSE,
             ButtonPressMask | ButtonReleaseMask | ButtonMotionMask | EnterWindowMask | LeaveWindowMask | PointerMotionMask,
             GrabModeAsync,
-	        GrabModeAsync,
+            GrabModeAsync,
             None,
             None, /* cursor */ // TODO: This may need to be set to the cursor of this window
             CurrentTime );
@@ -498,12 +499,11 @@ void wxWindowX11::DoCaptureMouse()
         if (res != GrabSuccess)
         {
             wxString msg;
-            msg.Printf("Failed to grab pointer for window %s", this->GetClassInfo()->GetClassName());
+            msg.Printf(wxT("Failed to grab pointer for window %s"), this->GetClassInfo()->GetClassName());
             wxLogDebug(msg);
             if (res == GrabNotViewable)
-            {
-                wxLogDebug("This is not a viewable window - perhaps not shown yet?");
-            }
+                wxLogDebug( wxT("This is not a viewable window - perhaps not shown yet?") );
+                
             g_captureWindow = NULL;
             return;
         }
@@ -988,6 +988,17 @@ int wxWindowX11::GetCharHeight() const
 {
     wxCHECK_MSG( m_font.Ok(), 0, "valid window font needed" );
 
+#if wxUSE_UNICODE
+    // There should be an easier way.
+    PangoLayout *layout = pango_layout_new( wxTheApp->GetPangoContext() );
+    pango_layout_set_font_description( layout, GetFont().GetNativeFontInfo()->description );
+    pango_layout_set_text(layout, "H", 1 );
+    int w,h;
+    pango_layout_get_pixel_size(layout, &w, &h);
+    g_object_unref( G_OBJECT( layout ) );
+    
+    return h;
+#else
     WXFontStructPtr pFontStruct = m_font.GetFontStruct(1.0, wxGlobalDisplay());
 
     int direction, ascent, descent;
@@ -997,12 +1008,24 @@ int wxWindowX11::GetCharHeight() const
 
     //  return (overall.ascent + overall.descent);
     return (ascent + descent);
+#endif
 }
 
 int wxWindowX11::GetCharWidth() const
 {
     wxCHECK_MSG( m_font.Ok(), 0, "valid window font needed" );
 
+#if wxUSE_UNICODE
+    // There should be an easier way.
+    PangoLayout *layout = pango_layout_new( wxTheApp->GetPangoContext() );
+    pango_layout_set_font_description( layout, GetFont().GetNativeFontInfo()->description );
+    pango_layout_set_text(layout, "H", 1 );
+    int w,h;
+    pango_layout_get_pixel_size(layout, &w, &h);
+    g_object_unref( G_OBJECT( layout ) );
+    
+    return w;
+#else
     WXFontStructPtr pFontStruct = m_font.GetFontStruct(1.0, wxGlobalDisplay());
 
     int direction, ascent, descent;
@@ -1011,6 +1034,7 @@ int wxWindowX11::GetCharWidth() const
         &descent, &overall);
 
     return overall.width;
+#endif
 }
 
 void wxWindowX11::GetTextExtent(const wxString& string,
@@ -1023,18 +1047,45 @@ void wxWindowX11::GetTextExtent(const wxString& string,
 
     wxCHECK_RET( fontToUse.Ok(), wxT("invalid font") );
 
+    if (string.IsEmpty())
+    {
+        if (x) (*x) = 0;
+        if (y) (*y) = 0;
+        return;
+    }
+
+#if wxUSE_UNICODE
+    PangoLayout *layout = pango_layout_new( wxTheApp->GetPangoContext() );
+    
+    PangoFontDescription *desc = fontToUse.GetNativeFontInfo()->description;
+    pango_layout_set_font_description(layout, desc);
+    
+    const wxCharBuffer data = wxConvUTF8.cWC2MB( string );
+    pango_layout_set_text(layout, (const char*) data, strlen( (const char*) data ));
+        
+    PangoLayoutLine *line = (PangoLayoutLine *)pango_layout_get_lines(layout)->data;
+
+    
+    PangoRectangle rect;
+    pango_layout_line_get_extents(line, NULL, &rect);
+    
+    if (x) (*x) = (wxCoord) (rect.width / PANGO_SCALE);
+    if (y) (*y) = (wxCoord) (rect.height / PANGO_SCALE);
+    if (descent)
+    {
+        // Do something about metrics here
+        (*descent) = 0;
+    }
+    if (externalLeading) (*externalLeading) = 0;  // ??
+
+    g_object_unref( G_OBJECT( layout ) );
+#else
     WXFontStructPtr pFontStruct = fontToUse.GetFontStruct(1.0, wxGlobalDisplay());
 
     int direction, ascent, descent2;
     XCharStruct overall;
     int slen = string.Len();
 
-#if 0
-    if (use16)
-        XTextExtents16((XFontStruct*) pFontStruct, (XChar2b *) (char*) (const char*) string, slen, &direction,
-        &ascent, &descent2, &overall);
-#endif
-
     XTextExtents((XFontStruct*) pFontStruct, (char*) string.c_str(), slen,
                  &direction, &ascent, &descent2, &overall);
 
@@ -1046,7 +1097,7 @@ void wxWindowX11::GetTextExtent(const wxString& string,
         *descent = descent2;
     if (externalLeading)
         *externalLeading = 0;
-
+#endif
 }
 
 // ----------------------------------------------------------------------------
@@ -1242,8 +1293,9 @@ void wxWindowX11::OnInternalIdle()
         wxString msg;
         msg.Printf("Setting focus for %s from OnInternalIdle\n", GetClassInfo()->GetClassName());
         printf(msg.c_str());
-#endif        
-	SetFocus();
+#endif
+        SetFocus();
+        
         // If it couldn't set the focus now, there's
         // no point in trying again.
         m_needsInputFocus = FALSE;
@@ -1260,15 +1312,15 @@ bool wxAddWindowToTable(Window w, wxWindow *win)
     wxWindow *oldItem = NULL;
     if ((oldItem = (wxWindow *)wxWidgetHashTable->Get ((long) w)))
     {
-        wxLogDebug("Widget table clash: new widget is %ld, %s",
-                   (long)w, win->GetClassInfo()->GetClassName());
+        wxLogDebug( wxT("Widget table clash: new widget is %ld, %s"),
+                    (long)w, win->GetClassInfo()->GetClassName());
         return FALSE;
     }
 
     wxWidgetHashTable->Put((long) w, win);
 
-    wxLogTrace("widget", "XWindow 0x%08x <-> window %p (%s)",
-               (unsigned int) w, win, win->GetClassInfo()->GetClassName());
+    wxLogTrace( wxT("widget"), wxT("XWindow 0x%08x <-> window %p (%s)"),
+                (unsigned int) w, win, win->GetClassInfo()->GetClassName());
 
     return TRUE;
 }
@@ -1292,15 +1344,15 @@ bool wxAddClientWindowToTable(Window w, wxWindow *win)
     wxWindow *oldItem = NULL;
     if ((oldItem = (wxWindow *)wxClientWidgetHashTable->Get ((long) w)))
     {
-        wxLogDebug("Client window table clash: new window is %ld, %s",
-                   (long)w, win->GetClassInfo()->GetClassName());
+        wxLogDebug( wxT("Client window table clash: new window is %ld, %s"),
+                    (long)w, win->GetClassInfo()->GetClassName());
         return FALSE;
     }
 
     wxClientWidgetHashTable->Put((long) w, win);
 
-    wxLogTrace("widget", "XWindow 0x%08x <-> window %p (%s)",
-               (unsigned int) w, win, win->GetClassInfo()->GetClassName());
+    wxLogTrace( wxT("widget"), wxT("XWindow 0x%08x <-> window %p (%s)"),
+                (unsigned int) w, win, win->GetClassInfo()->GetClassName());
 
     return TRUE;
 }
@@ -1462,7 +1514,7 @@ bool wxTranslateMouseEvent(wxMouseEvent& wxevent, wxWindow *win, Window window,
     return FALSE;
 }
 
-bool wxTranslateKeyEvent(wxKeyEvent& wxevent, wxWindow *win, Window WXUNUSED(win), XEvent *xevent)
+bool wxTranslateKeyEvent(wxKeyEvent& wxevent, wxWindow *win, Window WXUNUSED(win), XEvent *xevent, bool isAscii)
 {
     switch (XEventGetType(xevent))
     {
@@ -1474,23 +1526,27 @@ bool wxTranslateKeyEvent(wxKeyEvent& wxevent, wxWindow *win, Window WXUNUSED(win
             KeySym keySym;
             (void) XLookupString ((XKeyEvent *) xevent, buf, 20, &keySym, NULL);
             int id = wxCharCodeXToWX (keySym);
+            // id may be WXK_xxx code - these are outside ASCII range, so we
+            // can't just use toupper() on id.
+            // Only change this if we want the raw key that was pressed,
+            // and don't change it if we want an ASCII value.
+            if (!isAscii && (id >= 'a' && id <= 'z'))
+            {
+                id = id + 'A' - 'a';
+            }
 
             wxevent.m_shiftDown = XKeyEventShiftIsDown(xevent);
             wxevent.m_controlDown = XKeyEventCtrlIsDown(xevent);
             wxevent.m_altDown = XKeyEventAltIsDown(xevent);
             wxevent.m_metaDown = XKeyEventMetaIsDown(xevent);
             wxevent.SetEventObject(win);
-            wxevent.m_keyCode = toupper(id);
+            wxevent.m_keyCode = id;
             wxevent.SetTimestamp(XKeyEventGetTime(xevent));
 
             wxevent.m_x = XKeyEventGetX(xevent);
             wxevent.m_y = XKeyEventGetY(xevent);
 
-            if (id > -1)
-                return TRUE;
-            else
-                return FALSE;
-            break;
+            return id > -1;
         }
     default:
         break;
@@ -1566,8 +1622,8 @@ wxPoint wxGetMousePosition()
     unsigned int maskReturn;
 
     XQueryPointer (display,
-		   rootWindow,
-		   &rootReturn,
+                   rootWindow,
+                   &rootReturn,
                    &childReturn,
                    &rootX, &rootY, &winX, &winY, &maskReturn);
     return wxPoint(rootX, rootY);
diff --git a/src/xrc/Makefile.in b/src/xrc/Makefile.in
index f645274010..ca0f650ca8 100644
--- a/src/xrc/Makefile.in
+++ b/src/xrc/Makefile.in
@@ -7,11 +7,11 @@ expat_dir = $(top_srcdir)/contrib/src/xrc/expat
 libsrc_dir = contrib/src/xrc@PATH_IFS@$(expat_dir)/xmlparse@PATH_IFS@$(expat_dir)/xmltok
 
 
-TARGET_LIBNAME=libwxxrc
+TARGET_LIBNAME=lib@WX_LIBRARY_BASENAME@_xrc-@WX_RELEASE@
 
-LIBVERSION_CURRENT=0
-LIBVERSION_REVISION=1
-LIBVERSION_AGE=0
+LIBVERSION_CURRENT=@WX_CURRENT@
+LIBVERSION_REVISION=@WX_REVISION@
+LIBVERSION_AGE=@WX_AGE@
 
 HEADER_PATH=$(top_srcdir)/contrib/include/wx
 HEADER_SUBDIR=xrc
@@ -22,9 +22,9 @@ EXPAT_OBJECTS=xmltok.o xmlrole.o xmlparse.o
 HEADERS=xh_all.h xh_bttn.h xh_chckb.h xh_chckl.h xh_choic.h xh_combo.h \
         xh_dlg.h xh_gauge.h xh_html.h xh_menu.h xh_notbk.h xh_panel.h \
         xh_radbt.h xh_radbx.h xh_sizer.h xh_slidr.h xh_spin.h xh_stbmp.h \
-        xh_sttxt.h xh_text.h xh_listb.h xml.h xmlio.h xmlres.h xh_toolb.h \
+        xh_sttxt.h xh_text.h xh_listb.h xml.h xmlres.h xh_toolb.h \
         xh_bmpbt.h xh_cald.h xh_listc.h xh_scrol.h xh_stbox.h xh_tree.h \
-        xh_stlin.h xh_bmp.h xh_unkwn.h xh_frame.h xh_gdctl.h
+        xh_stlin.h xh_bmp.h xh_unkwn.h xh_frame.h xh_gdctl.h xh_scwin.h
 
 OBJECTS=$(EXPAT_OBJECTS) \
         xml.o xmlres.o xmlrsall.o \
@@ -33,7 +33,7 @@ OBJECTS=$(EXPAT_OBJECTS) \
         xh_radbx.o xh_sizer.o xh_slidr.o xh_spin.o xh_stbmp.o xh_sttxt.o \
         xh_text.o xh_listb.o xh_toolb.o xh_stlin.o xh_bmp.o xh_unkwn.o \
         xh_bmpbt.o xh_cald.o xh_listc.o xh_scrol.o xh_stbox.o xh_tree.o \
-        xh_frame.o xh_gdctl.o
+        xh_frame.o xh_gdctl.o xh_scwin.o
 DEPFILES=$(OBJECTS:.o=.d)
 
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include $(EXPAT_DEFS)
diff --git a/src/xrc/XrcVC.dsp b/src/xrc/XrcVC.dsp
index 44c9ba9a78..174c339711 100644
--- a/src/xrc/XrcVC.dsp
+++ b/src/xrc/XrcVC.dsp
@@ -184,6 +184,10 @@ SOURCE=.\xh_scrol.cpp
 # End Source File
 # Begin Source File
 
+SOURCE=.\xh_scwin.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=.\xh_sizer.cpp
 # End Source File
 # Begin Source File
diff --git a/src/xrc/makefile.b32 b/src/xrc/makefile.b32
index dc7d4fa68a..2024abb133 100644
--- a/src/xrc/makefile.b32
+++ b/src/xrc/makefile.b32
@@ -27,7 +27,7 @@ OBJECTS=$(EXPAT_OBJECTS) \
         xh_radbx.obj xh_sizer.obj xh_slidr.obj xh_spin.obj xh_stbmp.obj xh_sttxt.obj \
         xh_text.obj xh_listb.obj xh_toolb.obj xh_stlin.obj xh_bmp.obj \
         xh_bmpbt.obj xh_cald.obj xh_listc.obj xh_scrol.obj xh_stbox.obj \
-        xh_tree.obj xh_unkwn.obj xh_frame.obj xh_gdctl.obj
+        xh_tree.obj xh_unkwn.obj xh_frame.obj xh_gdctl.obj xh_scwin.obj
 
 !include $(WXDIR)\src\makelib.b32
 
diff --git a/src/xrc/makefile.g95 b/src/xrc/makefile.g95
index 8a4bfb322f..00b31580dc 100644
--- a/src/xrc/makefile.g95
+++ b/src/xrc/makefile.g95
@@ -28,7 +28,7 @@ OBJECTS= $(XMLPARSEDIR_OBJECTS) $(XMLTOKDIR_OBJECTS) \
         xh_radbx.o xh_sizer.o xh_slidr.o xh_spin.o xh_stbmp.o xh_sttxt.o \
         xh_text.o xh_listb.o xh_toolb.o xh_stlin.o xh_bmp.o xh_unkwn.o \
         xh_bmpbt.o xh_cald.o xh_listc.o xh_scrol.o xh_stbox.o xh_tree.o \
-        xh_frame.o xh_gdctl.o
+        xh_frame.o xh_gdctl.o xh_scwin.o
 
 include $(WXDIR)/src/makelib.g95
 
diff --git a/src/xrc/makefile.vc b/src/xrc/makefile.vc
index 51bf90f9b4..6065d42e49 100644
--- a/src/xrc/makefile.vc
+++ b/src/xrc/makefile.vc
@@ -57,7 +57,7 @@ OBJECTS=$(EXPAT_OBJS) \
         $(D)\xh_text.obj $(D)\xh_listb.obj $(D)\xh_toolb.obj \
         $(D)\xh_bmpbt.obj $(D)\xh_cald.obj $(D)\xh_listc.obj $(D)\xh_scrol.obj \
         $(D)\xh_stbox.obj $(D)\xh_tree.obj $(D)\xh_stlin.obj $(D)\xh_bmp.obj \
-        $(D)\xh_unkwn.obj $(D)\xh_gdctl.obj
+        $(D)\xh_unkwn.obj $(D)\xh_gdctl.obj $(D)\xh_scwin.obj
 
 !include $(WXDIR)\src\makelib.vc
 
diff --git a/src/xrc/makefile.wat b/src/xrc/makefile.wat
index 43cfc46647..d4069fc0f6 100644
--- a/src/xrc/makefile.wat
+++ b/src/xrc/makefile.wat
@@ -18,7 +18,7 @@ OBJECTS=xml.obj xmlres.obj xmlrsall.obj &
         xh_radbx.obj xh_sizer.obj xh_slidr.obj xh_spin.obj xh_stbmp.obj xh_sttxt.obj &
         xh_text.obj xh_listb.obj xh_toolb.obj xh_stlin.obj xh_bmp.obj &
         xh_bmpbt.obj xh_cald.obj xh_listc.obj xh_scrol.obj xh_stbox.obj &
-        xh_tree.obj xh_unkwn.obj xh_frame.obj
+        xh_tree.obj xh_unkwn.obj xh_frame.obj xh_scwin.obj
 
 
 all: $(WXXMLLIB)
diff --git a/src/xrc/xh_dlg.cpp b/src/xrc/xh_dlg.cpp
index d44ad16a91..3c916a9e1d 100644
--- a/src/xrc/xh_dlg.cpp
+++ b/src/xrc/xh_dlg.cpp
@@ -41,6 +41,8 @@ wxDialogXmlHandler::wxDialogXmlHandler() : wxXmlResourceHandler()
     XRC_ADD_STYLE(wxTAB_TRAVERSAL);
     XRC_ADD_STYLE(wxWS_EX_VALIDATE_RECURSIVELY);
     XRC_ADD_STYLE(wxCLIP_CHILDREN);
+    XRC_ADD_STYLE(wxMAXIMIZE_BOX);
+    XRC_ADD_STYLE(wxMINIMIZE_BOX);
 
     AddWindowStyles();
 }
diff --git a/src/xrc/xh_scwin.cpp b/src/xrc/xh_scwin.cpp
new file mode 100644
index 0000000000..9aedfefe57
--- /dev/null
+++ b/src/xrc/xh_scwin.cpp
@@ -0,0 +1,52 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        xh_scwin.cpp
+// Purpose:     XRC resource for wxScrolledWindow
+// Author:      Vaclav Slavik
+// Created:     2002/10/18
+// RCS-ID:      $Id$
+// Copyright:   (c) 2002 Vaclav Slavik
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+ 
+#ifdef __GNUG__
+#pragma implementation "xh_scwin.h"
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#include "wx/xrc/xh_scwin.h"
+#include "wx/scrolwin.h"
+
+
+wxScrolledWindowXmlHandler::wxScrolledWindowXmlHandler() 
+: wxXmlResourceHandler() 
+{
+    XRC_ADD_STYLE(wxHSCROLL);
+    XRC_ADD_STYLE(wxVSCROLL);
+    AddWindowStyles();
+}
+
+wxObject *wxScrolledWindowXmlHandler::DoCreateResource()
+{ 
+    XRC_MAKE_INSTANCE(control, wxScrolledWindow)
+
+    control->Create(m_parentAsWindow,
+                    GetID(),
+                    GetPosition(), GetSize(),
+                    GetStyle(wxT("style"), wxHSCROLL | wxVSCROLL),
+                    GetName());
+
+    SetupWindow(control);
+    
+    return control;
+}
+
+bool wxScrolledWindowXmlHandler::CanHandle(wxXmlNode *node)
+{
+    return IsOfClass(node, wxT("wxScrolledWindow"));
+}
diff --git a/src/xrc/xmlres.cpp b/src/xrc/xmlres.cpp
index 0a1b72cd3a..859a9eaa10 100644
--- a/src/xrc/xmlres.cpp
+++ b/src/xrc/xmlres.cpp
@@ -146,7 +146,6 @@ void wxXmlResource::ClearHandlers()
 }
 
 
-
 wxMenu *wxXmlResource::LoadMenu(const wxString& name)
 {
     return (wxMenu*)CreateResFromNode(FindResource(name, wxT("wxMenu")), NULL, NULL);
@@ -261,7 +260,7 @@ static void ProcessPlatformProperty(wxXmlNode *node)
             isok = TRUE;
         else
         {
-            wxStringTokenizer tkn(s, " |");
+            wxStringTokenizer tkn(s, wxT(" |"));
 
             while (tkn.HasMoreTokens())
             {
@@ -408,10 +407,25 @@ wxXmlNode *wxXmlResource::DoFindResource(wxXmlNode *parent,
         if ( node->GetType() == wxXML_ELEMENT_NODE &&
                  (node->GetName() == wxT("object") ||
                   node->GetName() == wxT("object_ref")) &&
-                (!classname ||
-                 node->GetPropVal(wxT("class"), wxEmptyString) == classname) &&
-                node->GetPropVal(wxT("name"), &dummy) && dummy == name )
-            return node;
+             node->GetPropVal(wxT("name"), &dummy) && dummy == name )
+        {
+            wxString cls(node->GetPropVal(wxT("class"), wxEmptyString));
+            if (!classname || cls == classname)
+                return node;
+            // object_ref may not have 'class' property:
+            if (cls.empty() && node->GetName() == wxT("object_ref"))
+            {
+                wxString refName = node->GetPropVal(wxT("ref"), wxEmptyString);
+                if (refName.empty())
+                    continue;
+                wxXmlNode* refNode = FindResource(refName, wxEmptyString, TRUE);
+                if (refNode &&
+                    refNode->GetPropVal(wxT("class"), wxEmptyString) == classname)
+                {
+                    return node;
+                }
+            }
+        }
     }
 
     if ( recursive )
@@ -487,7 +501,7 @@ static void MergeNodes(wxXmlNode& dest, wxXmlNode& with)
         for (dnode = dest.GetChildren(); dnode; dnode = dnode->GetNext() )
         {
             if ( dnode->GetName() == node->GetName() &&
-                 dnode->GetPropVal("name", wxEmptyString) == name &&
+                 dnode->GetPropVal(wxT("name"), wxEmptyString) == name &&
                  dnode->GetType() == node->GetType() )
             {
                 MergeNodes(*dnode, *node);
@@ -547,6 +561,40 @@ wxObject *wxXmlResource::CreateResFromNode(wxXmlNode *node, wxObject *parent, wx
 }
 
 
+#include "wx/listimpl.cpp"
+WX_DECLARE_LIST(wxXmlSubclassFactory, wxXmlSubclassFactoriesList);
+WX_DEFINE_LIST(wxXmlSubclassFactoriesList);
+
+wxXmlSubclassFactoriesList *wxXmlResource::ms_subclassFactories = NULL;
+
+/*static*/ void wxXmlResource::AddSubclassFactory(wxXmlSubclassFactory *factory)
+{
+    if (!ms_subclassFactories)
+    {
+        ms_subclassFactories = new wxXmlSubclassFactoriesList;
+        ms_subclassFactories->DeleteContents(TRUE);
+    }
+    ms_subclassFactories->Append(factory);
+}
+
+class wxXmlSubclassFactoryCXX : public wxXmlSubclassFactory
+{
+public:
+    ~wxXmlSubclassFactoryCXX() {}
+
+    wxObject *Create(const wxString& className)
+    {
+        wxClassInfo* classInfo = wxClassInfo::FindClass(className);
+
+        if (classInfo)
+            return classInfo->CreateObject();
+        else
+            return NULL;
+    }
+};
+
+
+
 
 
 wxXmlResourceHandler::wxXmlResourceHandler()
@@ -568,18 +616,23 @@ wxObject *wxXmlResourceHandler::CreateResource(wxXmlNode *node, wxObject *parent
         !(m_resource->GetFlags() & wxXRC_NO_SUBCLASSING))
     {
         wxString subclass = node->GetPropVal(wxT("subclass"), wxEmptyString);
-        wxClassInfo* classInfo = wxClassInfo::FindClass(subclass);
-
-        if (classInfo)
-            m_instance = classInfo->CreateObject();
-
-        if (!m_instance)
+        if (!subclass.empty())
         {
-            wxLogError(_("Subclass '%s' not found for resource '%s', not subclassing!"),
-                       subclass.c_str(), node->GetPropVal(wxT("name"), wxEmptyString).c_str());
-        }
+            for (wxXmlSubclassFactoriesList::Node *i = wxXmlResource::ms_subclassFactories->GetFirst();
+                 i; i = i->GetNext())
+            {
+                m_instance = i->GetData()->Create(subclass);
+                if (m_instance)
+                    break;
+            }
 
-        m_instance = classInfo->CreateObject();
+            if (!m_instance)
+            {
+                wxString name = node->GetPropVal(wxT("name"), wxEmptyString);
+                wxLogError(_("Subclass '%s' not found for resource '%s', not subclassing!"),
+                           subclass.c_str(), name.c_str());
+            }
+        }
     }
 
     m_node = node;
@@ -634,7 +687,7 @@ int wxXmlResourceHandler::GetStyle(const wxString& param, int defaults)
 
     if (!s) return defaults;
 
-    wxStringTokenizer tkn(s, wxT("| "), wxTOKEN_STRTOK);
+    wxStringTokenizer tkn(s, wxT("| \t\n"), wxTOKEN_STRTOK);
     int style = 0;
     int index;
     wxString fl;
@@ -733,6 +786,7 @@ int wxXmlResourceHandler::GetID()
     stdID(wxID_STATIC); stdID(wxID_FORWARD); stdID(wxID_BACKWARD);
     stdID(wxID_DEFAULT); stdID(wxID_MORE); stdID(wxID_SETUP);
     stdID(wxID_RESET); stdID(wxID_HELP_CONTEXT);
+    stdID(wxID_CLOSE_ALL);
 #undef stdID
     else return wxXmlResource::GetXRCID(sid);
 }
@@ -845,6 +899,8 @@ wxIcon wxXmlResourceHandler::GetIcon(const wxString& param,
 
 wxXmlNode *wxXmlResourceHandler::GetParamNode(const wxString& param)
 {
+    wxCHECK_MSG(m_node, NULL, wxT("You can't access handler data before it was initialized!"));
+
     wxXmlNode *n = m_node->GetChildren();
 
     while (n)
@@ -1166,11 +1222,13 @@ public:
     wxXmlResourceModule() {}
     bool OnInit()
     {
+        wxXmlResource::AddSubclassFactory(new wxXmlSubclassFactoryCXX);
         return TRUE;
     }
     void OnExit()
     {
         delete wxXmlResource::Set(NULL);
+        wxDELETE(wxXmlResource::ms_subclassFactories);
         CleanXRCID_Records();
     }
 };
diff --git a/src/xrc/xmlrsall.cpp b/src/xrc/xmlrsall.cpp
index b55badc9f9..5d933f9490 100644
--- a/src/xrc/xmlrsall.cpp
+++ b/src/xrc/xmlrsall.cpp
@@ -94,4 +94,5 @@ void wxXmlResource::InitAllHandlers()
     AddHandler(new wxGenericDirCtrlXmlHandler);
 #endif
     AddHandler(new wxFrameXmlHandler);
+    AddHandler(new wxScrolledWindowXmlHandler);
 }
diff --git a/utils/HelpGen/src/HelpGenVC.dsp b/utils/HelpGen/src/HelpGenVC.dsp
index 447a4b5833..835014deb9 100644
--- a/utils/HelpGen/src/HelpGenVC.dsp
+++ b/utils/HelpGen/src/HelpGenVC.dsp
@@ -110,7 +110,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/helpgen.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/helpgen.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ELSEIF  "$(CFG)" == "HelpGenVC - Win32 Release DLL"
 
@@ -137,7 +137,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/helpgen.exe" /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/helpgen.exe" /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ENDIF 
 
diff --git a/utils/HelpGen/src/markup.h b/utils/HelpGen/src/markup.h
index 13e43a0a8c..7e1ccc6c7c 100644
--- a/utils/HelpGen/src/markup.h
+++ b/utils/HelpGen/src/markup.h
@@ -48,4 +48,4 @@ MarkupTagsT get_HTML_markup_tags();
 // MarkupTagsT get_PostScript_markup_tags();
 // MarkupTagsT get_Latex_markup_tags();
 
-#endif
\ No newline at end of file
+#endif
diff --git a/utils/dialoged/src/DialogEdVC.dsp b/utils/dialoged/src/DialogEdVC.dsp
index b91aa17a67..2f0e844558 100644
--- a/utils/dialoged/src/DialogEdVC.dsp
+++ b/utils/dialoged/src/DialogEdVC.dsp
@@ -108,7 +108,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/dialoged.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/dialoged.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ELSEIF  "$(CFG)" == "DialogEdVC - Win32 Release DLL"
 
@@ -135,7 +135,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/dialoged.exe" /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/dialoged.exe" /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ENDIF 
 
diff --git a/utils/helpview/src/client.cpp b/utils/helpview/src/client.cpp
new file mode 100644
index 0000000000..f4ff1e72f1
--- /dev/null
+++ b/utils/helpview/src/client.cpp
@@ -0,0 +1,298 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        client.cpp
+// Purpose:     Remote help sample client
+// Author:      Julian Smart
+// Modified by:	Eric Dowty
+// Created:     25/01/99
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#define USE_REMOTE 1
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+    #include "wx/wx.h"
+#endif
+
+#include <math.h>
+
+#include "wx/process.h"
+#include "wx/helpbase.h"
+#include "wx/html/helpfrm.h"
+#include "wx/html/helpctrl.h"
+#include "wx/config.h"
+
+// Settings common to both executables: determines whether
+// we're using TCP/IP or real DDE.
+
+//#include "ddesetup.h"
+//#define wxUSE_DDE_FOR_IPC 0
+#include <wx/ipc.h>
+
+#if defined(__WXGTK__) || defined(__WXMOTIF__)
+#include "mondrian.xpm"
+#endif
+
+#include "remhelp.h"
+#include "client.h"
+
+// ----------------------------------------------------------------------------
+// wxWin macros
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_APP(MyApp)
+
+BEGIN_EVENT_TABLE(MyFrame, wxFrame)
+EVT_MENU(CLIENT_QUIT, MyFrame::OnExit)
+EVT_MENU(CLIENT_HELPMAIN, MyFrame::OnHelp_Main)
+EVT_MENU(CLIENT_HELPBOOK1, MyFrame::OnHelp_Book1)
+EVT_MENU(CLIENT_HELPBOOK2, MyFrame::OnHelp_Book2)
+
+EVT_MENU(CLIENT_HELPINDEX, MyFrame::OnHelp_Index)
+EVT_MENU(CLIENT_HELPCONTENTS, MyFrame::OnHelp_Contents)
+EVT_MENU(CLIENT_HELPSEARCH, MyFrame::OnHelp_Search)
+EVT_MENU(CLIENT_HELPTITLE, MyFrame::OnHelp_Title)
+EVT_MENU(CLIENT_HELPADDBOOK, MyFrame::OnHelp_Addbook)
+EVT_MENU(CLIENT_HELPTEMPDIR, MyFrame::OnHelp_Tempdir)
+EVT_MENU(CLIENT_HELPQUIT, MyFrame::OnHelp_Quitserver)
+
+EVT_MENU(DIALOG_MODAL, MyFrame::ModalDlg)
+EVT_BUTTON(BUTTON_MODAL, MyFrame::ModalDlg)
+END_EVENT_TABLE()
+
+// ----------------------------------------------------------------------------
+// globals
+// ----------------------------------------------------------------------------
+
+wxListBox *the_list = NULL;
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// MyApp
+// ----------------------------------------------------------------------------
+
+// The `main program' equivalent, creating the windows and returning the
+// main frame
+bool MyApp::OnInit()
+{
+    wxString a_appname, a_service, a_windowname, a_book;
+	
+    m_help = NULL;
+	
+    // for MSW (DDE classes), a_service is 'service name', apparently an arbitrary string
+    // for Unix, should be a valid file name (for a nonexistent file)
+    // for nonMSW, nonUnix, must be port number, for example "4242" (TCP/IP based classes)
+    // should be unique to the client app
+    a_service = "/tmp/wxWindows-helpconnection";
+    //a_service = "4242";
+    a_windowname = "HTML Help Test: %s";
+	
+#if defined(__WXMSW__)
+    a_appname = "helpview.exe";
+#else
+    a_appname = "./helpview";
+#endif
+	
+    //a_book = "helpfiles/testing.hhp";
+    a_book = "test.zip";
+	
+	wxConfig *conf = (wxConfig*) wxConfig::Get();
+	
+#if defined(USE_REMOTE)
+    m_help = new wxRemoteHtmlHelpController();
+	m_help->SetServer( a_appname );
+	m_help->SetService( a_service );
+#else
+    m_help = new wxHtmlHelpController();
+#endif
+	
+	//this is a dummy for wxRemoteHtmlHelpController
+    m_help->UseConfig(conf);
+	
+	m_help->AddBook( a_book );
+	m_help->SetTitleFormat( a_windowname );
+	
+	// Create the main frame window
+    MyFrame* frame = new MyFrame(NULL, "Help Client");
+    frame->Show(TRUE);
+	
+    return TRUE;
+}
+
+int MyApp::OnExit()
+{
+    delete m_help;
+	delete wxConfig::Set(NULL);
+    return 0;
+}
+
+// Define my frame constructor
+MyFrame::MyFrame(wxFrame *frame, const wxString& title)
+: wxFrame(frame, -1, title, wxDefaultPosition, wxSize( 200, 100 ) )
+{
+    m_panel = NULL;
+	
+    // Give it an icon
+    SetIcon(wxICON(mondrian));
+	
+    // Make a menubar
+    wxMenu *file_menu = new wxMenu;
+	
+    file_menu->Append(CLIENT_HELPMAIN, "Help - Main");
+    file_menu->Append(CLIENT_HELPBOOK1, "Help - Book1");
+    file_menu->Append(CLIENT_HELPBOOK2, "Help - Book2");
+	
+    file_menu->Append(CLIENT_HELPINDEX, "Help - DisplayIndex");
+    file_menu->Append(CLIENT_HELPCONTENTS, "Help - DisplayContents");
+    file_menu->Append(CLIENT_HELPSEARCH, "Help - KeywordSearch");
+    file_menu->Append(CLIENT_HELPTITLE, "Help - SetTitleFormat");
+    file_menu->Append(CLIENT_HELPADDBOOK, "Help - AddBook");
+    file_menu->Append(CLIENT_HELPTEMPDIR, "Help - SetTempDir");
+    file_menu->Append(CLIENT_HELPQUIT, "Help - Kill Server");
+	
+    file_menu->Append(DIALOG_MODAL, "Modal dialog");
+    file_menu->Append(CLIENT_QUIT, "Quit");
+	
+    wxMenuBar *menu_bar = new wxMenuBar;
+	
+    menu_bar->Append(file_menu, "File");
+	
+    // Associate the menu bar with the frame
+    SetMenuBar(menu_bar);
+	
+    // Make a panel
+    m_panel = new wxPanel(this );
+	
+    m_modalbutton = new wxButton( this, BUTTON_MODAL, "Modal Dialog", 
+		wxPoint(10,10), wxSize(-1, -1) );
+}
+
+void MyFrame::OnHelp_Book1(wxCommandEvent& event)
+{
+	wxGetApp().m_help->Display( "book1.htm" );
+}
+
+void MyFrame::OnHelp_Book2(wxCommandEvent& event)
+{
+	wxGetApp().m_help->Display( "book2.htm" );
+}
+
+void MyFrame::OnHelp_Main(wxCommandEvent& event)
+{
+	wxGetApp().m_help->Display( "main.htm" );
+}
+
+void MyFrame::OnHelp_Index(wxCommandEvent& event)
+{
+	wxGetApp().m_help->DisplayIndex( );
+}
+void MyFrame::OnHelp_Contents(wxCommandEvent& event)
+{
+	wxGetApp().m_help->DisplayContents( );
+}
+
+void MyFrame::OnHelp_Search(wxCommandEvent& event)
+{
+	wxGetApp().m_help->KeywordSearch( "enjoy" );
+}
+void MyFrame::OnHelp_Title(wxCommandEvent& event)
+{
+	wxGetApp().m_help->SetTitleFormat( "Another_Title: %s" );
+}
+void MyFrame::OnHelp_Addbook(wxCommandEvent& event)
+{
+	wxGetApp().m_help->AddBook("helpfiles/another.hhp" );
+}
+void MyFrame::OnHelp_Tempdir(wxCommandEvent& event)
+{
+	wxGetApp().m_help->SetTempDir( "tempdir" );
+}
+
+void MyFrame::OnHelp_Quitserver(wxCommandEvent& event)
+{
+	//			if (!wxGetApp().m_help->m_connection->Poke( wxT("--YouAreDead"), wxT("") ) )
+	//				wxLogError(wxT("wxRemoteHtmlHelpController - YouAreDead Failed"));
+	
+	wxGetApp().m_help->Quit();
+}
+
+void MyFrame::OnExit(wxCommandEvent& event)
+{
+    Close();
+}
+
+void MyFrame::ModalDlg(wxCommandEvent& WXUNUSED(event))
+{
+    MyModalDialog dlg(this);
+    dlg.ShowModal();
+}
+
+BEGIN_EVENT_TABLE(MyModalDialog, wxDialog)
+EVT_BUTTON(-1, MyModalDialog::OnButton)
+END_EVENT_TABLE()
+
+// ----------------------------------------------------------------------------
+// MyModalDialog
+// ----------------------------------------------------------------------------
+
+MyModalDialog::MyModalDialog(wxWindow *parent)
+: wxDialog(parent, -1, wxString("Modal dialog"))
+{
+    wxBoxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL);
+	
+    m_main = new wxButton(this, -1, "Main");
+    m_book1 = new wxButton(this, -1, "Book1");
+    m_book2 = new wxButton(this, -1, "Book2");
+    sizerTop->Add(m_main, 0, wxALIGN_CENTER | wxALL, 5);
+    sizerTop->Add(m_book1, 0, wxALIGN_CENTER | wxALL, 5);
+    sizerTop->Add(m_book2, 0, wxALIGN_CENTER | wxALL, 5);
+	
+    SetAutoLayout(TRUE);
+    SetSizer(sizerTop);
+	
+    sizerTop->SetSizeHints(this);
+    sizerTop->Fit(this);
+	
+    m_main->SetFocus();
+    m_main->SetDefault();
+}
+
+void MyModalDialog::OnButton(wxCommandEvent& event)
+{
+    if ( event.GetEventObject() == m_main )
+    {
+        wxGetApp().m_help->Display( "main.htm" );
+    }
+    else if ( event.GetEventObject() == m_book1 )
+    {
+        wxGetApp().m_help->Display( "book1.htm" );
+    }
+    else if ( event.GetEventObject() == m_book2 )
+    {
+        wxGetApp().m_help->Display( "book2.htm" );
+    }
+    else
+    {
+        event.Skip();
+    }
+}
+
diff --git a/utils/helpview/src/client.dsp b/utils/helpview/src/client.dsp
new file mode 100644
index 0000000000..699c9969f2
--- /dev/null
+++ b/utils/helpview/src/client.dsp
@@ -0,0 +1,167 @@
+# Microsoft Developer Studio Project File - Name="htmlclient" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Application" 0x0101
+
+CFG=htmlclient - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "client.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "client.mak" CFG="htmlclient - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "htmlclient - Win32 Release DLL" (based on "Win32 (x86) Application")
+!MESSAGE "htmlclient - Win32 Debug DLL" (based on "Win32 (x86) Application")
+!MESSAGE "htmlclient - Win32 Release" (based on "Win32 (x86) Application")
+!MESSAGE "htmlclient - Win32 Debug" (based on "Win32 (x86) Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "htmlclient - Win32 Release DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "ReleaseDll"
+# PROP BASE Intermediate_Dir "ReleaseDll"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "ReleaseDll"
+# PROP Intermediate_Dir "ReleaseDll"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W4 /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
+# ADD CPP /nologo /MD /W4 /O2 /I "../../../include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "WXUSINGDLL" /YX /FD /I../../..\lib\mswdll /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x409 /i "../../../include" /d "NDEBUG"
+# ADD RSC /l 0x409 /i "../../../include" /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../../..\lib\wxmsw233.lib /nologo /subsystem:windows /machine:I386
+
+!ELSEIF  "$(CFG)" == "htmlclient - Win32 Debug DLL"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "DebugDll"
+# PROP BASE Intermediate_Dir "DebugDll"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "DebugDll"
+# PROP Intermediate_Dir "DebugDll"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W4 /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
+# ADD CPP /nologo /MDd /W4 /Zi /Od /I "../../../include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /D "WXUSINGDLL" /YX /FD /I../../..\lib\mswdlld /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x409 /i "../../../include" /d "_DEBUG"
+# ADD RSC /l 0x409 /i "../../../include" /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../../..\lib\wxmsw233d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+
+!ELSEIF  "$(CFG)" == "htmlclient - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W4 /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
+# ADD CPP /nologo /MD /W4 /O2 /I "../../../include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /YX /FD /I../../..\lib\msw /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x409 /i "../../../include" /d "NDEBUG"
+# ADD RSC /l 0x409 /i "../../../include" /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../../..\lib\zlib.lib ../../..\lib\regex.lib ../../..\lib\png.lib ../../..\lib\jpeg.lib ../../..\lib\tiff.lib ../../..\lib\wxmsw.lib /nologo /subsystem:windows /machine:I386
+
+!ELSEIF  "$(CFG)" == "htmlclient - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W4 /Zi /Od /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /YX /FD /c
+# ADD CPP /nologo /MDd /W4 /Zi /Od /I "../../../include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "__WXDEBUG__" /D WXDEBUG=1 /YX /FD /I../../..\lib\mswd /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
+# ADD BASE RSC /l 0x409 /i "../../../include" /d "_DEBUG"
+# ADD RSC /l 0x409 /i "../../../include" /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../../..\lib\zlibd.lib ../../..\lib\regexd.lib ../../..\lib\pngd.lib ../../..\lib\jpegd.lib ../../..\lib\tiffd.lib ../../..\lib\wxmswd.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "htmlclient - Win32 Release DLL"
+# Name "htmlclient - Win32 Debug DLL"
+# Name "htmlclient - Win32 Release"
+# Name "htmlclient - Win32 Debug"
+# Begin Source File
+
+SOURCE=.\client.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\client.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\client.rc
+# End Source File
+# Begin Source File
+
+SOURCE=.\remhelp.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\remhelp.h
+# End Source File
+# End Target
+# End Project
diff --git a/utils/helpview/src/client.h b/utils/helpview/src/client.h
new file mode 100644
index 0000000000..e5b919adb4
--- /dev/null
+++ b/utils/helpview/src/client.h
@@ -0,0 +1,87 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        client.h
+// Purpose:     Remote help sample client
+// Author:      Julian Smart
+// Modified by: Eric Dowty
+// Created:     2002-11-18
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// Define a new application
+class MyApp: public wxApp
+{
+public:
+    virtual bool OnInit();
+    virtual int OnExit();
+	
+#if defined(USE_REMOTE)
+	wxRemoteHtmlHelpController *m_help;
+#else
+	wxHtmlHelpController *m_help;
+#endif
+};
+
+DECLARE_APP(MyApp)
+
+// Define a new frame
+class MyFrame: public wxFrame
+{
+public:
+    MyFrame(wxFrame *frame, const wxString& title);
+	
+private:
+    void OnExit(wxCommandEvent& event);
+	
+	void OnHelp_Main(wxCommandEvent& event);
+	void OnHelp_Book1(wxCommandEvent& event);
+	void OnHelp_Book2(wxCommandEvent& event);
+	void OnHelp_Index(wxCommandEvent& event);
+	void OnHelp_Contents(wxCommandEvent& event);
+	void OnHelp_Search(wxCommandEvent& event);
+	void OnHelp_Title(wxCommandEvent& event);
+	void OnHelp_Addbook(wxCommandEvent& event);
+	void OnHelp_Tempdir(wxCommandEvent& event);
+	void OnHelp_Quitserver(wxCommandEvent& event);
+	
+	void ModalDlg(wxCommandEvent& event);
+	
+    wxPanel *m_panel;
+	wxButton *m_modalbutton;
+	
+    DECLARE_EVENT_TABLE()
+};
+
+class MyModalDialog : public wxDialog
+{
+public:
+    MyModalDialog(wxWindow *parent);
+	
+private:
+    void OnButton(wxCommandEvent& event);
+	
+    wxButton *m_main;
+    wxButton *m_book1;
+    wxButton *m_book2;
+	
+    DECLARE_EVENT_TABLE()
+};
+
+
+#define CLIENT_QUIT     wxID_EXIT
+#define CLIENT_EXECUTE  2
+#define CLIENT_REQUEST  3
+#define CLIENT_POKE     4
+#define CLIENT_HELPMAIN     5
+#define CLIENT_HELPBOOK1     6
+#define CLIENT_HELPBOOK2     7
+#define DIALOG_MODAL     8
+#define BUTTON_MODAL     9
+#define CLIENT_HELPINDEX 10
+#define CLIENT_HELPCONTENTS 11
+#define CLIENT_HELPSEARCH 12
+#define CLIENT_HELPTITLE 13
+#define CLIENT_HELPADDBOOK 14
+#define CLIENT_HELPTEMPDIR 15
+#define CLIENT_HELPQUIT 16
diff --git a/utils/helpview/src/client.rc b/utils/helpview/src/client.rc
new file mode 100644
index 0000000000..b86c4e2265
--- /dev/null
+++ b/utils/helpview/src/client.rc
@@ -0,0 +1 @@
+#include "wx/msw/wx.rc"
diff --git a/utils/helpview/src/helpview.cpp b/utils/helpview/src/helpview.cpp
index a3ab521e75..d16e92f0ff 100644
--- a/utils/helpview/src/helpview.cpp
+++ b/utils/helpview/src/helpview.cpp
@@ -43,57 +43,200 @@ protected:
                                   const wxSize& size);
 };
 
-// ----------------------------------------------------------------------------
-// private classes
-// ----------------------------------------------------------------------------
-
-
 IMPLEMENT_APP(hvApp)
 
+hvApp::hvApp()
+{
+#if hvUSE_IPC
+    m_server = NULL;
+#endif
+}
 
 bool hvApp::OnInit()
 {
 #ifdef __WXMOTIF__
     delete wxLog::SetActiveTarget(new wxLogStderr); // So dialog boxes aren't used
 #endif
-
+	
+    wxArtProvider::PushProvider(new AlternateArtProvider);
+	
+	int istyle = wxHF_DEFAULT_STYLE;
+	
     wxArtProvider::PushProvider(new AlternateArtProvider);
-  
+	
+    wxString service, windowName, book[10], titleFormat, argStr;
+    int bookCount = 0;
+    int i;
+    bool hasService = FALSE;
+    bool hasWindowName = FALSE;
+    bool createServer = FALSE;
+	
+    m_server = NULL;
+	
+    // Help books are recognized by extension ".hhp" ".htb" or ".zip".
+    // Service and window_name can occur anywhere in arguments,
+    // but service must be first
+    // Other arguments (topic?) could be added
+	
+    //  modes of operation:
+    //  1) no arguments - stand alone, prompt user for book
+    //  2) books only - stand alone, open books
+    //  3) "--server" as (any) arg - start connection with default service;
+    //     also open any books passed as other arguments
+    //  4) at least one argument which is not book, and not "--server" - take first
+    //     such argument as service, second (if present) as window name,
+    //     start service, open any books
+	
+    for( i=1; i < argc; i++ )
+    {
+		argStr = argv[i];
+		
+		if ( argStr.Find( wxT(".hhp") ) >= 0 ||
+			argStr.Find( wxT(".htb") ) >= 0 ||
+			argStr.Find( wxT(".zip") ) >= 0 ) {
+			book[bookCount] = argStr;
+			bookCount++; 
+		}
+		else if ( argStr == wxT("--server") )
+		{
+			createServer = TRUE;
+#if defined(__WXMSW__)
+			service = wxT("generic_helpservice");
+#elif defined(__UNIX__)
+			service = wxT("/tmp/") + wxString(wxT("generic_helpservice"));
+#else
+			service = wxT("4242");
+#endif
+		}
+		else if ( !hasService )
+		{
+			service = argStr;
+			hasService = TRUE;
+			createServer = TRUE;
+		}
+		else if ( !hasWindowName )
+		{
+			windowName = argStr;
+			hasWindowName = TRUE;
+		}
+		else if ( argStr.Find( wxT("--Style") )  >= 0 )
+		{
+			long i;
+			wxString numb = argStr.AfterLast(wxT('e'));
+			if ( !(numb.ToLong(&i) ) )
+			{
+				wxLogError( wxT("Integer conversion failed for --Style") );
+			}
+			else
+			{
+				istyle = i;
+			}
+		}
+		else
+		{
+			//unknown - could be topic?
+		}
+    }
+	
+    //no book - query user
+    if ( bookCount < 1 )
+    {
+		wxString s = wxFileSelector( wxT("Open help file"),
+			wxGetCwd(),
+			wxEmptyString,
+			wxEmptyString,
+			wxT(
+			"Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|\
+			HTML Help Project (*.hhp)|*.hhp"),
+			wxOPEN | wxFILE_MUST_EXIST,
+			NULL);
+		
+		if (!s.IsEmpty())
+		{
+			book[0] = s;
+			bookCount = 1;
+		}
+    } 
+	
+#if hvUSE_IPC
+	
+    if ( createServer ) {
+		// Create a new server
+		m_server = new hvServer;
+		
+		if ( !m_server->Create(service) ) {
+			wxString wxm = wxT("Server Create failed - service: ");
+			wxString xxm = wxm << service;
+			wxLogError( xxm );
+			//if MSW quits here, probably another copy already exists
+			return FALSE;
+			
+		}
+		createServer = FALSE; 
+    }
+	
+#endif  // hvUSE_IPC
+	
+    //now add help
     wxInitAllImageHandlers();
-    wxFileSystem::AddHandler(new wxZipFSHandler);
-
-    SetVendorName("wxWindows");
-    SetAppName("wxHTMLHelp"); 
+    wxFileSystem::AddHandler(new wxZipFSHandler); 
+	
+    SetVendorName(wxT("wxWindows") );
+    SetAppName(wxT("wxHTMLHelpServer") ); 
     wxConfig::Get(); // create an instance
-
-    help = new wxHtmlHelpController(
-        wxHF_DEFAULT_STYLE|wxHF_FLAT_TOOLBAR|wxHF_OPEN_FILES
-        );
-    
-    help->SetTitleFormat(wxT("%s"));
-    if (argc < 2) {
-        if (!OpenBook(help))
-            return FALSE;
+	
+    m_helpController = new wxHtmlHelpController( istyle );
+	
+    if ( !hasWindowName )
+        titleFormat = wxT("Help: %s") ;
+    else
+    {
+		//remove underscores
+		windowName.Replace( wxT("_"), wxT(" ") );
+		titleFormat = windowName;
     }
-
-    for (int i = 1; i < argc; i++)
-        help -> AddBook(argv[i]);
-
+	
+    m_helpController->SetTitleFormat( titleFormat );
+	
+    for( i=0; i < bookCount; i++ )
+    {
+		m_helpController->AddBook(book[i]);
+    }
+	
 #ifdef __WXMOTIF__
     delete wxLog::SetActiveTarget(new wxLogGui);
 #endif
-
-    help -> DisplayContents();
-
+	
+    m_helpController -> DisplayContents();
+	
     return TRUE;
 }
 
 
 int hvApp::OnExit()
 {
-    delete help;
+#if hvUSE_IPC
+    wxNode* node = m_connections.First();
+    while (node)
+    {
+        wxNode* next = node->Next();
+        hvConnection* connection = (hvConnection*) node->Data();
+        connection->Disconnect();
+        delete connection;
+        node = next;
+    }
+    m_connections.Clear();
+	
+    if (m_server)
+    {
+        delete m_server;
+        m_server = NULL;
+    }
+#endif
+	
+    delete m_helpController;
     delete wxConfig::Set(NULL);
-
+	
     return 0;
 }
 
@@ -104,11 +247,11 @@ bool hvApp::OpenBook(wxHtmlHelpController* controller)
         wxEmptyString,
         wxEmptyString,
         _(
-"Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|\
-HTML Help Project (*.hhp)|*.hhp"),
-    wxOPEN | wxFILE_MUST_EXIST,
-    NULL);
-
+		"Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|\
+		HTML Help Project (*.hhp)|*.hhp"),
+		wxOPEN | wxFILE_MUST_EXIST,
+		NULL);
+	
     if (!s.IsEmpty())
     {
         wxString ext = s.Right(4).Lower();
@@ -123,8 +266,8 @@ HTML Help Project (*.hhp)|*.hhp"),
 }
 
 /*
- * Art provider class
- */
+* Art provider class
+*/
 
 // ---------------------------------------------------------------------
 // helper macros
@@ -132,48 +275,48 @@ HTML Help Project (*.hhp)|*.hhp"),
 
 // Standard macro for getting a resource from XPM file:
 #define ART(artId, xpmRc) \
-    if ( id == artId ) return wxBitmap(xpmRc##_xpm);
+if ( id == artId ) return wxBitmap(xpmRc##_xpm);
 
 // Compatibility hack to use wxApp::GetStdIcon of overriden by the user
 #if WXWIN_COMPATIBILITY_2_2
-    #define GET_STD_ICON_FROM_APP(iconId) \
-        if ( client == wxART_MESSAGE_BOX ) \
-        { \
-            wxIcon icon = wxTheApp->GetStdIcon(iconId); \
-            if ( icon.Ok() ) \
-            { \
-                wxBitmap bmp; \
-                bmp.CopyFromIcon(icon); \
-                return bmp; \
-            } \
-        }
+#define GET_STD_ICON_FROM_APP(iconId) \
+	if ( client == wxART_MESSAGE_BOX ) \
+{ \
+	wxIcon icon = wxTheApp->GetStdIcon(iconId); \
+	if ( icon.Ok() ) \
+{ \
+	wxBitmap bmp; \
+	bmp.CopyFromIcon(icon); \
+	return bmp; \
+} \
+}
 #else
-    #define GET_STD_ICON_FROM_APP(iconId)
+#define GET_STD_ICON_FROM_APP(iconId)
 #endif
 
 // There are two ways of getting the standard icon: either via XPMs or via
 // wxIcon ctor. This depends on the platform:
 #if defined(__WXUNIVERSAL__)
-    #define CREATE_STD_ICON(iconId, xpmRc) return wxNullBitmap;
+#define CREATE_STD_ICON(iconId, xpmRc) return wxNullBitmap;
 #elif defined(__WXGTK__) || defined(__WXMOTIF__)
-    #define CREATE_STD_ICON(iconId, xpmRc) return wxBitmap(xpmRc##_xpm);
+#define CREATE_STD_ICON(iconId, xpmRc) return wxBitmap(xpmRc##_xpm);
 #else
-    #define CREATE_STD_ICON(iconId, xpmRc) \
-        { \
-            wxIcon icon(_T(iconId)); \
-            wxBitmap bmp; \
-            bmp.CopyFromIcon(icon); \
-            return bmp; \
-        }
+#define CREATE_STD_ICON(iconId, xpmRc) \
+{ \
+	wxIcon icon(_T(iconId)); \
+	wxBitmap bmp; \
+	bmp.CopyFromIcon(icon); \
+	return bmp; \
+}
 #endif
 
 // Macro used in CreateBitmap to get wxICON_FOO icons:
 #define ART_MSGBOX(artId, iconId, xpmRc) \
     if ( id == artId ) \
-    { \
-        GET_STD_ICON_FROM_APP(iconId) \
-        CREATE_STD_ICON(#iconId, xpmRc) \
-    }
+{ \
+	GET_STD_ICON_FROM_APP(iconId) \
+	CREATE_STD_ICON(#iconId, xpmRc) \
+}
 
 // ---------------------------------------------------------------------
 // XPMs with the art
@@ -205,26 +348,148 @@ wxBitmap AlternateArtProvider::CreateBitmap(const wxArtID& id,
                                             const wxSize& WXUNUSED(size))
 {
     ART(wxART_HELP_SIDE_PANEL,                     helpsidepanel)
-    ART(wxART_HELP_SETTINGS,                       helpoptions)
-    ART(wxART_HELP_BOOK,                           helpbook)
-    ART(wxART_HELP_FOLDER,                         helpbook)
-    ART(wxART_HELP_PAGE,                           helppage)
-    //ART(wxART_ADD_BOOKMARK,                        addbookm)
-    //ART(wxART_DEL_BOOKMARK,                        delbookm)
-    ART(wxART_GO_BACK,                             helpback)
-    ART(wxART_GO_FORWARD,                          helpforward)
-    ART(wxART_GO_UP,                               helpup)
-    ART(wxART_GO_DOWN,                             helpdown)
-    ART(wxART_GO_TO_PARENT,                        helpuplevel)
-    ART(wxART_FILE_OPEN,                           helpopen)
-    if (client == wxART_HELP_BROWSER)
-    {
-        ART(wxART_FRAME_ICON,                          helpicon)
-    }
+		ART(wxART_HELP_SETTINGS,                       helpoptions)
+		ART(wxART_HELP_BOOK,                           helpbook)
+		ART(wxART_HELP_FOLDER,                         helpbook)
+		ART(wxART_HELP_PAGE,                           helppage)
+		//ART(wxART_ADD_BOOKMARK,                        addbookm)
+		//ART(wxART_DEL_BOOKMARK,                        delbookm)
+		ART(wxART_GO_BACK,                             helpback)
+		ART(wxART_GO_FORWARD,                          helpforward)
+		ART(wxART_GO_UP,                               helpup)
+		ART(wxART_GO_DOWN,                             helpdown)
+		ART(wxART_GO_TO_PARENT,                        helpuplevel)
+		ART(wxART_FILE_OPEN,                           helpopen)
+		if (client == wxART_HELP_BROWSER)
+		{
+			//ART(wxART_FRAME_ICON,                          helpicon)
+			ART(wxART_HELP,                          helpicon)
+		}
+		
+		//ART(wxART_GO_HOME,                             home)
+		
+		// Any wxWindows icons not implemented here
+		// will be provided by the default art provider.
+		return wxNullBitmap;
+}
+
+#if hvUSE_IPC
+
+wxConnectionBase *hvServer::OnAcceptConnection(const wxString& topic)
+{
+    if (topic == wxT("HELP"))
+        return new hvConnection();
+    else
+        return NULL;
+}
+
+// ----------------------------------------------------------------------------
+// hvConnection
+// ----------------------------------------------------------------------------
+
+hvConnection::hvConnection()
+: wxConnection()
+{
+    wxGetApp().GetConnections().Append(this);
+}
+
+hvConnection::~hvConnection()
+{
+    wxGetApp().GetConnections().DeleteObject(this);
+}
 
-    //ART(wxART_GO_HOME,                             home)
+bool hvConnection::OnExecute(const wxString& WXUNUSED(topic),
+                             wxChar *data,
+                             int WXUNUSED(size),
+                             wxIPCFormat WXUNUSED(format))
+{
+	//    wxLogStatus("Execute command: %s", data);
+	
+	if ( !wxStrncmp( data, wxT("--intstring"), 11 ) )
+	{
+        long i;
+		wxString argStr = data;
+		wxString numb = argStr.AfterLast(wxT('g'));
+		if ( !(numb.ToLong(&i) ) ) {
+			wxLogError( wxT("Integer conversion failed for --intstring") );
+		}
+		else {				 
+			wxGetApp().GetHelpController()->Display(int(i));
+		}
+	}
+	else
+	{
+		wxGetApp().GetHelpController()->Display(data);
+	}
+    
+    return TRUE;
+}
 
-    // Any wxWindows icons not implemented here
-    // will be provided by the default art provider.
-    return wxNullBitmap;
+bool hvConnection::OnPoke(const wxString& WXUNUSED(topic),
+                          const wxString& item,
+                          wxChar *data,
+                          int WXUNUSED(size),
+                          wxIPCFormat WXUNUSED(format))
+{
+	//    wxLogStatus("Poke command: %s = %s", item.c_str(), data);
+	//topic is not tested
+	
+	if ( wxGetApp().GetHelpController() )
+	{
+		if ( item == wxT("--AddBook") )
+		{
+			wxGetApp().GetHelpController()->AddBook(data);
+		}
+		else if ( item == wxT("--DisplayContents") )
+		{
+			wxGetApp().GetHelpController()->DisplayContents();
+		}
+		else if ( item == wxT("--DisplayIndex") )
+		{
+			wxGetApp().GetHelpController()->DisplayIndex();
+		}
+		else if ( item == wxT("--KeywordSearch") )
+		{
+			wxGetApp().GetHelpController()->KeywordSearch(data);
+		}
+		else if ( item == wxT("--SetTitleFormat") )
+		{
+			wxString newname = data; 
+			newname.Replace( wxT("_"), wxT(" ") );
+			wxGetApp().GetHelpController()->SetTitleFormat(newname);
+			//does not redraw title bar?
+			//wxGetApp().GetHelpController()->ReFresh(); - or something
+		}
+		else if ( item == wxT("--SetTempDir") )
+		{
+			wxGetApp().GetHelpController()->SetTempDir(data);
+		}
+		else if ( item == wxT("--YouAreDead") )
+		{
+			// don't really know how to kill app from down here...
+			// use wxKill from client instead
+			//wxWindow *win = wxTheApp->GetTopWindow();
+			//if ( win )
+			//	win->Destroy();
+		}
+	}
+	
+    return TRUE;
 }
+
+wxChar *hvConnection::OnRequest(const wxString& WXUNUSED(topic),
+								const wxString& WXUNUSED(item),
+								int * WXUNUSED(size),
+								wxIPCFormat WXUNUSED(format))
+{
+    return NULL;
+}
+
+bool hvConnection::OnStartAdvise(const wxString& WXUNUSED(topic),
+                                 const wxString& WXUNUSED(item))
+{
+    return TRUE;
+}
+
+#endif
+    // hvUSE_IPC
\ No newline at end of file
diff --git a/utils/helpview/src/helpview.dsp b/utils/helpview/src/helpview.dsp
index 9300b9df44..1cd5f9bfad 100644
--- a/utils/helpview/src/helpview.dsp
+++ b/utils/helpview/src/helpview.dsp
@@ -55,7 +55,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../../..\lib\wxmsw233.lib /nologo /subsystem:windows /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../../..\lib\wxmsw234.lib /nologo /subsystem:windows /machine:I386
 
 !ELSEIF  "$(CFG)" == "htmlhelpview - Win32 Debug DLL"
 
@@ -81,7 +81,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../../..\lib\wxmsw233d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib ../../..\lib\wxmsw234d.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
 
 !ELSEIF  "$(CFG)" == "htmlhelpview - Win32 Release"
 
diff --git a/utils/helpview/src/helpview.h b/utils/helpview/src/helpview.h
index d4f90414ce..0395f58dd5 100644
--- a/utils/helpview/src/helpview.h
+++ b/utils/helpview/src/helpview.h
@@ -16,27 +16,79 @@
 #pragma interface "help.cpp"
 #endif
 
-// Define a new application type, each program should derive a class from wxApp
+#define hvVERSION 1.02
+
+// If 1, start a server to allow this to be used
+// as an external help viewer.
+#define hvUSE_IPC 1
+
+#if hvUSE_IPC
+#include <wx/ipc.h>
+
+class hvConnection;
+class hvServer;
+#endif
+
+/*!
+ * The helpview application class.
+ */
+
 class hvApp : public wxApp
 {
-    public:
-        // override base class virtuals
-        // ----------------------------
+public:
+    hvApp();
+
+    /// Initialise the application.
+    virtual bool OnInit();
+
+    /// Clean up the application's data.
+    virtual int OnExit();
+    
+    /// Prompt the user for a book to open
+    bool OpenBook(wxHtmlHelpController* controller);
+
+    /// Returns the help controller.
+    wxHtmlHelpController* GetHelpController() { return m_helpController; }
+
+#if hvUSE_IPC
+    /// Returns the list of connections.
+    wxList& GetConnections() { return m_connections; }
+#endif
 
-        // this one is called on application startup and is a good place for the app
-        // initialization (doing it here and not in the ctor allows to have an error
-        // return: if OnInit() returns false, the application terminates)
+private:
+    wxHtmlHelpController*   m_helpController;
+    
+#if hvUSE_IPC
+    wxList                  m_connections;
+    hvServer*               m_server;
+#endif
+    
+};
+
+#if hvUSE_IPC
+class hvConnection : public wxConnection
+{
+public:
+    hvConnection();
+    ~hvConnection();
 
-        virtual bool OnInit();
-        virtual int OnExit();
+    bool OnExecute(const wxString& topic, wxChar*data, int size, wxIPCFormat format);
+    wxChar *OnRequest(const wxString& topic, const wxString& item, int *size, wxIPCFormat format);
+    bool OnPoke(const wxString& topic, const wxString& item, wxChar *data, int size, wxIPCFormat format);
+    bool OnStartAdvise(const wxString& topic, const wxString& item);
 
-        // Prompt the user for a book to open
-        bool OpenBook(wxHtmlHelpController* controller);
+private:
+};
 
-    private:
-        wxHtmlHelpController *help;
+class hvServer: public wxServer
+{
+public:
+    wxConnectionBase *OnAcceptConnection(const wxString& topic);
 };
 
+
+#endif
+
 #endif
   // _WX_HELPVIEW_H_
 
diff --git a/utils/helpview/src/readme.txt b/utils/helpview/src/readme.txt
new file mode 100644
index 0000000000..45a5b724c3
--- /dev/null
+++ b/utils/helpview/src/readme.txt
@@ -0,0 +1,35 @@
+The HTML help client-server pair sample consists of  three parts:
+
+1) The Client, derived from Client from the IPC samples and now containing wxRemoteHtmlHelpController 
+2) The Server, derived from helpview - the app is called helpview
+3) The sample help files, specifically called by the Client, which are from the HTML/Help sample
+
+Normally, the Client is started first, and it will in turn start up the Server (helpview) the first time help is requested with Display.  If the Server is to be started first, the default service name ("generic_helpservice" for MSW, "/tmp/generic_helpservice" for Unix or "4242" otherwise) should be used for the connection in the client.
+
+It is assumed that there will be one copy of the server for each app which uses help. Depending on the OS, it may be possible to use different instances of the same server, or even to use one instance of the server (probably not a good idea) to service more than one app requesting help.
+
+At the moment, if a connection has been established and if the client is killed, the server is also killed.  If the client is started up again, it will use the same connection.
+
+If USE_REMOTE in client.cpp is undefined, the "client" app will use wxHtmlHelpController instead of wxRemoteHtmlHelpController, that is the remote server will not be used.  In MSW, this results in freezing of the help window when called from a modal dialog.  In GTK, the window is not frozen, but it must be closed before you can return to the app itself.
+
+------------------------------------------------
+wxRemoteHtmlHelpController Class
+
+This class can be added to an application (the client) to provide wxWindows HTML help.  It will start up the remote help controller (helpview) the first time the Display member function is called, passing the server the connection name or port number, the name of the help window and the help book (.hhp, .htb, .zip).  This class will only work with a particular server app, helpview.
+
+Most of the functions of wxHtmlHelpController are available - the relevant arguments are just passed to wxHtmlHelpController in the server.  The functions involving wxConfig are not implemented - the config parameters (font, windows size and position) are kept in the server. 
+
+Use the members SetServer and SetService to pass the name of the server app and service name or port.  This must be done before the first call to the Display member function, or defaults will be used.  The default server app is "helpview" and default service depends on the platform: for MSW it is "appname_helpservice" (a service name string); for UNIX platforms it is "/tmp/appname_helpservice" (a file name) and otherwise it is "4242" (a TCP/IP port number), where "appname" is the name of the application without extension.
+
+A wxRemoteHtmlHelpController can be created in wxApp::OnInit, or some high level window like a mainframe.  It should be deleted explicitly, for example in wxApp::OnExit, or else the various connection objects are deleted in the wrong order.  Using a wxRemoteHtmlHelpController member of wxApp does not work because of problems on exit.
+
+This has been tested on wxMSW and wxGTK.  It does not work on wxMac because the connection classes, as well as wxExecute, are not fully supported.
+
+----------------------------------------------
+
+Changes to helpview sample
+
+The constructor now tests the command-line arguments, looking first for help books (containing .hhp, .htb, .zip).  Then it looks for "--server".  If arguments not falling in these categories are present, they are taken to be 1)  the service name or 2) the window name (see wxRemoteHtmlHelpController for the meaning of service name). 
+
+The client passes most functions of wxHtmlHelpController, with argument, to helpview using wxConnection::Poke.  The string for the Display function is passed with wxConnection::Execute. 
+
diff --git a/utils/helpview/src/remhelp.cpp b/utils/helpview/src/remhelp.cpp
new file mode 100644
index 0000000000..a1d7f23630
--- /dev/null
+++ b/utils/helpview/src/remhelp.cpp
@@ -0,0 +1,409 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        remhelp.cpp
+// Purpose:     Remote help controller class
+// Author:      Eric Dowty
+// Modified by:	
+// Created:     2002-11-18
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(__APPLE__)
+#pragma implementation remhelp.h
+#endif
+
+// For compilers that support precompilation, includes "wx.h".
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#ifndef WX_PRECOMP
+    #include "wx/wx.h"
+#endif
+
+#include <math.h>
+
+#include "wx/process.h"
+#include "wx/confbase.h"
+
+// Settings common to both executables: determines whether
+// we're using TCP/IP or real DDE.
+
+//#include "ddesetup.h"
+//#define wxUSE_DDE_FOR_IPC 0
+
+#if defined(__WXGTK__) || defined(__WXMOTIF__)
+#include "mondrian.xpm"
+#endif
+
+#include "remhelp.h"
+#include "client.h"
+
+#if !defined(USE_REMOTE)
+#include <wx/html/helpctrl.h>
+#endif
+
+//////////////////
+//////////////////
+// helper classes
+
+rhhcClient::rhhcClient( bool *isconn_a )
+{
+    isconn_2 = isconn_a;
+}
+
+wxConnectionBase *rhhcClient::OnMakeConnection()
+{
+	return new rhhcConnection( isconn_2 ); 
+}
+
+rhhcConnection::rhhcConnection( bool *isconn_a ) 
+: wxConnection()
+{
+	isconn_3 = isconn_a;
+	*isconn_3 = TRUE;
+}
+
+rhhcConnection::~rhhcConnection()
+{
+    *isconn_3 = FALSE;
+}
+
+bool rhhcConnection::OnAdvise(const wxString& topic, const wxString& item, char *data, int size, wxIPCFormat format)
+{
+    return TRUE;
+}
+
+bool rhhcConnection::OnDisconnect()
+{
+    *isconn_3 = FALSE;
+	
+    return wxConnection::OnDisconnect();
+}
+
+//////////////////////////////////////////
+/////////////////////////////////////////
+
+// wxRemoteHtmlHelpController class
+
+IMPLEMENT_CLASS(wxRemoteHtmlHelpController, wxHelpControllerBase)
+
+wxRemoteHtmlHelpController::wxRemoteHtmlHelpController(int style )
+{
+	m_style = style;  
+	m_connection = NULL; 
+	m_client  = NULL;
+	m_pid = 0;
+	isconn_1 = FALSE;
+	m_process = NULL;
+	
+	// defaults
+	//
+	// server app is assumed to be local
+	//
+    // for MSW (DDE classes), a_service is 'service name', apparently an arbitrary string
+    // for Unix, should be a valid file name (for a nonexistent file)
+    // for nonMSW, nonUnix, must be port number, for example "4242" (TCP/IP based classes)
+    // should be unique to the client app
+	
+	wxString thename = wxGetApp().GetAppName();
+#if defined(__WXMSW__)
+	m_appname = wxT("helpview.exe");
+	m_service = thename + wxString(wxT("_helpservice"));
+#elif defined(__UNIX__)
+	m_appname = wxT("./helpview");
+	m_service = wxT("/tmp/") + thename + wxString(wxT("_helpservice"));
+#else
+	m_appname = wxT("./helpview");   
+	m_service = wxT("4242");
+#endif
+	
+	m_book = thename + wxT(".hhp");  // or .htb or .zip
+	m_windowname = thename + wxT(" Help: %s");
+	//underscores for spaces
+	m_windowname.Replace( wxT(" "), wxT("_") );
+}
+
+void wxRemoteHtmlHelpController::SetService(wxString& a_service)
+{
+	m_service = a_service;
+}
+void wxRemoteHtmlHelpController::SetServer(wxString& a_appname)
+{
+	m_appname = a_appname;
+}
+
+void wxRemoteHtmlHelpController::OnQuit()
+{
+	//kill the Server here?
+	//this function is not called ?
+}
+
+wxRemoteHtmlHelpController::~wxRemoteHtmlHelpController()
+{
+    if ( isconn_1 )
+    {
+		//if (!m_connection->Poke( wxT("--YouAreDead"), wxT("") ) )
+		//	wxLogError(wxT("wxRemoteHtmlHelpController - YouAreDead Failed"));
+		
+		// Kill the server.  This could be an option.
+		Quit();
+		
+		m_connection->Disconnect();
+        delete m_connection;
+		
+        delete m_process;
+        m_process = NULL;
+    }
+    if( m_client ) 
+		delete m_client; //should be automatic?
+	
+}
+
+bool wxRemoteHtmlHelpController::DoConnection()
+{
+    wxString cmd, blank;
+    int nsleep;
+	
+    blank = wxT("  ");
+	
+    // ignored under DDE, host name in TCP/IP based classes
+    wxString hostName = wxT("localhost");
+	
+    // Create a new client
+    if( !m_client ) m_client = new rhhcClient(&isconn_1);
+	
+    nsleep = 0;
+	
+	// suppress the log messages from MakeConnection()
+    {
+		wxLogNull nolog;
+		
+		//first try to connect assuming server is running
+		if( !isconn_1 ) 
+			m_connection = (rhhcConnection *)m_client->MakeConnection(hostName, m_service, wxT("HELP") );
+		
+		//if not, start server
+		if( !isconn_1 ) {
+			
+			wxString stylestr;
+			stylestr.Printf( wxT("--Style%d"), m_style );
+			
+			cmd = m_appname + blank + m_service + blank + m_windowname + blank + m_book + blank + stylestr;
+			
+			m_process = new wxProcess(NULL);
+			m_pid = wxExecute( cmd, FALSE, m_process );
+			// leaks - wxExecute itself (if not deleted) and in wxExecute at
+			// wxExecuteData *data = new wxExecuteData;
+			if( m_pid <= 0 ) {
+				wxLogError( wxT("wxRemoteHtmlHelpController - Failed to start Help server") );
+				return FALSE;
+			}
+        }
+		
+        while ( !isconn_1 )
+        { 
+			//try every second for a while, then leave it to user
+			wxSleep(1);
+			if( nsleep > 4 ) {
+				if ( wxMessageBox( wxT("Failed to make connection to Help server.\nRetry?") ,
+					wxT("wxRemoteHtmlHelpController Error"),
+					wxICON_ERROR | wxYES_NO | wxCANCEL ) != wxYES )
+				{           
+					// no server
+					return FALSE;
+				}
+			}
+			nsleep++;
+			
+			m_connection = (rhhcConnection *)m_client->MakeConnection(hostName, m_service, wxT("HELP") );
+        }
+    }
+	
+    if (!m_connection->StartAdvise(wxT("Item"))) {
+		wxLogError(wxT("wxRemoteHtmlHelpController - StartAdvise failed") );
+		return FALSE;
+    }
+	
+    return TRUE;
+}
+
+bool wxRemoteHtmlHelpController::LoadFile(const wxString& WXUNUSED(file))
+{
+    return TRUE;
+}
+bool wxRemoteHtmlHelpController::DisplaySection(int sectionNo)
+{
+    Display(sectionNo);
+	return TRUE;
+}
+bool wxRemoteHtmlHelpController::DisplayBlock(long blockNo)
+{
+	return DisplaySection((int)blockNo);
+}
+
+bool wxRemoteHtmlHelpController::Quit()
+{
+	//this code from exec sample - branches left in for testing
+	// sig = 3, 6, 9 or 12 all kill server with no apparent problem
+	// but give error message on MSW - timout?
+	int sig = 15;   //3 = quit; 6 = abort; 9 = kill;  15 = terminate
+	
+					/*
+					switch ( sig )
+					{
+					default:
+					wxFAIL_MSG( _T("unexpected return value") );
+					// fall through
+					
+					  case -1:
+					  // cancelled
+					  return FALSE;
+					  
+						case wxSIGNONE:
+						case wxSIGHUP:
+						case wxSIGINT:
+						case wxSIGQUIT:
+						case wxSIGILL:
+						case wxSIGTRAP:
+						case wxSIGABRT:
+						case wxSIGEMT:
+						case wxSIGFPE:
+						case wxSIGKILL:
+						case wxSIGBUS:
+						case wxSIGSEGV:
+						case wxSIGSYS:
+						case wxSIGPIPE:
+						case wxSIGALRM:
+						case wxSIGTERM:
+						break;
+						}
+	*/
+	
+    if ( sig == 0 )
+    {
+        if ( wxProcess::Exists(m_pid) )
+            wxLogStatus(_T("Process %ld is running."), m_pid);
+        else
+            wxLogStatus(_T("No process with pid = %ld."), m_pid);
+    }
+    else // not SIGNONE
+    {
+        wxKillError rc = wxProcess::Kill(m_pid, (wxSignal)sig);
+        if ( rc == wxKILL_OK )
+        {
+            wxLogStatus(_T("Process %ld killed with signal %d."), m_pid, sig);
+        }
+        else
+        {
+            static const wxChar *errorText[] =
+            {
+                _T(""), // no error
+					_T("signal not supported"),
+					_T("permission denied"),
+					_T("no such process"),
+					_T("unspecified error"),
+            };
+			
+			// sig = 3, 6, 9 or 12 all kill server with no apparent problem
+			// but give error message on MSW - timout?
+			//
+            //wxLogError(_T("Failed to kill process %ld with signal %d: %s"),
+            //            m_pid, sig, errorText[rc]);
+        }
+    }
+	
+	
+    return TRUE;
+}
+
+void wxRemoteHtmlHelpController::Display(const wxString& helpfile)
+{
+    if( !isconn_1 ) {
+        if( !DoConnection() ) return;
+    }
+    
+    if (!m_connection->Execute( helpfile, -1 ) ) 
+		wxLogError(wxT("wxRemoteHtmlHelpController - Display Failed"));
+	
+}
+
+void wxRemoteHtmlHelpController::Display(const int id)
+{
+    if( !isconn_1 ) {
+        if( !DoConnection() ) return;
+    }
+	
+	wxString intstring;
+	intstring.Printf( "--intstring%d", id );
+    
+    if (!m_connection->Execute( intstring, -1 ) ) 
+		wxLogError(wxT("wxRemoteHtmlHelpController - Display Failed"));
+	
+}
+
+bool wxRemoteHtmlHelpController::AddBook(const wxString& book, bool show_wait_msg)
+{
+	//ignore show_wait_msg - there shouldn't be a delay in this step
+	//show_wait_msg = TRUE could be transmitted with ++AddBook
+	m_book = book;
+	
+	if( isconn_1 ) {
+		if (!m_connection->Poke( wxT("--AddBook"), (char*)book.c_str() ) )
+			wxLogError(wxT("wxRemoteHtmlHelpController - AddBook Failed"));
+		return FALSE;
+	}
+	
+	return TRUE;
+}
+
+bool wxRemoteHtmlHelpController::DisplayContents()
+{
+	if( isconn_1 ) {
+		if (!m_connection->Poke( wxT("--DisplayContents"), wxT("") ) ) {
+			wxLogError(wxT("wxRemoteHtmlHelpController - DisplayContents Failed"));
+			return FALSE;
+		}
+	}
+	return TRUE;
+}
+void wxRemoteHtmlHelpController::DisplayIndex()
+{
+	if( isconn_1 ) {
+		if (!m_connection->Poke( wxT("--DisplayIndex"), wxT("") ) )
+			wxLogError(wxT("wxRemoteHtmlHelpController - DisplayIndex Failed"));
+	}
+}
+bool wxRemoteHtmlHelpController::KeywordSearch(const wxString& keyword)
+{
+	if( isconn_1 ) {
+		if (!m_connection->Poke( wxT("--KeywordSearch"), (char*)keyword.c_str() ) ) {
+			wxLogError(wxT("wxRemoteHtmlHelpController - KeywordSearch Failed"));
+			return FALSE;
+		}
+	}
+	return TRUE;
+}
+
+void wxRemoteHtmlHelpController::SetTitleFormat(const wxString& format)
+{
+	m_windowname = format;
+	m_windowname.Replace( wxT(" "), wxT("_") );
+	
+	if( isconn_1 ) {
+		if (!m_connection->Poke( wxT("--SetTitleFormat"), (char*)format.c_str() ) )
+			wxLogError(wxT("wxRemoteHtmlHelpController - SetTitleFormat Failed"));
+	}
+}
+
+void wxRemoteHtmlHelpController::SetTempDir(const wxString& path)
+{
+	if( isconn_1 ) {
+		if (!m_connection->Poke( wxT("--SetTempDir"), (char*)path.c_str() ) )
+			wxLogError(wxT("wxRemoteHtmlHelpController - SetTempDir Failed"));
+	}
+}
+
diff --git a/utils/helpview/src/remhelp.h b/utils/helpview/src/remhelp.h
new file mode 100644
index 0000000000..b5cdd853fa
--- /dev/null
+++ b/utils/helpview/src/remhelp.h
@@ -0,0 +1,97 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        remhelp.h
+// Purpose:     Remote help controller class
+// Author:      Eric Dowty
+// Modified by:	
+// Created:     2002-11-18
+// RCS-ID:      $Id$
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#if defined(__GNUG__) && !defined(__APPLE__)
+#pragma interface remhelp.h
+#endif
+
+#ifndef _WX_REMHELP_H_
+#define _WX_REMHELP_H_
+
+#include <wx/helpbase.h>
+#include <wx/ipc.h>
+#include <wx/html/helpctrl.h>
+
+class WXDLLEXPORT wxConfigBase;
+
+class rhhcConnection : public wxConnection
+{
+public:
+    rhhcConnection(bool *isconn_a);
+    ~rhhcConnection();
+
+    bool OnAdvise(const wxString& topic, const wxString& item, char *data, int size, wxIPCFormat format);
+    bool OnDisconnect();
+		bool *isconn_3;
+
+};
+
+class rhhcClient: public wxClient
+{
+public:
+		rhhcClient(bool *isconn_a);
+		//~rhhcClient( );
+    wxConnectionBase *OnMakeConnection();
+		bool *isconn_2;
+};
+
+class wxRemoteHtmlHelpController : public wxHelpControllerBase
+{
+	DECLARE_CLASS(wxRemoteHtmlHelpController)
+public:
+	wxRemoteHtmlHelpController(int style = wxHF_DEFAULT_STYLE);
+	~wxRemoteHtmlHelpController();
+	void OnQuit(void);
+
+	void SetService(wxString& a_service);
+	void SetServer(wxString& a_appname); //could be wxHelpController::SetViewer
+
+	//standard wxHtmlHelpController functions
+	bool AddBook(const wxString& book, bool show_wait_msg = FALSE);
+	void Display(const wxString& x);
+	void Display(const int id);
+	bool DisplayContents();
+	void DisplayIndex();
+	bool KeywordSearch(const wxString& keyword);
+	void SetTempDir(const wxString& path);
+	void SetTitleFormat(const wxString& format);
+
+	//dummies - config is in server
+	void UseConfig(wxConfigBase* config, const wxString& rootpath = wxEmptyString) {};
+	void ReadCustomization(wxConfigBase* cfg, wxString path = wxEmptyString) {};
+	void WriteCustomization(wxConfigBase* cfg, wxString path = wxEmptyString) {};
+
+	//virtuals from wxHelpControllerBase - not in wxHtmlHelpController
+	//won't compile without these
+	bool LoadFile(const class wxString &); //dummy
+	bool DisplaySection(int);
+	bool DisplayBlock(long);
+	bool Quit(void);
+
+private:
+	void OnExit(wxCommandEvent& event);
+	bool DoConnection();
+
+	rhhcConnection *m_connection;
+	rhhcClient *m_client;
+	wxProcess *m_process;
+
+	int m_pid;
+	int m_style;
+	wxString m_appname;
+	wxString m_service;
+	wxString m_windowname;
+	wxString m_book;
+	bool isconn_1;
+};
+
+#endif
+	// _WX_REMHELP_H_
diff --git a/utils/tex2rtf/docs/tex2rtf.hpj b/utils/tex2rtf/docs/tex2rtf.hpj
index 29fcd8b21b..4c6c663509 100644
--- a/utils/tex2rtf/docs/tex2rtf.hpj
+++ b/utils/tex2rtf/docs/tex2rtf.hpj
@@ -1,5 +1,5 @@
 [OPTIONS]
-BMROOT=c:\wx2dev\wxWind~1\utils\tex2rtf\docs ; Assume that bitmaps are where the source is
+BMROOT=c:\wx24\wxwind~1\utils\tex2rtf\docs ; Assume that bitmaps are where the source is
 TITLE=Tex2RTF
 CONTENTS=Contents
 COMPRESS=HIGH
diff --git a/utils/tex2rtf/src/Tex2RTFVC.dsp b/utils/tex2rtf/src/Tex2RTFVC.dsp
index 18b448e46b..6dac0843bf 100644
--- a/utils/tex2rtf/src/Tex2RTFVC.dsp
+++ b/utils/tex2rtf/src/Tex2RTFVC.dsp
@@ -108,7 +108,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/tex2rtf.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/tex2rtf.exe" /pdbtype:sept /libpath:"../../../lib" /libpath:"../../../contrib/lib"
 
 !ELSEIF  "$(CFG)" == "Tex2RTFVC - Win32 Release DLL"
 
diff --git a/utils/tex2rtf/src/htmlutil.cpp b/utils/tex2rtf/src/htmlutil.cpp
index ea8b6efc2e..1029c30603 100644
--- a/utils/tex2rtf/src/htmlutil.cpp
+++ b/utils/tex2rtf/src/htmlutil.cpp
@@ -191,7 +191,7 @@ void ReopenFile(FILE **fd, char **fileName)
   else
     sprintf(buf, "%s%d.html", FileRoot, fileId);
   if (*fileName) delete[] *fileName;
-  *fileName = copystring(FileNameFromPath(buf));
+  *fileName = copystring(wxFileNameFromPath(buf));
   *fd = fopen(buf, "w");
   fprintf(*fd, "<HTML>\n");
 }
@@ -426,13 +426,13 @@ void AddBrowseButtons(char *upLabel, char *upFilename,
   if (truncateFilenames)
   {
     char buf1[80];
-    strcpy(buf1, ConvertCase(FileNameFromPath(FileRoot)));
+    strcpy(buf1, ConvertCase(wxFileNameFromPath(FileRoot)));
     sprintf(buf, "\n<A HREF=\"%s.%s\">%s</A> ", buf1, ConvertCase("htm"), contentsReference);
   }
   else
   {
     char buf1[80];
-    strcpy(buf1, ConvertCase(FileNameFromPath(FileRoot)));
+    strcpy(buf1, ConvertCase(wxFileNameFromPath(FileRoot)));
     sprintf(buf, "\n<A HREF=\"%s%s\">%s</A> ", buf1, ConvertCase("_contents.html"), contentsReference);
   }
 //  TexOutput("<NOFRAMES>");
@@ -585,13 +585,16 @@ char *ParseColourString(char *bkStr, bool *isPicture)
 
 void OutputFont(void)
 {
-  // Output <FONT FACE=...>
-  TexOutput("<FONT FACE=\"");
+  // Only output <font face> if explicitly requested by htmlFaceName= directive in
+  // tex2rtf.ini. Otherwise do NOT set the font because we want to use browser's
+  // default font:
   if (htmlFaceName)
-	TexOutput(htmlFaceName);
-  else
-	TexOutput("Times New Roman");
-  TexOutput("\">\n");
+  {
+    // Output <FONT FACE=...>
+    TexOutput("<FONT FACE=\"");
+    TexOutput(htmlFaceName);
+    TexOutput("\">\n");
+  }
 }
 
 // Output start of <BODY> block
@@ -708,9 +711,9 @@ void HTMLOnMacro(int macroId, int no_args, bool start)
 
       char titleBuf[200];
       if (truncateFilenames)
-        sprintf(titleBuf, "%s.htm", FileNameFromPath(FileRoot));
+        sprintf(titleBuf, "%s.htm", wxFileNameFromPath(FileRoot));
       else
-        sprintf(titleBuf, "%s_contents.html", FileNameFromPath(FileRoot));
+        sprintf(titleBuf, "%s_contents.html", wxFileNameFromPath(FileRoot));
 
       fprintf(Chapters, "<A NAME=\"%s\"></A>", topicName);
 
@@ -2708,9 +2711,9 @@ bool HTMLOnArgument(int macroId, int arg_no, bool start)
 
       char titleBuf[150];
       if (truncateFilenames)
-        sprintf(titleBuf, "%s.htm", FileNameFromPath(FileRoot));
+        sprintf(titleBuf, "%s.htm", wxFileNameFromPath(FileRoot));
       else
-        sprintf(titleBuf, "%s_contents.html", FileNameFromPath(FileRoot));
+        sprintf(titleBuf, "%s_contents.html", wxFileNameFromPath(FileRoot));
 
       HTMLHead();
       TexOutput("<title>");
@@ -2919,7 +2922,7 @@ bool HTMLGo(void)
       OnError("Cannot open output file!");
       return FALSE;
     }
-    AddTexRef("contents", FileNameFromPath(TitlepageName), ContentsNameString);
+    AddTexRef("contents", wxFileNameFromPath(TitlepageName), ContentsNameString);
 
     fprintf(Contents, "<P><P><H2>%s</H2><P><P>\n", ContentsNameString);
 
@@ -3003,7 +3006,7 @@ bool HTMLGo(void)
         if (contentsString)
           fprintf(tmpTitle, "<TITLE>%s</TITLE></HEAD>\n\n", contentsString);
         else
-          fprintf(tmpTitle, "<TITLE>%s</TITLE></HEAD>\n\n", FileNameFromPath(FileRoot));
+          fprintf(tmpTitle, "<TITLE>%s</TITLE></HEAD>\n\n", wxFileNameFromPath(FileRoot));
       }
 
       // Output frame information
@@ -3017,8 +3020,8 @@ bool HTMLGo(void)
 
         fprintf(tmpTitle, "<FRAMESET COLS=\"30%%,70%%\">\n");
 
-        fprintf(tmpTitle, "<FRAME SRC=\"%s\">\n", ConvertCase(FileNameFromPath(contentsFrameName)));
-        fprintf(tmpTitle, "<FRAME SRC=\"%s\" NAME=\"mainwindow\">\n", ConvertCase(FileNameFromPath(firstFileName)));
+        fprintf(tmpTitle, "<FRAME SRC=\"%s\">\n", ConvertCase(wxFileNameFromPath(contentsFrameName)));
+        fprintf(tmpTitle, "<FRAME SRC=\"%s\" NAME=\"mainwindow\">\n", ConvertCase(wxFileNameFromPath(firstFileName)));
         fprintf(tmpTitle, "</FRAMESET>\n");
 
         fprintf(tmpTitle, "<NOFRAMES>\n");
@@ -3049,7 +3052,7 @@ bool HTMLGo(void)
       fprintf(tmpTitle, "\n</HTML>\n");
 
       fclose(tmpTitle);
-      if (FileExists(TitlepageName)) wxRemoveFile(TitlepageName);
+      if (wxFileExists(TitlepageName)) wxRemoveFile(TitlepageName);
       if (!wxRenameFile("title.tmp", TitlepageName))
       {
         wxCopyFile("title.tmp", TitlepageName);
@@ -3062,7 +3065,7 @@ bool HTMLGo(void)
     if (lastTopic) delete[] lastTopic;
     lastTopic = NULL;
 
-    if (FileExists(ContentsName)) wxRemoveFile(ContentsName);
+    if (wxFileExists(ContentsName)) wxRemoveFile(ContentsName);
 
     if (!wxRenameFile(TmpContentsName, ContentsName))
     {
@@ -3147,11 +3150,11 @@ void GenerateHTMLWorkshopFiles(char *fname)
       "Default topic=%s\n"
       "Index file=%s.hhk\n"
       "Title=",
-      FileNameFromPath(fname),
-      FileNameFromPath(fname),
-      FileNameFromPath(fname),
-      FileNameFromPath(TitlepageName),
-      FileNameFromPath(fname)
+      wxFileNameFromPath(fname),
+      wxFileNameFromPath(fname),
+      wxFileNameFromPath(fname),
+      wxFileNameFromPath(TitlepageName),
+      wxFileNameFromPath(fname)
       );
 
   if (DocumentTitle) {
@@ -3162,19 +3165,19 @@ void GenerateHTMLWorkshopFiles(char *fname)
 
   fprintf(f, "\n\n[WINDOWS]\n"
           "%sHelp=,\"%s.hhc\",\"%s.hhk\",\"%s\",,,,,,0x2420,,0x380e,,,,,0,,,",
-          FileNameFromPath(fname),
-          FileNameFromPath(fname),
-          FileNameFromPath(fname),
-          FileNameFromPath(TitlepageName));
+          wxFileNameFromPath(fname),
+          wxFileNameFromPath(fname),
+          wxFileNameFromPath(fname),
+          wxFileNameFromPath(TitlepageName));
 
 
   fprintf(f, "\n\n[FILES]\n");
-  fprintf(f, "%s\n", FileNameFromPath(TitlepageName));
+  fprintf(f, "%s\n", wxFileNameFromPath(TitlepageName));
   for (int i = 1; i <= fileId; i++) {
     if (truncateFilenames)
-      sprintf(buf, "%s%d.htm", FileNameFromPath(FileRoot), i);
+      sprintf(buf, "%s%d.htm", wxFileNameFromPath(FileRoot), i);
     else
-      sprintf(buf, "%s%d.html", FileNameFromPath(FileRoot), i);
+      sprintf(buf, "%s%d.html", wxFileNameFromPath(FileRoot), i);
     fprintf(f, "%s\n", buf);
   }
   fclose(f);
@@ -3278,7 +3281,7 @@ void HTMLWorkshopStartContents()
       "<LI> <OBJECT type=\"text/sitemap\">\n"
       "<param name=\"Local\" value=\"%s\">\n"
       "<param name=\"Name\" value=\"Contents\">\n</OBJECT>\n",
-      FileNameFromPath(TitlepageName)
+      wxFileNameFromPath(TitlepageName)
       );
 
 }
diff --git a/utils/tex2rtf/src/makengui.nt b/utils/tex2rtf/src/makengui.nt
index a4de8c23ca..4526561d62 100644
--- a/utils/tex2rtf/src/makengui.nt
+++ b/utils/tex2rtf/src/makengui.nt
@@ -11,7 +11,7 @@
 # of Tex2RTF, so I set off to give it a try...  I found out it would crash
 # when submitted to a certain LaTeX file I created.  I wanted to find out why,
 # so I went on and worked on compiling on my PC:  Windows NT 4.0 beta, Visual
-# C++ 4.1a.  Since all I was interested on was the convertion utility, I tried
+# C++ 4.1a.  Since all I was interested on was the conversion utility, I tried
 # to make it work without a GUI.  It didn't compile immediately, but after a
 # few small changes it now works like a charm.  Unfortunately it doesn't crash
 # anymore, so I can't tell why it used to...  Anyway, I wanted to contribute
diff --git a/utils/tex2rtf/src/rtfutils.cpp b/utils/tex2rtf/src/rtfutils.cpp
index d475d96931..e4e08c30bb 100644
--- a/utils/tex2rtf/src/rtfutils.cpp
+++ b/utils/tex2rtf/src/rtfutils.cpp
@@ -527,7 +527,7 @@ bool WriteHPJ(char *filename)
   StripExtension(hpjFilename);
   strcat(hpjFilename, ".hpj");
 
-  strcpy(helpFile, FileNameFromPath(filename));
+  strcpy(helpFile, wxFileNameFromPath(filename));
   StripExtension(helpFile);
   strcpy(rtfFile, helpFile);
   strcat(helpFile, ".hlp");
@@ -1195,7 +1195,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
             fprintf(Chapters, "!{\\footnote DisableButton(\"Up\")}\n");
           else
             fprintf(Chapters, "!{\\footnote EnableButton(\"Up\");ChangeButtonBinding(\"Up\", \"JumpId(`%s.hlp', `%s')\")}\n",
-               FileNameFromPath(FileRoot), "Contents");
+               wxFileNameFromPath(FileRoot), "Contents");
         }
       }
 
@@ -1350,12 +1350,12 @@ void RTFOnMacro(int macroId, int no_args, bool start)
           if (DocumentStyle == LATEX_ARTICLE)
           {
             fprintf(Sections, "!{\\footnote EnableButton(\"Up\");ChangeButtonBinding(\"Up\", \"JumpId(`%s.hlp', `%s')\")}\n",
-               FileNameFromPath(FileRoot), "Contents");
+               wxFileNameFromPath(FileRoot), "Contents");
           }
           else if (CurrentChapterName)
           {
             fprintf(Sections, "!{\\footnote EnableButton(\"Up\");ChangeButtonBinding(\"Up\", \"JumpId(`%s.hlp', `%s')\")}\n",
-               FileNameFromPath(FileRoot), CurrentChapterName);
+               wxFileNameFromPath(FileRoot), CurrentChapterName);
           }
         }
       }
@@ -1501,7 +1501,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
         if (useUpButton && CurrentSectionName)
         {
           fprintf(Subsections, "!{\\footnote EnableButton(\"Up\");ChangeButtonBinding(\"Up\", \"JumpId(`%s.hlp', `%s')\")}\n",
-             FileNameFromPath(FileRoot), CurrentSectionName);
+             wxFileNameFromPath(FileRoot), CurrentSectionName);
         }
       }
       if (!winHelp && indexSubsections && useWord)
@@ -1647,7 +1647,7 @@ void RTFOnMacro(int macroId, int no_args, bool start)
         if (useUpButton && CurrentSubsectionName)
         {
           fprintf(Subsubsections, "!{\\footnote EnableButton(\"Up\");ChangeButtonBinding(\"Up\", \"JumpId(`%s.hlp', `%s')\")}\n",
-             FileNameFromPath(FileRoot), CurrentSubsectionName);
+             wxFileNameFromPath(FileRoot), CurrentSubsectionName);
         }
       }
       if (!winHelp && indexSubsections && useWord)
@@ -4897,7 +4897,7 @@ bool RTFOnArgument(int macroId, int arg_no, bool start)
         if (useUpButton)
         {
           fprintf(Chapters, "!{\\footnote EnableButton(\"Up\");ChangeButtonBinding(\"Up\", \"JumpId(`%s.hlp', `%s')\")}\n",
-               FileNameFromPath(FileRoot), "Contents");
+               wxFileNameFromPath(FileRoot), "Contents");
         }
       }
       
@@ -5247,7 +5247,7 @@ bool RTFGo(void)
     {
       wxConcatFiles("header.rtf", "chapters.rtf", "tmp1.rtf");
       Tex2RTFYield(TRUE);
-      if (FileExists(OutputFile))
+      if (wxFileExists(OutputFile))
           wxRemoveFile(OutputFile);
 
       char *cwdStr;
@@ -5273,7 +5273,7 @@ bool RTFGo(void)
       wxRemoveFile("tmp1.rtf");
     }
     
-    if (FileExists(ContentsName)) wxRemoveFile(ContentsName);
+    if (wxFileExists(ContentsName)) wxRemoveFile(ContentsName);
 
     if (!wxRenameFile(TmpContentsName, ContentsName))
     {
diff --git a/utils/tex2rtf/src/tex2any.cpp b/utils/tex2rtf/src/tex2any.cpp
index 2fcb1d64ef..64fee2941b 100644
--- a/utils/tex2rtf/src/tex2any.cpp
+++ b/utils/tex2rtf/src/tex2any.cpp
@@ -146,7 +146,7 @@ char            *followedLinkColourString = NULL;
 bool            combineSubSections = FALSE;
 bool            htmlWorkshopFiles = FALSE;
 bool            ignoreBadRefs = FALSE;
-char			*htmlFaceName = copystring("Times New Roman");
+char			*htmlFaceName = NULL;
 
 extern int passNumber;
 
@@ -750,7 +750,7 @@ bool read_a_line(char *buf)
     fileNameStr.Replace("\\", "");
 
     // Ignore some types of input files (e.g. macro definition files)
-    char *fileOnly = FileNameFromPath((char*) (const char*) fileNameStr);
+    char *fileOnly = wxFileNameFromPath((char*) (const char*) fileNameStr);
     currentFileName = fileOnly;
     if (IgnorableInputFiles.Member(fileOnly))
       return read_a_line(buf);
diff --git a/utils/tex2rtf/src/tex2any.h b/utils/tex2rtf/src/tex2any.h
index 102dd98508..d194288402 100644
--- a/utils/tex2rtf/src/tex2any.h
+++ b/utils/tex2rtf/src/tex2any.h
@@ -173,6 +173,10 @@ int GetCurrentColumn(void);         // number of characters on current line
 char *ConvertCase(char *s);         // Convert case, according to upperCaseNames setting.
 extern wxPathList TexPathList;      // Path list, can be used for file searching.
 
+#if !WXWIN_COMPATIBILITY_2
+extern bool StringMatch(const wxChar *one, const wxChar *two, bool subString = TRUE, bool exact = FALSE);
+#endif
+
 // Define a variable value from the .ini file
 char *RegisterSetting(char *settingName, char *settingValue, bool interactive = TRUE);
 
diff --git a/utils/tex2rtf/src/tex2rtf.cpp b/utils/tex2rtf/src/tex2rtf.cpp
index ba4c550700..281acafa0c 100644
--- a/utils/tex2rtf/src/tex2rtf.cpp
+++ b/utils/tex2rtf/src/tex2rtf.cpp
@@ -330,7 +330,7 @@ bool MyApp::OnInit()
 
     if (InputFile)
     {
-      sprintf(buf, "Tex2RTF [%s]", FileNameFromPath(InputFile));
+      sprintf(buf, "Tex2RTF [%s]", wxFileNameFromPath(InputFile));
       frame->SetTitle(buf);
     }
 
@@ -967,7 +967,7 @@ bool Go(void)
 
   if (InputFile && OutputFile)
   {
-    if (!FileExists(InputFile))
+    if (!wxFileExists(InputFile))
     {
       OnError("Cannot open input file!");
       TexCleanUp();
diff --git a/utils/tex2rtf/src/texutils.cpp b/utils/tex2rtf/src/texutils.cpp
index 3c159839a9..be0c83a28c 100644
--- a/utils/tex2rtf/src/texutils.cpp
+++ b/utils/tex2rtf/src/texutils.cpp
@@ -36,6 +36,7 @@
 #else
 #include <iostream>
 #include <fstream>
+using namespace std;
 #endif
 
 #include <ctype.h>
@@ -1143,7 +1144,7 @@ char *RegisterSetting(char *settingName, char *settingValue, bool interactive)
   else if (StringMatch(settingName, "authorFontSize", FALSE, TRUE))
     StringToInt(settingValue, &authorFont);
   else if (StringMatch(settingName, "ignoreInput", FALSE, TRUE))
-    IgnorableInputFiles.Add(FileNameFromPath(settingValue));
+    IgnorableInputFiles.Add(wxFileNameFromPath(settingValue));
   else if (StringMatch(settingName, "mirrorMargins", FALSE, TRUE))
     mirrorMargins = StringTobool(settingValue);
   else if (StringMatch(settingName, "runTwice", FALSE, TRUE))
@@ -1671,3 +1672,25 @@ char *ConvertCase(char *s)
   buf[i] = 0;
   return buf;  
 }
+
+#if !WXWIN_COMPATIBILITY_2
+// if substring is TRUE, search for str1 in str2
+bool StringMatch(const wxChar *str1, const wxChar *str2, bool subString, 
+                 bool exact)
+{
+   if (subString)
+   {
+      wxString Sstr1(str1);
+      wxString Sstr2(str2);
+      if (!exact)
+      {
+          Sstr1.MakeUpper();
+          Sstr2.MakeUpper();
+      }
+      return Sstr2.Index(Sstr1) != wxNOT_FOUND;
+   }
+   else
+      return exact ? wxString(str2).Cmp(str1) == 0 : 
+                     wxString(str2).CmpNoCase(str1) == 0;
+}
+#endif
diff --git a/utils/tex2rtf/src/xlputils.cpp b/utils/tex2rtf/src/xlputils.cpp
index 8b82f5ac7a..217f0416c9 100644
--- a/utils/tex2rtf/src/xlputils.cpp
+++ b/utils/tex2rtf/src/xlputils.cpp
@@ -1195,7 +1195,7 @@ bool XLPGo(void)
     fclose(Subsubsections); Subsubsections = NULL;
     fclose(Index); Index = NULL;
 
-    if (FileExists(ContentsName)) wxRemoveFile(ContentsName);
+    if (wxFileExists(ContentsName)) wxRemoveFile(ContentsName);
 
     if (!wxRenameFile(TmpContentsName, ContentsName))
     {
diff --git a/utils/tex2rtf/tools/suppresswarnings.sh b/utils/tex2rtf/tools/suppresswarnings.sh
new file mode 100644
index 0000000000..07078c807b
--- /dev/null
+++ b/utils/tex2rtf/tools/suppresswarnings.sh
@@ -0,0 +1,3 @@
+# Suppresses some of the more common warnings
+
+lacheck $1 | sed -e "/possible unwanted/d;/you may need/d;/TAB characyer/d;/Use \`/d;/missing \`\\\/d;/Dots/d;/Whitespace/d"
diff --git a/utils/wxrc/Makefile.in b/utils/wxrc/Makefile.in
index 9685e6f172..b20802bbb0 100644
--- a/utils/wxrc/Makefile.in
+++ b/utils/wxrc/Makefile.in
@@ -9,7 +9,7 @@ PROGRAM=wxrc
 OBJECTS=wxrc.o
 
 
-APPEXTRALIBS=$(top_builddir)/lib/libwxxrc.@WX_TARGET_LIBRARY_TYPE@
+APPEXTRALIBS=$(top_builddir)/lib/lib@WX_LIBRARY_BASENAME@_xrc-@WX_RELEASE@.@WX_TARGET_LIBRARY_TYPE@
 APPEXTRADEFS=-I$(top_srcdir)/contrib/include
 
 include $(top_builddir)/src/makeprog.env
diff --git a/utils/wxrc/wxRcVC.dsp b/utils/wxrc/wxRcVC.dsp
index 24ae29e1e7..4d62151234 100644
--- a/utils/wxrc/wxRcVC.dsp
+++ b/utils/wxrc/wxRcVC.dsp
@@ -110,7 +110,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233d.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/wxrc.exe" /pdbtype:sept /libpath:"..\..\..\lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234d.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/wxrc.exe" /pdbtype:sept /libpath:"..\..\..\lib"
 
 !ELSEIF  "$(CFG)" == "wxRcVC - Win32 Release DLL"
 
@@ -137,7 +137,7 @@ BSC32=bscmake.exe
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw233.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/wxrc.exe" /libpath:"..\..\..\lib"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxmsw234.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/wxrc.exe" /libpath:"..\..\..\lib"
 
 !ENDIF 
 
diff --git a/utils/wxrc/wxrc.cpp b/utils/wxrc/wxrc.cpp
index 23b27952a7..ff536b0ef8 100644
--- a/utils/wxrc/wxrc.cpp
+++ b/utils/wxrc/wxrc.cpp
@@ -84,18 +84,18 @@ int XmlResApp::OnRun()
 {
     static const wxCmdLineEntryDesc cmdLineDesc[] =
     {
-        { wxCMD_LINE_SWITCH, "h", "help",  "show help message", 
+        { wxCMD_LINE_SWITCH, _T("h"), _T("help"),  _T("show help message"), 
               wxCMD_LINE_VAL_NONE, wxCMD_LINE_OPTION_HELP },
-        { wxCMD_LINE_SWITCH, "v", "verbose", "be verbose" },
-        { wxCMD_LINE_SWITCH, "c", "cpp-code",  "output C++ source rather than .rsc file" },
-        { wxCMD_LINE_SWITCH, "p", "python-code",  "output wxPython source rather than .rsc file" },
-        { wxCMD_LINE_SWITCH, "g", "gettext",  "output list of translatable strings (to stdout or file if -o used)" },
-        { wxCMD_LINE_OPTION, "n", "function",  "C++/Python function name (with -c or -p) [InitXmlResource]" },
-        { wxCMD_LINE_OPTION, "o", "output",  "output file [resource.xrs/cpp]" },
+        { wxCMD_LINE_SWITCH, _T("v"), _T("verbose"), _T("be verbose") },
+        { wxCMD_LINE_SWITCH, _T("c"), _T("cpp-code"),  _T("output C++ source rather than .rsc file") },
+        { wxCMD_LINE_SWITCH, _T("p"), _T("python-code"),  _T("output wxPython source rather than .rsc file") },
+        { wxCMD_LINE_SWITCH, _T("g"), _T("gettext"),  _T("output list of translatable strings (to stdout or file if -o used)") },
+        { wxCMD_LINE_OPTION, _T("n"), _T("function"),  _T("C++/Python function name (with -c or -p) [InitXmlResource]") },
+        { wxCMD_LINE_OPTION, _T("o"), _T("output"),  _T("output file [resource.xrs/cpp]") },
 #if 0 // not yet implemented
-        { wxCMD_LINE_OPTION, "l", "list-of-handlers",  "output list of neccessary handlers to this file" },
+        { wxCMD_LINE_OPTION, _T("l"), _T("list-of-handlers",  _T("output list of neccessary handlers to this file" },
 #endif
-        { wxCMD_LINE_PARAM,  NULL, NULL, "input file(s)",
+        { wxCMD_LINE_PARAM,  NULL, NULL, _T("input file(s)"),
               wxCMD_LINE_VAL_STRING, 
               wxCMD_LINE_PARAM_MULTIPLE | wxCMD_LINE_OPTION_MANDATORY },
 
@@ -139,30 +139,30 @@ int XmlResApp::OnRun()
 
 void XmlResApp::ParseParams(const wxCmdLineParser& cmdline)
 {
-    flagGettext = cmdline.Found("g");
-    flagVerbose = cmdline.Found("v");
-    flagCPP = cmdline.Found("c");
-    flagPython = cmdline.Found("p");
+    flagGettext = cmdline.Found(_T("g"));
+    flagVerbose = cmdline.Found(_T("v"));
+    flagCPP = cmdline.Found(_T("c"));
+    flagPython = cmdline.Found(_T("p"));
 
-    if (!cmdline.Found("o", &parOutput)) 
+    if (!cmdline.Found(_T("o"), &parOutput)) 
     {
         if (flagGettext)
             parOutput = wxEmptyString;
         else
         {
             if (flagCPP)
-                parOutput = "resource.cpp";
+                parOutput = _T("resource.cpp");
             else if (flagPython)
-                parOutput = "resource.py";
+                parOutput = _T("resource.py");
             else
-                parOutput = "resource.xrs";
+                parOutput = _T("resource.xrs");
         }
     }
     parOutputPath = wxPathOnly(parOutput);
-    if (!parOutputPath) parOutputPath = ".";
+    if (!parOutputPath) parOutputPath = _T(".");
 
-    if (!cmdline.Found("n", &parFuncname)) 
-        parFuncname = "InitXmlResource";
+    if (!cmdline.Found(_T("n"), &parFuncname)) 
+        parFuncname = _T("InitXmlResource");
 
     for (size_t i = 0; i < cmdline.GetParamCount(); i++)
         parFiles.Add(cmdline.GetParam(i));
@@ -194,19 +194,19 @@ void XmlResApp::CompileRes()
 wxString XmlResApp::GetInternalFileName(const wxString& name, const wxArrayString& flist)
 {
     wxString name2 = name;
-    name2.Replace(":", "_");
-    name2.Replace("/", "_");
-    name2.Replace("\\", "_");
-    name2.Replace("*", "_");
-    name2.Replace("?", "_");
+    name2.Replace(_T(":"), _T("_"));
+    name2.Replace(_T("/"), _T("_"));
+    name2.Replace(_T("\\"), _T("_"));
+    name2.Replace(_T("*"), _T("_"));
+    name2.Replace(_T("?"), _T("_"));
     
-    wxString s = wxFileNameFromPath(parOutput) + "$" + name2;
+    wxString s = wxFileNameFromPath(parOutput) + _T("$") + name2;
 
     if (wxFileExists(s) && flist.Index(s) == wxNOT_FOUND)
     {        
         for (int i = 0;; i++)
         {
-            s.Printf(wxFileNameFromPath(parOutput) + "$%03i-" + name2, i);
+            s.Printf(wxFileNameFromPath(parOutput) + _T("$%03i-") + name2, i);
             if (!wxFileExists(s) || flist.Index(s) != wxNOT_FOUND)
                 break;
         }
@@ -221,13 +221,13 @@ wxArrayString XmlResApp::PrepareTempFiles()
     for (size_t i = 0; i < parFiles.Count(); i++)
     {
         if (flagVerbose) 
-            wxPrintf("processing " + parFiles[i] +  "...\n");
+            wxPrintf(_T("processing ") + parFiles[i] +  _T("...\n"));
 
         wxXmlDocument doc;
         
         if (!doc.Load(parFiles[i]))
         {
-            wxLogError("Error parsing file " + parFiles[i]);
+            wxLogError(_T("Error parsing file ") + parFiles[i]);
             retCode = 1;
             continue;
         }
@@ -239,7 +239,7 @@ wxArrayString XmlResApp::PrepareTempFiles()
 
         wxString internalName = GetInternalFileName(parFiles[i], flist);
         
-        doc.Save(parOutputPath + "/" + internalName);
+        doc.Save(parOutputPath + _T("/") + internalName);
         flist.Add(internalName);
     }
     
@@ -251,42 +251,55 @@ wxArrayString XmlResApp::PrepareTempFiles()
 // find all files mentioned in structure, e.g. <bitmap>filename</bitmap>
 void XmlResApp::FindFilesInXML(wxXmlNode *node, wxArrayString& flist, const wxString& inputPath)
 {
-    wxXmlNode *n = node;
-    if (n == NULL) return;
-    n = n->GetChildren();
-    
+    // Is 'node' XML node element?
+    if (node == NULL) return;
+    if (node->GetType() != wxXML_ELEMENT_NODE) return;
+
+    // Does 'node' contain filename information at all?
+    bool containsFilename = (
+        // Any bitmaps:
+        (node->GetName() == _T("bitmap")) ||
+        // URLs in wxHtmlWindow:
+        (node->GetName() == _T("url")) ||
+        // wxBitmapButton:
+        (node->GetParent() != NULL && 
+         node->GetParent()->GetPropVal(_T("class"), _T("")) == _T("wxBitmapButton") &&
+           (node->GetName() == _T("focus") || 
+            node->GetName() == _T("disabled") ||
+            node->GetName() == _T("selected")))
+        );
+
+    wxXmlNode *n = node->GetChildren();
     while (n)
     {
-        if ((node->GetType() == wxXML_ELEMENT_NODE) &&
-            // parent is an element, i.e. has subnodes...
+        if (containsFilename &&
             (n->GetType() == wxXML_TEXT_NODE || 
-            n->GetType() == wxXML_CDATA_SECTION_NODE) &&
-            // ...it is textnode...
-            ((node/*not n!*/->GetName() == "bitmap") ||
-             (node/*not n!*/->GetName() == "url")))
-            // ...and known to contain filename
+             n->GetType() == wxXML_CDATA_SECTION_NODE))
         {
             wxString fullname;
-            if (wxIsAbsolutePath(n->GetContent()) || inputPath == "") fullname = n->GetContent();
-            else fullname = inputPath + "/" + n->GetContent();
+            if (wxIsAbsolutePath(n->GetContent()) || inputPath.empty())
+                fullname = n->GetContent();
+            else
+                fullname = inputPath + _T("/") + n->GetContent();
 
             if (flagVerbose) 
-                wxPrintf("adding     " + fullname +  "...\n");
-            
+                wxPrintf(_T("adding     ") + fullname +  _T("...\n"));
+
             wxString filename = GetInternalFileName(n->GetContent(), flist);
             n->SetContent(filename);
 
-            flist.Add(filename);
+            if (flist.Index(filename) == wxNOT_FOUND)
+                flist.Add(filename);
 
             wxFileInputStream sin(fullname);
-            wxFileOutputStream sout(parOutputPath + "/" + filename);
+            wxFileOutputStream sout(parOutputPath + _T("/") + filename);
             sin.Read(sout); // copy the stream
         }
-        
+
         // subnodes:
         if (n->GetType() == wxXML_ELEMENT_NODE)
             FindFilesInXML(n, flist, inputPath);
-        
+
         n = n->GetNext();
     }
 }
@@ -296,7 +309,7 @@ void XmlResApp::FindFilesInXML(wxXmlNode *node, wxArrayString& flist, const wxSt
 void XmlResApp::DeleteTempFiles(const wxArrayString& flist)
 {
     for (size_t i = 0; i < flist.Count(); i++)
-        wxRemoveFile(parOutputPath + "/" + flist[i]);
+        wxRemoveFile(parOutputPath + _T("/") + flist[i]);
 }
 
 
@@ -306,17 +319,17 @@ void XmlResApp::MakePackageZIP(const wxArrayString& flist)
     wxString files;
     
     for (size_t i = 0; i < flist.Count(); i++)
-        files += flist[i] + " ";
+        files += flist[i] + _T(" ");
     files.RemoveLast();
     
     if (flagVerbose) 
-        wxPrintf("compressing " + parOutput +  "...\n");
+        wxPrintf(_T("compressing ") + parOutput +  _T("...\n"));
 
-    if (wxExecute("zip -9 -j " + wxString(flagVerbose ? "" : "-q ") + 
-                  parOutput + " " + files, TRUE) == -1)
+    if (wxExecute(_T("zip -9 -j ") + wxString(flagVerbose ? _T("") : _T("-q ")) + 
+                  parOutput + _T(" ") + files, TRUE) == -1)
     {
-        wxLogError("Unable to execute zip program. Make sure it is in the path.");
-        wxLogError("You can download it at http://www.cdrom.com/pub/infozip/");
+        wxLogError(_T("Unable to execute zip program. Make sure it is in the path."));
+        wxLogError(_T("You can download it at http://www.cdrom.com/pub/infozip/"));
         retCode = 1;
         return;
     }
@@ -333,9 +346,9 @@ static wxString FileToCppArray(wxString filename, int num)
     wxFFile file(filename, "rb");
     size_t lng = file.Length();
     
-    snum.Printf("%i", num);
-    output.Printf("static size_t xml_res_size_" + snum + " = %i;\n", lng);
-    output += "static unsigned char xml_res_file_" + snum + "[] = {\n";
+    snum.Printf(_T("%i"), num);
+    output.Printf(_T("static size_t xml_res_size_") + snum + _T(" = %i;\n"), lng);
+    output += _T("static unsigned char xml_res_file_") + snum + _T("[] = {\n");
     // we cannot use string literals because MSVC is dumb wannabe compiler
     // with arbitrary limitation to 2048 strings :(
     
@@ -344,12 +357,12 @@ static wxString FileToCppArray(wxString filename, int num)
     
     for (size_t i = 0, linelng = 0; i < lng; i++)
     {
-        tmp.Printf("%i", buffer[i]);
-        if (i != 0) output << ',';
+        tmp.Printf(_T("%i"), buffer[i]);
+        if (i != 0) output << _T(',');
         if (linelng > 70)
         {
             linelng = 0;
-            output << "\n";
+            output << _T("\n");
         }
         output << tmp;
         linelng += tmp.Length()+1;
@@ -357,7 +370,7 @@ static wxString FileToCppArray(wxString filename, int num)
     
     delete[] buffer;
     
-    output += "};\n\n";
+    output += _T("};\n\n");
     
     return output;
 }
@@ -369,61 +382,61 @@ void XmlResApp::MakePackageCPP(const wxArrayString& flist)
     size_t i;
 
     if (flagVerbose) 
-        wxPrintf("creating C++ source file " + parOutput +  "...\n");
+        wxPrintf(_T("creating C++ source file ") + parOutput +  _T("...\n"));
     
-    file.Write("\
-//\n\
-// This file was automatically generated by wxrc, do not edit by hand.\n\
-//\n\n\
-#include <wx/wxprec.h>\n\
-\n\
-#ifdef __BORLANDC__\n\
-    #pragma hdrstop\n\
-#endif\n\
-\n\
-#ifndef WX_PRECOMP\n\
-    #include <wx/wx.h>\n\
-#endif\n\
-\
-#include <wx/filesys.h>\n\
-#include <wx/fs_mem.h>\n\
-#include <wx/xrc/xmlres.h>\n\
-#include <wx/xrc/xh_all.h>\n\
-\n");
+    file.Write(_T("")
+_T("//\n")
+_T("// This file was automatically generated by wxrc, do not edit by hand.\n")
+_T("//\n\n")
+_T("#include <wx/wxprec.h>\n")
+_T("\n")
+_T("#ifdef __BORLANDC__\n")
+_T("    #pragma hdrstop\n")
+_T("#endif\n")
+_T("\n")
+_T("#ifndef WX_PRECOMP\n")
+_T("    #include <wx/wx.h>\n")
+_T("#endif\n")
+_T("")
+_T("#include <wx/filesys.h>\n")
+_T("#include <wx/fs_mem.h>\n")
+_T("#include <wx/xrc/xmlres.h>\n")
+_T("#include <wx/xrc/xh_all.h>\n")
+_T("\n"));
 
     for (i = 0; i < flist.Count(); i++)
         file.Write(FileToCppArray(flist[i], i));
     
-    file.Write("\
-void " + parFuncname + "()\n\
-{\n\
-\n\
-    // Check for memory FS. If not present, load the handler:\n\
-    {\n\
-        wxMemoryFSHandler::AddFile(\"XRC_resource/dummy_file\", \"dummy one\");\n\
-        wxFileSystem fsys;\n\
-        wxFSFile *f = fsys.OpenFile(\"memory:XRC_resource/dummy_file\");\n\
-        wxMemoryFSHandler::RemoveFile(\"XRC_resource/dummy_file\");\n\
-        if (f) delete f;\n\
-        else wxFileSystem::AddHandler(new wxMemoryFSHandler);\n\
-    }\n\
-\n");
+    file.Write(_T("")
+_T("void " + parFuncname + "()\n")
+_T("{\n")
+_T("\n")
+_T("    // Check for memory FS. If not present, load the handler:\n")
+_T("    {\n")
+_T("        wxMemoryFSHandler::AddFile(\"XRC_resource/dummy_file\", \"dummy one\");\n")
+_T("        wxFileSystem fsys;\n")
+_T("        wxFSFile *f = fsys.OpenFile(\"memory:XRC_resource/dummy_file\");\n")
+_T("        wxMemoryFSHandler::RemoveFile(\"XRC_resource/dummy_file\");\n")
+_T("        if (f) delete f;\n")
+_T("        else wxFileSystem::AddHandler(new wxMemoryFSHandler);\n")
+_T("    }\n")
+_T("\n"));
 
     for (i = 0; i < flist.Count(); i++)
     {
         wxString s;
-        s.Printf("    wxMemoryFSHandler::AddFile(\"XRC_resource/" + flist[i] +
-                 "\", xml_res_file_%i, xml_res_size_%i);\n", i, i);
+        s.Printf(_T("    wxMemoryFSHandler::AddFile(\"XRC_resource/") + flist[i] +
+                 _T("\", xml_res_file_%i, xml_res_size_%i);\n"), i, i);
         file.Write(s);
     }
 
     for (i = 0; i < parFiles.Count(); i++)
     {
-        file.Write("    wxXmlResource::Get()->Load(\"memory:XRC_resource/" + 
-                   GetInternalFileName(parFiles[i], flist) + "\");\n");
+        file.Write(_T("    wxXmlResource::Get()->Load(\"memory:XRC_resource/") + 
+                   GetInternalFileName(parFiles[i], flist) + _T("\");\n"));
     }
     
-    file.Write("}\n");
+    file.Write(_T("}\n"));
 
 
 }
@@ -436,8 +449,8 @@ static wxString FileToPythonArray(wxString filename, int num)
     wxFFile file(filename, "rb");
     size_t lng = file.Length();
     
-    snum.Printf("%i", num);
-    output = "    xml_res_file_" + snum + " = \"\"\"\\\n";
+    snum.Printf(_T("%i"), num);
+    output = _T("    xml_res_file_") + snum + _T(" = \"\"\"\\\n");
     
     unsigned char *buffer = new unsigned char[lng];
     file.Read(buffer, lng);
@@ -451,15 +464,15 @@ static wxString FileToPythonArray(wxString filename, int num)
             linelng = 0;
         }
         else if (c < 32 || c > 127)
-            tmp.Printf("\\x%02x", c);
+            tmp.Printf(_T("\\x%02x"), c);
         else if (c == '\\')
-            tmp = "\\\\";
+            tmp = _T("\\\\");
         else
             tmp = (wxChar)c;
         if (linelng > 70)
         {
             linelng = 0;
-            output << "\\\n";
+            output << _T("\\\n");
         }
         output << tmp;
         linelng += tmp.Length();
@@ -467,7 +480,7 @@ static wxString FileToPythonArray(wxString filename, int num)
     
     delete[] buffer;
     
-    output += "\"\"\"\n\n";
+    output += _T("\"\"\"\n\n");
     
     return output;
 }
@@ -479,18 +492,18 @@ void XmlResApp::MakePackagePython(const wxArrayString& flist)
     size_t i;
 
     if (flagVerbose) 
-        wxPrintf("creating Python source file " + parOutput +  "...\n");
+        wxPrintf(_T("creating Python source file ") + parOutput +  _T("...\n"));
     
     file.Write(
-       "#\n"
-       "# This file was automatically generated by wxrc, do not edit by hand.\n"
-       "#\n\n"
-       "from wxPython.wx import *\n"
-       "from wxPython.xrc import *\n\n"
+       _T("#\n")
+       _T("# This file was automatically generated by wxrc, do not edit by hand.\n")
+       _T("#\n\n")
+       _T("from wxPython.wx import *\n")
+       _T("from wxPython.xrc import *\n\n")
     );
 
     
-    file.Write("def " + parFuncname + "():\n");
+    file.Write(_T("def ") + parFuncname + _T("():\n"));
 
     for (i = 0; i < flist.Count(); i++)
         file.Write(FileToPythonArray(flist[i], i));
@@ -498,7 +511,7 @@ void XmlResApp::MakePackagePython(const wxArrayString& flist)
     for (i = 0; i < flist.Count(); i++)
     {
         wxString s;
-        s.Printf("    wxXmlResource_Get().LoadFromString(xml_res_file_%i)\n", i);
+        s.Printf(_T("    wxXmlResource_Get().LoadFromString(xml_res_file_%i)\n"), i);
         file.Write(s);
     }
 }
@@ -511,7 +524,7 @@ void XmlResApp::OutputGettext()
     
     wxFFile fout;
     if (!parOutput) fout.Attach(stdout);
-    else fout.Open(parOutput, _T("wt"));
+    else fout.Open(parOutput, "wt");
     
     for (size_t i = 0; i < str.GetCount(); i++)
         fout.Write(_T("_(\"") + str[i] + _T("\");\n"));
@@ -528,12 +541,12 @@ wxArrayString XmlResApp::FindStrings()
     for (size_t i = 0; i < parFiles.Count(); i++)
     {
         if (flagVerbose) 
-            wxPrintf("processing " + parFiles[i] +  "...\n");
+            wxPrintf(_T("processing ") + parFiles[i] +  _T("...\n"));
 
         wxXmlDocument doc;        
         if (!doc.Load(parFiles[i]))
         {
-            wxLogError("Error parsing file " + parFiles[i]);
+            wxLogError(_T("Error parsing file ") + parFiles[i]);
             retCode = 1;
             continue;
         }
@@ -567,7 +580,13 @@ static wxString ConvertText(const wxString& str)
                 case wxT('\n') : str2 << wxT("\\n"); break;
                 case wxT('\t') : str2 << wxT("\\t"); break;
                 case wxT('\r') : str2 << wxT("\\r"); break;
-                case wxT('\\') : str2 << wxT("\\\\"); break;
+                case wxT('\\') : if ((*(dt+1) != 'n') &&
+                                     (*(dt+1) != 't') &&
+                                     (*(dt+1) != 'r'))
+                                     str2 << wxT("\\\\");
+                                 else
+                                     str2 << wxT("\\");    
+                                 break;
                 case wxT('"')  : str2 << wxT("\\\""); break;
                 default        : str2 << *dt; break;
             }
diff --git a/version-script.in b/version-script.in
new file mode 100644
index 0000000000..e10ecc0835
--- /dev/null
+++ b/version-script.in
@@ -0,0 +1,3 @@
+@WX_VERSION_TAG@ {
+  *;
+};
diff --git a/wx-config.in b/wx-config.in
index d6e090754c..2a4f02956f 100755
--- a/wx-config.in
+++ b/wx-config.in
@@ -4,11 +4,13 @@ prefix=@prefix@
 exec_prefix=@exec_prefix@
 exec_prefix_set=no
 CC="@CC@"
+GCC="@GCC@"
 CXX="@CXX@"
 LD="@SHARED_LD@"
 cross_compiling=@cross_compiling@
 target=@host_alias@
 static_flag=@STATIC_FLAG@
+inplace_flag=no
 
 usage()
 {
@@ -17,12 +19,18 @@ Usage: wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--static]
                  [--libs] [--gl-libs]
                  [--cppflags] [--cflags] [--cxxflags] [--ldflags] [--rezflags]
                  [--cc] [--cxx] [--ld]
+                 [--inplace]
 
 wx-config returns configuration information about the installed
 version of wxWindows. It may be used to query its version and
 installation directories and also retrieve the C and C++ compilers
 and linker which were used for its building and the corresponding
 flags.
+
+The --inplace flag allows wx-config to be used from the wxWindows
+build directory and output flags to use the uninstalled version of
+the headers and libs in the build directory.  (Currently configure
+must be invoked via a full path name for this to work correctly.)
 EOF
 
     exit $1
@@ -30,16 +38,36 @@ EOF
 
 cppflags()
 {
+    # we should never specify -I/usr/include on the compiler command line: this
+    # is at best useless and at worst breaks compilation on the systems where
+    # the system headers are non-ANSI because gcc works around this by storing
+    # the ANSI-fied versions of them in its private directory which is searched
+    # after all the directories on the cmd line.
+    #
+    # the situation is a bit more complicated with -I/usr/local/include: again,
+    # it shouldn't be specified with gcc which looks there by default anyhow
+    # and gives warnings (at least 3.1 does) if it is specified explicitly --
+    # but this -I switch *is* needed for the other compilers
+    #
+    # note that we assume that if we use GNU cc we also use GNU c++ and vice
+    # versa, i.e. this won't work (either for --cflags or --cxxflags) if GNU C
+    # compiler and non-GNU C++ compiler are used or vice versa -- we'll fix
+    # this when/if anybody complains about it
     if test "@includedir@" != "/usr/include" \
             -a "@includedir@" != "/usr/include/c++" \
-            -a "@includedir@" != "/usr/local/include" \
+            -a \( "${GCC}" != "yes" \
+                  -o "@includedir@" != "/usr/local/include" \) \
             -a \( "${cross_compiling}" != "yes" \
                   -o "@includedir@" != "/usr/${target}/include" \) ;
     then
-        includes=-I@includedir@
+        includes=" -I@includedir@"
     fi
 
-    includes="-I@libdir@/wx/include/@TOOLCHAIN_NAME@ $includes"
+    if test $inplace_flag = yes ; then
+	includes="-I$inplace_builddir/lib/wx/include/@TOOLCHAIN_NAME@ -I$inplace_include"
+    else
+	includes="-I@libdir@/wx/include/@TOOLCHAIN_NAME@$includes"
+    fi
 
     if test $static_flag = yes ; then
         echo $includes @WXDEBUG_DEFINE@ @TOOLCHAIN_DEFS@ @WXCONFIG_INCLUDE@ @WX_LARGEFILE_FLAGS@
@@ -104,6 +132,10 @@ while test $# -gt 0; do
           libs="-L@libdir@"
       fi
 
+      if test $inplace_flag = yes ; then
+	  libs="-L$inplace_builddir/lib"
+      fi
+
       if test $static_flag = yes ; then
           echo "$libs @LDFLAGS@ @WXCONFIG_RPATH@ @libdir@/@WXCONFIG_LIBS_STATIC@ @LIBS@ @DMALLOC_LIBS@"
       else
@@ -117,7 +149,10 @@ while test $# -gt 0; do
       else
           gllibs="@WXCONFIG_LIBS_GL@"
       fi
-      echo @LDFLAGS_GL@ "$gllibs"
+      if test $inplace_flag = yes ; then
+	  libdir="-L$inplace_builddir/lib"
+      fi
+      echo @LDFLAGS_GL@ $libdir $gllibs
       ;;
     --cc)
       echo $CC
@@ -128,6 +163,11 @@ while test $# -gt 0; do
     --ld)
       echo $LD
       ;;
+    --inplace)
+      inplace_flag=yes
+      inplace_builddir=`dirname $0`
+      inplace_include=@top_srcdir@/include
+      ;;
     *)
       usage 1 1>&2
       ;;
diff --git a/wxBase.spec b/wxBase.spec
index d30e17d1f5..db67dfc5b2 100644
--- a/wxBase.spec
+++ b/wxBase.spec
@@ -1,5 +1,5 @@
 %define pref /usr
-%define ver 2.3.3
+%define ver 2.3.4
 %define ver2 2.3
 %define rel 1
 
diff --git a/wxGTK.spec b/wxGTK.spec
index 6fbae7bb96..a1e9534733 100644
--- a/wxGTK.spec
+++ b/wxGTK.spec
@@ -1,5 +1,5 @@
 %define pref /usr
-%define ver 2.3.3
+%define ver 2.3.4
 %define ver2 2.3
 %define rel 1
 
diff --git a/wxMGL.spec b/wxMGL.spec
new file mode 100644
index 0000000000..5dcd4f4eec
--- /dev/null
+++ b/wxMGL.spec
@@ -0,0 +1,123 @@
+%define pref /usr
+%define ver 2.3.4
+%define ver2 2.3
+%define rel 1
+
+Summary: The SciTech MGL port of the wxWindows library
+Name: wxMGL
+Version: %{ver}
+Release: %{rel}
+Copyright: wxWindows Licence
+Group: System/Libraries
+Source: wxMGL-%{ver}.tar.bz2
+URL: http://www.wxwindows.org
+Packager: Vaclav Slavik <vaclav@wxwindows.org>
+Prefix: %{pref}
+BuildRoot: /var/tmp/%{name}-root
+
+# all packages providing an implementation of wxWindows library (regardless of
+# the toolkit used) should provide the (virtual) wxwin package, this makes it
+# possible to require wxwin instead of requiring "wxgtk or wxmotif or wxuniv..."
+Provides: wxwin
+
+Provides: libwx_mgl.so
+Provides: libwx_mgl-%{ver2}.so
+
+Requires: mgl
+BuildRequires: mgl-devel
+
+%description
+wxWindows is a free C++ library for cross-platform GUI development.
+With wxWindows, you can create applications for different GUIs (GTK+,
+Motif/LessTif, MS Windows, Mac) from the same source code.
+
+%package devel
+Summary: The SciTech MGL port of the wxWindows library
+Group: Development/Libraries
+Requires: wxMGL = %{ver}
+
+%description devel
+Header files for wxMGL, the SciTech MGL port of the wxWindows library.
+
+%package static
+Summary: wxMGL static libraries
+Group: Development/Libraries
+
+%description static
+Static libraries for wxMGL. You need them if you want to link statically against wxMGL.
+
+%prep
+%setup -n wxMGL-%{ver}
+
+%build
+if [ "$SMP" != "" ]; then
+  export MAKE="make -j$SMP"
+else
+  export MAKE="make"
+fi
+
+mkdir obj-shared
+cd obj-shared
+../configure --prefix=%{pref} --enable-soname --with-mgl
+$MAKE
+cd ..
+
+mkdir obj-static
+cd obj-static
+../configure --prefix=%{pref} --disable-shared --with-mgl
+$MAKE
+cd ..
+
+%install
+rm -rf $RPM_BUILD_ROOT
+(cd obj-static; make prefix=$RPM_BUILD_ROOT%{pref} install)
+(cd obj-shared; make prefix=$RPM_BUILD_ROOT%{pref} install)
+
+%find_lang wxstd
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post
+/sbin/ldconfig
+
+%postun
+/sbin/ldconfig
+
+%post devel
+# Install wx-config if there isn't any
+if test ! -f %{_bindir}/wx-config ; then
+    ln -sf wxmgl-%{ver2}-config %{_bindir}/wx-config
+fi
+
+%preun devel
+# Remove wx-config if it points to this package
+if test -f %{_bindir}/wx-config -a -f /usr/bin/md5sum ; then
+  SUM1=`md5sum %{_bindir}/wxmgl-%{ver2}-config | cut -c 0-32`
+  SUM2=`md5sum %{_bindir}/wx-config | cut -c 0-32`
+  if test "x$SUM1" = "x$SUM2" ; then
+    rm -f %{_bindir}/wx-config
+  fi
+fi
+
+
+%files -f wxstd.lang
+%defattr(-,root,root)
+%doc COPYING.LIB *.txt
+%dir %{_datadir}/wx
+%{_datadir}/wx/*
+%{_libdir}/libwx_mgl*-%{ver2}*.so.*
+
+%files devel
+%defattr(-,root,root)
+%{_libdir}/libwx_mgl*-%{ver2}*.so
+%dir %{_includedir}/wx
+%{_includedir}/wx/*
+%dir %{_libdir}/wx
+%{_libdir}/wx/*
+%{_bindir}/wxmgl*-config
+%{_datadir}/aclocal/*.m4
+
+%files static
+%defattr (-,root,root)
+%{_libdir}/lib*.a
diff --git a/wxMotif.spec b/wxMotif.spec
index 2ddead5b12..97f3a04239 100644
--- a/wxMotif.spec
+++ b/wxMotif.spec
@@ -3,7 +3,7 @@
 
 # Note that this is NOT a relocatable package
 %define pref /usr
-%define ver 2.3.3
+%define ver 2.3.4
 %define ver2 2.3
 %define rel 1
 
diff --git a/wxWINE.spec b/wxWINE.spec
index 6f7aad9d63..df40e0c978 100644
--- a/wxWINE.spec
+++ b/wxWINE.spec
@@ -1,6 +1,6 @@
 # Note that this is NOT a relocatable package
 %define pref /usr
-%define ver 2.3.3
+%define ver 2.3.4
 %define rel 1
 
 Summary: The WINE port of the wxWindows library
diff --git a/wxX11.spec b/wxX11.spec
index bc3210d0e8..d987a06e68 100644
--- a/wxX11.spec
+++ b/wxX11.spec
@@ -1,5 +1,5 @@
 %define pref /usr
-%define ver 2.3.3
+%define ver 2.3.4
 %define ver2 2.3
 %define rel 1
 
diff --git a/wxwin.m4 b/wxwin.m4
index b5959a3383..e567af0914 100644
--- a/wxwin.m4
+++ b/wxwin.m4
@@ -7,7 +7,7 @@ dnl	...
 dnl	AM_OPTIONS_WXCONFIG
 dnl	...
 dnl	...
-dnl	AM_PATH_WXCONFIG(2.3.3, wxWin=1)
+dnl	AM_PATH_WXCONFIG(2.3.4, wxWin=1)
 dnl     if test "$wxWin" != 1; then
 dnl        AC_MSG_ERROR([
 dnl     	   wxWindows must be installed on your system
@@ -16,7 +16,7 @@ dnl
 dnl     	   Please check that wx-config is in path, the directory
 dnl     	   where wxWindows libraries are installed (returned by
 dnl     	   'wx-config --libs' command) is in LD_LIBRARY_PATH or
-dnl     	   equivalent variable and wxWindows version is 2.3.3 or above.
+dnl     	   equivalent variable and wxWindows version is 2.3.4 or above.
 dnl        ])
 dnl     fi
 dnl     CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS"
-- 
2.47.2

