I need to compare the **before** save/update value with the **after** save/update value of a node field.

Example: There is an already existing node with the title of "Hello". I then edit the node and change the title to "World". 

I need to get the before value of "Hello".


    function mymodule_node_presave($node){
    
        $before = $node->title; 
        drupal_set_message($before, 'error');  
    
    }
    
    
    function mymodule_node_update($node){
     
        $after = $node->title; 
        drupal_set_message($after, 'warning');  
    
    }

But I always keep getting the same value...

[![enter image description here][1]][1]

**Did I just discover a drupal bug? or what? Because I've used this method in the past with user hooks and it works as expected:**

    function mymodule_user_presave(&$edit, $account, $category) {

         $before = $account->field_custom['und'][0]['value'];
         drupal_set_message($before, 'error'); 
    
    }
    
    function mymodule_user_update(&$edit, $account, $category) {

         $after = $account->field_custom['und'][0]['value'];
         drupal_set_message($after, 'warning');  
    
    }

[![enter image description here][2]][2]


  [1]: https://i.sstatic.net/EhOf2.jpg
  [2]: https://i.sstatic.net/kKG2Z.jpg