diff --git a/distributed-process-simplelocalnet.cabal b/distributed-process-simplelocalnet.cabal
--- a/distributed-process-simplelocalnet.cabal
+++ b/distributed-process-simplelocalnet.cabal
@@ -1,12 +1,12 @@
 Name:          distributed-process-simplelocalnet
-Version:       0.2.0.6
+Version:       0.2.0.7
 Cabal-Version: >=1.8
 Build-Type:    Simple
 License:       BSD3 
 License-File:  LICENSE
 Copyright:     Well-Typed LLP
 Author:        Duncan Coutts, Nicolas Wu, Edsko de Vries
-Maintainer:    edsko@well-typed.com, dcoutts@well-typed.com
+Maintainer:    edsko@well-typed.com, duncan@well-typed.com
 Stability:     experimental
 Homepage:      http://github.com/haskell-distributed/distributed-process
 Bug-Reports:   mailto:edsko@well-typed.com
@@ -23,6 +23,10 @@
   Location: https://github.com/haskell-distributed/distributed-process
   SubDir:   distributed-process-simplelocalnet
 
+Flag build-example
+  Default: False
+  Description: Build a simple example application
+
 Library
   Build-Depends:     base >= 4.4 && < 5,
                      bytestring >= 0.9 && < 0.11,
@@ -43,22 +47,24 @@
   ghc-options:       -Wall
   HS-Source-Dirs:    src
 
--- Not a proper test, but we want to use cabal to compile it
-Test-Suite TestSimpleLocalnet
-  Type:              exitcode-stdio-1.0
+Executable TestSimpleLocalnet
   Main-Is:           TestSimpleLocalnet.hs
-  Build-Depends:     base >= 4.4 && < 5,
-                     bytestring >= 0.9 && < 0.11,
-                     network >= 2.3 && < 2.5,
-                     network-multicast >= 0.0 && < 0.1,
-                     data-accessor >= 0.2 && < 0.3,
-                     binary >= 0.5 && < 0.6,
-                     containers >= 0.4 && < 0.6,
-                     transformers >= 0.2 && < 0.4,
-                     network-transport >= 0.3 && < 0.4,
-                     network-transport-tcp >= 0.3 && < 0.4,
-                     distributed-process >= 0.2 && < 0.5
+  If flag(build-example)
+    Build-Depends:     base >= 4.4 && < 5,
+                       bytestring >= 0.9 && < 0.11,
+                       network >= 2.3 && < 2.5,
+                       network-multicast >= 0.0 && < 0.1,
+                       data-accessor >= 0.2 && < 0.3,
+                       binary >= 0.5 && < 0.6,
+                       containers >= 0.4 && < 0.6,
+                       transformers >= 0.2 && < 0.4,
+                       network-transport >= 0.3 && < 0.4,
+                       network-transport-tcp >= 0.3 && < 0.4,
+                       distributed-process >= 0.2 && < 0.5
+  Else
+    Buildable: False
   Extensions:        RankNTypes,
-                     DeriveDataTypeable
+                     DeriveDataTypeable,
+                     CPP
   ghc-options:       -Wall -threaded -rtsopts -with-rtsopts=-N -fno-warn-unused-do-bind 
   HS-Source-Dirs:    tests src
diff --git a/src/Control/Distributed/Process/Backend/SimpleLocalnet.hs b/src/Control/Distributed/Process/Backend/SimpleLocalnet.hs
--- a/src/Control/Distributed/Process/Backend/SimpleLocalnet.hs
+++ b/src/Control/Distributed/Process/Backend/SimpleLocalnet.hs
@@ -73,6 +73,13 @@
 -- peer nodes. In other words, if you start a node and pass hostname @localhost@
 -- then peer nodes won't be able to reach it because @localhost@ will resolve
 -- to a different IP address for them.
+--
+-- [Troubleshooting]
+--
+-- If you try the above example and the master process cannot find any slaves,
+-- then it might be that your firewall settings do not allow for UDP multicast
+-- (in particular, the default iptables on some Linux distributions might not
+-- allow it).  
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 module Control.Distributed.Process.Backend.SimpleLocalnet
   ( -- * Initialization 
