diff --git a/oauth_common.consumers.inc b/oauth_common.consumers.inc
index 624c464..264f10d 100644
--- a/oauth_common.consumers.inc
+++ b/oauth_common.consumers.inc
@@ -110,6 +110,7 @@ function oauth_common_form_consumer($form, &$form_state, $consumer) {
     '#title' => t('Callback url'),
     '#required' => FALSE,
     '#default_value' => $consumer->callback_url,
+    '#description' => t('You must include a schema for this to work correctly, ie. http:// or iphoneappname://'),
   );
 
   if ($consumer->in_database) {
@@ -192,14 +193,11 @@ function oauth_common_form_consumer_submit($form, &$form_state) {
   if (empty($values['callback_url'])) {
     $values['callback_url'] = 'oob';
   }
-  // Add scheme if missing, and if the callback_url isn't out of band.
-  else if ($values['callback_url'] != 'oob' && preg_match('/^http:\/\/|https:\/\//', $values['callback_url']) === 0) {
-    //TODO: What about custom callback url:s used by eg iphone-apps? We should allow them - right?
-    $values['callback_url'] = 'http://' . $values['callback_url'];
-  }
 
-  // Remove trailing slash
-  $values['callback_url'] = rtrim($values['callback_url'], '/');
+  if(substr($values['callback_url'], strlen($values['callback_url']) - 2) != '//') {
+   // Remove trailing slash
+   $values['callback_url'] = rtrim($values['callback_url'], '/'); 
+  }
 
   // Transfer editable attributes to the consumer.
   $names = array('name', 'callback_url', 'context');
