diff --git a/admin/auth_config.php b/admin/auth_config.php
index fe37991..a7c42d7 100644
--- a/admin/auth_config.php
+++ b/admin/auth_config.php
@@ -107,7 +107,7 @@ function print_auth_lock_options ($auth, $user_fields, $helptext, $retrieveopts,
 
     // helptext is on a field with rowspan
     if (empty($helptext)) {
-                $helptext = '&nbsp;';
+                $helptext = ' ';
     }
 
     foreach ($user_fields as $field) {
@@ -146,17 +146,17 @@ function print_auth_lock_options ($auth, $user_fields, $helptext, $retrieveopts,
 
             echo "<input id=\"lockconfig_{$varname}\" name=\"lockconfig_{$varname}\" type=\"text\" size=\"30\" value=\"{$pluginconfig->$varname}\" />";
             echo '<div style="text-align: right">';
-            echo '<label for="menulockconfig_field_updatelocal_'.$field.'">'.get_string('auth_updatelocal', 'auth') . '</label>&nbsp;';
+            echo '<label for="menulockconfig_field_updatelocal_'.$field.'">'.get_string('auth_updatelocal', 'auth') . '</label> ';
             echo $OUTPUT->select(html_select::make($updatelocaloptions, "lockconfig_field_updatelocal_{$field}", $pluginconfig->{"field_updatelocal_$field"}, false));
             echo '<br />';
             if ($updateopts) {
-                echo '<label for="menulockconfig_field_updateremote_'.$field.'">'.get_string('auth_updateremote', 'auth') . '</label>&nbsp;';
+                echo '<label for="menulockconfig_field_updateremote_'.$field.'">'.get_string('auth_updateremote', 'auth') . '</label> ';
                 echo $OUTPUT->select(html_select::make($updateextoptions, "lockconfig_field_updateremote_{$field}", $pluginconfig->{"field_updateremote_$field"}, false));
                 echo '<br />';
 
 
             }
-            echo '<label for="menulockconfig_field_lock_'.$field.'">'.get_string('auth_fieldlock', 'auth') . '</label>&nbsp;';
+            echo '<label for="menulockconfig_field_lock_'.$field.'">'.get_string('auth_fieldlock', 'auth') . '</label> ';
             echo $OUTPUT->select(html_select::make($lockoptions, "lockconfig_field_lock_{$field}", $pluginconfig->{"field_lock_$field"}, false));
             echo '</div>';
         } else {
diff --git a/admin/index.php b/admin/index.php
index 909bfe3..0a97a26 100644
--- a/admin/index.php
+++ b/admin/index.php
@@ -381,7 +381,7 @@ $lastcron = $DB->get_field_sql('SELECT MAX(lastcron) FROM {modules}');
 if (time() - $lastcron > 3600 * 24) {
     $strinstallation = get_string('installation', 'install');
     $helpbutton = $OUTPUT->help_icon(moodle_help_icon::make('install', $strinstallation));
-    echo $OUTPUT->box(get_string('cronwarning', 'admin').'&nbsp;'.$helpbutton, 'generalbox adminwarning');
+    echo $OUTPUT->box(get_string('cronwarning', 'admin').' '.$helpbutton, 'generalbox adminwarning');
 }
 
 // Print multilang upgrade notice if needed
@@ -405,7 +405,7 @@ if (!empty($CFG->maintenance_enabled)) {
 ////  IT IS ILLEGAL AND A VIOLATION OF THE GPL TO HIDE, REMOVE OR MODIFY THIS COPYRIGHT NOTICE ///
 $copyrighttext = '<a href="http://moodle.org/">Moodle</a> '.
                  '<a href="http://docs.moodle.org/en/Release" title="'.$CFG->version.'">'.$CFG->release.'</a><br />'.
-                 'Copyright &copy; 1999 onwards, Martin Dougiamas<br />'.
+                 'Copyright © 1999 onwards, Martin Dougiamas<br />'.
                  'and <a href="http://docs.moodle.org/en/Credits">many other contributors</a>.<br />'.
                  '<a href="http://docs.moodle.org/en/License">GNU Public License</a>';
 echo $OUTPUT->box($copyrighttext, 'copyright');
diff --git a/admin/lang.php b/admin/lang.php
index 1bb3f04..d939223 100644
--- a/admin/lang.php
+++ b/admin/lang.php
@@ -282,7 +282,7 @@
                     if ($first) {
                         $m .= "<a href=\"lang.php?mode=missing#$trfilename\">$trfilename";
                         $m .= $fileismissing ? '*' : '';
-                        $m .= '</a> &nbsp; ';
+                        $m .= '</a>   ';
                         $o .= "<p><a name=\"$trfilename\"></a><b>".
                             get_string("stringsnotset","", $trfilepath)."</b></p><pre>";
                         $first = false;
@@ -558,9 +558,9 @@
             foreach ($enstring as $key => $envalue) {
                 $linescounter++ ;
                 if (LANG_SUBMIT_REPEAT &&  $editable && $linescounter % LANG_SUBMIT_REPEAT_EVERY == 0) {
-                    $o .= '<tr><td>&nbsp;</td><td><br />';
+                    $o .= '<tr><td> </td><td><br />';
                     $o .= '<input type="submit" tabindex="'.$missingcounter.'" name="update" value="'.get_string('savechanges').': '.$currentfile.'" />';
-                    $o .= '<br />&nbsp;</td></tr>';
+                    $o .= '<br /> </td></tr>';
                 }
                 $envalue = nl2br(htmlspecialchars($envalue));
                 $envalue = preg_replace('/(\$a\-\&gt;[a-zA-Z0-9]*|\$a)/', '<b>$0</b>', $envalue);  // Make variables bold.
@@ -672,7 +672,7 @@
                 $o .= '</tr>'."\n";
             }
             if ($editable) {
-                $o .= '<tr><td>&nbsp;</td><td><br />';
+                $o .= '<tr><td> </td><td><br />';
                 $o .= '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
                 $o .= '<input type="hidden" name="currentfile" value="'.$currentfile.'" />';
                 $o .= '<input type="hidden" name="mode" value="compare" />';
diff --git a/admin/uploaduser.php b/admin/uploaduser.php
index 10efcb5..30ede29 100755
--- a/admin/uploaduser.php
+++ b/admin/uploaduser.php
@@ -841,7 +841,7 @@ class uu_progress_tracker {
             if (!empty($field)) {
                 echo implode('<br />', $field);
             } else {
-                echo '&nbsp;';
+                echo ' ';
             }
             echo '</td>';
         }
diff --git a/course/category.php b/course/category.php
index 50034cd..fcd13a2 100644
--- a/course/category.php
+++ b/course/category.php
@@ -283,7 +283,7 @@
             echo '<th class="header" scope="col">'.$stredit.'</th>';
             echo '<th class="header" scope="col">'.$strselect.'</th>';
         } else {
-            echo '<th class="header" scope="col">&nbsp;</th>';
+            echo '<th class="header" scope="col"> </th>';
         }
         echo '</tr>';
 
diff --git a/course/edit_form.php b/course/edit_form.php
index a833a72..c53de10 100644
--- a/course/edit_form.php
+++ b/course/edit_form.php
@@ -349,7 +349,7 @@ class course_edit_form extends moodleform {
             $currencies = get_list_of_currencies();
             $costgroup[]= &MoodleQuickForm::createElement('text','cost', '', 'maxlength="6" size="6"');
             $costgroup[]= &MoodleQuickForm::createElement('select', 'currency', '', $currencies);
-            $mform->addGroup($costgroup, 'costgrp', get_string('cost'), '&nbsp;', false);
+            $mform->addGroup($costgroup, 'costgrp', get_string('cost'), ' ', false);
             //defining a rule for a form element within a group :
             $costgrprules=array();
             //set the message to null to tell Moodle to use a default message
diff --git a/course/importstudents.html b/course/importstudents.html
index 403c344..f0a3c55 100644
--- a/course/importstudents.html
+++ b/course/importstudents.html
@@ -21,9 +21,9 @@
       <td valign="top">
         <?php check_theme_arrows(); ?>
         <p class="arrow_button">
-            <input name="add" id="add" type="submit" value="<?php echo '&nbsp;'.$THEME->larrow.' &nbsp; &nbsp; '.get_string('add'); ?>" title="<?php print_string('add'); ?>" />
+            <input name="add" id="add" type="submit" value="<?php echo ' '.$THEME->larrow.'     '.get_string('add'); ?>" title="<?php print_string('add'); ?>" />
             <br />
-            <input name="remove" id="remove" type="submit" value="<?php echo '&nbsp; '.$THEME->rarrow.' &nbsp; &nbsp; '.get_string('remove'); ?>" title="<?php print_string('remove'); ?>" />
+            <input name="remove" id="remove" type="submit" value="<?php echo '  '.$THEME->rarrow.'     '.get_string('remove'); ?>" title="<?php print_string('remove'); ?>" />
         </p>
       </td>
       <td valign="top">
diff --git a/course/index.php b/course/index.php
index ff82fd5..8f9ee47 100644
--- a/course/index.php
+++ b/course/index.php
@@ -313,7 +313,7 @@ function print_category_edit($category, $displaylist, $parentslist, $depth=-1, $
 
         echo '<tr><td align="left" class="name">';
         for ($i=0; $i<$depth;$i++) {
-            echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
+            echo '      ';
         }
         $linkcss = $category->visible ? '' : ' class="dimmed" ';
         echo '<a '.$linkcss.' title="'.$str->edit.'" '.
diff --git a/course/info.php b/course/info.php
index ded88b3..4635616 100644
--- a/course/info.php
+++ b/course/info.php
@@ -47,11 +47,11 @@
         echo $OUTPUT->box_start('generalbox icons');
         if ($course->guest) {
             $strallowguests = get_string('allowguests');
-            echo "<div><img alt=\"\" class=\"icon guest\" src=\"" . $OUTPUT->old_icon_url('i/guest') . "\" />&nbsp;$strallowguests</div>";
+            echo "<div><img alt=\"\" class=\"icon guest\" src=\"" . $OUTPUT->old_icon_url('i/guest') . "\" /> $strallowguests</div>";
         }
         if ($course->password) {
             $strrequireskey = get_string('requireskey');
-            echo "<div><img alt=\"\" class=\"icon key\" src=\"" . $OUTPUT->old_icon_url('i/key') . "\" />&nbsp;$strrequireskey</div>";
+            echo "<div><img alt=\"\" class=\"icon key\" src=\"" . $OUTPUT->old_icon_url('i/key') . "\" /> $strrequireskey</div>";
         }
         echo $OUTPUT->box_end();
     }
diff --git a/course/lib.php b/course/lib.php
index dbf7f90..894b980 100644
--- a/course/lib.php
+++ b/course/lib.php
@@ -1466,7 +1466,7 @@ function print_section($course, $section, $mods, $modnamesused, $absolute=false,
                 } else {
                     $mod->groupmode = false;
                 }
-                echo '&nbsp;&nbsp;';
+                echo '  ';
                 echo make_editing_buttons($mod, $absolute, true, $mod->indent, $section->section);
             }
 
@@ -1921,7 +1921,7 @@ function make_categories_options() {
         if (array_key_exists($key,$parents)) {
             if ($indent = count($parents[$key])) {
                 for ($i = 0; $i < $indent; $i++) {
-                    $cats[$key] = '&nbsp;'.$cats[$key];
+                    $cats[$key] = ' '.$cats[$key];
                 }
             }
         }
@@ -1954,7 +1954,7 @@ function print_category_info($category, $depth, $showcourses = false) {
     if ($showcourses and $coursecount) {
         $catimage = '<img src="'.$OUTPUT->old_icon_url('i/course') . '" alt="" />';
     } else {
-        $catimage = "&nbsp;";
+        $catimage = " ";
     }
 
     echo "\n\n".'<table class="categorylist">';
@@ -1979,7 +1979,7 @@ function print_category_info($category, $depth, $showcourses = false) {
         echo '<td valign="top" class="category name">';
         echo '<a '.$catlinkcss.' href="'.$CFG->wwwroot.'/course/category.php?id='.$category->id.'">'. format_string($category->name).'</a>';
         echo '</td>';
-        echo '<td class="category info">&nbsp;</td>';
+        echo '<td class="category info"> </td>';
         echo '</tr>';
 
         // does the depth exceed maxcategorydepth
@@ -1990,7 +1990,7 @@ function print_category_info($category, $depth, $showcourses = false) {
         if ($courses && ($limit || $CFG->maxcategorydepth == 0)) {
             foreach ($courses as $course) {
                 $linkcss = $course->visible ? '' : ' class="dimmed" ';
-                echo '<tr><td valign="top">&nbsp;';
+                echo '<tr><td valign="top"> ';
                 echo '</td><td valign="top" class="course name">';
                 echo '<a '.$linkcss.' href="'.$CFG->wwwroot.'/course/view.php?id='.$course->id.'">'. format_string($course->fullname).'</a>';
                 echo '</td><td align="right" valign="top" class="course info">';
diff --git a/course/pending.php b/course/pending.php
index 3fc067a..f59288d 100644
--- a/course/pending.php
+++ b/course/pending.php
@@ -101,7 +101,7 @@ if (empty($pending)) {
     $table = new html_table();
     $table->add_class('pendingcourserequests generaltable');
     $table->align = array('center', 'center', 'center', 'center', 'center', 'center', 'center');
-    $table->head = array('&nbsp;', get_string('shortname'), get_string('fullname'),
+    $table->head = array(' ', get_string('shortname'), get_string('fullname'),
             get_string('requestedby'), get_string('summary'), get_string('requestreason'), get_string('action'));
     $strrequireskey = get_string('requireskey');
diff --git a/course/search.php b/course/search.php
index 38bedc5..88a6d79 100644
--- a/course/search.php
+++ b/course/search.php
@@ -273,9 +273,9 @@
                     echo "<td><a href=\"$CFG->wwwroot\">$strfrontpage</a></td>\n";
 
                     // can't do anything else with the front page
-                    echo "  <td>&nbsp;</td>\n"; // category place
-                    echo "  <td>&nbsp;</td>\n"; // select place
-                    echo "  <td>&nbsp;</td>\n"; // edit place
+                    echo "  <td> </td>\n"; // category place
+                    echo "  <td> </td>\n"; // select place
+                    echo "  <td> </td>\n"; // edit place
                     echo "</tr>\n";
                     continue;
                 }
diff --git a/course/user.php b/course/user.php
index bc89ef0..76b29cf 100644
--- a/course/user.php
+++ b/course/user.php
@@ -374,7 +374,7 @@ function print_outline_row($mod, $instance, $result) {
     echo "<td valign=\"top\" style=\"width:300\">";
     echo "   <a title=\"$mod->modfullname\"";
     echo "   href=\"../mod/$mod->modname/view.php?id=$mod->id\">".format_string($instance->name,true)."</a></td>";
-    echo "<td>&nbsp;&nbsp;&nbsp;</td>";
+    echo "<td>   </td>";
     echo "<td valign=\"top\">";
     if (isset($result->info)) {
         echo "$result->info";
@@ -382,7 +382,7 @@ function print_outline_row($mod, $instance, $result) {
         echo "<p style=\"text-align:center\">-</p>";
     }
     echo "</td>";
-    echo "<td>&nbsp;&nbsp;&nbsp;</td>";
+    echo "<td>   </td>";
     if (!empty($result->time)) {
         $timeago = format_time(time() - $result->time);
         echo "<td valign=\"top\" style=\"white-space: nowrap\">".userdate($result->time)." ($timeago)</td>";
diff --git a/index.php b/index.php
index 1caf8be..3064ad5 100644
--- a/index.php
+++ b/index.php
@@ -110,7 +110,7 @@
             if (ismoving($SITE->id)) {
                 $stractivityclipboard = strip_tags(get_string('activityclipboard', '', $USER->activitycopyname));
                 echo '<p><font size="2">';
-                echo "$stractivityclipboard&nbsp;&nbsp;(<a href=\"course/mod.php?cancelcopy=true&amp;sesskey=".sesskey()."\">". get_string('cancel') .'</a>)';
+                echo "$stractivityclipboard  (<a href=\"course/mod.php?cancelcopy=true&amp;sesskey=".sesskey()."\">". get_string('cancel') .'</a>)';
                 echo '</font></p>';
             }
 
diff --git a/lang/en_utf8/admin.php b/lang/en_utf8/admin.php
index 40e7d65..cdae07b 100644
--- a/lang/en_utf8/admin.php
+++ b/lang/en_utf8/admin.php
@@ -650,7 +650,7 @@ $string['notifications'] = 'Notifications';
 $string['notifyloginfailures'] = 'Email login failures to';
 $string['notifyloginthreshold'] = 'Threshold for email notifications';
 $string['notloggedinroleid'] = 'Role for visitors';
-$string['numberofstrings'] = 'Total number of strings: $a->strings<br />Missing: $a->missing ($a->missingpercent&nbsp;%%)';
+$string['numberofstrings'] = 'Total number of strings: $a->strings<br />Missing: $a->missing ($a->missingpercent %%)';
 $string['numberofmissingstrings'] = 'Number of missing strings: $a';
 $string['numquestions'] = 'No. questions';
 $string['numquestionsandhidden'] = '$a->numquestions (+$a->numhidden hidden)';
diff --git a/lang/en_utf8/mnet.php b/lang/en_utf8/mnet.php
index 4fb35a5..4d6bc85 100644
--- a/lang/en_utf8/mnet.php
+++ b/lang/en_utf8/mnet.php
@@ -85,9 +85,9 @@ $string['deletewrongkeyvalue']          = 'An error has occurred. If you were no
 
 $string['keydeleted']                   = 'Your key has been successfully deleted and replaced.';
 
-$string['is_in_range']                  = 'The IP address &nbsp;<code>$a</code>&nbsp; represents a valid trusted host.';
-$string['validated_by']                 = 'It is validated by the network: &nbsp;<code>$a</code>';
-$string['not_in_range']                 = 'The IP address &nbsp;<code>$a</code>&nbsp; does not represent a valid trusted host.';
+$string['is_in_range']                  = 'The IP address  <code>$a</code>  represents a valid trusted host.';
+$string['validated_by']                 = 'It is validated by the network:  <code>$a</code>';
+$string['not_in_range']                 = 'The IP address  <code>$a</code>  does not represent a valid trusted host.';
 
 $string['testtrustedhosts']             = 'Test an address';
 $string['testtrustedhostsexplain']      = 'Enter an IP address to see if it is a trusted host.';
diff --git a/lang/en_utf8/moodle.php b/lang/en_utf8/moodle.php
index 61c4a7b..dbd09db 100644
--- a/lang/en_utf8/moodle.php
+++ b/lang/en_utf8/moodle.php
@@ -147,7 +147,7 @@ $string['backupactivehelp'] = 'Choose whether or not to do automated backups.';
 $string['backupcancelled'] = 'Backup Cancelled';
 $string['backupcoursefileshelp'] = 'If enabled then course files will be included in automated backups';
 $string['backupdate'] = 'Backup Date';
-$string['backupdatenew'] = '&nbsp; $a->TAG is now $a->weekday, $a->mday $a->month $a->year<br />';
+$string['backupdatenew'] = '  $a->TAG is now $a->weekday, $a->mday $a->month $a->year<br />';
 $string['backupdateold'] = '$a->TAG was $a->weekday, $a->mday $a->month $a->year';
 $string['backupdaterecordtype'] = '<br />$a->recordtype - $a->recordname<br />';
 $string['backupdetails'] = 'Backup Details';
diff --git a/lang/en_utf8/repository.php b/lang/en_utf8/repository.php
index a754e48..95d2c99 100644
--- a/lang/en_utf8/repository.php
+++ b/lang/en_utf8/repository.php
@@ -16,7 +16,7 @@ $string['areauserpersonal'] = 'Personal';
 $string['areauserprofile'] = 'Profile';
 $string['attachment'] = 'Attachment';
 $string['attachedfiles'] = 'Attached files';
-$string['back'] = '&laquo; Back';
+$string['back'] = '« Back';
 $string['cacheexpire'] = 'Cache expire';
 $string['cachecleared'] = 'Cached files are removed';
 $string['cannotaccessparentwin'] = 'If parent window is on HTTPS, then we are not allowed to access window.opener object, so we cannot refresh the repository for you automatically, but we already got your session, just go back to file picker and select the repository again, it should work now.';
diff --git a/lib/adminlib.php b/lib/adminlib.php
index e9bb4a4..6e60b09 100644
--- a/lib/adminlib.php
+++ b/lib/adminlib.php
@@ -3144,14 +3144,14 @@ class admin_setting_special_editorfontlist extends admin_setting {
         $return = '<div class="form-group">';
         for ($i = 0; $i < count($data) / 2; $i++) {
             $return .= '<input type="text" class="form-text" name="'.$fullname.'[k'.$i.']" value="'.$data['k'.$i].'" />';
-            $return .= '&nbsp;&nbsp;';
+            $return .= '  ';
             $return .= '<input type="text" class="form-text" name="'.$fullname.'[v'.$i.']" value="'.$data['v'.$i].'" /><br />';
         }
         $return .= '<input type="text" class="form-text" name="'.$fullname.'[k'.$i.']" value="" />';
-        $return .= '&nbsp;&nbsp;';
+        $return .= '  ';
         $return .= '<input type="text" class="form-text" name="'.$fullname.'[v'.$i.']" value="" /><br />';
         $return .= '<input type="text" class="form-text" name="'.$fullname.'[k'.($i + 1).']" value="" />';
-        $return .= '&nbsp;&nbsp;';
+        $return .= '  ';
         $return .= '<input type="text" class="form-text" name="'.$fullname.'[v'.($i + 1).']" value="" />';
         $return .= '</div>';
 
@@ -3300,14 +3300,14 @@ class admin_setting_emoticons extends admin_setting {
         $return = '<div class="form-group">';
         for ($i = 0; $i < count($data) / 2; $i++) {
             $return .= '<input type="text" class="form-text" name="'.$fullname.'[k'.$i.']" value="'.$data['k'.$i].'" />';
-            $return .= '&nbsp;&nbsp;';
+            $return .= '  ';
             $return .= '<input type="text" class="form-text" name="'.$fullname.'[v'.$i.']" value="'.$data['v'.$i].'" /><br />';
         }
         $return .= '<input type="text" class="form-text" name="'.$fullname.'[k'.$i.']" value="" />';
-        $return .= '&nbsp;&nbsp;';
+        $return .= '  ';
         $return .= '<input type="text" class="form-text" name="'.$fullname.'[v'.$i.']" value="" /><br />';
         $return .= '<input type="text" class="form-text" name="'.$fullname.'[k'.($i + 1).']" value="" />';
-        $return .= '&nbsp;&nbsp;';
+        $return .= '  ';
         $return .= '<input type="text" class="form-text" name="'.$fullname.'[v'.($i + 1).']" value="" />';
         $return .= '</div>';
 
@@ -3439,8 +3439,8 @@ class admin_setting_special_editorhidebuttons extends admin_setting {
             }
 
             $return .= '<label for="'.$this->get_id().$key.'">';
-            $return .= ($value == '' ? get_string($key,'editor') : '<img width="18" height="18" src="'.$CFG->wwwroot.'/lib/editor/htmlarea/images/'.$value.'" alt="'.get_string($key,'editor').'" title="'.get_string($key,'editor').'" />').'&nbsp;';
-            $return .= '<input type="checkbox" class="form-checkbox" value="1" id="'.$this->get_id().$key.'" name="'.$this->get_full_name().'['.$key.']"'.(in_array($key,$data) ? ' checked="checked"' : '').' />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
+            $return .= ($value == '' ? get_string($key,'editor') : '<img width="18" height="18" src="'.$CFG->wwwroot.'/lib/editor/htmlarea/images/'.$value.'" alt="'.get_string($key,'editor').'" title="'.get_string($key,'editor').'" />').' ';
+            $return .= '<input type="checkbox" class="form-checkbox" value="1" id="'.$this->get_id().$key.'" name="'.$this->get_full_name().'['.$key.']"'.(in_array($key,$data) ? ' checked="checked"' : '').' />       ';
             $return .= '</label>';
             $count++;
             if ($count % 15 != 0) {
@@ -4773,10 +4773,10 @@ class admin_setting_manageauths extends admin_setting {
             if ($enabled) {
                 if ($updowncount > 1) {
                     $updown .= "<a href=\"$url&amp;action=up&amp;auth=$auth\">";
-                    $updown .= "<img src=\"" . $OUTPUT->old_icon_url('t/up') . "\" alt=\"up\" /></a>&nbsp;";
+                    $updown .= "<img src=\"" . $OUTPUT->old_icon_url('t/up') . "\" alt=\"up\" /></a> ";
                 }
                 else {
-                    $updown .= "<img src=\"" . $OUTPUT->old_icon_url('spacer.gif') . "\" class=\"icon\" alt=\"\" />&nbsp;";
+                    $updown .= "<img src=\"" . $OUTPUT->old_icon_url('spacer.gif') . "\" class=\"icon\" alt=\"\" /> ";
                 }
                 if ($updowncount < $authcount) {
                     $updown .= "<a href=\"$url&amp;action=down&amp;auth=$auth\">";
@@ -4937,10 +4937,10 @@ class admin_setting_manageeditors extends admin_setting {
             if ($enabled) {
                 if ($updowncount > 1) {
                     $updown .= "<a href=\"$url&amp;action=up&amp;editor=$editor\">";
-                    $updown .= "<img src=\"" . $OUTPUT->old_icon_url('t/up') . "\" alt=\"up\" /></a>&nbsp;";
+                    $updown .= "<img src=\"" . $OUTPUT->old_icon_url('t/up') . "\" alt=\"up\" /></a> ";
                 }
                 else {
-                    $updown .= "<img src=\"" . $OUTPUT->old_icon_url('spacer.gif') . "\" class=\"icon\" alt=\"\" />&nbsp;";
+                    $updown .= "<img src=\"" . $OUTPUT->old_icon_url('spacer.gif') . "\" class=\"icon\" alt=\"\" /> ";
                 }
                 if ($updowncount < $editorcount) {
                     $updown .= "<a href=\"$url&amp;action=down&amp;editor=$editor\">";
@@ -6024,7 +6024,7 @@ class admin_setting_managerepository extends admin_setting {
             $spacer->width = 15;
             if ($updowncount > 1) {
                 $updown .= "<a href=\"$this->baseurl&amp;move=up&amp;type=".$i->get_typename()."\">";
-                $updown .= "<img src=\"" . $OUTPUT->old_icon_url('t/up') . "\" alt=\"up\" /></a>&nbsp;";
+                $updown .= "<img src=\"" . $OUTPUT->old_icon_url('t/up') . "\" alt=\"up\" /></a> ";
             }
             else {
                 $updown .= $OUTPUT->spacer($spacer);
diff --git a/lib/deprecatedlib.php b/lib/deprecatedlib.php
index 05bd527..ab8e55d 100644
--- a/lib/deprecatedlib.php
+++ b/lib/deprecatedlib.php
@@ -2101,7 +2101,7 @@ function print_continue($link, $return = false) {
  * @return string|void If return=true then string else void
  */
 function print_header($title='', $heading='', $navigation='', $focus='',
-                      $meta='', $cache=true, $button='&nbsp;', $menu=null,
+                      $meta='', $cache=true, $button=' ', $menu=null,
                       $usexml=false, $bodytags='', $return=false) {
     global $PAGE, $OUTPUT;
 
@@ -2110,7 +2110,7 @@ function print_header($title='', $heading='', $navigation='', $focus='',
     $PAGE->set_cacheable($cache);
     $PAGE->set_focuscontrol($focus);
     if ($button == '') {
-        $button = '&nbsp;';
+        $button = ' ';
     }
     $PAGE->set_button($button);
     $PAGE->set_headingmenu($menu);
@@ -2157,7 +2157,7 @@ function print_header($title='', $heading='', $navigation='', $focus='',
  * @return string|void If $return=true the return string else nothing
  */
 function print_header_simple($title='', $heading='', $navigation='', $focus='', $meta='',
-                       $cache=true, $button='&nbsp;', $menu='', $usexml=false, $bodytags='', $return=false) {
+                       $cache=true, $button=' ', $menu='', $usexml=false, $bodytags='', $return=false) {
 
     global $COURSE, $CFG, $PAGE, $OUTPUT;
diff --git a/lib/formslib.php b/lib/formslib.php
index 5697154..a91e9cc 100644
--- a/lib/formslib.php
+++ b/lib/formslib.php
@@ -1959,7 +1959,7 @@ class MoodleQuickForm_Renderer extends HTML_QuickForm_Renderer_Tableless{
 
         'fieldset'=>"\n\t\t".'<div class="fitem {advanced}<!-- BEGIN required --> required<!-- END required -->"><div class="fitemtitle"><div class="fgrouplabel"><label>{label}<!-- BEGIN required -->{req}<!-- END required -->{advancedimg} {help}</label></div></div><fieldset class="felement {type}<!-- BEGIN error --> error<!-- END error -->"><!-- BEGIN error --><span class="error">{error}</span><br /><!-- END error -->{element}</fieldset></div>',
 
-        'static'=>"\n\t\t".'<div class="fitem {advanced}"><div class="fitemtitle"><div class="fstaticlabel"><label>{label}<!-- BEGIN required -->{req}<!-- END required -->{advancedimg} {help}</label></div></div><div class="felement fstatic <!-- BEGIN error --> error<!-- END error -->"><!-- BEGIN error --><span class="error">{error}</span><br /><!-- END error -->{element}&nbsp;</div></div>',
+        'static'=>"\n\t\t".'<div class="fitem {advanced}"><div class="fitemtitle"><div class="fstaticlabel"><label>{label}<!-- BEGIN required -->{req}<!-- END required -->{advancedimg} {help}</label></div></div><div class="felement fstatic <!-- BEGIN error --> error<!-- END error -->"><!-- BEGIN error --><span class="error">{error}</span><br /><!-- END error -->{element} </div></div>',
 
 'warning'=>"\n\t\t".'<div class="fitem {advanced}">{element}</div>',
 
diff --git a/lib/html2text.php b/lib/html2text.php
index 56112ea..5e18661 100644
--- a/lib/html2text.php
+++ b/lib/html2text.php
@@ -256,8 +256,8 @@ class html2text
      */
     var $pre_replace = array(
         '<br>',
-        '&nbsp;&nbsp;&nbsp;&nbsp;',
-        '&nbsp;',
+        '    ',
+        ' ',
         '',
         ''
     );
diff --git a/lib/installlib.php b/lib/installlib.php
index 5af8c22..8eff1c5 100644
--- a/lib/installlib.php
+++ b/lib/installlib.php
@@ -303,11 +303,11 @@ function install_print_header($config, $stagename, $heading, $stagetext) {
     echo '</head><body class="notloggedin">
             <div id="page" class="stage'.$config->stage.'">
                 <div id="header" class=" clearfix"><h1 class="headermain">'.get_string('installation','install').'</h1>
-                    <div class="headermenu">&nbsp;</div></div><div class="navbar clearfix">
+                    <div class="headermenu"> </div></div><div class="navbar clearfix">
                     <div class="breadcrumb">
                         <ul><li class="first">'.$stagename.'</li></ul>
                     </div>
-                    <div class="navbutton">&nbsp;</div>
+                    <div class="navbutton"> </div>
                 </div>
           <!-- END OF HEADER -->
           <div id="installdiv">';
diff --git a/lib/listlib.php b/lib/listlib.php
index 3e2cfd8..db2a1a8 100644
--- a/lib/listlib.php
+++ b/lib/listlib.php
@@ -559,7 +559,7 @@ class list_item {
         } else {
             $childrenhtml = '';
         }
-        return $this->item_html($extraargs).'&nbsp;'.(join($this->icons, '')).(($childrenhtml !='')?("\n".$childrenhtml):'');
+        return $this->item_html($extraargs).' '.(join($this->icons, '')).(($childrenhtml !='')?("\n".$childrenhtml):'');
     }
 
     function set_icon_html($first, $last, &$lastitem) {
diff --git a/lib/markdown.php b/lib/markdown.php
index 384978f..983ece3 100755
--- a/lib/markdown.php
+++ b/lib/markdown.php
@@ -2447,9 +2447,9 @@ class MarkdownExtra_Parser extends Markdown_Parser {
 				$attr2 = str_replace("%%", ++$num, $attr);
 				
 				# Add backlink to last paragraph; create new paragraph if needed.
-				$backlink = "<a href=\"#fnref:$note_id\"$attr2>&#8617;</a>";
+				$backlink = "<a href=\"#fnref:$note_id\"$attr2>↩</a>";
 				if (preg_match('{</p>$}', $footnote)) {
-					$footnote = substr($footnote, 0, -4) . "&#160;$backlink</p>";
+					$footnote = substr($footnote, 0, -4) . " $backlink</p>";
 				} else {
 					$footnote .= "\n\n<p>$backlink</p>";
 				}
diff --git a/lib/outputrenderers.php b/lib/outputrenderers.php
index 9c26d4f..8e573a9 100644
--- a/lib/outputrenderers.php
+++ b/lib/outputrenderers.php
@@ -1358,7 +1358,7 @@ class moodle_core_renderer extends moodle_renderer_base {
             $link->text = $this->image($image);
 
             if (!empty($link->linktext)) {
-                $link->text = "$link->title &#160; $link->text";
+                $link->text = "$link->title   $link->text";
             }
         }
 
@@ -2033,27 +2033,27 @@ class moodle_core_renderer extends moodle_renderer_base {
             $output .= get_string('page') . ':';
 
             if (!empty($pagingbar->previouslink)) {
-                $output .= '&#160;(' . $this->link($pagingbar->previouslink) . ')&#160;';
+                $output .= ' (' . $this->link($pagingbar->previouslink) . ') ';
             }
 
             if (!empty($pagingbar->firstlink)) {
-                $output .= '&#160;' . $this->link($pagingbar->firstlink) . '&#160;...';
+                $output .= ' ' . $this->link($pagingbar->firstlink) . ' …';
             }
 
             foreach ($pagingbar->pagelinks as $link) {
                 if ($link instanceof html_link) {
-                    $output .= '&#160;&#160;' . $this->link($link);
+                    $output .= '  ' . $this->link($link);
                 } else {
-                    $output .= "&#160;&#160;$link";
+                    $output .= "  $link";
                 }
             }
 
             if (!empty($pagingbar->lastlink)) {
-                $output .= '&#160;...' . $this->link($pagingbar->lastlink) . '&#160;';
+                $output .= ' …' . $this->link($pagingbar->lastlink) . ' ';
             }
 
             if (!empty($pagingbar->nextlink)) {
-                $output .= '&#160;&#160;(' . $this->link($pagingbar->nextlink) . ')';
+                $output .= '  (' . $this->link($pagingbar->nextlink) . ')';
             }
         }
 
diff --git a/lib/questionlib.php b/lib/questionlib.php
index 60d3734..118cd1f 100644
--- a/lib/questionlib.php
+++ b/lib/questionlib.php
@@ -2286,7 +2286,7 @@ function flatten_category_tree(&$categories, $id, $depth = 0, $nochildrenof = -1
     // Indent the name of this category.
     $newcategories = array();
     $newcategories[$id] = $categories[$id];
-    $newcategories[$id]->indentedname = str_repeat('&nbsp;&nbsp;&nbsp;', $depth) . $categories[$id]->name;
+    $newcategories[$id]->indentedname = str_repeat('   ', $depth) . $categories[$id]->name;
 
     // Recursively indent the children.
     foreach ($categories[$id]->childids as $childid) {
diff --git a/lib/rsslib.php b/lib/rsslib.php
index b9858b3..6e550ec 100644
--- a/lib/rsslib.php
+++ b/lib/rsslib.php
@@ -205,7 +205,7 @@ function rss_standard_header($title = NULL, $link = NULL, $description = NULL) {
             $result .= rss_full_tag('language', 2, false, substr($USER->lang,0,2));
         }
         $today = getdate();
-        $result .= rss_full_tag('copyright', 2, false, '&#169; '. $today['year'] .' '. format_string($site->fullname));
+        $result .= rss_full_tag('copyright', 2, false, '© '. $today['year'] .' '. format_string($site->fullname));
         /*
        if (!empty($USER->email)) {
             $result .= rss_full_tag('managingEditor', 2, false, fullname($USER));
@@ -270,7 +270,7 @@ function rss_add_items($items) {
                 //We put it in the description instead because it's more important
                 //for moodle than most other feeds, and most rss software seems to ignore
                 //the author field ...
-                $item->description = get_string('byname','',$item->author).'. &nbsp;<p>'.$item->description.'</p>';
+                $item->description = get_string('byname','',$item->author).'.  <p>'.$item->description.'</p>';
             }
             $result .= rss_full_tag('description',3,false,$item->description);
             $result .= rss_full_tag('guid',3,false,$item->link,array('isPermaLink' => 'true'));
diff --git a/lib/tablelib.php b/lib/tablelib.php
index 3956e6e..795c627 100644
--- a/lib/tablelib.php
+++ b/lib/tablelib.php
@@ -971,12 +971,12 @@ class flexible_table {
                 echo '<td class="cell c'.$index.$this->column_class[$column].'"'.$this->make_styles_string($this->column_style[$column]).'>';
                 if (empty($this->sess->collapse[$column])) {
                     if ($this->column_suppress[$column] && $suppress_lastrow !== NULL && $suppress_lastrow[$index] === $data) {
-                        echo '&nbsp;';
+                        echo ' ';
                     } else {
                         echo $data;
                     }
                 } else {
-                    echo '&nbsp;';
+                    echo ' ';
                 }
                 echo '</td>';
             }
@@ -1098,7 +1098,7 @@ class flexible_table {
             }
 
             if($this->headers[$index] === NULL) {
-                echo '<th class="header c'.$index.$this->column_class[$column].'" scope="col">&nbsp;</th>';
+                echo '<th class="header c'.$index.$this->column_class[$column].'" scope="col"> </th>';
             }
             else if(!empty($this->sess->collapse[$column])) {
                 echo '<th class="header c'.$index.$this->column_class[$column].'" scope="col">'.$icon_hide.'</th>';
diff --git a/lib/weblib.php b/lib/weblib.php
index d175fcc..db512e1 100644
--- a/lib/weblib.php
+++ b/lib/weblib.php
@@ -913,7 +913,7 @@ function format_text($text, $format=FORMAT_MOODLE, $options=NULL, $courseid=NULL
         case FORMAT_PLAIN:
             $text = s($text); // cleans dangerous JS
             $text = rebuildnolinktag($text);
-            $text = str_replace('  ', '&nbsp; ', $text);
+            $text = str_replace('  ', '  ', $text);
             $text = nl2br($text);
             break;
 
@@ -1890,7 +1890,7 @@ function user_login_string($course=NULL, $user=NULL) {
         if (!empty($CFG->displayloginfailures)) {
             if (!empty($USER->username) and $USER->username != 'guest') {
                 if ($count = count_login_failures($CFG->displayloginfailures, $USER->username, $USER->lastlogin)) {
-                    $loggedinas .= '&nbsp;<div class="loginfailures">';
+                    $loggedinas .= ' <div class="loginfailures">';
                     if (empty($count->accounts)) {
                         $loggedinas .= get_string('failedloginattempts', '', $count);
                     } else {
@@ -1983,7 +1983,7 @@ function link_arrow_right($text, $url='', $accesshide=false, $addclass='') {
     $arrow = '<span class="'.$arrowclass.'">'.$THEME->rarrow.'</span>';
     $htmltext = '';
     if ($text) {
-        $htmltext = '<span class="arrow_text">'.$text.'</span>&nbsp;';
+        $htmltext = '<span class="arrow_text">'.$text.'</span> ';
         if ($accesshide) {
             $htmltext = get_accesshide($htmltext);
         }
@@ -2019,7 +2019,7 @@ function link_arrow_left($text, $url='', $accesshide=false, $addclass='') {
     $arrow = '<span class="'.$arrowclass.'">'.$THEME->larrow.'</span>';
     $htmltext = '';
     if ($text) {
-        $htmltext = '&nbsp;<span class="arrow_text">'.$text.'</span>';
+        $htmltext = ' <span class="arrow_text">'.$text.'</span>';
         if ($accesshide) {
             $htmltext = get_accesshide($htmltext);
         }
@@ -2219,7 +2219,7 @@ function _print_custom_corners_start($clearfix=false, $classes='', $idbase='') {
 
 /// Output begins
     $output = '<div '.$id.'class="wrap wraplevel'.$level.' '.$classes.'">'."\n";
-    $output .= '<div '.$idbt.'class="bt"><div>&nbsp;</div></div>';
+    $output .= '<div '.$idbt.'class="bt"><div> </div></div>';
     $output .= "\n";
     $output .= '<div '.$idi1.'class="i1"><div '.$idi2.'class="i2">';
     $output .= (!empty($clearfix)) ? '<div '.$idi3.'class="i3 clearfix">' : '<div '.$idi3.'class="i3">';
@@ -2246,7 +2246,7 @@ function _print_custom_corners_end($idbase) {
 /// Output begins
     $output = '</div></div></div>';
     $output .= "\n";
-    $output .= '<div '.$idbb.'class="bb"><div>&nbsp;</div></div>'."\n";
+    $output .= '<div '.$idbb.'class="bb"><div> </div></div>'."\n";
     $output .= '</div>';
 
     return $output;
@@ -3064,7 +3064,7 @@ function convert_tree_to_html($tree, $row=0) {
         if (!empty($tab->subtree)) {
             $str .= convert_tree_to_html($tab->subtree, $row+1);
         } else if ($tab->selected) {
-            $str .= '<div class="tabrow'.($row+1).' empty">&nbsp;</div>'."\n";
+            $str .= '<div class="tabrow'.($row+1).' empty"> </div>'."\n";
         }
 
         $str .= ' </li>'."\n";
@@ -3334,7 +3334,7 @@ class progress_bar {
                 <div id="bar_{$this->html_id}" style="border-style:solid;border-width:1px;width:500px;height:50px;">
                     <div id="progress_{$this->html_id}"
                     style="text-align:center;background:#FFCC66;width:4px;border:1px
-                    solid gray;height:38px; padding-top:10px;">&nbsp;<span id="pt_{$this->html_id}"></span>
+                    solid gray;height:38px; padding-top:10px;"> <span id="pt_{$this->html_id}"></span>
                     </div>
                 </div>
             </div>
@@ -3513,7 +3513,7 @@ class html_progress_trace extends moodle_progress_trace {
      * @return void Output is echo'd
      */
     public function output($message, $depth = 0) {
-        echo '<p>', str_repeat('&#160;&#160;', $depth), htmlspecialchars($message), "</p>\n";
+        echo '<p>', str_repeat('  ', $depth), htmlspecialchars($message), "</p>\n";
         flush();
     }
 }
