diff --git a/manifests/newsyslog/config.pp b/manifests/newsyslog/config.pp
index 8b45eeeddac96b9972d7aadcacb2eaf2be314050..c0e3f175efe1b64d3b66e5217c76675af819bbfe 100644
--- a/manifests/newsyslog/config.pp
+++ b/manifests/newsyslog/config.pp
@@ -80,9 +80,20 @@ define base::newsyslog::config(
   $save_num     = '15'
 ) {
   if $name !~ /^\w+$/ { fail ("'${name}' contains an invalid character.") }
-  file { "/etc/newsyslog.${frequency}/${name}":
-    ensure  => $ensure,
-    content => template('base/newsyslog/config.erb'),
-    require => Package['newsyslog'],
+
+  if ($ensure == 'present') {
+    file { "/etc/newsyslog.${frequency}/${name}":
+      ensure  => $ensure,
+      content => template('base/newsyslog/config.erb'),
+      require => Package['newsyslog'],
+    }
+  } else {
+    # We separate out the absent since we don't want to
+    # require the newyslog package if we are ensuring this
+    # configuration is absent.
+    file { "/etc/newsyslog.${frequency}/${name}":
+      ensure  => absent,
+    }
   }
+
 }