diff --git a/pid/ec/stepwise.hpp b/pid/ec/stepwise.hpp
index bc7c204..3ce847a 100644
--- a/pid/ec/stepwise.hpp
+++ b/pid/ec/stepwise.hpp
@@ -31,6 +31,7 @@
     double output[maxStepwisePoints];
     double positiveHysteresis;
     double negativeHysteresis;
+    bool isCeiling;
 };
 
 double stepwise(const ec::StepwiseInfo& info, double value);
diff --git a/pid/pidthread.cpp b/pid/pidthread.cpp
index 44c5e86..08fb513 100644
--- a/pid/pidthread.cpp
+++ b/pid/pidthread.cpp
@@ -31,6 +31,7 @@
     zone->updateSensors();
     // Zero out the RPM set point goals.
     zone->clearRPMSetPoints();
+    zone->clearRPMCeilings();
     // Run the margin PIDs.
     zone->processThermals();
     // Get the maximum RPM setpoint.
diff --git a/pid/stepwisecontroller.cpp b/pid/stepwisecontroller.cpp
index fee25ab..2408502 100644
--- a/pid/stepwisecontroller.cpp
+++ b/pid/stepwisecontroller.cpp
@@ -95,9 +95,13 @@
 
 void StepwiseController::outputProc(double value)
 {
-    // values are 10 for 10%
-    value *= 100;
-    _owner->addRPMSetPoint(value);
-
+    if (get_stepwise_info().isCeiling)
+    {
+        _owner->addRPMCeiling(value);
+    }
+    else
+    {
+        _owner->addRPMSetPoint(value);
+    }
     return;
 }
diff --git a/pid/zone.cpp b/pid/zone.cpp
index fc0b40b..065e6d7 100644
--- a/pid/zone.cpp
+++ b/pid/zone.cpp
@@ -65,6 +65,16 @@
     _RPMSetPoints.push_back(setpoint);
 }
 
+void PIDZone::addRPMCeiling(double ceiling)
+{
+    _RPMCeilings.push_back(ceiling);
+}
+
+void PIDZone::clearRPMCeilings(void)
+{
+    _RPMCeilings.clear();
+}
+
 void PIDZone::clearRPMSetPoints(void)
 {
     _RPMSetPoints.clear();
@@ -116,6 +126,12 @@
         max = *result;
     }
 
+    if (_RPMCeilings.size() > 0)
+    {
+        result = std::min_element(_RPMCeilings.begin(), _RPMCeilings.end());
+        max = std::min(max, *result);
+    }
+
     /*
      * If the maximum RPM setpoint output is below the minimum RPM
      * setpoint, set it to the minimum.
diff --git a/pid/zone.hpp b/pid/zone.hpp
index 223f3cb..077d272 100644
--- a/pid/zone.hpp
+++ b/pid/zone.hpp
@@ -28,6 +28,7 @@
 
     virtual double getCachedValue(const std::string& name) = 0;
     virtual void addRPMSetPoint(double setpoint) = 0;
+    virtual void addRPMCeiling(double ceiling) = 0;
     virtual double getMaxRPMRequest() const = 0;
     virtual bool getFailSafeMode() const = 0;
     virtual double getFailSafePercent() const = 0;
@@ -64,7 +65,9 @@
     bool getFailSafeMode(void) const override;
     int64_t getZoneID(void) const;
     void addRPMSetPoint(double setpoint) override;
+    void addRPMCeiling(double ceiling) override;
     void clearRPMSetPoints(void);
+    void clearRPMCeilings(void);
     double getFailSafePercent(void) const override;
     double getMinThermalRPMSetpoint(void) const;
 
@@ -107,6 +110,7 @@
     std::set<std::string> _failSafeSensors;
 
     std::vector<double> _RPMSetPoints;
+    std::vector<double> _RPMCeilings;
     std::vector<std::string> _fanInputs;
     std::vector<std::string> _thermalInputs;
     std::map<std::string, double> _cachedValuesByName;
