diff --git a/tests-1.2/basic.py b/tests-1.2/basic.py
index 2321da8..76a5a16 100644
--- a/tests-1.2/basic.py
+++ b/tests-1.2/basic.py
@@ -108,7 +108,7 @@
             msg = ofp.message.packet_out()
             msg.in_port = ofp.OFPP_CONTROLLER
             msg.data = str(outpkt)
-            act = ofp.action.action_output()
+            act = ofp.action.output()
             act.port = dp_port
             self.assertTrue(msg.actions.add(act), 'Could not add action to msg')
 
diff --git a/tests-1.2/groups.py b/tests-1.2/groups.py
index 1e86963..4e936d0 100644
--- a/tests-1.2/groups.py
+++ b/tests-1.2/groups.py
@@ -53,17 +53,17 @@
 def create_action(**kwargs):
     a = kwargs.get('action')
     if a == ofp.OFPAT_OUTPUT:
-        act = ofp.action.action_output()
+        act = ofp.action.output()
         act.port = kwargs.get('port', 1)
         return act
     if a == ofp.OFPAT_GROUP:
-        act = ofp.action.action_group()
+        act = ofp.action.group()
         act.group_id = kwargs.get('group_id', 0)
         return act
     if a == ofp.OFPAT_SET_FIELD:
         port = kwargs.get('tcp_sport', 0)
         field_2b_set = ofp.match.tcp_src(port)
-        act = ofp.action.action_set_field()
+        act = ofp.action.set_field()
         act.field = field_2b_set
         return act;
 
diff --git a/tests-1.2/ipv6.py b/tests-1.2/ipv6.py
index e1f4214..c871a6b 100644
--- a/tests-1.2/ipv6.py
+++ b/tests-1.2/ipv6.py
@@ -59,7 +59,7 @@
         request.match_fields.tlvs.append(eth_type)
         request.match_fields.tlvs.append(eth_dst)
         request.match_fields.tlvs.append(ipv6_src)
-        act = ofp.action.action_output()
+        act = ofp.action.output()
         act.port = of_ports[3]
         inst = ofp.instruction.instruction_apply_actions()
         inst.actions.add(act)
@@ -117,7 +117,7 @@
         request.match_fields.tlvs.append(ip_proto)
         request.match_fields.tlvs.append(icmpv6_type)
         
-        act = ofp.action.action_output()
+        act = ofp.action.output()
         act.port = of_ports[3]
         inst = ofp.instruction.instruction_apply_actions()
         inst.actions.add(act)
@@ -170,11 +170,11 @@
         request.match_fields.tlvs.append(ipv6_src)
         
         field_2b_set = ofp.match.ipv6_dst(ipaddr.IPv6Address('fe80::2420:52ff:fe8f:DDDD'))
-        act_setfield = ofp.action.action_set_field()
+        act_setfield = ofp.action.set_field()
         act_setfield.field = field_2b_set
         
 #       TODO: insert action set field properly
-        act_out = ofp.action.action_output()
+        act_out = ofp.action.output()
         act_out.port = of_ports[3]
         
         
@@ -239,7 +239,7 @@
         request.match_fields.tlvs.append(ip_proto)
         request.match_fields.tlvs.append(tcp_port)
         
-        act = ofp.action.action_output()
+        act = ofp.action.output()
         act.port = of_ports[3]
         inst = ofp.instruction.instruction_apply_actions()
         inst.actions.add(act)
