diff --git a/docs/reproducing.md b/docs/reproducing.md
index 6a144a89d..477bcee77 100644
--- a/docs/reproducing.md
+++ b/docs/reproducing.md
@@ -28,16 +28,17 @@ If you are not sure how to build the fuzzer using the project's build system,
you may also use Docker ([how?](installing_docker.md), [why?](faq.md#why-do-you-use-docker)) commands
to replicate the exact build steps used by OSS-Fuzz and then feed the reproducer input to the fuzz target.
-- *Reproduce using latest OSS-Fuzz build:*
+## Building using Docker
```bash
$ python infra/helper.py build_image $PROJECT_NAME
-$ python infra/helper.py build_fuzzers --sanitizer
$PROJECT_NAME
-$ python infra/helper.py reproduce $PROJECT_NAME
+$ python infra/helper.py build_fuzzers --sanitizer
```
- This builds the fuzzer from the most recent successful OSS-Fuzz build (usually last night's sources)
- and feeds the testcase file to the target function.
+## Reproducing
+```bash
+$ python infra/helper.py reproduce $PROJECT_NAME
+```
E.g. for building [libxml2](../projects/libxml2) project with UndefinedBehaviorSanitizer instrumentation
and reproduce a crash testcase for a fuzzer named `libxml2_xml_read_memory_fuzzer`, it will be:
@@ -48,7 +49,7 @@ $ python infra/helper.py build_fuzzers --sanitizer undefined libxml2
$ python infra/helper.py reproduce libxml2 libxml2_xml_read_memory_fuzzer ~/Downloads/testcase
```
-- *Reproduce using local source checkout:*
+## Reproduce using local source checkout
```bash
$ python infra/helper.py build_fuzzers --sanitizer $PROJECT_NAME