diff --git a/src/smap/job_functions.c b/src/smap/job_functions.c
index 3052c199e45b52e6dccc47493fc55435928fea4e..fc3e6c27aa7745276b5dfd1fac6bc8b9d9e15248 100644
--- a/src/smap/job_functions.c
+++ b/src/smap/job_functions.c
@@ -173,18 +173,18 @@ int print_text_job(job_info_t * job_ptr)
 
 	mvwprintw(smap_info_ptr->text_win, smap_info_ptr->ycord,
 		  smap_info_ptr->xcord, "%5d", job_ptr->num_nodes);
-	smap_info_ptr->xcord += 6;
+        smap_info_ptr->xcord += 6;
+
 	tempxcord = smap_info_ptr->xcord;
-	width = smap_info_ptr->text_win->_maxx - smap_info_ptr->xcord;
+	//width = smap_info_ptr->text_win->_maxx - smap_info_ptr->xcord;
+
 	while (job_ptr->nodes[i] != '\0') {
-		if ((printed =
-		     mvwaddch(smap_info_ptr->text_win,
-			      smap_info_ptr->ycord, smap_info_ptr->xcord,
-			      job_ptr->nodes[i])) < 0)
+		if ((printed = mvwaddch(smap_info_ptr->text_win,
+                                        smap_info_ptr->ycord, smap_info_ptr->xcord,
+                                        job_ptr->nodes[i])) < 0)
 			return printed;
 		smap_info_ptr->xcord++;
-		width =
-		    smap_info_ptr->text_win->_maxx - smap_info_ptr->xcord;
+		width = smap_info_ptr->text_win->_maxx - smap_info_ptr->xcord;
 		if (job_ptr->nodes[i] == '[')
 			prefixlen = i + 1;
 		else if (job_ptr->nodes[i] == ',' && (width - 9) <= 0) {
diff --git a/src/smap/partition_functions.c b/src/smap/partition_functions.c
index debcd7d50a84a9f0d21c9730d8ee40984f211a5c..15a0648d831e18a8ad4302d25482fc2cb5f2006c 100644
--- a/src/smap/partition_functions.c
+++ b/src/smap/partition_functions.c
@@ -207,15 +207,14 @@ int print_text_part(partition_info_t * part_ptr)
 	smap_info_ptr->xcord += 7;
 
 	tempxcord = smap_info_ptr->xcord;
-	width = smap_info_ptr->text_win->_maxx - smap_info_ptr->xcord;
+	//width = smap_info_ptr->text_win->_maxx - smap_info_ptr->xcord;
 	if (params.display == BGLPART)
 		nodes = part_ptr->allow_groups;
 	else
 		nodes = part_ptr->nodes;
 	prefixlen = i;
 	while (nodes[i] != '\0') {
-		width =
-		    smap_info_ptr->text_win->_maxx - smap_info_ptr->xcord;
+		width = smap_info_ptr->text_win->_maxx - smap_info_ptr->xcord;
 
 		if (!prefixlen && nodes[i] == '[' && nodes[i - 1] == ',')
 			prefixlen = i + 1;
diff --git a/src/smap/smap.c b/src/smap/smap.c
index bbb4b7c39e267bf6bf9ff8549a9e6eaf994dabe1..148c346d302ecd9a08190b69d537e62b26d53d9e 100644
--- a/src/smap/smap.c
+++ b/src/smap/smap.c
@@ -147,7 +147,6 @@ int main(int argc, char *argv[])
 		_get_option();
 	      redraw:
 
-
 		init_grid(node_info_ptr);
 		wclear(smap_info_ptr->text_win);
 		//wclear(smap_info_ptr->grid_win);        
@@ -271,23 +270,26 @@ void *_resize_handler(int sig)
 {
         int height = smap_info_ptr->Y * smap_info_ptr->Z + smap_info_ptr->Y + 3;
         int width = smap_info_ptr->X + smap_info_ptr->Z + 3;
-        
+        int tempwidth = width;
         smap_info_ptr->ycord = 1;
-	wclear(smap_info_ptr->grid_win);
-	wclear(smap_info_ptr->text_win);
-
+	
+	delwin(smap_info_ptr->grid_win);
+	delwin(smap_info_ptr->text_win);
+	
 	endwin();
 	initscr();
-
-	getmaxyx(stdscr, LINES, COLS);
-
-	delwin(smap_info_ptr->grid_win);
+	if (COLS < (75 + width) || LINES < height) {
+		endwin();
+		printf
+			("Screen is too small make sure the screen is at least %dx%d\nRight now it is %dx%d\n",
+			 75 + width, height, COLS, LINES);
+		exit(0);
+	}
+	
 	smap_info_ptr->grid_win = newwin(height, width, 0, 0);
 
 	width = COLS - width;
-	delwin(smap_info_ptr->text_win);
-	smap_info_ptr->text_win =
-	    newwin(LINES, width, 0, smap_info_ptr->X * 2);
+	smap_info_ptr->text_win = newwin(LINES, width, 0, tempwidth);
 
 	print_date();
 	switch (params.display) {