diff --git a/doc/istl/comm/Makefile.am b/doc/istl/comm/Makefile.am
index f4d1c6e130f3dd131c37f7b1ea696c7b04500173..a7a4bc87ca52ed5808b40444829e834775b5af8d 100644
--- a/doc/istl/comm/Makefile.am
+++ b/doc/istl/comm/Makefile.am
@@ -9,8 +9,6 @@ SUFFIXES = .dvi .tex .pdf
 
 dist_pkgdata_DATA = communication.pdf communication.ps
 
-#communication.dvi_DEPENDENCIES = communication.tex indexset.cc reverse.hh
-
 noinst_PROGRAMS = $(MPIPROGRAMS)
 
 indexset_SOURCES = indexset.cc
@@ -38,4 +36,8 @@ indexset_LDADD = $(MPI_LDFLAGS)
 .dvi.ps:
 	$(DVIPS) $*
 
+
+communication.dvi : communication.tex buildindexset.hh reverse.hh
+
+
 CLEANFILES = *.aux *.bbl *.blg *.log *.out *.toc *.dvi *.pdf *.ps
diff --git a/doc/istl/comm/communication.tex b/doc/istl/comm/communication.tex
index e038f54e087ff1194b1e8c0416f9ab08c03fa596..a2d419a116c68fbb5157fbfeb6928bdab45f3eca 100644
--- a/doc/istl/comm/communication.tex
+++ b/doc/istl/comm/communication.tex
@@ -65,7 +65,7 @@
 Markus Blatt\\
 Interdisziplinäres Zentrum für Wissenschaftliches Rechnen,\\
 Universität Heidelberg, Im Neuenheimer Feld 368, D-69120 Heidelberg, \\
-email: \texttt{Markus.Blarr@iwr.uni-heidelberg.de}}
+email: \texttt{Markus.Blatt@iwr.uni-heidelberg.de}}
 
 \date{\today}
 
@@ -184,15 +184,40 @@ present on other processes there is the possiblity to mark the index
 as public.
 
 \paragraph{Usage Examples}
-Let us look at a short example on how to build an index set:
-
+Let us look at a short example on how to build an index set. The code
+in Listing \ref{lst:build_indexset} sets up an index set with 8
+components on two processes. This index set might be used to access as
+distributed field or \lstinline!std::vector! as sketched in Figure
+\ref{fig:distributed_field}. 
+
+\begin{figure}[htb]
+  \centering
+  \includegraphics{figures/darray.eps}
+  \caption{A Distributed Field}
+  \label{fig:distributed_field}
+\end{figure}
+
+The process $0$ stores in his {/em local}
+field $a_0$ the values corresponding to the global indices
+$I_0=\{0,2,6,3,5\}$, in that order, of the global field $a$ and process
+$I$ the entries corresponding to the values at the indices
+$I_1=\{0,1,7,5,4\}$.
 \lstinputlisting[caption=Build an Index Set,
 label=lst:build_indexset]{buildindexset.hh}
 
 Due to the complexity of \lstinline!operator[](TG& global)! it is
-always advisable to use iterators to access the index pairs of the
-set.
-The following example demonstrates their usage:
+always advisable to use iterators, obtained by calling
+\lstinline!begin()! and \lstinline!end()! respectively, to access the
+index pairs of the set.
+
+Listing \ref{lst:indexset_iterator} demonstrates their
+usage. First the maximum local index $i_{\mbox{max}}$ of the set is
+computed, and the 
+the local indices are renumbered. Due to the ordering the local index with
+the smallest corresponding global index becomes $i_{\mbox{max}}$ and the rest is
+numbered consecutively decreasingly with increasing global index. Let
+$n$ be the number of index pairs in the set than local index
+corresponding to the largets global index becomes $i_{\mbox{max}}-n$.
 \lstinputlisting[caption=Usage of Index Set Iterators,
 label=lst:indexset_iterator]{reverse.hh}
 
diff --git a/doc/istl/comm/figures/darray.eps b/doc/istl/comm/figures/darray.eps
new file mode 100644
index 0000000000000000000000000000000000000000..5c167b85b65be4922c1e2804be8403fe7c0d99f2
--- /dev/null
+++ b/doc/istl/comm/figures/darray.eps
@@ -0,0 +1,230 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: ../eps/darray.eps
+%%Creator: fig2dev Version 3.2 Patchlevel 1
+%%CreationDate: Thu Mar  4 15:25:17 1999
+%%For: peter@speedo (Peter Bastian)
+%%Orientation: Portrait
+%%BoundingBox: 0 0 345 260
+%%Pages: 0
+%%BeginSetup
+%%EndSetup
+%%Magnification: 1.0000
+%%EndComments
+/$F2psDict 200 dict def
+$F2psDict begin
+$F2psDict /mtrx matrix put
+/col-1 {0 setgray} bind def
+/col0 {0.000 0.000 0.000 srgb} bind def
+/col1 {0.000 0.000 1.000 srgb} bind def
+/col2 {0.000 1.000 0.000 srgb} bind def
+/col3 {0.000 1.000 1.000 srgb} bind def
+/col4 {1.000 0.000 0.000 srgb} bind def
+/col5 {1.000 0.000 1.000 srgb} bind def
+/col6 {1.000 1.000 0.000 srgb} bind def
+/col7 {1.000 1.000 1.000 srgb} bind def
+/col8 {0.000 0.000 0.560 srgb} bind def
+/col9 {0.000 0.000 0.690 srgb} bind def
+/col10 {0.000 0.000 0.820 srgb} bind def
+/col11 {0.530 0.810 1.000 srgb} bind def
+/col12 {0.000 0.560 0.000 srgb} bind def
+/col13 {0.000 0.690 0.000 srgb} bind def
+/col14 {0.000 0.820 0.000 srgb} bind def
+/col15 {0.000 0.560 0.560 srgb} bind def
+/col16 {0.000 0.690 0.690 srgb} bind def
+/col17 {0.000 0.820 0.820 srgb} bind def
+/col18 {0.560 0.000 0.000 srgb} bind def
+/col19 {0.690 0.000 0.000 srgb} bind def
+/col20 {0.820 0.000 0.000 srgb} bind def
+/col21 {0.560 0.000 0.560 srgb} bind def
+/col22 {0.690 0.000 0.690 srgb} bind def
+/col23 {0.820 0.000 0.820 srgb} bind def
+/col24 {0.500 0.190 0.000 srgb} bind def
+/col25 {0.630 0.250 0.000 srgb} bind def
+/col26 {0.750 0.380 0.000 srgb} bind def
+/col27 {1.000 0.500 0.500 srgb} bind def
+/col28 {1.000 0.630 0.630 srgb} bind def
+/col29 {1.000 0.750 0.750 srgb} bind def
+/col30 {1.000 0.880 0.880 srgb} bind def
+/col31 {1.000 0.840 0.000 srgb} bind def
+
+end
+save
+-130.0 296.0 translate
+1 -1 scale
+
+/cp {closepath} bind def
+/ef {eofill} bind def
+/gr {grestore} bind def
+/gs {gsave} bind def
+/sa {save} bind def
+/rs {restore} bind def
+/l {lineto} bind def
+/m {moveto} bind def
+/rm {rmoveto} bind def
+/n {newpath} bind def
+/s {stroke} bind def
+/sh {show} bind def
+/slc {setlinecap} bind def
+/slj {setlinejoin} bind def
+/slw {setlinewidth} bind def
+/srgb {setrgbcolor} bind def
+/rot {rotate} bind def
+/sc {scale} bind def
+/sd {setdash} bind def
+/ff {findfont} bind def
+/sf {setfont} bind def
+/scf {scalefont} bind def
+/sw {stringwidth} bind def
+/tr {translate} bind def
+/tnt {dup dup currentrgbcolor
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add
+  4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb}
+  bind def
+/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
+  4 -2 roll mul srgb} bind def
+/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
+/$F2psEnd {$F2psEnteredState restore end} def
+%%EndProlog
+
+$F2psBegin
+10 setmiterlimit
+n -1000 5689 m -1000 -1000 l 8527 -1000 l 8527 5689 l cp clip
+ 0.06299 0.06299 sc
+% Polyline
+7.500 slw
+n 5265 3105 m 7515 3105 l 7515 3780 l 5265 3780 l cp gs col0 s gr 
+% Polyline
+n 5670 3105 m 5670 3780 l gs col0 s gr 
+% Polyline
+n 6120 3105 m 6120 3780 l gs col0 s gr 
+% Polyline
+n 6570 3105 m 6570 3780 l gs col0 s gr 
+% Polyline
+n 7020 3105 m 7020 3780 l gs col0 s gr 
+/Times-Roman ff 180.00 scf sf
+5400 4050 m
+gs 1 -1 sc (0) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+6300 4050 m
+gs 1 -1 sc (2) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+6750 4050 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+7245 4050 m
+gs 1 -1 sc (4) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+5850 4050 m
+gs 1 -1 sc (1) col0 sh gr
+% Polyline
+n 2340 3105 m 4590 3105 l 4590 3780 l 2340 3780 l cp gs col0 s gr 
+% Polyline
+n 2745 3105 m 2745 3780 l gs col0 s gr 
+% Polyline
+n 3195 3105 m 3195 3780 l gs col0 s gr 
+% Polyline
+n 3645 3105 m 3645 3780 l gs col0 s gr 
+% Polyline
+n 4095 3105 m 4095 3780 l gs col0 s gr 
+/Times-Roman ff 180.00 scf sf
+2475 4050 m
+gs 1 -1 sc (0) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+3375 4050 m
+gs 1 -1 sc (2) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+3825 4050 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+4320 4050 m
+gs 1 -1 sc (4) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+2925 4050 m
+gs 1 -1 sc (1) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+2970 4320 m
+gs 1 -1 sc (local indices) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+2475 4635 m
+gs 1 -1 sc (local array in processor 0) col0 sh gr
+% Polyline
+n 3150 1215 m 6750 1215 l 6750 1890 l 3150 1890 l cp gs col0 s gr 
+% Polyline
+n 4950 1215 m 4950 1890 l gs col0 s gr 
+% Polyline
+n 4050 1215 m 4050 1890 l gs col0 s gr 
+% Polyline
+n 3600 1215 m 3600 1890 l gs col0 s gr 
+% Polyline
+n 4500 1215 m 4500 1890 l gs col0 s gr 
+% Polyline
+n 5850 1215 m 5850 1890 l gs col0 s gr 
+% Polyline
+n 5400 1215 m 5400 1890 l gs col0 s gr 
+% Polyline
+n 6300 1215 m 6300 1890 l gs col0 s gr 
+% Polyline
+n 2520 3105 m 3375 1890 l gs col0 s gr 
+% Polyline
+n 2970 3105 m 4230 1890 l gs col0 s gr 
+% Polyline
+n 3375 3105 m 6030 1890 l gs col0 s gr 
+% Polyline
+n 3825 3105 m 4725 1890 l gs col0 s gr 
+% Polyline
+n 5490 3105 m 3465 1890 l gs col0 s gr 
+% Polyline
+n 5850 3105 m 3870 1890 l gs col0 s gr 
+% Polyline
+n 6345 3105 m 6525 1890 l gs col0 s gr 
+% Polyline
+n 6795 3105 m 5625 1890 l gs col0 s gr 
+% Polyline
+n 7290 3105 m 5175 1890 l gs col0 s gr 
+% Polyline
+n 4320 3105 m 5535 1890 l gs col0 s gr 
+/Times-Roman ff 180.00 scf sf
+3285 1035 m
+gs 1 -1 sc (0) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+3735 1035 m
+gs 1 -1 sc (1) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+4230 1035 m
+gs 1 -1 sc (2) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+4680 1035 m
+gs 1 -1 sc (3) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+5085 1035 m
+gs 1 -1 sc (4) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+5535 1035 m
+gs 1 -1 sc (5) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+5985 1035 m
+gs 1 -1 sc (6) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+6435 1035 m
+gs 1 -1 sc (7) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+5940 4320 m
+gs 1 -1 sc (local indices) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+5490 4635 m
+gs 1 -1 sc (local array in processor 1) col0 sh gr
+/Times-Roman ff 180.00 scf sf
+3825 720 m
+gs 1 -1 sc (global array with global indices) col0 sh gr
+/Times-Italic ff 180.00 scf sf
+2880 1665 m
+gs 1 -1 sc (a:) col0 sh gr
+/Times-Italic ff 180.00 scf sf
+2070 3555 m
+gs 1 -1 sc (a0:) col0 sh gr
+/Times-Italic ff 180.00 scf sf
+4995 3555 m
+gs 1 -1 sc (a1:) col0 sh gr
+$F2psEnd
+rs
diff --git a/istl/Makefile.am b/istl/Makefile.am
index 9fb8b9498ec97947386b2bc115222038ad4c71d6..7c0c03b0512edb004c5a7575eb9fdfd30ad371d6 100644
--- a/istl/Makefile.am
+++ b/istl/Makefile.am
@@ -12,7 +12,7 @@ istl_HEADERS = $(SOURCES)
 # which documentation files should be put into special istl-only-tarball
 DISTDOCS = istl.tex istl.bib istl.ps istl.pdf \
 	comm/communication.pdf comm/communication.ps comm/indexset.cc \
-	comm/reverse.hh comm/buildindexset.hh
+	comm/reverse.hh comm/buildindexset.hh comm/figures/darray.eps
 
 # same for tutorial
 DISTTUT = tutorial/example.cc