diff --git a/manifests/interface.pp b/manifests/interface.pp
index 190fdd74ebf502847948f27094389cbe52459b72..9bc1b96cf346e9b27ea0147af3a0b948ec7a5d21 100644
--- a/manifests/interface.pp
+++ b/manifests/interface.pp
@@ -14,10 +14,21 @@
 # [*ipaddress*]
 # [*netmask*]
 # [*broadcast*]
-# [*hwaddr*]
 #   String. Default: undef
 #   Standard network parameters
 #
+# [*hwaddr*]
+#   String. Default: undef
+#   - On RedHat: assigns this interface name to the device with this mac.
+#   - On Debian/Suse: spoofs mac address of the interface.
+#     (syntax may be broke on Debian. if so, try $macaddr).
+#   Do not use togehter with $macaddr.
+#
+# [*macaddr*]
+#   String. Default: undef
+#   Spoofs mac address of the interface.
+#   Do not use together with $hwaddr.
+#
 # [*enable*]
 #   Boolean. Default: true
 #   Manages the interface presence. Possible values:
@@ -114,9 +125,6 @@
 #    configure the ipv4 address of the interface.
 #    If both are present ipaddr is used.
 #
-#  $hwaddr        = undef,
-#    hwaddr if set configures the mac address of the interface.
-#
 #  $prefix        = undef,
 #    Network PREFIX aka CIDR notation of the network mask. The PREFIX
 #    takes precedence if both PREFIX and NETMASK are set.
@@ -287,6 +295,7 @@ define network::interface (
   $broadcast             = undef,
   $gateway               = undef,
   $hwaddr                = undef,
+  $macaddr               = undef,
   $mtu                   = undef,
 
   $description           = undef,
@@ -570,8 +579,8 @@ define network::interface (
     fail('Use either netmask or prefix to define the netmask for the interface')
   }
 
-  $manage_hwaddr = $hwaddr ? {
-    default => $hwaddr,
+  if $hwaddr != undef and $macaddr != undef {
+    fail('HWADDR and MACADDR cannot be used together')
   }
 
   $manage_method = $method ? {
diff --git a/templates/interface/Debian.erb b/templates/interface/Debian.erb
index 6c2b3e344a4bf37b6bf7372dc222bf8e2d58c107..b1489ec6ca79cf1c69bfd52b82fd2ec1b1c1733b 100644
--- a/templates/interface/Debian.erb
+++ b/templates/interface/Debian.erb
@@ -12,8 +12,11 @@ allow-hotplug <%= @interface %>
 <% if @manage_address and ! @manage_address.empty? -%>
     address <%= @manage_address %>
 <% end -%>
-<% if @manage_hwaddr -%>
-    hwaddress <%= @manage_hwaddr %>
+<% if @hwaddr -%>
+    hwaddress <%= @hwaddr %>
+<% end -%>
+<% if @macaddr -%>
+    hwaddress ether <%= @macaddr %>
 <% end -%>
 <% if @netmask -%>
     netmask <%= @netmask %>
diff --git a/templates/interface/RedHat.erb b/templates/interface/RedHat.erb
index 0808cf8023c9bcfd76189cfa0b27db0a438b4336..4d52567162e99fe6472856717b5f1d68111d4530 100644
--- a/templates/interface/RedHat.erb
+++ b/templates/interface/RedHat.erb
@@ -97,8 +97,11 @@ GATEWAY="<%= @gateway %>"
 <% if @manage_defroute -%>
 DEFROUTE="<%= @manage_defroute %>"
 <% end -%>
-<% if @manage_hwaddr -%>
-HWADDR="<%= @manage_hwaddr %>"
+<% if @hwaddr -%>
+HWADDR="<%= @hwaddr %>"
+<% end -%>
+<% if @macaddr -%>
+MACADDR="<%= @macaddr %>"
 <% end -%>
 <% if @ipv6init -%>
 IPV6INIT="<%= @ipv6init %>"
diff --git a/templates/interface/Suse.erb b/templates/interface/Suse.erb
index 7674fbea0d9bfcd703123641194072921145d9be..1cee4f69056c681c87a462cc762726b6aab2b768 100644
--- a/templates/interface/Suse.erb
+++ b/templates/interface/Suse.erb
@@ -32,8 +32,11 @@ MTU="<%= @mtu %>"
 <% if @vlan -%>
 VLAN_ID="<%= @vlan %>"
 <% end -%>
-<% if @manage_hwaddr -%>
-LLADDR="<%= @manage_hwaddr %>"
+<% if @hwaddr -%>
+LLADDR="<%= @hwaddr %>"
+<% end -%>
+<% if @macaddr -%>
+LLADDR="<%= @macaddr %>"
 <% end -%>
 <% if @bridge -%>
 BRIDGE="<%= @bridge %>"