diff --git a/exec/SlyEdit.js b/exec/SlyEdit.js
index 5870c9ea2288de0e9b6323b878a3542451504962..ad995c10864d0f4ffcb6ad65c4066c5627018550 100644
--- a/exec/SlyEdit.js
+++ b/exec/SlyEdit.js
@@ -38,6 +38,11 @@
  *                              list the text replacements will only work if
  *                              text replacements is enabled.
  *                              After some more testing, I decided to release 1.29 today.
+ * 2013-09-03 Eric Oulashin     Version 1.30
+ *                              Updated so that macro text replacements won't
+ *                              lowercase the replacement text when in literal
+ *                              match & replace mode.  It will now take the
+ *                              replacement text as-is.
  */
 
 /* Command-line arguments:
@@ -110,8 +115,8 @@ if (!console.term_supports(USER_ANSI))
 }
 
 // Constants
-const EDITOR_VERSION = "1.29";
-const EDITOR_VER_DATE = "2013-09-02";
+const EDITOR_VERSION = "1.30";
+const EDITOR_VER_DATE = "2013-09-03";
 
 
 // Program variables
diff --git a/exec/SlyEdit_Misc.js b/exec/SlyEdit_Misc.js
index 90e8b59355c557298da04989992b59cd63e70560..78449a5c17587a8a36924762f250829e9170fdbc 100644
--- a/exec/SlyEdit_Misc.js
+++ b/exec/SlyEdit_Misc.js
@@ -34,6 +34,16 @@
  *                              which are helpers for doMacroTxtReplacementInEditLine()
  *                              for checking & fixing first-letter capitalization
  *                              after doing a regex replace.
+ * 2013-09-03 Eric Oulashin     Updated populateTxtReplacements() so that it won't
+ *                              force the replacement text strings to lowercase
+ *                              when not using regular expressions.  Also made
+ *                              use of strip_ctrl() with the replacement text to
+ *                              prevent the use of color codes, which might mess
+ *                              up SlyEdit's tracking of string indexes, etc.
+ *                              Updated doMacroTxtReplacementInEditLine() so
+ *                              that macro text replacements won't lowercase the
+ *                              replacement text when in literal match & replace
+ *                              mode.
  *                              
  */
 
@@ -2320,10 +2330,9 @@ function populateTxtReplacements(pArray, pRegex)
 
          // Extract the word to search and substitution word from the line.  If
          // not using regular expressions, then convert the word to search to
-         // all uppercase (for case-insensitive searching) and the substitution
-         // word to all lowercase (to make sure it looks good).
+         // all uppercase for case-insensitive searching.
          wordToSearch = trimSpaces(fileLine.substr(0, equalsPos), true, false, true);
-         substWord = trimSpaces(fileLine.substr(equalsPos+1), true, false, true);
+         substWord = strip_ctrl(trimSpaces(fileLine.substr(equalsPos+1), true, false, true));
          // Make sure substWord only contains printable characters.  If not, then
          // skip this one.
          var substIsPrintable = true;
@@ -2344,7 +2353,6 @@ function populateTxtReplacements(pArray, pRegex)
          else
          {
             wordToSearch = wordToSearch.toUpperCase();
-            substWord = substWord.toLowerCase();
             if (wordToSearch != substWord.toUpperCase())
             {
                pArray[wordToSearch] = substWord;
@@ -2570,7 +2578,7 @@ function doMacroTxtReplacementInEditLine(pTxtReplacements, pEditLinesIndex, pCha
          wordObj.word = wordObj.word.toUpperCase();
          if (pTxtReplacements.hasOwnProperty(wordObj.word))
          {
-            txtReplacement = pTxtReplacements[wordObj.word].toLowerCase();
+            txtReplacement = pTxtReplacements[wordObj.word];
             retObj.madeTxtReplacement = true;
          }
       }