diff --git a/settings/css/oauth.css b/settings/css/oauth.css
index 8bc8c8d428b42be6c9cbf1a64825a6bb446b58ea..ccdb98cfa396a83bb37d8ceb5c69c5629e5de5e7 100644
--- a/settings/css/oauth.css
+++ b/settings/css/oauth.css
@@ -1,2 +1,4 @@
 .guest-container{ width:35%; margin: 2em auto 0 auto; }
-#oauth-request button{ float: right; }
\ No newline at end of file
+#oauth-request a.button{ float: right; }
+#oauth-request ul li{ list-style: disc; }
+#oauth-request ul { margin-left: 2em; margin-top: 1em; }
diff --git a/settings/oauth.php b/settings/oauth.php
index 5fe21940b042e22cad1bea431a8621fcd5447acd..2592b926d179e8010c365f1f0e3608782c2fd688 100644
--- a/settings/oauth.php
+++ b/settings/oauth.php
@@ -23,13 +23,36 @@ switch($operation){
 		// Example
 		$consumer = array(
 			'name' => 'Firefox Bookmark Sync',
-			'scopes' => array('bookmarks'),
+			'scopes' => array('ookmarks'),
 		);
 		
-		$t = new OC_Template('settings', 'oauth', 'guest');
-		OC_Util::addStyle('settings', 'oauth');
-		$t->assign('consumer', $consumer);
-		$t->printPage();
+		// Check that the scopes are real and installed
+		$apps = OC_App::getEnabledApps();
+		$notfound = array();
+		foreach($consumer['scopes'] as $requiredapp){
+			if(!in_array($requiredapp, $apps)){
+				$notfound[] = $requiredapp;
+			}
+		}
+		if(!empty($notfound)){
+			// We need more apps :( Show error
+			if(count($notfound)==1){
+				$message = 'requires that you have an extra app installed on your ownCloud. Please contact your ownCloud administrator and ask them to install the app below.';
+			} else {
+				$message = 'requires that you have some extra apps installed on your ownCloud. Please contract your ownCloud administrator and ask them to install the apps below.';
+			}
+			$t = new OC_Template('settings', 'oauth-required-apps', 'guest');
+			OC_Util::addStyle('settings', 'oauth');
+			$t->assign('requiredapps', $notfound);
+			$t->assign('consumer', $consumer);
+			$t->assign('message', $message);
+			$t->printPage();
+		} else {
+			$t = new OC_Template('settings', 'oauth', 'guest');
+			OC_Util::addStyle('settings', 'oauth');
+			$t->assign('consumer', $consumer);
+			$t->printPage();
+		}
 	break;
 	
 	case 'access_token';
diff --git a/settings/templates/oauth-required-apps.php b/settings/templates/oauth-required-apps.php
new file mode 100644
index 0000000000000000000000000000000000000000..d4fce54c59c1f96d2ee28fe2581c9b34930635a0
--- /dev/null
+++ b/settings/templates/oauth-required-apps.php
@@ -0,0 +1,19 @@
+<?php
+/**
+ * Copyright (c) 2012, Tom Needham <tom@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or later.
+ * See the COPYING-README file.
+ */
+?>
+<div id="oauth-request" class="guest-container">
+	<p><strong><?php echo $_['consumer']['name'].'</strong> '.$_['message']; ?></p>
+	<ul>
+		<?php
+		// Foreach requested scope
+		foreach($_['requiredapps'] as $requiredapp){
+			echo '<li>'.$requiredapp.'</li>';
+		}
+		?>
+	</ul>
+	<a href="<?php echo OC::$WEBROOT; ?>" id="back-home" class="button">Back to ownCloud</a>
+</div>
diff --git a/settings/templates/oauth.php b/settings/templates/oauth.php
index b9fa67d8a35ddb839d712582dc06d3e3fd65cbbf..053a8aee6d3f1fa946b580cb05d7471b31420968 100644
--- a/settings/templates/oauth.php
+++ b/settings/templates/oauth.php
@@ -6,7 +6,7 @@
  */
 ?>
 <div id="oauth-request" class="guest-container">
-	<p><strong><?php echo $_['consumer']['name']; ?></strong> is requesting permission to read, write, modify and delete data from the following apps:</p>
+	<p><strong><?php echo $_['consumer']['name']; ?></strong> is requesting your permission to read, write, modify and delete data from the following apps:</p>
 	<ul>
 		<?php
 		// Foreach requested scope
@@ -15,6 +15,6 @@
 		}
 		?>
 	</ul>
-	<button>Allow</button>
-	<button>Disallow</button>
+	<a href="#" class="button">Allow</a>
+	<a href="#" class="button">Disallow</a>
 </div>