diff --git a/src/python/oftest/testutils.py b/src/python/oftest/testutils.py
index 8ee212b..5a3232c 100644
--- a/src/python/oftest/testutils.py
+++ b/src/python/oftest/testutils.py
@@ -1027,3 +1027,19 @@
     finally:
         sys.stdout = backup
     return out
+
+def nonstandard(cls):
+    """
+    Testcase decorator that marks the test as being non-standard,
+    so it is not added to the "all" group.
+    """
+    cls.priority = -1
+    return cls
+
+def disabled(cls):
+    """
+    Testcase decorator that marks the test as being disabled,
+    so it is not added to the "all" group.
+    """
+    cls.priority = -1
+    return cls
diff --git a/tests/basic.py b/tests/basic.py
index 862b6df..6ca8b18 100644
--- a/tests/basic.py
+++ b/tests/basic.py
@@ -117,6 +117,7 @@
                                    'Response packet does not match send packet' +
                                    ' for port ' + str(of_port))
 
+@nonstandard
 class PacketInDefaultDrop(base_tests.SimpleDataPlane):
     """
     Test packet in function
@@ -125,8 +126,6 @@
     in message is received from the controller for each
     """
 
-    priority = -1
-
     def runTest(self):
         rc = delete_all_flows(self.controller)
         self.assertEqual(rc, 0, "Failed to delete all flows")
@@ -152,6 +151,7 @@
                             'Packet in message received on port ' + 
                             str(of_port))
 
+@nonstandard
 class PacketInBroadcastCheck(base_tests.SimpleDataPlane):
     """
     Check if bcast pkts leak when no flows are present
@@ -161,8 +161,6 @@
     Look for the packet on other dataplane ports.
     """
 
-    priority = -1
-
     def runTest(self):
         # Need at least two ports
         self.assertTrue(len(config["port_map"]) > 1, "Too few ports for test")
@@ -281,6 +279,7 @@
                                  set(of_ports).difference(dp_ports),
                                  self)
 
+@disabled
 class FlowStatsGet(base_tests.SimpleProtocol):
     """
     Get stats 
@@ -288,8 +287,6 @@
     Simply verify stats get transaction
     """
 
-    priority = -1
-
     def runTest(self):
         logging.info("Running StatsGet")
         logging.info("Inserting trial flow")
diff --git a/tests/bsn_ipmask.py b/tests/bsn_ipmask.py
index 70ca990..ccd97fb 100644
--- a/tests/bsn_ipmask.py
+++ b/tests/bsn_ipmask.py
@@ -36,13 +36,12 @@
     else:
         return (1 << (63 - index)) - 1
 
+@nonstandard
 class BSNConfigIPMask(base_tests.SimpleDataPlane):
     """
     Exercise BSN vendor extension for configuring IP source/dest match mask
     """
 
-    priority = -1
-
     def bsn_set_ip_mask(self, index, mask):
         """
         Use the BSN_SET_IP_MASK vendor command to change the IP mask for the
diff --git a/tests/bsn_mirror.py b/tests/bsn_mirror.py
index c0ecc07..c916382 100644
--- a/tests/bsn_mirror.py
+++ b/tests/bsn_mirror.py
@@ -75,14 +75,13 @@
 
 action_list.action_object_map[ofp.OFPAT_VENDOR] = bsn_action_mirror
 
+@nonstandard
 class BSNMirrorAction(base_tests.SimpleDataPlane):
     """
     Exercise BSN vendor extension for copying packets to a mirror destination
     port
     """
 
-    priority = -1
-
     def bsn_set_mirroring(self, enabled):
         """
         Use the BSN_SET_MIRRORING vendor command to enable/disable
diff --git a/tests/caps.py b/tests/caps.py
index 6c48840..b01fd48 100644
--- a/tests/caps.py
+++ b/tests/caps.py
@@ -92,7 +92,7 @@
     time.sleep(flow_count / 100)
 
 
-
+@disabled
 class FillTableExact(base_tests.SimpleProtocol):
     """
     Fill the flow table with exact matches; can take a while
@@ -111,12 +111,11 @@
     you can control which table to check.
     """
 
-    priority = -1
-
     def runTest(self):
         logging.info("Running " + str(self))
         flow_caps_common(self)
 
+@disabled
 class FillTableWC(base_tests.SimpleProtocol):
     """
     Fill the flow table with wildcard matches
@@ -137,8 +136,6 @@
 
     """
 
-    priority = -1
-
     def runTest(self):
         logging.info("Running " + str(self))
         flow_caps_common(self, is_exact=False)
diff --git a/tests/cxn.py b/tests/cxn.py
index 5718c66..4b3ee59 100644
--- a/tests/cxn.py
+++ b/tests/cxn.py
@@ -19,12 +19,12 @@
 
 from oftest.testutils import *
 
+@disabled
 class BaseHandshake(unittest.TestCase):
     """
     Base handshake case to set up controller, but do not send hello.
     """
 
-    priority = -1
     controllers = []
     default_timeout = 2
 
@@ -100,13 +100,12 @@
         self.assertTrue(self.controllers[0].wait_disconnected(timeout=10),
                         "Not notified of controller disconnect")
 
+@disabled
 class CompleteHandshake(BaseHandshake):
     """
     Set up multiple controllers and complete handshake, but otherwise do nothing.
     """
 
-    priority = -1
-
     def buildControllerList(self):                                             
         # controller_list is a list of IP:port tuples
         con_list = test_param_get('controller_list')
@@ -247,34 +246,31 @@
                break
             time.sleep(tick)
 
+@disabled
 class HandshakeAndKeepalive(CompleteHandshake):
     """
     Complete handshake and respond to echo request, but otherwise do nothing.
     Good for manual testing.
     """
 
-    priority = -1
-
     def __init__(self):
        CompleteHandshake.__init__(self, keep_alive=True)
 
+@disabled
 class HandshakeNoEcho(CompleteHandshake):
     """
     Complete handshake, but otherwise do nothing, and do not respond to echo.
     """
 
-    priority = -1
-
     def __init__(self):
        CompleteHandshake.__init__(self, keep_alive=False)
 
+@disabled
 class HandshakeAndDrop(CompleteHandshake):
     """
     Complete handshake, but otherwise do nothing, and drop connection after a while.
     """
 
-    priority = -1
-
     def __init__(self):
        CompleteHandshake.__init__(self, keep_alive=True, controller_timeout=10)
 
diff --git a/tests/flow_query.py b/tests/flow_query.py
index 13c82c3..2ff8083 100644
--- a/tests/flow_query.py
+++ b/tests/flow_query.py
@@ -1665,6 +1665,7 @@
 # Disabled.
 # Should be DUT dependent.
 
+@nonstandard
 class Flow_Add_5_1(base_tests.SimpleProtocol):
     """
     Test FLOW_ADD_5.1 from draft top-half test plan
@@ -1673,8 +1674,6 @@
     None
     """
 
-    priority = -1
-    
     def runTest(self):
         logging.info("Flow_Add_5_1 TEST BEGIN")
 
@@ -1783,6 +1782,7 @@
 # Disabled because of bogus capacity reported by OVS.
 # Should be DUT dependent.
 
+@nonstandard
 class Flow_Add_6(base_tests.SimpleProtocol):
     """
     Test FLOW_ADD_6 from draft top-half test plan
@@ -1791,8 +1791,6 @@
     num_flows - Number of flows to generate
     """
 
-    priority = -1
-
     def runTest(self):
         logging.info("Flow_Add_6 TEST BEGIN")
 
diff --git a/tests/load.py b/tests/load.py
index 6c8bda4..ecd565b 100644
--- a/tests/load.py
+++ b/tests/load.py
@@ -30,6 +30,7 @@
 
 from oftest.testutils import *
 
+@nonstandard
 class LoadBarrier(base_tests.SimpleProtocol):
     """
     Test barrier under load with loopback
@@ -44,8 +45,6 @@
     the test fails.
     """
 
-    priority = -1
-
     def runTest(self):
         # Set up flow to send from port 1 to port 2 and copy to CPU
         # Test parameter gives LB port base (assumes consecutive)
diff --git a/tests/message_types.py b/tests/message_types.py
index 2beaaab..c13bfae 100644
--- a/tests/message_types.py
+++ b/tests/message_types.py
@@ -503,14 +503,12 @@
         self.assertEqual(response.in_port,of_ports[0],"PacketIn in_port or recieved port field is incorrect")
 
 
-
+@nonstandard
 class PortStatusMessage(base_tests.SimpleDataPlane):
 
     """Verify Port Status Messages are sent to the controller 
     whenever physical ports are added, modified or deleted"""
 
-    priority = -1
-    
     def runTest(self):
         
         logging.info("Running PortStatusMessage Test")
diff --git a/tests/nicira_role.py b/tests/nicira_role.py
index a8ac8cf..fa4cc97 100644
--- a/tests/nicira_role.py
+++ b/tests/nicira_role.py
@@ -19,13 +19,12 @@
 
 NXT_ROLE_VALUE = dict( other=0, slave=1, master=2 )
 
+@nonstandard
 class NiciraRoleRequest(base_tests.SimpleDataPlane):
     """
     Exercise Nicira vendor extension for requesting HA roles
     """
 
-    priority = 0
-
     def nicira_role_request(self, role):
         """
         Use the BSN_SET_IP_MASK vendor command to change the IP mask for the
diff --git a/tests/pktact.py b/tests/pktact.py
index dff4420..0b04c56 100644
--- a/tests/pktact.py
+++ b/tests/pktact.py
@@ -960,13 +960,12 @@
         vid = test_param_get('vid', default=TEST_VID_DEFAULT)
         flow_match_test(self, config["port_map"], dl_vlan=vid)
 
+@disabled
 class ExactMatchTaggedMany(BaseMatchCase):
     """
     ExactMatchTagged with many VLANS
     """
 
-    priority = -1
-
     def runTest(self):
         for vid in range(2,100,10):
             flow_match_test(self, config["port_map"], dl_vlan=vid, max_test=5)
@@ -1293,13 +1292,12 @@
         flow_match_test(self, config["port_map"], pkt=pkt, 
                         exp_pkt=exp_pkt, action_list=[vid_act])
 
+@disabled
 class PacketOnly(base_tests.DataPlaneOnly):
     """
     Just send a packet thru the switch
     """
 
-    priority = -1
-
     def runTest(self):
         pkt = simple_tcp_packet()
         of_ports = config["port_map"].keys()
@@ -1309,13 +1307,12 @@
         logging.debug("Data: " + str(pkt).encode('hex'))
         self.dataplane.send(ing_port, str(pkt))
 
+@disabled
 class PacketOnlyTagged(base_tests.DataPlaneOnly):
     """
     Just send a packet thru the switch
     """
 
-    priority = -1
-
     def runTest(self):
         vid = test_param_get('vid', default=TEST_VID_DEFAULT)
         pkt = simple_tcp_packet(dl_vlan_enable=True, dl_vlan=vid)
@@ -1867,6 +1864,7 @@
     ModifyL2SrcDstMC
     ]
 
+@disabled
 class IterCases(BaseMatchCase):
     """
     Iterate over a bunch of test cases
@@ -1874,8 +1872,6 @@
     The cases come from the list above
     """
 
-    priority = -1
-
     def runTest(self):
         count = test_param_get('iter_count', default=10)
         tests_done = 0
@@ -1911,6 +1907,7 @@
 # and modifies tag 4 to tag 5.  Then verify (in addition) that
 # tag 6 does not get modified.
 
+@disabled
 class MixedVLAN(BaseMatchCase):
     """
     Test mixture of VLAN tag actions
@@ -1934,8 +1931,6 @@
     If only VID 5 distinguishes pkt, this will fail on some platforms
     """   
 
-    priority = -1
-
 class MatchEach(base_tests.SimpleDataPlane):
     """
     Check that each match field is actually matched on.
