diff --git a/update_settings.sh b/update_settings.sh
index 8f4e0ff..491a99b 100755
--- a/update_settings.sh
+++ b/update_settings.sh
@@ -1,9 +1,49 @@
-REPLACEMENT="s/'default': true/'default': false/"
+DEFAULT_TRUE="'default': true"
+DEFAULT_FALSE="'default': false"
+TELEMETRY_ENABLE="'telemetry.enableTelemetry':"
+TELEMETRY_CRASH_REPORTER="'telemetry.enableCrashReporter':"
 
-if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
-  sed -i '' -E "$REPLACEMENT" src/vs/platform/telemetry/common/telemetryService.ts
-  sed -i '' -E "$REPLACEMENT" src/vs/workbench/services/crashReporter/electron-browser/crashReporterService.ts
-else
-  sed -i -E "$REPLACEMENT" src/vs/platform/telemetry/common/telemetryService.ts
-  sed -i -E "$REPLACEMENT" src/vs/workbench/services/crashReporter/electron-browser/crashReporterService.ts
-fi
\ No newline at end of file
+replace () {
+  echo $1
+  if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
+    sed -i '' -E "$1" $2
+  else
+    sed -i -E "$1" $2
+  fi
+}
+
+update_setting () {
+  local FILENAME="$2"
+  # check that the file exists
+  if [ ! -f $FILENAME ]; then
+    echo "File to update setting in does not exist ${FILENAME}"
+    return
+  fi
+
+  # go through lines of file, looking for block that contains setting
+  local SETTING="$1"
+  local LINE_NUM=0
+  while read -r line; do
+    local LINE_NUM=$(( $LINE_NUM + 1 ))
+    if [[ $line == *"$SETTING"* ]]; then
+      local IN_SETTING=1
+    fi
+    if [[ $line == *"$DEFAULT_TRUE"* && "$IN_SETTING" == "1" ]]; then
+      local FOUND=1
+      break
+    fi
+  done < $FILENAME
+
+  if [[ "$FOUND" != "1" ]]; then
+    echo "$DEFAULT_TRUE not found for setting $SETTING in file $FILENAME"
+    return
+  fi
+
+  # construct line-aware replacement string
+  local DEFAULT_TRUE_TO_FALSE="${LINE_NUM}s/${DEFAULT_TRUE}/${DEFAULT_FALSE}/"
+
+  replace "$DEFAULT_TRUE_TO_FALSE" $FILENAME
+}
+
+update_setting "$TELEMETRY_ENABLE" src/vs/platform/telemetry/common/telemetryService.ts
+update_setting "$TELEMETRY_CRASH_REPORTER" src/vs/workbench/electron-browser/main.contribution.ts