Index: moodle/lib/moodlelib.php
--- moodle/lib/moodlelib.php Base (1.1261)
+++ moodle/lib/moodlelib.php Locally Modified (Based On 1.1261)
@@ -463,6 +463,7 @@
  * @uses PARAM_BASE64
  * @uses PARAM_TAG
  * @uses PARAM_SEQUENCE
+ * @uses PARAM_USERNAME
  * @param mixed $param the variable we are cleaning
  * @param int $type expected format of param after cleaning.
  * @return mixed
@@ -720,6 +721,18 @@
                 return '';  // Specified theme is not installed
             }
 
+        case PARAM_USERNAME:           
+            if (empty($CFG->extendedusernamechars)) {                                              
+                $patterns = array();
+                array_push($patterns, '/[*()+]/');
+                array_push($patterns, '/[^(-\.[:alnum:])]/i');
+                $param = preg_replace($patterns, '',trim($param));
+                return $param;                
+            } else {
+                $param = preg_replace($patterns, '',trim($param));
+                return $param;
+            }
+
         default:                 // throw error, switched parameters in optional_param or another serious problem
             print_error("unknownparamtype", '', '', $type);
     }
