diff --git a/plugins/cas_auth_unl/actions/login.php b/plugins/cas_auth_unl/actions/login.php
index 9b469b2bdf3f1ac854fe07464e488b4484c66050..6026af10e7986d60ba05295a72eb510c789eb3f2 100644
--- a/plugins/cas_auth_unl/actions/login.php
+++ b/plugins/cas_auth_unl/actions/login.php
@@ -1,112 +1,95 @@
 <?php
-	/**
-	 * Elgg UNL CAS authentication login action
-	 * 
-	 * @package cas_auth_unl
-	 * @license BSD http://www1.unl.edu/wdn/wiki/Software_License
-	 * @author University of Nebraska-Lincoln
-	 * @copyright 2010 Regents of the University of Nebraska 
-	 * @link http://www.unl.edu/
-	 * 
-	 * Builds upon the original login action at elgg/actions/login.php by Curverider Ltd
-	 * 
-	 */
-	 
-	// Safety first
-		action_gatekeeper();
-
-    // Get $_GET inputs
-       
-        $username = get_input('username');
-        $password = get_input("password");
-        $persistent = get_input("persistent", false);
-        $usecas = get_input('usecas'); 
-        //this is available once they have given their email
-        $email = get_input('email');
-        //look for view=mobile
-        $view = get_input('view');
-        
-    // 1. Do the regular elgg login if username and password are set 
-    	$result = false;          
-        if (!empty($username) && !empty($password)) {
-        	if ($user = authenticate($username,$password)) {
-        		$result = login($user, $persistent);
-        	}
-        }
+/**
+ * Elgg UNL CAS authentication login action
+ * 
+ * @package cas_auth_unl
+ * @license BSD http://www1.unl.edu/wdn/wiki/Software_License
+ * @author University of Nebraska-Lincoln
+ * @copyright 2010 Regents of the University of Nebraska 
+ * @link http://www.unl.edu/
+ * 
+ * Builds upon the original login action at elgg/actions/login.php by Curverider Ltd
+ * 
+ */
+ 
+// Get $_GET inputs 
+$username = get_input('username');
+$password = get_input("password");
+$persistent = get_input("persistent", false);
+$usecas = get_input('usecas'); 
+//this is available once they have given their email
+$email = get_input('email');
+//look for view=mobile
+$view = get_input('view');
         
-    // 2. Otherwise try CAS if that button was clicked
-        if ($usecas == 'yes') {
-			$casObject = new elggSimpleCas();
-			if (!$casObject->checkCas()) {
-				global $CONFIG;
-				$ts = time();
-				$token = generate_action_token($ts); 
-		        SimpleCAS::setURL($CONFIG->url.'action/login?usecas=yes&__elgg_ts='.$ts.'&__elgg_token='.$token.'&view='.$view);
-        		$casObject->forceCas();
-			} else {
-				$cas_user = $casObject->getUserCas(); 
-				if ($user = $casObject->casAuthenticate($cas_user,$email,$view)) {
-					$result = login($user);
-					if ($result)
-						$_SESSION['loggedInWithCas'] = true;
-				} 
-			}
-        	
-			
-    	} 
+// 1. Do the regular elgg login if username and password are set 
+$result = false;          
+if (!empty($username) && !empty($password)) {
+  	if ($user = authenticate($username,$password)) {
+   		$result = login($user, $persistent);
+   	}
+}
         
-    // Set the system_message as appropriate
-        
-        if ($result) {
-            system_message(elgg_echo('loginok'));
-            if ($_SESSION['last_forward_from'])
-            {
-            	$forward_url = $_SESSION['last_forward_from'];
-            	$_SESSION['last_forward_from'] = "";
-            	forward($forward_url);
-            }
-            else
-            {
-            	if (
-            		(isadminloggedin()) &&
-            		(!datalist_get('first_admin_login'))
-            	) 
-            	{
-            		system_message(elgg_echo('firstadminlogininstructions'));
-            		
-            		datalist_set('first_admin_login', time());
-            		
-            		forward('pg/admin/plugins');
-            	} else	{ 
-            		$lastlogin_date = $_SESSION['user']->last_login;
-            		if (!$lastlogin_date && $view != 'mobile')
-            			forward("mod/profile/edit.php?firstlogin=yes");
-            		else
-            			forward("pg/dashboard/");
-            	}
+// 2. Otherwise try CAS if that button was clicked
+if ($usecas == 'yes') {
+	$casObject = new elggSimpleCas();
+	if (!$casObject->checkCas()) {
+		global $CONFIG;
+		$ts = time();
+		$token = generate_action_token($ts); 
+        SimpleCAS::setURL($CONFIG->url.'action/login?usecas=yes&__elgg_ts='.$ts.'&__elgg_token='.$token.'&view='.$view);
+   		$casObject->forceCas();
+	} else {
+		$cas_user = $casObject->getUserCas(); 
+		if ($user = $casObject->casAuthenticate($cas_user,$email,$view)) {
+			$result = login($user);
+			if ($result)
+				$_SESSION['loggedInWithCas'] = true;
+		} 
+	}
+}
+
+// Set the system_message as appropriate
+if ($result) {
+    system_message(elgg_echo('loginok'));
+    if (isset($_SESSION['last_forward_from']) && $_SESSION['last_forward_from']) {
+        $forward_url = $_SESSION['last_forward_from'];
+        unset($_SESSION['last_forward_from']);
+        forward($forward_url);
+    } else {
+        if ( (isadminloggedin()) && (!datalist_get('first_admin_login'))) {
+            system_message(elgg_echo('firstadminlogininstructions'));
+            datalist_set('first_admin_login', time());
+
+            forward('pg/admin/plugins');
+        } else if ($_SESSION['user']->last_login == '0' && $view != 'mobile') {
+            forward('mod/profile/edit.php?username='.$_SESSION['username'].'&firstlogin=yes');
+        } else if (get_input('returntoreferer')) {
+            forward($_SERVER['HTTP_REFERER']);
+        } else {
+            forward('pg/dashboard/');
+        }
+    }
+} else {
+    $error_msg = elgg_echo('loginerror');
+    // figure out why the login failed
+    if (!empty($username) && !empty($password)) {
+        // See if it exists and is disabled
+        $access_status = access_get_show_hidden_status();
+        access_show_hidden_entities(true);
+        if (($user = get_user_by_username($username)) && !$user->validated) {
+            // give plugins a chance to respond
+            if (!trigger_plugin_hook('unvalidated_login_attempt','user',array('entity'=>$user))) {
+                // if plugins have not registered an action, the default action is to
+                // trigger the validation event again and assume that the validation
+                // event will display an appropriate message
+                trigger_elgg_event('validate', 'user', $user);
             }
         } else {
-        	$error_msg = elgg_echo('loginerror');
-        	// figure out why the login failed
-        	if (!empty($username) && !empty($password)) {
-        		// See if it exists and is disabled
-				$access_status = access_get_show_hidden_status();
-				access_show_hidden_entities(true);
-        		if (($user = get_user_by_username($username)) && !$user->validated) {
-        			// give plugins a chance to respond
-        			if (!trigger_plugin_hook('unvalidated_login_attempt','user',array('entity'=>$user))) {
-        				// if plugins have not registered an action, the default action is to
-        				// trigger the validation event again and assume that the validation
-        				// event will display an appropriate message
-						trigger_elgg_event('validate', 'user', $user);
-        			}
-        		} else {
-        			 register_error(elgg_echo('loginerror'));
-        		}
-        		access_show_hidden_entities($access_status);
-        	} else {
-            	register_error(elgg_echo('loginerror'));
-        	}
+            register_error(elgg_echo('loginerror'));
         }
-      
-?>
\ No newline at end of file
+        access_show_hidden_entities($access_status);
+    } else {
+        register_error(elgg_echo('loginerror'));
+    }
+}