Index: wp-includes/js/tinymce/plugins/wplink/css/wplink.dev.css
===================================================================
--- wp-includes/js/tinymce/plugins/wplink/css/wplink.dev.css	(revision 16873)
+++ wp-includes/js/tinymce/plugins/wplink/css/wplink.dev.css	(working copy)
@@ -1,11 +1,14 @@
-#wp-link p.howto {
-	margin: 3px;
-}
-#link-options {
+#wp-link #link-options {
 	padding: 10px 0 14px;
 	border-bottom: 1px solid #dfdfdf;
 	margin: 0 6px 14px;
 }
+#wp-link p.howto {
+	margin: 3px;
+}
+#wp-link p#internal-toggle {
+	margin: 3px 9px 0;
+}
 #wp-link label input[type="text"] {
 	width: 360px;
 	margin-top: 5px;
@@ -17,7 +20,7 @@
 	padding-right: 5px;
 }
 #wp-link .link-search-wrapper {
-	margin: 5px 5px 9px;
+	margin: 5px 6px 9px;
 	display: block;
 	overflow: hidden;
 }
Index: wp-includes/js/tinymce/plugins/wplink/js/wplink.dev.js
===================================================================
--- wp-includes/js/tinymce/plugins/wplink/js/wplink.dev.js	(revision 16873)
+++ wp-includes/js/tinymce/plugins/wplink/js/wplink.dev.js	(working copy)
@@ -9,6 +9,7 @@
 		riverBottomThreshold: 5,
 		keySensitivity: 100,
 		lastSearch: '',
+		startState: '',
 		init : function() {
 			inputs.dialog = $('#wp-link');
 			inputs.submit = $('#wp-link-submit');
@@ -32,6 +33,7 @@
 				e.preventDefault();
 			});
 			$('#wp-link-cancel').click( wpLink.cancel );
+			$('#internal-toggle a').click( wpLink.toggleInternalLinking );
 			
 			rivers.elements.bind('river-select', wpLink.updateFields );
 			
@@ -76,6 +78,8 @@
 			// Load the most recent results if this is the first time opening the panel.
 			if ( ! rivers.recent.ul.children().length )
 				rivers.recent.ajax();
+
+			wpLink.startState = getUserSetting('wplink', '1');
 		},
 		
 		cancel : function() {
@@ -242,6 +246,25 @@
 				funcContext = this;
 				funcTriggered = true;
 			};
+		},
+
+		toggleInternalLinking : function( event ) {
+			var panel = $('#search-panel'), d = $('.wp-dialog'), o,
+				v = 'block' == panel.css('display') ? '0' : '1';
+			panel.slideToggle(function(){
+				o = d.offset();
+				setUserSetting('wplink', v);
+				// Move the box if the box is now expanded, was opened in a collapsed state,
+				// and if it needs to be moved. (Judged by bottom not being positive or
+				// bottom being smaller than top.)
+				// @todo calculate bottom offset.
+				alert(o.bottom + ' ' + o.top);
+				if ( '1' == v && '1' != wpLink.startState ) { // && !( o.bottom > 0 && o.bottom > o.top ) ) {
+					d.animate({'top': Math.max(0, d.position().top - 115)}, 'fast');
+					wpLink.startState = '1';
+				}
+			});
+			event.preventDefault();
 		}
 	}
 	
Index: wp-admin/includes/internal-linking.php
===================================================================
--- wp-admin/includes/internal-linking.php	(revision 16873)
+++ wp-admin/includes/internal-linking.php	(working copy)
@@ -84,9 +84,9 @@
 			<label for="link-target-checkbox"><input type="checkbox" id="link-target-checkbox" tabindex="30" /> <?php _e( 'Open link in a new window/tab' ); ?></label>
 		</div>
 	</div>
-	<div id="search-panel">
+	<p class="howto" id="internal-toggle"><?php _e( 'Or, link to existing site content:' ); ?> <a href="#">Expand/Collapse</a></p>
+	<div id="search-panel"<?php if ( '0' == get_user_setting( 'wplink', '1' ) ) echo ' style="display:none"'; ?>>
 		<div class="link-search-wrapper">
-			<p class="howto"><?php _e( 'Or, link to existing site content:' ); ?></p>
 			<label for="search-field">
 				<span><?php _e( 'Search' ); ?></span>
 				<input type="text" id="search-field" class="link-search-field" tabindex="60" autocomplete="off" />
