Always render the visible objects
You could also do this with Python! 

To do so you could run the following  code, manually, before rendering:

import bpy

for obj in bpy.data.objects:
    obj.hide_render = obj.hide


A better solution would be to somehow run the code automagically before rendering, which can be  done as follows:

import bpy

def unhide(self):
     for obj in bpy.data.objects:
          obj.hide_render = obj.hide

bpy.app.handlers.render_pre.append(unhide)


To make the script run every time you open up the blend file, name your text block with a .py extension and check Register. 

Note that you must run the script once;