Index: content_moderation.workflow.inc
===================================================================
--- content_moderation.workflow.inc	(revision 201)
+++ content_moderation.workflow.inc	(working copy)
@@ -94,15 +94,18 @@
     _content_moderation_set_live($node->vid,$node->nid);
     drupal_set_message(t("This revision !vid has now been published as the new live version.", array('!vid' => $node->vid)));
   }
-
+  
   // History entry.
   _content_moderation_save_history($node,$curstate,$nextstate,$user->uid,$comment);
   drupal_set_message(t('The revisions state has been successfully updated to @state',array('@state' => $nextstate)));
-
-  if($nextstate == 'live') {
+  
+  // If the state is live OR there is only one revision (issue 792202)
+  $revisions = _content_moderation_get_latest_revisions($node->nid, 2);
+  if($nextstate == 'live' || count($revisions) == 1) {
     drupal_goto('node/'.$node->nid);
   }
   else {
+    // not live status OR more than one revision
     drupal_goto("node/{$node->nid}/revisions/{$node->vid}/view");
   }
 }
Index: content_moderation_info_block.tpl.php
===================================================================
--- content_moderation_info_block.tpl.php	(revision 201)
+++ content_moderation_info_block.tpl.php	(working copy)
@@ -32,9 +32,17 @@
 
 }
 
-$view_current_link = l($view_icon,"node/{$node->nid}/revisions/{$node->vid}/view",array('html' => true, 'attributes' => array( 'title' => t('View this revision.') ) ));
-$current_rev_link = l($node->vid,"node/{$node->nid}/revisions/{$node->vid}/view",array('html' => true, 'attributes' => array( 'title' => t('View this revision.') ) ));
+$revisions = _content_moderation_get_latest_revisions($node->nid, 2);
+if(count($revisions) == 1) {
+  $rev_url = "node/{$node->nid}";
+}
+else {
+  $rev_url = "node/{$node->nid}/revisions/{$node->vid}/view";
+}
 
+$view_current_link = l($view_icon,$rev_url,array('html' => true, 'attributes' => array( 'title' => t('View this revision.') ) ));
+$current_rev_link = l($node->vid,$rev_url,array('html' => true, 'attributes' => array( 'title' => t('View this revision.') ) ));
+
 if(module_exists('diff')){
   $compare_live = l($rev_icon,$links['compare_with_live'],array('html' => true, 'attributes' => array( 'title' => t('Compare this revision with the live revision.') ) ));
   $compare = l($rev_icon,$links['compare'],array('html' => true, 'attributes' => array( 'title' => t('List all revisions.') ) ));
Index: content_moderation_revisions_list.tpl.php
===================================================================
--- content_moderation_revisions_list.tpl.php	(revision 201)
+++ content_moderation_revisions_list.tpl.php	(working copy)
@@ -27,10 +27,18 @@
   $edit_state_link = '';
   $compare_live = '';
   $compare = '';
+  
+  // only one revision? (issue 792202)
+  if (count($revisions) == 1) {
+    $rev_url = "node/{$rev->nid}";
+  }
+  else {
+    $rev_url = "node/{$rev->nid}/revisions/{$rev->vid}/view";
+  }
+    
+  $view_link = l($view_icon,$rev_url,array('html' => true, 'attributes' => array( 'title' => t('View revision @rev.',array('@rev' => $rev->vid) ))));
+  $revision_link = l($rev->vid,$rev_url,array('html' => true, 'attributes' => array( 'title' => t('View revision @rev.',array('@rev' => $rev->vid) ))));
 
-  $view_link = l($view_icon,"node/{$rev->nid}/revisions/{$rev->vid}/view",array('html' => true, 'attributes' => array( 'title' => t('View revision @rev.',array('@rev' => $rev->vid) ))));
-  $revision_link = l($rev->vid,"node/{$rev->nid}/revisions/{$rev->vid}/view",array('html' => true, 'attributes' => array( 'title' => t('View revision @rev.',array('@rev' => $rev->vid) ))));
-
   if(_content_moderation_statechange_allowed($rev->vid) !== false) {
     $edit_state_link = l($edit_state_icon,_content_moderation_change_state_link($rev->vid,$rev->nid),array('html' => true, 'attributes' => array( 'title' => t('Change state of revision @rev.',array('@rev' => $rev->vid) ))));
   }
