diff --git a/safecode/lib/InsertPoolChecks/insert.cpp b/safecode/lib/InsertPoolChecks/insert.cpp
index b7aaf7c..bf6b49a 100755
--- a/safecode/lib/InsertPoolChecks/insert.cpp
+++ b/safecode/lib/InsertPoolChecks/insert.cpp
@@ -147,6 +147,20 @@
 // Static Functions
 ////////////////////////////////////////////////////////////////////////////
 
+static inline bool
+isNodeRegistered (DSNode * Node) {
+  // Do not perform checks on the pointer if its DSNode does not have a known
+  // allocation site.
+  if (!((Node->isAllocaNode()) ||
+        (Node->isHeapNode())   ||
+        (Node->isGlobalNode()))) {
+    ++NoSHGBoundsChecks;
+    return false;
+  }
+
+  return true;
+}
+
 //Do not replace these with check results
 static std::set<Value*> AddedValues;
 
@@ -918,6 +932,10 @@
   // If there is no DSNode, do not perform a check
   if (!Node) return Dest;
 
+  // If we do not know the allocation site, don't bother checking it
+  if (!(isNodeRegistered (Node)))
+    return Dest;
+
   // Record statistics on the incomplete checks we do.  Note that a node may
   // be counted more than once.
   if (Node->isIncomplete())
@@ -2832,6 +2850,7 @@
           // Now check if the GEP is inside a loop with monotonically increasing
           //loop bounds
           //We use the LoopInfo Pass this
+#if 0
           Loop *L = LI->getLoopFor(MAI->getParent());
           bool monotonicOpt = false;
           if (L && (MAI->getNumOperands() == 2)) {
@@ -2886,6 +2905,7 @@
             Instruction *nextIns = MAI->getNext();
             insertBoundsCheck (MAI, MAI->getPointerOperand(), MAI, nextIns);
           }
+#endif
         }
       }
     } else {
@@ -3285,6 +3305,12 @@
     return;
 
   //
+  // If the node is not registered, don't bother to check it.
+  //
+  if (!(isNodeRegistered (Node)))
+    return;
+
+  //
   // We will perform checks on incomplete or unknown nodes, but we must accept
   // the possibility that the object will not be found.
   //
