diff --git a/SMPFunction.cpp b/SMPFunction.cpp
index d6f3dd90dfb324d9720dbc2816251e9bc1bea6ba..2b01fd20c836ee3daaf13b7278c464e7f7d64478 100644
--- a/SMPFunction.cpp
+++ b/SMPFunction.cpp
@@ -1311,6 +1311,10 @@ bool SMPFunction::AnalyzeStackPointerDeltas(void) {
 						(unsigned long) InstAddr);
 					break;
 				}
+				else if (CurrInst->MDIsLeaveInstr()) {
+					// LEAVE is a restoration of a stack pointer, not processed by CurrInst->MDIsStackPtrSaveOrRestore()
+					StackPointerRestoreSeen = true; 
+				}
 
 				// Update VarKill and DownExposedDefs sets for DEFs in current instruction.
 				// Dataflow equation for killed variables: If a variable is defined in any