diff --git a/include/clang/Analysis/PathSensitive/MemRegion.h b/include/clang/Analysis/PathSensitive/MemRegion.h
index 287dd09..e2f1537 100644
--- a/include/clang/Analysis/PathSensitive/MemRegion.h
+++ b/include/clang/Analysis/PathSensitive/MemRegion.h
@@ -189,6 +189,9 @@
                             const MemRegion* superRegion);
 
 public:
+
+  const StringLiteral* getStringLiteral() const { return Str; }
+
   QualType getType(ASTContext& C) const {
     return C.getCanonicalType(Str->getType());
   }
diff --git a/include/clang/Analysis/PathSensitive/SVals.h b/include/clang/Analysis/PathSensitive/SVals.h
index 16322f1..0bacc86 100644
--- a/include/clang/Analysis/PathSensitive/SVals.h
+++ b/include/clang/Analysis/PathSensitive/SVals.h
@@ -170,6 +170,10 @@
   void print(llvm::raw_ostream& Out) const;
   
   // Utility methods to create NonLocs.
+
+  static NonLoc MakeVal(BasicValueFactory& BasicVals, unsigned X, 
+                        bool isUnsigned);
+
   static NonLoc MakeVal(BasicValueFactory& BasicVals, uint64_t X, QualType T);
   
   static NonLoc MakeVal(BasicValueFactory& BasicVals, IntegerLiteral* I);
diff --git a/lib/Analysis/RegionStore.cpp b/lib/Analysis/RegionStore.cpp
index 05d311d..cdc8b27 100644
--- a/lib/Analysis/RegionStore.cpp
+++ b/lib/Analysis/RegionStore.cpp
@@ -272,9 +272,8 @@
   }
 
   if (const StringRegion* SR = dyn_cast<StringRegion>(R)) {
-    // FIXME: Unsupported yet.
-    SR = 0;
-    return UnknownVal();
+    const StringLiteral* Str = SR->getStringLiteral();
+    return NonLoc::MakeVal(getBasicVals(), Str->getByteLength(), false);
   }
 
   if (const AnonTypedRegion* ATR = dyn_cast<AnonTypedRegion>(R)) {
diff --git a/lib/Analysis/SVals.cpp b/lib/Analysis/SVals.cpp
index 764a05f..0210729 100644
--- a/lib/Analysis/SVals.cpp
+++ b/lib/Analysis/SVals.cpp
@@ -242,6 +242,11 @@
 //===----------------------------------------------------------------------===//
 // Utility methods for constructing Non-Locs.
 //===----------------------------------------------------------------------===//
+NonLoc NonLoc::MakeVal(BasicValueFactory& BasicVals, unsigned X, 
+                       bool isUnsigned) {
+  return nonloc::ConcreteInt(BasicVals.getValue(X, sizeof(unsigned)*8, 
+                                                isUnsigned));
+}
 
 NonLoc NonLoc::MakeVal(BasicValueFactory& BasicVals, uint64_t X, QualType T) {  
   return nonloc::ConcreteInt(BasicVals.getValue(X, T));
