diff --git a/manifests/init.pp b/manifests/init.pp
index 0860c21736dd2cfcb09bfcfffd8dc5446c89d27f..1037e4ecf6194e5c9b48193f14988d350030fc73 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -26,6 +26,14 @@
 class zfs {
 
   if $::operatingsystem in ['RedHat', 'CentOS', 'Scientific'] {
+
+    # We need kernel-headers for DKMS.
+    if !defined(Package['kernel-headers']) {
+      package { 'kernel-headers':
+        ensure => $::kernelrelease,
+      }
+    }
+
     package { 'zfs-release':
       ensure   => present,
       provider => rpm,
@@ -33,7 +41,12 @@ class zfs {
     } ->
     package { 'zfs':
       ensure => present,
+    } ~>
+    service { 'zfs':
+      ensure => running,
+      enable => true,
     }
+
   }
 
 }