diff --git a/phone.module b/phone.module
--- a/phone.module
+++ b/phone.module
@@ -58,7 +58,8 @@ function phone_field_info() {
     'sg_phone' => array('label' => t('Phone Numbers - Singapore')),    
     'jo_phone' => array('label' => t('Phone Numbers - Jordan')),
     'eg_phone' => array('label' => t('Phone Numbers - Egypt')),
-    'pk_phone' => array('label' => t('Phone Numbers - Pakistan')),    
+    'pk_phone' => array('label' => t('Phone Numbers - Pakistan')),
+    'mx_phone' => array('label' => t('Phone Numbers - Mexico')),
     'int_phone'=> array('label' => t('Phone Numbers - International Phone Numbers per E.123'))
    );
 }
@@ -197,6 +198,7 @@ function phone_field_settings($op, $field) {
        || $field['type'] == 'jo_phone'
        || $field['type'] == 'eg_phone'
        || $field['type'] == 'pk_phone'
+       || $field['type'] == 'mx_phone'
        || $field['type'] == 'int_phone'
        ) {
       	$columns = array(
@@ -340,6 +342,9 @@ function phone_field($op, &$node, $field, &$node_field, $teaser, $page) {
           if ($field['type'] == 'pk_phone' && !valid_phone_number('pk', $item['value'])) {
             form_set_error($field['field_name'], t('"%value" is not a valid Pakistanese phone number!<br>Pakistanese phone numbers should ...', array('%value' => $item['value'])));
           }
+          if ($field['type'] == 'mx_phone' && !valid_phone_number('mx', $item['value'])) {
+            form_set_error($field['field_name'], t('"%value" is not a valid Mexican phone number!<br>Mexican phone numbers should ...', array('%value' => $item['value'])));
+          }
           if ($field['type'] == 'int_phone' && !valid_phone_number('int', $item['value'])) {
             form_set_error($field['field_name'],t('"%value" is not a valid international phone number<br>International phone numbers should contain a country code prefixed by a plus sign followed by the local number.', array('%value' => $item['value'])));
           }
@@ -443,7 +448,10 @@ function phone_field($op, &$node, $field, &$node_field, $teaser, $page) {
           }
           if ($field['type'] == 'pk_phone') {
             $node_field[$delta]['value'] = format_phone_number('pk', $node_field[$delta]['value'], $field);
-          }          
+          }
+          if ($field['type'] == 'mx_phone') {
+            $node_field[$delta]['value'] = format_phone_number('mx', $node_field[$delta]['value'], $field);
+          }
           if ($field['type'] == 'int_phone') {
             $node_field[$delta]['value'] = format_phone_number('int', $node_field[$delta]['value'], $field);
           }
@@ -568,6 +576,7 @@ function phone_field_formatter_info() {
       			'jo_phone',
       			'eg_phone',
       			'pk_phone',
+         'mx_phone',
       			'int_phone'
       			),
       'multiple values' => CONTENT_HANDLE_CORE,
@@ -667,6 +676,7 @@ function phone_widget_info() {
        			'jo_phone',
        			'eg_phone',
        			'pk_phone',
+          'mx_phone',
       			'int_phone'
       			),
       'multiple values' => CONTENT_HANDLE_CORE,
@@ -910,6 +920,7 @@ function phone_supported_countrycode($countrycode) {
   	|| $countrycode == 'jo'
   	|| $countrycode == 'eg'
   	|| $countrycode == 'pk'
+   || $countrycode == 'mx'
   	|| $countrycode == 'int'
   	) {
         return TRUE;
