diff --git a/nal/test/nal7.15.nal b/nal/test/nal7.15.nal
index 002d0a478f07301d4d4bab5ef27a5d91c8a4f02f..ebc174cea286b0aac367eaddbd93ddb0a0268505 100644
--- a/nal/test/nal7.15.nal
+++ b/nal/test/nal7.15.nal
@@ -1,5 +1,5 @@
 '********** temporal analogy
-  IN: <<(*, $x, door_101) --> open> =/> <(*, $x, room_101) --> enter>>. %0.95%
-  IN: <<(*, $x, room_101) --> enter> <=> <(*, $x, corridor_100) --> leave>>.
+<<(*, $x, door_101) --> open> =/> <(*, $x, room_101) --> enter>>. %0.95%
+<<(*, $x, room_101) --> enter> <|> <(*, $x, corridor_100) --> leave>>.
 40
-''outputMustContain('<<door_101 --> (/,open,$1,_)> =/> <(*,$1,corridor_100) --> leave>>. %0.95;0.81%')
+''outputMustContain('<<(*,$1,door_101) --> open> =/> <(*,$1,corridor_100) --> leave>>. %0.95;0.81%')
diff --git a/nal/test/nal7.18.nal b/nal/test/nal7.18.nal
index 9f313f37e27a92244af1f20105635311af75202a..da3c1fa608fd8769b3750a883e71945235269409 100644
--- a/nal/test/nal7.18.nal
+++ b/nal/test/nal7.18.nal
@@ -1,6 +1,6 @@
 '********** inference on tense
-  IN: <(&/,<(*, $x, key_101) --> hold>,+1) =/> <(*, $x, room_101) --> enter>>.
-  IN: <(*, John, key_101) --> hold>. :\:
+<(&/,<(*, $x, key_101) --> hold>,+1) =/> <(*, $x, room_101) --> enter>>.
+<(*, John, key_101) --> hold>. :\:
 210
 ''outputMustContain('<(*,John,room_101) --> enter>. :\: %1.00;0.81%')
 
diff --git a/nal/test/nal7.19.nal b/nal/test/nal7.19.nal
index d2d9a77e7ba2fba22023b6ac80c2c9f753e199db..a222e18ef3808ddf3611ea4c6d1ee105e8d0d7a1 100644
--- a/nal/test/nal7.19.nal
+++ b/nal/test/nal7.19.nal
@@ -1,5 +1,5 @@
 '********** inference on tense
-  IN: <(&/,<(*, $x, key_101) --> hold>,+1) =/> <(*, $x, room_101) --> enter>>.
-  IN: <(*,John,room_101) --> enter>. :|:
+<(&/,<(*, $x, key_101) --> hold>,+1) =/> <(*, $x, room_101) --> enter>>.
+<(*,John,room_101) --> enter>. :|:
 15
 ''outputMustContain('<(*,John,key_101) --> hold>. :\: %1.00;0.45%')
diff --git a/nal/test/nal7.2.nal b/nal/test/nal7.2.nal
index fcc3bc4d4acb4595673246779e3e52777e8d7359..517e799bb76511877bae1699c42bf9db73c4e69f 100644
--- a/nal/test/nal7.2.nal
+++ b/nal/test/nal7.2.nal
@@ -1,8 +1,8 @@
 '********** inference on tense 
 
-  IN: <<(*,John,key_101) --> hold> =/> <(*,John,room_101) --> enter>>. 
+<<(*,John,key_101) --> hold> =/> <(*,John,room_101) --> enter>>. 
 
-  IN: <(*,John,key_101) --> hold>. :|:
+<(*,John,key_101) --> hold>. :|:
   
 20
 
diff --git a/nars_core/nars/inference/CompositionalRules.java b/nars_core/nars/inference/CompositionalRules.java
index 64858e97dea36219a2e179af482a452181bd1fab..5110b15df16f2123236a4ab06405484119fd3578 100644
--- a/nars_core/nars/inference/CompositionalRules.java
+++ b/nars_core/nars/inference/CompositionalRules.java
@@ -297,7 +297,7 @@ public final class CompositionalRules {
         if (isTemporalConjunction && (compound.getTemporalOrder() == TemporalRules.ORDER_FORWARD) && (index != 0)) {
             return;
         }
-        long occurrence_time = nal.getTheNewStamp().getOccurrenceTime();
+        long occurrence_time = nal.getCurrentTask().sentence.getOccurenceTime();
         if(isTemporalConjunction && (compound.getTemporalOrder() == TemporalRules.ORDER_FORWARD)) {
             if(!nal.getCurrentTask().sentence.isEternal() && compound.term[index + 1] instanceof Interval) {
                 long shift_occurrence = ((Interval)compound.term[index + 1]).time;
diff --git a/nars_core/nars/inference/RuleTables.java b/nars_core/nars/inference/RuleTables.java
index a896c74e1996605e47194fa435b6d4da2c64ff89..1506bc69340b56a969d890048bb6c5b285ee5ac1 100644
--- a/nars_core/nars/inference/RuleTables.java
+++ b/nars_core/nars/inference/RuleTables.java
@@ -833,8 +833,7 @@ public class RuleTables {
                             || compound instanceof Conjunction || compound instanceof Disjunction)) {
                         StructuralRules.structuralCompose2(compound, index, statement, side, nal);
                     }    // {A --> B, A @ (A&C)} |- (A&C) --> (B&C)
-                } else if (!(compound instanceof SetExt || compound instanceof SetInt || compound instanceof Negation
-                            || compound instanceof Conjunction || compound instanceof Disjunction)) {
+                } else if (!(compound instanceof Negation || compound instanceof Conjunction || compound instanceof Disjunction)) {
                     StructuralRules.structuralCompose2(compound, index, statement, side, nal);
                 }       // {A <-> B, A @ (A&C)} |- (A&C) <-> (B&C)
             }
diff --git a/nars_core/nars/inference/SyllogisticRules.java b/nars_core/nars/inference/SyllogisticRules.java
index 33bdb7bf5aca6446144d0ee51118c05ea20d787a..2f1ba89cb263d81585cd0dc6469ae1cb7df61538 100644
--- a/nars_core/nars/inference/SyllogisticRules.java
+++ b/nars_core/nars/inference/SyllogisticRules.java
@@ -181,13 +181,13 @@ public final class SyllogisticRules {
             return true; //no need for other syllogistic inference, it were sensational terms,
         }           //but it would not hurt to allow it either.. but why afford tasks that summarize
                     //so little evidence in comparison to the amount summarized by the array comparison.
-        long occurrence_time2 = nal.getTheNewStamp().getOccurrenceTime();
+        long occurrence_time2 = nal.getCurrentTask().sentence.getOccurenceTime();
         while (occurrence_time2!=Stamp.ETERNAL && (term2 instanceof Conjunction) && (((CompoundTerm) term2).term[0] instanceof Interval)) {
             Interval interval = (Interval) ((CompoundTerm) term2).term[0];
             occurrence_time2 += interval.time;
             term2 = ((CompoundTerm)term2).setComponent(0, null, nal.mem());
         }
-        long occurrence_time1 = nal.getTheNewStamp().getOccurrenceTime();
+        long occurrence_time1 = nal.getCurrentTask().sentence.getOccurenceTime();
         while (occurrence_time1!=Stamp.ETERNAL && (term1 instanceof Conjunction) && (((CompoundTerm) term1).term[0] instanceof Interval)) {
             Interval interval = (Interval) ((CompoundTerm) term1).term[0];
             occurrence_time1 += interval.time;
@@ -431,14 +431,13 @@ public final class SyllogisticRules {
             return;
         
         int order = statement.getTemporalOrder();
-        long occurrence_time = nal.getTheNewStamp().getOccurrenceTime();
+        long occurrence_time = nal.getCurrentTask().sentence.getOccurenceTime();
         if ((order != ORDER_NONE) && (order!=ORDER_INVALID)) {
             long baseTime = subSentence.getOccurenceTime(); 
-            if (baseTime == Stamp.ETERNAL) { // =/> always should produce events
-                baseTime = nal.getTime();
+            if (baseTime != Stamp.ETERNAL) {
+                long inc = order * Parameters.DURATION;
+                occurrence_time = (side == 0) ? baseTime+inc : baseTime-inc;
             }
-            long inc = order * Parameters.DURATION;
-            occurrence_time = (side == 0) ? baseTime+inc : baseTime-inc;
         }
 
         TruthValue beliefTruth = beliefSentence.truth;
@@ -608,7 +607,7 @@ public final class SyllogisticRules {
         if (content == null)
             return;        
         
-        long occurrence_time = nal.getTheNewStamp().getOccurrenceTime();
+        long occurrence_time = nal.getCurrentTask().sentence.getOccurenceTime();
         if (delta != 0) {
             long baseTime = taskSentence.getOccurenceTime();
             if (baseTime != Stamp.ETERNAL) {