--- a/grc/scripts/gnuradio-companion
+++ b/grc/scripts/gnuradio-companion
@@ -18,6 +18,9 @@
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 """
 
+import os
+if os.environ.get('GR_DONT_LOAD_PREFS'):
+       del os.environ['GR_DONT_LOAD_PREFS']
 import pygtk
 pygtk.require('2.0')
 import gtk
@@ -39,9 +42,23 @@
 	d.run()
 	exit(-1)
 
-from gnuradio import gr
 from optparse import OptionParser
 
+def compile_one(file_name, output_dir):
+       """ Directly compiles file_name into output_dir without invoking GUI """
+       if output_dir is None:
+               output_dir = './'
+               if "GRC_OUTPUT_DIRECTORY" in os.environ:
+                       output_dir = os.environ["GRC_OUTPUT_DIRECTORY"]
+       print "Compiling " + file_name + " to " + output_dir
+       platform  = Platform()
+       state     = platform.parse_flow_graph(file_name)
+       flowgraph = platform.get_new_flow_graph()
+       flowgraph.import_data(state)
+       flowgraph.validate()
+       generator = platform.get_generator()(flowgraph, output_dir)
+       generator.write()
+
 if __name__ == "__main__":
 	usage = 'usage: %prog [options] [saved flow graphs]'
 	version = """
@@ -53,11 +70,17 @@
 and you are welcome to redistribute it.
 """%gr.version()
 	parser = OptionParser(usage=usage, version=version)
+        parser.add_option("-c", "--compile", action="store_true", default=False,
+                          help="Only compile the GRC file without invoking the GUI")
+        parser.add_option("-d", "--output-dir", type="string", default=None,
+                         help="Output path for the Python file")
 	(options, args) = parser.parse_args()
 	from gnuradio.grc.python.Platform import Platform
-	from gnuradio.grc.gui.ActionHandler import ActionHandler
-	#setup icon using icon theme
-	try: gtk.window_set_default_icon(gtk.IconTheme().load_icon('gnuradio-grc', 256, 0))
-	except: pass
-	ActionHandler(args, Platform())
-
+        if options.compile:
+		compile_one(args[0], options.output_dir)
+        else:
+		from gnuradio.grc.gui.ActionHandler import ActionHandler
+                #setup icon using icon theme
+		try: gtk.window_set_default_icon(gtk.IconTheme().load_icon('gnuradio-grc', 256, 0))
+		except: pass
+		ActionHandler(args, Platform())
