diff --git a/docs/oldlogs/ChangeLog.210 b/docs/oldlogs/ChangeLog.210
index 6139fe8..52a6434 100644
--- a/docs/oldlogs/ChangeLog.210
+++ b/docs/oldlogs/ChangeLog.210
@@ -2411,9 +2411,9 @@
 	units per em (e.g. Inter). This patch fixes it.
 
 	The return value of af_loader_compute_darkening was also changed to
-	use 16.16 fixed point to get rid of a redundant truncation operation.
+	use 16.16 fixed-point to get rid of a redundant truncation operation.
 	This should slightly improve the precision, although it's still
-	bottlenecked by the emboldening function, which uses 26.6 fixed point.
+	bottlenecked by the emboldening function, which uses 26.6 fixed-point.
 
 	* src/autofit/afloader.[ch]
 	(af_loader_compute_darkening): Return FT_Fixed.
diff --git a/docs/oldlogs/ChangeLog.24 b/docs/oldlogs/ChangeLog.24
index aa9ca8c..8976562 100644
--- a/docs/oldlogs/ChangeLog.24
+++ b/docs/oldlogs/ChangeLog.24
@@ -707,7 +707,7 @@
 	[base] Fix integer overflow.
 
 	* src/base/ftoutln.c (FT_Outline_EmboldenXY): Normalize incoming and
-	outgoing vectors and use fixed point arithmetic.
+	outgoing vectors and use fixed-point arithmetic.
 
 2013-01-23  Alexei Podtelezhnikov  <apodtele@gmail.com>
 
diff --git a/include/freetype/ftstroke.h b/include/freetype/ftstroke.h
index 12c006d..9564364 100644
--- a/include/freetype/ftstroke.h
+++ b/include/freetype/ftstroke.h
@@ -293,7 +293,7 @@
    *
    *   miter_limit ::
    *     The maximum reciprocal sine of half-angle at the miter join,
-   *     expressed as 16.16 fixed point value.
+   *     expressed as 16.16 fixed-point value.
    *
    * @note:
    *   The `radius` is expressed in the same units as the outline
diff --git a/include/freetype/internal/cfftypes.h b/include/freetype/internal/cfftypes.h
index 23d26c1..35f531d 100644
--- a/include/freetype/internal/cfftypes.h
+++ b/include/freetype/internal/cfftypes.h
@@ -315,7 +315,7 @@
     /* The normal stack then points to these values instead of the DICT   */
     /* because all other operators in Private DICT clear the stack.       */
     /* `blend_stack' could be cleared at each operator other than blend.  */
-    /* Blended values are stored as 5-byte fixed point values.            */
+    /* Blended values are stored as 5-byte fixed-point values.            */
 
     FT_Byte*  blend_stack;    /* base of stack allocation     */
     FT_Byte*  blend_top;      /* first empty slot             */
diff --git a/src/cff/cffload.c b/src/cff/cffload.c
index d6f8a10..02f0230 100644
--- a/src/cff/cffload.c
+++ b/src/cff/cffload.c
@@ -1288,7 +1288,7 @@
   /* Blended values are written to a different buffer,     */
   /* using reserved operator 255.                          */
   /*                                                       */
-  /* Blend calculation is done in 16.16 fixed point.       */
+  /* Blend calculation is done in 16.16 fixed-point.       */
   FT_LOCAL_DEF( FT_Error )
   cff_blend_doBlend( CFF_SubFont  subFont,
                      CFF_Parser   parser,
@@ -1364,7 +1364,7 @@
       FT_UInt32        sum;
 
 
-      /* convert inputs to 16.16 fixed point */
+      /* convert inputs to 16.16 fixed-point */
       sum = cff_parse_num( parser, &parser->stack[i + base] ) * 0x10000;
 
       for ( j = 1; j < blend->lenBV; j++ )
@@ -1373,7 +1373,7 @@
       /* point parser stack to new value on blend_stack */
       parser->stack[i + base] = subFont->blend_top;
 
-      /* Push blended result as Type 2 5-byte fixed point number.  This */
+      /* Push blended result as Type 2 5-byte fixed-point number.  This */
       /* will not conflict with actual DICTs because 255 is a reserved  */
       /* opcode in both CFF and CFF2 DICTs.  See `cff_parse_num' for    */
       /* decode of this, which rounds to an integer.                    */
diff --git a/src/cff/cffparse.c b/src/cff/cffparse.c
index 2536a21..28be28b 100644
--- a/src/cff/cffparse.c
+++ b/src/cff/cffparse.c
@@ -530,7 +530,7 @@
 
     else if ( **d == 255 )
     {
-      /* 16.16 fixed point is used internally for CFF2 blend results. */
+      /* 16.16 fixed-point is used internally for CFF2 blend results. */
       /* Since these are trusted values, a limit check is not needed. */
 
       /* After the 255, 4 bytes give the number.                 */
diff --git a/src/psaux/psfixed.h b/src/psaux/psfixed.h
index 7dff9ef..299d076 100644
--- a/src/psaux/psfixed.h
+++ b/src/psaux/psfixed.h
@@ -2,7 +2,7 @@
  *
  * psfixed.h
  *
- *   Adobe's code for Fixed Point Mathematics (specification only).
+ *   Adobe's code for Fixed-Point Mathematics (specification only).
  *
  * Copyright 2007-2013 Adobe Systems Incorporated.
  *
@@ -43,10 +43,10 @@
 FT_BEGIN_HEADER
 
 
-  /* rasterizer integer and fixed point arithmetic must be 32-bit */
+  /* rasterizer integer and fixed-point arithmetic must be 32-bit */
 
 #define   CF2_Fixed  CF2_F16Dot16
-  typedef FT_Int32   CF2_Frac;   /* 2.30 fixed point */
+  typedef FT_Int32   CF2_Frac;   /* 2.30 fixed-point */
 
 
 #define CF2_FIXED_MAX      ( (CF2_Fixed)0x7FFFFFFFL )
diff --git a/src/psaux/psglue.h b/src/psaux/psglue.h
index 022aafb..63085d7 100644
--- a/src/psaux/psglue.h
+++ b/src/psaux/psglue.h
@@ -72,7 +72,7 @@
   } CF2_PathOp;
 
 
-  /* a matrix of fixed point values */
+  /* a matrix of fixed-point values */
   typedef struct  CF2_Matrix_
   {
     CF2_F16Dot16  a;
diff --git a/src/psaux/psstack.h b/src/psaux/psstack.h
index b9ef9ed..907b424 100644
--- a/src/psaux/psstack.h
+++ b/src/psaux/psstack.h
@@ -49,8 +49,8 @@
   {
     union
     {
-      CF2_Fixed  r;      /* 16.16 fixed point */
-      CF2_Frac   f;      /* 2.30 fixed point (for font matrix) */
+      CF2_Fixed  r;      /* 16.16 fixed-point */
+      CF2_Frac   f;      /* 2.30 fixed-point (for font matrix) */
       CF2_Int    i;
     } u;
 
diff --git a/src/sdf/ftsdf.c b/src/sdf/ftsdf.c
index ffac8bf..971427a 100644
--- a/src/sdf/ftsdf.c
+++ b/src/sdf/ftsdf.c
@@ -1939,7 +1939,7 @@
     /* now factor is 16.16 */
     factor = FT_DivFix( factor, sq_line_length );
 
-    /* clamp the factor between 0.0 and 1.0 in fixed point */
+    /* clamp the factor between 0.0 and 1.0 in fixed-point */
     if ( factor > FT_INT_16D16( 1 ) )
       factor = FT_INT_16D16( 1 );
     if ( factor < 0 )
@@ -3164,7 +3164,7 @@
         if ( min_dist.distance > sp_sq )
           min_dist.distance = sp_sq;
 
-        /* square_root the values and fit in a 6.10 fixed point */
+        /* square_root the values and fit in a 6.10 fixed-point */
         if ( USE_SQUARED_DISTANCES )
           min_dist.distance = square_root( min_dist.distance );
 
diff --git a/src/sdf/ftsdfcommon.c b/src/sdf/ftsdfcommon.c
index 072a36e..5431295 100644
--- a/src/sdf/ftsdfcommon.c
+++ b/src/sdf/ftsdfcommon.c
@@ -33,7 +33,7 @@
    *
    *   https://github.com/chmike/fpsqrt
    *
-   * Use this to compute the square root of a 16.16 fixed point number.
+   * Use this to compute the square root of a 16.16 fixed-point number.
    */
   FT_LOCAL_DEF( FT_16D16 )
   square_root( FT_16D16  val )
@@ -72,8 +72,8 @@
    */
 
   /*
-   * Convert 16.16 fixed point values to the desired output format.
-   * In this case we reduce 16.16 fixed point values to normalized
+   * Convert 16.16 fixed-point values to the desired output format.
+   * In this case we reduce 16.16 fixed-point values to normalized
    * 8-bit values.
    *
    * The `max_value` in the parameter is the maximum value in the
diff --git a/src/sfnt/sfdriver.c b/src/sfnt/sfdriver.c
index cc121e5..9d805ab 100644
--- a/src/sfnt/sfdriver.c
+++ b/src/sfnt/sfdriver.c
@@ -657,7 +657,7 @@
 
 
   /*
-   * Find the shortest decimal representation of a 16.16 fixed point
+   * Find the shortest decimal representation of a 16.16 fixed-point
    * number.  The function fills `buf' with the result, returning a pointer
    * to the position after the representation's last byte.
    */
@@ -733,7 +733,7 @@
         an equivalent representation of `fixed'.
 
         The above FOR loop always finds the larger of the two values; I
-        verified this by iterating over all possible fixed point numbers.
+        verified this by iterating over all possible fixed-point numbers.
 
         If the remainder is 17232*10, both values are equally good, and we
         take the next even number (following IEEE 754's `round to nearest,
@@ -741,7 +741,7 @@
 
         If the remainder is smaller than 17232*10, the lower of the two
         numbers is nearer to the exact result (values 17232 and 34480 were
-        also found by testing all possible fixed point values).
+        also found by testing all possible fixed-point values).
 
         We use this to find a shorter decimal representation.  If not ending
         with digit zero, we take the representation with less error.
