diff --git a/mode/sas/sas.js b/mode/sas/sas.js
index e88744be277f87d0b5c9608a4c25f923c0292dc4..9ec22d5fa5e05a5b13b42b2d2a9130266518f409 100755
--- a/mode/sas/sas.js
+++ b/mode/sas/sas.js
@@ -137,11 +137,13 @@
           stream.next();
           return 'comment';
         }
-      } else if (ch === '"' || ch === "'") {
-        state.continueString = state.continueString == ch ? null : ch
+      } else if ((ch === '"' || ch === "'") && !state.continueString) {
+        state.continueString = ch
         return "string"
-      } else if (state.continueString !== null) {
-        if (stream.skipTo(state.continueString)) {
+      } else if (state.continueString) {
+        if (state.continueString == ch) {
+          state.continueString = null;
+        } else if (stream.skipTo(state.continueString)) {
           // quote found on this line
           stream.next();
           state.continueString = null;