diff --git a/korektury/migrations/0002_auto_20151202_2351.py b/korektury/migrations/0002_auto_20151202_2351.py
new file mode 100644
index 00000000..ba88f7c7
--- /dev/null
+++ b/korektury/migrations/0002_auto_20151202_2351.py
@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('korektury', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Komentar',
+            fields=[
+                ('id', models.AutoField(serialize=False, primary_key=True)),
+                ('cas', models.DateTimeField(default=django.utils.timezone.now, help_text=b'\xc4\x8cas zad\xc3\xa1n\xc3\xad koment\xc3\xa1\xc5\x99e', verbose_name='\u010das koment\xe1\u0159e')),
+                ('autor', models.TextField(help_text=b'Autor koment\xc3\xa1\xc5\x99e', verbose_name='autor koment\xe1\u0159e', blank=True)),
+                ('text', models.TextField(help_text=b'Text koment\xc3\xa1\xc5\x99e', verbose_name='text koment\xe1\u0159e', blank=True)),
+                ('oprava', models.ForeignKey(to='korektury.Oprava')),
+            ],
+            options={
+                'ordering': ['cas'],
+                'db_table': 'komentare',
+                'verbose_name': 'Koment\xe1\u0159 k oprav\u011b',
+                'verbose_name_plural': 'Koment\xe1\u0159e k oprav\u011b',
+            },
+            bases=(models.Model,),
+        ),
+        migrations.RemoveField(
+            model_name='opravakomentar',
+            name='oprava',
+        ),
+        migrations.DeleteModel(
+            name='OpravaKomentar',
+        ),
+    ]
diff --git a/korektury/models.py b/korektury/models.py
index d5ea8203..80655739 100644
--- a/korektury/models.py
+++ b/korektury/models.py
@@ -98,9 +98,9 @@ class Oprava(models.Model):
 
 @reversion.register(ignore_duplicate_revision=True)
 @python_2_unicode_compatible
-class OpravaKomentar(models.Model):
+class Komentar(models.Model):
     class Meta:
-        db_table = 'opravy_komentare'
+        db_table = 'komentare'
         verbose_name = u'Komentář k opravě'
         verbose_name_plural = u'Komentáře k opravě'
         ordering = ['cas']
@@ -108,7 +108,7 @@ class OpravaKomentar(models.Model):
     #Interní ID
     id  = models.AutoField(primary_key = True)
 
-    cas = models.DateTimeField(u'čas komentáře',help_text = 'Čas zadání komentáře')
+    cas = models.DateTimeField(u'čas komentáře',default=timezone.now,help_text = 'Čas zadání komentáře')
 
     oprava = models.ForeignKey(Oprava)
     # TODO: Změnit na cizí klíč do orgů
diff --git a/korektury/static/korektury/imgs/comment.png b/korektury/static/korektury/imgs/comment.png
new file mode 100644
index 00000000..4a648425
Binary files /dev/null and b/korektury/static/korektury/imgs/comment.png differ
diff --git a/korektury/static/korektury/imgs/delete-gr.png b/korektury/static/korektury/imgs/delete-gr.png
new file mode 100644
index 00000000..c9816e47
Binary files /dev/null and b/korektury/static/korektury/imgs/delete-gr.png differ
diff --git a/korektury/static/korektury/imgs/edit-gr.png b/korektury/static/korektury/imgs/edit-gr.png
new file mode 100644
index 00000000..e7ca04b8
Binary files /dev/null and b/korektury/static/korektury/imgs/edit-gr.png differ
diff --git a/korektury/static/korektury/opraf.css b/korektury/static/korektury/opraf.css
index d385932c..dce8716d 100644
--- a/korektury/static/korektury/opraf.css
+++ b/korektury/static/korektury/opraf.css
@@ -1,3 +1,10 @@
+body{background: #f3f3f3; color: black;}
+body.locked {
+    background: rgb(144, 189, 255);
+}
+
+img{background:white;}
+
 .pointer-hi, 
 .pointer, 
 .pointer-done, 
@@ -82,11 +89,6 @@ form {
 	background-color: yellow;	
 }
 
-body {
-	background-color: #b0b0ff;
-}
-
-
 
 .box button,
 .box img,
@@ -103,3 +105,18 @@ body {
 .box-done button:hover {
 	border: 1px solid black;
 }
+
+.comment hr {
+	height: 0px;
+}
+
+.corr-header {
+    overflow: auto;
+}
+
+.author {
+    font-weight: bold;
+    float: left;
+    margin-top: 3px;
+}
+
diff --git a/korektury/static/korektury/opraf.js b/korektury/static/korektury/opraf.js
index 60764ca1..284a6864 100644
--- a/korektury/static/korektury/opraf.js
+++ b/korektury/static/korektury/opraf.js
@@ -113,24 +113,47 @@ function img_click(element, ev) {
 	return show_form(img_id, dx, dy, '', '', '', '');
 }
 
-// show comment form, when 'edit' button pressed
-function box_edit(button) 
+// show comment form, when 'edit' or 'comment' button pressed
+function box_edit(button, action)
 {
-	var divbox = button.parentNode.parentNode.parentNode;
+	var divbox = button.parentNode.parentNode.parentNode.parentNode;
 	var id = divbox.id;
 	//alert("id: " +  id);
 	var divpointer = document.getElementById(divbox.id + '-pointer');
-	var text_el = document.getElementById(divbox.id + '-text');
-	var text = text_el.innerHTML.unescapeHTML();
+
+	var text;
+	if (action == 'update') {
+		var text_el = document.getElementById(divbox.id + '-text');
+		text = text_el.innerHTML.unescapeHTML();
+	} else {
+		text = '';
+	}
 
 	var dx = parseInt(divpointer.style.left);
 	var dy = parseInt(divpointer.style.top);
 	//alert('not yet 2:' + text + text_el); // + divpointer.style.top "x" + divpo );
 	id = id.substring(2);
-	return show_form(divbox.img_id, dx, dy, id, text, 'update');
+	return show_form(divbox.img_id, dx, dy, id, text, action);
 
 }
 
+// show comment form when 'update-comment' button pressed
+function update_comment(button)
+{
+	var divbox = button.parentNode.parentNode.parentNode;
+	var id = divbox.id;
+	var divpointer = document.getElementById(divbox.id + '-pointer');
+	var dx = parseInt(divpointer.style.left);
+	var dy = parseInt(divpointer.style.top);
+
+    var commentdiv = button.parentNode.parentNode;
+    var id = commentdiv.id.substring(1);
+
+    var text = document.getElementById('kt' + id).innerHTML.unescapeHTML();
+
+    return show_form(divbox.img_id, dx, dy, id, text, 'update-comment');
+}
+
 //fill up comment form and show him
 function show_form(img_id, dx, dy, id, text, action) {
 	var form = document.getElementById('commform');
diff --git a/korektury/templates/korektury/opraf.html b/korektury/templates/korektury/opraf.html
index c8b198fb..63069f63 100644
--- a/korektury/templates/korektury/opraf.html
+++ b/korektury/templates/korektury/opraf.html
@@ -61,30 +61,84 @@
 	    onmouseover='box_onmouseover(this,{% if o.status = 'opraveno' %}1{% else %}0{% endif %})' 
 		onmouseout='box_onmouseout(this,{% if o.status = 'opraveno' %}1{% else %}0{% endif %})' >
 	  
-         
-	<b>{{o.autor}}</b>
+    <div class='corr-header'> 
+	<div class='author'>{{o.autor}}</div>
 	 <div class='float-right'>
 	  <form  action='' onsubmit='save_scroll(this)' method='POST'>
 		{% csrf_token %}
 	   <input type='hidden' name='pdf' value='22_3_verze5.pdf'>
 	   <input type='hidden' name='id' value='{{o.id}}'>
 	   <input type='hidden' name='scroll'>
-	   <button type='submit' name='action' value='del' title='Sma¾ opravu'><img src="/static/korektury/imgs/delete.png"/></button>
-	   {% if o.status = 'opraveno' %}
-	   	   <button type='submit' name='action' value='undone' title='Oznaè jako neopravené'><img src="/static/korektury/imgs/undo.png"/></button>
+	   {% if o.komentare %}
+	   <button name='action' value='del' type='button'
+            title="Korekturu nelze smazat &ndash; už ji někdo okomentoval">
+		   <img src="/static/korektury/imgs/delete-gr.png"/>
+	   </button>
 	   {% else %}
-	   	   <button type='submit' name='action' value='done' title='Oznaè jako opravené'><img src="/static/korektury/imgs/check.png"/></button>
+	   <button type='submit' name='action' value='del' title='Smaž opravu'>
+		   <img src="/static/korektury/imgs/delete.png"/>
+	   </button>
+	   {% endif %}
+	   
+	   {% if o.status = 'opraveno' %}
+	   <button type='submit' name='action' value='undone' title='Označ jako neopravené'>
+		   <img src="/static/korektury/imgs/undo.png"/>
+	   </button>
+	   {% else %}
+	   <button type='submit' name='action' value='done' title='Označ jako opravené'>
+		   <img src="/static/korektury/imgs/check.png"/>
+	   </button>
 	   {% endif %}
 	    
-         
-	   <button type='button' onclick='box_edit(this);' title='Oprav opravu'><img src="/static/korektury/imgs/edit.png"/></button>
-	   <a href='#op{{o.id}}'><button type='button' title='Link na opravu'><img src="/static/korektury/imgs/link.png"/></button></a>
-	   	    <a href='#op579'><img title='Dal¹í oprava' src="/static/korektury/imgs/next.png"/></button></a>
+       {% if o.komentare %}
+		<button type='button' title="Korekturu nelze upravit &ndash; už ji někdo okomentoval">
+			<img src="/static/korektury/imgs/edit-gr.png"/>
+		</button>
+	   {% else %}
+	   <button type='button' onclick='box_edit(this);' title='Oprav opravu'>
+		   <img src="/static/korektury/imgs/edit.png"/>
+	   </button>
+	   {% endif %}
+	   <button type='button' onclick='box_edit(this, "comment");' title='Komentovat'>
+		   <img src="/static/korektury/imgs/comment.png"/>
+	   </button>
+
+	   <a href='#op{{o.id}}'><button type='button' title='Link na opravu'>
+			   <img src="/static/korektury/imgs/link.png"/>
+	   </button></a>
+	   <button><a href='#op579'>
+			   <img title='Dal¹í oprava' src="/static/korektury/imgs/next.png"/>
+	   </a></button>
 	    
 	  </form>
-	 </div> 	 <div id='op{{o.id}}-text'>{{o.text}}</div>
+	 </div>
+	</div>
+	<div id='op{{o.id}}-text'>{{o.text}}</div>
+	{% for k in o.komentare %}
+    <hr>
+	<div class='comment' id='k{{k.id}}'>
+    	<div class='corr-header'>
+        	<div class='author'>{{k.autor}}</div>
+            	<div class="float-right">
+                    <form  action='' onsubmit='save_scroll(this)' method='POST'>
+					  {% csrf_token %}
+                      <input type='hidden' name='pdf' value='22_3_verze1.pdf'>
+					  <input type='hidden' name='id' value='{{k.id}}'>
+                      <input type='hidden' name='scroll'>
+                      <button type='submit' name='action' value='del-comment' title='Smaž komentář'
+                      	onclick='return confirm("Opravdu smazat komentář?")'>
+						  <img src="/static/korektury/imgs/delete.png"/>
+					  </button>
+                    </form>
+                    <button type='button' onclick='update_comment(this);' title='Uprav komentář'>
+						<img src="/static/korektury/imgs/edit.png"/></button>
+                  </div>
+              </div>
+			  <div id='kt{{k.id}}'>{{k.text}}</div>
+            </div>
+	{% endfor %}
          
-	</div>		<div onclick='img_click(this,event)' id='op579-pointer' class='pointer'></div>
+	</div>	
 
 
 {% endfor %}
diff --git a/korektury/views.py b/korektury/views.py
index 14f95b57..4c13f849 100644
--- a/korektury/views.py
+++ b/korektury/views.py
@@ -9,7 +9,7 @@ from django.utils.translation import ugettext as _
 from django.http import Http404
 from django.http import HttpResponseRedirect
 
-from .models import Oprava
+from .models import Oprava,Komentar
 from .forms import OpravaForm
 
 from datetime import timedelta, date, datetime
@@ -65,7 +65,20 @@ class KorekturyView(generic.TemplateView):
             op = Oprava.objects.filter(id=id).first()
             op.status = op.STATUS_OPRAVENO
             op.save()
+        elif (action == u'comment'):
+            id = int(q.get('id'))
+            op = Oprava.objects.filter(id=id).first()
+            autor = q.get('au')
+            text = q.get('txt')
+            kom = Komentar(oprava=op,autor=autor,text=text)
+            kom.save()
+        elif (action == u'del-comment'):
+            id = int(q.get('id'))
+            kom = Komentar.objects.filter(id=id).first()
+            kom.delete()
+            
 
+#        return HttpResponse(u'Keys: %s '%(q.iteitems()))
         return HttpResponse(u'Oprav: %d, akce: %s'%(
             len(Oprava.objects.all()),action))
  
@@ -78,7 +91,10 @@ class KorekturyView(generic.TemplateView):
         context['img_name'] = "22_3_verze5"
         context['img_indexes'] = range(27) 
         context['form_oprava'] = OpravaForm()
-        context['opravy'] = Oprava.objects.all()
+        opravy = Oprava.objects.all()
+        for o in opravy:
+            o.komentare = o.komentar_set.all()
+        context['opravy'] = opravy
         return context
     def form_valid(self,form):
         return super(KorekturyView,self).form_valid(form)