diff --git a/modules/gui/src/sequence/base_row.cc b/modules/gui/src/sequence/base_row.cc
index 661d8f565e1bc269e7a47c9cc49d4a995bdcd9bc..e2a57450bba50b67f65f9c8c32d5eed2706d0a8f 100644
--- a/modules/gui/src/sequence/base_row.cc
+++ b/modules/gui/src/sequence/base_row.cc
@@ -130,4 +130,24 @@ Qt::ItemFlags BaseRow::Flags(int column) const
 void BaseRow::DoubleClicked(int column)
 { }
 
+void BaseRow::ZoomIn()
+{
+  QFont font = this->GetFont();
+  int pointsize = font.pointSize();
+  if(pointsize < 30){
+    font.setPointSize(++pointsize);
+  }
+  this->SetFont(font);
+}
+
+void BaseRow::ZoomOut()
+{
+  QFont font = this->GetFont();
+  int pointsize = font.pointSize();
+  if(pointsize > 5){
+    font.setPointSize(--pointsize);
+  }
+  this->SetFont(font);
+}
+
 }}
diff --git a/modules/gui/src/sequence/base_row.hh b/modules/gui/src/sequence/base_row.hh
index 5d749c5d29015744dbfc2936bab2f226edfe0908..3a69ca0e6b62fb0f1b7678ce9eab10e57f2cf47a 100644
--- a/modules/gui/src/sequence/base_row.hh
+++ b/modules/gui/src/sequence/base_row.hh
@@ -60,6 +60,9 @@ public:
   virtual Qt::ItemFlags Flags(int column) const;
   virtual void DoubleClicked(int column);
 
+  virtual void ZoomIn();
+  virtual void ZoomOut();
+
 private:
   bool IsPainterPosValid(int pos);
   PainterList painter_;
diff --git a/modules/gui/src/sequence/sequence_model.cc b/modules/gui/src/sequence/sequence_model.cc
index 75d05f4aaf3f72d59dd869540afc6187246fa99c..7721e66aeb844b82b228ac9597e5ddcde8f44033 100644
--- a/modules/gui/src/sequence/sequence_model.cc
+++ b/modules/gui/src/sequence/sequence_model.cc
@@ -250,4 +250,18 @@ Qt::ItemFlags SequenceModel::flags(const QModelIndex& index) const
   return QAbstractItemModel::flags(index);
 }
 
+void SequenceModel::ZoomIn()
+{
+  for (int i = 0; i<objects_.size(); i++){
+    objects_[i]->ZoomIn();
+  }
+}
+
+void SequenceModel::ZoomOut()
+{
+  for (int i = 0; i<objects_.size(); i++){
+    objects_[i]->ZoomOut();
+  }
+}
+
 }}
diff --git a/modules/gui/src/sequence/sequence_model.hh b/modules/gui/src/sequence/sequence_model.hh
index 6adb96909df95cd99955139cda2477249dcee0e1..50618db9c0a8bc6054dc5ac3ff3d015b5b011c1b 100644
--- a/modules/gui/src/sequence/sequence_model.hh
+++ b/modules/gui/src/sequence/sequence_model.hh
@@ -68,6 +68,8 @@ public:
   virtual Qt::ItemFlags flags(const QModelIndex& index=QModelIndex()) const;
 
 public slots:
+  void ZoomIn();
+  void ZoomOut();
   void DoubleClicked(const QModelIndex& index);
   void SelectionChanged(const QItemSelection& sel, const QItemSelection& desel);
 
diff --git a/modules/gui/src/sequence/sequence_row.cc b/modules/gui/src/sequence/sequence_row.cc
index 43725e205f74d1fec52b4517f06de26b82b2b66f..fef08d793532d37cd0875a5fe2ce0dd9012ae23c 100644
--- a/modules/gui/src/sequence/sequence_row.cc
+++ b/modules/gui/src/sequence/sequence_row.cc
@@ -34,7 +34,7 @@
 
 namespace ost { namespace gui {
 
-SequenceRow::SequenceRow(const QString& name, seq::SequenceHandle& sequence, ViewObject* parent) : BaseRow(QFont("Courier",11),parent), name_(name), sequence_(sequence)
+SequenceRow::SequenceRow(const QString& name, seq::SequenceHandle& sequence, ViewObject* parent) : BaseRow(QFont("Courier",11),parent), name_(name), name_font_(QFont("Courier",11)), sequence_(sequence)
 { }
 
 SequenceRow::SequenceRow(const QString& name, ViewObject* parent) : BaseRow(QFont("Courier",11),parent), name_(name)
@@ -74,7 +74,7 @@ QVariant SequenceRow::GetData(int column, int role) const
       return QVariant(this->name_);
     }
     if (role == Qt::FontRole){
-      return QVariant(this->GetFont());
+      return QVariant(name_font_);
     }
   }
   else if(column > 0) {
diff --git a/modules/gui/src/sequence/sequence_row.hh b/modules/gui/src/sequence/sequence_row.hh
index f7727d5e2aaa9338d83a31dbd2798d97209ac9fa..58c0a2dad280d19e36f2f00808998646677a613a 100644
--- a/modules/gui/src/sequence/sequence_row.hh
+++ b/modules/gui/src/sequence/sequence_row.hh
@@ -57,6 +57,7 @@ public:
 
 private:
   QString name_;
+  QFont name_font_;
   seq::SequenceHandle sequence_;
 };
 
diff --git a/modules/gui/src/sequence/sequence_table_view.cc b/modules/gui/src/sequence/sequence_table_view.cc
index d606b18ef1555c10dcb355c68d910c92774e4ab9..2152c1a6bb6b129e27b579d54ffc0560b036ee5f 100644
--- a/modules/gui/src/sequence/sequence_table_view.cc
+++ b/modules/gui/src/sequence/sequence_table_view.cc
@@ -342,6 +342,16 @@ void SequenceTableView::mouseReleaseEvent(QMouseEvent* event)
   QAbstractItemView::mouseReleaseEvent(event);
 }
 
+void SequenceTableView::wheelEvent(QWheelEvent* event)
+{
+  if(event->modifiers() & Qt::ControlModifier){
+    emit MouseWheelEvent(event);
+  }
+  else{
+    QTableView::wheelEvent(event);
+  }
+}
+
 SequenceTableView::~SequenceTableView(){}
 
 }}
diff --git a/modules/gui/src/sequence/sequence_table_view.hh b/modules/gui/src/sequence/sequence_table_view.hh
index 3d55cd8612cb950790154bfa568a6d60ff21fe0e..f8c07ee813d21cdf6a45fa9e6091bf54705e8502 100644
--- a/modules/gui/src/sequence/sequence_table_view.hh
+++ b/modules/gui/src/sequence/sequence_table_view.hh
@@ -24,6 +24,7 @@
  */
 
 #include <QTableView>
+#include <QWheelEvent>
 
 #include <ost/gui/module_config.hh>
 
@@ -41,6 +42,9 @@ public:
   QTableView* GetStaticField();
   ~SequenceTableView();
 
+signals:
+  void MouseWheelEvent(QWheelEvent* event);
+
 public slots:
   void columnCountChanged(const QModelIndex& index, int old_count, int new_count);
   void rowCountChanged(const QModelIndex& index, int old_count, int new_count);
@@ -50,7 +54,8 @@ public slots:
 protected:
   virtual void mouseDoubleClickEvent(QMouseEvent* event);
   virtual void mouseReleaseEvent(QMouseEvent* event);
-  virtual void resizeEvent(QResizeEvent *event);
+  virtual void resizeEvent(QResizeEvent* event);
+  virtual void wheelEvent (QWheelEvent* event);
   virtual QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers);
   void scrollTo (const QModelIndex & index, ScrollHint hint = EnsureVisible);
 
diff --git a/modules/gui/src/sequence/sequence_viewer.cc b/modules/gui/src/sequence/sequence_viewer.cc
index 16ab6993d9a41dd87ecb55d06fcbd0ddff49f2ff..269590dfce8414f258093787f9b44992dec085d7 100644
--- a/modules/gui/src/sequence/sequence_viewer.cc
+++ b/modules/gui/src/sequence/sequence_viewer.cc
@@ -73,6 +73,7 @@ SequenceViewerV2::SequenceViewerV2(QWidget* parent): Widget(NULL,parent)
   connect(seq_table_view_,SIGNAL(doubleClicked(const QModelIndex&)),model_,SLOT(DoubleClicked(const QModelIndex&)));
   connect(seq_table_view_->GetStaticColumn(),SIGNAL(doubleClicked(const QModelIndex&)),this,SLOT(DoubleClicked(const QModelIndex&)));
   connect(seq_table_view_->GetStaticRow(),SIGNAL(doubleClicked(const QModelIndex&)),this,SLOT(DoubleClicked(const QModelIndex&)));
+  connect(seq_table_view_,SIGNAL(MouseWheelEvent(QWheelEvent*)),this,SLOT(MouseWheelEvent(QWheelEvent*)));
 
   gfx::GfxNodeP root_node = gfx::Scene::Instance().GetRootNode();
   GetNodesVisitor gnv;
@@ -136,6 +137,26 @@ void SequenceViewerV2::DoubleClicked(const QModelIndex& index)
   connect(seq_table_view_->selectionModel(), SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), this, SLOT(SelectionModelChanged(const QItemSelection&, const QItemSelection&)));
 }
 
+void SequenceViewerV2::MouseWheelEvent(QWheelEvent* event)
+{
+  int delta = event->delta();
+  if (event->orientation() == Qt::Vertical) {
+    if(delta>0){
+      model_->ZoomIn();
+      seq_table_view_->viewport()->update();
+      seq_table_view_->resizeColumnsToContents();
+      seq_table_view_->resizeRowsToContents();
+    }
+    else if(delta<0){
+      model_->ZoomOut();
+      seq_table_view_->viewport()->update();
+      seq_table_view_->resizeColumnsToContents();
+      seq_table_view_->resizeRowsToContents();
+    }
+  }
+  event->accept();
+}
+
 SequenceViewerV2::~SequenceViewerV2(){
   gfx::Scene::Instance().DetachObserver(this);
 }
diff --git a/modules/gui/src/sequence/sequence_viewer.hh b/modules/gui/src/sequence/sequence_viewer.hh
index bcedf4a970d3bab54654770302fc4095a60fcca9..3940c68fad19cfed610c9911242cb74cfccbcd98 100644
--- a/modules/gui/src/sequence/sequence_viewer.hh
+++ b/modules/gui/src/sequence/sequence_viewer.hh
@@ -58,6 +58,7 @@ private:
 private slots:
   void SelectionModelChanged(const QItemSelection&, const QItemSelection&);
   void DoubleClicked(const QModelIndex& index);
+  void MouseWheelEvent(QWheelEvent* event);
 
 };
 
diff --git a/modules/gui/src/sequence/view_object.cc b/modules/gui/src/sequence/view_object.cc
index c30dabe5066a5ca9a98379b583232429742bb7a6..e422027e7105fa95277e89be52ce5f70aa110ddd 100644
--- a/modules/gui/src/sequence/view_object.cc
+++ b/modules/gui/src/sequence/view_object.cc
@@ -180,6 +180,20 @@ void ViewObject::DoubleClicked(int row, int column)
   }
 }
 
+void ViewObject::ZoomIn()
+{
+  for(int i=0; i< rows_.size(); i++){
+    rows_[i]->ZoomIn();
+  }
+}
+
+void ViewObject::ZoomOut()
+{
+  for(int i=0; i< rows_.size(); i++){
+    rows_[i]->ZoomOut();
+  }
+}
+
 QMap<int, QList<int> > ViewObject::GetIndexesForView(const mol::EntityView& view)
 {
   if(view.GetChainCount()==0){
diff --git a/modules/gui/src/sequence/view_object.hh b/modules/gui/src/sequence/view_object.hh
index f623ab16ce1a55364ff5cf99e51e6e9227b5f43a..a6d99bc74c2a84d3c91f2d273c9855136e1ce502 100644
--- a/modules/gui/src/sequence/view_object.hh
+++ b/modules/gui/src/sequence/view_object.hh
@@ -74,6 +74,8 @@ public:
   Qt::ItemFlags Flags(int row, int column) const;
 
   void DoubleClicked(int row, int column);
+  void ZoomIn();
+  void ZoomOut();
 
   QMap<int, QList<int> > GetIndexesForView(const mol::EntityView& view);