diff --git a/src/main/java/com/threerings/media/util/MathUtil.java b/src/main/java/com/threerings/media/util/MathUtil.java
index 734640c0..2b16bad2 100644
--- a/src/main/java/com/threerings/media/util/MathUtil.java
+++ b/src/main/java/com/threerings/media/util/MathUtil.java
@@ -103,9 +103,7 @@ public class MathUtil
/**
* Computes the floored division dividend/divisor which
- * is useful when dividing potentially negative numbers into bins. For
- * positive numbers, it is the same as normal division, for negative
- * numbers it returns (dividend - divisor + 1) / divisor.
+ * is useful when dividing potentially negative numbers into bins.
*
*
For example, the following numbers floorDiv 10 are: *
@@ -115,7 +113,9 @@ public class MathUtil
*/
public static int floorDiv (int dividend, int divisor)
{
- return ((dividend >= 0) ? dividend : (dividend - divisor + 1))/divisor;
+ return ((dividend >= 0) == (divisor >= 0)) ?
+ dividend / divisor : (divisor >= 0 ?
+ (dividend - divisor + 1) / divisor : (dividend - divisor - 1) / divisor);
}
/**