diff --git a/exercises/Exercise.php b/exercises/Exercise.php
index 83049da39a7634847c803d14c3238b5cbcf27e9a..1bdbc3f83d6377f9b19d4ef021f0cad5c8678886 100644
--- a/exercises/Exercise.php
+++ b/exercises/Exercise.php
@@ -126,10 +126,12 @@ abstract class Exercise extends SimpleORMap
     public static function purifyFlexibleInput($html)
     {
         if (Studip\Markup::isHtml($html)) {
-            if (preg_match('/<.*</s', $html)) {
+            $text = Studip\Markup::removeHtml($html);
+
+            if (preg_match('/<.*</s', $html) || kill_format($text) !== $text) {
                 $html = Studip\Markup::purifyHtml($html);
             } else {
-                $html = Studip\Markup::removeHtml($html);
+                $html = $text;
             }
         }
 
diff --git a/js/vips.js b/js/vips.js
index 35addc9ff77915dbf1eb687b8654b0da4c1c29f6..ab9887a63a74c3d3b0f7002a0b956b742f84778b 100644
--- a/js/vips.js
+++ b/js/vips.js
@@ -167,15 +167,13 @@ $(function() {
         var toggle = $(this).closest('.size_toggle');
         var items  = toggle.find('.character_input');
 
-        for (var i = 0; i < items.length; i += 2) {
-            var name = items[i].name;
-            items[i].name = items[i + 1].name;
-            items[i + 1].name = name;
-
-            var value = items[i].value;
-            items[i].value = items[i + 1].value;
-            items[i + 1].value = value;
-        }
+        var name = items[0].name;
+        items[0].name = items[1].name;
+        items[1].name = name;
+
+        var value = items[0].value;
+        items[0].value = items[1].value;
+        items[1].value = value;
 
         toggle.toggleClass('size_large').toggleClass('size_small');
         event.preventDefault();
diff --git a/lib/vips_common.inc.php b/lib/vips_common.inc.php
index fa6d6265203a7b9f29aec1764601f87ef9cdaa7e..27e9a6617d2bfdbee80a773a92a87974a0a41791 100644
--- a/lib/vips_common.inc.php
+++ b/lib/vips_common.inc.php
@@ -426,11 +426,7 @@ function check_exercise_access($exercise_id, $assignment_id)
  */
 function vips_flexible_input_size($text)
 {
-    if (strpos($text, "\n") !== false || Studip\Markup::isHtml($text) || kill_format($text) !== $text) {
-        return 'large';
-    }
-
-    return 'small';
+    return strpos($text, "\n") === false ? 'small' : 'large';
 }
 
 /**
diff --git a/views/exercises/rh_exercise/edit.php b/views/exercises/rh_exercise/edit.php
index 46ee23c926107cf2cdf8c9d9e03c7782d22173d1..061445581e63c0dd2ec493d042f889f717413e3c 100644
--- a/views/exercises/rh_exercise/edit.php
+++ b/views/exercises/rh_exercise/edit.php
@@ -15,7 +15,7 @@
         </tr>
     </thead>
 
-    <tbody class="dynamic_list">
+    <tbody class="dynamic_list" style="vertical-align: top;">
         <? foreach ($exercise->task['groups'] as $i => $group): ?>
             <? $size = vips_flexible_input_size($group) ?>