diff --git a/aos/build/queues/compiler.rb b/aos/build/queues/compiler.rb
index 8c643c7..bcd497a 100644
--- a/aos/build/queues/compiler.rb
+++ b/aos/build/queues/compiler.rb
@@ -4,7 +4,7 @@
 	require File.dirname(__FILE__) + "/objects/" + name
 end
 ["standard_types.rb","auto_gen.rb","file_pair_types.rb",
-"dep_file_pair.rb","swig.rb"].each do |name|
+"dep_file_pair.rb"].each do |name|
 	require File.dirname(__FILE__) + "/cpp_pretty_print/" + name
 end
 ["q_file.rb","message_dec.rb","queue_dec.rb", "q_struct.rb"].each do |name|
@@ -15,8 +15,6 @@
 
 def parse_args(globals,args)
 	i = 0
-	$swig = false
-	$swigccout_path = ""
 	while(i < args.length)
 		if(args[i] == "-I")
 			args.delete_at(i)
@@ -28,9 +26,6 @@
 			end
 			path = args.delete_at(i)
 			globals.add_path(path)
-		elsif(args[i] == "--swigccout")
-			args.delete_at(i)
-			$swigccout_path = args.delete_at(i)
 		elsif(args[i] == "-cpp_out")
 			args.delete_at(i)
 			path = args.delete_at(i)
@@ -47,9 +42,6 @@
 				exit!(-1)
 			end
 			$cpp_out = path.split(/\\|\//)
-		elsif(args[i] == "--swig")
-			$swig = true
-			args.delete_at(i)
 		elsif(args[i] == "-cpp_base")
 			args.delete_at(i)
 			path = args.delete_at(i)
@@ -96,8 +88,6 @@
 
 	h_file_path = $cpp_base + "/" + rel_path + ".h"
 	cc_file_path = $cpp_base + "/" + rel_path + ".cc"
-	swig_file_path = $cpp_base + "/" + rel_path + ".swig"
-	java_directory = $cpp_base + "/" + rel_path + "_java/"
 	cpp_tree.add_cc_include((rel_path + ".h").inspect)
 	cpp_tree.add_cc_include("aos/common/byteorder.h".inspect)
 	cpp_tree.add_cc_include("aos/common/inttypes.h".inspect)
@@ -105,10 +95,6 @@
   cpp_tree.add_cc_include("aos/common/once.h".inspect)
 	cpp_tree.add_cc_using("::aos::to_network")
 	cpp_tree.add_cc_using("::aos::to_host")
-	cpp_tree.add_swig_header_include("aos/common/queue.h".inspect)
-	cpp_tree.add_swig_body_include("aos/linux_code/queue-tmpl.h".inspect)
-	cpp_tree.add_swig_header_include("aos/common/time.h".inspect)
-	cpp_tree.add_swig_include((rel_path + ".h").inspect)
 
 	header_file = File.open(h_file_path,"w+")
 	cc_file = File.open(cc_file_path,"w+")
@@ -116,23 +102,6 @@
 	cpp_tree.write_cc_file($cpp_base,cc_file)
 	cc_file.close()
 	header_file.close()
-	if ($swig)
-		swig_file = File.open(swig_file_path,"w+")
-		cpp_tree.write_swig_file($cpp_base,swig_file,q_filename)
-		swig_file.close()
-		namespace = q_file.namespace.get_name()[1..-1]
-		FileUtils.mkdir_p(java_directory)
-		includes = globals.paths.collect { |a| "-I#{a}" }
-
-		if (!system('/usr/bin/swig', *(includes + ['-I' + $cpp_base + '/',
-				    '-package', namespace,
-				    '-outdir', java_directory,
-				    '-o', $swigccout_path,
-				    '-c++', '-Wall', '-Wextra', '-java', swig_file_path])))
-			puts "Swig failed."
-			exit -1
-		end
-	end
 end
 begin
 	args = ARGV.dup
