Index: JvRollOut.pas
===================================================================
--- JvRollOut.pas	(revision 12894)
+++ JvRollOut.pas	(working copy)
@@ -133,10 +133,8 @@
     FCollapsed: Boolean;
     FMouseDown: Boolean;
     FInsideButton: Boolean;
-    FCWidth: Integer;
-    FCHeight: Integer;
-    FAWidth: Integer;
-    FAHeight: Integer;
+    FCWidth, FCHeight: Integer;    // Collapsed height/width
+    FAWidth, FAHeight: Integer;    // Expanded height/width
     FButtonHeight: Integer;
     FChildOffset: Integer;
     FOnExpand: TNotifyEvent;
@@ -1103,7 +1101,7 @@
     end
     else
       R.Left := ImageOptions.Offset * 2 + BevelWidth;
-    R.Top := R.Top - (Canvas.TextHeight(Caption) - (FButtonRect.Bottom - FButtonRect.Top)) div 2 + BevelWidth div 2;
+    R.Top := R.Top - (Canvas.TextHeight(Caption) - (FButtonRect.Bottom - FButtonRect.Top)) div 2;
   end
   else
   begin
@@ -1331,6 +1329,10 @@
     SetChildVisibility;
 end;
 
+// ###################################
+// ######  Methods associated to SmartShow
+// ###################################
+
 // Event handler called by the "TopWindow" when the window-rolloutpanel loses focus
 //   to automatically collapse panel again
 procedure TJvCustomRollOut.OnTopDeactivate(Sender: TObject);
@@ -1352,13 +1354,13 @@
   // -> restore old state
   if Parent = FTopForm then
   begin
+    OldCollapsed := FCollapsed;
+    FCollapsed := False;  // Set control to expanded, so that SetBounds stores expanded dimesions
+
     FTopForm.OnDeactivate := nil; // Deactivate the Event to prevent
                                 // calling this method a second time
     FTopForm.Hide;
 
-    OldCollapsed := FCollapsed;
-    FCollapsed := False;  // Set control to expanded, so that SetBounds stores expanded dimesions
-
     // Set the control back to it's old position!!
     Parent := FOldParent as TWinControl;
     Align := FOldAlign;
