diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,10 @@
+## 0.4.0.4 (2014-10-20)
+
+ * Fix bug where `forkServerWith` would register GC metrics, despite
+   the docs saying that it doesn't.
+
+ * Fix example code that broke in the package split.
+
 ## 0.4.0.3 (2014-09-30)
 
  * Support text-1.2.
diff --git a/System/Remote/Monitoring.hs b/System/Remote/Monitoring.hs
--- a/System/Remote/Monitoring.hs
+++ b/System/Remote/Monitoring.hs
@@ -195,6 +195,7 @@
            -> IO Server
 forkServer host port = do
     store <- Metrics.newStore
+    Metrics.registerGcMetrics store
     forkServerWith store host port
 
 -- | Start an HTTP server in a new thread.  The server replies to GET
@@ -221,7 +222,6 @@
                -> Int            -- ^ Port to listen on (e.g. 8000)
                -> IO Server
 forkServerWith store host port = do
-    Metrics.registerGcMetrics store
     Metrics.registerCounter "ekg.server_timestamp_ms" getTimeMs store
     tid <- forkIO $ startServer store host port
     return $! Server tid store
diff --git a/ekg.cabal b/ekg.cabal
--- a/ekg.cabal
+++ b/ekg.cabal
@@ -1,5 +1,5 @@
 name:                ekg
-version:             0.4.0.3
+version:             0.4.0.4
 synopsis:            Remote monitoring of processes
 description:
   This library lets you remotely monitor a running process over HTTP.
diff --git a/examples/Basic.hs b/examples/Basic.hs
--- a/examples/Basic.hs
+++ b/examples/Basic.hs
@@ -8,9 +8,9 @@
 import Control.Exception
 import Data.List
 import Data.Time.Clock.POSIX (getPOSIXTime)
-import qualified System.Remote.Event as Event
-import qualified System.Remote.Counter as Counter
-import qualified System.Remote.Label as Label
+import qualified System.Metrics.Distribution as Distribution
+import qualified System.Metrics.Counter as Counter
+import qualified System.Metrics.Label as Label
 import System.Remote.Monitoring
 
 -- 'sum' is using a non-strict lazy fold and will blow the stack.
@@ -25,11 +25,11 @@
     handle <- forkServer "localhost" 8000
     counter <- getCounter "iterations" handle
     label <- getLabel "args" handle
-    event <- getEvent "runtime" handle
+    event <- getDistribution "runtime" handle
     Label.set label "some text string"
     let loop n = do
             t <- timed $ evaluate $ mean [1..n]
-            Event.add event t
+            Distribution.add event t
             threadDelay 2000
             Counter.inc counter
             loop n
