diff --git a/src/Configuration.cpp b/src/Configuration.cpp
index 07b2796442586fb5431b0b71401f56f6412b3831..6a090d23b3579ecfbd58f5ccee00fac910848265 100644
--- a/src/Configuration.cpp
+++ b/src/Configuration.cpp
@@ -25,20 +25,20 @@ Configuration::Configuration(const char* config_file, int simNum, bool debug) :
 	readParameters(config_file);
 
 	// Get the number of particles
-	printf("\nCounting particles specified in the ");
+	// printf("\nCounting particles specified in the ");
 	if (restartCoordinates.length() > 0) {
     // Read them from the restart file.
-		printf("restart file.\n");
+	    // printf("restart file.\n");
 		num = countRestart(restartCoordinates.val());
   } else {
     if (readPartsFromFile) readAtoms();
     if (numPartsFromFile > 0) {
       // Determine number of particles from input file (PDB-style)
-      printf("input file.\n");
+	// printf("input file.\n");
       num = numPartsFromFile;
     } else {
       // Sum up all particles in config file
-      printf("configuration file.\n");
+	// printf("configuration file.\n");
       //int num0 = 0;
       num = 0;
       for (int i = 0; i < numParts; i++) num += part[i].num;
@@ -48,7 +48,7 @@ Configuration::Configuration(const char* config_file, int simNum, bool debug) :
 
 
 	// Set the number capacity
-	printf("\nInitial particles: %d\n", num);
+	printf("\n%d particles\n", num);
 	if (numCap <= 0) numCap = numCapFactor*num; // max number of particles
 	if (numCap <= 0) numCap = 20;
 
@@ -152,7 +152,7 @@ Configuration::Configuration(const char* config_file, int simNum, bool debug) :
 			if (partGridFileScale[i] != 1.0f) part[i].pmf->scale(partGridFileScale[i]);
 
 			part[i].meanPmf = part[i].pmf->mean();
-			printf("Loaded dx grid `%s'.\n", map.val());
+			printf("Loaded dx potential grid `%s'.\n", map.val());
 			printf("System size %s.\n", part[i].pmf->getExtent().toString().val());
 		} else if  (len >= 4 && map[len-4]=='.' && map[len-3]=='d' && map[len-2]=='e' && map[len-1]=='f') {
 			// A system definition file.
@@ -429,7 +429,7 @@ Configuration::~Configuration() {
 }
 
 void Configuration::copyToCUDA() {
-	printf("Copying to GPU %d\n", GPUManager::current());
+	printf("Copying particle data to GPU %d\n", GPUManager::current());
 
 	BrownianParticleType **part_addr = new BrownianParticleType*[numParts];
 
@@ -1400,7 +1400,7 @@ bool Configuration::readBondFile(const String& value, int currBond) {
 
 	bondTableFile[currBond] = tokenList[0];
 
-	printf("Tabulated Bond Potential: %s\n", bondTableFile[currBond].val() );
+	// printf("Tabulated Bond Potential: %s\n", bondTableFile[currBond].val() );
 
 	return true;
 }
@@ -1421,7 +1421,7 @@ bool Configuration::readAngleFile(const String& value, int currAngle) {
 
 	angleTableFile[currAngle] = tokenList[0];
 
-	printf("Tabulated Angle Potential: %s\n", angleTableFile[currAngle].val() );
+	// printf("Tabulated Angle Potential: %s\n", angleTableFile[currAngle].val() );
 
 	return true;
 }
@@ -1442,7 +1442,7 @@ bool Configuration::readDihedralFile(const String& value, int currDihedral) {
 
 	dihedralTableFile[currDihedral] = tokenList[0];
 
-	printf("Tabulated Dihedral Potential: %s\n", dihedralTableFile[currDihedral].val() );
+	// printf("Tabulated Dihedral Potential: %s\n", dihedralTableFile[currDihedral].val() );
 
 	return true;
 }
@@ -1622,8 +1622,8 @@ bool Configuration::readTableFile(const String& value, int currTab) {
 	partTableIndex1[currTab] = atoi(tokenList[1]);
 	partTableFile[currTab] = tokenList[2];
 
-	printf("tabulatedPotential: %d %d %s\n", partTableIndex0[currTab],
-			partTableIndex1[currTab], partTableFile[currTab].val() );
+	// printf("Tabulated Potential: %d %d %s\n", partTableIndex0[currTab],
+	// 		partTableIndex1[currTab], partTableFile[currTab].val() );
 	delete[] tokenList;
 	return true;
 }
diff --git a/src/GrandBrownTown.cu b/src/GrandBrownTown.cu
index a5191dc45f175fbbd6b718b6a4a1ba3900eddb77..eedfdc18de72bf8c2f154e942a039306b3b50030 100644
--- a/src/GrandBrownTown.cu
+++ b/src/GrandBrownTown.cu
@@ -338,7 +338,7 @@ GrandBrownTown::~GrandBrownTown() {
 
 // Run the Brownian Dynamics steps.
 void GrandBrownTown::run() {
-	printf("\n");
+	printf("\n\n");
 	Vector3 runningNetForce(0.0f);
 	
 	// Open the files for recording ionic currents
@@ -671,7 +671,7 @@ void GrandBrownTown::run() {
 			setlocale(LC_NUMERIC, "");
 
 			// Do the output
-			printf("Step %ld [%.2f%% complete | %.3f ms/step | %.3f ns/day]\n",
+			printf("\rStep %ld [%.2f%% complete | %.3f ms/step | %.3f ns/day]",
 						 s, percent, msPerStep, nsPerDay);
 		/*	printf("T: %.5g ns | E: %.5g | F: %.5g %.5g %.5g\n",
 						 t, energy, force0.x, force0.y, force0.z);
@@ -705,19 +705,19 @@ void GrandBrownTown::run() {
 			int length;
 			switch (imd_recv_header(clientsock, &length)) {
 				case IMD_DISCONNECT:
-					printf("[IMD] Disconnecting...\n");
+					printf("\n[IMD] Disconnecting...\n");
 					imd_disconnect(clientsock);
 					clientsock = NULL;
 					sleep(5);
 					break;
 				case IMD_KILL:
-					printf("[IMD] Killing...\n");
+					printf("\n[IMD] Killing...\n");
 					imd_disconnect(clientsock);
 					clientsock = NULL;
 					sleep(5);
 					break;
 				default:
-					printf("[IMD] Something weird happened. Disconnecting..\n");
+					printf("\n[IMD] Something weird happened. Disconnecting..\n");
 					break;
 			}
 		}
@@ -732,7 +732,7 @@ void GrandBrownTown::run() {
 	int tot_min = (int) std::fmod(elapsed / 60.0f, 60.0f);
 	float tot_sec	= std::fmod(elapsed, 60.0f);
 
-	printf("Final Step: %d\n", (int) steps);
+	printf("\nFinal Step: %d\n", (int) steps);
 
 	printf("Total Run Time: ");
 	if (tot_hrs > 0) printf("%dh%dm%.1fs\n", tot_hrs, tot_min, tot_sec);
diff --git a/src/Random.h b/src/Random.h
index 4dcd2317bdca607fffed159898ffe6197c6afab8..7abdaecfb99d94826d2254d44075fcfe86b50e80 100644
--- a/src/Random.h
+++ b/src/Random.h
@@ -74,7 +74,7 @@ public:
     rand48_seed |= RAND48_SEED & INT64_LITERAL(0x0000ffff);
     rand48_mult = RAND48_MULT;
     rand48_add = RAND48_ADD;
-    print("INIT\n");
+    // print("INIT\n");
   }
 
   HOST DEVICE inline void print(char* string)
diff --git a/src/RandomCPU.h b/src/RandomCPU.h
index 7c9876fe901c46d220927d2a1c9c0e32565801bb..db77245dcec85a26345fc157e452df93206c8467 100644
--- a/src/RandomCPU.h
+++ b/src/RandomCPU.h
@@ -80,7 +80,6 @@ public:
     rand48_seed |= RAND48_SEED & INT64_LITERAL(0x0000ffff);
     rand48_mult = RAND48_MULT;
     rand48_add = RAND48_ADD;
-    print("INIT\n");
   }
 
   HOST DEVICE inline void print(const char* string)
diff --git a/src/RigidBodyController.cu b/src/RigidBodyController.cu
index 1fc9a6a01c6d8115a5b21e073340d90680ff9083..dd2a5e6600bc66bed2b232f98976769665d2a6ad 100644
--- a/src/RigidBodyController.cu
+++ b/src/RigidBodyController.cu
@@ -15,7 +15,7 @@
 #define gpuErrchk(ans) { gpuAssert((ans), __FILE__, __LINE__); }
 inline void gpuAssert(cudaError_t code, String file, int line, bool abort=true) {
    if (code != cudaSuccess) {
-      fprintf(stderr,"CUDA Error: %s %s %d\n", cudaGetErrorString(code), __FILE__, line);
+       fprintf(stderr,"CUDA Error: %s %s %d\n", cudaGetErrorString(code), __FILE__, line);
       if (abort) exit(code);
    }
 }
@@ -133,7 +133,7 @@ void RigidBodyController::initializeForcePairs() {
 	// Loop over all pairs of rigid body types
 	//   the references here make the code more readable, but they may incur a performance loss
 	RigidBodyForcePair::createStreams();
-	printf("Initializing force pairs\n");
+	// printf("Initializing force pairs\n");
 	for (int ti = 0; ti < conf.numRigidTypes; ti++) {
 		RigidBodyType& t1 = conf.rigidBody[ti];
 		for (int tj = ti; tj < conf.numRigidTypes; tj++) {
@@ -143,20 +143,20 @@ void RigidBodyController::initializeForcePairs() {
 			const std::vector<String>& keys1 = t1.densityGridKeys; 
 			const std::vector<String>& keys2 = t2.potentialGridKeys;
 
-			printf("  Working on type pair ");
-			t1.name.printInline(); printf(":"); t2.name.print();
+			// printf("  Working on type pair ");
+			// t1.name.printInline(); printf(":"); t2.name.print();
 			
 			// Loop over all pairs of grid keys (e.g. "Elec")
 			std::vector<int> gridKeyId1;
 			std::vector<int> gridKeyId2;
 			
-			printf("  Grid keys %d:%d\n",keys1.size(),keys2.size());
+			// printf("  Grid keys %d:%d\n",keys1.size(),keys2.size());
 
 			bool paired = false;
 			for(int k1 = 0; k1 < keys1.size(); k1++) {
 				for(int k2 = 0; k2 < keys2.size(); k2++) {
-					printf("    checking grid keys ");
-					keys1[k1].printInline(); printf(":"); keys2[k2].print();
+				    // printf("    checking grid keys ");
+				    //	keys1[k1].printInline(); printf(":"); keys2[k2].print();
 					
 					if ( keys1[k1] == keys2[k2] ) {
 						gridKeyId1.push_back(k1);
@@ -177,11 +177,11 @@ void RigidBodyController::initializeForcePairs() {
 						RigidBody* rb1 = &(rbs1[i]);
 						RigidBody* rb2 = &(rbs2[j]);
 
-						printf("    pushing RB force pair for %d:%d\n",i,j);
+						// printf("    pushing RB force pair for %d:%d\n",i,j);
 						RigidBodyForcePair fp = RigidBodyForcePair(&(t1),&(t2),rb1,rb2,gridKeyId1,gridKeyId2, false, conf.rigidBodyGridGridPeriod );
 						gpuErrchk(cudaDeviceSynchronize()); /* RBTODO: this should be extraneous */
 						forcePairs.push_back( fp ); 
-						printf("    done pushing RB force pair for %d:%d\n",i,j);
+						// printf("    done pushing RB force pair for %d:%d\n",i,j);
 					}
 				}
 			}
@@ -510,7 +510,7 @@ void RigidBodyController::print(int step) {
 		if ( step % conf.outputPeriod == 0 ) {
 			if ( ! trajFile.rdbuf()->is_open() ) {
 	      // open file
-	      printf("OPENING RIGID BODY TRAJECTORY FILE\n");
+			    // printf("OPENING RIGID BODY TRAJECTORY FILE\n");
 				// RBTODO: backup_file(simParams->rigidBodyTrajectoryFile);
 
 				char fname[140];
@@ -533,7 +533,7 @@ void RigidBodyController::print(int step) {
 	      trajFile << "# RigidBody trajectory file" << std::endl;
 	      printLegend(trajFile);
 			}
-			printf("WRITING RIGID BODY COORDINATES AT STEP %d\n",step);
+			// printf("WRITING RIGID BODY COORDINATES AT STEP %d\n",step);
 			printData(step,trajFile);
 			trajFile.flush();    
 		}
@@ -543,7 +543,7 @@ void RigidBodyController::print(int step) {
 		/* 		 ((step % simParams->restartFrequency) == 0) && */
 		/* 		 (step != simParams->firstTimestep) )	{ */
 		if ( step % conf.outputPeriod == 0 && step != 0 ){
-			printf("RIGID BODY: WRITING RESTART FILE AT STEP %d\n", step);
+		    // printf("RIGID BODY: WRITING RESTART FILE AT STEP %d\n", step);
 			char fname[140];
 			strcpy(fname,outArg);
 			strcat(fname, ".rigid");
@@ -603,7 +603,7 @@ void RigidBodyController::printData(int step,std::ofstream &file) {
 }
 
 int RigidBodyForcePair::initialize() {
-	printf("    Initializing (streams for) RB force pair...\n");
+    // printf("    Initializing (streams for) RB force pair...\n");
 
 	const int numGrids = gridKeyId1.size();
 	// RBTODO assert gridKeysIds are same size 
@@ -653,7 +653,7 @@ void RigidBodyForcePair::swap(RigidBodyForcePair& a, RigidBodyForcePair& b) {
 
 
 RigidBodyForcePair::~RigidBodyForcePair() {
-	printf("    Destructing RB force pair\n");
+    //printf("    Destructing RB force pair\n");
 	const int numGrids = gridKeyId1.size();
 
 	// printf("      numGrids = %d\n",numGrids);