diff --git a/pgadmin/include/schema/pgFunction.h b/pgadmin/include/schema/pgFunction.h
index 4ee53d8..7cd6ffd 100644
--- a/pgadmin/include/schema/pgFunction.h
+++ b/pgadmin/include/schema/pgFunction.h
@@ -50,7 +50,7 @@ public:
 	}
 
 	wxString GetFullName();
-	wxString GetArgListWithNames();
+	wxString GetArgListWithNames(bool multiline = false);
 	wxString GetArgSigList(const bool forScript = false);
 
 	wxArrayString &GetArgNamesArray()
diff --git a/pgadmin/schema/pgFunction.cpp b/pgadmin/schema/pgFunction.cpp
index 9f39c20..7d10d74 100644
--- a/pgadmin/schema/pgFunction.cpp
+++ b/pgadmin/schema/pgFunction.cpp
@@ -283,7 +283,7 @@ wxString pgFunction::GetSql(ctlTree *browser)
 {
 	if (sql.IsNull())
 	{
-		wxString qtName = GetQuotedFullIdentifier()  + wxT("(") + GetArgListWithNames() + wxT(")");
+		wxString qtName = GetQuotedFullIdentifier()  + wxT("(") + GetArgListWithNames(true) + wxT(")");
 		wxString qtSig = GetQuotedFullIdentifier()  + wxT("(") + GetArgSigList() + wxT(")");
 
 		sql = wxT("-- Function: ") + qtSig + wxT("\n\n")
@@ -498,10 +498,13 @@ bool pgProcedure::DropObject(wxFrame *frame, ctlTree *browser, bool cascaded)
 	return GetDatabase()->ExecuteVoid(sql);
 }
 
-wxString pgFunction::GetArgListWithNames()
+wxString pgFunction::GetArgListWithNames(bool multiline)
 {
 	wxString args;
 
+	if (multiline && argTypesArray.Count() < 2)
+		multiline = false;
+
 	for (unsigned int i = 0; i < argTypesArray.Count(); i++)
 	{
 		/*
@@ -512,7 +515,7 @@ wxString pgFunction::GetArgListWithNames()
 			break;
 
 		if (args.Length() > 0)
-			args += wxT(", ");
+			args += (multiline) ? wxT(",\n    ") : wxT(", ");
 
 		wxString arg;
 
@@ -576,6 +579,8 @@ wxString pgFunction::GetArgListWithNames()
 
 		args += arg;
 	}
+	if (multiline)
+		args = wxT("\n    ") + args;
 	return args;
 }
 
