Index: src/wp-admin/js/customize-nav-menus.js
===================================================================
--- src/wp-admin/js/customize-nav-menus.js	(revision 32993)
+++ src/wp-admin/js/customize-nav-menus.js	(working copy)
@@ -314,13 +314,14 @@
 			request.done(function( data ) {
 				var items, typeInner;
 				items = data.items;
+				typeInner = $( '#available-menu-items-' + type + ' .accordion-section-content' );
 				if ( 0 === items.length ) {
 					self.pages[ type ] = -1;
+					typeInner.append( noItemTemplate() );
 					return;
 				}
 				items = new api.Menus.AvailableItemCollection( items ); // @todo Why is this collection created and then thrown away?
-				self.collection.add( items.models );
-				typeInner = $( '#available-menu-items-' + type + ' .accordion-section-content' );
+				self.collection.add( items.models );				
 				items.each(function( menu_item ) {
 					typeInner.append( itemTemplate( menu_item.attributes ) );
 				});
Index: src/wp-includes/class-wp-customize-nav-menus.php
===================================================================
--- src/wp-includes/class-wp-customize-nav-menus.php	(revision 32993)
+++ src/wp-includes/class-wp-customize-nav-menus.php	(working copy)
@@ -589,6 +589,10 @@
 			</div>
 		</script>
 
+		<script type="text/html" id="tmpl-not-available-menu-item">			
+			<span class="item-title"><?php _e( 'No items' ) ?></span>
+		</script>
+
 		<script type="text/html" id="tmpl-available-menu-item-type">
 			<div id="available-menu-items-{{ data.type }}" class="accordion-section">
 				<h4 class="accordion-section-title">{{ data.type_label }}</h4>
