diff --git a/include/ceres/fpclassify.h b/include/ceres/fpclassify.h
index c2afeab..1b10bc2 100644
--- a/include/ceres/fpclassify.h
+++ b/include/ceres/fpclassify.h
@@ -51,25 +51,8 @@
 inline bool IsInfinite(double x) { return _finite(x) == 0 && _isnan(x) == 0; }
 inline bool IsNaN     (double x) { return _isnan(x) != 0;                    }
 inline bool IsNormal  (double x) {  // NOLINT
-  int classification = _fpclass(x);
-  return classification == _FPCLASS_NN ||
-         classification == _FPCLASS_PN;
-}
-
-#elif defined(ANDROID) && defined(_STLPORT_VERSION)
-
-// On Android, when using the STLPort, the C++ isnan and isnormal functions
-// are defined as macros.
-inline bool IsNaN     (double x) { return isnan(x);    }
-inline bool IsNormal  (double x) { return isnormal(x); }
-// On Android NDK r6, when using STLPort, the isinf and isfinite functions are
-// not available, so reimplement them.
-inline bool IsInfinite(double x) {
-  return x ==  std::numeric_limits<double>::infinity() ||
-         x == -std::numeric_limits<double>::infinity();
-}
-inline bool IsFinite(double x) {
-  return !isnan(x) && !IsInfinite(x);
+  const int classification = _fpclass(x);
+  return (classification == _FPCLASS_NN || classification == _FPCLASS_PN);
 }
 
 # else
