diff --git a/modules/sms_user/tests/sms_user.test b/modules/sms_user/tests/sms_user.test
index 3263e83..f8f11bc 100644
--- a/modules/sms_user/tests/sms_user.test
+++ b/modules/sms_user/tests/sms_user.test
@@ -117,20 +117,39 @@ class SmsUserWebTest extends DrupalWebTestCase {
     }
 
     // Check that the user registration page honors the mobile number field
-    // visibility settings.
+    // visibility and required options.
     $this->drupalLogout();
+    // Mobile fields disabled.
     variable_set('sms_user_registration_form', 0);
     $this->drupalGet('user/register');
     $this->assertNoField('sms_user[number]', 'No number field in registration form.');
 
+    // Mobile fields optional.
     variable_set('sms_user_registration_form', 1);
     $this->drupalGet('user/register');
     $this->assertField('sms_user[number]', 'Number field in registration form.');
+    // Post without the mobile number and confirm success.
+    $edit = array(
+      'name' => $this->randomName(),
+      'mail' => $this->randomName() . '@example.com',
+    );
+    $this->drupalPost(NULL, $edit, 'Create new account');
+    $this->assertUrl('<front>');
+    $this->assertText('Thank you for applying for an account.', 'Successfully posted registration form without optional mobile number.');
 
+    // Mobile fields required.
     variable_set('sms_user_registration_form', 2);
     $this->drupalGet('user/register');
     $this->assertField('sms_user[number]', 'Number field in registration form.');
     $this->assertText('Phone number *', 'Number field is required.');
+    // Post without the mobile number and confirm validation failure.
+    $edit = array(
+      'name' => $this->randomName(),
+      'mail' => $this->randomName() . '@example.com',
+    );
+    $this->drupalPost(NULL, $edit, 'Create new account');
+    $this->assertUrl('user/register');
+    $this->assertText('Phone number field is required.', 'Failed to post registration form without required mobile number.');
   }
 
   /**
diff --git a/sms.module b/sms.module
index 2ae7d01..724191d 100644
--- a/sms.module
+++ b/sms.module
@@ -703,9 +703,9 @@ function sms_formatter($number, $format = 1) {
  */
 function sms_validate_number(&$number, $options = array()) {
   $errors = array();
-  // Ensure there are actual numeric characters.
-  if (!strlen(preg_replace('/[^0-9]/', '', $number))) {
-    $errors[] = t('No phone number provided.');
+  // Ensure there are actual numeric characters, but allow empty strings.
+  if ($number !== '' && preg_replace('/[^0-9]/', '', $number) === '') {
+    $errors[] = t('Invalid phone number provided.');
     // No need for further validation.
     return $errors;
   }
