diff -ruN a/devdoc/Dillo.txt b/devdoc/Dillo.txt
--- a/devdoc/Dillo.txt	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/Dillo.txt	2025-01-18 18:46:05.714088584 +0100
@@ -84,7 +84,7 @@
 
    Well,  the  html  parser  gets  fed,  and proper functions are
 called  for  each tag (to parse and call the appropriate methods)
-and the whole page is contructed in a streamed way.
+and the whole page is constructed in a streamed way.
    Somewhere  in  the  middle of it, resize and repaint functions
 are  activated  and  idle  functions draw to screen what has been
 processed.
diff -ruN a/devdoc/dw-changes.doc b/devdoc/dw-changes.doc
--- a/devdoc/dw-changes.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/dw-changes.doc	2025-01-18 18:46:05.700088594 +0100
@@ -51,7 +51,7 @@
 
 <li> Instead of border_spacing in the old DwStyle, there are two attributes,
      dw::core::style::Style::hBorderSpacing and
-     dw::core::style::Style::vBorderSpacing, since CSS allowes to specify
+     dw::core::style::Style::vBorderSpacing, since CSS allows to specify
      two values. Without CSS, both attributes should have the same value.
 
 <li> Images are handled differently, see \ref dw-images-and-backgrounds.
diff -ruN a/devdoc/dw-fixed-positions.doc b/devdoc/dw-fixed-positions.doc
--- a/devdoc/dw-fixed-positions.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/dw-fixed-positions.doc	2025-01-18 18:46:05.676088611 +0100
@@ -19,7 +19,7 @@
 Idea for tables
 ---------------
 
-Often, tables have a header, which contains informations necessary to
+Often, tables have a header, which contains information necessary to
 interpret the columns in the table body. For this, HTML defines the elements
 &lt;thead&gt; and &lt;tbody&gt;
 <sup><a href="#note-table-footer" id="ref-table-footer">[1]</a></sup>.
@@ -28,7 +28,7 @@
 the reader's view. In paged media, where a large table covers multiple
 pages, this is often solved by *repeating* the table header on each
 page occupied by the table. When using a viewport, a table larger than
-the vieport could be displayed like this:
+the viewport could be displayed like this:
 
 1. If the top of the table is within the viewport, show the table
    header at the usual position.
diff -ruN a/devdoc/dw-images-and-backgrounds.doc b/devdoc/dw-images-and-backgrounds.doc
--- a/devdoc/dw-images-and-backgrounds.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/dw-images-and-backgrounds.doc	2025-01-18 18:46:05.681088608 +0100
@@ -30,7 +30,7 @@
 - Html_load_image: for embedded images (implemented by dw::Image,
   which implements dw::core::ImgRenderer);
 - StyleEngine::apply (search for "case
-  CSS_PROPERTY_BACKGROUND_IMAGE"): for backgrond images; there are
+  CSS_PROPERTY_BACKGROUND_IMAGE"): for background images; there are
   some implementations of dw::core::ImgRenderer within the context of
   dw::core::style::StyleImage.
 
@@ -214,7 +214,7 @@
   with different background colors.
 - The dicache only handles background colors, not background images.
 
-The solution is basicly simple: keep alpha support out of dicache;
+The solution is basically simple: keep alpha support out of dicache;
 instead implement RGBA in dw::Image. As it seems, the main problem is
 alpha support in FLTK/X11.
 
diff -ruN a/devdoc/dw-interrupted-drawing.doc b/devdoc/dw-interrupted-drawing.doc
--- a/devdoc/dw-interrupted-drawing.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/dw-interrupted-drawing.doc	2025-01-18 18:46:05.713088584 +0100
@@ -70,7 +70,7 @@
 
 1. #sc-2 is a child of #sc-1, but
 2. #fl-1 is a child of the body, and
-3. a widget can only draw its descendants (not neccessary children,
+3. a widget can only draw its descendants (not necessary children,
    but drawing siblings is not allowed),
 
 #sc-1 cannot be drawn as a whole; instead drawing is **interrupted**
diff -ruN a/devdoc/dw-layout-views.doc b/devdoc/dw-layout-views.doc
--- a/devdoc/dw-layout-views.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/dw-layout-views.doc	2025-01-18 18:46:05.692088599 +0100
@@ -11,7 +11,7 @@
 the platform. A platform is typically related to the underlying UI
 toolkit, but other uses may be thought of.
 
-This design helps to archieve two important goals:
+This design helps to achieve two important goals:
 
 <ul>
 <li> Abstraction of the actual drawing, by different implementations
diff -ruN a/devdoc/dw-layout-widgets.doc b/devdoc/dw-layout-widgets.doc
--- a/devdoc/dw-layout-widgets.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/dw-layout-widgets.doc	2025-01-18 18:46:05.698088595 +0100
@@ -38,7 +38,7 @@
 <h2>Styles</h2>
 
 Each widget is assigned a style, see dw::core::style for more
-informations.
+information.
 
 
 <h2>Iterators</h2>
diff -ruN a/devdoc/dw-line-breaking.doc b/devdoc/dw-line-breaking.doc
--- a/devdoc/dw-line-breaking.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/dw-line-breaking.doc	2025-01-18 18:46:05.711088586 +0100
@@ -156,7 +156,7 @@
   stretched);
 - the shrinkability \f$y_i\f$, a value denoting how much the space
   after word\f$i\f$ can be shrunken (typically \f${1\over 3} s_i\f$
-  for justified text; otherwise 0, since the spaces are not shrinked);
+  for justified text; otherwise 0, since the spaces are not shrunk);
 - the penalty \f$p_i\f$, if the line is broken after word \f$i\f$;
 - a width \f$h_i\f$, which is added, when the line is broken after
   word \f$i\f$.
@@ -227,7 +227,7 @@
 --------------
 
 For other than justified text (left-, right-aligned and centered), the
-spaces between the words are not shrinked or stretched (so \f$y_i\f$
+spaces between the words are not shrunk or stretched (so \f$y_i\f$
 and \f$z_i\f$ are 0), but additional space is added to the left or
 right border or to both. For this reason, an additional stretchability
 \f${Y_0}_a^b\f$ is added (see definition above). Since this space at
@@ -275,7 +275,7 @@
 =======
 
 Words (instances of dw::Textblock::Word), which are actually part of a
-hyphenated word, are always drawn as a whole, not seperately. This
+hyphenated word, are always drawn as a whole, not separately. This
 way, the underlying platform is able to apply kerning, ligatures, etc.
 
 Calculating the width of such words causes some problems, since it is
@@ -342,7 +342,7 @@
 
 After this, the line is re-calculated.
 
-A problem arrises when the textblock is rewrapped, e.&nbsp;g. when the
+A problem arises when the textblock is rewrapped, e.&nbsp;g. when the
 user changes the window width. In this case, some new instances of
 dw::Textblock::Word must be inserted into the word list,
 dw::Textblock::words. This word list is implemented as an array, which
@@ -448,7 +448,7 @@
 Possible strategies to deal with this problem:
 
 - Ignore. The implications should be minimal.
-- Any solution will make it neccessary to hyphenate at least some
+- Any solution will make it necessary to hyphenate at least some
   words when calculating extremes. Since the minimal widths of all
   words are used to calculate the minimal width of the text block, the
   simplest approach will hyphenate all words. This would, of course,
diff -ruN a/devdoc/dw-miscellaneous.doc b/devdoc/dw-miscellaneous.doc
--- a/devdoc/dw-miscellaneous.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/dw-miscellaneous.doc	2025-01-18 18:46:05.696088597 +0100
@@ -83,12 +83,12 @@
 dw::core::Widget::queueResize within an implementation of
 dw::core::Widget::markSizeChange.
 
-Here is the orginal test case (slow, when `if (lines->size () > 0)` is removed
+Here is the original test case (slow, when `if (lines->size () > 0)` is removed
 again):
 
     (for i in $(seq 1 20); do echo '<div style="float:left"><div></div>'; done) > tmp.html; src/dillo tmp.html
 
-You may change the numner (20), or examine smaller cases with
+You may change the number (20), or examine smaller cases with
 <a href="http://home.gna.org/rtfl/">RTFL</a>:
 
     (for i in $(seq 1 3); do echo '<div style="float:left"><div></div>'; done) > tmp.html; src/dillo tmp.html | rtfl-objview -OM -A "*" -a resize -a resize.oofm
diff -ruN a/devdoc/dw-out-of-flow.doc b/devdoc/dw-out-of-flow.doc
--- a/devdoc/dw-out-of-flow.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/dw-out-of-flow.doc	2025-01-18 18:46:05.686088604 +0100
@@ -59,7 +59,7 @@
   dw::core::Content::WIDGET_IN_FLOW is used. Notice that in the first case,
   there are two pieces of content referring to the same widget. An application
   of this distinction is iterators. (For selection and searching, the generating
-  hierarchy is used, whih is different from the widget hierarchy.)
+  hierarchy is used, which is different from the widget hierarchy.)
 
 Handling widgets out of flow is partly the task of class implementing
 dw::oof::OutOfFlowMgr, which is stored by dw::oof::OOFAwareWidget::outOfFlowMgr,
diff -ruN a/devdoc/dw-out-of-flow-floats.doc b/devdoc/dw-out-of-flow-floats.doc
--- a/devdoc/dw-out-of-flow-floats.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/dw-out-of-flow-floats.doc	2025-01-18 18:46:05.706088589 +0100
@@ -92,10 +92,10 @@
 
 1. The available width, which is used for the width of the textblock,
    is defined independent of floats. Aside from problems when changing
-   this definition, a dependance on floats would be difficult to
+   this definition, a dependence on floats would be difficult to
    implement, since *sizeRequest* is independent of a position. (See
    also \ref dw-out-of-flow.)
-2. I must admit that I do not rembember the exact rationale and the
+2. I must admit that I do not remember the exact rationale and the
    test case behind adding the exception in
    dw::Textblock::getWidgetRegardingBorderForLine (see above), but
    simply removing this exception will result in a possible
@@ -124,7 +124,7 @@
   all lines; *y* is irrelevant in this case.
 - Since the textblock will tend to become taller when getting
   narrower, and so possibly cover more (wider) floats, and so become
-  narrower again etc., there may be multible solutions for calculating
+  narrower again etc., there may be multiple solutions for calculating
   the size. Generally, a smaller height (and so larger width) is
   preferred.
 - There remains a problem: what if a word is too large? Should a
diff -ruN a/devdoc/dw-size-request-pos.doc b/devdoc/dw-size-request-pos.doc
--- a/devdoc/dw-size-request-pos.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/dw-size-request-pos.doc	2025-01-18 18:46:05.677088610 +0100
@@ -63,7 +63,7 @@
 This conflict is handled in different ways:
 
 1. Fortunately, this case is irrelevat for floats: an inline block
-   constitutes its own floats container, so that there is no dependance
+   constitutes its own floats container, so that there is no dependence
    on a position within another widget.
 
 2. For positioned elements, this case is relevant, since an inline
diff -ruN a/devdoc/dw-stacking-context.doc b/devdoc/dw-stacking-context.doc
--- a/devdoc/dw-stacking-context.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/dw-stacking-context.doc	2025-01-18 18:46:05.683088606 +0100
@@ -74,7 +74,7 @@
 
 <td rowspan="4"> Likewise, the implementation should (i) test
                  dw::oof::OOFAwareWidget::getWidgetOOFAtPoint, and
-                 (ii) search through the chilren. Also, duplicate
+                 (ii) search through the children. Also, duplicate
                  calls should be avoided using
                  dw::core::StackingContextMgr::handledByStackingContextMgr.
 
diff -ruN a/devdoc/dw-usage.doc b/devdoc/dw-usage.doc
--- a/devdoc/dw-usage.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/dw-usage.doc	2025-01-18 18:46:05.673088613 +0100
@@ -98,7 +98,7 @@
    styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs);
 \endcode
 
-As the last attributes, the background and forground colors are
+As the last attributes, the background and foreground colors are
 defined, here dw::core::style::Color::createSimple must be called:
 
 \code
@@ -265,7 +265,7 @@
      dw::fltk::ui::FltkComplexButtonResource::createNewWidget for details.
 </ul>
 
-More informations about views in general can be found in \ref
+More information about views in general can be found in \ref
 dw-layout-views.
 
 
@@ -344,7 +344,7 @@
 <ul>
 <li>a horizontal adjustment parameter, defined by dw::core::HPosition,
 <li>a vertical adjustment parameter, defined by dw::core::VPosition, and
-<li>a rectangle (\em x, \em y, \em width and \em heigh) of the region
+<li>a rectangle (\em x, \em y, \em width and \em height) of the region
     to be adjusted.
 </ul>
 
diff -ruN a/devdoc/dw-widget-sizes.doc b/devdoc/dw-widget-sizes.doc
--- a/devdoc/dw-widget-sizes.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/dw-widget-sizes.doc	2025-01-18 18:46:05.691088600 +0100
@@ -187,7 +187,7 @@
 
 Generally, the rules defined below are, in case of doubt, rather
 strict; when changing the rules, loosening is simpler than to tighten
-them, since this will make it neccessary to review old code for calls
+them, since this will make it necessary to review old code for calls
 previously allowed but now forbidden.
 
 Short recap:
diff -ruN a/devdoc/Images.txt b/devdoc/Images.txt
--- a/devdoc/Images.txt	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/Images.txt	2025-01-18 18:46:05.694088598 +0100
@@ -15,7 +15,7 @@
      associated widget (DwImage).
      i.e. If 'Image' is the var for the structure, then
           'Image->dw' is the widget.
-   - Requesting the image to be feeded by the cache.
+   - Requesting the image to be fed by the cache.
    - Sending some info to the browser interface.
 
 * The  cache  can  either request the image data from the net, or
diff -ruN a/devdoc/lout.doc b/devdoc/lout.doc
--- a/devdoc/lout.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/lout.doc	2025-01-18 18:46:05.689088602 +0100
@@ -61,7 +61,7 @@
 <h2>Debugging</h2>
 
 In debug.hh, there are some some useful macros for debugging messages,
-see the file for mor informations.
+see the file for mor information.
 
 
 <h2>Identifying Classes at Runtime</h2>
diff -ruN a/devdoc/rounding-errors.doc b/devdoc/rounding-errors.doc
--- a/devdoc/rounding-errors.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/rounding-errors.doc	2025-01-18 18:46:05.684088605 +0100
@@ -17,7 +17,7 @@
 
 \f[y_i = {(\sum_{j=0}^{j=i} x_j) a \over b} - \sum_{j=0}^{j=i-1} y_j\f]
 
-Of corse, when all \f$y_i\f$ are calculated in a sequence,
+Of course, when all \f$y_i\f$ are calculated in a sequence,
 \f$\sum_{j=0}^{j=i} x_j\f$ and \f$\sum_{j=0}^{j=i-1} y_j\f$ can be
 accumulated in the same loop. Regard this as sample:
 
diff -ruN a/devdoc/uml-legend.doc b/devdoc/uml-legend.doc
--- a/devdoc/uml-legend.doc	2025-01-12 17:14:01.000000000 +0100
+++ b/devdoc/uml-legend.doc	2025-01-18 18:46:05.669088616 +0100
@@ -19,7 +19,7 @@
 \enddot
 
 (In most cases, the attributes and operations are left away, for
-better readibility. Just click on it, to get to the detailed
+better readability. Just click on it, to get to the detailed
 description.)
 
 Of course, in C++, there are no interfaces, but here, we call a class,
@@ -42,7 +42,7 @@
 
 <h2>Objects</h2>
 
-In some cases, an examle for a concrete constellation of objects is
+In some cases, an example for a concrete constellation of objects is
 shown. An object is represented by a box containing a name and the
 class, separated by a colon.
 
diff -ruN a/dillo-install-hyphenation b/dillo-install-hyphenation
--- a/dillo-install-hyphenation	2025-01-12 17:14:01.000000000 +0100
+++ b/dillo-install-hyphenation	2025-01-18 18:46:05.419088798 +0100
@@ -106,7 +106,7 @@
          $lang = $arg;
       }
       
-      # First, donwload the pattern file to a temporary file.
+      # First, download the pattern file to a temporary file.
       $tmppat = tmpnam();
       if ($ftp->get ("hyph-$arg.pat.txt", $tmppat)) {
          printf ("Successfully downloaded pattern file for \"$arg\".\n");
diff -ruN a/dillorc b/dillorc
--- a/dillorc	2025-01-12 17:14:01.000000000 +0100
+++ b/dillorc	2025-01-18 18:46:05.417088799 +0100
@@ -119,7 +119,7 @@
 #adjust_min_width=YES
 
 # If this is set to YES, all CSS size specifications for tables are
-# adjusted so that all contents can be displayed. This is seperated
+# adjusted so that all contents can be displayed. This is separated
 # from "adjust_min_width" so that it is able to mimic Firefox, which
 # differentiates between tables and, say, textblocks (in some cases).
 #adjust_table_min_width=YES
diff -ruN a/doc/Cookies.txt b/doc/Cookies.txt
--- a/doc/Cookies.txt	2025-01-12 17:14:01.000000000 +0100
+++ b/doc/Cookies.txt	2025-01-18 18:46:05.722088578 +0100
@@ -54,7 +54,7 @@
 ===================
 
  Cookies can be a severe threat to personal privacy. The pages you
-visit can be tracked, logged, and associated to a peronal data-record,
+visit can be tracked, logged, and associated to a personal data-record,
 allowing the possibility of building a detailed profile of your
 browsing habits.
 
diff -ruN a/doc/user_help.in.html b/doc/user_help.in.html
--- a/doc/user_help.in.html	2025-01-12 17:14:01.000000000 +0100
+++ b/doc/user_help.in.html	2025-01-18 18:46:05.721088578 +0100
@@ -442,7 +442,7 @@
 
 <h3 id="ad-blocking">Ad blocking</h3>
 <p>Dillo has the ability to block content when loading a page based on the domain
-the embeded content is being loaded from. You can control how Dillo handles
+the embedded content is being loaded from. You can control how Dillo handles
 automatic requests for resources (like images and style sheets) that aren't at
 the same domain as the original page.</p>
 
@@ -481,7 +481,7 @@
 
 <h3 id="dillorc">Dillorc</h3>
 
-<p>The main configuration of Dillo is controled by the
+<p>The main configuration of Dillo is controlled by the
 <a href="file:~/.dillo/dillorc"><code>dillorc</code></a> file.
 The list of all available options can be found in the system
 configuration file, typically 
@@ -670,7 +670,7 @@
 
 <h3 id="keysrc">Keysrc</h3>
 
-<p>The mapping of keys in Dillo is contolled by the
+<p>The mapping of keys in Dillo is controlled by the
 <a href="file:~/.dillo/keysrc"><code>~/.dillo/keysrc</code></a> file.
 The format is "<code>key = action</code>" or
 "<code>&lt;modifier&gt;key = action</code>". Lines that begin with a "#" are comments.
diff -ruN a/dpi/bookmarks.c b/dpi/bookmarks.c
--- a/dpi/bookmarks.c	2025-01-12 17:14:01.000000000 +0100
+++ b/dpi/bookmarks.c	2025-01-18 18:46:05.665088619 +0100
@@ -142,7 +142,7 @@
 "  </select>\n"
 "  , mark its operands and\n"
 "  <input type='submit' name='submit' value='Submit'>\n"
-"  <p>You can also modify the bookmarks by editting the\n"
+"  <p>You can also modify the bookmarks by editing the\n"
 "  <a href='file:~/.dillo/bm.txt'><code>~/.dillo/bm.txt</code></a> file.\n"
 "</div>\n";
 
@@ -1258,7 +1258,7 @@
    section = 0;
 
    /* TODO: we should send an "Bookmark added" message, but the
-      msg-after-HTML functionallity is still pending, not hard though. */
+      msg-after-HTML functionality is still pending, not hard though. */
 
    /* Write new bookmarks file */
    Bms_save();
diff -ruN a/dpi/ftp.c b/dpi/ftp.c
--- a/dpi/ftp.c	2025-01-12 17:14:01.000000000 +0100
+++ b/dpi/ftp.c	2025-01-18 18:46:05.660088623 +0100
@@ -172,7 +172,7 @@
 
 /*
  * Fork, exec command, get its output and send via stdout.
- * Return: Number of bytes transfered, -1 if file-not_found, -2 if aborted.
+ * Return: Number of bytes transferred, -1 if file-not_found, -2 if aborted.
  */
 static int try_ftp_transfer(char *url)
 {
diff -ruN a/dw/findtext.hh b/dw/findtext.hh
--- a/dw/findtext.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/findtext.hh	2025-01-18 18:46:05.571088687 +0100
@@ -23,7 +23,7 @@
        */
       RESTART,
 
-      /** \brief The patten does not at all occur in the text. */
+      /** \brief The pattern does not at all occur in the text. */
       NOT_FOUND
    } Result;
 
diff -ruN a/dw/fltkui.hh b/dw/fltkui.hh
--- a/dw/fltkui.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/fltkui.hh	2025-01-18 18:46:05.547088705 +0100
@@ -67,7 +67,7 @@
  *
  * <center>[\ref uml-legend "legend"]</center>
  *
- * where dw::fltk::ui::FltkResource provides some base funtionality for all
+ * where dw::fltk::ui::FltkResource provides some base functionality for all
  * conctrete FLTK implementations of sub-interfaces of dw::core::ui::Resource.
  * However, this is not directly possible in C++, since the base class
  * dw::core::ui::Resource is ambiguous for
diff -ruN a/dw/hyphenator.cc b/dw/hyphenator.cc
--- a/dw/hyphenator.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/hyphenator.cc	2025-01-18 18:46:05.563088693 +0100
@@ -416,7 +416,7 @@
       return 0;
 
    if (root) {
-      i = 0; // we reseve slot 0 for the root state
+      i = 0; // we reserve slot 0 for the root state
    } else {
       /* The bigger pack is the more slots we check and the smaller
        * the trie will be, but CPU consumption also increases.
diff -ruN a/dw/imgbuf.hh b/dw/imgbuf.hh
--- a/dw/imgbuf.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/imgbuf.hh	2025-01-18 18:46:05.576088684 +0100
@@ -65,7 +65,7 @@
  *
  * \code
  * dw::core::Imgbuf *curBuf, *oldBuf;
- * int width, heigt,
+ * int width, height,
  * // ...
  * oldBuf = curBuf;
  * curBuf = oldBuf->getScaledBuf(oldBuf, width, height);
diff -ruN a/dw/layout.cc b/dw/layout.cc
--- a/dw/layout.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/layout.cc	2025-01-18 18:46:05.573088686 +0100
@@ -355,7 +355,7 @@
    // be detached, and check "layout != NULL" at relevant points.
 
    // Could be replaced by a virtual method in Widget, like getWidgetAtPoint,
-   // if performace were really a problem.
+   // if performance were really a problem.
 
    widget->layout = NULL;
    Iterator *it =
diff -ruN a/dw/oofawarewidget.hh b/dw/oofawarewidget.hh
--- a/dw/oofawarewidget.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/oofawarewidget.hh	2025-01-18 18:46:05.569088689 +0100
@@ -219,7 +219,7 @@
 
    static inline bool testStyleOutOfFlow (core::style::Style *style)
    {  // Second part is equivalent to testStylePositioned(), but we still keep
-      // the two seperately.
+      // the two separately.
       return testStyleFloat (style) || testStyleAbsolutelyPositioned (style)
          || testStyleRelativelyPositioned (style)
          || testStyleFixedlyPositioned (style); }
diff -ruN a/dw/ooffloatsmgr.cc b/dw/ooffloatsmgr.cc
--- a/dw/ooffloatsmgr.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/ooffloatsmgr.cc	2025-01-18 18:46:05.562088694 +0100
@@ -584,8 +584,8 @@
    }
 
    // "sideSpanningIndex" is only compared, so this simple assignment
-   // is sufficient; differenciation between GB and CB lists is not
-   // neccessary.
+   // is sufficient; differentiation between GB and CB lists is not
+   // necessary.
    vloat->sideSpanningIndex =
       leftFloats->size() + rightFloats->size() - 1;
       
@@ -704,7 +704,7 @@
    TBInfo::ComparePosition comparator (oofmIndex);
    int index = tbInfos->bsearch (&key, false, &comparator);
 
-   // "bsearch" returns next greater, but we are interrested in the last which
+   // "bsearch" returns next greater, but we are interested in the last which
    // is less or equal.
    int result = index > 0 ? index - 1 : index;
 
@@ -828,7 +828,7 @@
    DBG_OBJ_MSGF ("resize.oofm", 1, "vloat->yReq = %d, vloat->yReal = %d",
                  vloat->yReq, vloat->yReal);
 
-   // In some cases, an explicit update is neccessary, as in this example:
+   // In some cases, an explicit update is necessary, as in this example:
    //
    // <body>
    //     <div id="a">
@@ -1131,7 +1131,7 @@
    if (first != -1) {
       // It is not sufficient to find the first float, since a line
       // (with height h) may cover the region of multiple float, of
-      // which the widest has to be choosen.
+      // which the widest has to be chosen.
       bool covers = true;
 
       // We are not searching until the end of the list, but until the
@@ -1297,7 +1297,7 @@
    int pos;
    SortedFloatsVector *list = side == LEFT ? leftFloats : rightFloats;
 
-   // Search the last float before (therfore -1) this widget.
+   // Search the last float before (therefore -1) this widget.
    int i = list->findFloatIndex (widget, -1);
    if (i < 0)
       pos = 0;
diff -ruN a/dw/oofposabslikemgr.cc b/dw/oofposabslikemgr.cc
--- a/dw/oofposabslikemgr.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/oofposabslikemgr.cc	2025-01-18 18:46:05.459088769 +0100
@@ -272,7 +272,7 @@
    DBG_OBJ_ENTER ("resize.oofm", 0, "calcPosAndSizeChildOfChild",
                   "[%p], %d, %d, ...", child->widget, refWidth, refHeight);
 
-   // TODO (i) Consider {min|max}-{width|heigt}. (ii) Height is always
+   // TODO (i) Consider {min|max}-{width|height}. (ii) Height is always
    // apportioned to descent (ascent is preserved), which makes sense
    // when the children are textblocks. (iii) Consider minimal width
    // (getMinWidth)?
diff -ruN a/dw/outofflowmgr.hh b/dw/outofflowmgr.hh
--- a/dw/outofflowmgr.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/outofflowmgr.hh	2025-01-18 18:46:05.523088722 +0100
@@ -73,7 +73,7 @@
     * Get the left border for the vertical position of *y*, for a height
     * of *h", based on floats; relative to the *container*.
     *
-    * The border includes marging/border/padding of the calling textblock
+    * The border includes margin/border/padding of the calling textblock
     * but is 0 if there is no float, so a caller should also consider
     * other borders.
     */
diff -ruN a/dw/platform.hh b/dw/platform.hh
--- a/dw/platform.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/platform.hh	2025-01-18 18:46:05.524088721 +0100
@@ -148,7 +148,7 @@
    virtual void cancelTooltip () = 0;
 
    /**
-    * \brief Create a (platform speficic) image buffer.
+    * \brief Create a (platform specific) image buffer.
     *
     * "gamma" is the value by which the image data is gamma-encoded.
     */
diff -ruN a/dw/selection.hh b/dw/selection.hh
--- a/dw/selection.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/selection.hh	2025-01-18 18:46:05.568088689 +0100
@@ -94,7 +94,7 @@
  * the link handling state.
  *
  * The general selection works, for events not pointing on links, like
- * this (numbers in parantheses after the event denote the button, "n"
+ * this (numbers in parentheses after the event denote the button, "n"
  * means arbitrary button):
  *
  * \dot
diff -ruN a/dw/style.cc b/dw/style.cc
--- a/dw/style.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/style.cc	2025-01-18 18:46:05.490088746 +0100
@@ -1208,7 +1208,7 @@
  * "heightRef" define the reference area, which is important for the
  * tiling of background images (for position 0%/0%, a tile is set at
  * xRef/yRef; for position 100%/100%, a tile is set at xRef +
- * widthRef/yRef + widthRef). See calls for more informations; in most
+ * widthRef/yRef + widthRef). See calls for more information; in most
  * cases, these boxes are identical (padding box). All these
  * coordinates are given in canvas coordinates.
  *
@@ -1216,7 +1216,7 @@
  * canvas, not on top of other areas; this is only true for the
  * toplevel widget itself (not parts of its contents). Toplevel widget
  * background colors are already set as viewport background color, so
- * that drawing again is is not neccessary, but some time can be
+ * that drawing again is is not necessary, but some time can be
  * saved.
  *
  * Otherwise, the caller should not try to increase the performance by
@@ -1226,7 +1226,7 @@
  * style->backgroundColor may simply used. However, when drawing is
  * inversed, and style->backgroundColor is undefined (NULL), a
  * background color defined higher in the hierarchy (which is not
- * accessable here) must be used.
+ * accessible here) must be used.
  *
  * (Background *images* are never drawn inverse.)
  */
diff -ruN a/dw/style.hh b/dw/style.hh
--- a/dw/style.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/style.hh	2025-01-18 18:46:05.429088790 +0100
@@ -190,7 +190,7 @@
  *
  *      <ul>
  *      <li> dw::core::Widget::~Widget, dw::Textblock::~Textblock, by the
- *           HTML parser, when popping an element fom the stack, and
+ *           HTML parser, when popping an element from the stack, and
  *      <li> dw::core::Widget::setStyle, dw::Textblock::addText etc.,
  *           these methods overwrite an existing style.
  *      </ul>
diff -ruN a/dw/table.cc b/dw/table.cc
--- a/dw/table.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/table.cc	2025-01-18 18:46:05.481088753 +0100
@@ -255,7 +255,7 @@
       // An alternative would be incremental resizing for tables; this
       // approach resembles the behaviour before GROWS.
 
-      // TODO Does it still make sence to return -1 when forceValue is
+      // TODO Does it still make sense, since to return -1 when forceValue is
       // set?
       if (forceValue)
          width = calcAvailWidthForDescendant (child);
@@ -273,7 +273,7 @@
    DBG_OBJ_ENTER ("resize", 0, "calcAvailWidthForDescendant", "%p", child);
 
    // "child" is not a direct child, but a direct descendant. Search
-   // for the actual childs.
+   // for the actual children.
    Widget *actualChild = child;
    while (actualChild != NULL && actualChild->getParent () != this)
       actualChild = actualChild->getParent ();
@@ -1015,7 +1015,7 @@
                   colExtremes->getRef(col)->minWidthIntrinsic;
             else
                // Columns without percentage width get only the
-               // intrinsic mininal, so subtract this from the width for the
+               // intrinsic minimal, so subtract this from the width for the
                // columns *with* percentage
                widthPartPer -=
                   colExtremes->getRef(col)->minWidthIntrinsic;
@@ -1076,7 +1076,7 @@
                        "subcase 2b: %d column(s) with specified width",
                        numColWidthSpecified);
 
-         // Seperate columns with specified and unspecified width, and
+         // Separate columns with specified and unspecified width, and
          // apply apportion2() only to the latter.
 
          int numNotSpecified = colExtremes->size() - numColWidthSpecified;
@@ -1625,7 +1625,7 @@
             dest->set (destOffset - firstCol + col, width);
          }
       } else { // if (totalMin == 0)
-         // Last special case. Ssame algorithm, with
+         // Last special case. Same algorithm, with
          //
          //    x[i] = 1 (so cumX = i = col - firstCol + 1)
          //    y[i] = width[i]
diff -ruN a/dw/tablecell.cc b/dw/tablecell.cc
--- a/dw/tablecell.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/tablecell.cc	2025-01-18 18:46:05.529088718 +0100
@@ -30,7 +30,7 @@
  *
  * Once I understand how diamond inheritance works, a class TableCell
  * will be provided, from which SimpleTableCell and AlignedTableCell
- * will inherit, additionaly (in a multiple way).
+ * will inherit, additionally (in a multiple way).
  */
 namespace tablecell {
 
diff -ruN a/dw/table.hh b/dw/table.hh
--- a/dw/table.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/table.hh	2025-01-18 18:46:05.566088691 +0100
@@ -69,7 +69,7 @@
  * [A] In this case, the new calculation is \em not forced, but only
  * done, when necessary.
  *
- * [B] In this case, the new calculation is allways necessary, since [C]
+ * [B] In this case, the new calculation is always necessary, since [C]
  * is the case.
  *
  * [C] Whether this function is called, depends on NEEDS_RESIZE /
@@ -378,7 +378,7 @@
    lout::misc::SimpleVector<core::Extremes> *colExtremes;
 
    /**
-    * \brief Wether the column itself (in the future?) or at least one
+    * \brief Whether the column itself (in the future?) or at least one
     *    cell in this column or spanning over this column has CSS
     *    'width' specified.
     *
@@ -389,7 +389,7 @@
    int numColWidthSpecified;
 
    /**
-    * \brief Wether the column itself (in the future?) or at least one
+    * \brief Whether the column itself (in the future?) or at least one
     *    cell in this column or spanning over this column has CSS
     *    'width' specified *as percentage value*.
     *
diff -ruN a/dw/textblock.cc b/dw/textblock.cc
--- a/dw/textblock.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/textblock.cc	2025-01-18 18:46:05.503088737 +0100
@@ -550,7 +550,7 @@
    numSizeReferences = 0;
    for (int i = 0; i < NUM_OOFM; i++) {
       if (oofContainer[i] != this) {
-         // avoid dublicates
+         // avoid duplicates
          bool found = false;
          for (int j = 0; !found && j < numSizeReferences; j++)
             if (oofContainer[i] == oofContainer[j])
@@ -1748,7 +1748,7 @@
       break;
 
    case SL_OOF_REF:
-      // TODO Inefficient. Perhaps store OOF references in seperate
+      // TODO Inefficient. Perhaps store OOF references in separate
       // (much smaller!) list.
       for (int oofmIndex = 0; oofmIndex < NUM_OOFM; oofmIndex++) {
          for (int wordIndex = 0; wordIndex < words->size (); wordIndex++) {
@@ -1795,7 +1795,7 @@
 }
 
 /**
- * Basic initialization, which is neccessary before fillWord.
+ * Basic initialization, which is necessary before fillWord.
  */
 void Textblock::initWord (int wordNo)
 {
@@ -2745,7 +2745,7 @@
    DBG_OBJ_ENTER ("construct.word", 0, "addParbreak", "%d, %p",
                   space, style);
    DBG_OBJ_MSG ("construct.word", 0,
-                "<i>No nesting! Strack trace may be incomplete.</i>");
+                "<i>No nesting! Stack trace may be incomplete.</i>");
    DBG_OBJ_LEAVE ();
 
    Word *word;
@@ -2919,7 +2919,7 @@
       break;
 
    case SL_OOF_REF:
-      // TODO Inefficient. Perhaps store OOF references in seperate
+      // TODO Inefficient. Perhaps store OOF references in separate
       // (much smaller!) list.
       for (int oofmIndex = NUM_OOFM; widgetAtPoint == NULL && oofmIndex >= 0;
            oofmIndex--) {
diff -ruN a/dw/textblock.hh b/dw/textblock.hh
--- a/dw/textblock.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/textblock.hh	2025-01-18 18:46:05.458088769 +0100
@@ -227,7 +227,7 @@
       int ratio; // ratio is only defined when badness is defined
       int badness, penalty[2];
 
-      // For debugging: define DEBUG for more informations in print().
+      // For debugging: define DEBUG for more information in print().
 #ifdef DEBUG
       int totalWidth, idealWidth, totalStretchability, totalShrinkability;
 #endif
@@ -386,8 +386,8 @@
       int borderDescent;        /* Maximum of all descents minus margin (but
                                    including padding and border: hence the name)
                                    of the words in this line. */
-      int contentAscent;        /* ??? (depricated?) */
-      int contentDescent;       /* ??? (depricated?) */
+      int contentAscent;        /* ??? (deprecated?) */
+      int contentDescent;       /* ??? (deprecated?) */
       int breakSpace;           /* Space between this line and the next one. */
       int textOffset;           /* Horizontal position of the first word of the
                                    line, in widget coordinates. */
@@ -396,7 +396,7 @@
        * \brief Returns the difference between two vertical lines
        *    positions: height of this line plus space below this
        *    line. The margin of the next line (marginAscent -
-       *    borderAscent) must be passed seperately.
+       *    borderAscent) must be passed separately.
        */
       inline int totalHeight (int marginNextLine)
       { return borderAscent + borderDescent
@@ -547,7 +547,7 @@
     *      (which is used by DwTable!), and
     * (ii) line1_offset is ignored (line1_offset_eff is set to 0),
     *      when line1_offset plus the width of the first word is
-    *      greater than the the line break witdh.
+    *      greater than the the line break width.
     *
     * \todo Eliminate all these ad-hoc features by a new, simpler and
     *       more elegant design. ;-)
@@ -589,7 +589,7 @@
    // These four values are calculated by containingBlock->outOfFlowMgr
    // (when defined; otherwise, they are  false, or 0, respectively), for
    // the newly constructed line, only when needed: when a new line is
-   // added, or if something in the line currently constucted has
+   // added, or if something in the line currently constructed has
    // changed, e. g. a float has been added.
 
    bool newLineHasFloatLeft, newLineHasFloatRight;
@@ -601,7 +601,7 @@
 
    // Ascent and descent of the newly constructed line, i. e. maximum
    // of all words ascent/descent since the end of the last line. Not
-   // neccessary the ascent and descent of the newly added line, since
+   // necessary the ascent and descent of the newly added line, since
    // not all words are added to it.
    int newLineAscent, newLineDescent;
 
@@ -706,7 +706,7 @@
    // The following methods return the y offset of a line,
    // - given as pointer or by index;
    // - either within the canvas, or within this widget;
-   // - with allocation passed explicitely, or using the widget allocation
+   // - with allocation passed explicitly, or using the widget allocation
    //   (important: this is set *after* sizeRequestImpl is returning.
 
    inline int lineYOffsetWidget (Line *line, core::Allocation *allocation)
diff -ruN a/dw/textblock_linebreaking.cc b/dw/textblock_linebreaking.cc
--- a/dw/textblock_linebreaking.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/textblock_linebreaking.cc	2025-01-18 18:46:05.515088728 +0100
@@ -513,7 +513,7 @@
       //
       // (Note: the hyphenated word is often *before* wordIndex, and
       // it may be even more than one word, which makes it nearly
-      // impossible to reconstruct what has happend. Therefore, there
+      // impossible to reconstruct what has happened. Therefore, there
       // is no simpler approach to handle this.)
 
       DBG_OBJ_MSGF ("construct.paragraph", 1,
@@ -1492,7 +1492,7 @@
 
       // AccumulateWordData() will calculate the width, which depends
       // on the borders (possibly limited by floats), which depends on
-      // the widgeds so far. For this reason, it is important to first
+      // the widgets so far. For this reason, it is important to first
       // make all words consistent before calling
       // accumulateWordData(); therefore the second loop.
 
@@ -1553,7 +1553,7 @@
          par->firstWord += num;
    }
 
-   // Addiditional indices. When needed, the number can be extended.
+   // Additional indices. When needed, the number can be extended.
    if (addIndex1 && *addIndex1 >= wordIndex)
       *addIndex1 += num;
 
@@ -1653,7 +1653,7 @@
                  lineIndex, firstWordOfLine, lineBreakWidth);
 
    if (wordIndex == firstWordOfLine) {
-      // first word of the (not neccessarily yet existing) line
+      // first word of the (not necessarily yet existing) line
       word->totalWidth = word->size.width + word->hyphenWidth;
       word->maxAscent = word->size.ascent;
       word->maxDescent = word->size.descent;
diff -ruN a/dw/types.hh b/dw/types.hh
--- a/dw/types.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/types.hh	2025-01-18 18:46:05.581088680 +0100
@@ -64,7 +64,7 @@
 };
 
 /**
- * \brief dw::core::Shape implemtation for simple rectangles.
+ * \brief dw::core::Shape implementation for simple rectangles.
  */
 class Rectangle: public Shape
 {
@@ -85,7 +85,7 @@
 };
 
 /**
- * \brief dw::core::Shape implemtation for simple circles.
+ * \brief dw::core::Shape implementation for simple circles.
  */
 class Circle: public Shape
 {
@@ -99,7 +99,7 @@
 };
 
 /**
- * \brief dw::core::Shape implemtation for polygons.
+ * \brief dw::core::Shape implementation for polygons.
  */
 class Polygon: public Shape
 {
diff -ruN a/dw/ui.cc b/dw/ui.cc
--- a/dw/ui.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/ui.cc	2025-01-18 18:46:05.428088791 +0100
@@ -52,7 +52,7 @@
 void Embed::sizeRequestSimpl (Requisition *requisition)
 {
    resource->sizeRequest (requisition);
-   // TODO Correction should perhaps be left to the resouces.
+   // TODO Correction should perhaps be left to the resources.
    correctRequisition(requisition, core::splitHeightPreserveAscent, true, true);
 }
 
diff -ruN a/dw/ui.hh b/dw/ui.hh
--- a/dw/ui.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/ui.hh	2025-01-18 18:46:05.464088765 +0100
@@ -107,14 +107,14 @@
  * <h3>...</h3>
  *
  *
- * <h3>Resouces needed for HTML</h3>
+ * <h3>Resources needed for HTML</h3>
  *
  * This chapter describes, how the form controls defined by HTML are
  * implemented in Dw. Some of them do not refer to UI resources, but to
  * other widgets, links to the respective documentations are provided
  * here.
  *
- * <h4>Resouces created with \<INPUT\></h4>
+ * <h4>Resources created with \<INPUT\></h4>
  *
  * The HTML \<INPUT\> is always implemented by using UI
  * resources. \<INPUT\> element has the following attributes:
diff -ruN a/dw/view.hh b/dw/view.hh
--- a/dw/view.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/view.hh	2025-01-18 18:46:05.520088724 +0100
@@ -75,7 +75,7 @@
    virtual int getScrollbarOnLeft () = 0;
 
    /**
-    * \brief Scroll the vieport to the given position.
+    * \brief Scroll the viewport to the given position.
     *
     * Does not have to be implemented, when usesViewport returns false.
     */
diff -ruN a/dw/widget.cc b/dw/widget.cc
--- a/dw/widget.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/dw/widget.cc	2025-01-18 18:46:05.545088706 +0100
@@ -641,7 +641,7 @@
          }
       }
 
-      // TODO Not completely clear whether this is feasable: Within
+      // TODO Not completely clear whether this is feasible: Within
       // the context of getAvailWidth(false) etc., getExtremes may not
       // be called. We ignore the minimal width then.
       if (extremes)
@@ -969,7 +969,7 @@
 }
 
 /**
- * Computes the final width if posible and constraints it by min-width and
+ * Computes the final width if possible and constraints it by min-width and
  * max-width.
  *
  * This function performs a very particular computation. It will try to find the
@@ -981,7 +981,7 @@
  * to auto.
  *
  * If both the initial *finalWidth and the style with are -1, the value will be
- * left as is, even if min-width and max-width could contraint the size. For the
+ * left as is, even if min-width and max-width could constraint the size. For the
  * width to be constrained, either the initial *finalWidth or the computed width
  * should return an absolute value.
  *
@@ -1604,7 +1604,7 @@
 }
 
 /**
- * \brief Get the level of the widget within the tree, regarting the
+ * \brief Get the level of the widget within the tree, regarding the
  * generators, not the parents.
  *
  * The root widget has the level 0.
@@ -1772,7 +1772,7 @@
  * @param child      The child widget of which the available width will be
  *                   computed.
  * @param forceValue If true, computes the width of the child with value
- *                   "auto". Otherwise, it wont.
+ *                   "auto". Otherwise, it won't.
  *
  * @return The available width in pixels or -1.
  */
@@ -2002,7 +2002,7 @@
             if (allowDecreaseHeight) {
                /* FIXME: This may lose cases where allowDecreaseHeight is false, and
                 * the requisition has increased the height first, but we could still
-                * reduce the corrected hight above the original height, without
+                * reduce the corrected height above the original height, without
                 * making the requisition height smaller. */
                int h = (float) wReq / ratio;
                DEBUG_MSG(1, "decrease h: %d -> %d\n", hReq, h);
@@ -2078,7 +2078,7 @@
                                       void (*splitHeightFun) (int, int*, int*),
                                       bool allowDecreaseHeight)
 {
-   // TODO Correct height by extremes? (Height extemes?)
+   // TODO Correct height by extremes? (Height extremes?)
 
    assert (this == child->quasiParent || this == child->container);
 
diff -ruN a/lout/debug_rtfl.hh b/lout/debug_rtfl.hh
--- a/lout/debug_rtfl.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/lout/debug_rtfl.hh	2025-01-18 18:46:05.725088575 +0100
@@ -42,7 +42,7 @@
 
 // Prints an RTFL message to stdout. "fmt" contains simple format
 // characters how to deal with the additional arguments (no "%"
-// preceeding, as in printf) or "q" (which additionally
+// preceding, proceeding, as in printf) or "q" (which additionally
 // (double-)quotes quotation marks) or "c" (short for "#%06x" and used
 // for colors), or other characters, which are simply printed. No
 // quoting: this function cannot be used to print the characters "d",
diff -ruN a/lout/misc.hh b/lout/misc.hh
--- a/lout/misc.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/lout/misc.hh	2025-01-18 18:46:05.723088577 +0100
@@ -450,7 +450,7 @@
             numExtra += numInsert;
             resizeExtra ();
 
-            // Note: index refers to the *logical* adress, not to the
+            // Note: index refers to the *logical* address, not to the
             // *physical* one.
             int diff = index - this->startExtra - oldNumExtra;
             T *arrayMainI = arrayMain + this->startExtra;
diff -ruN a/lout/object.hh b/lout/object.hh
--- a/lout/object.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/lout/object.hh	2025-01-18 18:46:05.726088575 +0100
@@ -61,7 +61,7 @@
 /**
  * \brief Used for other orders as the one defined by Comparable.
  *
- * Compared objects must not neccessary be instances of Comparable.
+ * Compared objects must not necessarily be instances of Comparable.
  */
 class Comparator: public Object
 {
diff -ruN a/src/cssparser.cc b/src/cssparser.cc
--- a/src/cssparser.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/src/cssparser.cc	2025-01-18 18:46:05.614088656 +0100
@@ -1105,7 +1105,7 @@
    case CSS_TYPE_BACKGROUND_POSITION:
       // 'background-position' consists of one or two values: vertical and
       // horizontal position; in most cases in this order. However, as long it
-      // is unambigous, the order can be switched: "10px left" and "left 10px"
+      // is unambiguous, the order can be switched: "10px left" and "left 10px"
       // are both possible and have the same effect. For this reason, all
       // possibilities are tested in parallel.
 
@@ -1119,7 +1119,7 @@
       for (i = 0; i < 2; i++) {
          CssValueType typeTmp;
          // tokenMatchesProperty will, for CSS_PROPERTY_BACKGROUND_POSITION,
-         // work on both parts, since they are exchangable.
+         // work on both parts, since they are exchangeable.
          if (tokenMatchesProperty (CSS_PROPERTY_BACKGROUND_POSITION,
                                    &typeTmp)) {
             h[i] = ttype != CSS_TK_SYMBOL ||
diff -ruN a/src/digest.c b/src/digest.c
--- a/src/digest.c	2025-01-12 17:14:01.000000000 +0100
+++ b/src/digest.c	2025-01-18 18:46:05.586088676 +0100
@@ -87,7 +87,7 @@
 }
 
 /**
- * This portion is calculatd for each request.
+ * This portion is calculated for each request.
  */
 static Dstr *Digest_create_response(AuthRealm_t *realm, const char *method,
                                     const char *digest_uri,
diff -ruN a/src/dillo.cc b/src/dillo.cc
--- a/src/dillo.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/src/dillo.cc	2025-01-18 18:46:05.597088668 +0100
@@ -165,7 +165,7 @@
 
    (void) sigemptyset(&set);
    sigact.sa_handler = raw_sigchld2; /* our custom handler */
-   sigact.sa_mask = set;             /* no aditional signal blocks */
+   sigact.sa_mask = set;             /* no additional signal blocks */
    sigact.sa_flags = SA_NOCLDSTOP;   /* ignore stop/resume states */
    if (sigaction(SIGCHLD, &sigact, NULL) == -1) {
       perror("sigaction");
diff -ruN a/src/gif.c b/src/gif.c
--- a/src/gif.c	2025-01-12 17:14:01.000000000 +0100
+++ b/src/gif.c	2025-01-18 18:46:05.626088647 +0100
@@ -900,7 +900,7 @@
          if (bsize < 2)
             return Size;
 
-         /* Have the extension block intepreted. */
+         /* Have the extension block interpreted. */
          C = *buf++;
          bsize--;
          mysize = Gif_do_extension(gif, C, buf, bsize);
diff -ruN a/src/hsts.c b/src/hsts.c
--- a/src/hsts.c	2025-01-12 17:14:01.000000000 +0100
+++ b/src/hsts.c	2025-01-18 18:46:05.582088679 +0100
@@ -196,7 +196,7 @@
 }
 
 /**
- * The reponse for this url had an HSTS header, so let's take action.
+ * The response for this url had an HSTS header, so let's take action.
  */
 void a_Hsts_set(const char *header, const DilloUrl *url)
 {
diff -ruN a/src/html.cc b/src/html.cc
--- a/src/html.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/src/html.cc	2025-01-18 18:46:05.624088649 +0100
@@ -339,7 +339,7 @@
          v.textAlign = TEXT_ALIGN_STRING;
          if ((charattr = a_Html_get_attr(html, tag, tagsize, "char"))) {
             if (charattr[0] == 0)
-               /* TODO: ALIGN=" ", and even ALIGN="&32;" will reult in
+               /* TODO: ALIGN=" ", and even ALIGN="&32;" will result in
                 * an empty string (don't know whether the latter is
                 * correct, has to be clarified with the specs), so
                 * that for empty strings, " " is assumed. */
@@ -2349,7 +2349,7 @@
 
       if (img) {
          // At this point, we know that img->ir represents an image
-         // widget. (Really? Is this assumtion safe?) Notice that the
+         // widget. (Really? Is this assumption safe?) Notice that the
          // order of the casts matters, because of multiple
          // inheritance.
          dw::Image *dwi = (dw::Image*)(dw::core::ImgRenderer*)img->img_rndr;
@@ -3903,7 +3903,7 @@
    if (tagsize >= 8 &&        /* length of "<t id=i>" */
        (attrbuf = a_Html_get_attr(html, tag, tagsize, "id"))) {
       /* According to the SGML declaration of HTML 4, all NAME values
-       * occuring outside entities must be converted to uppercase
+       * occurring outside entities must be converted to uppercase
        * (this is what "NAMECASE GENERAL YES" says). But the HTML 4
        * spec states in Sec. 7.5.2 that anchor ids are case-sensitive.
        * So we don't do it and hope for better specs in the future ...
@@ -4290,7 +4290,7 @@
 }
 
 /**
- * Dispatch the apropriate function for 'Op'.
+ * Dispatch the appropriate function for 'Op'.
  * This function is a Cache client and gets called whenever new data arrives
  * @param Op      operation to perform.
  * @param CbData  a pointer to a DilloHtml structure
diff -ruN a/src/nanosvg.h b/src/nanosvg.h
--- a/src/nanosvg.h	2025-01-12 17:14:01.000000000 +0100
+++ b/src/nanosvg.h	2025-01-18 18:46:05.584088678 +0100
@@ -849,10 +849,10 @@
 			break;
 		}
 		nextRef = nsvg__findGradientData(p, ref->ref);
-		if (nextRef == ref) break; // prevent infite loops on malformed data
+		if (nextRef == ref) break; // prevent infinite loops on malformed data
 		ref = nextRef;
 		refIter++;
-		if (refIter > 32) break; // prevent infite loops on malformed data
+		if (refIter > 32) break; // prevent infinite loops on malformed data
 	}
 	if (stops == NULL) return NULL;
 
diff -ruN a/src/png.c b/src/png.c
--- a/src/png.c	2025-01-12 17:14:01.000000000 +0100
+++ b/src/png.c	2025-01-18 18:46:05.602088665 +0100
@@ -250,14 +250,14 @@
       break;
    case 4:
      {
-        /* TODO: get the backgound color from the parent
+        /* TODO: get the background color from the parent
          * of the image widget -- Livio.                 */
         int a, bg_red, bg_green, bg_blue;
         uchar_t *pl = png->linebuf;
         uchar_t *data = png->image_data + (row_num * png->rowbytes);
 
         /* TODO: maybe change prefs.bg_color to `a_Dw_widget_get_bg_color`,
-         * when background colors are correctly implementated */
+         * when background colors are correctly implemented */
         bg_blue  = (png->bgcolor) & 0xFF;
         bg_green = (png->bgcolor>>8) & 0xFF;
         bg_red   = (png->bgcolor>>16) & 0xFF;
diff -ruN a/src/styleengine.cc b/src/styleengine.cc
--- a/src/styleengine.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/src/styleengine.cc	2025-01-18 18:46:05.593088671 +0100
@@ -27,7 +27,7 @@
  * of StyleImage is deleted, possibly when the cache client is still
  * active.
  *
- * \todo Not neccessary for dw::Image? (dw::Image also implements
+ * \todo Not necessary for dw::Image? (dw::Image also implements
  * lout::signal::ObservedObject.)
  */
 class StyleImageDeletionReceiver:
diff -ruN a/src/uicmd.cc b/src/uicmd.cc
--- a/src/uicmd.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/src/uicmd.cc	2025-01-18 18:46:05.611088658 +0100
@@ -58,7 +58,7 @@
 // Handy macro
 #define BW2UI(bw) ((UI*)((bw)->ui))
 
-// Platform idependent part
+// Platform independent part
 using namespace dw::core;
 // FLTK related
 using namespace dw::fltk;
diff -ruN a/src/ui.hh b/src/ui.hh
--- a/src/ui.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/src/ui.hh	2025-01-18 18:46:05.585088677 +0100
@@ -46,7 +46,7 @@
 /**
  * Used to reposition group's widgets when some of them are hidden.
  * All children get the height of the group but retain their original width.
- * The resizable child get's the remaining space.
+ * The resizable child gets the remaining space.
  */
 class CustGroupHorizontal : public Fl_Group {
    Fl_Widget *rsz;
diff -ruN a/src/url.c b/src/url.c
--- a/src/url.c	2025-01-12 17:14:01.000000000 +0100
+++ b/src/url.c	2025-01-18 18:46:05.607088661 +0100
@@ -38,7 +38,7 @@
  *  abs_path    = "/" path_segments
  *
  *  Notes:
- *    - "undefined" means "preceeding separator does not appear".
+ *    - "undefined" means "preceding separator does not appear".
  *    - path is never "undefined" though it may be "empty".
  */
 
@@ -371,7 +371,7 @@
 DilloUrl* a_Url_new(const char *url_str, const char *base_url)
 {
    DilloUrl *url;
-   char *urlstr = (char *)url_str;  /* auxiliar variable, don't free */
+   char *urlstr = (char *)url_str;  /* auxiliary variable, don't free */
    char *p, *str1 = NULL, *str2 = NULL;
    Dstr *SolvedUrl;
    int i, n_ic, n_ic_spc;
diff -ruN a/test/dw/form.hh b/test/dw/form.hh
--- a/test/dw/form.hh	2025-01-12 17:14:01.000000000 +0100
+++ b/test/dw/form.hh	2025-01-18 18:46:05.628088646 +0100
@@ -9,8 +9,8 @@
 /**
  * \brief Handles HTML form data.
  *
- * Add resources by calling the respective add...Resource method. Furtermore,
- * this class impelements dw::core::ui::ButtonResource::ClickedReceiver, the
+ * Add resources by calling the respective add...Resource method. Furthermore,
+ * this class implements dw::core::ui::ButtonResource::ClickedReceiver, the
  * form data is printed to stdout, when the "clicked" signal is received.
  *
  * \todo wrong comment
diff -ruN a/test/html/manual/doxygen.html b/test/html/manual/doxygen.html
--- a/test/html/manual/doxygen.html	2025-01-12 17:14:01.000000000 +0100
+++ b/test/html/manual/doxygen.html	2025-01-18 18:46:05.652088629 +0100
@@ -93,7 +93,7 @@
 <p>The latest version of this document is always available from <a href="http://savannah.nongnu.org/projects/avr-libc/">http://savannah.nongnu.org/projects/avr-libc/</a></p>
 <p>The AVR Libc package provides a subset of the standard C library for <a href="http://www.atmel.com/products/AVR/">Atmel AVR 8-bit RISC microcontrollers</a>. In addition, the library provides the basic startup code needed by most applications.</p>
 <p>There is a wealth of information in this document which goes beyond simply describing the interfaces and routines provided by the library. We hope that this document provides enough information to get a new AVR developer up to speed quickly using the freely available development tools: binutils, gcc avr-libc and many others.</p>
-<p>If you find yourself stuck on a problem which this document doesn't quite address, you may wish to post a message to the avr-gcc mailing list. Most of the developers of the AVR binutils and gcc ports in addition to the devleopers of avr-libc subscribe to the list, so you will usually be able to get your problem resolved. You can subscribe to the list at <a href="http://lists.nongnu.org/mailman/listinfo/avr-gcc-list">http://lists.nongnu.org/mailman/listinfo/avr-gcc-list</a> . Before posting to the list, you might want to try reading the <a class="el" href="FAQ.html">Frequently Asked Questions</a> chapter of this document.</p>
+<p>If you find yourself stuck on a problem which this document doesn't quite address, you may wish to post a message to the avr-gcc mailing list. Most of the developers of the AVR binutils and gcc ports in addition to the developers of avr-libc subscribe to the list, so you will usually be able to get your problem resolved. You can subscribe to the list at <a href="http://lists.nongnu.org/mailman/listinfo/avr-gcc-list">http://lists.nongnu.org/mailman/listinfo/avr-gcc-list</a> . Before posting to the list, you might want to try reading the <a class="el" href="FAQ.html">Frequently Asked Questions</a> chapter of this document.</p>
 <dl class="section note"><dt>Note</dt><dd>If you think you've found a bug, or have a suggestion for an improvement, either in this documentation or in the library itself, please use the bug tracker at <a href="https://savannah.nongnu.org/bugs/?group=avr-libc">https://savannah.nongnu.org/bugs/?group=avr-libc</a> to ensure the issue won't be forgotten.</dd></dl>
 <h1><a class="anchor" id="avr_libc_general"></a>
 General information about this library</h1>
diff -ruN a/test/html/manual/floats-table.html b/test/html/manual/floats-table.html
--- a/test/html/manual/floats-table.html	2025-01-12 17:14:01.000000000 +0100
+++ b/test/html/manual/floats-table.html	2025-01-18 18:46:05.653088628 +0100
@@ -1,4 +1,4 @@
-<p>Demonstrating how to include floats into witdth extremes.
+<p>Demonstrating how to include floats into width extremes.
 
 <table>
   <tr>
diff -ruN a/test/html/render/img-aspect-ratio-div.html b/test/html/render/img-aspect-ratio-div.html
--- a/test/html/render/img-aspect-ratio-div.html	2025-01-12 17:14:01.000000000 +0100
+++ b/test/html/render/img-aspect-ratio-div.html	2025-01-18 18:46:05.644088634 +0100
@@ -17,7 +17,7 @@
       div.small {
         max-width: 64px;
       }
-      /* Even if we are specifiying the image to have 100% height, the image
+      /* Even if we are specifying the image to have 100% height, the image
        * must not extend to all the available height of the div.out container.
        * It should continue to keep the aspect ratio as the width is constrained
        * to 64 px, so it should be 64 px tall. */
diff -ruN a/test/html/render/img-aspect-ratio-div.ref.html b/test/html/render/img-aspect-ratio-div.ref.html
--- a/test/html/render/img-aspect-ratio-div.ref.html	2025-01-12 17:14:01.000000000 +0100
+++ b/test/html/render/img-aspect-ratio-div.ref.html	2025-01-18 18:46:05.629088645 +0100
@@ -17,7 +17,7 @@
       div.small {
         max-width: 64px;
       }
-      /* Even if we are specifiying the image to have 100% height, the image
+      /* Even if we are specifying the image to have 100% height, the image
        * must not extend to all the available height of the div.out container.
        * It should continue to keep the aspect ratio as the width is constrained
        * to 64 px, so it should be 64 px tall. */
diff -ruN a/test/html/render/img-aspect-ratio-mix-border.html b/test/html/render/img-aspect-ratio-mix-border.html
--- a/test/html/render/img-aspect-ratio-mix-border.html	2025-01-12 17:14:01.000000000 +0100
+++ b/test/html/render/img-aspect-ratio-mix-border.html	2025-01-18 18:46:05.649088631 +0100
@@ -12,17 +12,17 @@
     <div>
       <p>All images should be 32px by 32px like this one:</p>
       <img src="pic.png" style="width:32px;height:32px;">
-      <p>Only one max-* contraint</p>
+      <p>Only one max-* constraint</p>
       <img src="pic.png" style="max-width :32px;">
       <img src="pic.png" style="max-height:32px;">
       <img src="pic.png" style="max-width :5%;">
       <img src="pic.png" style="max-height:5%;">
-      <p>One max-* and fixed size contraint</p>
+      <p>One max-* and fixed size constraint</p>
       <img src="pic.png" style="height:32px;  max-width:256px">
       <img src="pic.png" style="height:5%;    max-width:256px">
       <img src="pic.png" style="max-height:256px; width:32px">
       <img src="pic.png" style="max-height:256px; width:5%">
-      <p>Two max-* contraints</p>
+      <p>Two max-* constraints</p>
       <img src="pic.png" style="max-height:32px;  max-width:256px">
       <img src="pic.png" style="max-height:5%;    max-width:256px">
       <img src="pic.png" style="max-height:256px; max-width:32px">
diff -ruN a/test/html/render/img-aspect-ratio-mix-border.ref.html b/test/html/render/img-aspect-ratio-mix-border.ref.html
--- a/test/html/render/img-aspect-ratio-mix-border.ref.html	2025-01-12 17:14:01.000000000 +0100
+++ b/test/html/render/img-aspect-ratio-mix-border.ref.html	2025-01-18 18:46:05.646088633 +0100
@@ -12,17 +12,17 @@
     <div>
       <p>All images should be 32px by 32px like this one:</p>
       <img src="pic.png" style="width:32px;height:32px;">
-      <p>Only one max-* contraint</p>
+      <p>Only one max-* constraint</p>
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
-      <p>One max-* and fixed size contraint</p>
+      <p>One max-* and fixed size constraint</p>
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
-      <p>Two max-* contraints</p>
+      <p>Two max-* constraints</p>
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
diff -ruN a/test/html/render/img-aspect-ratio-mix.html b/test/html/render/img-aspect-ratio-mix.html
--- a/test/html/render/img-aspect-ratio-mix.html	2025-01-12 17:14:01.000000000 +0100
+++ b/test/html/render/img-aspect-ratio-mix.html	2025-01-18 18:46:05.637088639 +0100
@@ -11,17 +11,17 @@
     <div>
       <p>All images should be 32px by 32px like this one:</p>
       <img src="pic.png" style="width:32px;height:32px;">
-      <p>Only one max-* contraint</p>
+      <p>Only one max-* constraint</p>
       <img src="pic.png" style="max-width :32px;">
       <img src="pic.png" style="max-height:32px;">
       <img src="pic.png" style="max-width :5%;">
       <img src="pic.png" style="max-height:5%;">
-      <p>One max-* and fixed size contraint</p>
+      <p>One max-* and fixed size constraint</p>
       <img src="pic.png" style="height:32px;  max-width:256px">
       <img src="pic.png" style="height:5%;    max-width:256px">
       <img src="pic.png" style="max-height:256px; width:32px">
       <img src="pic.png" style="max-height:256px; width:5%">
-      <p>Two max-* contraints</p>
+      <p>Two max-* constraints</p>
       <img src="pic.png" style="max-height:32px;  max-width:256px">
       <img src="pic.png" style="max-height:5%;    max-width:256px">
       <img src="pic.png" style="max-height:256px; max-width:32px">
diff -ruN a/test/html/render/img-aspect-ratio-mix-margin.html b/test/html/render/img-aspect-ratio-mix-margin.html
--- a/test/html/render/img-aspect-ratio-mix-margin.html	2025-01-12 17:14:01.000000000 +0100
+++ b/test/html/render/img-aspect-ratio-mix-margin.html	2025-01-18 18:46:05.639088638 +0100
@@ -12,17 +12,17 @@
     <div>
       <p>All images should be 32px by 32px like this one:</p>
       <img src="pic.png" style="width:32px;height:32px;">
-      <p>Only one max-* contraint</p>
+      <p>Only one max-* constraint</p>
       <img src="pic.png" style="max-width :32px;">
       <img src="pic.png" style="max-height:32px;">
       <img src="pic.png" style="max-width :5%;">
       <img src="pic.png" style="max-height:5%;">
-      <p>One max-* and fixed size contraint</p>
+      <p>One max-* and fixed size constraint</p>
       <img src="pic.png" style="height:32px;  max-width:256px">
       <img src="pic.png" style="height:5%;    max-width:256px">
       <img src="pic.png" style="max-height:256px; width:32px">
       <img src="pic.png" style="max-height:256px; width:5%">
-      <p>Two max-* contraints</p>
+      <p>Two max-* constraints</p>
       <img src="pic.png" style="max-height:32px;  max-width:256px">
       <img src="pic.png" style="max-height:5%;    max-width:256px">
       <img src="pic.png" style="max-height:256px; max-width:32px">
diff -ruN a/test/html/render/img-aspect-ratio-mix-margin.ref.html b/test/html/render/img-aspect-ratio-mix-margin.ref.html
--- a/test/html/render/img-aspect-ratio-mix-margin.ref.html	2025-01-12 17:14:01.000000000 +0100
+++ b/test/html/render/img-aspect-ratio-mix-margin.ref.html	2025-01-18 18:46:05.634088641 +0100
@@ -12,17 +12,17 @@
     <div>
       <p>All images should be 32px by 32px like this one:</p>
       <img src="pic.png" style="width:32px;height:32px;">
-      <p>Only one max-* contraint</p>
+      <p>Only one max-* constraint</p>
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
-      <p>One max-* and fixed size contraint</p>
+      <p>One max-* and fixed size constraint</p>
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
-      <p>Two max-* contraints</p>
+      <p>Two max-* constraints</p>
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
diff -ruN a/test/html/render/img-aspect-ratio-mix.ref.html b/test/html/render/img-aspect-ratio-mix.ref.html
--- a/test/html/render/img-aspect-ratio-mix.ref.html	2025-01-12 17:14:01.000000000 +0100
+++ b/test/html/render/img-aspect-ratio-mix.ref.html	2025-01-18 18:46:05.643088635 +0100
@@ -11,17 +11,17 @@
     <div>
       <p>All images should be 32px by 32px like this one:</p>
       <img src="pic.png" style="width:32px;height:32px;">
-      <p>Only one max-* contraint</p>
+      <p>Only one max-* constraint</p>
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
-      <p>One max-* and fixed size contraint</p>
+      <p>One max-* and fixed size constraint</p>
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
-      <p>Two max-* contraints</p>
+      <p>Two max-* constraints</p>
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
       <img src="pic.png" style="width:32px;height:32px;">
diff -ruN a/test/unit/containers.cc b/test/unit/containers.cc
--- a/test/unit/containers.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/test/unit/containers.cc	2025-01-18 18:46:05.656088626 +0100
@@ -112,7 +112,7 @@
 
 void testVector3 ()
 {
-   // Regression test: resulted once incorrently (0, 2, 3), should
+   // Regression test: resulted once incorrectly (0, 2, 3), should
    // result in (1, 2, 3).
 
    puts ("--- testVector (3) ---");
diff -ruN a/test/unit/identity.cc b/test/unit/identity.cc
--- a/test/unit/identity.cc	2025-01-12 17:14:01.000000000 +0100
+++ b/test/unit/identity.cc	2025-01-18 18:46:05.654088627 +0100
@@ -4,7 +4,7 @@
  * classes have there root in IdentifiableObject.)
  *
  * Current status: With virtual superclasses, you get a class
- * hierarchie "root -> A -> B -> C", so that the first part of this
+ * hierarchy "root -> A -> B -> C", so that the first part of this
  * example works actually (C is a subclass of A and of B), but the
  * second fails (it should print "false", but it is erroneously
  * assumed that B is a subclass of A.)
