diff --git a/i2p2www/spec/i2cp.rst b/i2p2www/spec/i2cp.rst
index cdd4af6a0ee662e2a2cc58945a25f7002dd62e74..b9b481e7797753a1cad94b8501dfcafe330929c1 100644
--- a/i2p2www/spec/i2cp.rst
+++ b/i2p2www/spec/i2cp.rst
@@ -12,13 +12,21 @@ I2CP Specification
 Overview
 ========
 
-This page specified the I2P Control Protocol (I2CP), which is the interface
+This page specified the I2P Control Protocol (I2CP), which is the low-level interface
 between clients and the router.  Java clients will use the I2CP client API,
-which implements this protocol.  Non-Java clients will most likely use a
-higher-layer protocol such as SAM or BOB.
+which implements this protocol.
 
+There are no known non-Java implementations of a client-side library
+that implements I2CP. Additionally, socket-oriented (streaming) applications would need
+an implementation of the streaming protocol, but there are no non-Java libraries for that either.
+Therefore, non-Java clients should instead use the higher-layer protocol SAM [SAMv3]_,
+for which libraries exist in several languages.
+
+This is a low-level protocol supported both internally and externally
+by the Java I2P router.
 The protocol is only serialized if the client and router are not in the same
-JVM; otherwise, I2CP message objects are passed via an internal JVM interface.
+JVM; otherwise, I2CP message Java objects are passed via an internal JVM interface.
+I2CP is also supported externally by the C++ router i2pd.
 
 More information is on the I2CP Overview page [I2CP]_.
 
@@ -1612,6 +1620,9 @@ References
 .. [RouterIdentity]
     {{ ctags_url('RouterIdentity') }}
 
+.. [SAMv3]
+    {{ site_url('docs/api/samv3') }}
+
 .. [Signature]
     {{ ctags_url('Signature') }}