diff --git a/lib/Checker/OSAtomicChecker.cpp b/lib/Checker/OSAtomicChecker.cpp
index 7f4aeca..ac5f300 100644
--- a/lib/Checker/OSAtomicChecker.cpp
+++ b/lib/Checker/OSAtomicChecker.cpp
@@ -38,7 +38,7 @@
 bool OSAtomicChecker::EvalCallExpr(CheckerContext &C,const CallExpr *CE) {
   const GRState *state = C.getState();
   const Expr *Callee = CE->getCallee();
-  SVal L = state->getSVal(Callee);
+  SVal L = state->getExprVal(Callee);
 
   const FunctionDecl* FD = L.getAsFunctionDecl();
   if (!FD)
@@ -100,7 +100,7 @@
   GRExprEngine &Engine = C.getEngine();
   const GRState *state = C.getState();
   ExplodedNodeSet Tmp;
-  SVal location = state->getSVal(theValueExpr);
+  SVal location = state->getExprVal(theValueExpr);
   // Here we should use the value type of the region as the load type.
   QualType LoadTy;
   if (const TypedRegion *TR =
@@ -124,8 +124,8 @@
 
     ExplodedNode *N = *I;
     const GRState *stateLoad = N->getState();
-    SVal theValueVal_untested = stateLoad->getSVal(theValueExpr);
-    SVal oldValueVal_untested = stateLoad->getSVal(oldValueExpr);
+    SVal theValueVal_untested = stateLoad->getExprVal(theValueExpr);
+    SVal oldValueVal_untested = stateLoad->getExprVal(oldValueExpr);
 
     // FIXME: Issue an error.
     if (theValueVal_untested.isUndef() || oldValueVal_untested.isUndef()) {
@@ -148,7 +148,7 @@
     if (stateEqual) {
       // Perform the store.
       ExplodedNodeSet TmpStore;
-      SVal val = stateEqual->getSVal(newValueExpr);
+      SVal val = stateEqual->getExprVal(newValueExpr);
 
       // Handle implicit value casts.
       if (const TypedRegion *R =
