--- old/get-recent-comments.php	2008-02-19 20:37:38.000000000 +0100
+++ new/get-recent-comments.php	2008-02-23 01:50:17.000000000 +0100
@@ -896,7 +896,7 @@
 
 function kjgrc_cache($type)
 {
-	global $wpdb,$kjgrc_cache;
+	global $wpdb,$kjgrc_cache,$temp_cache;
 	$use_cache = FALSE;
 	if (kjgrc_use_cache()) {
 		$use_cache = TRUE;
@@ -910,15 +910,31 @@
 	if ($kjgrc_cache == NULL) {
 		// kjgrc_log("return cache WITH caching");
 		$kjgrc_cache = get_option('kjgrc_cache');
-		if ($kjgrc_cache == NULL) {
+		if ($kjgrc_cache[$type] == NULL) {
 			// kjgrc_log("write new cache");
-			$kjgrc_cache[comments] =  base64_encode(kjgrc_create_recent_comments());
-			$kjgrc_cache[trackbacks] = base64_encode(kjgrc_create_recent_trackbacks());
-			update_option('kjgrc_cache',$kjgrc_cache);
+			if ($type == 'trackbacks') {
+				$kjgrc_cache[$type] = base64_encode(kjgrc_create_recent_trackbacks());
+			} else {
+				$kjgrc_cache[$type] = base64_encode(kjgrc_create_recent_comments());
+			}
+			$temp_cache = $kjgrc_cache[$type];
+		} else {
+			print "\n\n<!-- using cached recent comments -->\n\n";
 		}
-		$kjgrc_cache[comments] = kjgrc_prepare_cache(base64_decode($kjgrc_cache[comments]));
-		$kjgrc_cache[trackbacks] = kjgrc_prepare_cache(base64_decode($kjgrc_cache[trackbacks]));
+	} else {
+		if ($kjgrc_cache[$type] == NULL) {
+			if ($type == 'trackbacks') {
+				$kjgrc_cache[$type] = base64_encode(kjgrc_create_recent_trackbacks());
+				$kjgrc_cache[comments] = $temp_cache;
+			} else {
+				$kjgrc_cache[$type] = base64_encode(kjgrc_create_recent_comments());
+				$kjgrc_cache[trackbacks] = $temp_cache;
+			}
+			update_option('kjgrc_cache',$kjgrc_cache);
+			print "\n\n<!-- caching recent comments -->\n\n";
+		} 
 	}
+	$kjgrc_cache[$type] = kjgrc_prepare_cache(base64_decode($kjgrc_cache[$type]));
 	// search and replace up to date information
 	return $kjgrc_cache[$type];
 }
@@ -926,7 +942,7 @@
 
 function kjgrc_create_recent_trackbacks( $caller = '')
 {
-	global $kjgrc_we_are_a_widget,$kjgrc_widget_args;;
+	global $kjgrc_we_are_a_widget,$kjgrc_widget_args;
 
 	// $entries = kjgrc_get_entries($max_comments,$chars_per_comment,$chars_per_word,$format,$query,0,$caller);
 	$entries = kjgrc_get_comments2('grt',$caller);
@@ -934,7 +950,7 @@
 	if ($kjgrc_we_are_a_widget == TRUE) {
         	extract($kjgrc_widget_args);
         	return $before_widget . $before_title . kjgrc_get_option("grt","sidebar_title") . $after_title .
-        	'<div id="get_recent_comments_wrap"><ul>' .
+        	'<div id="get_recent_trackbacks_wrap"><ul>' .
 		$entries .
 		'</ul></div>' .
 		$after_widget;
