diff --git a/nars_core_java/nars/storage/Memory.java b/nars_core_java/nars/storage/Memory.java
index 83c8986f78a2f0f28ebc4ba8063f22c1b728e13e..5e561c47148118ae7f6ef2eef6f1b3987628eba9 100644
--- a/nars_core_java/nars/storage/Memory.java
+++ b/nars_core_java/nars/storage/Memory.java
@@ -317,7 +317,7 @@ public class Memory {
             }
             Stamp stamp = task.getSentence().getStamp();
             ArrayList<Term> chain = stamp.getChain();
-            if (currentBelief != null) {
+            if (currentBelief != null && currentBelief.isJudgment()) {
                 if(chain.contains(currentBelief.getContent())) {
                     chain.remove(currentBelief.getContent());
                 }
@@ -325,14 +325,14 @@ public class Memory {
                 
             }
             //workaround for single premise task issue:
-            if(currentBelief == null && single && currentTask != null) {
+            if(currentBelief == null && single && currentTask != null && currentTask.getSentence().isJudgment()) {
                 if(chain.contains(currentTask.getContent())) {
                     chain.remove(currentTask.getContent());
                 }
                 stamp.addToChain(currentTask.getContent());
             }
             //end workaround
-            if (currentTask != null && !single) {
+            if (currentTask != null && !single && currentTask.getSentence().isJudgment()) {
                 if(chain.contains(currentTask.getContent())) {
                     chain.remove(currentTask.getContent());
                 }
@@ -340,7 +340,7 @@ public class Memory {
             }
             if (!revised) { //its a inference rule, we have to do the derivation chain check to hamper cycles
                 for (Term chain1 : chain) {
-                    if (task.getContent() == chain1) {
+                    if (task.getSentence().isJudgment() && task.getContent().equals(chain1)) {
                         recorder.append("!!! Cyclic Reasoning detected: " + task + "\n");
                         return;
                     }