diff --git a/lib/Analysis/DataStructure/DSCallSiteIterator.h b/lib/Analysis/DataStructure/DSCallSiteIterator.h
index 4815c6e..324111c 100644
--- a/lib/Analysis/DataStructure/DSCallSiteIterator.h
+++ b/lib/Analysis/DataStructure/DSCallSiteIterator.h
@@ -39,8 +39,7 @@
     return F->getName() == "printf"  || F->getName() == "sscanf" ||
       F->getName() == "fprintf" || F->getName() == "open" ||
       F->getName() == "sprintf" || F->getName() == "fputs" ||
-      F->getName() == "fscanf" || F->getName() == "bzero" ||
-      F->getName() == "memset";
+      F->getName() == "fscanf";
   }
 
   // isUnresolvableFunction - Return true if this is an unresolvable
diff --git a/lib/Analysis/DataStructure/Local.cpp b/lib/Analysis/DataStructure/Local.cpp
index 689373e..f3406b7 100644
--- a/lib/Analysis/DataStructure/Local.cpp
+++ b/lib/Analysis/DataStructure/Local.cpp
@@ -435,8 +435,22 @@
       } else if (F->getName() == "realloc") {
         DSNodeHandle RetNH = getValueDest(*CS.getInstruction());
         RetNH.mergeWith(getValueDest(**CS.arg_begin()));
-        DSNode *N = RetNH.getNode();
-        if (N) N->setHeapNodeMarker()->setModifiedMarker()->setReadMarker();
+        if (DSNode *N = RetNH.getNode())
+          N->setHeapNodeMarker()->setModifiedMarker()->setReadMarker();
+        return;
+      } else if (F->getName() == "memset") {
+        // Merge the first argument with the return value, and mark the memory
+        // modified.
+        DSNodeHandle RetNH = getValueDest(*CS.getInstruction());
+        RetNH.mergeWith(getValueDest(**CS.arg_begin()));
+        if (DSNode *N = RetNH.getNode())
+          N->setModifiedMarker();
+        return;
+      } else if (F->getName() == "bzero") {
+        // Mark the memory modified.
+        DSNodeHandle H = getValueDest(**CS.arg_begin());
+        if (DSNode *N = H.getNode())
+          N->setModifiedMarker();
         return;
       }
 
