diff --git a/Machines/Commodore/Plus4/Video.hpp b/Machines/Commodore/Plus4/Video.hpp
index c20646664c..6c8c509871 100644
--- a/Machines/Commodore/Plus4/Video.hpp
+++ b/Machines/Commodore/Plus4/Video.hpp
@@ -100,8 +100,6 @@ struct Video {
 					video_mode_ = VideoMode::Text;
 				}
 			}
-
-//			printf("Mode: %d %d %d -> %d\n", bitmap_mode_, extended_colour_mode_, multicolour_mode_, int(video_mode_));
 		};
 
 		switch(address) {
@@ -169,7 +167,8 @@ struct Video {
 			case 0xff1d:	vertical_counter_ = (vertical_counter_ & 0xff00) | value;					break;
 			case 0xff1e:
 				// TODO: possibly should be deferred, if falling out of phase?
-				horizontal_counter_ = (horizontal_counter_ & 0x07) | ((~value << 2) & 0x1f8);
+				horizontal_counter_ = (horizontal_counter_ & 0x07) | ((~value << 1) & ~0x07);
+				horizontal_counter_ &= 0x1ff;
 			break;
 			case 0xff1f:
 				vertical_sub_count_ = value & 0x7;