Index: src/TortoiseProc/LogDialog/LogDlg.cpp
===================================================================
--- src/TortoiseProc/LogDialog/LogDlg.cpp	(revision 18185)
+++ src/TortoiseProc/LogDialog/LogDlg.cpp	(working copy)
@@ -704,14 +704,14 @@
 	UpdateData();
 	INT_PTR entry = m_btnShow.GetCurrentEntry();
 	if (bForceAll)
-		entry = 0;
-	switch (entry)
+			entry = 0;
+ 	switch (entry)
 	{
 	case 0:	// show all
 		m_endrev = 0;
 		m_startrev = m_LogRevision;
 		if (m_bStrict)
-			m_bShowedAll = true;
+				m_bShowedAll = true;
 		break;
 	case 1: // show range
 		{
@@ -720,9 +720,7 @@
 			dlg.SetStartRevision(m_startrev);
 			dlg.SetEndRevision( (m_endrev>=0) ? m_endrev : 0);
 			if (dlg.DoModal()!=IDOK)
-			{
 				return;
-			}
 			m_endrev = dlg.GetEndRevision();
 			m_startrev = dlg.GetStartRevision();
 			if (((m_endrev.IsNumber())&&(m_startrev.IsNumber()))||
@@ -751,6 +749,11 @@
     m_LogList.SetItemCountEx(0);
 	m_LogList.Invalidate();
 	CWnd * pMsgView = GetDlgItem(IDC_MSGVIEW);
+	if (m_startrev > m_head)
+	{
+		m_LogList.ShowText(_T("No Such Revision ")+ m_startrev.ToString(), true);
+	    return;
+	}
 	pMsgView->SetWindowText(_T(""));
 
 	SetSortArrow(&m_LogList, -1, true);
@@ -1044,7 +1047,10 @@
     	    svn_revnum_t head = -1;
             succeeded = GetRootAndHead(m_path, rootpath, head);
             if (m_startrev == SVNRev::REV_HEAD) 
+			{
 	            m_startrev = head;
+				m_head = head;
+			}
             if (m_endrev == SVNRev::REV_HEAD)
 	            m_endrev = head;
         }
Index: src/TortoiseProc/LogDialog/LogDlg.h
===================================================================
--- src/TortoiseProc/LogDialog/LogDlg.h	(revision 18185)
+++ src/TortoiseProc/LogDialog/LogDlg.h	(working copy)
@@ -216,6 +216,7 @@
 	CTSVNPath			m_mergePath;
 	SVNRev				m_pegrev;
 	SVNRev				m_startrev;
+	svn_revnum_t    	m_head;     ///<only used in Range case of log
 	bool				m_bRefresh;
 	svn_revnum_t    	m_temprev;  ///< only used during ReceiveLog
 	SVNRev				m_LogRevision;
