diff --git a/src/vtrace/index.js b/src/vtrace/index.js
index cbfd76d..48e8d7a 100644
--- a/src/vtrace/index.js
+++ b/src/vtrace/index.js
@@ -72,9 +72,9 @@
  * particular operation is of special importance you can force it to
  * be collected by calling a Spans forceCollect method.  You can also
  * call:
- *   <pre>
- *     vtrace.getStore(ctx).setCollectRegexp("regular.*expression")
- *   </pre>
+ * <pre>
+ *   vtrace.getStore(ctx).setCollectRegexp("regular.*expression")
+ * </pre>
  * which causes us to record any matching trace.</p>
  *
  * <p>If your trace has collected information you can retrieve the data
diff --git a/src/vtrace/vtrace.js b/src/vtrace/vtrace.js
index 6378ddf..d93e1c1 100644
--- a/src/vtrace/vtrace.js
+++ b/src/vtrace/vtrace.js
@@ -264,8 +264,8 @@
 /**
  * Merges a response into the store, adding information on the
  * Span in contains into the local database.
- * @param {module:vanadium.vtraceResponse} response A
- * [Response]{@link module.vanadium.vtraceResponse} instance.
+ * @param {module:vanadium.vtrace~Response} response A
+ * [Response]{@link module.vanadium.vtrace~Response} instance.
  */
 Store.prototype.merge = function(response) {
   if (!uniqueid.valid(response.trace.id)) {
@@ -386,7 +386,7 @@
  * Generate a [Request]{@link module:vanadium.vtrace~Request} to send over
  * the wire.
  * @param {module:vanadium.context.Context} ctx A context.Context instance.
- * @return {module:vanadium.vtrace.Request} a
+ * @return {module:vanadium.vtrace~Request} request a
  * [Request]{@link module:vanadium.vtrace~Request} instance.
  * @memberof module:vanadium.vtrace
  */
@@ -401,11 +401,11 @@
 }
 
 /**
- * Generate a [Response]{@link module:vanadium.vtraceResponse} to send over the
+ * Generate a [Response]{@link module:vanadium.vtrace~Response} to send over the
  * wire.
  * @param {module:vanadium.context.Context} ctx A context.Context instance.
- * @return {module:vanadium.vtraceResponse} A
- * [Response]{@link module:vanadium.vtraceResponse} instance.
+ * @return {module:vanadium.vtrace~Response} A
+ * [Response]{@link module:vanadium.vtrace~Response} instance.
  * @memberof module:vanadium.vtrace
  */
 function response(ctx) {
@@ -598,7 +598,7 @@
 /**
  * Return a string representation of a trace (or array of traces).
  * @param {Array<module:vanadium.vtrace.TraceRecord>} traces Trace records.
- * @return {string} a human friendly string representation of the trace.
+ * @return {string} A human friendly string representation of the trace.
  * @memberof module:vanadium.vtrace
  */
 function formatTraces(traces) {
