diff --git a/webform_validation.validators.inc b/webform_validation.validators.inc
index d76cb93..9137cd1 100644
--- a/webform_validation.validators.inc
+++ b/webform_validation.validators.inc
@@ -328,6 +328,14 @@ function webform_validation_webform_validation_validators() {
       ),
       'description' => t("Validates that user-entered data matches a username."),
     ),
+    'valid_url' => array(
+      'name' => 'Valid URL',
+      'component_types' => array(
+        'textfield',
+        'hidden',
+      ),
+      'description' => t('Validates that the user-entered data is a valid URL using Drupal\'s built in !link.', array('!link' => l(t('valid_url()'), 'http://api.drupal.org/api/drupal/includes!common.inc/function/valid_url/7'))),
+    ),
   );
 
   if (module_exists('email_verify')) {
@@ -683,6 +691,15 @@ function webform_validation_webform_validation_validate($validator_name, $items,
         }
         return $errors;
         break;
+      case 'valid_url':
+        foreach ($items as $key => $val) {
+          $val = (string) $val;
+          if ($val && !valid_url($val, TRUE)) {
+            $errors[$key] = t('%item does not appear to be a valid URL.', array('%item' => $components[$key]['name']));
+          }
+        }
+        return $errors;
+        break;
       case 'email_verify':
         if (module_exists('email_verify')) {
           foreach ($items as $key => $val) {
