Index: soundlib/tuningbase.h
===================================================================
--- soundlib/tuningbase.h	(revision 10638)
+++ soundlib/tuningbase.h	(revision 10639)
@@ -64,6 +64,7 @@
 
 //END TYPEDEFS
 
+	#define FINESTEPCOUNT_MAX 0xffff
 
 //BEGIN PUBLIC STATICS
 	static const SERIALIZATION_VERSION s_SerializationVersion;
Index: soundlib/tuning.cpp
===================================================================
--- soundlib/tuning.cpp	(revision 10638)
+++ soundlib/tuning.cpp	(revision 10639)
@@ -214,6 +214,10 @@
 //-------------------------------------------------------------------------------------------------------------
 {
 	const STEPINDEXTYPE fsCount = static_cast<STEPINDEXTYPE>(GetFineStepCount());
+	if(fsCount < 0 || fsCount > FINESTEPCOUNT_MAX)
+	{
+		return s_DefaultFallbackRatio;
+	}
 	if(fsCount == 0 || baseStepDiff == 0)
 	{
 		return GetRatio(static_cast<NOTEINDEXTYPE>(baseNote + baseStepDiff));
@@ -249,8 +253,10 @@
 CTuning::RATIOTYPE CTuningRTI::GetRatioFine(const NOTEINDEXTYPE& note, USTEPINDEXTYPE sd) const
 //---------------------------------------------------------------------------------------------
 {
-	if(GetFineStepCount() <= 0)
-		return 1;
+	if(GetFineStepCount() <= 0 || GetFineStepCount() > static_cast<USTEPINDEXTYPE>(FINESTEPCOUNT_MAX))
+	{
+		return s_DefaultFallbackRatio;
+	}
 
 	//Neither of these should happen.
 	if(sd <= 0) sd = 1;
