diff --git a/nodes.py b/nodes.py
index 016e237462c1d0e39afdc1e1de0eb49a03265bfa_bm9kZXMucHk=..7d3056ce37d78decc40c1b236ed6d9708e320f4e_bm9kZXMucHk= 100644
--- a/nodes.py
+++ b/nodes.py
@@ -287,10 +287,10 @@
     def __repr__(self):
         return '%s AND %s' % (repr(self.children[0]), repr(self.children[1]))
     
-    def ored_rel(self, _fromnode=None):
-        return self.parent.ored_rel(_fromnode or self)
-    def neged_rel(self, _fromnode=None):
-        return self.parent.neged_rel(_fromnode or self)
+    def ored(self, _fromnode=None):
+        return self.parent.ored(_fromnode or self)
+    def neged(self, _fromnode=None):
+        return self.parent.neged(_fromnode or self)
 
     
 class Or(BinaryNode):
@@ -304,5 +304,5 @@
     def __repr__(self):
         return '%s OR %s' % (repr(self.children[0]), repr(self.children[1]))
     
-    def ored_rel(self, _fromnode=None):
+    def ored(self, _fromnode=None):
         return self
@@ -308,6 +308,6 @@
         return self
-    def neged_rel(self, _fromnode=None):
-        return self.parent.neged_rel(_fromnode or self)
+    def neged(self, _fromnode=None):
+        return self.parent.neged(_fromnode or self)
 
 
 class Not(Node):
@@ -322,9 +322,9 @@
     def __repr__(self, encoding=None, kwargs=None):
         return 'NOT (%s)' % repr(self.children[0])
     
-    def ored_rel(self, _fromnode=None):
-        return self.parent.ored_rel(_fromnode or self)
-    def neged_rel(self, _fromnode=None):
+    def ored(self, _fromnode=None):
+        return self.parent.ored(_fromnode or self)
+    def neged(self, _fromnode=None):
         return self
 
 
@@ -371,6 +371,6 @@
     def scope(self):
         return self
     
-    def ored_rel(self, _fromnode=None):
-        if _fromnode: # stop here
+    def ored(self, _fromnode=None):
+        if _fromnode is not None: # stop here
             return False
@@ -376,5 +376,5 @@
             return False
-        return self.parent.ored_rel(_fromnode or self)
-    def neged_rel(self, _fromnode=None):
-        if _fromnode: # stop here
+        return self.parent.ored(self)
+    def neged(self, _fromnode=None, strict=False):
+        if _fromnode is not None: # stop here
             return False
@@ -380,5 +380,7 @@
             return False
-        return self.parent.neged_rel(_fromnode or self)
+        if strict:
+            return isinstance(self.parent, Not)
+        return self.parent.neged(self)
 
     
 class Relation(Node):
@@ -439,8 +441,8 @@
         """return the parent relation where self occurs or None"""
         return self
     
-    def ored_rel(self, _fromnode=None):
-        return self.parent.ored_rel(_fromnode or self)
-    def neged_rel(self, _fromnode=None, strict=False):
+    def ored(self, _fromnode=None):
+        return self.parent.ored(_fromnode or self)
+    def neged(self, _fromnode=None, strict=False):
         if strict:
             return isinstance(self.parent, Not)
@@ -445,6 +447,6 @@
         if strict:
             return isinstance(self.parent, Not)
-        return self.parent.neged_rel(_fromnode or self)
+        return self.parent.neged(_fromnode or self)
 
     def is_types_restriction(self):
         if self.r_type != 'is':
diff --git a/stcheck.py b/stcheck.py
index 016e237462c1d0e39afdc1e1de0eb49a03265bfa_c3RjaGVjay5weQ==..7d3056ce37d78decc40c1b236ed6d9708e320f4e_c3RjaGVjay5weQ== 100644
--- a/stcheck.py
+++ b/stcheck.py
@@ -193,7 +193,7 @@
         pass
     
     def visit_relation(self, relation, errors):
-        if relation.optional and relation.neged_rel():
+        if relation.optional and relation.neged():
                 errors.append("can use optional relation under NOT (%s)"
                               % relation.as_string())
         # special case "X identity Y"
diff --git a/stmts.py b/stmts.py
index 016e237462c1d0e39afdc1e1de0eb49a03265bfa_c3RtdHMucHk=..7d3056ce37d78decc40c1b236ed6d9708e320f4e_c3RtdHMucHk= 100644
--- a/stmts.py
+++ b/stmts.py
@@ -131,5 +131,5 @@
     def scope(self):
         return self
     
-    def ored_rel(self, _fromnode=None):
+    def ored(self, _fromnode=None):
         return None
@@ -135,5 +135,5 @@
         return None
-    def neged_rel(self, _fromnode=None):
+    def neged(self, _fromnode=None, strict=False):
         return None
 
     def check_references(self):