diff --git a/manifests/iface.pp b/manifests/iface.pp
index d1d6eef..5543a3d 100644
--- a/manifests/iface.pp
+++ b/manifests/iface.pp
@@ -1,14 +1,14 @@
-define interfaces::iface ( $family, $method, $options=[], $auto=0, $ifname='' ) {
-  if $ifname == '' {
-    $_ifname = $name
-  } else {
-    $_ifname = $ifname
-  }
-  if $auto == 1 {
-    interfaces::auto { $_ifname: }
+define interfaces::iface ( $family, $method, $options=[], $auto=0, $ifname='UNSET' ) {
+  $ifname_real = $ifname ? {
+    'UNSET' => $name,
+    default => $ifname,
   }
 
-  $str = "iface ${_ifname} ${family} ${method}\n\t<%= options.join('\n\t') %>\n\n"
+  if $auto == 1 {
+    interfaces::auto { $ifname_real: }
+  }
+
+  $str = "iface ${ifname_real} ${family} ${method}\n\t<%= options.join('\n\t') %>\n\n"
   concat::fragment{"interfaces::iface_${name}":
     target  => '/etc/network/interfaces',
     content => inline_template($str),