Force object update after setting property

From what I was reading blender wait with updating some properties, untill they are needed. So eg. when I set matrix_world on object that is on hidden layer, object position is not updated. But when I grab it and cancel grab it is updated.
is there a way to force update scene to refresh object properties?
I tried :
bpy.context.scene.update()
but it won work. Objects transformation is not updated…
http://www.blender.org/api/blender_python_api_2_75a_release/info_gotcha.html#stale-data

Works fine for me?

import bpyfrom mathutils import Matrix


bpy.ops.mesh.primitive_cube_add()
ob = bpy.context.object
ob.hide = True


layers = [False] * 20
layers[10] = True
ob.layers = layers


mat_before = ob.matrix_world.copy()


smat = Matrix.Identity(4)
for i in range(3):
    smat[i][i] = 2


ob.matrix_world *= smat
mat_after = ob.matrix_world.copy()


print(mat_before)
print()
print(mat_after)
print("Changed?", repr(mat_before) != repr(mat_after))

well yes, for hiden object it works. I mean reading matrix works and it is updated in vieport after unhiding.
But when obj is on hidden layer, it’s visual state is not updated (but it’s data is updated - just visually object stays the same). Well I did some workaround and it works so no problem.
I you want to see problem exectue this:
bpy.data.objects[‘Cube’].scale[0]=2
for cube that is placed on hidden layer. An then go to layer with cube.