diff --git a/include/llvm/Constant.h b/include/llvm/Constant.h
index 13b4cb3..4411540 100644
--- a/include/llvm/Constant.h
+++ b/include/llvm/Constant.h
@@ -93,8 +93,10 @@
   
   /// getStringValue - Turn an LLVM constant pointer that eventually points to a
   /// global into a string value.  Return an empty string if we can't do it.
+  /// Parameter Chop determines if the result is chopped at the first null
+  /// terminator.
   ///
-   std::string getStringValue(unsigned Offset = 0);
+  std::string getStringValue(bool Chop = true, unsigned Offset = 0);
 };
 
 } // End llvm namespace
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
index 96694da..f1afeb9 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
@@ -1941,7 +1941,7 @@
         if (G) {
           GlobalVariable *GV = dyn_cast<GlobalVariable>(G->getGlobal());
           if (GV) {
-            Str = GV->getStringValue();
+            Str = GV->getStringValue(false);
             if (!Str.empty()) {
               CopyFromStr = true;
               SrcOff += SrcDelta;
diff --git a/lib/VMCore/Constants.cpp b/lib/VMCore/Constants.cpp
index 1beb5bc..28ca2a4 100644
--- a/lib/VMCore/Constants.cpp
+++ b/lib/VMCore/Constants.cpp
@@ -1715,8 +1715,10 @@
 
 /// getStringValue - Turn an LLVM constant pointer that eventually points to a
 /// global into a string value.  Return an empty string if we can't do it.
+/// Parameter Chop determines if the result is chopped at the first null
+/// terminator.
 ///
-std::string Constant::getStringValue(unsigned Offset) {
+std::string Constant::getStringValue(bool Chop, unsigned Offset) {
   if (GlobalVariable *GV = dyn_cast<GlobalVariable>(this)) {
     if (GV->hasInitializer() && isa<ConstantArray>(GV->getInitializer())) {
       ConstantArray *Init = cast<ConstantArray>(GV->getInitializer());
@@ -1727,9 +1729,11 @@
           Result.erase(Result.begin(), Result.begin()+Offset);
 
           // Take off the null terminator, and any string fragments after it.
-          std::string::size_type NullPos = Result.find_first_of((char)0);
-          if (NullPos != std::string::npos)
-            Result.erase(Result.begin()+NullPos, Result.end());
+          if (Chop) {
+            std::string::size_type NullPos = Result.find_first_of((char)0);
+            if (NullPos != std::string::npos)
+              Result.erase(Result.begin()+NullPos, Result.end());
+          }
           return Result;
         }
       }
