Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 7368)
+++ /CKEditor/trunk/CHANGES.html	(revision 7369)
@@ -50,4 +50,5 @@
 		<li><a href="http://dev.ckeditor.com/ticket/8132">#8132</a> : [IE9] Fix link line get broken when containing BRs.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/8629">#8629</a> : Optimized float panel layout when there's no enough spaces in viewport.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/7955">#7955</a> : [FF] Fix "Page Up"/"Page Down" in wysiwyg mode cause selection lost.</li>
 	</ul>
 	<h3>
Index: /CKEditor/trunk/_source/plugins/wysiwygarea/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/wysiwygarea/plugin.js	(revision 7368)
+++ /CKEditor/trunk/_source/plugins/wysiwygarea/plugin.js	(revision 7369)
@@ -779,4 +779,26 @@
 								}
 							}
+
+							// PageUp OR PageDown
+							if ( keyCode == 33 || keyCode == 34 )
+							{
+								if ( CKEDITOR.env.gecko )
+								{
+									var scroll = domWindow.getScrollPosition();
+									// Page up/down cause editor selection to leak
+									// outside of editable thus we try to intercept
+									// the behavior, while it affects only happen
+									// when editor contents are not overflowed. (#7955)
+									if ( !scroll.y )
+									{
+										var body = domDocument.getBody();
+										range = new CKEDITOR.dom.range( domDocument );
+										range[ keyCode == 33 ? 'moveToElementEditStart' : 'moveToElementEditEnd']( body );
+										range.select();
+										evt.data.preventDefault();
+									}
+								}
+
+							}
 						} );
 
