diff --git a/common/lib/azure/storage/common/client_options.rb b/common/lib/azure/storage/common/client_options.rb
index ff2bf01bff0ea167fcd256d1e0df3f214e40bc1f..cb7683006d538b161aebdbb96bcccf0f19b419a0 100644
--- a/common/lib/azure/storage/common/client_options.rb
+++ b/common/lib/azure/storage/common/client_options.rb
@@ -347,7 +347,7 @@ module Azure::Storage::Common
       def parse_connection_string(connection_string)
         opts = {}
         connection_string.split(";").each do |i|
-          e = i.index("=")
+          e = i.index("=") || -1
           raise InvalidConnectionStringError, Azure::Storage::Common::Core::SR::INVALID_CONNECTION_STRING if e < 0 || e == i.length - 1
           key, value = i[0..e - 1], i[e + 1..i.length - 1]
           raise InvalidConnectionStringError, Azure::Storage::Common::Core::SR::INVALID_CONNECTION_STRING_BAD_KEY % key unless ClientOptions.connection_string_mapping.key? key
diff --git a/test/unit/blob/blob_service_test.rb b/test/unit/blob/blob_service_test.rb
index a625b7da3b0346a5540ab223725da6a572eda7f0..860fd74d58b78153b7fefaff621d18bb0a0b1a5c 100644
--- a/test/unit/blob/blob_service_test.rb
+++ b/test/unit/blob/blob_service_test.rb
@@ -47,6 +47,16 @@ describe Azure::Storage::Blob::BlobService do
     subject.stubs(:call).returns(response)
   }
 
+  describe "#create_from_connection_string" do
+    let(:service) { Azure::Storage::Blob::BlobService }
+
+    it "returns nil for a valid connection string" do
+      assert_raises(Azure::Storage::Common::InvalidConnectionStringError) {
+        Azure::Storage::Blob::BlobService.create_from_connection_string("invalid")
+      }
+    end
+  end
+
   describe "#get_user_delegation_key" do
     let(:response_body) {
       '<?xml version="1.0" encoding="utf-8"?>