diff --git a/modules/gui/src/data_viewer/data_viewer.cc b/modules/gui/src/data_viewer/data_viewer.cc
index 59ed688925f217b50790b7006c2a3bc21697b5b6..855e20db8a5884ba5ca7186b5194b5ce174410d5 100644
--- a/modules/gui/src/data_viewer/data_viewer.cc
+++ b/modules/gui/src/data_viewer/data_viewer.cc
@@ -57,23 +57,6 @@
 
 namespace ost { namespace img { namespace gui {
 
-/*class GraphicsProxyWidget: public QGraphicsProxyWidget{
-public:
-  GraphicsProxyWidget(QGraphicsItem* parent,Qt::WindowFlags flags):
-  QGraphicsProxyWidget(parent,flags)
-  {}
-  virtual void paint( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget){
-    //painter->setWorldMatrixEnabled (false);
-    //translate(20,10);
-    painter->setTransform(QTransform(),false);
-    QGraphicsProxyWidget::paint(painter,option,widget);
-  }
-  virtual void paintWindowFrame( QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget){
-    //painter->setWorldMatrixEnabled (false);
-    painter->setTransform(QTransform(),false);
-    QGraphicsProxyWidget::paintWindowFrame(painter,option,widget);
-  }
-};*/
 
 namespace {
 int ipow(int base, unsigned int exponent){
@@ -104,6 +87,11 @@ DataViewer::DataViewer(QWidget* p, const Data& data, const QString& name):
   panel_->AddWidget(info_);
   panel_->AddWidget(argand_);
   //scene_->setSceneRect(image->boundingRect());
+  connect(image,SIGNAL(MousePositionReal(const QPointF&,Real)),info_,SLOT(SetMousePoint(const QPointF&,Real)));
+  connect(image,SIGNAL(MousePositionComplex(const QPointF&,Complex)),info_,SLOT(SetMousePoint(const QPointF&,Complex)));
+  connect(image,SIGNAL(MousePositionReal(const QPointF&,Real)),fft_,SLOT(SetPosition(const QPointF&)));
+  connect(image,SIGNAL(MousePositionComplex(const QPointF&,Complex)),fft_,SLOT(SetPosition(const QPointF&)));
+  OnSlabChange(image->GetSlab());
   connect(ov_manager_gui_,SIGNAL(SettingsChanged()),this,SLOT(UpdateView()));
   setAnimated(false);
   QSplitter* splitter=new QSplitter(this);
@@ -127,10 +115,8 @@ DataViewer::DataViewer(QWidget* p, const Data& data, const QString& name):
   connect(panel_,SIGNAL(zoomed(Real)),SLOT(OnZoomChange(Real)));
   connect(image,SIGNAL(selected(const Extent&, const Data&)),argand_,SLOT(SetExtent(const Extent&, const Data&)));
   connect(image,SIGNAL(deselected()),argand_,SLOT(ClearExtent()));
-  /*connect(panel_,SIGNAL(slabChanged(int)),SLOT(OnSlabChange(int)));
-  connect(panel_,SIGNAL(selected(const Extent&)),info_,SLOT(SetSelection(const Extent&)));
-  connect(panel_,SIGNAL(deselected()),info_,SLOT(ClearSelection()));
-  connect(panel_,SIGNAL(released()),this,SLOT(close()));*/
+  connect(image,SIGNAL(SlabChanged(int)),SLOT(OnSlabChange(int)));
+//  connect(panel_,SIGNAL(released()),this,SLOT(close()));
   show();
 }
 
diff --git a/modules/gui/src/data_viewer/fft_panel.cc b/modules/gui/src/data_viewer/fft_panel.cc
index 6b14752a05242e5efe461f7cd01e4d784721d9fd..ce463bb50dbc6d73b3562dacf1914952de46b54f 100644
--- a/modules/gui/src/data_viewer/fft_panel.cc
+++ b/modules/gui/src/data_viewer/fft_panel.cc
@@ -59,9 +59,9 @@ void FFTPanel::ObserverUpdate()
 
 
 
-void FFTPanel::SetPosition(const Point& p)
+void FFTPanel::SetPosition(const QPointF& p)
 {
-  parent_position_=p;
+  parent_position_=Point(p.x(),p.y());
   update_fft();
 }
 
diff --git a/modules/gui/src/data_viewer/fft_panel.hh b/modules/gui/src/data_viewer/fft_panel.hh
index e1020caa6cc61ee17c9dc0a622c2837391af300b..f059e9e2f61fb337848cb57c8de609643497575f 100644
--- a/modules/gui/src/data_viewer/fft_panel.hh
+++ b/modules/gui/src/data_viewer/fft_panel.hh
@@ -41,7 +41,7 @@ public:
   virtual void ObserverUpdate();
 
 public slots:
-  void SetPosition(const Point& p);
+  void SetPosition(const QPointF& p);
   void ShowSizeDialog();
 
 protected:
diff --git a/modules/gui/src/data_viewer/graphics_image_item.cc b/modules/gui/src/data_viewer/graphics_image_item.cc
index e35f96f3e9d07520d370d6e2c196f702ee2afe30..66b5a53d057e974abda3b440fa659fb6ef0a48e2 100644
--- a/modules/gui/src/data_viewer/graphics_image_item.cc
+++ b/modules/gui/src/data_viewer/graphics_image_item.cc
@@ -438,7 +438,7 @@ void GraphicsImageItem::MoveSlab(int n)
 {
   slab_=std::min<int>(std::max<int>(slab_+n,GetObservedData().GetExtent().GetStart()[2]),GetObservedData().GetExtent().GetEnd()[2]);
   update();
-  emit slabChanged(slab_);
+  emit SlabChanged(GetSlab());
 }
 
 ViewerNormalizerPtr GraphicsImageItem::GetNormalizer() const
@@ -454,7 +454,11 @@ int GraphicsImageItem::GetSlab() const
 void GraphicsImageItem::hoverMoveEvent(QGraphicsSceneHoverEvent * event)
 {
   QPointF pos=event->scenePos();
- emit MousePosition(pos,GetObservedData().GetComplex(Point(floor(pos.x()),floor(pos.y()))));
+  if(GetObservedData().GetType()==REAL){
+    emit MousePositionReal(pos,GetObservedData().GetReal(Point(floor(pos.x()),floor(pos.y()))));
+  }else{
+    emit MousePositionComplex(pos,GetObservedData().GetComplex(Point(floor(pos.x()),floor(pos.y()))));
+  }
 }
 
 void GraphicsImageItem::focusOutEvent(QFocusEvent* event)
diff --git a/modules/gui/src/data_viewer/graphics_image_item.hh b/modules/gui/src/data_viewer/graphics_image_item.hh
index 644571d1414ff06023e4dfab9cf1fc8c44fca1de..5bee682335b1281599875539f0fc41014b040f7c 100644
--- a/modules/gui/src/data_viewer/graphics_image_item.hh
+++ b/modules/gui/src/data_viewer/graphics_image_item.hh
@@ -109,10 +109,12 @@ public:
   virtual void ObserverRelease();
 
 signals:
-  void MousePosition(const QPointF& pos, Complex value);
+  void MousePositionComplex(const QPointF& pos, Complex value);
+  void MousePositionReal(const QPointF& pos, Real value);
   void selected(const Extent& selection,const Data& data);
   void deselected();
   void slabChanged(int slab);
+  void SlabChanged(int slab);
 protected:
   virtual void hoverMoveEvent(QGraphicsSceneHoverEvent* event);
   virtual void focusOutEvent(QFocusEvent* event);
diff --git a/modules/gui/src/data_viewer/info_panel.cc b/modules/gui/src/data_viewer/info_panel.cc
index 2e2e30f0f1ec8369da664055da7b0b01456b5f4a..2b0aedb300c9861fa5e0b6f9a5d340c8a9145972 100644
--- a/modules/gui/src/data_viewer/info_panel.cc
+++ b/modules/gui/src/data_viewer/info_panel.cc
@@ -147,9 +147,9 @@ void InfoPanel::SetSelection(const Extent& e)
   update();
 }
 
-void InfoPanel::SetMousePoint(const geom::Vec2& point, Real val)
+void InfoPanel::SetMousePoint(const QPointF& point, Real val)
 {
-  UpdateMouseAndDistances(point);
+  UpdateMouseAndDistances(Vec2(point.x(),point.y()));
   std::ostringstream str;
   str << boost::format("Pixel Value: %8.2e") % val;
   mouse_val_->setText(QString::fromStdString(str.str()));
diff --git a/modules/gui/src/data_viewer/info_panel.hh b/modules/gui/src/data_viewer/info_panel.hh
index a56d9820dda68a0e599dbe8cd492116500f9b3bb..8a9a5b438091111a24037ee60644bcf589478141 100644
--- a/modules/gui/src/data_viewer/info_panel.hh
+++ b/modules/gui/src/data_viewer/info_panel.hh
@@ -50,7 +50,6 @@ class InfoPanel: public QWidget
 public:
   InfoPanel(QWidget* parent=0);
   void SetImageInfo(const ConstData& data);
-  void SetMousePoint(const geom::Vec2& point, Real val);
   void SetClickPoint(const geom::Vec2& point, Real val);
   void SetClickPoint(const geom::Vec2& point, Complex val);
   void ClearClickPosition();
@@ -58,6 +57,7 @@ public:
 public slots:
   void SetSelection(const Extent& e);
   void ClearSelection(); 
+  void SetMousePoint(const QPointF& point, Real val);
   void SetMousePoint(const QPointF& point, Complex val);
 private:
   void UpdateMouseAndDistances(const geom::Vec2& point);
diff --git a/modules/gui/src/data_viewer/viewer_panel.cc b/modules/gui/src/data_viewer/viewer_panel.cc
index d62eff5f345b4ae7cdf1b2df86cd70d4abdda692..341f8029f0c47d2fca577b8622bea3107464e764 100644
--- a/modules/gui/src/data_viewer/viewer_panel.cc
+++ b/modules/gui/src/data_viewer/viewer_panel.cc
@@ -167,4 +167,5 @@ void ViewerPanel::mouseMoveEvent(QMouseEvent* event)
   last_mouse_=event->pos();
 }
 
+
 }}} //ns