Index: generic.cpp
===================================================================
--- generic.cpp	(revision 6212)
+++ generic.cpp	(working copy)
@@ -317,7 +317,7 @@
 	if((ga->direction & GENERIC_ANIM_DIRECTION_PAUSED) == 0) {
 		if(ga->direction & GENERIC_ANIM_DIRECTION_BACKWARDS) {
 			//keep going forwards if we're in a keyframe loop
-			if(ga->keyframe && (ga->anim_time > keytime)) {
+			if(ga->keyframe && (ga->anim_time >= keytime)) {
 				ga->anim_time += frametime;
 				if(ga->anim_time >= ga->total_time) {
 					ga->anim_time = keytime - 0.001f;
@@ -327,11 +327,11 @@
 			else {
 				//playing backwards
 				ga->anim_time -= frametime;
-				if((ga->direction & GENERIC_ANIM_DIRECTION_NOLOOP) && ga->anim_time < 0.0) {
+				if((ga->direction & GENERIC_ANIM_DIRECTION_NOLOOP) && ga->anim_time <= 0.0) {
 					ga->anim_time = 0;		//stop on first frame when playing in reverse
 				}
 				else {
-					while(ga->anim_time < 0.0)
+					while(ga->anim_time <= 0.0)
 						ga->anim_time += ga->total_time;	//make sure we're always positive, so we can go back to the end
 				}
 			}
