diff --git a/gtk2_ardour/ghostregion.cc b/gtk2_ardour/ghostregion.cc
index 313bd22d0..06946ec7e 100644
--- a/gtk2_ardour/ghostregion.cc
+++ b/gtk2_ardour/ghostregion.cc
@@ -288,7 +288,7 @@ MidiGhostRegion::set_colors()
 static double
 note_height(TimeAxisView& trackview, MidiStreamView* mv)
 {
-	const double tv_height  = trackview.current_height(); //ALEX_NOTE: height of each MIDI ghost note
+	const double tv_height  = trackview.current_height();
 	const double note_range = mv->contents_note_range();
 
 	return std::max(1.0, floor(tv_height / note_range - 1.0));
@@ -301,7 +301,7 @@ note_y(TimeAxisView& trackview, MidiStreamView* mv, uint8_t note_num)
 	const double note_range = mv->contents_note_range();
 	const double s          = tv_height / note_range;
 
-	return tv_height ; //- (note_num + 1 - mv->lowest_note()) * s;
+	return tv_height - (note_num + 1 - mv->lowest_note()) * s;
 }
 
 void
@@ -320,13 +320,9 @@ MidiGhostRegion::update_contents_height ()
 
 		double const y = note_y(trackview, mv, note_num);
 
-		    uint8_t const note_vel = it->second->event->note()->velocity();
-			double const track_base = trackview.current_height();
-
 		if (!it->second->is_hit) {
 			_tmp_rect = static_cast<ArdourCanvas::Rectangle*>(it->second->item);
-			_tmp_rect->set (ArdourCanvas::Rect (_tmp_rect->x0(), track_base-(track_base * ((float)note_vel/127)), _tmp_rect->x0()+5, track_base));
-		//  _tmp_rect->set (ArdourCanvas::Rect (_tmp_rect->x0(), y, _tmp_rect->x1(), y + h));
+			_tmp_rect->set (ArdourCanvas::Rect (_tmp_rect->x0(), y, _tmp_rect->x1(), y + h));
 		} else {
 			_tmp_poly = static_cast<ArdourCanvas::Polygon*>(it->second->item);
 			ArdourCanvas::Duple position = _tmp_poly->position();
@@ -353,22 +349,19 @@ MidiGhostRegion::add_note (NoteBase* n)
 		if (!n->item()->visible()) {
 			event->item->hide();
 		} else {
-		    uint8_t const note_vel = n->note()->velocity();
 			uint8_t const note_num = n->note()->note();
 			double const  h        = note_height(trackview, mv);
 			double const  y        = note_y(trackview, mv, note_num);
-			double const track_base = trackview.current_height();
-			//if (!event->is_hit) {
+			if (!event->is_hit) {
 				_tmp_rect = static_cast<ArdourCanvas::Rectangle*>(event->item);
-				_tmp_rect->set (ArdourCanvas::Rect (_tmp_rect->x0(), track_base-(track_base * ((float)note_vel/127)), _tmp_rect->x0()+5, track_base));
-			  //_tmp_rect->set (ArdourCanvas::Rect (_tmp_rect->x0(), y                       , _tmp_rect->x1() , y + h));
-			//} else {
-			//	_tmp_poly = static_cast<ArdourCanvas::Polygon*>(event->item);
-			//	Duple position = _tmp_poly->position();
-			//	position.y = y;
-			//	_tmp_poly->set_position(position);
-			//	_tmp_poly->set(Hit::points(h));
-			//}
+				_tmp_rect->set (ArdourCanvas::Rect (_tmp_rect->x0(), y, _tmp_rect->x1(), y + h));
+			} else {
+				_tmp_poly = static_cast<ArdourCanvas::Polygon*>(event->item);
+				Duple position = _tmp_poly->position();
+				position.y = y;
+				_tmp_poly->set_position(position);
+				_tmp_poly->set(Hit::points(h));
+			}
 		}
 	}
 }
@@ -396,13 +389,10 @@ MidiGhostRegion::update_note (GhostEvent* ev)
 	_tmp_rect = static_cast<ArdourCanvas::Rectangle*>(ev->item);
 
 	uint8_t const note_num = ev->event->note()->note();
-	uint8_t const note_vel = ev->event->note()->velocity();
-	double const track_base = trackview.current_height();
 	double const y = note_y(trackview, mv, note_num);
 	double const h = note_height(trackview, mv);
 
-	_tmp_rect->set (ArdourCanvas::Rect (ev->event->x0(), track_base-(track_base * ((float)note_vel/127)), ev->event->x0()+5, trackview.current_height()));
-	//_tmp_rect->set (ArdourCanvas::Rect (ev->event->x0(), y                       , ev->event->x1()  , y + h                                ));
+	_tmp_rect->set (ArdourCanvas::Rect (ev->event->x0(), y, ev->event->x1(), y + h));
 }
 
 /** Update the positions of our representation of a parent's hit.
