Index: test/minefield/two_col_table.html
===================================================================
--- test/minefield/two_col_table.html	(revision 691)
+++ test/minefield/two_col_table.html	(working copy)
@@ -9,7 +9,7 @@
 </style>
 </head>
 <body>
-<table><tr><td>HOUSTON, Texas (AP) -- NASA managers cleared Discovery to return home Friday, planning for a possible touchdown in New Mexico for only the second time in space shuttle history because of bad weather on both coasts.
+<table><tr><td><p>HOUSTON, Texas (AP) -- NASA managers cleared Discovery to return home Friday, planning for a possible touchdown in New Mexico for only the second time in space shuttle history because of bad weather on both coasts.
 
 As the crew woke up to Christmas music Friday morning, they still didn't know where the spacecraft would touch down.
 
@@ -41,7 +41,7 @@
 
 Flight controllers in Houston, trying their hand at holiday songwriting, sent the Discovery crew in their daily messages lyrics to their version of the song, "Let it Snow."
 
-"Oh, the weather at KSC is frightful. But at White Sands, it's so delightful. And since we have to land. Land White Sands. Land White Sands. Land White Sands," it said.</td>   
+"Oh, the weather at KSC is frightful. But at White Sands, it's so delightful. And since we have to land. Land White Sands. Land White Sands. Land White Sands," it said.</p></td>   
 <td>REAL DE CATORCE, Mexico (AP) -- So you want to go to Mexico, but you don't have a passport? There are still options, at least for one more year.
 
 Using just your driver's license or birth certificate, Americans can cross the border and spend a day buying trinkets and even a bottle of tequila to take home from one of Mexico's dozens of bordertowns, scattered between Tijuana and Matamoros. Or, if you have a long weekend and want to explore farther south, you can take a bus or drive to old mining towns that seem untouched by time, like the mountaintop Real de Catorce.
Index: test/minefield/forms.html
===================================================================
--- test/minefield/forms.html	(revision 691)
+++ test/minefield/forms.html	(working copy)
@@ -7,7 +7,40 @@
     <h1>Forms</h1>
 
     <h3>Table with some form controls in it</h3>
+    <p>HOUSTON, Texas (AP) -- NASA managers cleared Discovery to return home Friday, planning for a possible touchdown in New Mexico for only the second time in space shuttle history because of bad weather on both coasts.
 
+As the crew woke up to Christmas music Friday morning, they still didn't know where the spacecraft would touch down.
+
+"I have a lot of things to worry about on this flight that I can control, and the weather is something I can't," Discovery commander Mark Polansky told reporters from space. "I'm ready to land at any of the three sites."
+
+Discovery needs to be on the ground Saturday or it could run out of the fuel that powers its electrical system.
+
+NASA normally has more time for the landing, but the astronauts spent an extra day at the international space station this week to work on a stubborn solar array.
+
+Rain and clouds were forecast during the shuttle's first landing opportunity Friday afternoon at Kennedy Space Center in Florida, and crosswinds were expected at NASA's next-best option, Edwards Air Force Base in California's Mojave Desert.
+
+The third option, White Sands Space Harbor in New Mexico, hasn't been used for a shuttle landing in 24 years, and in that landing, sand on the runway contaminated the orbiter, and the brakes were damaged. It isn't normally equipped to service the shuttles, either.
+
+NASA managers hoped the weather would clear at one of the favored sites by the first landing opportunity, but they shipped a crane to White Sands anyway, along with equipment that purges gases and cools and heats the shuttle on the ground, thruster plugs and 60 workers from the Kennedy Space Center.
+
+"As we get closer, we'll have much more certainty on what we're really faced with," said entry director Norm Knight, who will direct the landing.
+
+The first landing opportunity was set for 3:56 p.m. EST at Kennedy Space Center. Other opportunities were 1 1/2 hours later at all three sites, followed by opportunities at Edwards and White Sands 1 1/2 hours after that. NASA managers were considering a last try at 8:36 p.m. ET at Edwards.
+
+NASA has seven more opportunities to land the shuttle on Saturday.
+
+Discovery originally had been scheduled to land on Thursday, but the flight was extended to allow a fourth spacewalk to fold up an accordion-like solar array on the space station.
+
+Thursday afternoon, after another inspection and more analysis of the shuttle's heat shields, the space agency pronounced Discovery safe to return. Shuttles are routinely inspected in flight now for any debris damage of the sort that doomed Columbia in 2003.
+
+During the 25 years of the shuttle program, there have been 63 landings at Kennedy, 50 at Edwards and just one at White Sands.
+
+Even though the White Sands runway regularly is used for practice landings by astronauts, NASA does not like to use it for the real event. It could take as long as two months to get the shuttle back to Florida from New Mexico, compared to a week from Edwards, threatening NASA's ability to get Discovery ready to fly again next October.
+
+Flight controllers in Houston, trying their hand at holiday songwriting, sent the Discovery crew in their daily messages lyrics to their version of the song, "Let it Snow."
+
+"Oh, the weather at KSC is frightful. But at White Sands, it's so delightful. And since we have to land. Land White Sands. Land White Sands. Land White Sands," it said.</p>
+
     <form>
       <table>
         <tr>
@@ -29,11 +62,12 @@
         </tr>
 
         <tr>
+          
           <td>
-            <label for="cb">Check box</label>
+            <input id="cb" type="checkbox" />
           </td>
           <td>
-            <input id="cb" type="checkbox" />
+            <label for="cb">Check box</label>
           </td>
         </tr>
 
@@ -86,41 +120,6 @@
           </td>
         </tr>
 
-        <tr>
-          <td>
-            <label for="msb">Multiple selection box</label>
-          </td>
-          <td>
-            <select id="msb" size="5" multiple="1">
-              <option>One</option>
-              <option selected="1">Two</option>
-              <option>Three</option>
-              <option>Four</option>
-            </select>
-          </td>
-        </tr>
-
-        <tr>
-          <td>
-            <label for="gsb">Grouped selection box</label>
-          </td>
-          <td>
-            <select id="gsb" size="10" multiple="1">
-              <optgroup label="Numbers">
-                <option selected="1">One</option>
-                <option>Two</option>
-                <option>Three</option>
-                <option>Four</option>
-              </optgroup>
-              <optgroup label="Letters">
-                <option>A</option>
-                <option>B</option>
-                <option selected="1">C</option>
-              </optgroup>
-            </select>
-          </td>
-        </tr>
-
     </table>
     
 
Index: src/AEConstants/Profile.py
===================================================================
--- src/AEConstants/Profile.py	(revision 691)
+++ src/AEConstants/Profile.py	(working copy)
@@ -47,6 +47,7 @@
            'GaimPerk', 
            'GTerminalPerk', 
            'FirefoxPerk',
+           'IPythonPerk',
            'SearchPerk'],
   'developer' :
           ['Keyboard', 
@@ -76,6 +77,7 @@
            'RawEventMonitor',
            'TaskMonitor', 
            'IOMonitor',
+           'IPythonPerk',
            'SearchPerk'],
   'monitors' :
           ['RawEventMonitor',
Index: src/Perks/AltShiftPerk.py
===================================================================
--- src/Perks/AltShiftPerk.py	(revision 691)
+++ src/Perks/AltShiftPerk.py	(working copy)
@@ -80,6 +80,9 @@
       self.registerCommand(kbd, 'search show chooser', False, pair+[kbd.AEK_S])
       self.registerCommand(kbd, 'search find prev', False, pair+[kbd.AEK_W])
       self.registerCommand(kbd, 'search find next', False, pair+[kbd.AEK_E])
+      
+      # ipython console perk
+      self.registerCommand(kbd, 'show ipython chooser', False, pair+[kbd.AEK_BACK_SLASH])
 
   def getDescription(self):
     return _('Defines hotkeys for functions in basic speech, Braille, review, '
Index: src/Perks/Makefile.am
===================================================================
--- src/Perks/Makefile.am	(revision 691)
+++ src/Perks/Makefile.am	(working copy)
@@ -12,5 +12,6 @@
 	LanguagePerk.py \
 	MetacityPerk.py \
 	ReviewPerk.py \
-        SearchPerk.py
+        SearchPerk.py \
+        IPythonPerk.py
 lsrdir = $(pkgpythondir)/Perks
Index: src/Perks/DefaultDialogPerk.py
===================================================================
--- src/Perks/DefaultDialogPerk.py	(revision 691)
+++ src/Perks/DefaultDialogPerk.py	(working copy)
@@ -369,3 +369,4 @@
       i = loaded.index(perk)
       # insert it into the perk stack
       self.insertPerk(i, perk)
+      
Index: src/Choosers/Makefile.am
===================================================================
--- src/Choosers/Makefile.am	(revision 691)
+++ src/Choosers/Makefile.am	(working copy)
@@ -6,5 +6,8 @@
 	perk_chooser.glade \
 	lsr_settings.glade \
 	uie_widget.glade \
-	search_chooser.glade
+	search_chooser.glade \
+        ipython_view.py \
+        IPythonChooser.py \
+        ipython_chooser.glade
 lsrdir = $(pkgpythondir)/Choosers
Index: src/LSRLog.py
===================================================================
--- src/LSRLog.py	(revision 691)
+++ src/LSRLog.py	(working copy)
@@ -84,6 +84,7 @@
     '''
     self.log = logging.getLogger('print')
     self.chunks = []
+    self.flush = None
     
   def write(self, data):
     '''
