diff --git a/core/forms.py b/core/forms.py
index b16aa15..c38a699 100644
--- a/core/forms.py
+++ b/core/forms.py
@@ -9,34 +9,32 @@ from datetime import date
 from tinymce.widgets import TinyMCE
 
 class CaveForm(ModelForm):
-    underground_description = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
-    explorers = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
-    equipment = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
-    survey = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
-    kataster_status = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
-    underground_centre_line = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
-    notes = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
-    references = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
+    underground_description = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
+    explorers = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
+    equipment = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
+    survey = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
+    kataster_status = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
+    underground_centre_line = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
+    notes = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
+    references = forms.CharField(required = False, widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
     class Meta:
         model = Cave
 
+class CaveAndEntranceForm(forms.Form):
+    entrance = forms.ChoiceField(choices=[("", "-----")] + 
+                                         [(x.slug, x.slug) 
+                                          for x 
+                                          in Entrance.objects.all()])
+    entrance_letter = forms.CharField(max_length=20)
+    non_public = forms.BooleanField()
+
+CaveAndEntranceFormSet = formset_factory(CaveAndEntranceForm)
+
 
 class EntranceForm(ModelForm):
     class Meta:
         model = Entrance
 
-class CaveForm(ModelForm):
-    underground_description = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 30}))
-    explorers = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
-    equipment = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
-    survey = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
-    kataster_status = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
-    underground_centre_line = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
-    notes = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
-    references = forms.CharField(widget=TinyMCE(attrs={'cols': 80, 'rows': 10}))
-    class Meta:
-        model = Cave
-
 #class PersonForm(ModelForm):
 #    class Meta:
 #        model = Person
diff --git a/core/views_caves.py b/core/views_caves.py
index 71fe668..8dc2ebe 100644
--- a/core/views_caves.py
+++ b/core/views_caves.py
@@ -1,5 +1,5 @@
 from troggle.core.models import Cave, CaveAndEntrance, Survey, Expedition, QM, CaveDescription, Entrance
-from troggle.core.forms import CaveForm
+from troggle.core.forms import CaveForm, CaveAndEntranceFormSet
 import troggle.core.models as models
 import troggle.settings as settings
 from troggle.helper import login_required_if_public
@@ -42,6 +42,7 @@ def caveEntrance(request, slug):
         return render_with_context(request,'nonpublic.html', {'instance': cave})
     else:
         return render_with_context(request,'cave_entrances.html', {'cave': cave})
+
 def caveDescription(request, slug):
     cave = Cave.objects.get(slug = slug)
     if cave.non_public and settings.PUBLIC_SITE and not request.user.is_authenticated():
@@ -71,14 +72,17 @@ def caveSlug(request, slug):
 @login_required_if_public
 def edit_cave(request, slug=None):
     cave = Cave.objects.get(slug = slug)
-    form = CaveForm(instance=cave)
-    class CaveAndEntranceForm(forms.Form):
-        entrance = forms.ChoiceField(choices=[("", "-----")] +  [(x.slug, x.slug) for x in Entrance.objects.all()])
-        entrance_letter = forms.CharField(max_length=20)
-        non_public = forms.BooleanField()
-    CaveAndEntranceFormSet = formset_factory(CaveAndEntranceForm)
-    i = [{"entrance": x.entrance.slug, "entrance_letter": x.entrance_letter, "non_public": x.non_public} for x in cave.caveandentrance_set.all()]
-    ceFormSet = CaveAndEntranceFormSet(initial=i)
+    if request.POST:
+        form = CaveForm(request.POST, instance=cave)
+        ceFormSet = CaveAndEntranceFormSet(request.POST)
+    else:
+        form = CaveForm(instance=cave)
+        i = [{"entrance": x.entrance.slug, 
+              "entrance_letter": x.entrance_letter, 
+              "non_public": x.non_public} 
+             for x 
+             in cave.caveandentrance_set.all()]
+        ceFormSet = CaveAndEntranceFormSet(initial=i)
     return render_with_context(request, 
                                'editcave2.html', 
                                {'form': form,
diff --git a/templates/cave_entrances.html b/templates/cave_entrances.html
index dbd450d..e871e41 100644
--- a/templates/cave_entrances.html
+++ b/templates/cave_entrances.html
@@ -1,12 +1,64 @@
 	<div id="entrances">
 		<p>{% if cave.entrances %}
     <h2>Entrances</h2>
+    <ul>
     {% for ent in cave.entrances %}
-        <a href = "./{{ ent.entrance_letter|safe }}">{{ ent.entrance_letter|safe }}</a>
+        <li>
+        {{ ent.entrance_letter|safe }}
+        {% if ent.entrance.name %}
+            {{ ent.entrance.name|safe }}
+        {% endif %}        
+        <dl>
         {% if ent.entrance.marking %}
-            Marking: {{ ent.entrance.marking_val|safe }}
+            <dt>Marking</dt><dd>{{ ent.entrance.marking_val|safe }}</dd>
         {% endif %}
-        <br>
+        {% if ent.entrance.marking_comment %}
+            <dt>Marking Comment</dt><dd>{{ ent.entrance.marking_comment|safe }}</dd>
+        {% endif %}
+        {% if ent.entrance.findability %}
+            <dt>Findability</dt><dd>{{ ent.entrance.findability_val|safe }}</dd>
+        {% endif %}
+        {% if ent.entrance.findability_comment %}
+            <dt>Findability Comment</dt><dd>{{ ent.entrance.findability_comment|safe }}</dd>
+        {% endif %}
+        {% if ent.entrance.location_description %}
+            <dt>Location</dt><dd>{{ ent.entrance.location_description|safe }}</dd>
+        {% endif %}
+        {% if ent.entrance.approach %}
+            <dt>Approach</dt><dd>{{ ent.entrance.approach|safe }}</dd>
+        {% endif %}
+        {% if ent.entrance.map_description %}
+            <dt>Map</dt><dd>{{ ent.entrance.map_description|safe }}</dd>
+        {% endif %}
+        {% if ent.entrance.underground_description %}
+            <dt>Underground</dt><dd>{{ ent.entrance.underground_description|safe }}</dd>
+        {% endif %}
+        {% if ent.entrance.photo %}
+            <dt>Photo</dt><dd>{{ ent.entrance.photo|safe }}</dd>
+        {% endif %}
+        {% if ent.entrance.entrance_description %}
+            <dt>Description</dt><dd>{{ ent.entrance.entrance_description|safe }}</dd>
+        {% endif %}
+        {% if ent.entrance.explorers %}
+            <dt>Explorers</dt><dd>{{ ent.entrance.explorers|safe }}</dd>
+        {% endif %}
+        {% if ent.entrance.northing %}
+            <dt>Location</dt><dd>{{ ent.entrance.northing|safe }}, {{ ent.entrance.easting|safe }}, {{ ent.entrance.alt|safe }}m</</dd>
+        {% endif %}
+        {% if ent.entrance.tag_station %}
+            <dt>Tag Location</dt><dd>{{ ent.entrance.tag_station }}{{ ent.entrance.tag.y|safe }}, {{ ent.entrance.tag.x|safe }}, {{ ent.entrance.tag.z|safe }}m</</dd>
+        {% endif %}
+        {% if ent.entrance.bearings %}
+            <dt>Bearings</dt><dd>{{ ent.entrance.bearings|safe }}</dd>
+        {% endif %}
+
+    {{ ent.entrance.tag_station|safe }}
+    {{ ent.entrance.exact_station|safe }}
+    {{ ent.entrance.other_station|safe }}
+    {{ ent.entrance.other_description|safe }}
+          </dl>  
+      </li>
     {% endfor %}
+    </ul>
 {% endif %}</p>
 	</div>