Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision 9a92216db9c7162ec36c8c23009ecae6063c9474)
+++ src/CodeGen/CodeGenerator.cc	(revision 37024fd8a316113ef12f469617e9da9c6cecc309)
@@ -10,5 +10,5 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Fri May 06 11:39:01 2016
+// Last Modified On : Fri May 06 14:57:16 2016
 // Update Count     : 243
 //
@@ -75,24 +75,23 @@
 	//*** Declarations
 	void CodeGenerator::visit( FunctionDecl *functionDecl ) {
-		handleStorageClass( functionDecl );
-		if ( functionDecl->get_isInline() ) {
-			output << "inline ";
-		} // if
-		if ( functionDecl->get_isNoreturn() ) {
-			output << "_Noreturn ";
-		} // if
-		output << genType( functionDecl->get_functionType(), mangleName( functionDecl ) );
-
 		// generalize this
 		switch ( functionDecl->get_attribute() ) {
 			case FunctionDecl::Constructor:
-				output << " __attribute__ ((constructor))";
+				output << "__attribute__ ((constructor)) ";
 				break;
 			case FunctionDecl::Destructor:
-				output << " __attribute__ ((destructor))";
+				output << "__attribute__ ((destructor)) ";
 				break;
 			default:
 				break;
 		}
+		handleStorageClass( functionDecl );
+		if ( functionDecl->get_isInline() ) {
+			output << "inline ";
+		} // if
+		if ( functionDecl->get_isNoreturn() ) {
+			output << "_Noreturn ";
+		} // if
+		output << genType( functionDecl->get_functionType(), mangleName( functionDecl ) );
 
 		// how to get this to the Functype?
Index: src/InitTweak/FixGlobalInit.cc
===================================================================
--- src/InitTweak/FixGlobalInit.cc	(revision 9a92216db9c7162ec36c8c23009ecae6063c9474)
+++ src/InitTweak/FixGlobalInit.cc	(revision 37024fd8a316113ef12f469617e9da9c6cecc309)
@@ -10,5 +10,5 @@
 // Created On       : Mon May 04 15:14:56 2016
 // Last Modified By : Rob Schluntz
-// Last Modified On : Fri May 06 13:51:00 2016
+// Last Modified On : Fri May 06 14:59:26 2016
 // Update Count     : 2
 //
@@ -30,5 +30,5 @@
 	class GlobalFixer : public Visitor {
 	  public:
-		GlobalFixer();
+		GlobalFixer( const std::string & name );
 
 		virtual void visit( ObjectDecl *objDecl );
@@ -41,5 +41,5 @@
 
 		UniqueName tempNamer;
-		CompoundStmt * block;
+		FunctionDecl * initFunction;
 	};
 
@@ -88,14 +88,7 @@
 
 	void fixGlobalInit( std::list< Declaration * > & translationUnit, const std::string & name ) {
-		GlobalFixer fixer;
+		GlobalFixer fixer( name );
 		acceptAll( translationUnit, fixer );
-		// attribute only appears on the forward declaration, so need to make two function decls:
-		// one with the body, one with the attribute.
-		FunctionDecl * initFunction = new FunctionDecl( initName( name ), DeclarationNode::NoStorageClass, LinkageSpec::C, new FunctionType( Type::Qualifiers(), false ), 0, false, false );
-		FunctionDecl * forward = initFunction->clone();
-		forward->set_attribute( FunctionDecl::Constructor );
-		initFunction->set_statements( fixer.block );
-		translationUnit.push_back( forward );
-		translationUnit.push_back( initFunction );
+		translationUnit.push_back( fixer.initFunction );
 	}
 
@@ -109,9 +102,10 @@
   }
 
-	GlobalFixer::GlobalFixer() : tempNamer( "_global_init" ), block( new CompoundStmt( noLabels ) ) {
+	GlobalFixer::GlobalFixer( const std::string & name ) : tempNamer( "_global_init" ) {
+		initFunction = new FunctionDecl( initName( name ), DeclarationNode::Static, LinkageSpec::C, new FunctionType( Type::Qualifiers(), false ), new CompoundStmt( noLabels ), false, false, FunctionDecl::Constructor );
 	}
 
 	void GlobalFixer::visit( ObjectDecl *objDecl ) {
-		std::list< Statement * > & statements = block->get_kids();
+		std::list< Statement * > & statements = initFunction->get_statements()->get_kids();
 
 		if ( objDecl->get_init() == NULL ) return;
Index: src/main.cc
===================================================================
--- src/main.cc	(revision 9a92216db9c7162ec36c8c23009ecae6063c9474)
+++ src/main.cc	(revision 37024fd8a316113ef12f469617e9da9c6cecc309)
@@ -10,5 +10,5 @@
 // Created On       : Fri May 15 23:12:02 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Fri May 06 14:20:26 2016
+// Last Modified On : Fri May 06 14:56:40 2016
 // Update Count     : 203
 //
@@ -186,10 +186,6 @@
 			// if running cfa-cpp directly, might forget to pass -F option (and really shouldn't have to)
 			if ( filename == NULL ) filename = argv[ optind ];
-			// prepend libcfa prefix to disambiguate library code from user programs
-			if ( libcfap ) {
-				filename = "libcfa/prelude.cf";
-			} else if ( treep ) {
-				filename = (*new string(string("libcfa/") + filename)).c_str();
-			}
+			// prelude filename comes in differently
+			if ( libcfap ) filename = "prelude.cf";
 			optind += 1;
 		} else {
