diff --git a/ui (gen4)/index.html b/ui (gen4)/index.html
index b1e1b968..3a977236 100755
--- a/ui (gen4)/index.html	
+++ b/ui (gen4)/index.html	
@@ -72,6 +72,7 @@
 	transition: left 0.2s ease-out;
 }
 
+/* XXX should this be !important */
 .no-transitions {
 	-webkit-transition: none;
 	-moz-transition: none;
@@ -81,7 +82,8 @@
 }
 
 /* XXX think of a way not to use !important */
-.viewer.single-image-mode .ribbon {
+.single-image-mode .ribbon,
+.single-image-mode .ribbon-set {
 	-webkit-transition: none !important;
 	-moz-transition: none !important;
 	-ms-transition: none !important;
diff --git a/ui (gen4)/viewer.js b/ui (gen4)/viewer.js
index 71051ee0..8973f8c3 100755
--- a/ui (gen4)/viewer.js	
+++ b/ui (gen4)/viewer.js	
@@ -1307,7 +1307,9 @@ module.ShiftAnimation = Feature({
 		['shiftImageUp.pre shiftImageDown.pre', 
 			function(target){
 				// XXX do not do target lists...
-				if(target != null && target.constructor === Array){
+				if(target != null && target.constructor === Array 
+						// do not animate in single image mode...
+						&& this.toggleSingleImage('?') == 'on'){
 					return
 				}
 				var s = this.ribbons.makeShadow(target, true)
@@ -1318,7 +1320,9 @@ module.ShiftAnimation = Feature({
 		['shiftImageLeft.pre shiftImageRight.pre', 
 			function(target){
 				// XXX do not do target lists...
-				if(target != null && target.constructor === Array){
+				if(target != null && target.constructor === Array
+						// do not animate in single image mode...
+						&& this.toggleSingleImage('?') == 'on'){
 					return
 				}
 				var s = this.ribbons.makeShadow(target)