Index: applications/editors/josm/plugins/OpeningHoursEditor/src/org/openstreetmap/josm/plugins/ohe/OhePlugin.java
===================================================================
--- applications/editors/josm/plugins/OpeningHoursEditor/src/org/openstreetmap/josm/plugins/ohe/OhePlugin.java	(revision 28476)
+++ applications/editors/josm/plugins/OpeningHoursEditor/src/org/openstreetmap/josm/plugins/ohe/OhePlugin.java	(revision 28477)
@@ -40,4 +40,5 @@
 import org.openstreetmap.josm.command.SequenceCommand;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.MainMenu;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.plugins.Plugin;
@@ -72,5 +73,5 @@
     public OhePlugin(PluginInformation info) {
         super(info);
-        Main.main.menu.toolsMenu.add(new OheMenuAction());
+        MainMenu.add(Main.main.menu.toolsMenu, new OheMenuAction());
     }
 
@@ -88,5 +89,5 @@
                     tr("Edit time-tag of selected element in a graphical interface"), Shortcut.registerShortcut(
                             "tools:opening_hourseditor", tr("Tool: {0}", tr("Edit opening hours")), KeyEvent.VK_O,
-                            Shortcut.ALT_CTRL_SHIFT), false);
+                            Shortcut.ALT_CTRL_SHIFT), true);
         }
 
Index: applications/editors/josm/plugins/OpeningHoursEditor/src/org/openstreetmap/josm/plugins/ohe/gui/OheEditor.java
===================================================================
--- applications/editors/josm/plugins/OpeningHoursEditor/src/org/openstreetmap/josm/plugins/ohe/gui/OheEditor.java	(revision 28476)
+++ applications/editors/josm/plugins/OpeningHoursEditor/src/org/openstreetmap/josm/plugins/ohe/gui/OheEditor.java	(revision 28477)
@@ -47,4 +47,6 @@
                     g.setColor(Color.WHITE);
                     g.fillRect(0, 0, getWidth(), getHeight());
+                    
+                    // draw the time from 12PM to 00AM in a different color
                     if (dialog.getHourMode() == ClockSystem.TWELVE_HOURS) {
                         g.setColor(new Color(255, 255, 218));
@@ -53,5 +55,5 @@
 
                     // horizontal Lines
-                    for (int i = 1; i < 24; ++i) {
+                    for (int i = 0; i <= 24; ++i) {
                         if (i % 3 == 0) {
                             g.setColor(Color.BLACK);
@@ -65,5 +67,5 @@
                     // vertical Lines
                     g.setColor(Color.BLACK);
-                    for (int i = 1; i < 7; ++i) {
+                    for (int i = 0; i <= 7; ++i) {
                         g.drawLine(getDayPosition(i), 0, getDayPosition(i), getHeight());
                     }
@@ -113,5 +115,5 @@
                 for (int i = 0; i < 7; ++i) {
                     if (i > 0) {
-                        g.drawLine(getDayPosition(i) + 1, 0, getDayPosition(i) + 1, getHeight());
+                        g.drawLine(getDayPosition(i), 0, getDayPosition(i), getHeight());
                     }
 
@@ -134,4 +136,6 @@
                 g.setColor(Color.WHITE);
                 g.fillRect(0, 0, getWidth(), getHeight());
+                
+                // draw the time from 12PM to 00AM in a different color
                 if (dialog.getHourMode() == ClockSystem.TWELVE_HOURS) {
                     g.setColor(new Color(255, 255, 218));
@@ -139,10 +143,12 @@
                 }
 
-                for (int i = 1; i < 24; ++i) {
+                for (int i = 0; i <= 24; ++i) {
                     if (i % 3 == 0) {
                         g.setColor(Color.BLACK);
-                        String text = OpeningTimeUtils.timeString(i * 60, dialog.getHourMode(), false);
-                        g.drawString(text, (timeAxisWidth - g.getFontMetrics().stringWidth(text)) / 2,
-                                getMinutePosition(i * 60) + (int) (g.getFontMetrics().getHeight() * 0.35));
+                        if (i % 24 != 0) {
+                            String text = OpeningTimeUtils.timeString(i * 60, dialog.getHourMode(), false);
+                            g.drawString(text, (timeAxisWidth - g.getFontMetrics().stringWidth(text)) / 2,
+                                    getMinutePosition(i * 60) + (int) (g.getFontMetrics().getHeight() * 0.35));
+                        }
                     } else {
                         g.setColor(Color.LIGHT_GRAY);
@@ -216,10 +222,4 @@
         int height = getMinutePosition(minutesEnd) - getMinutePosition(minutesStart);
 
-        // work around openjdk bug
-        if (Main.isOpenjdk) {
-            x++;
-            y++;
-        }
-
         if (minutesStart == minutesEnd)
             return new Rectangle(x, y - 2 - TimeRect.verticalNonDrawedPixels, width, height + 5 + 2
@@ -267,4 +267,7 @@
     @Override
     public void mouseEntered(MouseEvent evt) {
+        if (!isEnabled()) {
+            return; // allow no mouse actions when the editor is not enabled
+        }
         mousePositionChanged(0, 0, true);
     }
@@ -272,4 +275,7 @@
     @Override
     public void mouseExited(MouseEvent evt) {
+        if (!isEnabled()) {
+            return; // allow no mouse actions when the editor is not enabled
+        }
         mousePositionChanged(0, 0, false);
     }
@@ -277,4 +283,7 @@
     @Override
     public void mousePressed(MouseEvent evt) {
+        if (!isEnabled()) {
+            return; // allow no mouse actions when the editor is not enabled
+        }
         day0 = (int) Math.floor(evt.getX() / getDayWidth());
         minute0 = (int) Math.floor(evt.getY() / (getMinuteHeight() * TimeRect.minuteResterize))
@@ -288,4 +297,7 @@
     @Override
     public void mouseReleased(MouseEvent evt) {
+        if (!isEnabled()) {
+            return; // allow no mouse actions when the editor is not enabled
+        }
         // mouse must be moved 5px before creating a rect
         if (xDragStart == -1 || Math.abs(evt.getX() - xDragStart) + Math.abs(evt.getY() - yDragStart) > 5) {
@@ -308,4 +320,7 @@
     @Override
     public void mouseDragged(MouseEvent evt) {
+        if (!isEnabled()) {
+            return; // allow no mouse actions when the editor is not enabled
+        }
         // mouse must be moved 5px before drawing a rect
         if (xDragStart == -1 || Math.abs(evt.getX() - xDragStart) + Math.abs(evt.getY() - yDragStart) > 5) {
@@ -313,5 +328,5 @@
             day1 = (int) Math.floor(evt.getX() / getDayWidth());
             minute1 = (int) Math.floor(evt.getY() / (getMinuteHeight() * TimeRect.minuteResterize))
-            * TimeRect.minuteResterize;
+                    * TimeRect.minuteResterize;
 
             // ensure that the new time is in a valid range
@@ -328,4 +343,7 @@
     @Override
     public void mouseMoved(MouseEvent evt) {
+        if (!isEnabled()) {
+            return; // allow no mouse actions when the editor is not enabled
+        }
         mousePositionChanged(evt.getX(), evt.getY(), true);
     }
@@ -335,5 +353,5 @@
             int actualDay = (int) Math.floor(x / getDayWidth());
             int minutes = (int) Math.floor(y / (getMinuteHeight() * TimeRect.minuteResterize))
-            * TimeRect.minuteResterize;
+                    * TimeRect.minuteResterize;
             actualDay = Math.max(0, Math.min(6, actualDay));
             minutes = Math.max(0, Math.min(24 * 60, minutes));
Index: applications/editors/josm/plugins/OpeningHoursEditor/src/org/openstreetmap/josm/plugins/ohe/gui/TimeRect.java
===================================================================
--- applications/editors/josm/plugins/OpeningHoursEditor/src/org/openstreetmap/josm/plugins/ohe/gui/TimeRect.java	(revision 28476)
+++ applications/editors/josm/plugins/OpeningHoursEditor/src/org/openstreetmap/josm/plugins/ohe/gui/TimeRect.java	(revision 28477)
@@ -214,6 +214,8 @@
     @Override
     public void mouseExited(MouseEvent evt) {
-        if (transformType < 0)
+        if (transformType < 0) {
             setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
+        }
+        editor.mousePositionChanged(0, 0, false);
     }
 
@@ -293,6 +295,7 @@
     @Override
     public void mouseMoved(MouseEvent evt) {
-        if (transformType < 0)
+        if (transformType < 0) {
             setCursor(new Cursor(transformCursorTypes[getTransformType(evt)]));
+        }
         editor.mousePositionChanged(evt.getX() + getX(), evt.getY() + getY(), true);
     }
