diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,8 @@
+## 0.1.1.5 (2018-11-19)
+
+ * GHC 8.6 support ([#28](https://github.com/tibbe/ekg-core/pull/28)).
+ * Don't combine distribution if count == 0 ([#25](https://github.com/tibbe/ekg-core/pull/25)).
+
 ## 0.1.1.4 (2018-02-27)
 
  * GHC 8.4 support ([#23](https://github.com/tibbe/ekg-core/pull/23)).
diff --git a/System/Metrics.hs b/System/Metrics.hs
--- a/System/Metrics.hs
+++ b/System/Metrics.hs
@@ -370,6 +370,12 @@
 --
 -- [@rts.gc.bytes_copied@] Number of bytes copied during GC
 --
+-- [@rts.gc.init_cpu_ms@] CPU time used by the init phase, in
+-- milliseconds. GHC 8.6+ only.
+--
+-- [@rts.gc.init_wall_ms@] Wall clock time spent running the init
+-- phase, in milliseconds. GHC 8.6+ only.
+--
 -- [@rts.gc.mutator_cpu_ms@] CPU time spent running mutator threads,
 -- in milliseconds. This does not include any profiling overhead or
 -- initialization.
@@ -423,6 +429,10 @@
      , ("rts.gc.num_bytes_usage_samples"  , Counter . fromIntegral . Stats.major_gcs)
      , ("rts.gc.cumulative_bytes_used"    , Counter . fromIntegral . Stats.cumulative_live_bytes)
      , ("rts.gc.bytes_copied"             , Counter . fromIntegral . Stats.copied_bytes)
+#if MIN_VERSION_base(4,12,0)
+     , ("rts.gc.init_cpu_ms"              , Counter . nsToMs . Stats.init_cpu_ns)
+     , ("rts.gc.init_wall_ms"             , Counter . nsToMs . Stats.init_elapsed_ns)
+#endif
      , ("rts.gc.mutator_cpu_ms"           , Counter . nsToMs . Stats.mutator_cpu_ns)
      , ("rts.gc.mutator_wall_ms"          , Counter . nsToMs . Stats.mutator_elapsed_ns)
      , ("rts.gc.gc_cpu_ms"                , Counter . nsToMs . Stats.gc_cpu_ns)
@@ -491,6 +501,10 @@
     , cumulative_par_max_copied_bytes      = 0
 # if MIN_VERSION_base(4,11,0)
     , cumulative_par_balanced_copied_bytes = 0
+# if MIN_VERSION_base(4,12,0)
+    , init_cpu_ns                          = 0
+    , init_elapsed_ns                      = 0
+# endif
 # endif
     , mutator_cpu_ns                       = 0
     , mutator_elapsed_ns                   = 0
diff --git a/cbits/distrib.c b/cbits/distrib.c
--- a/cbits/distrib.c
+++ b/cbits/distrib.c
@@ -29,6 +29,11 @@
 // http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Parallel_algorithm
 void hs_distrib_combine(struct distrib* b, struct distrib* a) {
   hs_lock(&b->lock);
+
+  if (!b->count) {
+    return;
+  }
+
   const StgInt64 count = a->count + b->count;
   const StgDouble delta = b->mean - a->mean;
   const StgDouble mean = (a->count * a->mean + b->count * b->mean) / count;
diff --git a/ekg-core.cabal b/ekg-core.cabal
--- a/ekg-core.cabal
+++ b/ekg-core.cabal
@@ -1,5 +1,5 @@
 name:                ekg-core
-version:             0.1.1.4
+version:             0.1.1.5
 synopsis:            Tracking of system metrics
 description:
   This library lets you defined and track system metrics.
@@ -14,8 +14,9 @@
 build-type:          Simple
 extra-source-files:  CHANGES.md
 cabal-version:       >=1.10
-tested-with:         GHC == 8.4.1, GHC == 8.2.2, GHC == 8.0.2, GHC == 7.10.3
-                   , GHC == 7.8.4, GHC == 7.6.3
+tested-with:         GHC == 8.6.2, GHC == 8.4.4,  GHC == 8.2.2,
+                     GHC == 8.0.2, GHC == 7.10.3, GHC == 7.8.4,
+                     GHC == 7.6.3
 
 library
   exposed-modules:
@@ -33,8 +34,8 @@
 
   build-depends:
     ghc-prim < 0.6,
-    base >= 4.5 && < 4.11,
-    containers >= 0.5 && < 0.6,
+    base >= 4.6 && < 4.13,
+    containers >= 0.5 && < 0.7,
     text < 1.3,
     unordered-containers < 0.3
 
