Index: /FCKeditor/trunk/_whatsnew.html
===================================================================
--- /FCKeditor/trunk/_whatsnew.html	(revision 2360)
+++ /FCKeditor/trunk/_whatsnew.html	(revision 2361)
@@ -45,4 +45,6 @@
 		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2333">#2333</a>] The &amp;gt;
 			character inside text wasn't encoded in Opera and Safari.</li>
+		<li>[<a target="_blank" href="http://dev.fckeditor.net/ticket/2467">#2467</a>] Fixed JavaScript
+			error with the fit window command in source mode.</li>
 	</ul>
 	<p>
Index: /FCKeditor/trunk/editor/_source/commandclasses/fckfitwindow.js
===================================================================
--- /FCKeditor/trunk/editor/_source/commandclasses/fckfitwindow.js	(revision 2360)
+++ /FCKeditor/trunk/editor/_source/commandclasses/fckfitwindow.js	(revision 2361)
@@ -39,7 +39,17 @@
 
 	// Save the current selection and scroll position.
-	var oRange = new FCKDomRange( FCK.EditorWindow ) ;
-	oRange.MoveToSelection() ;
-	var oEditorScrollPos = FCKTools.GetScrollPosition( FCK.EditorWindow ) ;
+	var oRange, oEditorScrollPos ;
+	if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
+	{
+		oRange = new FCKDomRange( FCK.EditorWindow ) ;
+		oRange.MoveToSelection() ;
+		oEditorScrollPos = FCKTools.GetScrollPosition( FCK.EditorWindow ) ;
+	}
+	else
+	{
+		var eTextarea = FCK.EditingArea.Textarea ;
+		oRange = !FCKBrowserInfo.IsIE && [ eTextarea.selectionStart, eTextarea.selectionEnd ] ;
+		oEditorScrollPos = [ eTextarea.scrollLeft, eTextarea.scrollTop ] ;
+	}
 
 	// No original style properties known? Go fullscreen.
@@ -168,6 +178,19 @@
 
 	// Restore the selection and scroll position of inside the document.
-	oRange.Select() ;
-	FCK.EditorWindow.scrollTo( oEditorScrollPos.X, oEditorScrollPos.Y ) ;
+	if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
+	{
+		oRange.Select() ;
+		FCK.EditorWindow.scrollTo( oEditorScrollPos.X, oEditorScrollPos.Y ) ;
+	}
+	else
+	{
+		if ( !FCKBrowserInfo.IsIE )
+		{
+			eTextarea.selectionStart = oRange[0] ;
+			eTextarea.selectionEnd = oRange[1] ;
+		}
+		eTextarea.scrollLeft = oEditorScrollPos[0] ;
+		eTextarea.scrollTop = oEditorScrollPos[1] ;
+	}
 }
 
