diff --git a/documentation/bugs.sgml b/documentation/bugs.sgml
index dea0b18..bf8bc2b 100644
--- a/documentation/bugs.sgml
+++ b/documentation/bugs.sgml
@@ -1,5 +1,194 @@
   <chapter id="bugs">
-    <title>Finding and Reporting Bugs</title>
+    <title>Troubleshooting / Reporting bugs</title>
+
+    <sect1 id="troubleshooting">
+      <title>What to do if some program still doesn't work ?</title>
+
+      <para>
+      There are times when you've been trying everything, you even killed a cat
+      at full moon and ate it with rotten garlic and foul fish
+      while doing the Devil's Dance, yet nothing helped to make some damn
+      program work on some Wine version.
+      Don't despair, we're here to help you...
+      (in other words: how much do you want to pay ?)
+      </para>
+      
+      <sect2>
+        <title>Run "winecheck" to check your configuration</title>
+
+	<para>
+	Run a Perl script called <command>winecheck</command>, to be
+	found in Wine's tools/ directory.
+
+	The latest version can always be found at
+	<ulink
+	url="http://home.arcor.de/andi.mohr/download/winecheck">http://home.arcor.de/andi.mohr/download/winecheck</ulink>.
+
+	Make sure to run <command>chmod +x winecheck</command> first before
+	trying to execute it...
+	(or alternatively run it via <command>perl ./winecheck</command>)
+
+	The winecheck output will be a percentage score indicating Wine
+	configuration correctness.
+	Note that winecheck is only alpha, so it's not very complete or
+	100% accurate.
+	</para>
+      </sect2>
+
+      <sect2>
+        <title>Use different windows version settings</title>
+
+	<para>
+	In several cases using <link linkend="windows-versions">different windows version settings</link> can help.
+        </para>
+      </sect2>
+
+      <sect2>
+        <title>Use different startup paths</title>
+
+	<para>
+	  This sometimes helps, too:
+
+	  Try to use both
+	  <command>wine prg.exe</command>
+	  and
+	  <command>wine x:\\full\\path\\to\\prg.exe</command>
+	</para>
+      </sect2>
+
+      <sect2>
+        <title>Fiddle with DLL configuration</title>
+
+	<para>
+	  Run with --debugmsg +loaddll to figure out which DLLs are
+	  being used, and whether they're being loaded as native or
+	  builtin.
+	  Then make sure you have proper native DLL files in your
+	  configured C:\windows\system directory and fiddle with DLL
+	  load order settings at command line or in config file.
+	</para>
+      </sect2>
+
+      <sect2>
+        <title>Check your system environment !</title>
+
+	<para>
+	  Just an idea: could it be that your Wine build/execution
+	  environment is broken ?
+
+	  Make sure that there are no problems whatsoever with the
+	  packages
+	  that Wine depends on (gcc, glibc, X libraries, OpenGL (!), ...)
+
+	  E.g. some people have strange failures to find stuff when
+	  using "wrong" header files for the "right" libraries !!!
+	  (which results in days of debugging to desperately try to find
+	  out why that lowlevel function fails in a way that is completely
+	  beyond imagination... ARGH !)
+	</para>
+      </sect2>
+
+      <sect2>
+        <title>Use different GUI (Window Manager) modes</title>
+	
+	<para>
+	  Instruct Wine via config file to use either desktop mode,
+	  managed mode or plain ugly "normal" mode.
+	  That can make one hell of a difference, too.
+	</para>
+      </sect2>
+
+      <sect2>
+        <title>Check your app !</title>
+	
+	<para>
+	  Maybe your app is using some kind of copy protection ?
+
+	  Many copy protections currently don't work on Wine.
+	  Some might work in the future, though.
+	  (the CD-ROM layer isn't really full-featured yet).
+	</para>
+
+	<para>
+	  Go to <ulink
+	  url="http://www.gamecopyworld.com">GameCopyWorld</ulink>
+	  and try to find a decent crack for your game that gets rid of
+	  that ugly copy protection.
+	  I hope you do have a legal copy of the program, though... :-)
+	</para>
+      </sect2>
+
+      <sect2>
+        <title>Check your Wine environment !</title>
+        
+	<para>
+	  Running with or without a Windows partition can have a
+	  dramatic impact.
+
+	  Configure Wine to do the opposite of what you used to have.
+
+	  Also, install DCOM98 or DCOM95. This can be very beneficial.
+	</para>
+      </sect2>
+
+      <sect2>
+        <title>Reconfigure Wine</title>
+	
+	<para>
+	  Sometimes wine installation process changes and new versions of
+	  Wine acccount on these changes.
+	  This is especially true if your setup was created long time ago.
+
+	  Rename your existing <filename>~/.wine</filename> directory
+	  for backup purposes.
+	  Use the setup process that's recommended for your Wine distribution
+	  to create new configuration.
+	  Use information in old <filename>~/.wine</filename>
+	  directory as a reference.
+	  For source wine distribution to configure Wine run
+	  tools/wineinstall script as a user you want to do the configuration
+	  for.
+	  This is a pretty safe operation. Later you can remove the new
+	  <filename>~/.wine</filename> directory and rename your old one back.
+	</para>
+      </sect2>
+
+      <sect2>
+      <title>Check out further information</title>
+      
+      <para>
+        Check out the <ulink
+	url="http://www.winehq.org/fom-meta/cache/19.html">Wine Troubleshooting Guide</ulink> on WineHQ.
+
+	Go to <ulink url="http://groups.google.com">Google Groups</ulink>
+	and check whether some guys are smarter than you ;-)
+	(well, whether they found a solution to the problem, that is)
+
+	Go to <ulink url="http://appdb.codeweavers.com">WineHQ's
+	Application Database</ulink> and check whether
+	someone posted the vital config hint for your app.
+
+	If that doesn't help, then consider going to
+	irc.openprojects.net channel #WineHQ, posting to
+	news:comp.emulators.ms-windows.wine or mailing to the wine-users
+	(or maybe sometimes even wine-devel) mailing lists.
+      </para>
+      </sect2>
+
+      <sect2>
+        <title>Debug it!</title>
+
+	<para>
+	  Have you used the Search feature of the <ulink
+	  url="http://www.winehq.org/fom-meta/cache/19.html">Wine Troubleshooting Guide</ulink> ?? (i.e. are you sure there's no answer ?)
+	  If you have, then try
+	  <ulink url="http://www.winehq.org/fom-meta/cache/230.html">
+	  The Perfect Enduser Wine Debugging Guide</ulink>, and of
+	  course don't forget to read the Wine Developers Guide.
+	</para>
+      </sect2>
+	
+    </sect1>
 
     <sect1 id="bug-reporting">
       <title>How To Report A Bug</title>
@@ -8,7 +197,7 @@
         Written by (???)
       </para>
       <para>
-        (Extracted from <filename>wine/documentation/bugreports</filename>)
+        (Originally extracted from <filename>wine/documentation/bugreports</filename>)
       </para>
 
       <para>
diff --git a/documentation/configuring.sgml b/documentation/configuring.sgml
index 0b575ec..7c3185c 100644
--- a/documentation/configuring.sgml
+++ b/documentation/configuring.sgml
@@ -401,6 +401,8 @@
 	    WARNING: if you use ttydrv here, then you won't be able to run
 	    any Windows GUI programs. Thus this option is mainly interesting
 	    for e.g. embedded use of Wine in web server scripts.
+	    Note that ttydrv is still very lacking, so if it doesn't work,
+	    resort to using "xvfb", a virtual X11 server.
 	  </para>
 	  <para>
             <programlisting>"Printer" = "off|on"</programlisting> Tells wine
@@ -929,7 +931,7 @@
           </para>
 	</sect3>
 
-        <sect3>
+        <sect3 id="appdefaults-section">
           <title>The [AppDefaults] Section</title>
           <para>
             The section is used to overwrite certain settings of this file for a
@@ -1053,11 +1055,6 @@
         <title>x11drv modes of operation</title>
 
         <para>
-          <!-- FIXME: This is outdated -->
-          Note: This is now all done in the config file. Needs an update...
-        </para>
-
-        <para>
           The x11drv driver consists of two conceptually distinct
           pieces, the graphics driver (GDI part), and the windowing
           driver (USER part). Both of these are linked into the
@@ -1076,24 +1073,10 @@
 
         <variablelist>
           <varlistentry>
-            <term>Unmanaged/Normal</term>
-            <listitem>
-              <para>
-                The default. Window-manager-independent (any running
-                window manager is ignored completely). Window
-                decorations (title bars, borders, etc) are drawn by
-                Wine to look and feel like the real Windows. This is
-                compatible with applications that depend on being able
-                to compute the exact sizes of any such decorations, or
-                that want to draw their own.
-              </para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
             <term>Managed</term>
             <listitem>
               <para>
-                Specified by using the <literal>Managed</literal>
+                The default. Specified by using the <literal>Managed</literal>
                 wine config file option (see below).
                 Ordinary top-level frame windows with thick borders,
                 title bars, and system menus will be managed by your
@@ -1101,8 +1084,24 @@
                 better with the rest of your desktop, but may not
                 always work perfectly. (A rewrite of this mode of
                 operation, to make it more robust and less patchy, is
-                highly desirable, though, and is planned to be done
-                before the Wine 1.0 release.)
+                currently being done, though, and it's planned to be
+                finished before the Wine 1.0 release.)
+              </para>
+            </listitem>
+          </varlistentry>
+          <varlistentry>
+            <term>Unmanaged/Normal</term>
+            <listitem>
+              <para>
+                Window-manager-independent (any running
+                window manager is ignored completely). Window
+                decorations (title bars, borders, etc) are drawn by
+                Wine to look and feel like the real Windows. This is
+                compatible with applications that depend on being able
+                to compute the exact sizes of any such decorations, or
+                that want to draw their own.
+                Unmanaged mode is only used if both Managed and Desktop
+                are set to disabled.
               </para>
             </listitem>
           </varlistentry>
@@ -1124,8 +1123,8 @@
                 applications can roam freely within this virtual
                 workspace and think they own it all, without
                 disturbing your other X apps.
-		Note: currently there's on desktop window for every
-		application; this will be fixed in the future.
+		Note: currently there's one desktop window for every
+		application; this will be fixed at some time.
               </para>
             </listitem>
           </varlistentry>
@@ -1296,17 +1295,11 @@
             <term>TextCP</term>
             <listitem>
               <para>
-                <!-- FIXME: To be documented -->
-                To be documented...
-              </para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term>XVideoPort</term>
-            <listitem>
-              <para>
-                <!-- FIXME: To be documented -->
-                To be documented...
+	        Codepage to be used for rendering the text in X11
+		output. Some sample values would be 437 (USA, Canada),
+		850 (Europe), 852 (Central/Eastern Europe), 855
+		(Cyrillic). For additional suitable values, see e.g. the Linux
+		kernel's codepage configuration page.
               </para>
             </listitem>
           </varlistentry>
@@ -1316,6 +1309,76 @@
 
     &registry;
 
+    <sect1 id="windows-versions">
+
+      <title>Setting the windows and DOS version value that's passed to
+      programs</title>
+      
+      <para>
+        Written by &name-andreas-mohr; <email>&email-andreas-mohr;</email>
+        Oct 18 2002
+      </para>
+
+      <para>
+        The windows and DOS version value a program gets e.g. by calling the
+	Windows function GetVersion() plays a very important role:
+	If your Wine installation for whatever reason fails to provide
+	to your program the correct version value that it expects,
+	then the program might assume some very bad things and fail (in
+	the worst case even silently !).
+    
+        Fortunately Wine contains some more or less intelligent Windows
+	version guessing algorithm that will try to guess the Windows
+	version a program might expect and pass that one on to the
+	program.
+
+	Thus you should <emphasis>not</emphasis> lightly configure a version value, as this will be a "forced" value and thus turn out to be rather harmful to proper operation. In other words: only explicitly set a Windows version value in case Wine's own version detection was unable to provide the correct Windows version and the program fails.
+      </para>
+
+      <sect2>
+        <title>How to configure the Windows and DOS version value Wine
+	should return</title>
+	
+	<para>
+	The version values can be configured in the wine config file in
+	the [Version] section.
+	</para>
+
+	<variablelist>
+	  <varlistentry>
+	    <term>"Windows" = "&lt;version string&gt;"</term>
+	    <listitem>
+	      <para>
+	        default: none; chosen by semi-intelligent detection
+	        mechanism based on DLL environment.
+	        Used to specify which Windows version to return to
+	        programs  (forced  value, overrides standard detection
+	        mechanism  !). Valid  settings are e.g. "win31", "win95",
+	        "win98",  "win2k",  "winxp".
+		Also valid as an
+		<link linkend="appdefaults-section">AppDefaults</link>
+	        setting (recommended/preferred use).
+	      </para>
+	    </listitem>
+	  </varlistentry>
+	  <varlistentry>
+	    <term>"DOS"="&lt;version string&gt;"</term>
+	    <listitem>
+	      <para>
+	        Used to specify the DOS version that should be returned
+		to programs. Only takes effect in case Wine acts as
+		"win31" Windows version ! Common DOS version settings
+		include 6.22, 6.20, 6.00, 5.00, 4.00, 3.30, 3.10.
+		Also valid as an
+		<link linkend="appdefaults-section">AppDefaults</link>
+	        setting (recommended/preferred use).
+	      </para>
+	    </listitem>
+	  </varlistentry>
+	</variablelist>
+      </sect2>
+    </sect1>
+    
     <sect1 id="cdrom-labels">
       <sect1info>
         <authorgroup>
@@ -1400,7 +1463,7 @@
         <para>
           If you don't do that, then you should give fixed
           <literal>"Label" =</literal> or <literal>"Serial" =</literal>
-          entries in <filename>~./wine/config</filename>, as Wine returns
+          entries in <filename>~/.wine/config</filename>, as Wine returns
           these entries instead if no device is given. If they don't
           exist, then Wine will return default values (label
           <literal>Drive X</literal> and serial
@@ -1896,6 +1959,24 @@
 	  directory. Just find out its directory by having a look at the Wine
 	  config File variable "System" (which indicates the location of the
 	  Windows system directory) and the associated drive entry.
+	  Note that you probably shouldn't use NT-based native DLLs,
+	  since Wine's NT API support is somewhat weaker than its Win9x
+	  API support (thus leading to even worse compatibility with NT DLLs
+	  than with a no-windows setup !), so better use Win9x native DLLs
+	  instead or no native DLLs at all.
+        </para>
+      </sect2>
+      <sect2 id="dll-windows">
+        <title>Fetching native DLLs from a Windows CD</title>
+
+        <para>
+          Written by &name-andreas-mohr; <email>&email-andreas-mohr;</email>
+        </para>
+
+        <para>
+	The Linux <command>cabextract</command> utility can be used to
+	extract native Windows .dll files from .cab files that are to be
+	found on many Windows installation CDs.
         </para>
       </sect2>
     </sect1>
diff --git a/documentation/installing.sgml b/documentation/installing.sgml
index a3c62a4..237a461 100644
--- a/documentation/installing.sgml
+++ b/documentation/installing.sgml
@@ -176,7 +176,7 @@
         without having to install Windows on their machine. Wine
         implements the functionality of the main DLLs usually
         provided with Windows. Therefore, once Wine is finished, you
-        will not need to have windows installed to use Wine.
+        will not need to have Windows installed to use Wine.
       </para>
       <para>
         Wine has already made enough progress that it may be possible
@@ -187,25 +187,32 @@
       <orderedlist>
         <listitem>
           <para>
-            Create empty <filename>C:\windows</filename>,
-            <filename>C:\windows\system</filename>,
-            <filename>C:\windows\Start Menu</filename>, and
-            <filename>C:\windows\Start Menu\Programs</filename>
+            Point <medialabel>[Drive C]</medialabel> in
+            <filename>~/.wine/config</filename> to the directory where you want
+            <filename>C:</filename> to be. Refer to the wine.conf man page
+            for more information.
+	    The directory to be used for emulating a C: drive will be
+	    the base directory for some Windows specific directories
+	    created below.
+	    Remember to use
+            <userinput>"Filesystem" = "win95"</userinput>!
+          </para>
+        </listitem>
+        <listitem>
+          <para>
+	    Within the directory to be used for C:, create empty
+	    <filename>windows</filename>,
+            <filename>windows/system</filename>,
+            <filename>windows/Start Menu</filename>, and
+            <filename>windows/Start Menu/Programs</filename>
             directories. Do not point Wine to a
             <filename>Windows</filename> directory full of old
             installations and a messy registry. (Wine creates a
             special registry in your <filename >home</filename>
             directory, in <filename>$HOME/.wine/*.reg</filename>.
             Perhaps you have to remove these files).
-          </para>
-        </listitem>
-        <listitem>
-          <para>
-            Point <medialabel>[Drive C]</medialabel> in
-            <filename>~/.wine/config</filename> to where you want
-            <filename>C:</filename> to be. Refer to the Wine man page
-            for more information. Remember to use
-            <userinput>"Filesystem" = "win95"</userinput>!
+	    In one line:
+	    mkdir -p windows windows/system windows/Start\ Menu windows/Start\ Menu/Programs
           </para>
         </listitem>
         <listitem>
@@ -215,9 +222,9 @@
             it yourself, compile <filename>programs/regapi</filename>,
             and run:
           </para>
-		  <screen>
-			<userinput>programs/regapi/regapi setValue &lt; winedefault.reg</userinput>
-		  </screen>
+	  <screen>
+		<userinput>programs/regapi/regapi setValue &lt; winedefault.reg</userinput>
+	  </screen>
         </listitem>
         <listitem>
           <para>
@@ -303,6 +310,32 @@
       </itemizedlist>
     </sect1>
 
+    <sect1 id="with-windows">
+      <title>Installing Wine Using An Existing Windows Partition As Base</title>
+      <para>
+        Some people intend to use the data of an existing Windows partition
+	with Wine in order to gain some better compatibility or to run already
+	installed programs in a setup as original as possible.
+	Note that many Windows programs assume that they have full write
+	access to all windows directories.
+
+	This means that you either have to configure the Windows
+	partition mount point for write permission by your Wine user
+	(see <link linkend="vfat">Dealing with FAT/VFAT partitions</link>
+	on how to do that), or you'll have to copy over (some parts of) the Windows
+	partition content to a directory of a Unix partition and make
+	sure this directory structure is writable by your user.
+	We HIGHLY DISCOURAGE people from directly using a Windows partition with
+	write access as a base for Wine !! (some programs, notably
+	Explorer, corrupt large parts of the Windows partition in case
+	of an incorrect setup; you've been warned).
+	Not to mention that NTFS write support in Linux is still very
+	experimental and DANGEROUS (in case you're using an NT-based
+	Windows version using the NTFS file system).
+	Thus we advise you to go the Unix directory way.
+      </para>
+    </sect1>
+
     <sect1 id="vfat">
       <title>Dealing With FAT/VFAT Partitions</title>
       <para>
@@ -590,7 +623,7 @@
       </sect2>
 
       <sect2>
-        <title>LINUX requirements:</title>
+        <title>Linux requirements</title>
         <orderedlist>
           <listitem>
             <para>
diff --git a/documentation/wine.man.in b/documentation/wine.man.in
index c18e6f1..06ca461 100644
--- a/documentation/wine.man.in
+++ b/documentation/wine.man.in
@@ -5,7 +5,7 @@
 .SH SYNOPSIS
 .BI "wine " "[wine_options] " "[--] " "program " "[arguments ... ]"
 .PP
-For instructions on passing arguments to Windows programs, please see the 
+For instructions on passing arguments to Windows programs, please see the
 .B
 PROGRAM/ARGUMENTS
 section of the man page.
@@ -39,8 +39,8 @@
 A large percentage of the API has been implemented,
 although there are still several major pieces of work left to do.
 .SH REQUIREMENTS AND INSTALLATION
-Read the README file in the Wine source distribution to know what Wine
-requires and how it is installed from source.
+Read the README file in the Wine source distribution and the wine.conf
+man page to know what Wine requires and how it is installed from source.
 .SH OPTIONS
 .TP
 .I --debugmsg [xxx]#name[,[xxx1]#name1][,<+|->relay=yyy1[:yyy2]]
