diff --git a/doc/manuals/chapters/remsim-client.adoc b/doc/manuals/chapters/remsim-client.adoc
index 977a772..8e26f8e 100644
--- a/doc/manuals/chapters/remsim-client.adoc
+++ b/doc/manuals/chapters/remsim-client.adoc
@@ -20,6 +20,45 @@
 blocking I/O on the TCP/RSPRO side.  This simplifies the code compared
 to a more complex async implementation.
 
+[graphviz]
+.Overall osmo-remsim architecture using osmo-remsim-client-st2
+----
+graph G {
+  rankdir = LR;
+
+  subgraph cluster_0 {
+    label = "Client";
+    modem [label="Phone/Modem",shape="rectangle"];
+    cardem [label="cardem firmware\ne.g. on sysmoQMOD",shape="rectangle"];
+    client [label="remsim-client-st2"];
+    modem -- cardem [label="ISO 7816-3"];
+    cardem -- client [label="USB ST2"];
+  }
+
+  subgraph cluster_2 {
+    label = "SIM Bank";
+    bankd [label="remsim-bankd"];
+    reader [label="Card Reader\ne.g. sysmoOCTSIM",shape="rectangle"];
+    b_pcscd [label="PC/SC Daemon\nlibccid driver"];
+    bankd -- b_pcscd;
+    b_pcscd -- reader [label = "USB CCID"];
+  }
+
+  subgraph cluster_1 {
+    label = "Server/Backend";
+    server [label="remsim-server"];
+    backend [label="Back-End Application"];
+    server -- backend [label="REST Interface"];
+  }
+
+  client -- bankd [label="RSPRO Data"];
+  client -- server [label="RSPRO Control"];
+  bankd -- server [label="RSPRO Control"];
+}
+----
+
+
+
 === Running
 
 osmo-remsim-client-st2 currently has the following command-line options:
