diff -ubBr --exclude=uploads --exclude=images --exclude=images_pcf --exclude=config.php --exclude=languages --exclude=settings.php Upload/inc/functions_post.php forum/inc/functions_post.php
--- Upload/inc/functions_post.php	2006-09-03 15:03:47.000000000 +0200
+++ forum/inc/functions_post.php	2006-09-11 15:28:31.000000000 +0200
@@ -224,7 +224,11 @@
 		}
 		else
 		{
-			if($post['away'] == "yes" && $mybb->settings['allowaway'] != "no")
+			// KK: auto_back_from_away.mod
+			if ($post['returndate'])
+				$returnhome = explode("-", $post['returndate']);
+//			if($post['away'] == "yes" && $mybb->settings['allowaway'] != "no")
+			if($post['away'] == "yes" && $mybb->settings['allowaway'] != "no" && (($post['returndate'] == "") || (mktime(0, 0, 0, $returnhome[1], $returnhome[0], $returnhome[2]) > time())))
 			{
 				eval("\$post['onlinestatus'] = \"".$templates->get("postbit_away")."\";");
 			}
diff -ubBr --exclude=uploads --exclude=images --exclude=images_pcf --exclude=config.php --exclude=languages --exclude=settings.php Upload/member.php forum/member.php
--- Upload/member.php	2006-09-03 15:09:02.000000000 +0200
+++ forum/member.php	2006-09-11 15:25:14.000000000 +0200
@@ -1146,11 +1156,16 @@
 		else
 		{
 			$returnhome = explode("-", $memprofile['returndate']);
-			$returnmkdate = mktime(0, 0, 0, $returnhome[1], $returnhome[0], $returnhome[2]);
+//			$returnmkdate = mktime(0, 0, 0, $returnhome[1], $returnhome[0], $returnhome[2]); // KK: away_time_fix.bug
+			$returnmkdate = gmmktime(0, 0, 0, $returnhome[1], $returnhome[0], $returnhome[2]);
 			$returndate = my_date($mybb->settings['dateformat'], $returnmkdate);
 		}
+		// KK: auto_back_from_away.mod
+		if ($memprofile['returndate'] && ($returnmkdate > time()))
+		{
 		eval("\$awaybit = \"".$templates->get("member_profile_away")."\";");
 	}
+	}
 	if($memprofile['dst'] == "yes")
 	{
 		$memprofile['timezone']++;

