diff --git a/faq.md b/faq.md
index 5ff6e8a16..4c4452978 100644
--- a/faq.md
+++ b/faq.md
@@ -34,9 +34,10 @@
## Section 4 - [Changes made to IOCCC winners](#faq4)
- [4.0 - Why are some winning author remarks incongruent with the winning IOCCC code?](#faq4_0)
-- [4.1 - Why were some calls to the libc function gets changed to use fgets?](#faq4_1)
+- [4.1 - Why were some calls to the libc function `gets(3)` changed to use `fgets(3)`?](#faq4_1)
- [4.2 - What was changed in an IOCCC winner source code?](#faq4_2)
-- [4.3 - Why do author remarks sometimes not match the source?](#faq4_3)
+- [4.3 - Why do author remarks sometimes not match the source / why are there
+other inconsistencies with the original entry?](#faq4_3)
- [4.4 - What is the meaning of the file ending in .orig.c in IOCCC winners?](#faq4_4)
## Section 5 - [Updating or correcting IOCCC web site content](#faq5)
@@ -988,7 +989,7 @@ version like `winner.alt.c` or `prog.alt.c`. In fact it is advisable to look at
the original code when reading the author's (and sometimes authors') remarks.
-### FAQ 4.1: Why were some calls to the libc function gets changed to use fgets?
+### FAQ 4.1: Why were some calls to the libc function `gets(3)` changed to use `fgets(3)`?
Some may wonder: "Doesn't this tamper with the entry too much?"
@@ -1015,7 +1016,6 @@ those have mainly not been touched except one that has had the buffer size
increased (which could be done for others that are not possible to change to
`fgets()` though this has not been done).
-
Some entries can be made to look almost identical to the original entry. For
instance the fix to [1988/reddy](1988/reddy/README.md) required only a single
`#define` be added.
@@ -1023,12 +1023,22 @@ instance the fix to [1988/reddy](1988/reddy/README.md) required only a single
In the future we, the judges, would prefer that entries use `fgets()` to prevent
these problems.
-NOTE: due to 'compatibility reasons' `fgets()` stores the newline and `gets()`
-does not. We're not sure how this is compatibility but either way it can cause a
+An annoying fact is that for '"compatibility" reasons' `fgets()` retains the
+newline and `gets()` does not. As the v7 man page used to say:
+
+```
+BUGS
+
+The fgets(3) function retains the newline while gets(3) does not, all in the
+name of backward compatibility.
+```
+
+We're not sure how this is compatibility but either way it can cause a
problem and it is this that has complicated most of the fixes though again some
can look almost identical.
+
### FAQ 4.2: What was changed in an IOCCC winner source code?
We have set up make rules to easily do see what was changed in the IOCCC
@@ -1126,12 +1136,25 @@ Obviously if you want to view the alt code or the orig code you can just open
the files as described above.
-### FAQ 4.3: Why do author remarks sometimes not match the source?
+### FAQ 4.3 - Why do author remarks sometimes not match the source / why are there other inconsistencies with the original entry?
-This is very likely to happen when an entry was fixed for modern systems. When
-you look at the remarks of the author you should look at the `prog.orig.c` or
-the `winner.orig.c` file. You might also find value in the above `diff` make
-rules.
+If the entry has been fixed for modern systems and this fix required
+modification to the code then invariably there will be entries where the remarks
+of the author or authors are inconsistent with the original code, the size of
+the code might be against rule 2 and other kinds of inconsistencies might also
+be there.
+
+This is why we recommend that when you read the remarks, sometimes the judges'
+remarks and always the author's or authors' remarks, we recommend that you look
+at the original code. When the entry source code is called `prog.c` the original
+code is in `prog.orig.c`; otherwise it is `winner.orig.c`. For instance one of
+Landon's all time favourite entries is
+[1984/mullender](1984/mullender/README.md) and the original code is in
+[mullender.orig.c](1984/mullender/mullender.orig.c). In some cases, such as
+`1984/mullender`, the original code is the same as the code as no changes were
+made (there is an alt version for systems that are not VAX-11/PDP-11, however).
+
+See also [FAQ 4.2: What was changed in an IOCCC winner source code?](#faq4_2)
### FAQ 4.4: What is the meaning of the file ending in .orig.c in IOCCC winners?
diff --git a/thanks-for-fixes.md b/thanks-for-fixes.md
index 8fcbc77ee..5e35b7775 100644
--- a/thanks-for-fixes.md
+++ b/thanks-for-fixes.md
@@ -64,10 +64,28 @@ We are pleased to note the many contributions, **made since 2021 Jan 01**,
on a winner by winner basis.
+## Note about fixes and inconsistencies with the original code and remarks
+
+Invariably when an entry is fixed and it is not made an alt version (sometimes
+it is worth an alt version and other times not - it all depends on what was
+done) some inconsistencies will be introduced of the original code, the remarks
+of the author(s) and the size restrictions of the contest for that year (and in
+some cases it might end up being against other rules).
+
+See [FAQ 4.3 - Why do author remarks sometimes not match the source / why are
+there other inconsistencies with the original entry?](/faq.md#faq4_3) for this
+specifically and also [FAQ 4.2: What was changed in an IOCCC winner source
+code?](/faq.mdfaq4_2).
+
+
## Notes about changing `gets()` to `fgets()` in some entries:
-Although this is discussed in the [FAQ](/faq.md) we want to say here simply that
-the problem with `gets()` is that in some systems a warning can be interspersed
+Although the 'why' is discussed in the [FAQ 4.1: Why were some calls to the libc
+function `gets(3)` changed to use `fgets(3)`?](/faq.md#faq4_1) we want to give
+more details here as it pertains to the fixes and updates made in numerous
+entries below (note that some of the information in that FAQ entry are below).
+
+The problem with `gets()` is that in some systems a warning can be interspersed
with the output which can be confusing, to say nothing of the annoyance of it
(which can be fixed via `2>/dev/null` - and this is done with some entries in
the to use/try sections - but which makes it more burdensome to run as there are
@@ -76,11 +94,16 @@ a lot of entries that use it still).
A good example was [1990/tbr](/thanks-for-fixes.md#1990tbr-readmemd) where one
would see:
-```sh
+```
$ warning: this program uses gets(), which is unsafe.
+# cursor here, what to do?
```
-whereas without the warning it's much easier to see that it's a prompt.
+whereas without the warning it's much easier to see that it's a prompt:
+
+```
+$
+```
Another great example is:
@@ -114,8 +137,8 @@ fixes in that entry.
In any case some of the entries have been updated this way for the reasons
described above and in the [FAQ](/faq.md).
-Where possible `gets` has been redefined to be `fgets` with the appropriate arg.
-This is not always possible but if often is.
+Where possible `gets(3)` has been redefined to be `fgets(3)` with the
+appropriate arg. This is not always possible but if often it is.
See also [bugs.md](/bugs.md) for a further discussion on the matter.