diff --git a/phone.sg.inc b/phone.sg.inc
index 5b054f5..60e5da4 100644
--- a/phone.sg.inc
+++ b/phone.sg.inc"	
@@ -13,6 +13,19 @@ function phone_sg_metadata() {
   );
 }
 
+  /*
+    See: http://en.wikipedia.org/wiki/Telephone_numbers_in_Singapore
+
+    Accepts:
+        006561234567   / 006581234567   / 006591234567
+        0065 61234567  / 0065 81234567  / 0065 91234567
+        00 6561234567  / 00 6581234567  / 00 6591234567
+        00 65 61234567 / 00 65 81234567 / 00 65 91234567
+        +6561234567    / +6581234567    / +6591234567
+        +65 61234567   / +65 81234567   / +65 91234567
+        61234567       / 81234567       / 91234567
+  */
+
 /**
  * Verifies that $phonenumber is valid
  *
@@ -20,18 +33,10 @@ function phone_sg_metadata() {
  * @return boolean Returns boolean FALSE if the phone number is not valid.
  */
 function valid_sg_phone_number($phonenumber) {
-  // define regular expression
-  /*
-    See: http://en.wikipedia.org/wiki/Telephone_numbers_in_Singapore
-
-    Accepts:
-        +6561234567  / +6581234567  / +6591234567
-        +65 61234567 / +65 81234567 / +65 91234567
-        61234567     / 81234567     / 91234567
-  */
-
-  $regex = '/^(\+65)?\s?[689]\d{7}$/i';
+  $phonenumber = trim($phonenumber);
 
+  // define regular expression
+  $regex = '/^(\(?(?:00\)?\s?\(?|\+)65\)?)?\s?(?:\(?0\)?\s?)?([689](\s?\d){7})$/i';
 
   // return true if valid, false otherwise
   return (bool) preg_match($regex, $phonenumber);
@@ -44,17 +49,24 @@ function valid_sg_phone_number($phonenumber) {
  * @return string Returns a string containting the phone number with some formatting.
  */
 function format_sg_phone_number($phonenumber, $field) {
+  $phonenumber = trim($phonenumber);
 
-  //$phonenumber = trim($phonenumber);
-
-   // do some formatting on the phone number
+  // define regular expression
+  $regex = '/^(\(?(?:00\)?\s?\(?|\+)65\)?)?\s?(?:\(?0\)?\s?)?([689](\s?\d){3})((\s?\d){4})$/i';
 
-/* ==> to be done ==> add the country code 
-   if ($field['phone_country_code']) {
-      if ($matches[1] != "+39") {
-  	$phonenumber = "+39" . " " . $phonenumber;
+  // get digits of phone number
+  if(preg_match($regex, $phonenumber, $matches)) {
+    // do some formatting on the phone number
+    if ($field['phone_country_code']) {
+      $phonenumber = '+65' . ' ' . $matches['2'] . ' ' . $matches['4'];
+    } else {
+      if ($matches['1'] == null) {
+        $phonenumber = $matches['2'] . ' ' . $matches['4'];
+      } else {
+        $phonenumber = '+65' . ' ' . $matches['2'] . ' ' . $matches['4'];
       }
-   }
-*/ 
+    }
+  }
+
    return $phonenumber;
 }
